View Issue Details

IDProjectCategoryView StatusLast Update
0025794CommunityOCCT:Modeling Algorithmspublic2015-05-14 15:31
ReporterIstvan Csanady Assigned Tobugmaster  
PrioritynormalSeveritycrash 
Status closedResolutionfixed 
PlatformMac OSOSOSX 10.10.2 
Target Version6.9.0Fixed in Version6.9.0 
Summary0025794: Boolean operation crashes, when running from a new thread
DescriptionSee the attached code. It should not crash, since nothing is running on other threads (so it is not the question of thread safety). This issue probably exists in single threaded execution as well, it just does not cause any problem in that case. Valgrind didn't reveal any problem. Tested it with the current master branch.
Steps To ReproduceNot required
TagsNo tags attached.
Test case number

Attached Files

  • code.zip (9,307 bytes)

Relationships

related to 0025746 closedbugmaster Open CASCADE Excessive memory use in math_Matrix 

Activities

Istvan Csanady

2015-02-04 15:26

developer  

code.zip (9,307 bytes)

Istvan Csanady

2015-02-04 15:35

developer   ~0037072

Callstack:

#0 0x000000010067621b in math_FunctionSetRoot::Perform(math_FunctionSetWithDerivatives&, math_Vector const&, math_Vector const&, math_Vector const&, unsigned int) at /Users/icsanady/occt_git/occt/src/math/math_FunctionSetRoot.cxx:709
0000001 0x00000001002f1ad7 in GeomInt_TheImpPrmSvSurfacesOfWLApprox::Compute(double&, double&, double&, double&, gp_Pnt&, gp_Vec&, gp_Vec2d&, gp_Vec2d&) at /Users/icsanady/occt_git/occt/adm/mac/xcd/../../../inc/ApproxInt_ImpPrmSvSurfaces.gxx:320
0000002 0x00000001002f001b in GeomInt_TheImpPrmSvSurfacesOfWLApprox::TangencyOnSurf1(double, double, double, double, gp_Vec2d&) at /Users/icsanady/occt_git/occt/adm/mac/xcd/../../../inc/ApproxInt_ImpPrmSvSurfaces.gxx:93
#3 0x00000001002f695b in GeomInt_TheMultiLineOfWLApprox::Tangency(int, TColgp_Array1OfVec&, TColgp_Array1OfVec2d&) const at /Users/icsanady/occt_git/occt/adm/mac/xcd/../../../inc/ApproxInt_MultiLine.gxx:307
#4 0x00000001002eb0fb in GeomInt_TheMultiLineToolOfWLApprox::Tangency(GeomInt_TheMultiLineOfWLApprox const&, int, TColgp_Array1OfVec&, TColgp_Array1OfVec2d&) at /Users/icsanady/occt_git/occt/adm/mac/xcd/../../../inc/ApproxInt_MultiLineTool.lxx:78
#5 0x00000001002e3439 in GeomInt_TheComputeLineOfWLApprox::FirstTangencyVector(GeomInt_TheMultiLineOfWLApprox const&, int, math_Vector&) const at /Users/icsanady/occt_git/occt/adm/mac/xcd/../../../inc/Approx_BSplComputeLine.gxx:207
#6 0x00000001002e9b51 in GeomInt_TheComputeLineOfWLApprox::Interpol(GeomInt_TheMultiLineOfWLApprox const&) at /Users/icsanady/occt_git/occt/adm/mac/xcd/../../../inc/Approx_BSplComputeLine.gxx:1309
0000007 0x00000001002e85a0 in GeomInt_TheComputeLineOfWLApprox::Compute(GeomInt_TheMultiLineOfWLApprox const&, int, int, math_Vector&, TColStd_Array1OfReal const&, TColStd_Array1OfInteger&) at /Users/icsanady/occt_git/occt/adm/mac/xcd/../../../inc/Approx_BSplComputeLine.gxx:914
0000008 0x00000001002e67f9 in GeomInt_TheComputeLineOfWLApprox::Perform(GeomInt_TheMultiLineOfWLApprox const&) at /Users/icsanady/occt_git/occt/adm/mac/xcd/../../../inc/Approx_BSplComputeLine.gxx:676
0000009 0x00000001002ff40a in GeomInt_WLApprox::Perform(Handle_Adaptor3d_HSurface const&, IntSurf_Quadric const&, Handle_IntPatch_WLine const&, unsigned int, unsigned int, unsigned int, int, int) at /Users/icsanady/occt_git/occt/adm/mac/xcd/../../../inc/ApproxInt_Approx.gxx:850
#10 0x00000001002fea11 in GeomInt_WLApprox::Perform(Handle_Adaptor3d_HSurface const&, Handle_Adaptor3d_HSurface const&, Handle_IntPatch_WLine const&, unsigned int, unsigned int, unsigned int, int, int) at /Users/icsanady/occt_git/occt/adm/mac/xcd/../../../inc/ApproxInt_Approx.gxx:634
0000011 0x00000001000b96b6 in IntTools_FaceFace::MakeCurve(int, Handle_Adaptor3d_TopolTool const&, Handle_Adaptor3d_TopolTool const&) at /Users/icsanady/occt_git/occt/src/IntTools/IntTools_FaceFace.cxx:1860
#12 0x00000001000b0a38 in IntTools_FaceFace::Perform(TopoDS_Face const&, TopoDS_Face const&) at /Users/icsanady/occt_git/occt/src/IntTools/IntTools_FaceFace.cxx:769
0000013 0x0000000100033e22 in BOPAlgo_FaceFace::Perform() at /Users/icsanady/occt_git/occt/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx:156
0000014 0x0000000100032850 in BOPCol_TBBFunctor<BOPAlgo_FaceFace, BOPCol_NCVector<BOPAlgo_FaceFace> >::operator()(serial_range<int> const&) const at /Users/icsanady/occt_git/occt/adm/mac/xcd/../../../inc/BOPCol_TBB.hxx:107
0000015 0x000000010002af32 in BOPCol_TBBCnt<BOPCol_TBBFunctor<BOPAlgo_FaceFace, BOPCol_NCVector<BOPAlgo_FaceFace> >, BOPCol_NCVector<BOPAlgo_FaceFace> >::Perform(unsigned int, BOPCol_NCVector<BOPAlgo_FaceFace>&) at /Users/icsanady/occt_git/occt/adm/mac/xcd/../../../inc/BOPCol_TBB.hxx:147
0000016 0x000000010001f30b in BOPAlgo_PaveFiller::PerformFF() at /Users/icsanady/occt_git/occt/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx:273
0000017 0x00000001000075f6 in BOPAlgo_PaveFiller::PerformInternal() at /Users/icsanady/occt_git/occt/src/BOPAlgo/BOPAlgo_PaveFiller.cxx:262
0000018 0x00000001000073b7 in BOPAlgo_PaveFiller::Perform() at /Users/icsanady/occt_git/occt/src/BOPAlgo/BOPAlgo_PaveFiller.cxx:202
0000019 0x0000000100001b0c in __main_block_invoke at /Users/icsanady/Desktop/booleancrash/booleancrash/main.cpp:54

