View Issue Details

IDProjectCategoryView StatusLast Update
0024589Open CASCADEOCCT:DRAWpublic2020-07-02 15:41
ReporterabvAssigned Tobugmaster  
PriorityhighSeveritymajor 
Status closedResolutionfixed 
Target Version6.8.0Fixed in Version6.8.0 
Summary0024589: Draw Harness - disable floating-point exceptions by default
DescriptionCurrently 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.
TagsNo tags attached.
Test case numberNot needed

Relationships

related to 0024363 closedkgv Open CASCADE Automated Tests - optimize testing environment for visualization tests 
parent of 0025199 closedbugmaster Open CASCADE Bad tolerance edge generated by blend algorithm 
parent of 0026329 closedkgv Open CASCADE Restore floating point signals handling in DRAW 
parent of 0031647 closedbugmaster Open CASCADE Samples - do not enable floating point exceptions in MFC samples 
related to 0024254 closedbugmaster Open CASCADE A lot of regressions in test cases on OCCT built with Intel compiler 
related to 0025065 closedbugmaster Open CASCADE Regressions in test cases on Windows compiled with vc10 
related to 0023802 closeddbv Open CASCADE Floating-point exceptions on Mac OS X 
related to 0029935 closedbugmaster Open CASCADE Foundation Classes - introduce OSD_ThreadPool class defining a thread pool 

Activities

abv

2014-02-03 11:21

manager   ~0027727

I have pushed the change to CR24589, please test on all platforms. Note that test bugs bug6143 is expected to fail.

mkv

2014-02-04 18:02

tester   ~0027753

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

san

2014-02-27 19:30

developer   ~0028062

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?

abk

2014-03-27 11:29

developer   ~0028505

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.

mkv

2014-03-28 17:12

tester   ~0028550

Last edited: 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

git

2014-08-13 10:25

administrator   ~0030703

Branch CR24589 has been updated forcibly by abv.

SHA-1: 6c438b2dae86234bbf453e22b681804cc7885266

git

2014-09-10 09:49

administrator   ~0031539

Branch CR24589 has been updated forcibly by aml.

SHA-1: d8c2b852f37c0e2232de960cb6e6afa9f6a037fc

git

2014-09-10 16:37

administrator   ~0031583

Branch CR24589 has been updated forcibly by aml.

SHA-1: 9da32d0ff162e7084e34879cf56778c0f0b2a8ad

aml

2014-09-15 16:24

developer   ~0031713

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.

git

2014-09-17 18:48

administrator   ~0031832

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.

abv

2014-09-17 18:54

manager   ~0031833

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

git

2014-09-19 15:49

administrator   ~0031906

Branch CR24589_1 has been updated forcibly by mkv.

SHA-1: 715581878efc2b5152e50ebbb127e7bf855a81dc

mkv

2014-09-22 10:41

tester   ~0031932

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.

git

2014-09-22 12:05

administrator   ~0031937

Branch CR24589_2 has been updated forcibly by aml.

SHA-1: c60b4fa82aef2a3639281a59de7a6b04c2205011

aml

2014-09-22 12:14

developer   ~0031939

Dear mkv,
Reference data fixed.

Please test again but this time test branches together(CR24589_2 from OCCT and products repositories).

git

2014-09-22 17:34

administrator   ~0031953

Branch CR24589_2 has been updated forcibly by mkv.

SHA-1: 224ea2db76c6a8d4643d349e3d79ddddcc64fc62

mkv

2014-09-23 17:47

tester   ~0032035

Last edited: 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

git

2014-09-25 13:46

administrator   ~0032135

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

mkv

2014-09-25 13:47

tester   ~0032136

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

mkv

2014-09-25 13:47

tester   ~0032137

Dear BugMaster,
Following test cases are corrected and pushed in new branch CR24589_2 of products git-repository.
sat doc_5(005) H5, H6

aml

2014-09-25 14:14

developer   ~0032142

Dear mkv,
Difference in ZN5 image caused by new behavior of end script in "de" group.
The new image is OK.

mkv

2014-09-25 14:27

tester   ~0032143

OK.
CR24589 is TESTED.

git

2014-09-30 11:35

administrator   ~0032390

Branch CR24589 has been deleted by inv.

SHA-1: 9da32d0ff162e7084e34879cf56778c0f0b2a8ad

git

2014-09-30 11:35

administrator   ~0032391

Branch CR24589_1 has been deleted by inv.

SHA-1: 715581878efc2b5152e50ebbb127e7bf855a81dc

git

2014-09-30 11:35

administrator   ~0032392

Branch CR24589_2 has been deleted by inv.

SHA-1: 9974ede5914a54f7a3f74526e534307ae086775a

Related Changesets

occt: master d538d7a2

2014-09-25 10:50:42

aml


Committer: bugmaster Details Diff
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.

Correction of test cases for issue CR24589
Affected Issues
0024589
mod - src/Convert/Convert_ConicToBSplineCurve.cxx Diff File
mod - src/Draw/Draw.cxx Diff File
mod - src/Draw/Draw_Window.cxx Diff File
mod - src/QABugs/QABugs_11.cxx Diff File
mod - tests/de/end Diff File
mod - tests/de/iges_2/H9 Diff File
mod - tests/de/step_4/G7 Diff File

