View Issue Details

IDProjectCategoryView StatusLast Update
0024008CommunityOCCT:Shape Healingpublic2013-12-19 14:00
ReporterRoman Lygin Assigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
PlatformAOSL 
Product Version6.6.0 
Target Version6.7.0Fixed in Version6.7.0 
Summary0024008: ShapeAnalysis_Surface causes exception in Geom_OffsetSurface
DescriptionWhen searching for point projection ShapeAnalysis_Surface::SurfaceNewton() can go far beyond parametric surface domain.
For offset surfaces, this may cause an exception Geom_UndefinedValue in D2().

Previous behavior of ShapeAnalysis_Surface::SurfaceNewton() was to continue iterations as long as du and dv continue to be large enough. For the enclosed case (200-b) this leads to reaching a 2D point with parameter U > 39 while the suface's Umax is 1.

The two enclosed test cases use almost identical surface/curve, only differing in rounding in 15 or 16 digit after the decimal dot. For the case 200, the parameter U reaches 11 (i.e. not 39) and no exception is thrown, although the resulting projected curve is the same and is limited by a natural domain anyway.

The fix swaps two comparisons and makes the loop terminate if the new 2D point is beyond the surface domain. In this case, NextValueOfUV() falls back to ValueOfUV().
Steps To ReproduceSee enclosed C++ code and two test cases.
Note that the 3D curve is quite beyond the surface. However this comes from a real-world file, and the projection limited by surface domain is expected as a result.
TagsNo tags attached.
Test case numberbugs heal(017) bug24008_1 bug24008_2

Attached Files

  • reproducer.zip (16,144 bytes)

Relationships

related to 0023943 closedRoman Lygin OCC fails to work with offset surfaces with singularities 

Activities

Roman Lygin

2013-06-02 12:40

developer  

reproducer.zip (16,144 bytes)

Roman Lygin

2013-06-02 12:47

developer   ~0024592

The fix has been pushed into the git repository

apn

2013-06-25 17:19

administrator   ~0024863

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

Number of compiler warnings:

occt component :
Linux: 2 (2 on master)
Windows: 7 (7 on master)

products component :
Linux: 0 (0 on master)
Windows: 63 (63 on master)

Regressions:
de iges_3 A4
de step_2 P3
de step_4 I2
http://occt-tests/CR24008-master-occt/Debian60-64/summary.html
http://occt-tests/CR24008-master-occt/Windows-32-VC9/summary.html

Improvements:
No improvements

Testing cases:
bugs heal (017) bug24008_1 bug24008_2 - OK

Could you please review this test case and new QA command OCC24008, which is located in src/QABugs/QABugs_19.cxx?

Testing on Linux:
Total MEMORY difference: 365755824 / 365800244
Total CPU difference: 53917.97000000024 / 48126.490000000886

Testing on Windows:
Total MEMORY difference: 420908224 / 421674192
Total CPU difference: 46922.953125 / 37349.765625

There are not differences in images found by testdiff.

gka

2013-07-02 09:50

developer   ~0024939

New QA command OCC24008 was reviewed

Roman Lygin

2013-11-16 21:40

developer   ~0026673

The fix is not in 6.7.0 beta.
OCC team: can you please review and integrate the fix into the production release 6.7.0 ?
Thank you in advance.

gka

2013-11-22 16:35

developer   ~0026855

Dear Roman.

As far as you can see three regression were found during testing your fix. I checked your fix on current master and inform you about results.

gka

2013-11-22 19:18

developer   ~0026862

Refactored on current master branch CR24008_1 is ready to be tested.
Following tests were updated:
de iges_3 A4
de step_2 P3
de step_4 I2

mkv

2013-11-26 12:25

tester   ~0026913

Dear BugMaster,

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

Number of compiler warnings:

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

products component :
Linux: 188 (188 on master)
Windows: 286 (286 on master)

Regressions/Differences:
http://occt-tests/CR24008-1-master-occt/Debian60-64/de/iges_1/P5.html
http://occt-tests/CR24008-1-master-occt/Windows-32-VC9/de/iges_1/P5.html
de iges_1(001) P5: FAILED

Testing cases:
http://occt-tests/CR24008-1-master-occt/Debian60-64/bugs/heal/bug24008_1.html
http://occt-tests/CR24008-1-master-occt/Debian60-64/bugs/heal/bug24008_2.html
http://occt-tests/CR24008-1-master-occt/Windows-32-VC9/bugs/heal/bug24008_1.html
http://occt-tests/CR24008-1-master-occt/Windows-32-VC9/bugs/heal/bug24008_2.html
bugs heal (017) bug24008_1 bug24008_2 - FAILED (exception) - invalid command name "OCC24008"

Testing on Linux:
Total MEMORY difference: 357160084 / 358363416
Total CPU difference: 42535.290000000154 / 43951.280000000384

Testing on Windows:
Total MEMORY difference: 412558160 / 412628780
Total CPU difference: 34579.421875 / 32169.1875

There are not differences in images found by testdiff.

mkv

2013-11-26 12:25

tester   ~0026914

Dear gka,
bugs heal (017) bug24008_1 bug24008_2 - see CR24008
OCC24008 - see QABugs_19.cxx in CR24008

gka

2013-11-26 15:31

developer   ~0026920

