DiscussionsIssue archiveOCCT:Modeling Algorithms

Archived issue #0024934

Section: crash for two faces

Open CASCADEOCCT:Modeling Algorithmsclosed15 public notes

Search issues

Description

A section operation for two faces crashes on new boolean operations (BRepAlgoAPI_Section). While it works nice using old algorithm (BRepAlgo_Section).

Steps to reproduce

restore f1.brep f1
restore f2.brep f2
bsection r f1 f2
An exception was caught 0FD08AD0 : Standard_NumericError: FLT MULTIPLE FAULTS
** Exception ** 0FD08AD0 : Standard_NumericError: FLT MULTIPLE FAULTS

Public activity

15 archived notes

Participants are labeled by their role within this record.

01Commenter 1
Vlad, current version of OCCT master returns "error 111" and no result, and I suppose this is correct in that case (one of the two faces is clearly bad, and they are not intersecting). Do you still consider this case as relevant?
02Author
I agree, for a boolean operation this case is not relevant. But I noticed that an attempt to "fix" the first shape raises an exception:

Draw[21]> restore f1.brep f1
Draw[22]> checkshape f1
On Shape faulty_1 :
BRepCheck_NotConnected
BRepCheck_NoError
On Shape faulty_2 :
BRepCheck_UnorientableShape
Shape faulty_1 on shape faulty_2 :
BRepCheck_NotConnected
Faulty shapes in variables faulty_1 to faulty_2
Draw[23]> fixshape ff1 f1
An exception was caught 0FFB4298 : OSD_Exception_ACCESS_VIOLATION: ACCESS VIOLATION at address 0xFEFD0018 during 'READ' operation
** Exception ** 0FFB4298 : OSD_Exception_ACCESS_VIOLATION: ACCESS VIOLATION at address 0xFEFD0018 during 'READ' operation

May be the bug should be reconsidered for shape healing? Or closed. I agree with both solutions.
03Commenter 3
I Formal reason of test fail on current master:

An exception was caught 55BDE708 : Standard_NullObject: BRep_Tool:: TopoDS_Vertex hasn't gp_Pnt
** Exception ** 55BDE708 : Standard_NullObject: BRep_Tool:: TopoDS_Vertex hasn't gp_Pnt

II Fail explanation:

Attached "f1" shape consists of 2 edges and 1 wire, command "explode" return that there is no vertexes on edges and they have unlimited bounds:

    Tolerance : 0.01
     same parametrisation of curves
     same range on curves
    - Curve 3D : 1, range : -2e+100 2e+100
    - PCurve : 1 on surface 1, range : -2e+100 2e+100
  UV Points : 1.79769313486232e+308, 1.79769313486232e[phone removed]e+308
, 1.79769313486232e+308
    - Regularity G1 on surfaces : 1, 2

We usually work with edges which have vertexes on it borders, but in this case there is no possibility to add them and make face later.

III Solution

According to previous chapter I offer to close bug, because "f1" shape too "bad" to be fixed.
04Commenter 4
Please only protect ShapeHealing algorithms from exception (obviously check for Null vertex is absent) so that command fixshape does not raise exceptions
05Commenter 2
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: aml
Date: Thu Oct 30 10:25:53 2014 +0300

    0024934: Section: crash for two faces
    
    Added protection from null vertexes.
06Commenter 6
Dear abv,

Please check current state of branch CR24934.

Protection from null vertexes which lead to exceptions was added.
07Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
08Commenter 8
No remarks, please test
09Commenter 9
Dear Commenter 1,
Branch CR24934 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
[revision removed]

Number of compiler warnings:

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

products component :
Linux: 11 (11 on master)
Windows: 1 (1 on master)

Regressions/Differences:
No regressions/differences

Testing cases:
http://occt-tests/CR24934-master-occt/Debian60-64/bugs/heal/bug24934.html
http://occt-tests/CR24934-master-occt/Windows-32-VC10/bugs/heal/bug24934.html
bugs heal(017) bug24934: FAILED

Testing on Linux:
occt component :
Total MEMORY difference: 372144796 / 371798320
Total CPU difference: 47191.06000000005 / 48296.50000000005
products component :
Total MEMORY difference: 125271600 / 125299284
Total CPU difference: 16996.56999999997 / 16530.73999999999

Testing on Windows:
occt component :
Total MEMORY difference: 273844764 / 273087684
Total CPU difference: 48662.53125 / 37050.84375
products component :
Total MEMORY difference: 80483300 / 70377380
Total CPU difference: 12193.203125 / 12121.578125

There are no differences in images found by testdiff.
10Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: mkv
Date: Fri Oct 31 19:05:37 2014 +0300

    Test case for issue CR24934

11Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
12Commenter 12
Dear mkv,

Test case has been changed to meet pushed fix and rebase to current master has been performed. Please re-test.
13Commenter 13
Mikhail, there is no need in comprehensive testing, just make sure the test bugs heal bug24934 works correctly. Note that the test should only do fixshape command, it is not even necessary to check its result, as in case of exception it will be reported as FAIL anyway.
14Commenter 14
15Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]