MantisBT - Open CASCADE
View Issue Details
0030581Open CASCADE[OCCT] OCCT:Modeling Datapublic2019-03-16 09:292019-04-08 12:18
kgv 
apn 
normalminor 
verifiedfixed 
[OCCT] 5.2.2 
[OCCT] 7.4.0* 
perf modalg bug26443_1
0030581: Modeling Data - Standard_OutOfRange within Geom_BSplineSurface::LocateV()
Geom_BSplineSurface::LocateV() does not properly check array bounds leading to Standard_OutOfRange in some cases, but this check is disabled at beginning of file.

Test case perf/modalg/bug26443_1 triggers this scenario.
It also produces unstable screenshots, which might be caused by reading undefined out-of-range values.

Note that function BSplCLib::Hunt() might return result outside of array range.
In particular, this happens for very close values, which are probably occur due to serialization issues (e.g. model has been once saved in text .brep format).
It looks reasonable adding first/last values with some tolerance.
From other side, almost all existing BSplCLib::Hunt() calls clamps result to a valid range anyway.
perf modalg bug26443_1
No tags attached.
Issue History
2019-03-16 09:29kgvNew Issue
2019-03-16 09:29kgvAssigned To => msv
2019-03-16 10:29gitNote Added: 0083009
2019-03-16 10:42kgvProduct Version7.3.0 => 5.2.2
2019-03-16 11:12kgvDescription Updatedbug_revision_view_page.php?rev_id=20864#r20864
2019-03-16 11:35kgvDescription Updatedbug_revision_view_page.php?rev_id=20865#r20865
2019-03-16 12:55kgvNote Added: 0083014
2019-03-16 12:55kgvStatusnew => resolved
2019-03-18 11:50msvNote Added: 0083037
2019-03-18 11:50msvAssigned Tomsv => bugmaster
2019-03-18 11:50msvStatusresolved => reviewed
2019-03-18 15:34apnTest case number => perf modalg bug26443_1
2019-03-18 15:34apnNote Added: 0083047
2019-03-18 15:34apnStatusreviewed => tested
2019-03-24 18:54apnChangeset attached => occt master 437ef771
2019-03-24 18:54apnAssigned Tobugmaster => apn
2019-03-24 18:54apnStatustested => verified
2019-03-24 18:54apnResolutionopen => fixed
2019-04-08 12:18gitNote Added: 0083505

Notes
(0083009)
git   
2019-03-16 10:29   
Branch CR30581 has been created by kgv.

SHA-1: a4ccb27d6a61602f61d33cb4a85f0ae4f7c347c3


Detailed log of new commits:

Author: kgv
Date: Sat Mar 16 09:33:37 2019 +0300

    0030581: Modeling Data - Standard_OutOfRange within Geom_BSplineSurface::LocateV()
    
    Geom2d_BSplineCurve::LocateU(),Geom_BSplineCurve::LocateU, Law_BSpline::LocateU()
    Geom_BSplineSurface::LocateU() and Geom_BSplineSurface::LocateV()
    have been corrected with missing range checks.
    BSplCLib::Hunt() documentation has been corrected to reflect its actual implementation.
(0083014)
kgv   
2019-03-16 12:55   
Patch is ready for review.

http://jenkins-test-12.nnov.opencascade.com:8080/view/CR30581-master-KGV [^]
(0083037)
msv   
2019-03-18 11:50   
Reviewed.
(0083047)
apn   
2019-03-18 15:34   
Combination -
OCCT branch : CR30581
master SHA - a4ccb27d6a61602f61d33cb4a85f0ae4f7c347c3
d67d4b811012eef8913d3c535c29654d0acf3c4c
Products branch : master SHA - 19cf12d4f918562ea1456aa224c6f7a64b9c4ad7
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Debian80-64:
OCCT
Total CPU difference: 16608.149999999994 / 16599.24999999996 [+0.05%]
Products
Total CPU difference: 9091.250000000035 / 9092.71000000004 [-0.02%]
Windows-64-VC14:
OCCT
Total CPU difference: 17990.296875 / 17985.28125 [+0.03%]
Products
Total CPU difference: 10473.046875 / 10460.953125 [+0.12%]

Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention
(0083505)
git   
2019-04-08 12:18   
Branch CR30581 has been deleted by inv.

SHA-1: a4ccb27d6a61602f61d33cb4a85f0ae4f7c347c3