Istvan Csanady

2015-02-05 10:03

developer   ~0037099

The problem can be reproduced with pure C++11 code (without using GCD):

#include <iostream>
#include <TopoDS_Shape.hxx>

#include <Geom2dAPI_PointsToBSpline.hxx>
#include <TColgp_Array1OfPnt2d.hxx>
#include <Geom2d_BSplineCurve.hxx>
#include <Geom2dConvert_ApproxCurve.hxx>
#include <Geom_Plane.hxx>
#include <BRepAdaptor_Curve.hxx>
#include <BRepAdaptor_CompCurve.hxx>

#include <BRepPrimAPI_MakeCone.hxx>

#include <BOPAlgo_PaveFiller.hxx>
#include <TopTools_ListOfShape.hxx>
#include <BRepTools.hxx>

#include <Message_ProgressIndicator.hxx>

#include <future>


int main(int argc, const char * argv[]) {
    
    auto f = std::async([=]() {
        BOPAlgo_PaveFiller paveFiller;
        TopTools_ListOfShape listOfShapes;
        TopoDS_Shape s1;
        TopoDS_Shape s2;
        std::ifstream f1("shape1.brep");
        std::ifstream f2("shape2.brep");
        if (f1 && f2)
        {
            BRep_Builder b;
            BRepTools::Read(s1, f1, b);
            BRepTools::Read(s2, f2, b);
            listOfShapes.Append(s1);
            listOfShapes.Append(s2);
            paveFiller.SetArguments(listOfShapes);
            paveFiller.Perform();
        }
    });
    f.get();
    return 0;
}

