MantisBT - Community
View Issue Details
0030790Community[OCCT] OCCT:Modeling Algorithmspublic2019-06-18 15:422019-07-18 15:11
rbt2008 
bugmaster 
highminor 
testedopen 
[OCCT] 7.2.0 
[OCCT] 7.4.0* 
bugs/step/bug30790
0030790: [REGRESSION] Modeling Algorithms - Crash when loading specific step file
Application crashes when loading specific file (in attachment)

This is a REGRESSION since OCCT 7.2.0 (#0028490).
Load file: http://s000.tinyupload.com/download.php?file_id=88703362663105045445&t=8870336266310504544521615 [^]
It can be opened with ASSIMP
No tags attached.
png 00033587_103145bb5cd746a5b2168013_step_000.png (494,418) 2019-06-18 15:42
https://tracker.dev.opencascade.org/
png Untitled.png (70,219) 2019-06-18 15:44
https://tracker.dev.opencascade.org/
7z 00033587_103145bb5cd746a5b2168013_step_000.7z (2,180,790) 2019-06-24 08:30
https://tracker.dev.opencascade.org/
Issue History
2019-06-18 15:42rbt2008New Issue
2019-06-18 15:42rbt2008Assigned To => oan
2019-06-18 15:42rbt2008File Added: 00033587_103145bb5cd746a5b2168013_step_000.png
2019-06-18 15:44rbt2008File Added: Untitled.png
2019-06-18 15:54oanNote Added: 0085119
2019-06-18 15:54oanCategoryOCCT:Mesh => OCCT:Data Exchange
2019-06-18 15:54oanAssigned Tooan => gka
2019-06-24 08:30kgvFile Added: 00033587_103145bb5cd746a5b2168013_step_000.7z
2019-06-24 08:41kgvNote Added: 0085236
2019-06-24 08:47kgvRelationship addedchild of 0028490
2019-06-24 08:51kgvAssigned Togka => msv
2019-06-24 08:51kgvCategoryOCCT:Data Exchange => OCCT:Modeling Algorithms
2019-06-24 08:51kgvProduct Version7.3.0 => 7.2.0
2019-06-24 08:51kgvTarget Version => 7.4.0*
2019-06-24 08:51kgvSummaryCAD Assistant: Crash when loading specific step file => [REGRESSION] Modeling Algorithms - Crash when loading specific step file
2019-06-24 08:51kgvDescription Updatedbug_revision_view_page.php?rev_id=21417#r21417
2019-06-24 09:01emvAssigned Tomsv => ifv
2019-06-24 09:02emvNote Added: 0085237
2019-06-24 09:02emvStatusnew => assigned
2019-07-11 21:27kgvRelationship addedrelated to 0030628
2019-07-11 21:39gitNote Added: 0085608
2019-07-12 18:31abvPrioritynormal => high
2019-07-15 19:49gitNote Added: 0085649
2019-07-15 19:53msvAssigned Toifv => msv
2019-07-15 19:54msvNote Added: 0085650
2019-07-15 19:54msvAssigned Tomsv => kgv
2019-07-15 19:54msvStatusassigned => resolved
2019-07-16 09:46gitNote Added: 0085656
2019-07-16 09:50gitNote Added: 0085657
2019-07-16 10:50kgvNote Added: 0085662
2019-07-16 16:04msvNote Added: 0085670
2019-07-16 16:16kgvAssigned Tokgv => gka
2019-07-16 16:26gitNote Added: 0085672
2019-07-16 16:28msvNote Added: 0085673
2019-07-18 14:48gkaNote Added: 0085764
2019-07-18 14:48gkaAssigned Togka => bugmaster
2019-07-18 14:48gkaStatusresolved => reviewed
2019-07-18 15:10bugmasterTest case number => bugs/step/bug30790
2019-07-18 15:11bugmasterNote Added: 0085767
2019-07-18 15:11bugmasterStatusreviewed => tested

Notes
(0085119)
oan   
2019-06-18 15:54   
Reported problem is not mesh-related.
Exception is raised during translation of STEP file to BRep model.

stepread 00033587_103145bb5cd746a5b2168013_step_000.step a *
#Reduced model for translation without additional info will be used
#An exception was caught bad array new length [class std::bad_array_new_length]
#** Exception ** bad array new length [class std::bad_array_new_length]

Issue is moved to Data Exchange category.
(0085236)
kgv   
2019-06-24 08:41   
Crash happens within IntCurvesFace_Intersector due to number of C2 intervals equal to 1, which algorithm does not expect:
static void ComputeSamplePars(const Handle(Adaptor3d_HSurface)& Hsurface, 
                              const Standard_Integer nbsu,
                              const Standard_Integer nbsv,
                              Handle(TColStd_HArray1OfReal)& UPars, 
                              Handle(TColStd_HArray1OfReal)& VPars)
{
  Standard_Integer NbUInts = Hsurface->NbUIntervals(GeomAbs_C2);
  Standard_Integer NbVInts = Hsurface->NbVIntervals(GeomAbs_C2);
  TColStd_Array1OfReal UInts(1, NbUInts + 1);
  TColStd_Array1OfReal VInts(1, NbVInts + 1);
  Hsurface->UIntervals(UInts, GeomAbs_C2);
  Hsurface->VIntervals(VInts, GeomAbs_C2);
  //
  TColStd_Array1OfInteger NbUSubInts(1, NbUInts);
  TColStd_Array1OfInteger NbVSubInts(1, NbVInts);
  //
  Standard_Real t, dt;
  t = VInts(NbVInts + 1) - VInts(1); //!< NbVInts == 1 -> t == 0
  t = 1. / t; //!< t == inf
...
  VPars = new TColStd_HArray1OfReal(1, NbV + 1); //!< NbV < 0
(0085237)
emv   
2019-06-24 09:02   
Dear Igor, please take care of the problem.
(0085608)
git   
2019-07-11 21:39   
Branch CR30790 has been created by kgv.

SHA-1: cf4f687b56c0746f7e58d0e25b8857c664e7e52b


Detailed log of new commits:

Author: kgv
Date: Thu Jul 11 21:36:01 2019 +0300

    0030790: [REGRESSION] Modeling Algorithms - Crash when loading specific step file
    
    IntCurvesFace_Intersector, fixed misprint in condition.

Author: kgv
Date: Thu Jul 11 09:38:54 2019 +0300

    0030628: [REGRESSION] Data Exchange - Crash on importing STEP file
    
    RWHeaderSection_RWFileDescription::ReadStep(), added check for an empty list.
(0085649)
git   
2019-07-15 19:49   
Branch CR30790_1 has been created by msv.

SHA-1: 422eadd3fe3fbc6d927131410860740be772c85e


Detailed log of new commits:

Author: msv
Date: Mon Jul 15 19:47:14 2019 +0300

    0030790: [REGRESSION] Modeling Algorithms - Crash when loading specific step file
    
    The problem occurred when the algorithm IntCurvesFace_Intersector was called for a face occupying zero extension along V direction. This is obviously a bad face, but we need to have the algorithm not crashing the application. So, the algorithm has been protected against such input data. At attempt to make calculations it establishes NotDone status.
(0085650)
msv   
2019-07-15 19:54   
Please review.

http://jenkins-test-12.nnov.opencascade.com/view/CR30790_1-master-MSV/view/COMPARE/job/CR30790_1-master-MSV-OCCT-Debian80-64-opt-test-compare/ [^]
(0085656)
git   
2019-07-16 09:46   
Branch CR30790_1 has been updated by msv.

SHA-1: 3076fc276b91d98786d8e4da7aa09418dc4d1317


Detailed log of new commits:

Author: msv
Date: Tue Jul 16 09:44:22 2019 +0300

    #Small correction and updating bad test case

(0085657)
git   
2019-07-16 09:50   
Branch CR30790_1 has been updated forcibly by msv.

SHA-1: 540d49a2a9adb7246874895b90a110f9fe93b887
(0085662)
kgv   
2019-07-16 10:50   
--- a/tests/de/step_3/D9
+++ b/tests/de/step_3/D9
+puts "TODO CR23096 ALL: Error : 2 differences with reference data found"

Shouldn't it be updating reference data instead?
(0085670)
msv   
2019-07-16 16:04   
No, I think in this case in general we should get one solid, but got 2. However, really the shell of the second solid is really unusable, and the new version puts it in the separate solid.
(0085672)
git   
2019-07-16 16:26   
Branch CR30790_1 has been updated forcibly by msv.

SHA-1: 84ec70040fedb6c8ba27ddf6caaa036f0dcb5542
(0085673)
msv   
2019-07-16 16:28   
Dear Galina, please check if update of the test de/step_3/D9 is valid.
(0085764)
gka   
2019-07-18 14:48   
Branch CR30790_1 was reviewed
(0085767)
bugmaster   
2019-07-18 15:11   
Combination -
OCCT branch : CR30790_1
master SHA - 540d49a2a9adb7246874895b90a110f9fe93b887
32ce09545dc9c46a47a51a964a24b1f472e6c2c4
Products branch : master SHA - ce8f14216a548db739b749891b6f800b0d5c6e8b
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:
Debian80-64:
OCCT
Total CPU difference: 16251.940000000106 / 16237.640000000089 [+0.09%]
Products
Total CPU difference: 10500.03000000006 / 10517.890000000038 [-0.17%]
Windows-64-VC14:
OCCT
Total CPU difference: 17596.890625 / 17623.078125 [-0.15%]
Products
Total CPU difference: 12137.390625 / 12058.53125 [+0.65%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention