CUPS smb job submission fails with "Backend returned status 1 (failed)"

  • 7018532
  • 26-Jan-2017
  • 26-Jan-2017

Environment


SUSE Linux Enterprise Server 11 Service Pack 3 (SLES 11 SP3)

Situation

CUPS print jobs fail to submit from a SLES 11 SP3 server to a Windows share.  No data is sent from SLES 11 SP3 to the Windows computer.  The /var/log/cups/error_log shows:

E [DATE] PID 21442 (/usr/lib64/cups/backend/smb) stopped with status 1!
D [DATE] [Job 1669] File 0 is complete.
I [DATE] [Job 1669] Backend returned status 1 (failed)
D [DATE] Discarding unused printer-state-changed event...
D [DATE] Discarding unused printer-stopped event...

Resolution

Copy/paste the following string of commands into a terminal session while logged in as root:

rm /usr/lib64/cups/backend/smb;ln -s /usr/bin/smbspool /usr/lib64/cups/backend/smb

Cause

Test results show that cups-1.4.4-3.3.1 and beyond does not have this problem.  cups-1.3.9-8.46.56.1, which is part of SLES 11 SP3 has the problem due to an erroneous symlink.

Incorrect symbolic link:
/usr/lib64/cups/backend/smb -> /usr/bin/get_printing_ticket

Correct symbolic link:
/usr/lib64/cups/backend/smb -> /usr/bin/smbspool

Additional Information

Steps to duplicate:
  1. Create a Windows share.
    • Example share name: MyShare
  2. Create a CUPS print to submit jobs to that share location.
    • You can use various tools (CUPS Web Interface, Printing, YaST -> Printer, lpadmin)
      • Syntax to create the smb share printer using lpadmin:
      • lpadmin -p [PrinterName] -v smb://[WindowsUser]:[WindowsPassword@[WindowsIP]/[WindowsIP]/[WindowsShare] -E
      • Example to create the smb share printer using lpadmin:
      • lpadmin -p myTestPrinter -v smb://joeUser:password123@159.181.212.101/159.181.212.101/MyShare -E
  3. Send a print job.
    • lp -d myTestPrinter /tmp/myTestPrintJob.txt
Depending on the version of CUPS, the print job will or will not show up in the Windows MyShare directory.