View Issue Details

IDProjectCategoryView StatusLast Update
0033180CommunityOCCT:Modeling Algorithmspublic2024-09-14 22:12
Reporterjinsong.chen Assigned Toakaftasev  
PriorityhighSeveritycrash 
Status verifiedResolutionfixed 
Product Version7.6.0 
Target Version7.8.0 
Summary0033180: We had a problem calling the OCC library at the customer site, and the program crashed
DescriptionBecause this customer is very important to us, so please help us resolve this problem as soon as possible. The details are as below:

The OCC version is 7.6.0 win64

The program code is:

Part I:
----------------------------------------------------------------------
BRepOffsetAPI_ThruSections ts;

TopoDS_Wire wire1, wire2;
... // create wire1 and wire2. See the Part II for the parameters.
ts.AddWire(wire1);
ts.AddWire(wire2);

ts.Build(); // <--Crashed line.

Part II:
------------------------------------------------------------------------
//wire1 is a circle, the parameters are:
Location point x=1982.5731315010235 y=4275.7651095041720 z=9.8629619492809883
main Direction x=0.0000000000000000 y=0.99999999999999989 z=0.0000000000000000
X Direction x=0.0000000000000000 y=0.0000000000000000 z=0.11429999987165794

//wire2 is a polyline, the parameters are:
1982.5731315010235,4275.7682845041272,9.9771213071771765
1982.5787999289748,4275.7682845041272,9.9771213071771765
1982.5900810211417,4275.7682845041272,9.9759982412286909
1982.6011953705065,4275.7682845041272,9.9737631624170451
1982.6120336335414,4275.7682845041272,9.9704380624719775
1982.6224891918419,4275.7682845041272,9.9660556333490522
1982.6324591844793,4275.7682845041272,9.9606590097376024
1982.6418455284352,4275.7682845041272,9.9543012731500777
1982.6505558889621,4275.7682845041272,9.9470449655481499
1982.6585045688862,4275.7682845041272,9.9389614837595133
1982.6656133812182,4275.7682845041272,9.9301303356119313
1982.6718123787159,4275.7682845041272,9.9206384056039951
1982.6770405929797,4275.7682845041272,9.9105790775247744
1982.6770405929797,4275.7778095039830,9.9105790775247744
1982.6811072223895,4275.7778095039830,9.9004550688692241
1982.6841900604484,4275.7778095039830,9.8899894516893543
1982.6862610309836,4275.7778095039830,9.8792775850721526
1982.6873012512442,4275.7778095039830,9.8684170620866922
1982.6873012512442,4275.7778095039830,9.8575068365760963
1982.6862610309836,4275.7778095039830,9.8466463141866836
1982.6841900604484,4275.7778095039830,9.8359344451852966
1982.6811072223895,4275.7778095039830,9.8254688303896121
1982.6770405929797,4275.7778095039830,9.8153448217340618
1982.6770405929797,4275.7682845041272,9.8153448217340618
1982.6718123787159,4275.7682845041272,9.8052854936548393
1982.6656133812182,4275.7682845041272,9.7957935636469031
1982.6585045688862,4275.7682845041272,9.7869624154993211
1982.6505558889621,4275.7682845041272,9.7788789289423139
1982.6418455284352,4275.7682845041272,9.7716226213403843
1982.6324591844793,4275.7682845041272,9.7652648847528614
1982.6224891918419,4275.7682845041272,9.7598682611414116
1982.6120336335414,4275.7682845041272,9.7554858415552310
1982.6011953705065,4275.7682845041272,9.7521607320734187
1982.5900810211417,4275.7682845041272,9.7499256532617729
1982.5787999289748,4275.7682845041272,9.7488025873132873
1982.5674630730864,4275.7682845041272,9.7488025873132873
1982.5561819809195,4275.7682845041272,9.7499256532617729
1982.5450676315540,4275.7682845041272,9.7521607320734187
1982.5342293685192,4275.7682845041272,9.7554858415552310
1982.5237738102194,4275.7682845041272,9.7598682611414116
1982.5138038175819,4275.7682845041272,9.7652648847528614
1982.5044174736254,4275.7682845041272,9.7716226213403843
1982.4957071130984,4275.7682845041272,9.7788789289423139
1982.4877584331743,4275.7682845041272,9.7869624154993211
1982.4806496208423,4275.7682845041272,9.7957935636469031
1982.4744506233446,4275.7682845041272,9.8052854936548393
1982.4692224090809,4275.7682845041272,9.8153448217340618
1982.4692224090809,4275.7778095039830,9.8153448217340618
1982.4651557796710,4275.7778095039830,9.8254688303896121
1982.4620729416129,4275.7778095039830,9.8359344451852966
1982.4600019710776,4275.7778095039830,9.8466463141866836
1982.4589617508170,4275.7778095039830,9.8575068365760963
1982.4589617508170,4275.7778095039830,9.8684170620866922
1982.4600019710776,4275.7778095039830,9.8792775850721526
1982.4620729416129,4275.7778095039830,9.8899894516893543
1982.4651557796710,4275.7778095039830,9.9004550688692241
1982.4692224090809,4275.7778095039830,9.9105790775247744
1982.4692224090809,4275.7682845041272,9.9105790775247744
1982.4744506233446,4275.7682845041272,9.9206384056039951
1982.4806496208423,4275.7682845041272,9.9301303356119313
1982.4877584331743,4275.7682845041272,9.9389614837595133
1982.4957071130984,4275.7682845041272,9.9470449655481499
1982.5044174736254,4275.7682845041272,9.9543012731500777
1982.5138038175819,4275.7682845041272,9.9606590097376024
1982.5237738102194,4275.7682845041272,9.9660556333490522
1982.5342293685192,4275.7682845041272,9.9704380624719775
1982.5450676315540,4275.7682845041272,9.9737631624170451
1982.5561819809195,4275.7682845041272,9.9759982412286909
1982.5674630730864,4275.7682845041272,9.9771213071771765
1982.5731315010235,4275.7682845041272,9.9771213071771765
Steps To Reproducetest bugs modalg_8 bug33180
TagsNo tags attached.
Test case number

