Archived issue #0024934
Section: crash for two faces
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
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.
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?
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.
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.
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.
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.
Please only protect ShapeHealing algorithms from exception (obviously check for Null vertex is absent) so that command fixshape does not raise exceptions
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.
[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.
Dear abv,
Please check current state of branch CR24934.
Protection from null vertexes which lead to exceptions was added.
Please check current state of branch CR24934.
Protection from null vertexes which lead to exceptions was added.
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
No remarks, please test
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.
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.
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
[revision removed]
Detailed log of new commits:
Author: mkv
Date: Fri Oct 31 19:05:37 2014 +0300
Test case for issue CR24934
Branch [archived branch] has been updated forcibly by Participant.
[revision removed]
[revision removed]
Dear mkv,
Test case has been changed to meet pushed fix and rebase to current master has been performed. Please re-test.
Test case has been changed to meet pushed fix and rebase to current master has been performed. Please re-test.
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.
Dear Commenter 1,
Now:
bugs heal(017) bug24934: OK.
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
Now:
bugs heal(017) bug24934: OK.
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
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]