Error using ps2pdf on recent matplotlib svn

Hi all,

I recently updated my subversion of matplotlib after a few months. Now
scripts that used to work fine are giving the following error (when
using ps backend xpdf):

···

--------------------

ESP Ghostscript 815.04: Unrecoverable error, exit code 1
Traceback (most recent call last):
  File "MF_disp_visible.py", line 22, in <module>
    legendpos=legendpos)
  File "/home/john/thesis/figures/pytools/plots.py", line 171, in plot_oney
    fig.savefig(filename+'_raw.eps')
  File "/usr/lib/python2.5/site-packages/matplotlib-0.90.1_r3536-py2.5-linux-i686.egg/matplotlib/figure.py",
line 769, in savefig
    self.canvas.print_figure(*args, **kwargs)
  File "/usr/lib/python2.5/site-packages/matplotlib-0.90.1_r3536-py2.5-linux-i686.egg/matplotlib/backends/backend_ps.py",
line 1063, in print_figure
    xpdf_distill(tmpfile, ext=='.eps', ptype=papertype, bbox=bbox)
  File "/usr/lib/python2.5/site-packages/matplotlib-0.90.1_r3536-py2.5-linux-i686.egg/matplotlib/backends/backend_ps.py",
line 1329, in xpdf_distill
    image.\n\Here is the report generated by ghostscript:\n\n' + fh.read())
RuntimeError: ps2pdf was not able to process your image.
\Here is the report generated by ghostscript:

ERROR: /undefined in Copyright
Operand stack:

Execution stack:
   %interp_exit .runexec2 --nostringval-- --nostringval--
--nostringval-- 2 %stopped_push --nostringval--
--nostringval-- --nostringval-- false 1 %stopped_push 1 3
%oparray_pop 1 3 %oparray_pop --nostringval-- 1 3
%oparray_pop 1 3 %oparray_pop .runexec2 --nostringval--
--nostringval-- --nostringval-- 2 %stopped_push
--nostringval--
Dictionary stack:
   --dict:1126/1686(ro)(G)-- --dict:0/20(G)-- --dict:107/200(L)--
--dict:6/7(L)--
Current allocation mode is local
Last OS error: 2
Current file position is 703

-------------------

And this error if not using xpdf:

-------------------

"gs" -dNOPAUSE -dBATCH -sDEVICE=bbox -c "<</PageSize [9400 9400]
/PageOffset [3000 3000]>> setpagedevice" -f "/tmp/gsview6Ye4fd"
ESP Ghostscript 815.04 (2007-03-14)
Copyright (C) 2004 artofcode LLC, Benicia, CA. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
ERROR: /undefined in Copyright
Operand stack:

Execution stack:
   %interp_exit .runexec2 --nostringval-- --nostringval--
--nostringval-- 2 %stopped_push --nostringval--
--nostringval-- --nostringval-- false 1 %stopped_push 1 3
%oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop 1 3
%oparray_pop .runexec2 --nostringval-- --nostringval--
--nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
   --dict:1122/1686(ro)(G)-- --dict:0/20(G)-- --dict:105/200(L)--
--dict:6/7(L)--
Current allocation mode is local
Last OS error: 2
Current file position is 750
Ghostscript failed to obtain bounding box
*** glibc detected *** epstool: double free or corruption (!prev):
0x08091158 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7e767cd]
/lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb7e79e30]
/lib/tls/i686/cmov/libc.so.6(fclose+0x134)[0xb7e65844]
epstool[0x8049e8a]
epstool[0x804ca64]
epstool[0x8050a20]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xdc)[0xb7e24ebc]
epstool[0x8048dd1]
======= Memory map: ========
08048000-0807f000 r-xp 00000000 08:07 593687 /usr/bin/epstool
0807f000-08080000 rw-p 00036000 08:07 593687 /usr/bin/epstool
08080000-080b1000 rw-p 08080000 00:00 0 [heap]
b7c00000-b7c21000 rw-p b7c00000 00:00 0
b7c21000-b7d00000 ---p b7c21000 00:00 0
b7e0e000-b7e0f000 rw-p b7e0e000 00:00 0
b7e0f000-b7f4a000 r-xp 00000000 08:07 82596 /lib/tls/i686/cmov/libc-2.5.so
b7f4a000-b7f4b000 r--p 0013b000 08:07 82596 /lib/tls/i686/cmov/libc-2.5.so
b7f4b000-b7f4d000 rw-p 0013c000 08:07 82596 /lib/tls/i686/cmov/libc-2.5.so
b7f4d000-b7f50000 rw-p b7f4d000 00:00 0
b7f5e000-b7f69000 r-xp 00000000 08:07 48929 /lib/libgcc_s.so.1
b7f69000-b7f6a000 rw-p 0000a000 08:07 48929 /lib/libgcc_s.so.1
b7f6a000-b7f6d000 rw-p b7f6a000 00:00 0
b7f6d000-b7f86000 r-xp 00000000 08:07 48888 /lib/ld-2.5.so
b7f86000-b7f88000 rw-p 00019000 08:07 48888 /lib/ld-2.5.so
bf8b5000-bf8ca000 rw-p bf8b5000 00:00 0 [stack]
ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso]
Aborted (core dumped)

----------------

My system has otherwise not changed. I am on ubuntu fiesty, python
2.5.1, gcc 4.1.2, numpy 1.0.4.dev3883, ESP Ghostscript 815.04.

Any help would be much appreciated.
Thanks,
John Travers

Hi all,

I recently updated my subversion of matplotlib after a few months. Now
scripts that used to work fine are giving the following error (when
using ps backend xpdf):

[...]

My system has otherwise not changed. I am on ubuntu fiesty, python
2.5.1, gcc 4.1.2, numpy 1.0.4.dev3883, ESP Ghostscript 815.04.

One thing: the traceback is unfortunately not very helpful, but I did notice
this line:

xpdf_distill(tmpfile, ext=='.eps', ptype=papertype, bbox=bbox)

That should read ext='eps', not ==. Any idea how the extra = got there?

If that is not the problem, please attach as simple a script as possible that
reproduces the problem, along with any changes you have made to your rc
settings. I use the xpdf distiller all the time and havent had any problems,
although I cant build mpl this morning so I don't know when I will be able to
test the most recent svn changes.

Darren

···

On Monday 16 July 2007 7:27:46 am John Travers wrote:

John Travers wrote:

···

On 16/07/07, Michael Droettboom <mdroe@...86...> wrote:

I wonder if these troubles are related to my recent changes to subset
the fonts. Could you try setting the rc variable ps.fonttype to 42, and
let me know if that works?

It is something to do with fonts, if I remove the line:

rc('font',**{'family':'sans-serif','sans-serif':['DejaVu Sans'],'size':12})

the problem goes away. I'll try and construct a minimal script if you
want, but I guess the above is where the problem lies. Is this line
wrong in some way?

That line is not wrong. It turns out that the DejaVu fonts (unlike any of the fonts I had tested with) have newline characters in the Copyright string. This was messing up the comments in the PostScript file.

Thanks for helping to find this bug! It should be fixed in 3538.

Cheers,
Mike