Canon CCP stopped printing recently

My Canon LBP3300 network printer has been working well for a couple of years and survived Fedora upgrades along the way. Some time in the last few days, it has stopped printing. I would like some help working out what went wrong and how to fix it.

I am now on Fedora 32 and all updates are applied.

I am not sure when this occurred because I don’t print that often, but print jobs get submitted OK and seem to work including the 2 popup notifications. I cannot do a test print either.

I have removed and re-installed / configured the canon drivers with no change.

Here is the setup:-
I am using Canon drivers as follows:

linux-capt-drv-v271-usen.tar.gz
Contains:

  • cndrvcups-common-3.21-x.x86_64.rpm
  • cndrvcups-capt-2.71-1.x86_64.rpm
[graham@gm-ws1 ~]$ sudo systemctl status ccpd
● ccpd.service
     Loaded: loaded (/etc/rc.d/init.d/ccpd; generated)
     Active: active (running) since Tue 2020-11-03 11:40:08 AEST; 9min ago
       Docs: man:systemd-sysv-generator(8)
    Process: 153074 ExecStart=/etc/rc.d/init.d/ccpd start (code=exited, status=0/SUCCESS)
      Tasks: 7 (limit: 38382)
     Memory: 4.9M
        CPU: 339ms
     CGroup: /system.slice/ccpd.service
             ├─153087 /usr/sbin/ccpd
             ├─153095 /usr/sbin/ccpd
             └─153096 captmonlbp3300 --data-write-fd=3 --data-read-fd=10 --cmd-write-fd=11 --cmd-read-fd=14 --output-fd=-1 --input-fd=-1 --printer-uri=net:192.168.20.252

Here are the CLI commands I use to set it up:

$ sudo lpadmin -p LBP3300 -m CNCUPSLBP3300CAPTK.ppd -v ccp://localhost:59687 -E

$ sudo ccpdadmin -p LBP3300 -o net:192.168.20.252

$ sudo cat /etc/cups/printers.conf

PrinterId 9
UUID urn:uuid:92400545-f4fe-371f-7ab8-e610dd8f821d
Info LBP3300
MakeModel Canon LBP3300 CAPT ver.1.5
DeviceURI ccp://localhost:59787
State Idle
StateTime 1604368792
ConfigTime 1604362242
Type 8393876
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer

So I set the cups log level to debug2 and this is what I get in journalctl:

Nov 03 14:17:26 gm-ws1 cupsd[148860]: [Client 310] cupsdReadClient: error=0, used=0, state=HTTP_STATE_WAITING, data_encoding=HTTP_ENCODING_LENGTH, data_remaining=0, request=(nil)(), file=-1
Nov 03 14:17:26 gm-ws1 cupsd[148860]: [Client 310] HTTP_STATE_WAITING Closing for error 32 (Broken pipe)
Nov 03 14:17:26 gm-ws1 cupsd[148860]: [Client 310] Closing connection.

I have looked at the RemoteUI on the printer and there are no failed print jobs in the log. It does however show 2 print jobs from windows computers.

So Win7 with canon CAPT drivers installed works just fine.

There is no restrictions on IP address that would stop the print jobs. A notebook running Fedora 32 runs win7 in a virtual machine. Win7 printed on that PC but not from Fedora.

I am not sure what to test now.

Any help appreciated.

I don’t know why you thought that removing, reinstalling and reconfiguring the driver would help; that’s the Windows way of doing things. If you thought that they were corrupted, simply reinstalling them would have been simpler. Have you tried the GUI interface into CUPS at http://127.0.0.1:631/?

I removed and reinstalled the driver thinking it might have been a permissions or an selinux issue as a result of some update. That’s all.

I also removed the printer from ccpd and cupsd and re-initialised them using port 59687 instead of 59787 (as this had been suggested a couple of years ago when I was first installing the printer driver).

I have been on the CUPS GUI and that is where I was initiating the test print.

This is resolved into an IPv6 address by default:

> getent hosts localhost
::1             localhost localhost.localdomain localhost6 localhost6.localdomain6

So make sure it is listening on an IPv6 socket, otherwise use an IPv4 address explicitly.
In addition, it might be worth trying to temporarily disable SELinux or test other CUPS back-ends.

This is quite odd.

Even though the 2 popup notifications say printing, then printing complete, the cups logs says things like