Attached Files

  • wire1.brep (480 bytes)
  • wire2.brep (18,400 bytes)

Activities

jinsong.chen

2022-10-25 10:44

reporter   ~0111738

Reminder sent to: msv

Because this customer is very important to us, so please help us resolve this problem as soon as possible.

msv

2022-10-25 10:49

developer   ~0111740

@jinsong.chen, in order to speed up the bug processing, please contact OCCT sales using the contact form on the opencascade site.

jinsong.chen

2022-11-10 09:27

reporter   ~0111980

Please refer to the wires in brep format as attached.
wire1.brep (480 bytes)
wire2.brep (18,400 bytes)

git

2022-11-17 10:26

administrator   ~0112142

Branch CR33180 has been created by andrey.kaftasev_159541.

SHA-1: 50c684c1e18e061b29e82221fe1b065962c6cd62


Detailed log of new commits:

Author: akaftasev
Date: Thu Nov 17 10:25:36 2022 +0300

    0033180: We had a problem calling the OCC library at the customer site, and the program crashed
    
    Changed boolean myIsDone to status of the operation BRepFill_CompatibleWiresError.
    Changed throw constructions to set of the status and break the function.

git

2022-11-18 16:08

administrator   ~0112172

Branch CR33180 has been updated by andrey.kaftasev_159541.

SHA-1: feee41927d7489bb5361f7313cc3df1622d72521


Detailed log of new commits:

Author: akaftasev
Date: Fri Nov 18 16:08:26 2022 +0300

    Added status for thrusection operations.

git

2022-11-21 12:56

administrator   ~0112265

Branch CR33180_1 has been created by andrey.kaftasev_159541.

SHA-1: 8e5279324c238081f0cf29f7e28456bee8650c32


Detailed log of new commits:

Author: akaftasev
Date: Thu Nov 17 10:25:36 2022 +0300

    0033180: We had a problem calling the OCC library at the customer site, and the program crashed
    
    Added status for thrusection operations and changed throw constructions to set of the status and break the function.

