LibreCad crashes following layer remove and then file save, dxf file is corrupted

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
19 messages Options
Reply | Threaded
Open this post in threaded view
|

LibreCad crashes following layer remove and then file save, dxf file is corrupted

Saldor Swenson
This post was updated on .
I have a dxf file that contains a lot of widgets and 16 layers.
There is one layer "sideview" that contains nothing.

I can delete this layer but on the next file save librecad crashes.

This is under windows 10
librecad on various versions up to Version: 2.2.0-rc2-15-g76828565

I would be happy to upload the dwg that causes this crash following layer remove and file save.

Note: this dwg I believe started at 2.1.3 and librecad has been updated quite a few times since. I have NOT tried this particular delete layer/save file steps to see if it crashes at 2.1.3

Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

Saldor Swenson
This post was updated on .
Earlier I was referring to the file as a dwg when in fact it is a dxf
I need to note that the dxf is severely corrupted and becomes unusable.
If not for the backup done by librecad one would loose it all.

Example:
Following the layer remove and then file save and crash:

Carport.detail.dxf     34KB <--- This is result of file save crash.... dxf is unusable
Carport.detail.dxf~ 603KB <--- Thank goodness this provided by librecad so I can get going again


Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

Saldor Swenson
WinDbg reports this against the librecad.exe dump:

PROCESS_NAME:  LibreCAD.exe

ERROR_CODE: (NTSTATUS) 0xc0000374 - A heap has been corrupted.

EXCEPTION_CODE_STR:  c0000374

EXCEPTION_PARAMETER1:  77853960
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

LordOfBikes
Administrator
When you can share the file in public, you can use the More button in the reply editor to upload it here with your reply.
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

Saldor Swenson
This post was updated on .
Here is the dxf file that will cause the failure.

Steps:
1. open a copy of the file carport.dxf with librecad on windows 10
2. remove layer "sideview"
3. Attempt to save the file and librecad will crash and file is now corrupted

Carport.dxf
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

dellus
I have noticed that if you switch the layer "sideview" invisible, at all dimensions the main dimension line (not the extension lines, arrows, ticks and text) disappears. So somehow these main dimension lines are connected to the layer "sideview" although the dimension itself is on a different layer. This is a strange situation which should not be possible. I have no explanation how this could have happened, but it might explain the crash at save attempt with "sideview" removed.
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

dellus
This post was updated on .
In reply to this post by Saldor Swenson
Update: my previous report was on 2.2.0 rc2-11. Testing with 2.1.3 gave no crash, also the weird connection of the main dimension lines to layer "sideview" didn't exist.

Oh, another update: that drawing with layer "sideview removed and successfully saved without crash in 2.1.3, opened again in 2.2.0 rc2 and the evil is back. The now last layer "roofline" is the culprit. So it always seems to be something with the last layer.
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

dellus
In reply to this post by Saldor Swenson
There is something screwed up with the dimension lines' properties. How did you get the main dimension line and the extension lines to show different line type in 2.2.0 ?  Have you edited the drawing in a different app? I can't reproduce the problem with test dimensions made in 2.1.3 and then opened in 2.2.0.
If I edit the linetype of your original dimensions in 2.2.0 the strange connections to the last layer disappears, but I can't set the linetype I really want, it stays bound to it's layer properties in a weird way.
Is it only this single drawing? Maybe it's just corrupted.
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

Saldor Swenson
I am technically a CAD novice this being the first and only large cad drawing I've created.
Librecad is the only program used on this file.
There has been multiple manipulations done with moving objects to different layers, modifying linetype, etc...
If there is something the user can do to create a corrupt file/dxf then maybe those manipulations should be blocked? I am unable, at this time, to get the desired drawing in just a few quick and easy commands. I have to basically plow my way through to achieve the desired results.
Bullet proofing any application is an arduous task.
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

Gary S
I've had some success and was able to save the file after deleting the 'sideview' layer.  I opened the file, deleted the layer and saved it with a new file name - no other operations at all.  I then tried a few more times and found LC crashed if I zoomed-all before saving the file with a new filename whether I deleted the layer or not.  LC also crashed if I started turning layers off and on.  Other times I was able to work from the original file without a problem.  I also don't have the problem dellus mentioned with dimensions.  So, weirdness...

I have had problems, read weird behaviour, in the past with layers when working with a large drawing, notably when I used a block that was created using something other than layer 0, accidentally drawing on layer 0, and/or moving entities between layers frequently.  I noted in this drawing you have entities on layer 0.  I don't know if that is what is the problem, but generally speaking I avoid layer 0 should for general drawing purposes.


Win10 / LC 2.2.0rc2
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

perepujal
In LC current git:
Open -> dialogselect (QT?) -> carport.dxf results in empty drawing
Open recent -> select carport.dxf and now it opens, bizarre
This happens to me too with other files so it is not the problem discussed here.

To the problem:
Show/hide the "sideview" layer and see that entities in other layer(s) are shown/hiden
Go to Options -> current drawing preferences -> Dimensions and set Tick size to 1
Show/hide the "sideview" layer again and see that entities in other layer are no more shown/hiden
Do somebody remember a recent thread were Dimensions Tick size was discussed?

I've not tested further
Pere
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