Nov 03 20:19:24 gm-ws1 cupsd[10114]: [Client 39] con->http=0x55649cdb0360
Nov 03 20:19:24 gm-ws1 cupsd[10114]: [Client 39] cupsdWriteClient error=0, used=0, state=HTTP_STATE_GET_SEND, data_encoding=HTTP_ENCODING_CHUNKED, data_remaining=0, response=(nil)(), pipe_pid=13883, file=17
cupsd[10114]: [Client 39] Waiting for CGI data.
cupsd[10114]: [Client 39] CGI data ready to be sent.
cupsd[10114]: [Client 40] HTTP_STATE_WAITING Closing for error 32 (Broken pipe)
cupsd[10114]: [Client 40] Closing connection.

And the printer does not record any failed jobs. It’s as if the ccpd consumes the job but does not actually forward it to the printer.

I just noticed in the logs:

cupsd[14513]: PID 14798 (/usr/lib/cups/filter/pstocapt2) did not catch or ignore signal 13.

I found elsewhere this could be due to ghostscript. So lloking at dnf history of ghostscript updates I found 2 in October.

On 2020-10-17:

Upgrade ghostscript-9.53.3-1.fc32.x86_64 @updates
Upgraded ghostscript-9.53.1-2.fc32.x86_64 @@System

On 2020-10-08:

Upgrade ghostscript-9.53.1-2.fc32.x86_64 @updates
Upgraded ghostscript-9.52-7.fc32.x86_64 @@System

Am I barking up the wrong tree here? Or should I try rolling back ghostscript to a previous version?

If it were a permissions issue, you would have gotten an error message reporting it. If it were a SELinux issue, you would have received an alert. Since you didn’t, neither of those was an issue.

OK; a couple of things to add.

After all the adjustments and removing / installing, the Fedora 32 PC takes nearly 5 minutes to shutdown.

In the logs I find a CCPD timeout failure:

Nov 04 07:19:54 gm-ws1 systemd[1]: polkit.service: Consumed 1.270s CPU time.
Nov 04 07:24:52 gm-ws1 systemd[1]: ccpd.service: Stopping timed out. Terminating.
Nov 04 07:24:52 gm-ws1 systemd[1]: ccpd.service: Control process exited, code=killed, status=15/TERM
Nov 04 07:24:52 gm-ws1 systemd[1]: ccpd.service: Failed with result 'timeout'.
Nov 04 07:24:52 gm-ws1 systemd[1]: Stopped ccpd.service.
Nov 04 07:24:52 gm-ws1 audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=ccpd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'

Add this to the possible ghostscript connection and the future of this printer is looking grim.

I also noticed that CUPS is saying that printer drivers are deprecated and will be removed in the next feature release. So I phoned Canon here in Aus, and they do not provide any support for linux. Nor do they have any IPP or Postscript laser printers. Not looking good.

I also noticed in the README file with the driver:

If you are using this driver in a 64-bit environment, and update a version 2.20 driver to version 2.30 or later, errors may occur when printing.
This problem can be solved by uninstalling (rpm -e [driver]) then re-installing (rpm -i [driver]) the new driver.

I did have an old version of the driver on the system some time ago, but cannot remember which version. Thus the remove and re-install the printer drivers.

I think I might spin up a Win7 VM and print from there until I choose a replacement printer. But that is another question all together.

Thanks to those who tried to help.

cupsd[14513]: PID 14798 (/usr/lib/cups/filter/pstocapt2) did not catch or ignore signal 13.

This is (probably) caused by pstocapt calling ghostscript, which fails due to lack of opvp support (an upstream change that’s since been reverted), see 1899885 – Canon printers with UFR II rely on opvp

(Unfortunately pstocapt doesn’t check the return code of the exec, or the exit code of ghostscript, so the failure isn’t logged).

I think you were right @chrb because a more recent update to ghostscript has fixed the printing problem.

The 5 minute timeout during shutdown continues, but I just run a script to stop the ccpd daemon before shutown or restart and the process has returned to normal, albeit with an extra step before shutting down.

I might be able to live with this, seeing as the printer itself has been flawless over many years. We’ll see if my patience lasts :grin:

Oh and this is Canon’s response about the 5 minute shutdown issue…

I understand that you are having issue with your LBP3300. Please be advised that we do not have an ETA for the updated driver and software compatible with Linux. Also, we are not capable of supporting Linux computer. I would suggest to contact Linux support regarding the issue that you encounter.

My advice to others is DO NOT buy a Canon printer for linux.

HP says the same thing but they provide hplip and an associated plugin to support their printers on linux. Just no direct support.

At least hplip is open source unlike canon’s capt drivers.