Istvan Csanady

2015-02-05 12:20

developer   ~0037106

The existence of the bug has been confirmed on Linux too.

msv

2015-02-05 16:19

developer   ~0037133

What about Windows? Is it reproducible there?

Istvan Csanady

2015-02-05 16:22

developer   ~0037135

I don't have a windows machine, but it should be straightforward to compile this code with MSVC++.
Here is an updated version:

#include <iostream>
#include <TopoDS_Shape.hxx>

#include <Geom2dAPI_PointsToBSpline.hxx>
#include <TColgp_Array1OfPnt2d.hxx>
#include <Geom2d_BSplineCurve.hxx>
#include <Geom2dConvert_ApproxCurve.hxx>
#include <Geom_Plane.hxx>
#include <BRepAdaptor_Curve.hxx>
#include <BRepAdaptor_CompCurve.hxx>

#include <BRepPrimAPI_MakeCone.hxx>

#include <BOPAlgo_PaveFiller.hxx>
#include <TopTools_ListOfShape.hxx>
#include <BRepTools.hxx>

#include <Message_ProgressIndicator.hxx>

#include <future>


int main(int argc, const char * argv[]) {
    
    auto f = std::async([=]() {
        BOPAlgo_PaveFiller paveFiller;
        TopTools_ListOfShape listOfShapes;
        TopoDS_Shape s1;
        TopoDS_Shape s2;
        std::ifstream f1("shape1.brep");
        std::ifstream f2("shape2.brep");
        if (f1 && f2)
        {
            BRep_Builder b;
            BRepTools::Read(s1, f1, b);
            BRepTools::Read(s2, f2, b);
            BOPCol_ListOfShape listOfShapes;
            listOfShapes.Append(s1);
            listOfShapes.Append(s2);
            paveFiller.SetArguments(listOfShapes);
            paveFiller.Perform();
        }
    });
    f.get();
    return 0;
}

msv

2015-02-05 17:20

developer   ~0037139

In the updated version, you have added the line:

36a37
> BOPCol_ListOfShape listOfShapes;

Is it sensible? Does it impact anything?

Istvan Csanady

2015-02-05 17:29

developer   ~0037140

No, it's not.

msv

2015-02-05 18:24

developer   ~0037155

I could not reproduce the problem on Windows (my work place).

Please, try the following code, which gets working with streams out of thread function, in order to make sure the problem is not due to input streams. Also, I changed the threading support to use OCC's one.

#include <iostream>
#include <TopoDS_Shape.hxx>

#include <Geom2dAPI_PointsToBSpline.hxx>
#include <TColgp_Array1OfPnt2d.hxx>
#include <Geom2d_BSplineCurve.hxx>
#include <Geom2dConvert_ApproxCurve.hxx>
#include <Geom_Plane.hxx>
#include <BRepAdaptor_Curve.hxx>
#include <BRepAdaptor_CompCurve.hxx>

#include <BRepPrimAPI_MakeCone.hxx>

#include <BOPAlgo_PaveFiller.hxx>
#include <TopTools_ListOfShape.hxx>
#include <BRepTools.hxx>

#include <Message_ProgressIndicator.hxx>

#include <OSD_Thread.hxx>

