View Issue Details

IDProjectCategoryView StatusLast Update
0000917luatexluatex bugpublic2014-10-24 17:55
Reporterkarlberry Assigned Toluigi scarso  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version0.79.1 
Fixed in Version0.79.2 
Summary0000917: crash on old .fmt file
Descriptionluatex from TL'14 gets a segmentation fault trying to read the attached .fmt file (for latex). (I gzipped it for upload.) regenerating the .fmt creates something that works, but of course it shouldn't crash under any circumstances ...
Steps To Reproducegunzip badlualatex.fmt.gz
luatex '&./badlualatex' \\relax
TagsNo tags attached.

Activities

karlberry

2014-10-20 19:47

reporter  

badlualatex.fmt.gz (564,629 bytes)

luigi scarso

2014-10-21 06:49

developer   ~0001285

Seg. fault also in experimental.

luigi scarso

2014-10-22 08:46

developer   ~0001286

Is it possibile to know the version of luatex used and the command to make the badlualatex format ? We have spotted the problem, but the solution is ugly.

Hans Hagen

2014-10-22 12:45

manager   ~0001287

we will add a format version number reflecting the specific dumped format (so that number will change when internals have changed)

luigi scarso

2014-10-22 17:28

developer   ~0001288

luatex rev. 4627 is fine, and the difference with the rev. 5066 (which fails to load this format) is that in dump_charinfo texfont.w in rev. 5066 has 3 fields of 32bit less than rev. 4627 . This explain why this part of the format is not compatible between the two versions. A format field helps to avoid these situations, but it has to be kept consistent with the format.

karlberry

2014-10-24 02:52

reporter   ~0001290

i created it on November 26, 2013, almost certainly (though I can't absolutely prove it) with the i386-linux luatex binary in the TL tree at the time, which I believe was
LuaTeX, Version beta-0.76.0-2013052801 (TeX Live 2013) (rev 4627)

seems like the version would be another useful thing to include in the .fmt (for all engines, not just luatex).

luigi scarso

2014-10-24 17:47

developer   ~0001292

Fixed in experimental rev. 5068.
 |FORMAT_ID| is a new field of type int
suitable for the identification of a format: values between 0 and 256
(included) can not be used because in the previous format they are used
for the length of the name of the engine.
It's just after the Web2C \TeX's magic constant "W2TX" .

Hans Hagen

2014-10-24 17:53

manager   ~0001294

comment on karl: between 0.76 and 0.79 the character datastructure was changed (side effect of the more efficient hz implementation) so loading those binary blobs resulted in a stepwise displacement of loaded bytes (normally such changes happen seldom in the engine but i remember from pdftex dev times that sometimes one had to remake the format in order to avoid a crash) .. the patch is not that complex to add to other engines as well

Hans Hagen

2014-10-24 17:55

manager   ~0001295

the problem is solved ... as a one=time side effect formats made with 0.79.1 and loaded with the current 0.79.1 will report a format mismatch therefore we will bump the number to 0.79.2

Issue History

Date Modified Username Field Change
2014-10-20 19:47 karlberry New Issue
2014-10-20 19:47 karlberry File Added: badlualatex.fmt.gz
2014-10-21 06:49 luigi scarso Note Added: 0001285
2014-10-22 08:46 luigi scarso Note Added: 0001286
2014-10-22 12:45 Hans Hagen Note Added: 0001287
2014-10-22 12:46 Hans Hagen Assigned To => luigi scarso
2014-10-22 12:46 Hans Hagen Status new => assigned
2014-10-22 17:28 luigi scarso Note Added: 0001288
2014-10-24 02:52 karlberry Note Added: 0001290
2014-10-24 17:47 luigi scarso Note Added: 0001292
2014-10-24 17:53 Hans Hagen Note Added: 0001294
2014-10-24 17:55 Hans Hagen Note Added: 0001295
2014-10-24 17:55 Hans Hagen Status assigned => closed
2014-10-24 17:55 Hans Hagen Resolution open => fixed
2014-10-24 17:55 Hans Hagen Fixed in Version => 0.79.2