使用しているCUPSは次の通りである。
名前 : cups
アーキテクチャ : x86_64
エポック : 1
バージョン : 1.4.2
リリース : 67.el6
CentOS 6 のgnomeデスクトップ環境において、
ネットワーク経由で接続していたCanon製のレーザープリンタ(純正ドライバを使用)について用紙切れのエラーが発生した。
しかし、プリンタには適切な用紙が補充されている。
プリンタに用紙が補充されていることを確認後も、
CUPSが感知しているらしい「用紙切れエラー」は解消されず、プリントアウトできない状体が継続した。
システム全体の再起動も行ったが、同エラーは解消されなかった。
■バグであることが判明し、手動でエラー回避を行った。
これはバグらしい。printers.confを修正する必要があった。
service cups stop でサービスを止めた後、修正した。
以下のように、エラーに関する箇所「Reason」で始まる行を削除した。
そして、service cups start でサービスを開始した。
これにより、通常通りプリンタが使用できるようになった。
○該当個所の削除を行った。
まず、CUPSを停止した。
(あるいは、先に下記につづく編集手順を行った後に、service cups restart でも良い。)
# service cups stop
複数プリンタが導入されているときは、該当するプリンタを間違えないこと。
下記のように「Reason」から始まる行を削除した。
# service cups stop
複数プリンタが導入されているときは、該当するプリンタを間違えないこと。
下記のように「Reason」から始まる行を削除した。
(下記にはないが、Reason toner-low-report というエラーを検知することもある。)
# vi /etc/cups/printers.conf
そして、CUPSを始動した。
# service cups start
以上で、プリンタが再び使用できるようになった。
○その後、再び内容を確認した。
# less /etc/cups/printers.conf
これはプリンタのトナー量が低下していることにリンクしていると思われる。
■考察
おそらく、先ず実際にプリンタで紙切れを起こし、CUPSシステムが検知しただろう。
しかし用紙が充填されても、システムはバグのためにエラーの状態から自動で離脱できなかったのではないかと思う。
そのため、手動で「Reason」で始まる行を削除することによって、エラーから復帰させる必要があったと考えられる。
本来は、これはシステムによって為される一連の作業なのだと思う。
CentOS7以降であれば、このようなバグは解消されているだろうか?
<参考>
・Permanent "Printer-out-of-paper" message.
< https://bugs.launchpad.net/ubuntu/+source/cups/+bug/559331 > 2019年6月20日
# vi /etc/cups/printers.conf
<Printer LBP8710e-LIPSLX>
Info LBP8710e-LIPSLX
MakeModel Canon LBP8720/8710 LIPSLX ver.2.9
DeviceURI lpd://printer.example.com
State Stopped
StateMessage /usr/lib/cups/backend/lpd failed
StateTime 1560727782
Reason media-low-report ←削除
Reason media-empty-warning ←削除
Reason paused ←削除
Type 8402132
Filter application/vnd.cups-raw 0 -
Filter application/vnd.cups-postscript 0 pstoufr2cpca
Filter application/vnd.cups-command 0 commandtops
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
Attribute marker-colors \#000000
Attribute marker-levels 18
Attribute marker-names Canon Cartridge 533/533 H
Attribute marker-types toner
Attribute marker-change-time 1560727752
</Printer>
そして、CUPSを始動した。
# service cups start
以上で、プリンタが再び使用できるようになった。
○その後、再び内容を確認した。
# less /etc/cups/printers.conf
<Printer LBP8710e-LIPSLX>Reasonから始まる行がまだあるが、
Info LBP8710e-LIPSLX
MakeModel Canon LBP8720/8710 LIPSLX ver.2.9
DeviceURI lpd://printer.example.com
State Idle
StateTime 1560958599
Reason toner-low-report
Type 8402132
Filter application/vnd.cups-raw 0 -
Filter application/vnd.cups-postscript 0 pstoufr2cpca
Filter application/vnd.cups-command 0 commandtops
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
Attribute marker-colors \#000000
Attribute marker-levels 13
Attribute marker-names Canon Cartridge 533/533 H
Attribute marker-types toner
Attribute marker-change-time 1560958599
</Printer>
これはプリンタのトナー量が低下していることにリンクしていると思われる。
■考察
おそらく、先ず実際にプリンタで紙切れを起こし、CUPSシステムが検知しただろう。
しかし用紙が充填されても、システムはバグのためにエラーの状態から自動で離脱できなかったのではないかと思う。
そのため、手動で「Reason」で始まる行を削除することによって、エラーから復帰させる必要があったと考えられる。
本来は、これはシステムによって為される一連の作業なのだと思う。
CentOS7以降であれば、このようなバグは解消されているだろうか?
<参考>
・Permanent "Printer-out-of-paper" message.
< https://bugs.launchpad.net/ubuntu/+source/cups/+bug/559331 > 2019年6月20日