View Issue Details

IDProjectCategoryView StatusLast Update
0026701CommunityOCCT:Modeling Algorithmspublic2015-10-23 20:49
ReporterVico Liang Assigned Tokgv  
PrioritynormalSeveritycrash 
Status closedResolutionfixed 
PlatformWindowsOSVC++ 2013 
Product Version6.9.0 
Target Version6.9.1Fixed in Version6.9.1 
Summary0026701: BOPAlgo_Builder::Perform crash.
DescriptionThe stackframe as following:

     MSVCR120D.dll!000007fedbcb0365() Unknown
     MSVCR120D.dll!000007fedbcb0196() Unknown
     MSVCR120D.dll!000007fedbcb1e68() Unknown
     TKernel.dll!Standard_MMgrRaw::Free(void * theStorage) Line 56 C++
     TKernel.dll!Standard::Free(void * const theStorage) Line 235 C++
     [External Code]
     TKBRep.dll!BRep_ListOfCurveRepresentation::Remove(BRep_ListIteratorOfListOfCurveRepresentation & It) Line 257 C++
> TKBRep.dll!UpdateCurves(BRep_ListOfCurveRepresentation & lcr, const Handle_Geom2d_Curve & C, const Handle_Geom_Surface & S, const TopLoc_Location & L) Line 135 C++
     TKBRep.dll!BRep_Builder::UpdateEdge(const TopoDS_Edge & E, const Handle_Geom2d_Curve & C, const Handle_Geom_Surface & S, const TopLoc_Location & L, const double Tol) Line 632 C++
     TKBO.dll!BOPTools_AlgoTools2D::BuildPCurveForEdgeOnPlane(const TopoDS_Edge & aE, const TopoDS_Face & aF) Line 504 C++
     TKBO.dll!tbb::internal::parallel_for_body<BOPCol_Functor<BOPAlgo_BPC,BOPCol_NCVector<BOPAlgo_BPC> >,int>::operator()(const tbb::blocked_range<int> & r) Line 163 C++
     TKBO.dll!tbb::interface7::internal::partition_type_base<tbb::interface7::internal::auto_partition_type>::execute<tbb::interface7::internal::start_for<tbb::blocked_range<int>,tbb::internal::parallel_for_body<BOPCol_Functor<BOPAlgo_BPC,BOPCol_NCVector<BOPAlgo_BPC> >,int>,tbb::auto_partitioner const >,tbb::blocked_range<int> >(tbb::interface7::internal::start_for<tbb::blocked_range<int>,tbb::internal::parallel_for_body<BOPCol_Functor<BOPAlgo_BPC,BOPCol_NCVector<BOPAlgo_BPC> >,int>,tbb::auto_partitioner const > & start, tbb::blocked_range<int> & range) Line 265 C++
     TKBO.dll!tbb::interface7::internal::start_for<tbb::blocked_range<int>,tbb::internal::parallel_for_body<BOPCol_Functor<BOPAlgo_BPC,BOPCol_NCVector<BOPAlgo_BPC> >,int>,tbb::auto_partitioner const >::execute() Line 128 C++
     tbb_debug.dll!tbb::internal::custom_scheduler<tbb::internal::IntelSchedulerTraits>::local_wait_for_all(tbb::task & parent, tbb::task * child) Line 463 C++
     tbb_debug.dll!tbb::internal::generic_scheduler::local_spawn_root_and_wait(tbb::task & first, tbb::task * & next) Line 649 C++
     tbb_debug.dll!tbb::internal::generic_scheduler::spawn_root_and_wait(tbb::task & first, tbb::task * & next) Line 658 C++
     TKBO.dll!tbb::task::spawn_root_and_wait(tbb::task & root) Line 734 C++
     TKBO.dll!tbb::interface7::internal::start_for<tbb::blocked_range<int>,tbb::internal::parallel_for_body<BOPCol_Functor<BOPAlgo_BPC,BOPCol_NCVector<BOPAlgo_BPC> >,int>,tbb::auto_partitioner const >::run(const tbb::blocked_range<int> & range, const tbb::internal::parallel_for_body<BOPCol_Functor<BOPAlgo_BPC,BOPCol_NCVector<BOPAlgo_BPC> >,int> & body, const tbb::auto_partitioner & partitioner) Line 90 C++
     TKBO.dll!tbb::parallel_for<tbb::blocked_range<int>,tbb::internal::parallel_for_body<BOPCol_Functor<BOPAlgo_BPC,BOPCol_NCVector<BOPAlgo_BPC> >,int> >(const tbb::blocked_range<int> & range, const tbb::internal::parallel_for_body<BOPCol_Functor<BOPAlgo_BPC,BOPCol_NCVector<BOPAlgo_BPC> >,int> & body, const tbb::auto_partitioner & partitioner) Line 201 C++
     TKBO.dll!tbb::strict_ppl::parallel_for_impl<int,BOPCol_Functor<BOPAlgo_BPC,BOPCol_NCVector<BOPAlgo_BPC> >,tbb::auto_partitioner const >(int first, int last, int step, const BOPCol_Functor<BOPAlgo_BPC,BOPCol_NCVector<BOPAlgo_BPC> > & f, const tbb::auto_partitioner & partitioner) Line 256 C++
     TKBO.dll!tbb::strict_ppl::parallel_for<int,BOPCol_Functor<BOPAlgo_BPC,BOPCol_NCVector<BOPAlgo_BPC> > >(int first, int last, const BOPCol_Functor<BOPAlgo_BPC,BOPCol_NCVector<BOPAlgo_BPC> > & f) Line 283 C++
     TKBO.dll!OSD_Parallel::For<BOPCol_Functor<BOPAlgo_BPC,BOPCol_NCVector<BOPAlgo_BPC> > >(const int theBegin, const int theEnd, const BOPCol_Functor<BOPAlgo_BPC,BOPCol_NCVector<BOPAlgo_BPC> > & theFunctor, const unsigned int isForceSingleThreadExecution) Line 270 C++
     TKBO.dll!BOPAlgo_PaveFiller::Prepare() Line 758 C++
     TKBO.dll!BOPAlgo_PaveFiller::PerformInternal() Line 225 C++
     TKBO.dll!BOPAlgo_PaveFiller::Perform() Line 202 C++
     TKBO.dll!BOPAlgo_Builder::Perform() Line 281 C++

