View Issue Details

IDProjectCategoryView StatusLast Update
0023838CommunityOCCT:Modeling Datapublic2019-04-08 12:18
ReporterMauro Mariotti Assigned Toapn  
PrioritynormalSeveritycrash 
Status closedResolutionfixed 
PlatformWindowsOSVC++ 2010 
Product Version6.5.3 
Target Version7.4.0Fixed in Version7.4.0 
Summary0023838: Modeling Data - Standard_OutOfRange in Geom_OffsetSurface::LocalDN (called by BRepFill_PipeShell)
DescriptionMaking a sweep with an offset surface as a spine support, the evaluation of high order derivatives crashes.

This is the call stack:

     TKernel.dll!Standard_OutOfRange::Raise(const char * const AString=0x0000000000000000) Line 12 + 0xc7 bytes C++
     TKG3d.dll!derivatives(int MaxOrder=0, int MinOrder=1, const double U=100.00000000000000, const double V=-6.7871042119804770e-011, const Handle_Geom_Surface & basisSurf={...}, const int Nu=1, const int Nv=2, const unsigned int AlongU=0, const unsigned int AlongV=0, const Handle_Geom_BSplineSurface & L={...}, TColgp_Array2OfVec & DerNUV={...}, TColgp_Array2OfVec & DerSurf={...}) Line 195 + 0xde bytes C++
     TKG3d.dll!Geom_OffsetSurface::SetDN(const double U=100.00000000000000, const double V=-6.7871042119804770e-011, const int Nu=1, const int Nv=2, const gp_Vec & D1U={...}, const gp_Vec & D1V={...}) Line 1890 C++
     TKG3d.dll!Geom_OffsetSurface::LocalDN(const double U=100.00000000000000, const double V=-6.7871042119804770e-011, const int USide=-1, const int VSide=0, const int Nu=1, const int Nv=2) Line 970 + 0x57 bytes C++
     TKG3d.dll!GeomAdaptor_Surface::DN(const double U=100.00000000000000, const double V=-6.7871042119804770e-011, const int Nu=1, const int Nv=2) Line 776 + 0x5b bytes C++
     TKBRep.dll!BRepAdaptor_Surface::DN(const double U=100.00000000000000, const double V=-6.7871042119804770e-011, const int Nu=1, const int Nv=2) Line 285 + 0x5e bytes C++
     TKGeomAlgo.dll!NormalD1(const double U=100.00000000000000, const double V=-6.7871042119804770e-011, const Handle_Adaptor3d_HSurface & Surf={...}, gp_Dir & Normal={...}, gp_Vec & D1UNormal={...}, gp_Vec & D1VNormal={...}) Line 172 + 0x7a bytes C++
     TKGeomAlgo.dll!GeomFill_Darboux::D1(const double Param=0.00000000000000000, gp_Vec & Tangent={...}, gp_Vec & DTangent={...}, gp_Vec & Normal={...}, gp_Vec & DNormal={...}, gp_Vec & BiNormal={...}, gp_Vec & DBiNormal={...}) Line 330 C++
     TKGeomAlgo.dll!GeomFill_CurveAndTrihedron::D1(const double Param=0.00000000000000000, gp_Mat & M={...}, gp_Vec & V={...}, gp_Mat & DM={...}, gp_Vec & DV={...}, TColgp_Array1OfPnt2d & __formal={...}, TColgp_Array1OfPnt2d & __formal={...}) Line 154 + 0x8d bytes C++
     TKGeomAlgo.dll!GeomFill_SweepFunction::D1(const double Param=0.00000000000000000, const double __formal=0.00000000000000000, const double __formal=0.00000000000000000, TColgp_Array1OfPnt & Poles={...}, TColgp_Array1OfVec & DPoles={...}, TColgp_Array1OfPnt2d & Poles2d={...}, TColgp_Array1OfVec2d & DPoles2d={...}, TColStd_Array1OfReal & Weigths={...}, TColStd_Array1OfReal & DWeigths={...}) Line 103 + 0xb2 bytes C++
     TKGeomBase.dll!Approx_SweepApproximation::Perform(const double First=0.00000000000000000, const double Last=100.00000000000000, const double Tol3d=0.00010000000000000000, const double BoundTol=0.00010000000000000000, const double Tol2d=1.0000000000000001e-005, const double TolAngular=0.010000000000000000, GeomAbs_Shape Continuity=GeomAbs_C1, const int Degmax=11, const int Segmax=30) Line 196 + 0x145 bytes C++
     TKGeomAlgo.dll!GeomFill_Sweep::BuildAll(GeomAbs_Shape Continuity=GeomAbs_C1, const int Degmax=11, const int Segmax=30) Line 272 C++
     TKGeomAlgo.dll!GeomFill_Sweep::Build(const Handle_GeomFill_SectionLaw & Section={...}, GeomFill_ApproxStyle Methode=GeomFill_Location, GeomAbs_Shape Continuity=GeomAbs_C1, const int Degmax=11, const int Segmax=30) Line 229 + 0x24 bytes C++
     TKBool.dll!BRepFill_Sweep::BuildShell(BRepFill_TransitionStyle __formal=BRepFill_Round, const int IFirst=1, const int ILast=2, const double ExtendFirst=0.00000000000000000, const double ExtendLast=0.00000000000000000) Line 2007 C++
     TKBool.dll!BRepFill_Sweep::Build(BRepFill_TransitionStyle Transition=BRepFill_Round, GeomFill_ApproxStyle Approx=GeomFill_Location, GeomAbs_Shape Continuity=GeomAbs_C2, const int Degmax=11, const int Segmax=30) Line 2534 + 0x41 bytes C++
     TKBool.dll!BRepFill_PipeShell::Build() Line 636 C++