akaftasev

2022-11-21 20:01

developer   ~0112268

Last edited: 2022-11-21 20:01

Brancg for review:
OCCT - CR33180_1

Results of testing:
http://jenkins-test-occt.nnov.opencascade.com/view/CR33180-master-akaftasev/view/COMPARE/

emv

2022-11-22 08:54

developer   ~0112272

src/BRepFill/BRepFill.hxx
- Please separate enum into a dedicated file, e.g. BRepFill_ErrorStatus or BRepFill_ThruSectionErrorStatus
- Please provide meaningful description to all status codes, otherwise it is unclear for what reason there is at least 4 statuses dealing with profile type - NotClosed, NotOpen, NotSameTopology, ProfilesInconsistent.

src/BRepFill/BRepFill_CompatibleWires.cxx
- In Perform method the status is compared with NotDone status. I think it is better to set the status to Done in the beginning, and work with it. If status is not Done at the end, return it.

src/BRepFill/BRepFill_CompatibleWires.hxx
- Make GetStatus() method inline

src/BRepFill/BRepFill_Generator.cxx
- Please use Standard_Boolean instead of bool
- Same here about Perform method - it is better to set the status OK in the beginning

src/BRepFill/BRepFill_Generator.hxx
- Make GetStatus method inline

src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.cxx
- Are you sure the try-catch should be removed? If it doesn't throw anything now, it might in the future.
- lines 501-505 and 510-514 - check for the status twice. Move this check out of if-else block.
- EdgeToBSpline, TotalSurf methods - instead of Handle(Geom_BSplineCurve)() you may simply return nullptr I think.
- TotalSurf method lines 1229-1232 - where the status might be set to Failed?

src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.hxx
- Make GetStatus method inline

tests/bugs/modalg_6/bug26636
- Message is not informative now. I think draw command has to be adapted to print corresponding error message for the error code.

tests/bugs/modalg_8/bug33180
- What do we expect in the new test case? If it is OK - then we need to check the validity of the result, if not, then we have to report its invalidity and expect it.


In general, I think the whole ErrorStatus approach should be replaced with the Alert system (Message_Alert) which is more flexible and extensible and, by the way, has the messages for the errors on board.

git

2022-11-22 15:18

administrator   ~0112275

Branch CR33180_1 has been updated by andrey.kaftasev_159541.

SHA-1: caf4301ddbb309e25c7ad07b47ece7da0ed3b308


Detailed log of new commits:

Author: akaftasev
Date: Tue Nov 22 15:18:06 2022 +0300

    #remarks

emv

2022-11-23 09:25

developer   ~0112279

src/BRepFill/BRepFill_CompatibleWires.cxx
- Why new include?

src/BRepFill/BRepFill_CompatibleWires.hxx
- Please add description to new method.

src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.cxx
- lines 511-512 are not necessary.
- does it make sense to set the status to Done in the beginning of the Build method?

git

2022-11-23 10:33

administrator   ~0112280

Branch CR33180 has been updated forcibly by andrey.kaftasev_159541.

SHA-1: 0ded4297427ce85c4717b31c695cf5f5ad265784

git

2022-11-23 10:40

administrator   ~0112281

Branch CR33180 has been updated forcibly by andrey.kaftasev_159541.

SHA-1: 03e7c414bae033f2a95aaad60cb757532e024e4a

akaftasev

2022-11-25 10:11

developer   ~0112298

Branch for review:
OCCT - CR33180

Results of testing:
http://jenkins-test-occt.nnov.opencascade.com/view/CR33180-master-akaftasev/view/COMPARE/

emv

2022-11-25 12:57

developer   ~0112304

Reviewed. Please integrate CR33180 into OCCT.

git

2024-09-14 22:12

administrator   ~0116676

Branch CR33180 has been deleted by dpasukhi.

SHA-1: 03e7c414bae033f2a95aaad60cb757532e024e4a

git

2024-09-14 22:12

administrator   ~0116677

Branch CR33180_1 has been deleted by dpasukhi.

SHA-1: caf4301ddbb309e25c7ad07b47ece7da0ed3b308