Steps To Reproducebrestore crash_tbb.brep d
brunparallel 1
bclearobjects
eval baddobjects [explode d]
bfillds
bbuild result
TagsNo tags attached.
Test case numberbugs modalg_6 bug26701

Attached Files

  • Crash_TBB.brep (90,980 bytes)

Activities

Vico Liang

2015-09-17 12:34

developer   ~0045767

The additional crash is using TBB allocator, but the crash stack frame is similar.

msv

2015-09-17 16:09

developer   ~0045812

Dear Vico, please attach input data and script to reproduce the problem.

Vico Liang

2015-09-18 05:36

developer   ~0045844

Dear msv,

It seems a data race in parallel comutation. I'm preparing the data, but the issue can't be reprodueced steadily. Would you analysis from the crash stack frame? I'm afraid it's not easy to provide you data to reproduce the problem.

msv

2015-09-18 10:38

developer   ~0045852

Dear Vico, the probability of finding the cause of problem by analysis of stack frame in the case of such problem is very low, because the source code that contains an error (the source of problem) can be out of current stack frame.
Therefore it is crucial to have the input data that leads to the problem, even if it is not stably reproduced. We can use the automatic checking tools like valgrind or Intel Inspector in order to catch such a bug.

Vico Liang

2015-09-18 11:08

developer  

Crash_TBB.brep (90,980 bytes)

Vico Liang

2015-09-18 11:13

developer   ~0045860

Dear msv,

I have uploaded file Crash_TBB.brep, the model is a compound.

To reproduce the issue, please get all the subshapes in the compound and then do a general fuse operation.

        TopTools_ListOfShape aShapes;
        TopoDS_Shape aShape = //load Crash_TBB.brep
        //
        for(TopoDS_Iterator aIter(aShape); aIter.More(); aIter.Next())
        {
             aShapes.Add(aIter.Value());
        }
        BOPAlgo_Builder aGFA;
        aGFA.SetArguments(aShapes);
        // Turn on parallel algorithm
        aGFA.SetRunParallel(Standard_True);
        aGFA.Perform();

msv

2015-09-18 11:48

developer   ~0045868

Thank you, Vico, for the data.

msv

2015-09-18 11:52

developer   ~0045869

Dear Ilya, please start with creating the draw script to reproduce the problem. I think we have enough commands in Draw for that.

git

2015-09-21 21:58

administrator   ~0045963

Branch CR26701 has been created by isn.

SHA-1: 04830f567dab95eead7c1f0976083b76614adafb


Detailed log of new commits:

Author: isn
Date: Mon Sep 21 20:50:26 2015 +0300

    0026701: BOPAlgo_Builder::Perform crash.
    (data race)

isn

2015-09-21 22:07

developer   ~0045964

