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...
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
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
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:
- Create a Windows share.
- Example share name: MyShare
- 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
- Send a print job.
- lp -d myTestPrinter /tmp/myTestPrintJob.txt