MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0024195Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2013-09-20 13:542013-12-19 13:58
Reporterabv 
Assigned Toabv 
PrioritynormalSeverityminor 
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version[OCCT] 6.7.0 
Target Version[OCCT] 6.7.0Fixed in Version[OCCT] 6.7.0 
Summary0024195: Use of uninitialized data in IntCurve_IntPolyPolyGen.gxx
DescriptionDuring testing of several fixes for #14108, 0024168 several new unstable regressions appeared in functionality not affected by the changes being tested (data exchange and offsets). These regressions appeared in build #148 of master branch, and previously in testing fix for #24108 on my local machine.

Running under debugger revealed access to uninitialized field in IntCurve_IntPolyPolyGen::findIntersect(), introduced by fix for #23587 (included in OCCT 6.5.5): when isFullPolygon is True, in case when IntCurve_ExactIntersectionPoint does not find a solution (NbRoots() returns 0), that solution is requested and uninitialized values of U and V returned by the tool are used in calculations, leading to floating-point errors.

It is not clear how to treat this situation correctly:
- returning if NbRoots() is zero causes several regressionss (see 0024108:0025601 for the list)
- putting "continue" or using ParamOn1 and ParamOn2 instead of U and V seems to work well when built with VC11 64-bit mode but causes problem with infinite memory allocation in test de iges_1 L8 when built by VC9 in 32-bit mode

Perhaps the correct way to treat the situation should be to ensure that IntCurve_ExactIntersectionPoint never fails. To be investigated.
Steps To ReproduceDE test cases showing the problem in master run #148:

bugs iges bug23377
de step_1 E2 E9 K2 O1 R1 S2
de step_2 F7 I7
de step_4 A1
de step_5 A1

The characteristic point is exception reported by tpstat command in the log:
...
     1 F:SHELL_BASED_SURFACE_MODEL: Exeption is raised. Entity was not translated.

Offset test cases (fail with FLT_INVALID_OPERATION):

offset wire_closed_outside_0_075 G6 H2
TagsNo tags attached.
Test case numberNot needed
Attached Files

- Relationships

-  Notes
(0025730)
ifv (developer)
2013-09-25 14:27

CR24195 is ready for rewieving and testing.
Branch contains modifications that are similar to modifications made by ABV for 24108, but problems with de iges_1 L8 and some other regressions are not reproduced.
(0025731)
ifv (developer)
2013-09-25 14:28

Ok
(0025758)
mkv (tester)
2013-09-27 07:37

Dear BugMaster,

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

Number of compiler warnings:

occt component :
Linux: 505 (506 on master)
Windows: 32 (31 on master)

New warning compilation on Windows platform:
IntCurve_IntPolyPolyGen.gxx:875, MSBuild, Priority: Normal
'aNbRoots' : local variable is initialized but not referenced

products component :
Linux: 191 (190 on master)
Windows: 287 (287 on master)

Regressions/differences:
http://occt-tests/CR24195-master-occt/Debian60-64/summary.html [^]
http://occt-tests/CR24195-master-occt/Windows-32-VC9/summary.html [^]
de iges_1(001) R8
de iges_2(002) I7

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 365990016 / 365791512
Total CPU difference: 53875.40000000022 / 42156.03000000098

Testing on Windows:
Total MEMORY difference: 428455932 / 428640164
Total CPU difference: 47005.625 / 47587.203125

There are not differences in images found by testdiff.
(0025767)
abv (manager)
2013-09-27 10:45

In my understanding, the two reported differences are not regressions (the latter is rather improvement since checkshape error has disappeared).
(0025775)
gka (developer)
2013-09-27 12:54

I agree that listed above test cases are not regressions.
Test cases:
de iges_1(001) R8
de iges_2(002) I7

should be updated.
(0025776)
mkv (tester)
2013-09-27 14:06

Dear abv,

There is new warning compilation on Windows platform:
IntCurve_IntPolyPolyGen.gxx:875, MSBuild, Priority: Normal
'aNbRoots' : local variable is initialized but not referenced
(0025778)
abv (manager)
2013-09-27 15:54

I have pushed the code with slight changes (removal of unused variable pointed out by mkv, swapping of continue and return, and removal of tabs) to branch CR24195_1. Please review.

Besides, I noticed that first method Perform() in this gxx file has internal variable AnErrorOccurred which is used but never changes. Hence, a piece of code aimed to deal with error situation is apparently never called. Please consider whether there is an error in that to be fixed (at least, remove that variable and inactive code).
(0025793)
ifv (developer)
2013-09-30 12:27

CR24195_2 is reafy to testing
Unnecessary code is removed.
(0025830)
mkv (tester)
2013-10-02 08:32

Dear BugMaster,

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

Number of compiler warnings:

occt component :
Linux: 426 (426 on master)
Windows: 24 (24 on master)

products component :
Linux: 189 (190 on master)
Windows: 287 (287 on master)

Regressions/Differences:

http://occt-tests/CR24195-2-master-occt/Debian60-64/bugs/moddata_2/bug23587.html [^]
http://occt-tests/CR24195-2-master-occt/Windows-32-VC9/bugs/moddata_2/bug23587.html [^]
bugs moddata_2(012) bug23587

http://occt-tests/CR24195-2-master-occt/Debian60-64/de/iges_1/P5.html [^]
http://occt-tests/CR24195-2-master-occt/Debian60-64/de/iges_1/R8.html [^]
http://occt-tests/CR24195-2-master-occt/Windows-32-VC9/de/iges_1/P5.html [^]
http://occt-tests/CR24195-2-master-occt/Windows-32-VC9/de/iges_1/R8.html [^]
de iges_1(001) P5, R8