#pragma comment(lib, "TKernel")
#pragma comment(lib, "TKBRep")
#pragma comment(lib, "TKMath")
#pragma comment(lib, "TKTopAlgo")
#pragma comment(lib, "TKG3d")
#pragma comment(lib, "TKBO")

struct ShapeData
{
  TopoDS_Shape s1;
  TopoDS_Shape s2;
};

void* func(void* theData)
{
  BOPAlgo_PaveFiller paveFiller;
  TopTools_ListOfShape listOfShapes;
  ShapeData* aData = (ShapeData*) theData;
  listOfShapes.Append(aData->s1);
  listOfShapes.Append(aData->s2);
  paveFiller.SetArguments(listOfShapes);
  paveFiller.Perform();
  return (void*)0;
}

int main(int argc, const char * argv[])
{
  OSD_Thread aThread(func);
  ShapeData aData;
  std::ifstream f1("shape1.brep");
  std::ifstream f2("shape2.brep");
  if (f1 && f2)
  {
    BRep_Builder b;
    BRepTools::Read(aData.s1, f1, b);
    BRepTools::Read(aData.s2, f2, b);
    aThread.Run(&aData);
    aThread.Wait();
  }
  return 0;
}

Istvan Csanady

2015-02-05 19:23

developer   ~0037157

Still crashing. I will try to run it with some stack checking tool.

Istvan Csanady

2015-02-05 19:27

developer   ~0037158

Here is a disassembly of the crashing code (crash occurs at 0x1006756c8):

