Bug 691482

Summary: SEGV since rev. 11499
Product: Ghostscript Reporter: Alex Cherepanov <alex>
Component: PS InterpreterAssignee: Michael Vrhel <michael.vrhel>
Status: RESOLVED DUPLICATE    
Severity: blocker    
Priority: P1    
Version: master   
Hardware: PC   
OS: Windows NT   
Customer: Word Size: ---

Description Alex Cherepanov 2010-07-21 11:53:32 UTC
Since rev. 11499 gswin32c fails with SEGV running the following command line
on 32-bit Windows:
  gswin32c -Z? -o nul -sDEVICE=bmp16m -r500 fts_08_0800_a4.pdf
Sometimes SEGV happens even without -Z? .

On 64-bit Linux gs generates the following error message:
gs/debugobj/gs '-Z?$@' -r400 -o /dev/null -sDEVICE=bmp16m \
  /home/ray/PDF_1.7_FTS/fts_08_0800_a4.pdf

./psi/ilocate.c(535): Object 0x30f7870 not in any chunk!

The address varies between runs.
Comment 1 Ray Johnston 2010-07-21 17:40:05 UTC
This looks like the same problem as 691478. We have a limitation that userparam
strings need to either be in the executable as strings, or need to be stored
in non_gc_memory.

The problem stems from the way userparams are retained during garbage collection
in a param_list (collected by currentuserparams), but this param_list does not
get the pointers to strings relocated during the GC. Note that the param_dict
itself is correctly updated by reloc, it is just the pointers to the strings in
the param_list that are not traced and updated.

The 'profiledir' remains as of rev. 11523 which moved most of the strings to
non_gc_memory.

Assigning to Michael since he is working on 691478 and this is probably a
duplicate.
Comment 2 Ray Johnston 2010-07-21 17:42:07 UTC
oops. the rev that moved profile name strings to non_gc_memory was 11514, 
not 11523.
Comment 3 Michael Vrhel 2010-07-21 18:18:18 UTC
Verified duplicate of 691478.  Will have fix to commit shortly.

*** This bug has been marked as a duplicate of bug 691478 ***