Bug 698837

Summary: GCUnrecoverable error: undefined in .currentglobal / Operand stack: --nostringval--
Product: Ghostscript Reporter: ylyco <regis.carles>
Component: GeneralAssignee: Ken Sharp <ken.sharp>
Status: RESOLVED FIXED    
Severity: normal CC: chris.liddell, ghostscript-bugzilla
Priority: P4    
Version: 9.22   
Hardware: PC   
OS: Linux   
Customer: Word Size: ---
Attachments: CUPS error_log when it's ok
CUPS error_log when it's not ok
packages when it's ok
packages when it's not ok
appout, printout, error_log
Input PDF File
Filter 1 Output
Filter 2 Output
Filter 3 Output

Description ylyco 2017-12-29 23:34:41 UTC
Hi,

I use Mangeia6 Linux, with :
Cups 2.2.6, Ghostscript 9.22, and when I want to print a Test Page, or a file, nothing prints out, and in cups error_log, I found :

D [28/Dec/2017:11:38:19 +0100] [Job 493] END GCUnrecoverable error: undefined in .currentglobal
D [28/Dec/2017:11:38:19 +0100] [Job 493] Operand stack:
D [28/Dec/2017:11:38:19 +0100] [Job 493] --nostringval--

Note:
Everything used to work fine, with cups 2.2.4 and Ghostscript 9.20.
Since I upgraded cups and Ghostscript : I can't print anymore.
Cups doesn't complain, it shows the print job as "completed", but the printer has no reaction at all.

I'm not sure I post on the appropriate bug report section : sorry if I'm mistaken.

Am I the only one with this issue ?
I can't find other messages on Internet, except this one :
http://gs-bugs.ghostscript.narkive.com/0bRzaH9H/bug-698708-ghostscript-ghostscript-loops

Thanks
Comment 1 ylyco 2017-12-31 00:05:26 UTC
I forgot to mention :
My printer is a DELL 1320c (Laser Color), but it uses the i386 driver for " FX_DocuPrint_C525_A_AP " (Fuji_Xerox-DocuPrint_C525_A_AP - Printer Driver for Fuji Xerox DocuPrint C525 A-AP​ )

This used to work fine, up to the upgrade to cups2.2.6/GhostScript9.22.

Thanks to consider this issue.
Comment 2 Ray Johnston 2018-01-01 10:31:24 UTC
We need the input file and command line that shows the error message from
ghostscript. You pmay want to refer to:
   https://wiki.ubuntu.com/DebuggingPrintingProblems
