Archived issue #0026671
Infinite loop in ShapeFix_Wire::FixSelfIntersection()
Description
Some imported IGES models falls into an infinite loop during ShapeFix_Wire::FixSelfIntersection() - model provokes conditions that do not allow to increase the counter in algorithm.
There is not such problem in OCC version 6.5.0.
There is not such problem in OCC version 6.5.0.
Steps to reproduce
igesbrep bug_10674.igs b
Public activity
16 archived notes
Participants are labeled by their role within this record.
Branch [archived branch] has been created by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Wed Sep 9 14:18:39 2015 +0300
Restore the condition of the revisiting of fixed edge
[revision removed]
Detailed log of new commits:
Author: Author
Date: Wed Sep 9 14:18:39 2015 +0300
Restore the condition of the revisiting of fixed edge
The issue is a regression vs 6.8.0 and most likely was introduced as part of #0025013.
Severity has been raised to 'block' as the application just hangs what leads to data loss.
So approving the fix and integration into the nearest release would be much helpful.
So approving the fix and integration into the nearest release would be much helpful.
Branch CR26671 is ready to be tested
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Dear Commenter 2,
Branch CR26671 was rebased on current master of occt git-repository.
[revision removed]
Branch CR26671 was rebased on current master of occt git-repository.
[revision removed]
Dear gka,
could you please review following test case
bugs heal bug26671
could you please review following test case
bugs heal bug26671
Branch [archived branch] has been updated by Participant.
[revision removed]
Detailed log of new commits:
Author: mkv
Date: Mon Sep 21 15:21:02 2015 +0300
Test cases for issue CR26671
[revision removed]
Detailed log of new commits:
Author: mkv
Date: Mon Sep 21 15:21:02 2015 +0300
Test cases for issue CR26671
Dear Commenter 2,
Branch CR26671 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]
Number of compiler warnings:
occt component :
Linux: 15 (15 on master)
Windows: 0 (0 on master)
products component :
Linux: 39 (39 on master)
Windows: 0 (0 on master)
Regressions/Differences/Improvements:
http://occt-tests/CR26671-master-occt-64/Debian70-64/summary.html
http://occt-tests/CR26671-master-occt-64/Windows-64-VC10/summary.html
Improvements:
de iges_1 O5
de iges_2 D9
de iges_3 A5
Failed:
bugs iges bug58_1, bug306
bugs modalg_2 bug22893
bugs modalg_6 bug26616
bugs xde bug15220
de iges_1 A1, C8, D1, F9, G5, H4, I1, I8, J3, L5, M3, P5, Q3, R3, R4
de iges_2 A1, E1, E9, F1, F4, G1, G7, H5, H9, I3
de iges_3 A4, A8, B2, B9, C8
Testing cases:
http://occt-tests/CR26671-master-occt-64/Debian70-64/bugs/heal/bug26671.html
http://occt-tests/CR26671-master-occt-64/Windows-64-VC10/bugs/heal/bug26671.html
bugs heal bug26671: OK
Testing on Linux:
occt component :
Total MEMORY difference: 90218873 / 89842573 [+0.42%]
Total CPU difference: 18235.059999999794 / 18238.63999999983 [-0.02%]
products component :
Total MEMORY difference: 25899214 / 25971259 [-0.28%]
Total CPU difference: 7082.549999999989 / 7206.699999999996 [-1.72%]
Testing on Windows:
occt component :
Total MEMORY difference: 55044709 / 55038974 [+0.01%]
Total CPU difference: 16931.44373419912 / 16399.948327199105 [+3.24%]
products component :
Total MEMORY difference: 16784064 / 16784150 [-0.00%]
Total CPU difference: 5721.7110773999775 / 5525.21221779996 [+3.56%]
There are no differences in images found by testdiff.
Branch CR26671 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]
Number of compiler warnings:
occt component :
Linux: 15 (15 on master)
Windows: 0 (0 on master)
products component :
Linux: 39 (39 on master)
Windows: 0 (0 on master)
Regressions/Differences/Improvements:
http://occt-tests/CR26671-master-occt-64/Debian70-64/summary.html
http://occt-tests/CR26671-master-occt-64/Windows-64-VC10/summary.html
Improvements:
de iges_1 O5
de iges_2 D9
de iges_3 A5
Failed:
bugs iges bug58_1, bug306
bugs modalg_2 bug22893
bugs modalg_6 bug26616
bugs xde bug15220
de iges_1 A1, C8, D1, F9, G5, H4, I1, I8, J3, L5, M3, P5, Q3, R3, R4
de iges_2 A1, E1, E9, F1, F4, G1, G7, H5, H9, I3
de iges_3 A4, A8, B2, B9, C8
Testing cases:
http://occt-tests/CR26671-master-occt-64/Debian70-64/bugs/heal/bug26671.html
http://occt-tests/CR26671-master-occt-64/Windows-64-VC10/bugs/heal/bug26671.html
bugs heal bug26671: OK
Testing on Linux:
occt component :
Total MEMORY difference: 90218873 / 89842573 [+0.42%]
Total CPU difference: 18235.059999999794 / 18238.63999999983 [-0.02%]
products component :
Total MEMORY difference: 25899214 / 25971259 [-0.28%]
Total CPU difference: 7082.549999999989 / 7206.699999999996 [-1.72%]
Testing on Windows:
occt component :
Total MEMORY difference: 55044709 / 55038974 [+0.01%]
Total CPU difference: 16931.44373419912 / 16399.948327199105 [+3.24%]
products component :
Total MEMORY difference: 16784064 / 16784150 [-0.00%]
Total CPU difference: 5721.7110773999775 / 5525.21221779996 [+3.56%]
There are no differences in images found by testdiff.
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: abv
Date: Mon Sep 21 06:08:22 2015 +0300
0026671: Infinite loop in ShapeFix_Wire::FixSelfIntersection()
Avoid possible infinite loops in ShapeFix_Wire::FixSelfIntersection() -- when needed, fix is repeated once instead of going back in the loop
[revision removed]
Detailed log of new commits:
Author: abv
Date: Mon Sep 21 06:08:22 2015 +0300
0026671: Infinite loop in ShapeFix_Wire::FixSelfIntersection()
Avoid possible infinite loops in ShapeFix_Wire::FixSelfIntersection() -- when needed, fix is repeated once instead of going back in the loop
Branch CR26671_2 is ready to be tested
Dear Commenter 2,
Branch CR26671_2 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]
Number of compiler warnings:
occt component :
Linux: 15 (15 on master)
Windows: 0 (0 on master)
products component :
Linux: 39 (39 on master)
Windows: 0 (0 on master)
Regressions/Differences/Improvements:
No regressions/differences
Testing cases:
http://occt-tests/CR26671-2-master-occt-64/Debian70-64/bugs/heal/bug26671.html
http://occt-tests/CR26671-2-master-occt-64/Windows-64-VC10/bugs/heal/bug26671.html
bugs heal bug26671: OK
Testing on Linux:
occt component :
Total MEMORY difference: 92486234 / 92156188 [+0.36%]
Total CPU difference: 18933.15999999898 / 18920.149999998986 [+0.07%]
products component :
Total MEMORY difference: 25933158 / 25980951 [-0.18%]
Total CPU difference: 7549.439999999991 / 7208.589999999996 [+4.73%]
Testing on Windows:
occt component :
http://occt-tests/CR26671-2-master-occt-64/Windows-64-VC10/diff-Windows-64-VC10.html
CPU v3d ivtk: 2.0592132000000003 / 1.1544074 [+78.38%]
CPU bugs stlvrml: 2.1528138000000006 / 1.2324079000000001 [+74.68%]
CPU bugs vis bug71: 1.1076071 / 0.2028013 [+446.15%]
CPU bugs vis bug24133_1: 1.0608068 / 0.1248008 [+750.00%]
CPU bugs vis bug136: 0.8268053 / 0.1248008 [+562.50%]
CPU bugs vis bug74: 0.9984064 / 0.2652017 [+276.47%]
CPU bugs mesh bug25469_3: 1.5288098 / 0.4992032 [+206.25%]
Total MEMORY difference: 56878522 / 56871217 [+0.01%]
Total CPU difference: 17495.496549898955 / 17117.22532509913 [+2.21%]
products component :
Total MEMORY difference: 16790991 / 16790438 [+0.00%]
Total CPU difference: 5487.335174999956 / 5526.49142599996 [-0.71%]
There are no differences in images found by testdiff.
Branch CR26671_2 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]
Number of compiler warnings:
occt component :
Linux: 15 (15 on master)
Windows: 0 (0 on master)
products component :
Linux: 39 (39 on master)
Windows: 0 (0 on master)
Regressions/Differences/Improvements:
No regressions/differences
Testing cases:
http://occt-tests/CR26671-2-master-occt-64/Debian70-64/bugs/heal/bug26671.html
http://occt-tests/CR26671-2-master-occt-64/Windows-64-VC10/bugs/heal/bug26671.html
bugs heal bug26671: OK
Testing on Linux:
occt component :
Total MEMORY difference: 92486234 / 92156188 [+0.36%]
Total CPU difference: 18933.15999999898 / 18920.149999998986 [+0.07%]
products component :
Total MEMORY difference: 25933158 / 25980951 [-0.18%]
Total CPU difference: 7549.439999999991 / 7208.589999999996 [+4.73%]
Testing on Windows:
occt component :
http://occt-tests/CR26671-2-master-occt-64/Windows-64-VC10/diff-Windows-64-VC10.html
CPU v3d ivtk: 2.0592132000000003 / 1.1544074 [+78.38%]
CPU bugs stlvrml: 2.1528138000000006 / 1.2324079000000001 [+74.68%]
CPU bugs vis bug71: 1.1076071 / 0.2028013 [+446.15%]
CPU bugs vis bug24133_1: 1.0608068 / 0.1248008 [+750.00%]
CPU bugs vis bug136: 0.8268053 / 0.1248008 [+562.50%]
CPU bugs vis bug74: 0.9984064 / 0.2652017 [+276.47%]
CPU bugs mesh bug25469_3: 1.5288098 / 0.4992032 [+206.25%]
Total MEMORY difference: 56878522 / 56871217 [+0.01%]
Total CPU difference: 17495.496549898955 / 17117.22532509913 [+2.21%]
products component :
Total MEMORY difference: 16790991 / 16790438 [+0.00%]
Total CPU difference: 5487.335174999956 / 5526.49142599996 [-0.71%]
There are no differences in images found by testdiff.
Mikhail, please indicate clearly the reason of switching issue to feedback and assigning to another person -- how should I guess your reasoning? If you think that the fix makes OCCT slower, this is not the case: I have compared yesterday state of CR-OCCT691-7 with current one (which contains fix for 26671) and the CPU difference is within 1% tolerance:
Total MEMORY difference: 58061293 / 58061146 [+0.00%]
Total CPU difference: 14640.21875 / 14586.6875 [+0.37%]
Total MEMORY difference: 58061293 / 58061146 [+0.00%]
Total CPU difference: 14640.21875 / 14586.6875 [+0.37%]
Dear Commenter 2,
Branch CR26671_2 is TESTED.
Branch CR26671_2 is TESTED.
Branch [archived branch] has been deleted by Commenter 1.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Commenter 1.
[revision removed]
[revision removed]
Related records