View Issue Details

IDProjectCategoryView StatusLast Update
0022887Open CASCADEOCCT:Modeling Algorithmspublic2012-03-29 17:26
Reporterepv Assigned Tobugmaster  
PriorityhighSeveritymajor 
Status closedResolutionfixed 
PlatformAOSL 
Product Version6.5.2 
Target Version6.5.3Fixed in Version6.5.3 
Summary0022887: Request to make Intf_InterferencePolygon2d class thread-safe.
DescriptionRequest to make Intf_InterferencePolygon2d class thread-safe. Now it is not. It blocks Express Mesh parallelization.
A lot of data races and failures in parallel implementation of the Express Mesh is caused by methods of Intf_InterferencePolygon2d class. The root cause is the usage of global static variables in this class. It is necessary to remove them and to make the code thread-safe.
Additional information
and documentation updates
1. Intf_InterferencePolygon2d class is not a generic (template) class anymore. Dealing with specific types of polygons is now possible thanks to virtual methods of Intf_Polygon2d class that is a root class for all polygons that can be handled by Intf_InterferencePolygon2d.
2. Intf_ToolPolygon class is removed, its functionality is now provided by the root class Intf_Polygon2d.
3. Each specific class of polygon inherits Intf_Polygon2d and implements special virtual methods that are called by Intf_InterferencePolygon2d.
4. Therefore (in connection with 1-3), sections of code that use these classes have been changed.
TagsNo tags attached.
Test case numberTest case is not required

Activities

szv

2012-02-14 15:03

manager   ~0019554

I made some improvements in implementation of this class, namely I changed its nature from 'generic' to normal class.

The modifications are available in http://svn/svn/occt/branches/22887_szv.

azn

2012-03-02 13:46

developer   ~0019848

Branch http://svn/svn/occt/branches/22887_szv is ready to be reviewed.

abv

2012-03-06 11:03

manager   ~0019874

Dear Julia,

Could you please review the code? On my side I have no remarks on the code, though I admit I did not review it carefully (too many formatting changes).

To Sergey and Alexander: please provide description of the changes made in Additional Information field

jgv

2012-03-12 12:52

developer   ~0019932

No remarks

mkv

2012-03-13 18:04

tester   ~0019957

Dear BugMaster,
SVN branch http://svn/svn/occt/branches/22887_szv has been moved to GIT CR22887 one.
Workbench KAS:dev:mkv-22887-occt was created from git branch CR22887
(and mkv-22887-products from svn trunk) and compiled on Linux platform.

There are compilation errors in mkv-22887-products:


Info : -------> QMTools_IntPolySeg2d.cxx
Error : Errors occured in Shell
/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:32:42: error: Intf_InterferencePolygon2d.gxx: No suc
h file or directory

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx: In member function 'void QMTools_IntPolySeg2d::Post
Process()':

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:57: error: invalid use of incomplete type 'const str
uct Intf_TangentZone'

/dn47/KAS/dev/mkv-22887-occt/inc/Intf_SeqOfTangentZone.hxx:27: error: forward declaration of 'const struct Intf_TangentZon
e'

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:58: error: invalid use of incomplete type 'const str
uct Intf_TangentZone'

/dn47/KAS/dev/mkv-22887-occt/inc/Intf_SeqOfTangentZone.hxx:27: error: forward declaration of 'const struct Intf_TangentZon
e'

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:66: error: invalid use of incomplete type 'const str
uct Intf_TangentZone'

/dn47/KAS/dev/mkv-22887-occt/inc/Intf_SeqOfTangentZone.hxx:27: error: forward declaration of 'const struct Intf_TangentZon
e'

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:67: error: invalid use of incomplete type 'const str
uct Intf_TangentZone'

/dn47/KAS/dev/mkv-22887-occt/inc/Intf_SeqOfTangentZone.hxx:27: error: forward declaration of 'const struct Intf_TangentZon
e'

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx: In member function 'void QMTools_IntPolySeg2d::Inse
rtPoint(const Intf_SectionPoint&)':

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:91: error: 'Intf_PIType' was not declared in this sc
ope

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:91: error: expected ';' before 'type1'

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:92: error: invalid use of incomplete type 'const str
uct Intf_SectionPoint'

