View Issue Details

IDProjectCategoryView StatusLast Update
0031041CommunityOCCT:Modeling Algorithmspublic2021-09-14 16:51
Reporterdenix56 Assigned Tojgv  
PrioritynormalSeveritycrash 
Status assignedResolutionopen 
PlatformMSVC 2017 x64OSWindows 
Product Version7.4.0 
Summary0031041: Modeling Algorithms - Crash in BRepOffsetAPI_MakePipeShell
DescriptionThe following code causes access to null shape and as a result - crash. I think it was caused by 0029204: BRepOffsetAPI_MakePipeShell produces invalid result and raises exception in Draw

double tol = 6.2377018066812730e-07;

sweep.SetTransitionMode(BRepBuilderAPI_TransitionMode::BRepBuilderAPI_RightCorner);
sweep.Add(profile, location, Standard_False, Standard_False);
sweep.SetTolerance(tol, tol);
sweep.Build();


The fix is to add in BRepFill_TrimShellCorner::ChooseSection check if firstedge and lastedge is null.
Steps To Reproducerestore location.brep loc
restore profile.brep pr
restore profile.brep sp
mksweep sp
addsweep pr loc
buildsweep r -C
TagsNo tags attached.
Test case number

Attached Files

  • profile.brep (1,069 bytes)
  • location.brep (228 bytes)
  • spine.brep (796 bytes)

Relationships

related to 0032444 closedsmoskvin BRepOffsetAPI_MakePipeShell crash when using -DT mode and DT_ShapeDivide on the spine 

Activities

denix56

2019-10-07 11:45

reporter  

profile.brep (1,069 bytes)

denix56

2019-10-07 11:45

reporter  

location.brep (228 bytes)

msv

2019-10-14 14:46

developer   ~0088105

Last edited: 2019-10-14 14:47

It seems the test case is incomplete. What are the parameters passed to the constructor of the algorithm? Where is the spine contour?

I would expect to reproduce the bug using the following draw script:

mksweep sp
addsweep pr loc
buildsweep r -C

The shape sp is missing in your input data.

denix56

2019-10-15 15:06

reporter  

spine.brep (796 bytes)

denix56

2019-10-15 15:10

reporter   ~0088137

Sorry, forgot about it. I`ve uploaded the missing file

Here is the full code
BRepOffsetAPI_MakePipeShell sweep(spine);
sweep.SetTransitionMode(BRepBuilderAPI_TransitionMode::BRepBuilderAPI_RightCorner);
sweep.Add(profile, location, Standard_False, Standard_False);
sweep.SetTolerance(tol, tol);
sweep.Build();

denix56

2019-10-16 16:45

reporter   ~0088185

Reminder sent to: msv

msv

2019-10-16 18:54

developer   ~0088194

I'll look at it soon. Just too much urgent work currently.

msv

2019-10-17 17:21

developer   ~0088264

I have added in steps to reproduce the draw script corresponding to the code snippet.

msv

2019-10-17 17:22

developer   ~0088265

Now it gives access violation exception.

denix56

2019-10-17 19:37

reporter   ~0088282

Correct, I have the same behavior. The reason is described in my first post. In some cases the method in BRepFill_TrimShellCorner returns null shape and we do not check if it is null. (We do it only in one of 3 places where the method is used).

Issue History

Date Modified Username Field Change
2019-10-07 11:45 denix56 New Issue
2019-10-07 11:45 denix56 Assigned To => msv
2019-10-07 11:45 denix56 File Added: profile.brep
2019-10-07 11:45 denix56 File Added: location.brep
2019-10-14 14:46 msv Note Added: 0088105
2019-10-14 14:46 msv Assigned To msv => denix56
2019-10-14 14:46 msv Status new => feedback
2019-10-14 14:47 msv Note Edited: 0088105
2019-10-15 15:06 denix56 File Added: spine.brep
2019-10-15 15:10 denix56 Note Added: 0088137
2019-10-16 16:45 denix56 Note Added: 0088185
2019-10-16 18:54 msv Note Added: 0088194
2019-10-17 17:20 msv Steps to Reproduce Updated
2019-10-17 17:21 msv Note Added: 0088264
2019-10-17 17:22 msv Note Added: 0088265
2019-10-17 17:22 msv Assigned To denix56 => jgv
2019-10-17 17:22 msv Status feedback => assigned
2019-10-17 19:37 denix56 Note Added: 0088282
2019-12-17 13:48 kgv Summary Crash in BRepOffsetAPI_MakePipeShell => Modeling Algorithms - Crash in BRepOffsetAPI_MakePipeShell
2019-12-17 13:48 kgv Product Version => 7.4.0
2021-09-14 16:51 msv Relationship added related to 0032444