for more information on how to get the information we need.
Comment 3 ylyco 2018-01-02 08:50:35 UTC
Created attachment 14554 [details]
CUPS error_log when it's ok
Comment 4 ylyco 2018-01-02 08:51:23 UTC
Created attachment 14555 [details]
CUPS error_log when it's not ok
Comment 5 ylyco 2018-01-02 08:52:18 UTC
Created attachment 14556 [details]
packages when it's ok
Comment 6 ylyco 2018-01-02 08:52:42 UTC
Created attachment 14557 [details]
packages when it's not ok
Comment 7 ylyco 2018-01-02 08:58:20 UTC
I generated the "CUPS error_log" from the Cups administration page (http://localhost:631), with the administration tool " Print Test Page ".

I used a printer Dell1320c, with the i386 driver of a Fuji_Xerox-DocuPrint_C525_A_AP - Printer Driver for Fuji Xerox DocuPrint C525 A-AP.

(see attached files for details of the result)
Comment 8 Ken Sharp 2018-01-07 07:42:29 UTC
(In reply to ylyco from comment #7)
> I generated the "CUPS error_log" from the Cups administration page
> (http://localhost:631), with the administration tool " Print Test Page ".
> 
> I used a printer Dell1320c, with the i386 driver of a
> Fuji_Xerox-DocuPrint_C525_A_AP - Printer Driver for Fuji Xerox DocuPrint
> C525 A-AP.
> 
> (see attached files for details of the result)

I'm afraid we can do nothing with the files you have sent. In order to have any chance of fixing the problem, we must first be able to reproduce it. In order to reproduce it we need the input file being sent to Ghostscript and the command line being used.

The error log is no use, nor is a list of which packages you have installed.

You may have to discuss this with someone in the CUPS user group, to determine how to capture the intermediate file and the Ghostscript command line. I am aware that it is possible to do this, I can't tell you how.

All I can tell from this is that it 'looks like' the startup code is trying to use the internal operator .currentglobal at a time when it has been undefined. Without being able to trace the code I cannot say why that is happening.

Please supply an input file and a Ghostscript command line, and I'll investigate further.
Comment 9 ylyco 2018-01-11 12:46:29 UTC
Hi Ken,

this is what I could generate as you need :



Printer Dell1320c, but it uses a driver "FX_DocuPrint_C525_A_AP" not included in Linux Mageia distribution. 
The driver is a i386 RPM package.

I use USB cable connected to "Internet router box"

Driver:	FX DocuPrint C525 A-AP v1.0 (color, 2-sided printing)
Connection:	socket://mafreebox.freebox.fr:9100
Defaults:	job-sheets=none, none media=iso_a4_210x297mm sides=one-sided


[regis@localhost ~]$ lpstat -v
device for Dell1320c: socket://mafreebox.freebox.fr:9100
[regis@localhost ~]$ 


[root@localhost regis]# lpinfo -v
network beh
network http
network ipp
serial serial:/dev/ttyS0?baud=115200
network socket
network lpd
network https
network ipps
direct parallel:/dev/lp0
direct vnc:/
[root@localhost regis]# 


[root@localhost regis]# egrep 'NickName|cupsFilter' /etc/cups/ppd/Dell1320c.ppd
*ShortNickName: "FX DocuPrint C525 A-AP - en"
*NickName: "FX DocuPrint C525 A-AP v1.0"
*cupsFilter: "application/vnd.cups-postscript 0 /usr/lib/cups/filter/FXM_PF"
[root@localhost regis]# 


I use a system "Mageia 6" :
Linux localhost 4.14.10-desktop-1.mga6 #1 SMP Sat Dec 30 01:10:25 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

I use Cups web frontend to configure and it sets up fine the printer.

Nothing prints out when I run : 
[regis@localhost ~]$ echo Hello | lp -d Dell1320c                                                      
request id is Dell1320c-527 (0 file(s))                                                                 
[regis@localhost ~]$  

                              
[root@localhost regis]# cp /var/spool/cups/c00527 /tmp/print-job-data.save                              
[root@localhost regis]# chmod a+r /tmp/print-job-data.save
[root@localhost regis]# cancel -a -x Dell1320c
[root@localhost regis]# cupsenable Dell1320c
[root@localhost regis]# file /tmp/print-job-data.save
/tmp/print-job-data.save: data
[root@localhost regis]# 
[root@localhost regis]# gs -r50 -sPAPERSIZE=a4 -dFIXEDMEDIA /tmp/print-job-data.save
GPL Ghostscript 9.22 (2017-10-04)
Copyright (C) 2017 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Error: /undefined in G
Operand stack:

Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   2015   1   3   %oparray_pop   2014   1   3   %oparray_pop   1998   1   3   %oparray_pop   1884   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:987/1684(ro)(G)--   --dict:0/20(G)--   --dict:78/200(L)--
Current allocation mode is local
Current file position is 11
GPL Ghostscript 9.22: Unrecoverable error, exit code 1
[root@localhost regis]# 
[root@localhost cups]# 


[root@localhost cups]# gs -r50 -dNOPAUSE -dBATCH -sDEVICE=nullpage /tmp/print-job-data.save
GPL Ghostscript 9.22 (2017-10-04)
Copyright (C) 2017 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Error: /undefined in G
Operand stack:

Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   2015   1   3   %oparray_pop   2014   1   3   %oparray_pop   1998   1   3   %oparray_pop   1884   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:988/1684(ro)(G)--   --dict:0/20(G)--   --dict:78/200(L)--
Current allocation mode is local
Current file position is 11
GPL Ghostscript 9.22: Unrecoverable error, exit code 1
[root@localhost cups]# 



Any idea ?
Is it a Ghostscript issue ?

Thanks for check it out.
Comment 10 Chris Liddell (chrisl) 2018-01-11 13:12:10 UTC
Thet's a different error.

Original error:
"undefined in .currentglobal"

error in comment #9:
"Error: /undefined in G"


FWIW, from the original error, I would guess that this is because *something* is using the non-standard Postscript operator ".currentglobal" which is Ghostscript specific, internal use only and, as of 9.22, no longer visible to normal Postscript programs.

Using non-standard Postscript is a bad idea, since anything non-standard is, as in this case, subject to change. Especially daft in this case, as "currentglobal" does the same thing, and is a part of the Postscript language.
Comment 11 Ken Sharp 2018-01-12 00:25:45 UTC
(In reply to ylyco from comment #9)

> Any idea ?

As Chris has already pointed out in comment #10, this is a different error to the one you originally reported!


> Is it a Ghostscript issue ?

I can't tell because, despite being asked twice already, you still have not supplied the input you are sending to Ghostscript. Descriptions of your setup, lists of installed packages etc do not help at all.

Ray pointed you (comment #2) to the URL which describes how to debug CUPS printer problems, the sections you need to read is titled "Capturing print job data" and "Getting the data which would go to the printer".

One or the other of these should be the input being sent to Ghostscript. If you can't figure this out, then please ask someone in the CUPS community for help. We cannot investigate your problem without seeing what is being sent to Ghostscript.

If you don't supply that information then eventually I'll get bored of seeing this in my 'open bugs' list and I will close the report.
Comment 12 ylyco 2018-01-12 02:20:01 UTC
My printer is a Dell1320c, using driver "FX_DocuPrint_C525_A_AP" not included in Linux Mageia distribution. 
The driver is a i386 RPM package.

I use USB cable connected to "Internet router box", with JetDirect/AppSocket.

Driver:	FX DocuPrint C525 A-AP v1.0 (color, 2-sided printing)
Connection:	socket://mafreebox.freebox.fr:9100
Defaults:	job-sheets=none, none media=iso_a4_210x297mm sides=one-sided

******************
Network printer :
******************
---------------

[root@localhost cups]# ping mafreebox.freebox.fr
PING freeplayer.freebox.fr (212.27.38.253) 56(84) bytes of data.
64 bytes from freeplayer.freebox.fr (212.27.38.253): icmp_seq=1 ttl=64 time=0.861 ms
64 bytes from freeplayer.freebox.fr (212.27.38.253): icmp_seq=2 ttl=64 time=0.695 ms

------

[root@localhost cups]# nmap mafreebox.freebox.fr

Starting Nmap 7.40 ( https://nmap.org ) at 2018-01-12 10:08 CET
Nmap scan report for mafreebox.freebox.fr (212.27.38.253)
Host is up (0.0013s latency).
rDNS record for 212.27.38.253: freeplayer.freebox.fr
Not shown: 996 filtered ports
PORT     STATE SERVICE
80/tcp   open  http
554/tcp  open  rtsp
5678/tcp open  rrac
9100/tcp open  jetdirect

Nmap done: 1 IP address (1 host up) scanned in 9.37 seconds
[root@localhost cups]# 

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

[root@localhost regis]# /usr/lib/cups/backend/snmp
[root@localhost regis]# /usr/lib/cups/backend/dnssd
DEBUG: Ignoring local service Fx Couleur @ linux.
DEBUG: Ignoring local service Fx Couleur @ linux.
DEBUG: Ignoring local service Fx Couleur @ linux.
DEBUG: Ignoring local service Fx Couleur @ linux.
DEBUG: Ignoring local service Fx Couleur @ linux.
DEBUG: sent=0, count=0
DEBUG: Ignoring local service Fx Couleur @ linux.
DEBUG: sent=0, count=0
DEBUG: sent=0, count=0
DEBUG: sent=0, count=0
DEBUG: sent=0, count=0
[root@localhost regis]# 

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

[root@localhost regis]# /usr/lib/cups/backend/snmp mafreebox.freebox.fr
[root@localhost regis]# lpinfo -v               
network beh
direct vnc:/
network lpd
network ipps
network socket
serial serial:/dev/ttyS0?baud=115200
network https
network http
network ipp
direct parallel:/dev/lp0

-----

[root@localhost regis]# avahi-browse -a -v -t -r
Version du serveur  : avahi 0.6.32 ; nom d'hôte  : linux.local
Domaine E Ifce Prot Nom                                           Type                
+ enp3s0 IPv6 Fx Couleur @ linux                            Internet Printer     local
+ enp3s0 IPv4 Fx Couleur @ linux                            Internet Printer     local
+ enp3s0 IPv6 Fx Couleur @ linux                            _ipps._tcp           local
+ enp3s0 IPv4 Fx Couleur @ linux                            _ipps._tcp           local
+ enp3s0 IPv6 Fx Couleur @ linux                            UNIX Printer         local
+ enp3s0 IPv4 Fx Couleur @ linux                            UNIX Printer         local
+ enp3s0 IPv6 linux                                         Remote Disk Management local
+ enp3s0 IPv4 linux                                         Remote Disk Management local
+ enp3s0 IPv6 linux                                         SSH Remote Terminal  local
+ enp3s0 IPv4 linux                                         SSH Remote Terminal  local
Échec de résolution du service « Fx Couleur @ linux » de type « _ipp._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « Fx Couleur @ linux » de type « _ipp._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « Fx Couleur @ linux » de type « _ipps._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « Fx Couleur @ linux » de type « _ipps._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « Fx Couleur @ linux » de type « _printer._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « Fx Couleur @ linux » de type « _printer._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « linux » de type « _udisks-ssh._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « linux » de type « _udisks-ssh._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « linux » de type « _ssh._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « linux » de type « _ssh._tcp » dans le domaine « local »  : Temps d'attente écoulé
 : c'est tout pour le moment
 : mémoire cache saturée
 
----------
 
[root@localhost regis]# avahi-browse -a -v -c -r
Version du serveur  : avahi 0.6.32 ; nom d'hôte  : linux.local
Domaine E Ifce Prot Nom                                           Type                
+ enp3s0 IPv6 Fx Couleur @ linux                            Internet Printer     local
+ enp3s0 IPv4 Fx Couleur @ linux                            Internet Printer     local
+ enp3s0 IPv6 Fx Couleur @ linux                            _ipps._tcp           local
+ enp3s0 IPv4 Fx Couleur @ linux                            _ipps._tcp           local
+ enp3s0 IPv6 Fx Couleur @ linux                            UNIX Printer         local
+ enp3s0 IPv4 Fx Couleur @ linux                            UNIX Printer         local
+ enp3s0 IPv6 linux                                         Remote Disk Management local
+ enp3s0 IPv4 linux                                         Remote Disk Management local
+ enp3s0 IPv6 linux                                         SSH Remote Terminal  local
+ enp3s0 IPv4 linux                                         SSH Remote Terminal  local
Échec de résolution du service « Fx Couleur @ linux » de type « _ipp._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « Fx Couleur @ linux » de type « _ipp._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « Fx Couleur @ linux » de type « _ipps._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « Fx Couleur @ linux » de type « _ipps._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « Fx Couleur @ linux » de type « _printer._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « Fx Couleur @ linux » de type « _printer._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « linux » de type « _udisks-ssh._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « linux » de type « _udisks-ssh._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « linux » de type « _ssh._tcp » dans le domaine « local »  : Temps d'attente écoulé
Échec de résolution du service « linux » de type « _ssh._tcp » dans le domaine « local »  : Temps d'attente écoulé
 : c'est tout pour le moment
 : mémoire cache saturée
 
--------

[root@localhost regis]# ifconfig
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.10  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::76d4:35ff:feff:b4b0  prefixlen 64  scopeid 0x20<link>
        ether 74:d4:35:ff:b4:b0  txqueuelen 1000  (Ethernet)
        RX packets 1060  bytes 382746 (373.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2929  bytes 427760 (417.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Boucle locale)
        RX packets 2307  bytes 158766 (155.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2307  bytes 158766 (155.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

----------

[root@localhost regis]# route
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    10     0        0 enp3s0
link-local      0.0.0.0         255.255.0.0     U     10     0        0 enp3s0
192.168.0.0     0.0.0.0         255.255.255.0   U     10     0        0 enp3s0
[root@localhost regis]#

---------

*************************
Capturing print job data
*************************

[root@localhost regis]# cancel -a -x
[root@localhost regis]# cupsdisable Dell1320c
[root@localhost regis]# lpstat -o
[root@localhost regis]# ls -l /var/spool/cups
total 80
-rw-r----- 1 root lp   234 déc.  18 20:32 d00378-001
-rw-r----- 1 root lp   234 déc.  18 20:35 d00379-001
-rw-r----- 1 root lp   234 déc.  18 20:40 d00380-001
-rw-r----- 1 root lp    32 déc.  18 20:44 d00381-001
-rw-r----- 1 root lp 52876 déc.  18 20:45 d00382-001
-rw-r----- 1 root lp   234 déc.  18 21:55 d00383-001
-rw-r----- 1 root lp   234 déc.  19 08:45 d00384-001
drwxrwx--T 2 root lp  4096 janv. 12 10:31 tmp/
[root@localhost regis]# echo Hello | lp -d Dell1320c
request id is Dell1320c-533 (0 file(s))
[root@localhost regis]# ls -l /var/spool/cups
total 84
-rw-r----- 1 root lp   234 déc.  18 20:32 d00378-001
-rw-r----- 1 root lp   234 déc.  18 20:35 d00379-001
-rw-r----- 1 root lp   234 déc.  18 20:40 d00380-001
-rw-r----- 1 root lp    32 déc.  18 20:44 d00381-001
-rw-r----- 1 root lp 52876 déc.  18 20:45 d00382-001
-rw-r----- 1 root lp   234 déc.  18 21:55 d00383-001
-rw-r----- 1 root lp   234 déc.  19 08:45 d00384-001
-rw-r----- 1 root lp     6 janv. 12 10:39 d00533-001
drwxrwx--T 2 root lp  4096 janv. 12 10:31 tmp/
[root@localhost regis]# ls -l /var/spool/cups
total 84
-rw-r----- 1 root lp   234 déc.  18 20:32 d00378-001
-rw-r----- 1 root lp   234 déc.  18 20:35 d00379-001
-rw-r----- 1 root lp   234 déc.  18 20:40 d00380-001
-rw-r----- 1 root lp    32 déc.  18 20:44 d00381-001
-rw-r----- 1 root lp 52876 déc.  18 20:45 d00382-001
-rw-r----- 1 root lp   234 déc.  18 21:55 d00383-001
-rw-r----- 1 root lp   234 déc.  19 08:45 d00384-001
-rw-r----- 1 root lp     6 janv. 12 10:39 d00533-001
drwxrwx--T 2 root lp  4096 janv. 12 10:31 tmp/
[root@localhost regis]# cp /var/spool/cups/d00533-001 ~/appout
[root@localhost regis]# chmod 777 ~/appout
[root@localhost regis]# cupsenable Dell1320c
[root@localhost regis]# file ~/appout
/root/appout: ASCII text
[root@localhost regis]# cat ~/appout
Hello
[root@localhost regis]# 

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

*********
Note
*********
When I run command " echo Hello | lp -d Dell1320c ", within the Cups "error_log", I still have :

END GCUnrecoverable error: undefined in .currentglobal
Operand stack:
--nostringval--

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

I hope this time my report is good enough to study with...

Do you think it's a GhostScript error ?
Or is it part of Cups issue ?

Thanks again
Comment 13 Ken Sharp 2018-01-12 02:24:45 UTC
(In reply to ylyco from comment #12)

> I hope this time my report is good enough to study with...

You still have not attached the actual files, teh directory listing is *NOT* helpful.

We need to run the same input through Ghostscript that you did, in the same way. Until you send us the files containing that input, we can't do that.

 
> Do you think it's a GhostScript error ?
> Or is it part of Cups issue ?

Without seeing the input file, I can't possibly tell.

Please don't keep sending the rest of the CUPS information, While it might be of use to the CUPS developers we cannot use it. We need the input file and the Ghostscript configuration being used. Nothing else.
Comment 14 ylyco 2018-01-12 06:57:24 UTC
Created attachment 14581 [details]
appout, printout, error_log
Comment 15 ylyco 2018-01-12 06:57:53 UTC
Sorry to bother you, but I'm not an expert in computer science, and I don't speak  English fluently...

This is my last shot :
I join you some files, I generated after running this linux command :

    echo Hello | lp -d Dell1320c

I don't use a specific program to generate it, but only the command line witch purpose is to print the single word " Hello ". The printer doesn't print anything, and even not react at all.

So, there are some files :
- Capturing print job data :
      appout: ' ASCII text ' type
- Getting the data which would go to the printer :
      printout : whitch is empty
- and the Cups error_log file

I hope you have the elements asked this time.
Comment 16 Ken Sharp 2018-01-12 07:11:31 UTC
(In reply to ylyco from comment #15)
> Sorry to bother you, but I'm not an expert in computer science, and I don't
> speak  English fluently...

I understand that, I'm trying to be as clear as I can be.

 
> This is my last shot :
> I join you some files, I generated after running this linux command :
> 
>     echo Hello | lp -d Dell1320c
> 
> I don't use a specific program to generate it, but only the command line
> witch purpose is to print the single word " Hello ". The printer doesn't
> print anything, and even not react at all.
> 
> So, there are some files :
> - Capturing print job data :
>       appout: ' ASCII text ' type

Which just says 'Hello'. Its not PostScript


> - Getting the data which would go to the printer :
>       printout : whitch is empty
> - and the Cups error_log file

Which shows me that there was some real PostScript sent to Ghostscript, and that it produced an error. Sadly it does not include the actual PostScript.

 
> I hope you have the elements asked this time.

Sorry, no. There is still no PostScript here, which is what would get sent to Ghostscript.

Without seeing what is being sent to Ghostscript, I cannot investigate the problem.

I suggest you contact the CUPS team and ask them for help with your problem, if you can get their help to capture the actual PostScript being sent to Ghostscript then please feel free to reopen this bug report.
Comment 17 ylyco 2018-01-12 07:16:29 UTC
I thank you for your expertise.
Comment 18 Martin S. 2018-02-22 10:20:11 UTC
Created attachment 14810 [details]
Input PDF File
Comment 19 Martin S. 2018-02-22 10:22:44 UTC
Created attachment 14811 [details]
Filter 1 Output

Created manually using filter command line:
/usr/lib/cups/filter/pdftops -level3 -origpagesizes -nocenter -r 600 d01202-001 > d01202-001.ps
Comment 20 Martin S. 2018-02-22 10:24:12 UTC
Created attachment 14812 [details]
Filter 2 Output

Created manually using filter command line:
/usr/lib/cups/filter/pstops 1202 lp 'Untitled 1.odt' 1 'Duplex=None FXColorMode=Black PageSize=A4 job-uuid=urn:uuid:ab2497cc-e80e-3957-7ba8-3a58bbcfe8f1 job-originating-host-name=localhost date-time-at-creation= date-time-at-processing= time-at-creation=1519312093 time-at-processing=1519312093 document-name-supplied=Ule705' d01202-001 > d01202-001-pstops.ps
Comment 21 Martin S. 2018-02-22 10:29:36 UTC
Created attachment 14813 [details]
Filter 3 Output

Created manually using the following command:
/usr/bin/gs -dDEBUG -dPARANOIDSAFER -dNOPAUSE -dBATCH -dNOMEDIAATTRS -sDEVICE=ppmraw -sstdout=%stderr -sOUTPUTFILE=%stdout d01202-001-pstops.ps > d01202-001-gs.out

The driver for the printer mentioned in this bug defines "/usr/lib/cups/filter/FXM_PF" from the driver package as the last filter.

That does call the above ghostscript command to receive the final ppmraw output to send to the printer (as far as I understood).

As one can see in this file, for whatever reason, ghostscript does not convert the file fully as it did before version 9.22. Perhaps it is a regression in the changes regarding .currentglobal handling.

I'd appreciate if you can provide any hints now to fix printing for users again. :)
Comment 22 Ken Sharp 2018-02-22 10:58:04 UTC
(In reply to Martin S. from comment #21)

> Created manually using the following command:
> /usr/bin/gs -dDEBUG -dPARANOIDSAFER -dNOPAUSE -dBATCH -dNOMEDIAATTRS
> -sDEVICE=ppmraw -sstdout=%stderr -sOUTPUTFILE=%stdout d01202-001-pstops.ps >
> d01202-001-gs.out

While I appreciate the completeness, you only need to send the input to Ghostscript, and the command line being used.


> As one can see in this file, for whatever reason, ghostscript does not
> convert the file fully as it did before version 9.22. Perhaps it is a
> regression in the changes regarding .currentglobal handling.

Nope. Its a problem with DEBUG handling. Its fixed now.

 
> I'd appreciate if you can provide any hints now to fix printing for users
> again. :)

Get the current code from our Git repository, or don't use -dDEBUG in a production environment.
Comment 23 Martin S. 2018-02-23 18:10:27 UTC
(In reply to Ken Sharp from comment #22)
> (In reply to Martin S. from comment #21)
> 
> > As one can see in this file, for whatever reason, ghostscript does not
> > convert the file fully as it did before version 9.22. Perhaps it is a
> > regression in the changes regarding .currentglobal handling.
> 
> Nope. Its a problem with DEBUG handling. Its fixed now.

Thanks for the hint and sorry for the ticket noise. For anyone arriving googling here I fixed printing again by removing the "-dDEBUG" argument from the driver file "/usr/lib/cups/filter/FXM_PS2PM" which defines the ghostscript command-line.

> > I'd appreciate if you can provide any hints now to fix printing for users
> > again. :)
> 
> Get the current code from our Git repository, or don't use -dDEBUG in a
> production environment.

Thanks, latter apparently seems to fix printing!

However, manually calling ghostscript on the "Filter 3 Output File" still shows errors despite the missing debug argument:
---
# /usr/bin/gs -dPARANOIDSAFER -dNOPAUSE -dBATCH -dNOMEDIAATTRS -sDEVICE=ppmraw -sstdout=%stderr -sOUTPUTFILE=%stdout d01202-001-pstops.ps > d01202-001-gs.out
GPL Ghostscript 9.22 (2017-10-04)
Copyright (C) 2017 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Error: /undefined in obj
Operand stack:
   2   0
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1999   1   3   %oparray_pop   1998   1   3   %oparray_pop   1982   1   3   %oparray_pop   1868   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:981/1684(ro)(G)--   --dict:0/20(G)--   --dict:84/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
Current file position is 1001
GPL Ghostscript 9.22: Unrecoverable error, exit code 1
---

This might be expected as perhaps the environment is different when being invoked in the cups filterchain (thus the no such file or directory error).

I also tried to find the correct revision for the DEBUG fix but wasn't successful. I'd like to backport a patch for distro packages until the next ghostscript release. I'd appreciate if you have a git revision for me.

Thank you for all the effort on this project.
Comment 24 Ken Sharp 2018-02-24 01:35:38 UTC
(In reply to Martin S. from comment #23)

> However, manually calling ghostscript on the "Filter 3 Output File" still
> shows errors despite the missing debug argument:
> ---
> # /usr/bin/gs -dPARANOIDSAFER -dNOPAUSE -dBATCH -dNOMEDIAATTRS
> -sDEVICE=ppmraw -sstdout=%stderr -sOUTPUTFILE=%stdout d01202-001-pstops.ps >
> d01202-001-gs.out
> GPL Ghostscript 9.22 (2017-10-04)
> Copyright (C) 2017 Artifex Software, Inc.  All rights reserved.
> This software comes with NO WARRANTY: see the file PUBLIC for details.
> Error: /undefined in obj
> Operand stack:
>    2   0

The file attached to the report and labelled "Filter 3 Output" is the transcript of stdout from Ghostscript. Since that's not PostScript its not entirely surprising that Ghostscript throws an error trying to process it.


> This might be expected as perhaps the environment is different when being
> invoked in the cups filterchain (thus the no such file or directory error).

I'm going to assume that you actually mean "Filter 2 Output" because that's actually a PostScript file. Indeed when I run that through Ghostscript (or indeed any other PostScript interpreter) it does throw the described error. That's because the program isn't a valid PostScript porgram. All that it contains is the original PDF file with some PostScript wrapped around it.

If the PostScript program wrapped around it was sufficiently sophisticated it could process the following PDF (indeed that's how Ghostscript's ps2write and the PostScript output from Adobe Acrobat work, more or less). However it is not sufficiently sophisticated.

The output looks to me like it hasn't actually been processed at all, just treated as if it were already PostScript.

So no, this program isn't valid, the error is entirely correct.

 
> I also tried to find the correct revision for the DEBUG fix but wasn't
> successful.

Git bisect is your friend :-)

 I'd like to backport a patch for distro packages until the next
> ghostscript release. I'd appreciate if you have a git revision for me.

The next release will be in March, its probably easier at this poitn to wait for it than to try and put together a patch which may or may not be possible depending what else has changed in the meantime.

Its 'probably' this commit:

http://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=f0fe2481a2e9b0b632a1d4e804a5a1d27fe9c017
Comment 25 ylyco 2018-05-05 10:30:47 UTC
Hi all,

today my system Mageia6 installed the Ghostscript 9.23 update :
all is working fine now !

Thanks a lot.