/dn47/KAS/dev/mkv-22887-occt/inc/Intf_SeqOfSectionPoint.hxx:27: error: forward declaration of 'const struct Intf_SectionPo
int'

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:92: error: 'type1' was not declared in this scope

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:93: error: invalid use of incomplete type 'const str
uct Intf_SectionPoint'

/dn47/KAS/dev/mkv-22887-occt/inc/Intf_SeqOfSectionPoint.hxx:27: error: forward declaration of 'const struct Intf_SectionPo
int'

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:93: error: 'type2' was not declared in this scope

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:94: error: 'Intf_EXTERNAL' was not declared in this
scope

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:101: error: 'Intf_VERTEX' was not declared in this s
cope

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:105: error: 'Intf_VERTEX' was not declared in this s
cope

/dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:111: error: 'Intf_VERTEX' was not declared in this s
cope

Error : Failed : QMTools_IntPolySeg2d.cxx
Info : ----------------------- Compilation Report -----------------------
Info : Failed : :KAS:dev:mkv-22887-products:QMTools:source:QMTools_IntPolySeg2d.cxx
Info : -----------------------------------------------------------------

Info : ------------------ Process report ------------------
Info : Failed QMTools (obj.comp obj.idep )
Info : ----------------------------------------------------

szv

2012-03-15 13:47

manager   ~0019993

The fix for Express Mesh is available in http://svn/svn/occt-products/branches/22887_szv.

Please test the branch.

mkv

2012-03-15 19:41

tester   ~0020007

