Error about Ghostscript

Kurt Pfeifle k1pfeifle at gmx.net
Thu Oct 18 07:36:32 PDT 2007


chris wrote:

>>> Thanks , I follow your example and I can get the file should be fed to
>>> the gs command line.
>> No, you got it wrong.
>>
>> The file you get from
>>
>>   PPD=/etc/cups/ppd/isc2428ps.ppd /usr/lib/cups/filter/texttops [....]
>>
>> is "output-from-pstops.prn". And it is meant to be fed to "foomatic-rip",
>> not gs. If you feed it to foomatic-rip like the next command above shows:
>>
>>   PPD=/etc/cups/ppd/isc2428ps.ppd /usr/lib/cups/filter/foomatic-rip 1 2 3 4 5 output-from-pstops.prn
>>
>> then foomatic-rip will run gs on behalf of you. However, it is important
>> that you run these commands as the same user the backends do run as when
>> started by CUPS. So you may need to do a "su - lp" (from being root, and
>> make sure that the su command will really let you change user...)
>>
>> Only then you can assume to have tested the chain manually within an en-
>> vironment that resembles the real CUPS processes. The *.err messages may
>> give you more hints about what is wrong.
>>
>> BTW, here is another thought:
>>
>>   CUPS usually uses a "temp" dir in /var/spool/cups/temp to temporarily
>>   store temp files
>>
>> Grep for "TMPDIR" in your debug level log file to see where your CUPS does
>> look for it.
>>
>> You should make sure it exists and your user "lp" has write and read access
>> to it. You may want to cd to that dir to run the manual commands.
>>
>> You also may want to set additional env vars (as can be seen in error_log
>> when grepping for "envp["
>>
>>> If I manully run gs and lp the printer works
>>> fine.   If they run in cups automately, I has this error.
>> Don't run gs manually, run foomatic-rip manually. And do it as user
>> lp. And make it output its files to $TMPDIR.
>>
>>
>> --
>> Kurt Pfeifle
>> System & Network Printing Consultant ---- Linux/Unix/Windows/Samba/CUPS
>> Infotec Deutschland GmbH  .....................  Hedelfinger Strasse 58
>> A RICOH Company  ...........................  D-70327 Stuttgart/Germany
> 
> 
> 
> 
> I first run
>   PPD=/etc/cups/ppd/isc2428ps.ppd /usr/lib/cups/filter/texttops [....]
> and got the  "output-from-pstops.prn".
> 
> next I run
>   PPD=/etc/cups/ppd/isc2428ps.ppd /usr/lib/cups/filter/foomatic-rip 1 2 3 4 5 output-from-pstops.prn
> 
> Then the error :
>  <job data>
> D [16/Oct/2007:20:36:21 +0000] [Job 1]


I don't believe that these two things are related:

  (a) shell your command above (which misses to take into account a few hints
      given by me anyway)

  (b) the output you quote (this output is written to error_log)

If you ran a command like the above, you'll not get output in the error_log,
but on the shell's stdout/stderr instead. And you don't get the prefixes with
loglevel code, date+time and job number either....

You should run

PPD=/etc/cups/ppd/isc2428ps.ppd \
     TMPDIR=/var/spool/cups/temp \
     /usr/lib/cups/filter/foomatic-rip 1 2 3 4 5 output-from-pstops.prn


> D [16/Oct/2007:20:36:21 +0000] [Job 1] renderer PID kid4=1850
> D [16/Oct/2007:20:36:21 +0000] [Job 1] renderer command: gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=ijs -sIjsServer=hpijs -sDeviceManufacturer="HEWLETT-PACKARD" -sDeviceModel="deskjet 3600" -dDEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=792 -r300 -sIjsParams=Quality:Quality=0,Quality:ColorMode=2,Quality:MediaType=0,Quality:PenSet=1 -dIjsUseOutputFD -sOutputFile=- -
> D [16/Oct/2007:20:36:23 +0000] [Job 1] foomatic-gswrapper: gs '-sstdout=%stderr' '-dBATCH' '-dPARANOIDSAFER' '-dQUIET' '-dNOPAUSE' '-sDEVICE=ijs' '-sIjsServer=hpijs' '-sDeviceManufacturer=HEWLETT-PACKARD' '-sDeviceModel=deskjet 3600' '-dDEVICEWIDTHPOINTS=612' '-dDEVICEHEIGHTPOINTS=792' '-r300' '-sIjsParams=Quality:Quality=0,Quality:ColorMode=2,Quality:MediaType=0,Quality:PenSet=1' '-dIjsUseOutputFD' '-sOutputFile=%stdout' '-'
> D [16/Oct/2007:20:36:24 +0000] [Job 1]
> D [16/Oct/2007:20:36:24 +0000] [Job 1] Closing renderer
> D [16/Oct/2007:20:36:24 +0000] [Job 1] unable to create Job object err=3
> D [16/Oct/2007:20:36:24 +0000] [Job 1] Segmentation fault
> D [16/Oct/2007:20:36:26 +0000] [Job 1] Error: /ioerror in --.outputpage--
> D [16/Oct/2007:20:36:26 +0000] [Job 1] Operand stack:
> 
> 
> and I find the "unable to create Job object err=3" is printed by hpijs...  and the return value indicate when alloc mem failed..
> But I have very enough mem , and if run gs derectly instead of foomatic-rip , there will be no error...
> I'm so confused...

Did you build the hpijs yourself?

> BTW: my system doesn't has usr lp.

When building CUPS from sources, the './configure' command may pick up
another suitable user and use that.

-- 
Kurt Pfeifle
System & Network Printing Consultant ---- Linux/Unix/Windows/Samba/CUPS
Infotec Deutschland GmbH  .....................  Hedelfinger Strasse 58
A RICOH Company  ...........................  D-70327 Stuttgart/Germany




More information about the cups mailing list