100% CPU when disk is full

Bug #66612 reported by Alex Mauer
2
Affects Status Importance Assigned to Milestone
CUPS
Invalid
Undecided
Unassigned
cupsys (Ubuntu)
Fix Released
Low
Unassigned

Bug Description

If the disk becomes full, cupsd uses as much CPU as it can, doesn't report an error, and the web service doesn't respond.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

How is your disk partitioned? Is /var in a separate partition? Is it the partition with /var which got full? CUPS should only write into /var/*/cups directories while it is running.

Perhaps CUPS is waiting for space and answering as soon as some space gets free. Can you try that?

As CUPS is logging everything into the files in /var/log/cups/, a full disk can probably block all kinds of operations.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :
Changed in cupsys:
importance: Undecided → Low
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Please answer the questions which Mike Sweet has posted in the upstream report.

Changed in cups:
status: Unconfirmed → Needs Info
Changed in cupsys:
status: Unconfirmed → Needs Info
Revision history for this message
Alex Mauer (hawke) wrote :

/var is not a separate partition, so I can't answer your questions more specifically. Your analysis sounds correct though. I am trying the upstream-suggested gdb, and will report back here and upstream.

Revision history for this message
Alex Mauer (hawke) wrote :

OK -- Here goes:

Freeing up space after cups starts using excessive CPU allows it to work properly (It receives a SIGPIPE though when run under gdb). Here's the backtrace at the point where it was using CPU:

backtrace:
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb7e994c3 in __write_nocancel () from /lib/tls/i686/cmov/libpthread.so.0
#2 0xb7eb117e in cupsFileGetChar () from /usr/lib/libcups.so.2
#3 0xb7eb1735 in cupsFileFlush () from /usr/lib/libcups.so.2
#4 0x0807e658 in ?? ()
#5 0x080eb5b0 in ?? ()
#6 0x0809634c in _IO_stdin_used ()
#7 0x080e0bc0 in ?? ()
#8 0x0809693a in _IO_stdin_used ()
#9 0x08099400 in Sleeping ()
#10 0x0808c832 in _IO_stdin_used ()
#11 0x080e3bba in ?? ()
#12 0x00000001 in ?? ()
#13 0x00000001 in ?? ()
#14 0x000000c8 in ?? ()
#15 0x00000000 in ?? ()

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Mike Sweet has posted again, can you please supply him with the needed info. Thanks.

Revision history for this message
Alex Mauer (hawke) wrote :

Where can I find or how can I create a copy of Ubuntu's cupsys package with debugging enabled?

Revision history for this message
Alex Mauer (hawke) wrote :

This seems to be fixed in Feisty. There it gives an error "413: Request Entity Too Large". I hope the fix can be backported to Dapper.

Revision history for this message
Martin Pitt (pitti) wrote :

Marking as fixed in Feisty, thank you for checking!

Changed in cupsys:
status: Needs Info → Fix Released
Changed in cups:
status: Needs Info → Rejected
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.