Gary S
This post was updated on .
I opened the posted file on another PC (w/ Linux, LC2.2.0rc2+) and there was little I can do to stop LC crashing after deleting the 'sideview' layer.  I was successful a couple of times, but generally it crashes when trying to save the file and leaves a file that is much smaller (29.2 kB in my case).  I opened the dxf with a text editor and found the file was truncated in a section related to the layer "Carport2.dimension".  After several attempts I found the file was always truncated at the same place.

Once again, opening the original file and comparing it to the truncated file in a text editor I found the layer label had changed.  From "Carport2.deminsions" in the original to "diminsions" in the truncated file.  Back in LC with the original file, I renamed the layers containing a ".", replacing it with a "-";   "Carport2.deminsions" becomes "Carport2-deminsions", etc.  I was able to delete "sideview', save the file and continue to work with the drawing.

Moral of the story - don't use periods / dots / "." in a layer name (maybe?)

Edit - Never mind.  I tried it again with the same problem...
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

dellus
In reply to this post by perepujal
Dimension tick thread: https://forum.librecad.org/point-select-not-working-tp5720321.html

Maybe it's not the file, but a bug introduced with some recent LibreCAD update, as there is no problem with 2.1.3.

Otherwise I have the suspicion the file has been manipulated to make fun of us! Saldor Swenson?...
It's conspicuous that the dimension extension lines are dashed while the main dimension line is continuous in 2.2.0, that's something you will want by purpose.

Here a cut down version with just one dimension for Uncle Armin (LordOfBikes) or some other talented person to have a look into it. It has the same malign behaviour:carport_mod2.dxf
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

dellus
In reply to this post by Gary S
As it seemed to have to do with dimensions I tried and deleted everything on the dimension layers by pulling up a window or "delete all". I then deleted the "sideview" layer and then could save the file without a crash. But I noticed afterwards (and repeated the process to be sure) that deleting the dimensions also removed the inserted block on the "New.4912.outline" layer.
So it seems there are invisible cross-connections from entities on some layer to alien layers. Weird again.

The file seems to be rather screwed up and I don't know how to fix it. I have tried and copied the contents into a new file. At first look it seemed to work, but at repeated opening the problems returned.
I give up on this.  
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

dellus
Another trial: I opened the drawing in NanoCAD and tried to delete the "sideview" layer to see if it would crash too or not. NanoCAD refused to delete it:

Apparently the layer is not really empty.
So I switched off all other layers and saw this (part of screen):

Looks like the main dimension lines.
They could not be selected by mouse-click. Select all worked and following erase all.
But upon switching on the other layers everything was gone.  
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

Gary S
This post was updated on .
Working from two different directions, it seems like dellus and I come to the same conclusion - the dimensioning layers are messed up.  More specifically it seems the dimensioning that should be on "Standalone.dimensions" is split between two layers.  Ditto with and "Carport2.deminsions".

   - If "Standalone.dimensions" and "sideview" are the only two layers on I can see the dimensioning in its complete form (lines, text, arrows) for what I would assume should all be on "Standalone.dimensions".  
   - If "sideview" is turned off, the dimension lines disappear.  The extension lines, arrows and text remain.  
   - If "sideview" is left on and "Standalone.dimensions" is turned off, everything disappears (dimension lines, extension lines, text, arrows).

I tried consolidating the two layers on to a new layer, but then the dimension lines just disappeared (text, arrows and extension line remained).  In the end I deleted the two layers, "sideview" and "Standalone.dimensions", and was able to save the drawing (But I've said that before too - so no guarantees.)

With only "Standalone.dimensions" and  "Carport2.deminsions" layers on, I get the text missing from the screenshot dellus provided:


The "Carport1.dimension" layer doesn't seem to have any entities.

Weirdness in layers....
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

dellus
In reply to this post by perepujal
@ perepujal, concerning the tick solution:
I have found out always if you change or even only confirm with ok something with dimension settings or properties or the dimension layer properties, it looks like everything is fixed, but upon save and reopen it's the same as before. So it has nothing to do with the tick.  
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

perepujal
In reply to this post by Gary S
Another test:
with current git
In case the weird connections between layers were inside the block, select the block, modify attributes, mark apply attributes block deep and select the new.4912.outline layer
Did not solve the problem but seemed a step forward.

Then tried copying all the entities to another place in the draw and remove the original ones with the hope that the weirdness was not copied (I did it with CTRL C CTRL V in case it is different than copying via menus)
saved
opened with 2.1.3 and all seemed ok, saved again with 2.1.3
opened with current git and seems ok

Most likely there is still some issue here that I didn't see, Could somebody test the attached file?
carport-test2.dxf
Reply | Threaded
Open this post in threaded view
|

Re: LibreCad crashes when deleting an unused layer

dellus
carport-test2.dxf: the bad behaviour of layer "sideview" to switch on/off the main dimension lines has been passed on to layer "roofline". I have also come to that result, see earlier post of mine.
The hatches are lost, probably a result of copy and paste.
The file has become larger. A look into the block list - yes, you have accumulated copies of the block with copy 'n paste operations.
The main dimension lines appear as continuous. If you use Properties on one of the dimensions and just confirm it with OK it turns to dashed as it should be, with the layer set to Dash tiny. Also the connectedness with "roofline" disappears. But again, with save and reopen it's back.  

Sorry