Issue History

Date Modified Username Field Change
2014-02-03 11:19 abv New Issue
2014-02-03 11:19 abv Assigned To => mkv
2014-02-03 11:21 abv Note Added: 0027727
2014-02-03 11:21 abv Status new => feedback
2014-02-04 18:02 mkv Note Added: 0027753
2014-02-04 18:02 mkv Test case number => Not needed
2014-02-04 18:02 mkv Assigned To mkv => abv
2014-02-27 19:30 san Note Added: 0028062
2014-03-04 11:52 kgv Relationship added related to 0024363
2014-03-26 21:11 abk Summary Do not arm FPE handlers in DRAW => Disable floating-point exceptions in DRAW
2014-03-26 21:11 abk Description Updated
2014-03-27 11:29 abk Note Added: 0028505
2014-03-27 11:29 abk Assigned To abv =>
2014-03-27 11:29 abk Status feedback => reviewed
2014-03-27 11:40 abv Assigned To => bugmaster
2014-03-27 14:44 mkv Assigned To bugmaster => mkv
2014-03-28 17:12 mkv Note Added: 0028550
2014-03-28 17:22 mkv Note Edited: 0028550
2014-03-28 17:23 mkv Assigned To mkv => abv
2014-03-28 17:23 mkv Status reviewed => assigned
2014-04-16 16:09 abv Relationship added related to 0024254
2014-06-16 17:25 kgv Target Version => 6.8.0
2014-07-21 11:37 abv Assigned To abv => ski
2014-08-13 10:25 git Note Added: 0030703
2014-08-13 10:26 abv Relationship added related to 0025065
2014-08-13 14:27 abv Assigned To ski => aml
2014-08-29 09:54 aml Relationship added parent of 0025199
2014-09-10 08:24 kgv Priority normal => high
2014-09-10 08:24 kgv Severity minor => major
2014-09-10 08:24 kgv Summary Disable floating-point exceptions in DRAW => Draw Harness - disable floating-point exceptions by default
2014-09-10 09:49 git Note Added: 0031539
2014-09-10 16:37 git Note Added: 0031583
2014-09-15 15:56 aml Assigned To aml => abv
2014-09-15 15:57 aml Assigned To abv => aml
2014-09-15 16:24 aml Note Added: 0031713
2014-09-15 16:24 aml Assigned To aml => abv
2014-09-15 16:24 aml Status assigned => resolved
2014-09-17 18:48 git Note Added: 0031832
2014-09-17 18:54 abv Note Added: 0031833
2014-09-17 18:54 abv Assigned To abv => bugmaster
2014-09-17 18:54 abv Status resolved => reviewed
2014-09-19 13:46 bugmaster Assigned To bugmaster => mkv
2014-09-19 15:49 git Note Added: 0031906
2014-09-22 10:41 mkv Note Added: 0031932
2014-09-22 10:43 mkv Assigned To mkv => aml
2014-09-22 10:43 mkv Status reviewed => feedback
2014-09-22 12:05 git Note Added: 0031937
2014-09-22 12:14 aml Note Added: 0031939
2014-09-22 12:14 aml Assigned To aml => mkv
2014-09-22 17:34 git Note Added: 0031953
2014-09-22 17:42 mkv Status feedback => reviewed
2014-09-23 17:47 mkv Note Added: 0032035
2014-09-23 17:47 mkv Assigned To mkv => bugmaster
2014-09-23 17:47 mkv Status reviewed => tested
2014-09-25 12:21 mkv Assigned To bugmaster => mkv
2014-09-25 12:21 mkv Status tested => feedback
2014-09-25 13:44 mkv Note Edited: 0032035
2014-09-25 13:46 git Note Added: 0032135
2014-09-25 13:47 mkv Note Added: 0032136
2014-09-25 13:47 mkv Note Added: 0032137
2014-09-25 13:48 mkv Assigned To mkv => aml
2014-09-25 14:14 aml Note Added: 0032142
2014-09-25 14:14 aml Assigned To aml => mkv
2014-09-25 14:27 mkv Note Added: 0032143
2014-09-25 14:28 mkv Assigned To mkv => bugmaster
2014-09-25 14:28 mkv Status feedback => tested
2014-09-26 14:49 bugmaster Changeset attached => occt master d538d7a2
2014-09-26 14:49 bugmaster Status tested => verified
2014-09-26 14:49 bugmaster Resolution open => fixed
2014-09-30 11:35 git Note Added: 0032390
2014-09-30 11:35 git Note Added: 0032391
2014-09-30 11:35 git Note Added: 0032392
2014-11-11 12:42 aiv Fixed in Version => 6.8.0
2014-11-11 13:03 aiv Status verified => closed
2014-12-09 09:17 aml Relationship added related to 0025569
2014-12-09 09:17 aml Relationship deleted related to 0025569
2015-01-01 15:55 abv Relationship added related to 0023802
2015-06-09 20:46 abv Relationship added parent of 0026329
2018-07-12 20:02 kgv Relationship added related to 0029935
2020-07-02 15:41 kgv Relationship added parent of 0031647