Steps To ReproduceUnzip the attached file and give the following commands in DRAW.

restore profile.brep prof
restore SpineAndSupport.brep comp
explode comp
renamevar comp_1 supp
renamevar comp_2 spine
mksweep spine
setsweep -DX supp
addsweep prof
buildsweep r -R
TagsNo tags attached.
Test case numberbugs modalg_7 bug23838

Attached Files

  • SweepData.zip (5,460 bytes)

Relationships

has duplicate 0030586 closedbugmaster Open CASCADE Modeling Data - Standard_OutOfRange within GeomEvaluator_OffsetSurface::CalculateDN() 

Activities

Mauro Mariotti

2013-03-19 19:37

reporter  

SweepData.zip (5,460 bytes)

mkv

2017-08-03 17:09

tester   ~0069090

Problem described in issue is reproduced on current state of OCCT.

git

2019-03-16 16:14

administrator   ~0083020

Branch CR23838 has been created by kgv.

SHA-1: 9ef9fc3995c4290030ef2a5d1d702eef0a7b4173


Detailed log of new commits:

Author: kgv
Date: Sat Mar 16 16:08:27 2019 +0300

    0023838: Modeling Data - Standard_OutOfRange in Geom_OffsetSurface::LocalDN (called by BRepFill_PipeShell)
    
    Fixed incorrect array allocation within GeomEvaluator_OffsetSurface::CalculateDN()
    and protection against assigning out-of-range values in case of non-square
    number of U and V derivatives on surface.

kgv

2019-03-16 17:48

developer   ~0083023

Patch is ready for review.

http://jenkins-test-12.nnov.opencascade.com:8080/view/CR23838-master-KGV/

msv

2019-03-18 12:52

developer   ~0083042

Please analyze diff in image on products linux:
IMAGE sat read_parallel_1 E2: E2.png differs

kgv

2019-03-19 07:51

developer   ~0083064

I've tested this patch in scope of another branch, and there is no such image difference:
http://occt-tests/CR29181_2-CR29181_2-KGV-Products/Debian80-64/sat/read_parallel_1/E2.html

So I believe that the problem is at different location and test case is unstable.

msv

2019-03-19 10:04

developer   ~0083071

Reviewed.

apn

2019-03-19 12:09

administrator   ~0083106

Combination -
OCCT branch : CR23838
master SHA - 9ef9fc3995c4290030ef2a5d1d702eef0a7b4173
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: 16585.60000000006 / 16599.24999999996 [-0.08%]
Products
Total CPU difference: 9077.840000000033 / 9092.71000000004 [-0.16%]
Windows-64-VC14:
OCCT
Total CPU difference: 18009.203125 / 17985.28125 [+0.13%]
Products
Total CPU difference: 10469.625 / 10460.953125 [+0.08%]

Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

git

2019-04-08 12:18

administrator   ~0083501

Branch CR23838 has been deleted by inv.

SHA-1: 9ef9fc3995c4290030ef2a5d1d702eef0a7b4173

Related Changesets

occt: master cb6cad7d

2019-03-16 13:08:27

kgv


Committer: apn Details Diff
0023838: Modeling Data - Standard_OutOfRange in Geom_OffsetSurface::LocalDN (called by BRepFill_PipeShell)

Fixed incorrect array allocation within GeomEvaluator_OffsetSurface::CalculateDN()
and protection against assigning out-of-range values in case of non-square
number of U and V derivatives on surface.
Affected Issues
0023838
mod - src/GeomEvaluator/GeomEvaluator_OffsetSurface.cxx Diff File
mod - tests/bugs/modalg_7/bug23838 Diff File

Issue History

Date Modified Username Field Change
2013-03-19 19:37 Mauro Mariotti New Issue
2013-03-19 19:37 Mauro Mariotti Assigned To => jgv
2013-03-19 19:37 Mauro Mariotti File Added: SweepData.zip
2017-08-03 17:09 mkv Test case number => bugs modalg_7 bug23838
2017-08-03 17:09 mkv Note Added: 0069090
2019-03-16 16:10 kgv Relationship added has duplicate 0030586
2019-03-16 16:11 kgv Summary Standard_OutOfRange in Geom_OffsetSurface::LocalDN (called by BRepFill_PipeShell) => Modeling Data - Standard_OutOfRange in Geom_OffsetSurface::LocalDN (called by BRepFill_PipeShell)
2019-03-16 16:14 git Note Added: 0083020
2019-03-16 16:17 kgv Target Version => 7.4.0
2019-03-16 17:48 kgv Note Added: 0083023
2019-03-16 17:48 kgv Assigned To jgv => msv
2019-03-16 17:48 kgv Priority urgent => normal
2019-03-16 17:48 kgv Status new => resolved
2019-03-18 12:52 msv Note Added: 0083042
2019-03-18 12:52 msv Assigned To msv => kgv
2019-03-18 12:52 msv Status resolved => assigned
2019-03-19 07:51 kgv Note Added: 0083064
2019-03-19 09:53 kgv Assigned To kgv => msv
2019-03-19 09:53 kgv Status assigned => feedback
2019-03-19 10:04 msv Note Added: 0083071
2019-03-19 10:04 msv Assigned To msv => bugmaster
2019-03-19 10:04 msv Status feedback => reviewed
2019-03-19 12:09 apn Note Added: 0083106
2019-03-19 12:09 apn Status reviewed => tested
2019-03-24 18:54 apn Changeset attached => occt master cb6cad7d
2019-03-24 18:54 apn Assigned To bugmaster => apn
2019-03-24 18:54 apn Status tested => verified
2019-03-24 18:54 apn Resolution open => fixed
2019-04-08 12:18 git Note Added: 0083501