DiscussionsIssue archiveOCCT:Shape Healing

Archived issue #0026671

Infinite loop in ShapeFix_Wire::FixSelfIntersection()

CommunityOCCT:Shape Healingclosed16 public notes

Search issues

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.

Steps to reproduce

igesbrep bug_10674.igs b

Public activity

16 archived notes

Participants are labeled by their role within this record.

01Commenter 3
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
02Commenter 4
The issue is a regression vs 6.8.0 and most likely was introduced as part of #0025013.
03Commenter 4
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.
04Commenter 4
Branch CR26671 is ready to be tested
05Commenter 3
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
06Commenter 6
Dear Commenter 2,
Branch CR26671 was rebased on current master of occt git-repository.
[revision removed]
07Commenter 7
Dear gka,
could you please review following test case
bugs heal bug26671
08Commenter 3
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

09Commenter 9
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.

10Commenter 3
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
11Commenter 11
Branch CR26671_2 is ready to be tested
12Commenter 12
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.
13Commenter 13
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%]
14Commenter 14
Dear Commenter 2,
Branch CR26671_2 is TESTED.
15Commenter 3
Branch [archived branch] has been deleted by Commenter 1.

[revision removed]
16Commenter 3
Branch [archived branch] has been deleted by Commenter 1.

[revision removed]

Related records