View Issue Details

IDProjectCategoryView StatusLast Update
0029698Open CASCADEOCCT:Modeling Algorithmspublic2018-06-29 21:19
ReporteremvAssigned Toabv 
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version7.2.0 
Target Version7.3.0Fixed in Version7.3.0 
Summary0029698: Regression vs 7.2.0: Common operation raises FLT_INVALID_OPERATION exception
DescriptionThe problem is reproduced in the test case bugs/modalg_6/bug26952_1 if "USE_FPE_SIGNAL" turned on.

The problem seems to be caused by the fix for the issue #29688.
Steps To Reproducetest bugs modalg_6 bug26952_1
TagsNo tags attached.
Test case numberbugs modalg_7 bug29698

Activities

git

2018-04-16 15:21

administrator   ~0075464

Branch CR29698 has been created by emv.

SHA-1: e52d773ad46c6fbd56f9bdbd1972c0062abddeee


Detailed log of new commits:

Author: emv
Date: Mon Apr 16 15:21:35 2018 +0300

    0029698: Regression vs 7.2.0: Common operation raises FLT_INVALID_OPERATION exception
    
    When checking if the split edge is oriented as the original one (BOPTools_AlgoTools::IsSplitToReverse()) the tangent vectors should be computed for both edges at the same point. This point is taken on the split edge and projected on the original edge. The fix is intended to ensuring that the reference point will be taken inside the valid range of the split edge (i.e. not covered by the tolerance spheres of its bounding vertices) and the projection of this point on the original edge will be successful.

emv

2018-04-17 08:04

developer   ~0075468

Dear Mikhail, could you please review the git branch CR29698?
Test results - http://jenkins-test-11.nnov.opencascade.com:8080/view/CR29698-master-emv/view/COMPARE/

msv

2018-04-17 12:24

developer   ~0075472

src/BOPAlgo/BOPAlgo_Builder_2.cxx
- Put 828,831 lines in else statement.

src/BOPTools/BOPTools_AlgoTools2D.hxx
- Do not change API of AttachExistingPCurve. Instead, change IsSplitToReverse.

src/BOPTools/BOPTools_AlgoTools.cxx
- Make several intermediate points in IsSplitToReverse to increase reliability of the method. Add error status as the optional output parameter, and generate warning in the calling method in case of error.

Add a test case with "dsetsignal 1".

git

2018-04-17 15:25

administrator   ~0075477

Branch CR29698_1 has been created by emv.

SHA-1: 9a58f7c24177a5653a1de1c7a6f3dfd1289fab89


Detailed log of new commits:

Author: emv
Date: Mon Apr 16 15:21:35 2018 +0300

    0029698: Regression vs 7.2.0: Common operation raises FLT_INVALID_OPERATION exception
    
    When checking if the split edge is oriented as the original one (BOPTools_AlgoTools::IsSplitToReverse()) the tangent vectors should be computed for both edges at the same point. This point is taken on the split edge and projected on the original edge.
    The fix is intended to ensuring that the reference point will be taken inside the valid range of the split edge (i.e. not covered by the tolerance spheres of its bounding vertices) and the projection of this point on the original edge will be successful. Moreover, several sampling points are now taken on the split edge and processed until first valid point is found.
    
    If requested (by a not null pointer) all *BOPTools_AlgoTools::IsSplitToReverse()* methods are now return the error status of the check. Before using the returned flag, the calling program should check this error status. For successful check the error status should be equal to zero.
    
    New warning *BOPAlgo_AlertUnableToOrientTheShape* is now returned in the algorithms in Boolean component in case the check for correct shape orientation failed.
    
    Test case for the issue.

emv

2018-04-18 08:18

developer   ~0075501

Remarks have been considered. Please review the git branch CR29698_1.

msv

2018-04-18 10:50

developer   ~0075506

In IsSplitToReverse(edge,edge) revise the error codes numbers.

Change theContext to const& in all APIs.

git

2018-04-18 16:40

administrator   ~0075522

Branch CR29698_1 has been updated by emv.

SHA-1: ba9083f0faab10e5b02a3a0e94ab3c9bd09e1472


Detailed log of new commits:

Author: emv
Date: Wed Apr 18 16:40:38 2018 +0300

    # Considering remarks.

emv

2018-04-19 08:15

developer   ~0075532

Please review again.

msv

2018-04-19 10:09

developer   ~0075535

Reviewed.

abv

2018-05-03 10:26

manager   ~0075762

Is this change necessary?

src/BOPTools/BOPTools_AlgoTools2D.hxx:
- Standard_EXPORT static Standard_Integer AttachExistingPCurve (const TopoDS_Edge& aEold, const TopoDS_Edge& aEnew, const TopoDS_Face& aF, const Handle(IntTools_Context)& aCtx);
+ Standard_EXPORT static Standard_Integer AttachExistingPCurve (const TopoDS_Edge& aEold, const TopoDS_Edge& aEnew, const TopoDS_Face& aF, Handle(IntTools_Context)& aCtx);

It seems that aCtx is actually not changed inside that method, thus should be passed as const & to it (and all nested methods). Or does it change?

emv

2018-05-03 10:36

developer   ~0075763