Related Changesets

occt: master 3eb891ec

2022-11-17 10:25:36

akaftasev


Committer: smoskvin Details Diff
0033180: We had a problem calling the OCC library at the customer site, and the program crashed

Added status for thrusection operations and changed throw constructions to set of the status and break the function.
Affected Issues
0033180
mod - src/BRepFill/BRepFill_CompatibleWires.cxx Diff File
mod - src/BRepFill/BRepFill_CompatibleWires.hxx Diff File
mod - src/BRepFill/BRepFill_Generator.cxx Diff File
mod - src/BRepFill/BRepFill_Generator.hxx Diff File
add - src/BRepFill/BRepFill_ThruSectionErrorStatus.hxx Diff File
mod - src/BRepFill/FILES Diff File
mod - src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.cxx Diff File
mod - src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.hxx Diff File
mod - src/BRepTest/BRepTest_SweepCommands.cxx Diff File
mod - tests/bugs/modalg_6/bug26636 Diff File
add - tests/bugs/modalg_8/bug33180 Diff File
mod - tests/thrusection/bugs/bug24997 Diff File

Issue History

Date Modified Username Field Change
2022-10-24 15:17 jinsong.chen New Issue
2022-10-24 15:17 jinsong.chen Assigned To => msv
2022-10-25 10:44 jinsong.chen Note Added: 0111738
2022-10-25 10:49 msv Note Added: 0111740
2022-11-10 09:11 szy Assigned To msv => akaftasev
2022-11-10 09:11 szy Priority normal => high
2022-11-10 09:11 szy Status new => assigned
2022-11-10 09:11 szy Product Version => 7.6.0
2022-11-10 09:11 szy Target Version => 7.8.0
2022-11-10 09:27 jinsong.chen Note Added: 0111980
2022-11-10 09:27 jinsong.chen File Added: wire1.brep
2022-11-10 09:27 jinsong.chen File Added: wire2.brep
2022-11-17 10:26 git Note Added: 0112142
2022-11-18 16:08 git Note Added: 0112172
2022-11-21 12:56 git Note Added: 0112265
2022-11-21 20:01 akaftasev Assigned To akaftasev => emv
2022-11-21 20:01 akaftasev Status assigned => resolved
2022-11-21 20:01 akaftasev Steps to Reproduce Updated
2022-11-21 20:01 akaftasev Note Added: 0112268
2022-11-21 20:01 akaftasev Note Edited: 0112268
2022-11-22 08:54 emv Assigned To emv => akaftasev
2022-11-22 08:54 emv Status resolved => assigned
2022-11-22 08:54 emv Note Added: 0112272
2022-11-22 15:18 git Note Added: 0112275
2022-11-22 17:24 akaftasev Assigned To akaftasev => emv
2022-11-22 17:24 akaftasev Status assigned => resolved
2022-11-23 09:25 emv Assigned To emv => akaftasev
2022-11-23 09:25 emv Status resolved => assigned
2022-11-23 09:25 emv Note Added: 0112279
2022-11-23 10:33 git Note Added: 0112280
2022-11-23 10:40 git Note Added: 0112281
2022-11-25 10:11 akaftasev Assigned To akaftasev => emv
2022-11-25 10:11 akaftasev Status assigned => resolved
2022-11-25 10:11 akaftasev Steps to Reproduce Updated
2022-11-25 10:11 akaftasev Note Added: 0112298
2022-11-25 12:57 emv Assigned To emv => bugmaster
2022-11-25 12:57 emv Status resolved => reviewed
2022-11-25 12:57 emv Note Added: 0112304
2022-12-05 00:23 smoskvin Status reviewed => tested
2022-12-05 00:25 smoskvin Changeset attached => occt master 3eb891ec
2022-12-05 00:25 akaftasev Assigned To bugmaster => akaftasev
2022-12-05 00:25 akaftasev Status tested => verified
2022-12-05 00:25 akaftasev Resolution open => fixed
2024-09-14 22:12 git Note Added: 0116676
2024-09-14 22:12 git Note Added: 0116677