script to reproduce:
brestore crash_tbb.brep d
explode d
brunparallel 1
bclearobjects
baddobjects d_1 d_2 d_3 d_4 d_5 d_6 d_7 d_8 d_9 d_10 d_11 d_12 d_13 d_14 d_15 d_16 d_17 d_18 d_19 d_20 d_21 d_22 d_23 d_24 d_25 d_26 d_27 d_28 d_29 d_30 d_31 d_32 d_33 d_34 d_35 d_36
bfillds

abv

2015-09-22 07:14

manager   ~0045965

Failures:

boolean bcut_complex O7
boolean bopcommon_complex K2 K3
boolean bopcut_complex K9
boolean bsection D1 E1 M8 M9 N2 N4 N5 N6 N7
bugs modalg_1 buc60531_1 buc60531_2 buc60865 buc60880 bug1255 bug1255_1 bug17194_1 bug17194_2
bugs modalg_4 bug81 bug82 bug6289 bug6502 bug6766_1 bug6766_2 bug6766_3 bug6766_4 fra62369
bugs modalg_5 bug23958 bug25470
bugs modalg_6 bug25937_1 bug25937_2 bug25937_3
bugs moddata_2 bug6450_2

abv

2015-09-22 07:17

manager   ~0045966

Regarding script to reproduce: please add it to commit as a test case

git

2015-09-22 09:14

administrator   ~0045969

Branch CR26701 has been updated by msv.

SHA-1: 5d6efc4cac6fd39f10f5cf07bf1c2b06e7f768ba


Detailed log of new commits:

Author: msv
Date: Tue Sep 22 09:13:26 2015 +0300

    Add comments and make minor cosmetic changes.

msv

2015-09-22 09:15

developer   ~0045970

Reviewed.

git

2015-09-22 10:35

administrator   ~0045973

Branch CR26701 has been updated by isn.

SHA-1: c0d6e3eea091b2d35d538000585b57271ce5c7e1


Detailed log of new commits:

Author: isn
Date: Tue Sep 22 10:34:19 2015 +0300

    corrections

git

2015-09-22 12:24

administrator   ~0045990

Branch CR26701 has been updated by msv.

SHA-1: bfdc30f575154442aa36161e8a43c97e82d7156e


Detailed log of new commits:

Author: msv
Date: Tue Sep 22 12:23:47 2015 +0300

    Correction

mkv

2015-09-23 14:32

tester   ~0046041

Dear BugMaster,
Branch CR26701 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
SHA-1: bfdc30f575154442aa36161e8a43c97e82d7156e

Number of compiler warnings:

occt component :
Linux: 15 (15 on master)
Windows: 0 (0 on master)

products component :
Linux: 39 (39 on master)
Windows: 0 (0 on master)

Regressions/Differences/Improvements:
No regressions/differences

Testing cases:
http://occt-tests/CR26701-master-occt-64/Debian70-64/bugs/modalg_6/bug26701.html
http://occt-tests/CR26701-master-occt-64/Windows-64-VC10/bugs/modalg_6/bug26701.html
bugs modalg_6 bug26701: OK

Testing on Linux:
occt component :
Total MEMORY difference: 92568895 / 92151446 [+0.45%]
Total CPU difference: 18896.16999999891 / 18842.199999998986 [+0.29%]
products component :
Total MEMORY difference: 25926924 / 25980951 [-0.21%]
Total CPU difference: 7239.480000000009 / 7208.589999999996 [+0.43%]

Testing on Windows:
occt component :
Total MEMORY difference: 56807230 / 56825790 [-0.03%]
Total CPU difference: 16997.41655709906 / 16810.58975949913 [+1.11%]
products component :
Total MEMORY difference: 16784757 / 16790438 [-0.03%]
Total CPU difference: 5494.916823599973 / 5526.49142599996 [-0.57%]

There are no differences in images found by testdiff.

git

2015-09-23 14:32

administrator   ~0046042

Branch CR26701 has been updated by mkv.

SHA-1: 1e5d95dc8e27b1f15e4928b99593ca27b01fe18c


Detailed log of new commits:

Author: mkv
Date: Wed Sep 23 14:31:35 2015 +0300

    Test case for issue CR26701

mkv

2015-09-23 14:32

tester   ~0046043

Dear msv,
could you please review following test case
bugs modalg_6 bug26701

msv

2015-09-23 14:40

developer   ~0046045

Please simplify the script using steps for reproduce.

git

2015-09-23 16:15

administrator   ~0046053

Branch CR26701 has been updated by mkv.

SHA-1: 4137987f6f228ee74f2dad2ae7fb925e200c3de6


Detailed log of new commits:

Author: mkv
Date: Wed Sep 23 16:15:39 2015 +0300

    Correction of test case for issue CR26701

mkv

2015-09-23 16:17

tester   ~0046054

Dear BugMaster,
following test case is corrected and pushed to branch CR26701 of occt git-repository
bugs modalg_6 bug26701