Test case de iges_1 P5 is not regression. Please regenerate this test.

mkv

2013-11-27 12:28

tester   ~0026952

Dear BugMaster,

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

Number of compiler warnings:

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

products component :
Linux: 188 (188 on master)
Windows: 286 (286 on master)

Regressions/Differences:
http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24008_1m/job/mnt-CR24008_1m-master_products_tests_linux_start/label=Debian60-64,tests_group=sat,tests_subgroup=002/3/HTML_Report/?
http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR24008_1m/job/mnt-CR24008_1m-master_products_tests_windows_start/label=windows_test,tests_group=sat,tests_subgroup=002/4/HTML_Report/?
sat doc_2(002) H1: FAILED

Testing cases:
http://occt-tests/CR24008-1m-master-occt/Debian60-64/bugs/heal/bug24008_1.html
http://occt-tests/CR24008-1m-master-occt/Windows-32-VC9/bugs/heal/bug24008_1.html
bugs heal(017) bug24008_1: OK

http://occt-tests/CR24008-1m-master-occt/Debian60-64/bugs/heal/bug24008_2.html
http://occt-tests/CR24008-1m-master-occt/Windows-32-VC9/bugs/heal/bug24008_2.html
bugs heal(017) bug24008_2: OK

Testing on Linux:
Total MEMORY difference: 358289996 / 358507884
Total CPU difference: 49319.61000000002 / 43972.10000000039

Testing on Windows:
Total MEMORY difference: 413204048 / 412694056
Total CPU difference: 31962.984375 / 32186.09375

There are not differences in images found by testdiff.

gka

2013-11-27 14:05

developer   ~0026960

Test case sat doc_2(002) H1 is improvement .Could you please regenerate reference data for this test.

mkv

2013-11-28 10:44

tester   ~0026973

Dear BugMaster,
Test case sat doc_2(002) H1 is pushed to new branch CR24008_1 of Products-GIT repository.

Related Changesets

occt: master 2e9fd4bc

2013-11-28 08:13:15

gka


Committer: bugmaster Details Diff
0024008: ShapeAnalysis_Surface causes exception in Geom_OffsetSurface

Refactoring on current master fix for bug 0024008: ShapeAnalysis_Surface causes exception in Geom_OffsetSurface.
And modified test scripts in order to avoid report regressions
Test cases for issue CR24008
Affected Issues
0024008
mod - src/QABugs/QABugs_19.cxx Diff File
mod - src/ShapeAnalysis/ShapeAnalysis_Surface.cxx Diff File
add - tests/bugs/heal/bug24008_1 Diff File
add - tests/bugs/heal/bug24008_2 Diff File
mod - tests/de/iges_3/A4 Diff File
mod - tests/de/step_2/P3 Diff File
mod - tests/de/step_4/I2 Diff File

Issue History

Date Modified Username Field Change
2013-06-02 12:40 Roman Lygin New Issue
2013-06-02 12:40 Roman Lygin Assigned To => gka
2013-06-02 12:40 Roman Lygin File Added: reproducer.zip
2013-06-02 12:47 Roman Lygin Note Added: 0024592
2013-06-02 12:47 Roman Lygin Status new => resolved
2013-06-02 15:56 abv Relationship added related to 0023943
2013-06-24 17:56 gka Status resolved => reviewed
2013-06-25 17:19 apn Note Added: 0024863
2013-06-25 17:20 apn Test case number => bugs heal bug24008_1 bug24008_2
2013-06-25 17:20 apn Status reviewed => assigned
2013-07-02 09:50 gka Note Added: 0024939
2013-11-13 16:42 apn Status assigned => feedback
2013-11-16 21:40 Roman Lygin Note Added: 0026673
2013-11-22 16:35 gka Note Added: 0026855
2013-11-22 19:18 gka Note Added: 0026862
2013-11-22 19:18 gka Status feedback => reviewed
2013-11-25 08:06 mkv Assigned To gka => mkv
2013-11-26 12:25 mkv Note Added: 0026913
2013-11-26 12:25 mkv Note Added: 0026914
2013-11-26 12:26 mkv Test case number bugs heal bug24008_1 bug24008_2 => bugs heal(017) bug24008_1 bug24008_2
2013-11-26 12:26 mkv Assigned To mkv => gka
2013-11-26 12:26 mkv Status reviewed => assigned
2013-11-26 15:31 gka Note Added: 0026920
2013-11-27 12:28 mkv Note Added: 0026952
2013-11-27 12:29 mkv Status assigned => feedback
2013-11-27 14:05 gka Note Added: 0026960
2013-11-27 14:05 gka Status feedback => reviewed
2013-11-27 14:56 mkv Assigned To gka => mkv
2013-11-28 10:44 mkv Note Added: 0026973
2013-11-28 10:45 mkv Assigned To mkv => bugmaster
2013-11-28 10:45 mkv Status reviewed => tested
2013-12-02 10:21 bugmaster Changeset attached => occt master 2e9fd4bc
2013-12-02 10:21 bugmaster Status tested => verified
2013-12-02 10:21 bugmaster Resolution open => fixed
2013-12-09 12:03 bugmaster Target Version => 6.7.0
2013-12-19 13:50 bugmaster Status verified => closed
2013-12-19 14:00 bugmaster Fixed in Version => 6.7.0