Dear BugMaster,
SVN branch http://svn/svn/occt/branches/22887_szv has been moved to GIT CR22887 one.
Workbench KAS:dev:mkv-22887-occt was created from git branch CR22887
(and mkv-22887-products from http://svn/svn/occt-products/branches/22887_szv ) and compiled on Linux platform.

There are not regressions in mkv-22887-products regarding to KAS:dev:products-20120306-opt

See results in /QADisk/occttests/results/KAS/dev/mkv-22887-products_13032012/lin
See reference results in /QADisk/occttests/results/KAS/dev/products-20120306-opt_07032012/lin
See test cases in /QADisk/occttests/tests/ED
N.B. In order to launch testing case you can make use the following instructions
http://doc/doku.php?id=occt:certification

bugmaster

2012-03-16 17:51

administrator   ~0020025

Integrated to master


Integrated into trunk of occt-products repository

Date: 2012-03-16 16:57:11 +0400 (Fri, 16 Mar 2012)
New Revision: 18576

Removed:
   trunk/src/QMTools/QMTools_ToolPolySeg2d.hxx
Modified:
   trunk/src/QMData/QMData_PolySeg2d.cxx
   trunk/src/QMData/QMData_PolySeg2d.hxx
   trunk/src/QMTools/FILES
   trunk/src/QMTools/QMTools_IntPolySeg2d.cxx
   trunk/src/QMTools/QMTools_IntPolySeg2d.hxx

Related Changesets

occt: master 9530af27

2012-03-12 14:31:11

azn


Committer: bugmaster Details Diff
0022887: Request to make Intf_InterferencePolygon2d class thread-safe. Affected Issues
0022887
mod - src/IntCurve/FILES Diff File
mod - src/IntCurve/IntCurve.cdl Diff File
mod - src/IntCurve/IntCurve_IntPolyPolyGen.cdl Diff File
mod - src/IntCurve/IntCurve_IntPolyPolyGen.gxx Diff File
mod - src/IntCurve/IntCurve_Polygon2dGen.cdl Diff File
mod - src/IntCurve/IntCurve_Polygon2dGen.gxx Diff File
mod - src/IntCurve/IntCurve_Polygon2dGen.lxx Diff File
mod - src/IntCurve/IntCurve_ToolPolygon.cdl Diff File
mod - src/IntCurve/IntCurve_ToolPolygon.gxx Diff File
mod - src/IntCurve/IntCurve_ToolPolygon.lxx Diff File
mod - src/Intf/Intf.cdl Diff File
mod - src/Intf/Intf_Interference.cdl Diff File
mod - src/Intf/Intf_Interference.cxx Diff File
add - src/Intf/Intf_Interference.lxx Diff File
mod - src/Intf/Intf_InterferencePolygon2d.cdl Diff File
add - src/Intf/Intf_InterferencePolygon2d.cxx Diff File
mod - src/Intf/Intf_InterferencePolygon2d.gxx Diff File
add - src/Intf/Intf_Polygon2d.cdl Diff File
add - src/Intf/Intf_Polygon2d.cxx Diff File
add - src/Intf/Intf_Polygon2d.lxx Diff File
mod - src/Intf/Intf_ToolPolygon.cdl Diff File
mod - src/IntPatch/IntPatch.cdl Diff File
mod - src/IntPatch/IntPatch_PolyArc.cdl Diff File
mod - src/IntPatch/IntPatch_PolyArc.cxx Diff File
mod - src/IntPatch/IntPatch_Polygo.cdl Diff File
mod - src/IntPatch/IntPatch_Polygo.cxx Diff File
add - src/IntPatch/IntPatch_Polygo.lxx Diff File
mod - src/IntPatch/IntPatch_PolygoTool.cdl Diff File
mod - src/IntPatch/IntPatch_PolygoTool.cxx Diff File
mod - src/IntPatch/IntPatch_PolygoTool.lxx Diff File
mod - src/IntPatch/IntPatch_PolyLine.cdl Diff File
mod - src/IntPatch/IntPatch_PolyLine.cxx Diff File
mod - src/IntPatch/IntPatch_RstInt.cdl Diff File
mod - src/IntPatch/IntPatch_RstInt.cxx Diff File

Issue History

Date Modified Username Field Change
2012-01-10 11:45 epv New Issue
2012-01-10 11:45 epv Assigned To => azn
2012-01-30 11:29 szy Status new => assigned
2012-01-30 11:29 szy Summary It is necessary to make Intf_InterferencePolygon2d class thread-safe. Now it is not. It blocks Express Mesh parallelization. => Request to make Intf_InterferencePolygon2d class thread-safe.
2012-01-30 11:29 szy Description Updated
2012-02-09 09:54 abv Target Version 6.5.3 => 6.5.4
2012-02-14 15:03 szv Note Added: 0019554
2012-03-02 13:46 azn Note Added: 0019848
2012-03-02 13:46 azn Status assigned => resolved
2012-03-02 13:46 azn Assigned To azn => abv
2012-03-06 11:01 abv Assigned To abv => jgv
2012-03-06 11:03 abv Note Added: 0019874
2012-03-11 11:59 azn Additional Information Updated
2012-03-11 12:48 szv Additional Information Updated
2012-03-12 12:52 jgv Note Added: 0019932
2012-03-12 12:52 jgv Status resolved => reviewed
2012-03-12 13:05 mkv Assigned To jgv => mkv
2012-03-13 18:04 mkv Note Added: 0019957
2012-03-13 18:04 mkv Assigned To mkv => szv
2012-03-13 18:05 mkv Status reviewed => assigned
2012-03-14 15:41 mkv Assigned To szv => azn
2012-03-15 13:47 szv Note Added: 0019993
2012-03-15 13:47 szv Assigned To azn => mkv
2012-03-15 13:47 szv Status assigned => resolved
2012-03-15 14:05 abv Status resolved => reviewed
2012-03-15 19:41 mkv Note Added: 0020007
2012-03-15 19:41 mkv Test case number => Test case is not required
2012-03-15 19:41 mkv Assigned To mkv => bugmaster
2012-03-15 19:41 mkv Status reviewed => tested
2012-03-16 17:51 bugmaster Note Added: 0020025
2012-03-16 17:51 bugmaster Status tested => verified
2012-03-16 17:51 bugmaster Resolution open => fixed
2012-03-16 17:52 bugmaster Assigned To bugmaster => szv
2012-03-16 17:52 bugmaster Target Version 6.5.4 => 6.5.3
2012-03-29 17:26 bugmaster Changeset attached => occt master 9530af27