mkv

2015-09-23 16:17

tester   ~0046055

Dear BugMaster,
Branch CR26701 is TESTED.

git

2015-10-16 16:38

administrator   ~0047024

Branch CR26701 has been deleted by kgv.

SHA-1: 4137987f6f228ee74f2dad2ae7fb925e200c3de6

Related Changesets

occt: master 2078dfc7

2015-09-24 10:46:45

isn


Committer: kgv Details Diff
0026701: BOPAlgo_Builder::Perform crash.
(data race)

Add comments and make minor cosmetic changes.

Test case for issue CR26701

Correction of test case for issue CR26701
Affected Issues
0026701
mod - src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools2D.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools2D.hxx Diff File
add - tests/bugs/modalg_6/bug26701 Diff File

Issue History

Date Modified Username Field Change
2015-09-17 12:31 Vico Liang New Issue
2015-09-17 12:31 Vico Liang Assigned To => msv
2015-09-17 12:34 Vico Liang Note Added: 0045767
2015-09-17 16:09 msv Note Added: 0045812
2015-09-17 16:09 msv Assigned To msv => Vico Liang
2015-09-17 16:09 msv Status new => feedback
2015-09-18 05:36 Vico Liang Note Added: 0045844
2015-09-18 05:39 Vico Liang Assigned To Vico Liang => msv
2015-09-18 05:39 Vico Liang Status feedback => acknowledged
2015-09-18 10:38 msv Note Added: 0045852
2015-09-18 10:38 msv Assigned To msv => Vico Liang
2015-09-18 10:38 msv Status acknowledged => feedback
2015-09-18 11:08 Vico Liang File Added: Crash_TBB.brep
2015-09-18 11:13 Vico Liang Note Added: 0045860
2015-09-18 11:14 Vico Liang Assigned To Vico Liang => msv
2015-09-18 11:14 Vico Liang Status feedback => acknowledged
2015-09-18 11:47 msv Assigned To msv => Vico Liang
2015-09-18 11:48 msv Note Added: 0045868
2015-09-18 11:48 msv Assigned To Vico Liang => msv
2015-09-18 11:48 msv Status acknowledged => assigned
2015-09-18 11:51 msv Assigned To msv => isn
2015-09-18 11:52 msv Note Added: 0045869
2015-09-21 21:58 git Note Added: 0045963
2015-09-21 22:07 isn Note Added: 0045964
2015-09-21 22:07 isn Assigned To isn => msv
2015-09-21 22:07 isn Status assigned => resolved
2015-09-21 22:07 isn Steps to Reproduce Updated
2015-09-22 07:14 abv Note Added: 0045965
2015-09-22 07:17 abv Note Added: 0045966
2015-09-22 09:10 msv Steps to Reproduce Updated
2015-09-22 09:14 git Note Added: 0045969
2015-09-22 09:15 msv Note Added: 0045970
2015-09-22 09:15 msv Assigned To msv => bugmaster
2015-09-22 09:15 msv Status resolved => reviewed
2015-09-22 09:15 msv Additional Information Updated
2015-09-22 10:35 git Note Added: 0045973
2015-09-22 11:49 mkv Assigned To bugmaster => mkv
2015-09-22 12:24 git Note Added: 0045990
2015-09-23 14:32 mkv Note Added: 0046041
2015-09-23 14:32 git Note Added: 0046042
2015-09-23 14:32 mkv Note Added: 0046043
2015-09-23 14:32 mkv Assigned To mkv => msv
2015-09-23 14:32 mkv Status reviewed => feedback
2015-09-23 14:33 mkv Test case number => bugs modalg_6 bug26701
2015-09-23 14:40 msv Note Added: 0046045
2015-09-23 14:40 msv Assigned To msv => mkv
2015-09-23 14:40 msv Status feedback => assigned
2015-09-23 16:15 git Note Added: 0046053
2015-09-23 16:17 mkv Note Added: 0046054
2015-09-23 16:17 mkv Note Added: 0046055
2015-09-23 16:17 mkv Status assigned => feedback
2015-09-23 16:17 mkv Assigned To mkv => bugmaster
2015-09-23 16:17 mkv Status feedback => tested
2015-09-28 12:58 kgv Changeset attached => occt master 2078dfc7
2015-09-28 12:58 kgv Assigned To bugmaster => kgv
2015-09-28 12:58 kgv Status tested => verified
2015-09-28 12:58 kgv Resolution open => fixed
2015-10-16 14:55 aiv Status verified => closed
2015-10-16 16:38 git Note Added: 0047024
2015-10-23 20:49 aiv Fixed in Version => 6.9.1