MantisBT - Open CASCADE
View Issue Details
0024589Open CASCADE[OCCT] OCCT:DRAWpublic2014-02-03 11:192018-07-13 09:27
abv 
bugmaster 
highmajor 
closedfixed 
 
[OCCT] 6.8.0[OCCT] 6.8.0 
Not needed
0024589: Draw Harness - disable floating-point exceptions by default
Currently DRAW calls OSD::SetSignal() with default argument (true) which enables FPEs. When code is built with Intel compiler with option /fp:fast (unless additional option /fp-speculation:safe is used), this leads to multiple exceptions during tests executions (about half of tests fail) due to the fact that ICC optimizes the code assuming that FPEs are disabled.

It seems that in general OCCT code is stable enough to work with disabled FPEs. Moreover, in user applications this is often more realistic situation than if they were enabled, either because OSD::SetSignal() is not called or because of using application-specific handling policy (e.g. if using .NET/C# as a front-end).

Hence it is proposed to disable FPEs in DRAW and see if tests work fine.
No tags attached.
related to 0024363closed kgv Open CASCADE Automated Tests - optimize testing environment for visualization tests 
parent of 0025199closed bugmaster Open CASCADE Bad tolerance edge generated by blend algorithm 
parent of 0026329closed kgv Open CASCADE Restore floating point signals handling in DRAW 
related to 0024254closed bugmaster Open CASCADE A lot of regressions in test cases on OCCT built with Intel compiler 
related to 0025065closed bugmaster Open CASCADE Regressions in test cases on Windows compiled with vc10 
related to 0023802closed dbv Open CASCADE Floating-point exceptions on Mac OS X 
related to 0029935verified bugmaster Open CASCADE Foundation Classes - introduce OSD_ThreadPool class defining a thread pool 
Issue History
2014-02-03 11:19abvNew Issue
2014-02-03 11:19abvAssigned To => mkv
2014-02-03 11:21abvNote Added: 0027727
2014-02-03 11:21abvStatusnew => feedback
2014-02-04 18:02mkvNote Added: 0027753
2014-02-04 18:02mkvTest case number => Not needed
2014-02-04 18:02mkvAssigned Tomkv => abv
2014-02-27 19:30sanNote Added: 0028062
2014-03-04 11:52kgvRelationship addedrelated to 0024363
2014-03-26 21:11abkSummaryDo not arm FPE handlers in DRAW => Disable floating-point exceptions in DRAW
2014-03-26 21:11abkDescription Updatedbug_revision_view_page.php?rev_id=7068#r7068
2014-03-27 11:29abkNote Added: 0028505
2014-03-27 11:29abkAssigned Toabv =>
2014-03-27 11:29abkStatusfeedback => reviewed
2014-03-27 11:40abvAssigned To => bugmaster
2014-03-27 14:44mkvAssigned Tobugmaster => mkv
2014-03-28 17:12mkvNote Added: 0028550
2014-03-28 17:22mkvNote Edited: 0028550bug_revision_view_page.php?bugnote_id=28550#r7097
2014-03-28 17:23mkvAssigned Tomkv => abv
2014-03-28 17:23mkvStatusreviewed => assigned
2014-04-16 16:09abvRelationship addedrelated to 0024254
2014-06-16 17:25kgvTarget Version => 6.8.0
2014-07-14 12:33sanRelationship addedrelated to 0025003
2014-07-21 11:37abvAssigned Toabv => ski
2014-08-13 10:25gitNote Added: 0030703
2014-08-13 10:26abvRelationship addedrelated to 0025065
2014-08-13 14:27abvAssigned Toski => aml
2014-08-29 09:54amlRelationship addedparent of 0025199
2014-09-10 08:24kgvPrioritynormal => high
2014-09-10 08:24kgvSeverityminor => major
2014-09-10 08:24kgvSummaryDisable floating-point exceptions in DRAW => Draw Harness - disable floating-point exceptions by default
2014-09-10 09:49gitNote Added: 0031539
2014-09-10 16:37gitNote Added: 0031583
2014-09-15 15:56amlAssigned Toaml => abv
2014-09-15 15:57amlAssigned Toabv => aml
2014-09-15 16:24amlNote Added: 0031713
2014-09-15 16:24amlAssigned Toaml => abv
2014-09-15 16:24amlStatusassigned => resolved
2014-09-17 18:48gitNote Added: 0031832
2014-09-17 18:54abvNote Added: 0031833
2014-09-17 18:54abvAssigned Toabv => bugmaster
2014-09-17 18:54abvStatusresolved => reviewed
2014-09-19 13:46bugmasterAssigned Tobugmaster => mkv
2014-09-19 15:49gitNote Added: 0031906
2014-09-22 10:41mkvNote Added: 0031932
2014-09-22 10:43mkvAssigned Tomkv => aml
2014-09-22 10:43mkvStatusreviewed => feedback
2014-09-22 12:05gitNote Added: 0031937
2014-09-22 12:14amlNote Added: 0031939
2014-09-22 12:14amlAssigned Toaml => mkv
2014-09-22 17:34gitNote Added: 0031953
2014-09-22 17:42mkvStatusfeedback => reviewed
2014-09-23 17:47mkvNote Added: 0032035
2014-09-23 17:47mkvAssigned Tomkv => bugmaster
2014-09-23 17:47mkvStatusreviewed => tested
2014-09-25 12:21mkvAssigned Tobugmaster => mkv
2014-09-25 12:21mkvStatustested => feedback
2014-09-25 13:44mkvNote Edited: 0032035bug_revision_view_page.php?bugnote_id=32035#r8116
2014-09-25 13:46gitNote Added: 0032135
2014-09-25 13:47mkvNote Added: 0032136
2014-09-25 13:47mkvNote Added: 0032137
2014-09-25 13:48mkvAssigned Tomkv => aml
2014-09-25 14:14amlNote Added: 0032142
2014-09-25 14:14amlAssigned Toaml => mkv
2014-09-25 14:27mkvNote Added: 0032143
2014-09-25 14:28mkvAssigned Tomkv => bugmaster
2014-09-25 14:28mkvStatusfeedback => tested
2014-09-26 10:54abvRelationship addedrelated to 0023828
2014-09-26 14:49bugmasterChangeset attached => occt master d538d7a2
2014-09-26 14:49bugmasterStatustested => verified
2014-09-26 14:49bugmasterResolutionopen => fixed
2014-09-30 11:35gitNote Added: 0032390
2014-09-30 11:35gitNote Added: 0032391
2014-09-30 11:35gitNote Added: 0032392
2014-10-31 15:38amlRelationship addedparent of 0025321
2014-11-11 12:42aivFixed in Version => 6.8.0
2014-11-11 13:03aivStatusverified => closed
2014-12-09 09:17amlRelationship addedrelated to 0025569
2014-12-09 09:17amlRelationship deletedrelated to 0025569
2015-01-01 15:55abvRelationship addedrelated to 0023802
2015-06-09 20:24abvRelationship addedrelated to 0026328
2015-06-09 20:46abvRelationship addedparent of 0026329
2018-07-12 20:02kgvRelationship addedrelated to 0029935

Notes
(0027727)
abv   
2014-02-03 11:21   
I have pushed the change to CR24589, please test on all platforms. Note that test bugs bug6143 is expected to fail.
(0027753)
mkv   
2014-02-04 18:02   
Dear BugMaster,

Branch CR24589 (and products from GIT master) was compiled on Linux and Windows platforms and tested.
SHA-1: f2ba65113b0ef65d33e75a2f47cf1b3c67fd7771

Number of compiler warnings:

occt component :
Linux: 44 (44 on master)
Windows: 0 (0 on master)

products component :
Linux: 12 (12 on master)
Windows: 2 (2 on master)

Regressions/Differences:
http://occt-tests/CR24589-master-occt/Windows-32-VC9/bugs/fclasses/bug6143.html [^]
bugs fclasses(002) bug6143

http://occt-tests/CR24589-master-occt/Windows-32-VC9/bugs/modalg_3/bug615.html [^]
bugs modalg_3(008) bug615

http://occt-tests/CR24589-master-occt/Windows-32-VC9/de/iges_1/J9.html [^]
de iges_1(001) J9

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589/job/mnt-CR24589-master_products_tests_windows_start/label=windows_test,tests_group=omf,tests_subgroup=009/2/HTML_Report/? [^]
omf standard_meshcommon(009) ZA6

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589/job/mnt-CR24589-master_products_tests_windows_start/label=windows_test,tests_group=parasolid,tests_subgroup=003/2/HTML_Report/? [^]
parasolid doc_3(003) C3

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589/job/mnt-CR24589-master_products_tests_windows_start/label=windows_test,tests_group=parasolid,tests_subgroup=003/2/HTML_Report/? [^]
parasolid doc_3(003) E7

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589/job/mnt-CR24589-master_products_tests_windows_start/label=windows_test,tests_group=parasolid,tests_subgroup=005/2/HTML_Report/? [^]
parasolid read(005) C8

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589/job/mnt-CR24589-master_products_tests_windows_start/label=windows_test,tests_group=sat,tests_subgroup=001/2/HTML_Report/? [^]
sat doc_1(001) D2

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589/job/mnt-CR24589-master_products_tests_windows_start/label=windows_test,tests_group=sat,tests_subgroup=001/2/HTML_Report/? [^]
sat doc_1(001) ZV5

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589/job/mnt-CR24589-master_products_tests_windows_start/label=windows_test,tests_group=sat,tests_subgroup=001/2/HTML_Report/? [^]
sat doc_1(001) ZV6

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589/job/mnt-CR24589-master_products_tests_windows_start/label=windows_test,tests_group=sat,tests_subgroup=001/2/HTML_Report/? [^]
sat doc_1(001) ZV7

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589/job/mnt-CR24589-master_products_tests_windows_start/label=windows_test,tests_group=sat,tests_subgroup=006/2/HTML_Report/? [^]
sat load(006) B5

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589/job/mnt-CR24589-master_products_tests_windows_start/label=windows_test,tests_group=sat,tests_subgroup=007/2/HTML_Report/? [^]
sat simple(007) C4

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 369978524 / 372329260
Total CPU difference: 41158.75000000009 / 43919.69000000019

Testing on Windows:
Total MEMORY difference: 418997660 / 409685372
Total CPU difference: 33473.765625 / 35374.984375

There are following differences in images found by testdiff.
http://occt-tests/CR24589-master-occt/Windows-32-VC9/diff-Windows-32-VC9.html [^]
IMAGE de iges_2 H9: H9.png differs
IMAGE sewing tol_1 R2: R2.png differs
(0028062)
san   
2014-02-27 19:30   
Does it make sense to add a DRAW command that enables/disables FPE (even they are disabled initially now), to avoid hard-coded solutions and facilitate prototyping?
(0028505)
abk   
2014-03-27 11:29   
Branch CR24589 was rebased on OCCT master "Update test cases for debug mode" (SHA-1: 0a58bfe2c3458011e08bcae9ba55da7c3243f6c6) and pushed to branch CR24589_2. Test "bugs fclasses bug6143" was adjusted to work with disabled FPEs.

Please, test OCCT and OCCT products on the branch CR24589_2. If test "bugs fclasses bug6143" will have regressions then report it immediately. If any regressions will be revealed in other tests then check these tests on the OCCT master at which the branch CR24589_2 was tested.
(0028550)
mkv   
2014-03-28 17:12   
(edited on: 2014-03-28 17:22)
Dear BugMaster,

Branch CR24589_2 (and products from GIT master) was compiled on Linux and Windows platforms and tested.
SHA-1: b0cf6692c98f451f78f0edd250f6addbfc35e199

Number of compiler warnings:

occt component :
Linux: 29 (29 on master)
Windows: 0 (0 on master)

products component :
Linux: 12 (12 on master)
Windows: 2 (2 on master)

Regressions/Differences:
http://occt-tests/CR24589-2-master-occt/Debian60-64/summary.html [^]
http://occt-tests/CR24589-2-master-occt/Windows-32-VC9/summary.html [^]
bugs modalg_3(008) bug615
de iges_1(001) J9
de iges_2(002) H9
de step_4(007) G7

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 391093780 / 391188224
Total CPU difference: 55479.770000000266 / 51251.38999999966

Testing on Windows:
Total MEMORY difference: 395947060 / 395342296
Total CPU difference: 33009.15625 / 34849.046875

There are no differences in images found by testdiff.

Regressions/Differences of products part:

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589_2/job/mnt-CR24589_2-master_products_tests_linux_start/label=Debian60-64,tests_group=parasolid,tests_subgroup=005/4/HTML_Report/? [^]
http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589_2/job/mnt-CR24589_2-master_products_tests_windows_start/label=windows_test,tests_group=parasolid,tests_subgroup=005/3/HTML_Report/? [^]
parasolid read(005) C8 - Process killed by CPU limit (1500 sec)

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589_2/job/mnt-CR24589_2-master_products_tests_windows_start/label=windows_test,tests_group=parasolid,tests_subgroup=003/3/HTML_Report/? [^]
parasolid doc_3(003) B1, E8

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589_2/job/mnt-CR24589_2-master_products_tests_windows_start/label=windows_test,tests_group=sat,tests_subgroup=001/2/HTML_Report/? [^]
sat doc_1(001) D2, ZV3, ZV5, ZV6

http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24589_2/job/mnt-CR24589_2-master_products_tests_windows_start/label=windows_test,tests_group=sat,tests_subgroup=007/3/HTML_Report/? [^]
sat simple(007) C4

(0030703)
git   
2014-08-13 10:25   
Branch CR24589 has been updated forcibly by abv.

SHA-1: 6c438b2dae86234bbf453e22b681804cc7885266
(0031539)
git   
2014-09-10 09:49   
Branch CR24589 has been updated forcibly by aml.

SHA-1: d8c2b852f37c0e2232de960cb6e6afa9f6a037fc
(0031583)
git   
2014-09-10 16:37   
Branch CR24589 has been updated forcibly by aml.

SHA-1: 9da32d0ff162e7084e34879cf56778c0f0b2a8ad
(0031713)
aml   
2014-09-15 16:24   
Dear abv,

Please check current state of branches CR24589 in OCCT and products repository.

de step H9
Shape healing with signals omits some of subshapes, but according with new behaviour this subshapes included into result, so reference data changed respectively.

de step G7
Fixed reference data according to new behaviour.

parasolid doc_3 B1 / E8
In input file wrong face on which edge lies out of corresponding surface, this leads to bad pcurve for this edge and problems with self-intersect algorithm.
On master this situation handled correctly by "good luck", so tests fixed to pass over this.

parasolid read C8
Fixed bug in p_param value computing. When alpha_2 is low, this leads to 0 / 0 uncertainty. (Convert_ConicToBSplineCurve.cxx)

sat simple C4
Fixed decreased tolerance.

sat simple H5 / H6
One bad result changed to another bad result, it seems that this case similar to "parasolid doc_3 B1" - bad data in input file.
Please note that the images will change for this cases.
(0031832)
git   
2014-09-17 18:48   
Branch CR24589_1 has been created by abv.

SHA-1: 9c9fa4707f3944a3e1cd01a2070ef192a37537c8


Detailed log of new commits:

Author: aml
Date: Wed Sep 10 07:52:51 2014 +0400

    0024589: Draw Harness - disable floating-point exceptions by default
    
    OSD::SetSignal() called with Standard_False argument to have FPEs disabled.
    
    Test cased modification:
    de step_4 G7 - fixed reference data.
    de iges_2 H9 - Fixed reference data. According to input file, there are big tolerance edge and surface, which leads to big tolerance in ref data, result and image has changed due to usage of these shapes instead of omitting them.
    de end - changed behavior in case of big isolines, now isolines not break fit command in certain places.
    
    Modeling algorithms:
    Fixed 0.0 / 0.0 uncertainty in circle to quasi-angular bspline conversion.
(0031833)
abv   
2014-09-17 18:54   
I have pushed branch CR24589_1 which is rebased on current master and slightly amended (using macro _WIN32 instead of WNT for checking Windows). Please test
(0031906)
git   
2014-09-19 15:49   
Branch CR24589_1 has been updated forcibly by mkv.

SHA-1: 715581878efc2b5152e50ebbb127e7bf855a81dc
(0031932)
mkv   
2014-09-22 10:41   
Dear BugMaster,
Branch CR24589_1 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
SHA-1: 715581878efc2b5152e50ebbb127e7bf855a81dc

Number of compiler warnings:

occt component :
Linux: 15 (15 on master)
Windows: 0 (0 on master)
MacOS: 193 (193 on master)

products component :
Linux: 11 (11 on master)
Windows: 1 (1 on master)

Regressions/Differences:
http://occt-tests/CR24589-1-master-occt/Debian60-64/summary.html [^]
http://occt-tests/CR24589-1-master-occt/Windows-32-VC10/summary.html [^]
Improvements:
de step_4(007) G7
Failed:
de iges_2(002) H9

http://occt-tests/CR24589-1-master-products/Windows-32-VC10/summary.html [^]
Improvements:
sat doc_1(001) D2
Failed:
parasolid doc_3(003) B1, E8
sat doc_5(005) H5, H6
sat simple(009) C4

Testing cases:
Not needed

Testing on Linux:
occt component :
Total MEMORY difference: 355695224 / 354871088
Total CPU difference: 44779.08000000024 / 44645.8700000001
products component :
Total MEMORY difference: 110272624 / 110213588
Total CPU difference: 18262.739999999965 / 18352.22999999999

Testing on Windows:
occt component :
Total MEMORY difference: 242677384 / 242046888
Total CPU difference: 38629.453125 / 34240.875
products component :
Total MEMORY difference: 66426164 / 66294132
Total CPU difference: 13857.375 / 11708.1875

There are no differences in images found by testdiff.
(0031937)
git   
2014-09-22 12:05   
Branch CR24589_2 has been updated forcibly by aml.

SHA-1: c60b4fa82aef2a3639281a59de7a6b04c2205011
(0031939)
aml   
2014-09-22 12:14   
Dear mkv,
Reference data fixed.

Please test again but this time test branches together(CR24589_2 from OCCT and products repositories).
(0031953)
git   
2014-09-22 17:34   
Branch CR24589_2 has been updated forcibly by mkv.

SHA-1: 224ea2db76c6a8d4643d349e3d79ddddcc64fc62
(0032035)
mkv   
2014-09-23 17:47   
(edited on: 2014-09-25 13:44)
Dear BugMaster,
Branch CR24589_2 from occt git-repository and CR24589_2 from products git-repository was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
SHA-1: 224ea2db76c6a8d4643d349e3d79ddddcc64fc62
SHA-1: 031305626d22092b363c3d9adcc867a7189f4f05

Number of compiler warnings:

occt component :
Linux: 15 (15 on master)
Windows: 0 (0 on master)
MacOS: 193 (193 on master)

products component :
Linux: 11 (11 on master)
Windows: 1 (1 on master)

Regressions/Differences:
http://occt-tests/CR24589-2-CR24589-2-occt/Debian60-64/summary.html [^]
Improvements:
de iges_2(002) H9
de step_4(007) G7

http://occt-tests/CR24589-2-CR24589-2-products/Debian60-64/summary.html [^]
Improvements:
sat doc_5(005) H5, H6

http://occt-tests/CR24589-2-CR24589-2-occt/Windows-32-VC10/summary.html [^]
Improvements:
de iges_2(002) H9

http://occt-tests/CR24589-2-CR24589-2-products/Windows-32-VC10/summary.html [^]
Improvements:
sat doc_5(005) H5

Testing cases:
Not needed

Testing on Linux:
occt component :
Total MEMORY difference: 355406960 / 354871720
Total CPU difference: 48445.35000000004 / 44645.960000000094
products component :
Total MEMORY difference: 110099348 / 110044288
Total CPU difference: 19267.780000000024 / 18103.179999999986

Testing on Windows:
occt component :
Total MEMORY difference: 243099992 / 242046888
Total CPU difference: 31454.484375 / 34240.875
products component :
Total MEMORY difference: 66600752 / 66620220
Total CPU difference: 11527.84375 / 11919.625

There are following differences in images found by testdiff.
http://occt-tests/CR24589-2-CR24589-2-occt/Debian60-64/diff-Debian60-64.html [^]
http://occt-tests/CR24589-2-CR24589-2-occt/Windows-32-VC10/diff-Windows-32-VC10.html [^]
IMAGE de step_1 ZN5: ZN5.png differs

(0032135)
git   
2014-09-25 13:46   
Branch CR24589_2 has been updated by mkv.

SHA-1: 9974ede5914a54f7a3f74526e534307ae086775a


Detailed log of new commits:

Author: mkv
Date: Thu Sep 25 13:45:45 2014 +0400

    Correction of test cases for issue CR24589

(0032136)
mkv   
2014-09-25 13:47   
Dear BugMaster,
Following test cases are corrected and pushed in branch CR24589_2 of occt git-repository.
de iges_2(002) H9
de step_4(007) G7
(0032137)
mkv   
2014-09-25 13:47   
Dear BugMaster,
Following test cases are corrected and pushed in new branch CR24589_2 of products git-repository.
sat doc_5(005) H5, H6
(0032142)
aml   
2014-09-25 14:14   
Dear mkv,
Difference in ZN5 image caused by new behavior of end script in "de" group.
The new image is OK.
(0032143)
mkv   
2014-09-25 14:27   
OK.
CR24589 is TESTED.
(0032390)
git   
2014-09-30 11:35   
Branch CR24589 has been deleted by inv.

SHA-1: 9da32d0ff162e7084e34879cf56778c0f0b2a8ad
(0032391)
git   
2014-09-30 11:35   
Branch CR24589_1 has been deleted by inv.

SHA-1: 715581878efc2b5152e50ebbb127e7bf855a81dc
(0032392)
git   
2014-09-30 11:35   
Branch CR24589_2 has been deleted by inv.

SHA-1: 9974ede5914a54f7a3f74526e534307ae086775a