http://occt-tests/CR24195-2-master-occt/Debian60-64/de/iges_2/H9.html [^]
de iges_2(002) H9 - only on Linux

http://occt-tests/CR24195-2-master-occt/Debian60-64/de/iges_2/I7.html [^]
http://occt-tests/CR24195-2-master-occt/Windows-32-VC9/de/iges_2/I7.html [^]
de iges_2(002) I7

http://occt-tests/CR24195-2-master-occt/Debian60-64/de/step_3/E6.html [^]
http://occt-tests/CR24195-2-master-occt/Windows-32-VC9/de/step_3/E6.html [^]
de step_3(006) E6

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 364618636 / 364507312
Total CPU difference: 41584.19000000114 / 44036.90000000129

Testing on Windows:
Total MEMORY difference: 432564408 / 432531108
Total CPU difference: 37209.25 / 34282.875

There are not differences in images found by testdiff.
(0025841)
ifv (developer)
2013-10-02 13:14

CR24195_2 with fix for regressions is ready for testing
(0025842)
ifv (developer)
2013-10-02 13:14

CR24195_2 with fix for regressions is ready for testing
(0025879)
apn (administrator)
2013-10-03 16:28

Dear BugMaster,

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

Number of compiler warnings:

occt component :
Linux: 426 (426 on master)
Windows: 24 (24 on master)

products component :
Linux: 190 (190 on master)
Windows: 287 (287 on master)

Regressions/Differences:
No regressions/differences
Test cases de/iges_1/R8 and de/iges_2/I7 were modified according to new data

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 366153100 / 366159080
Total CPU difference: 46481.86000000062 / 44691.370000001305

Testing on Windows:
Total MEMORY difference: 432915796 / 433120940
Total CPU difference: 36949.984375 / 34518.96875

There are not differences in images found by testdiff.

- Related Changesets
occt: master 1665a85a
Timestamp: 2013-10-03 12:30:51
Author: ifv
Committer: bugmaster
Details ] Diff ]
0024195: Use of uninitialized data in IntCurve_IntPolyPolyGen.gxx

1. Inserting in method IntCurve_IntPolyPolyGen::findIntersect() correct treatment of situation when intersection algorithm cannot find a solution.
2. Modification test cases de/iges_1/R8 and de/iges_2/I7 according to new data
mod - src/IntCurve/IntCurve_ExactIntersectionPoint.gxx Diff ] File ]
mod - src/IntCurve/IntCurve_IntPolyPolyGen.gxx Diff ] File ]
mod - tests/de/iges_1/R8 Diff ] File ]
mod - tests/de/iges_2/I7 Diff ] File ]

- Issue History
Date Modified Username Field Change
2013-09-20 13:54 abv New Issue
2013-09-20 13:54 abv Assigned To => ifv
2013-09-20 13:54 abv Relationship added related to 0024108
2013-09-20 13:56 abv Relationship added related to 0023587
2013-09-25 14:27 ifv Note Added: 0025730
2013-09-25 14:27 ifv Status new => resolved
2013-09-25 14:28 ifv Note Added: 0025731
2013-09-25 14:28 ifv Status resolved => reviewed
2013-09-25 14:37 mkv Assigned To ifv => mkv
2013-09-27 07:37 mkv Note Added: 0025758
2013-09-27 07:37 mkv Assigned To mkv => ifv
2013-09-27 07:37 mkv Status reviewed => assigned
2013-09-27 10:45 abv Note Added: 0025767
2013-09-27 10:47 abv Assigned To ifv => gka
2013-09-27 12:54 gka Note Added: 0025775
2013-09-27 12:54 gka Status assigned => resolved
2013-09-27 12:54 gka Status resolved => reviewed
2013-09-27 14:06 mkv Note Added: 0025776
2013-09-27 14:06 mkv Assigned To gka => abv
2013-09-27 14:06 mkv Status reviewed => feedback
2013-09-27 15:54 abv Note Added: 0025778
2013-09-27 15:54 abv Assigned To abv => ifv
2013-09-27 15:54 abv Status feedback => resolved
2013-09-30 12:27 ifv Note Added: 0025793
2013-09-30 12:27 ifv Status resolved => reviewed
2013-09-30 15:50 mkv Assigned To ifv => mkv
2013-10-02 08:32 mkv Note Added: 0025830
2013-10-02 08:33 mkv Assigned To mkv => ifv
2013-10-02 08:33 mkv Status reviewed => assigned
2013-10-02 13:14 ifv Note Added: 0025841
2013-10-02 13:14 ifv Status assigned => resolved
2013-10-02 13:14 ifv Note Added: 0025842
2013-10-02 13:14 ifv Status resolved => reviewed
2013-10-02 14:21 mkv Assigned To ifv => mkv
2013-10-03 16:28 apn Note Added: 0025879
2013-10-03 16:29 apn Test case number => Not needed
2013-10-03 16:29 apn Assigned To mkv => bugmaster
2013-10-03 16:29 apn Status reviewed => tested
2013-10-04 12:48 bugmaster Changeset attached => occt master 1665a85a
2013-10-04 12:48 bugmaster Status tested => verified
2013-10-04 12:48 bugmaster Resolution open => fixed
2013-10-04 13:59 bugmaster Assigned To bugmaster => abv
2013-10-04 13:59 bugmaster Status verified => assigned
2013-10-04 13:59 bugmaster Status assigned => resolved
2013-10-04 13:59 bugmaster Status resolved => reviewed
2013-10-04 13:59 bugmaster Status reviewed => verified
2013-12-19 13:52 bugmaster Status verified => closed
2013-12-19 13:58 bugmaster Fixed in Version => 6.7.0


Copyright © 2000 - 2020 MantisBT Team
Powered by Mantis Bugtracker