[cups.bugs] [HIGH] STR #3318: NEW PATCH: USB process hangs, making further printing impossible

Till Kamppeter till.kamppeter at gmail.com
Wed Sep 2 07:55:07 PDT 2009


DO NOT REPLY TO THIS MESSAGE.  INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.

[STR New]

The original bug report

http://www.cups.org/str.php?L3315

got closed as fixed, but the changes in the attached patch did not
actually fix the problem. The infinite loop was not caused by the side
channel being read after the filter having gotten closed, but it was cause
by the polls on the data channel getting answered with POLLHUP both at
arbitrary times during data transfer and also after the end of the data
transfer. Data was tried to be read only when a poll was answered with
POLLIN and this answer does not appear any more when all data is
transfered. Then the answer is always POLLHUP which causes the infinite
loop. Now we try to read data also on POLLHUP answers and so we can
determine the end of the stream.

New patch is attached.

Link: http://www.cups.org/str.php?L3318
Version: 1.4-current
-------------- next part --------------
A non-text attachment was scrubbed...
Name: usb-backend-infinite-loop-on-end-of-job.dpatch
Type: application/octet-stream
Size: 1201 bytes
Desc: not available
URL: <http://lists.cups.org/pipermail/cups-devel/attachments/20090902/7afd2599/attachment.obj>


More information about the cups-devel mailing list