booleancrash`math_FunctionSetRoot::Perform(math_FunctionSetWithDerivatives&, math_Vector const&, math_Vector const&, math_Vector const&, unsigned int) at math_FunctionSetRoot.cxx:669:
0x100675690: pushq %rbp
0x100675691: movq %rsp, %rbp
0x100675694: subq $0x40f0, %rsp
0x10067569b: movq %rdi, -0x8(%rbp)
0x10067569f: movq %rsi, -0x10(%rbp)
0x1006756a3: movq %rdx, -0x18(%rbp)
0x1006756a7: movq %rcx, -0x20(%rbp)
0x1006756ab: movq %r8, -0x28(%rbp)
0x1006756af: movl %r9d, -0x2c(%rbp)
0x1006756b3: movq -0x8(%rbp), %rcx
0x1006756b7: movq -0x10(%rbp), %rdx
0x1006756bb: movq (%rdx), %rsi
0x1006756be: movq %rdx, %rdi
0x1006756c1: movq %rcx, -0x3990(%rbp)
0x1006756c8: callq *(%rsi)
0x1006756ca: movl %eax, -0x30(%rbp)
0x1006756cd: movq -0x10(%rbp), %rcx
0x1006756d1: movq (%rcx), %rdx
0x1006756d4: movq %rcx, %rdi
0x1006756d7: callq *0x8(%rdx)
0x1006756da: movl %eax, -0x34(%rbp)
0x1006756dd: cmpl $0x0, -0x34(%rbp)
0x1006756e4: jle 0x100675720 ; math_FunctionSetRoot::Perform(math_FunctionSetWithDerivatives&, math_Vector const&, math_Vector const&, math_Vector const&, unsigned int) + 144 at math_FunctionSetRoot.cxx:675

Istvan Csanady

2015-02-05 19:32

developer   ~0037159

What is even more interesting, that the code crashes, when the F.NbVariables() is called, but I can call the very same method on the very same object one level higher in the call stack (in ApproxInt_ImpPrmSvSurfaces::Compute) without crashing. Very strange.

msv

2015-02-06 10:45

developer   ~0037169

Could you check this issue with the fix contained in the git branch CR25720?

Istvan Csanady

2015-02-06 11:12

developer   ~0037170

I already did, and it did not help unfortunately.

msv

2015-02-09 11:22

developer   ~0037220

I did not find the cause of error looking at the source code. Nor by using Intel Inspector on Windows.
I shall try to inspect the problem on Linux when have time.

Istvan Csanady

2015-03-14 20:12

developer   ~0038366

This can be closed, probably it was caused by the stack overflow issue. http://dev.opencascade.org/index.php?q=node/1067

msv

2015-03-14 20:36

developer   ~0038368

Dear bugmaster, please close this bug.

abv

2015-03-14 20:56

manager   ~0038369

Dmitry, could you please check if this issue can be reproduced on Mac OS X?

dbv

2015-03-17 12:08

developer   ~0038419

Issue can be reproduced on Mac OS X 10.6.8 and 10.9.5
Crash log for 10.6.5:
0 libTKMath.dylib 0x00000001011a994b SVD_Decompose(math_Matrix&, math_Vector&, math_Matrix&) + 59
1 libTKMath.dylib 0x00000001011a9a83 math_SVD::math_SVD(math_Matrix const&) + 227
2 libTKMath.dylib 0x0000000101195eb6 SearchDirection(math_Matrix const&, math_Vector const&, math_Vector const&, unsigned int, math_Vector const&, math_Vector&, double&) + 774
3 libTKMath.dylib 0x0000000101196825 math_FunctionSetRoot::Perform(math_FunctionSetWithDerivatives&, math_Vector const&, math_Vector const&, math_Vector const&, unsigned int) + 1269
4 libTKGeomAlgo.dylib 0x00000001005c73d1 GeomInt_TheImpPrmSvSurfacesOfWLApprox::Compute(double&, double&, double&, double&, gp_Pnt&, gp_Vec&, gp_Vec2d&, gp_Vec2d&) + 1361
5 libTKGeomAlgo.dylib 0x00000001005c6c2f GeomInt_TheImpPrmSvSurfacesOfWLApprox::TangencyOnSurf1(double, double, double, double, gp_Vec2d&) + 143
6 libTKGeomAlgo.dylib 0x00000001005ca816 GeomInt_TheMultiLineOfWLApprox::Tangency(int, TColgp_Array1OfVec&, TColgp_Array1OfVec2d&) const + 198
7 libTKGeomAlgo.dylib 0x0000000100588142 GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox::Affect(GeomInt_TheMultiLineOfWLApprox const&, int, AppParCurves_Constraint&, math_Vector&, math_Vector&) + 1170
8 libTKGeomAlgo.dylib 0x0000000100588529 GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox::Init(GeomInt_TheMultiLineOfWLApprox const&, int, int) + 857
9 libTKGeomAlgo.dylib 0x000000010058dc24 GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox::GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox(GeomInt_TheMultiLineOfWLApprox const&, TColStd_Array1OfReal const&, TColStd_Array1OfInteger const&, int, int, AppParCurves_Constraint, AppParCurves_Constraint, int) + 916
10 libTKGeomAlgo.dylib 0x00000001005c29b4 GeomInt_TheComputeLineOfWLApprox::Interpol(GeomInt_TheMultiLineOfWLApprox const&) + 1444
11 libTKGeomAlgo.dylib 0x00000001005c3c7a GeomInt_TheComputeLineOfWLApprox::Compute(GeomInt_TheMultiLineOfWLApprox const&, int, int, math_Vector&, TColStd_Array1OfReal const&, TColStd_Array1OfInteger&) + 2730
12 libTKGeomAlgo.dylib 0x00000001005c46d5 GeomInt_TheComputeLineOfWLApprox::Perform(GeomInt_TheMultiLineOfWLApprox const&) + 1893
13 libTKGeomAlgo.dylib 0x00000001005d131e GeomInt_WLApprox::Perform(Handle_Adaptor3d_HSurface const&, IntSurf_Quadric const&, Handle_IntPatch_WLine const&, unsigned int, unsigned int, unsigned int, int, int) + 2830
14 libTKGeomAlgo.dylib 0x00000001005d17ff GeomInt_WLApprox::Perform(Handle_Adaptor3d_HSurface const&, Handle_Adaptor3d_HSurface const&, Handle_IntPatch_WLine const&, unsigned int, unsigned int, unsigned int, int, int) + 319
15 libTKBO.dylib 0x0000000116f61a12 IntTools_FaceFace::MakeCurve(int, Handle_Adaptor3d_TopolTool const&, Handle_Adaptor3d_TopolTool const&) + 10130
16 libTKBO.dylib 0x0000000116f6ce38 IntTools_FaceFace::Perform(TopoDS_Face const&, TopoDS_Face const&) + 4920
17 libTKBO.dylib 0x0000000116ed82a3 void OSD_Parallel::For<BOPCol_Functor<BOPAlgo_FaceFace, BOPCol_NCVector<BOPAlgo_FaceFace> > >(int, int, BOPCol_Functor<BOPAlgo_FaceFace, BOPCol_NCVector<BOPAlgo_FaceFace> > const&, unsigned int) + 115
18 libTKBO.dylib 0x0000000116ed35cf BOPAlgo_PaveFiller::PerformFF() + 1423
19 libTKBO.dylib 0x0000000116eb5818 BOPAlgo_PaveFiller::PerformInternal() + 184
20 libTKBO.dylib 0x0000000116eb5b9d BOPAlgo_PaveFiller::Perform() + 125
21 libTKQADraw.dylib 0x000000011969fae0 func(void*) + 96
22 libSystem.B.dylib 0x00007fff804b3fd6 _pthread_start + 331
23 libSystem.B.dylib 0x00007fff804b3e89 thread_start + 13


Crash log for 10.9.5:
0 libTKMath.dylib 0x000000010a726478 math_FunctionSetRoot::Perform(math_FunctionSetWithDerivatives&, math_Vector const&, math_Vector const&, math_Vector const&, unsigned int) + 56 (math_FunctionSetRoot.cxx:670)
1 libTKGeomAlgo.dylib 0x00000001094dbfd1 GeomInt_TheImpPrmSvSurfacesOfWLApprox::Compute(double&, double&, double&, double&, gp_Pnt&, gp_Vec&, gp_Vec2d&, gp_Vec2d&) + 6273 (ApproxInt_ImpPrmSvSurfaces.gxx:320)
2 libTKGeomAlgo.dylib 0x00000001094da5fb GeomInt_TheImpPrmSvSurfacesOfWLApprox::TangencyOnSurf1(double, double, double, double, gp_Vec2d&) + 235 (ApproxInt_ImpPrmSvSurfaces.gxx:93)
3 libTKGeomAlgo.dylib 0x00000001094e153b GeomInt_TheMultiLineOfWLApprox::Tangency(int, TColgp_Array1OfVec&, TColgp_Array1OfVec2d&) const + 699 (ApproxInt_MultiLine.gxx:307)
4 libTKGeomAlgo.dylib 0x000000010948a5eb GeomInt_TheMultiLineToolOfWLApprox::Tangency(GeomInt_TheMultiLineOfWLApprox const&, int, TColgp_Array1OfVec&, TColgp_Array1OfVec2d&) + 43 (ApproxInt_MultiLineTool.lxx:78)
5 libTKGeomAlgo.dylib 0x00000001094ce459 GeomInt_TheComputeLineOfWLApprox::FirstTangencyVector(GeomInt_TheMultiLineOfWLApprox const&, int, math_Vector&) const + 217 (Approx_BSplComputeLine.gxx:207)
6 libTKGeomAlgo.dylib 0x00000001094d4b71 GeomInt_TheComputeLineOfWLApprox::Interpol(GeomInt_TheMultiLineOfWLApprox const&) + 2305 (Approx_BSplComputeLine.gxx:1309)
7 libTKGeomAlgo.dylib 0x00000001094d35c0 GeomInt_TheComputeLineOfWLApprox::Compute(GeomInt_TheMultiLineOfWLApprox const&, int, int, math_Vector&, TColStd_Array1OfReal const&, TColStd_Array1OfInteger&) + 1024 (Approx_BSplComputeLine.gxx:914)
8 libTKGeomAlgo.dylib 0x00000001094d1819 GeomInt_TheComputeLineOfWLApprox::Perform(GeomInt_TheMultiLineOfWLApprox const&) + 1337 (Approx_BSplComputeLine.gxx:676)
9 libTKGeomAlgo.dylib 0x00000001094ea90a GeomInt_WLApprox::Perform(Handle_Adaptor3d_HSurface const&, IntSurf_Quadric const&, Handle_IntPatch_WLine const&, unsigned int, unsigned int, unsigned int, int, int) + 2394 (ApproxInt_Approx.gxx:850)
10 libTKGeomAlgo.dylib 0x00000001094e9f11 GeomInt_WLApprox::Perform(Handle_Adaptor3d_HSurface const&, Handle_Adaptor3d_HSurface const&, Handle_IntPatch_WLine const&, unsigned int, unsigned int, unsigned int, int, int) + 5121 (ApproxInt_Approx.gxx:635)
11 libTKBO.dylib 0x0000000110a47bf6 IntTools_FaceFace::MakeCurve(int, Handle_Adaptor3d_TopolTool const&, Handle_Adaptor3d_TopolTool const&) + 24518 (IntTools_FaceFace.cxx:1839)
12 libTKBO.dylib 0x0000000110a3ee50 IntTools_FaceFace::Perform(TopoDS_Face const&, TopoDS_Face const&) + 6752 (IntTools_FaceFace.cxx:749)
13 libTKBO.dylib 0x00000001109adda2 BOPAlgo_FaceFace::Perform() + 82 (BOPAlgo_PaveFiller_6.cxx:157)
14 libTKBO.dylib 0x00000001109ad616 BOPCol_Functor<BOPAlgo_FaceFace, BOPCol_NCVector<BOPAlgo_FaceFace> >::operator()(int) const + 54 (BOPCol_Parallel.hxx:46)
15 libTKBO.dylib 0x00000001109ad392 void OSD_Parallel::For<BOPCol_Functor<BOPAlgo_FaceFace, BOPCol_NCVector<BOPAlgo_FaceFace> > >(int, int, BOPCol_Functor<BOPAlgo_FaceFace, BOPCol_NCVector<BOPAlgo_FaceFace> > const&, unsigned int) + 114 (OSD_Parallel.hxx:261)
16 libTKBO.dylib 0x00000001109a9c4b BOPCol_Cnt<BOPCol_Functor<BOPAlgo_FaceFace, BOPCol_NCVector<BOPAlgo_FaceFace> >, BOPCol_NCVector<BOPAlgo_FaceFace> >::Perform(unsigned int, BOPCol_NCVector<BOPAlgo_FaceFace>&) + 75 (BOPCol_Parallel.hxx:69)
17 libTKBO.dylib 0x000000011099e7d2 BOPAlgo_PaveFiller::PerformFF() + 1762 (BOPAlgo_PaveFiller_6.cxx:270)
18 libTKBO.dylib 0x0000000110986ce6 BOPAlgo_PaveFiller::PerformInternal() + 326 (BOPAlgo_PaveFiller.cxx:263)
19 libTKBO.dylib 0x0000000110986aa7 BOPAlgo_PaveFiller::Perform() + 343 (BOPAlgo_PaveFiller.cxx:202)
20 libTKQADraw.dylib 0x0000000114af3d05 func(void*) + 133 (QABugs_19.cxx:3619)
21 libsystem_pthread.dylib 0x00007fff96d44899 _pthread_body + 138
22 libsystem_pthread.dylib 0x00007fff96d4472a _pthread_start + 137
23 libsystem_pthread.dylib 0x00007fff96d48fc9 thread_start + 13

abv

2015-03-17 12:41

manager   ~0038422

Dmitry, do you have details on the nature of crash (stack overflow, exception, etc.)?

Istvan Csanady

2015-03-17 12:44

developer   ~0038423

You can check if this problem caused by the math_*Tab stack allocation problem simply by reducing the size of the statically allocated arrays.

dbv

2015-03-17 17:44

developer   ~0038444

Last edited: 2015-03-17 18:03

Draw crashes with SIGILL signal. Reducing the size of Buf in math_DoubleTab, as proposed, solves the problem.
The problem is the same as for iOS: Mac OS X implementation of Pthreads defines a default stack size of 512 Kilobytes for subsequent threads
https://developer.apple.com/library/mac/qa/qa1419/_index.html

msv

2015-03-19 10:39

developer   ~0038676

We shall check the state after fixing related 0025746.

msv

2015-04-16 12:15

developer   ~0039837

Dear dbv, please check the behavior on iOS with the fix for 0025746. Turn the state to resolved if it is fixed.

dbv

2015-04-16 12:57

developer   ~0039850

Issue not reproduced on Mac OS X with patch from 0025746

msv

2015-04-16 13:17

developer   ~0039854

Dear bugmaster, please close this bug along with 0025746.

Issue History

Date Modified Username Field Change
2015-02-04 15:26 Istvan Csanady New Issue
2015-02-04 15:26 Istvan Csanady Assigned To => msv
2015-02-04 15:26 Istvan Csanady File Added: code.zip
2015-02-04 15:35 Istvan Csanady Note Added: 0037072
2015-02-05 10:03 Istvan Csanady Note Added: 0037099
2015-02-05 12:20 Istvan Csanady Note Added: 0037106
2015-02-05 16:19 msv Note Added: 0037133
2015-02-05 16:22 Istvan Csanady Note Added: 0037135
2015-02-05 17:20 msv Note Added: 0037139
2015-02-05 17:29 Istvan Csanady Note Added: 0037140
2015-02-05 18:24 msv Note Added: 0037155
2015-02-05 18:24 msv Assigned To msv => Istvan Csanady
2015-02-05 18:24 msv Status new => feedback
2015-02-05 19:23 Istvan Csanady Note Added: 0037157
2015-02-05 19:27 Istvan Csanady Note Added: 0037158
2015-02-05 19:32 Istvan Csanady Note Added: 0037159
2015-02-06 10:45 msv Note Added: 0037169
2015-02-06 11:12 Istvan Csanady Note Added: 0037170
2015-02-09 11:22 msv Note Added: 0037220
2015-03-14 20:12 Istvan Csanady Note Added: 0038366
2015-03-14 20:36 msv Note Added: 0038368
2015-03-14 20:36 msv Assigned To Istvan Csanady => bugmaster
2015-03-14 20:36 msv Status feedback => reviewed
2015-03-14 20:53 abv Relationship added related to 0025746
2015-03-14 20:56 abv Note Added: 0038369
2015-03-14 20:56 abv Assigned To bugmaster => dbv
2015-03-14 20:56 abv Status reviewed => feedback
2015-03-17 12:08 dbv Note Added: 0038419
2015-03-17 12:09 dbv Assigned To dbv => msv
2015-03-17 12:41 abv Note Added: 0038422
2015-03-17 12:44 Istvan Csanady Note Added: 0038423
2015-03-17 17:44 dbv Note Added: 0038444
2015-03-17 18:03 dbv Note Edited: 0038444
2015-03-19 10:39 msv Note Added: 0038676
2015-03-19 10:39 msv Status feedback => assigned
2015-04-16 12:12 msv Assigned To msv => dbv
2015-04-16 12:15 msv Note Added: 0039837
2015-04-16 12:57 dbv Note Added: 0039850
2015-04-16 12:57 dbv Assigned To dbv => msv
2015-04-16 12:57 dbv Status assigned => resolved
2015-04-16 12:57 dbv Steps to Reproduce Updated
2015-04-16 13:17 msv Note Added: 0039854
2015-04-16 13:17 msv Assigned To msv => bugmaster
2015-04-16 13:17 msv Status resolved => reviewed
2015-04-17 16:28 bugmaster Status reviewed => verified
2015-04-17 16:28 bugmaster Resolution open => fixed
2015-05-14 15:28 aiv Status verified => closed
2015-05-14 15:31 aiv Fixed in Version => 6.9.0