This change is not actual. The actual state is in the branch CR29698_1.

abv

2018-05-03 11:44

manager   ~0075771

OOps, you are right, pardon moi!

bugmaster

2018-05-23 15:21

administrator   ~0076178

Combination -
OCCT branch : CR29698_1 SHA - ba9083f0faab10e5b02a3a0e94ab3c9bd09e1472
Products branch : master SHA - 8471189e8649026d76950924f8ec2b4878cba528
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Debian70-64:
OCCT
Total CPU difference: 18210.899999999907 / 18243.73999999987 [-0.18%]
Products
Total CPU difference: 7498.57000000006 / 7495.350000000049 [+0.04%]
Windows-64-VC10:
OCCT
Total CPU difference: 18015.5258833986 / 18049.78370299853 [-0.19%]
Products
Total CPU difference: 8244.075646299874 / 8209.739826199884 [+0.42%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

git

2018-05-24 18:13

administrator   ~0076265

Branch CR29698 has been deleted by kgv.

SHA-1: e52d773ad46c6fbd56f9bdbd1972c0062abddeee

git

2018-05-24 18:13

administrator   ~0076266

Branch CR29698_1 has been deleted by kgv.

SHA-1: ba9083f0faab10e5b02a3a0e94ab3c9bd09e1472

Related Changesets

occt: master 80d55adf

2018-04-16 12:21:35

abv


Committer: abv Details Diff
0029698: Regression vs 7.2.0: Common operation raises FLT_INVALID_OPERATION exception

When checking if the split edge is oriented as the original one (BOPTools_AlgoTools::IsSplitToReverse()) the tangent vectors should be computed for both edges at the same point. This point is taken on the split edge and projected on the original edge.
The fix is intended to ensuring that the reference point will be taken inside the valid range of the split edge (i.e. not covered by the tolerance spheres of its bounding vertices) and the projection of this point on the original edge will be successful. Moreover, several sampling points are now taken on the split edge and processed until first valid point is found.

If requested (by a not null pointer) all *BOPTools_AlgoTools::IsSplitToReverse()* methods are now return the error status of the check. Before using the returned flag, the calling program should check this error status. For successful check the error status should be equal to zero.

New warning *BOPAlgo_AlertUnableToOrientTheShape* is now returned in the algorithms in Boolean component in case the check for correct shape orientation failed.

Test case for the issue.
Affected Issues
0029698
mod - dox/dev_guides/upgrade/upgrade.md Diff File
mod - src/BOPAlgo/BOPAlgo.msg Diff File
mod - src/BOPAlgo/BOPAlgo_Alerts.hxx Diff File
mod - src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder.hxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder_1.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder_2.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder_3.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools.hxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools2D.hxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools2D_1.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools3D.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools3D.hxx Diff File
add - tests/bugs/modalg_7/bug29698 Diff File

Issue History

Date Modified Username Field Change
2018-04-16 15:04 emv New Issue
2018-04-16 15:04 emv Assigned To => msv
2018-04-16 15:05 emv Assigned To msv => emv
2018-04-16 15:05 emv Status new => assigned
2018-04-16 15:21 git Note Added: 0075464
2018-04-17 08:04 emv Note Added: 0075468
2018-04-17 08:04 emv Assigned To emv => msv
2018-04-17 08:04 emv Status assigned => resolved
2018-04-17 12:24 msv Note Added: 0075472
2018-04-17 12:24 msv Assigned To msv => emv
2018-04-17 12:24 msv Status resolved => assigned
2018-04-17 15:25 git Note Added: 0075477
2018-04-18 08:18 emv Note Added: 0075501
2018-04-18 08:18 emv Assigned To emv => msv
2018-04-18 08:18 emv Status assigned => resolved
2018-04-18 10:50 msv Note Added: 0075506
2018-04-18 10:50 msv Assigned To msv => emv
2018-04-18 10:50 msv Status resolved => assigned
2018-04-18 16:40 git Note Added: 0075522
2018-04-19 08:15 emv Note Added: 0075532
2018-04-19 08:15 emv Assigned To emv => msv
2018-04-19 08:15 emv Status assigned => resolved
2018-04-19 10:09 msv Note Added: 0075535
2018-04-19 10:09 msv Assigned To msv => bugmaster
2018-04-19 10:09 msv Status resolved => reviewed
2018-05-03 10:26 abv Note Added: 0075762
2018-05-03 10:36 emv Note Added: 0075763
2018-05-03 11:44 abv Note Added: 0075771
2018-05-23 15:21 bugmaster Note Added: 0076178
2018-05-23 15:21 bugmaster Status reviewed => tested
2018-05-23 15:22 bugmaster Test case number => bugs modalg_7 bug29698
2018-05-24 16:02 abv Changeset attached => occt master 80d55adf
2018-05-24 16:02 abv Assigned To bugmaster => abv
2018-05-24 16:02 abv Status tested => verified
2018-05-24 16:02 abv Resolution open => fixed
2018-05-24 18:13 git Note Added: 0076265
2018-05-24 18:13 git Note Added: 0076266
2018-06-29 21:13 aiv Fixed in Version => 7.3.0
2018-06-29 21:19 aiv Status verified => closed