[cups.bugs] tcgetattr() causes lockup in USB backend on FreeBSD6-STABLE

Michael Sweet mike at easysw.com
Thu May 3 06:53:30 PDT 2007


Peter van Heusden wrote:
> I recently upgrade CUPS on my FreeBSD 6-STABLE server to version 1.2.10,
> and it took a while to get the USB backend working (I have a USB-connect
> HP LaserJet 1010). After some debugging, it turned out that the code in
> usb-unix.c that calls tcgetattr() on /dev/ulptN in print_device() was at
> fault - what happens is that tcgetattr() blocks, and the USB backend
> then hangs. I'm still waiting for a response from the FreeBSD developers
> on this behaviour, but in any event from my reading of the kernel it
> seems that ioctl() on a FreeBSD ulpt is a no-op anyway.

The use_bc stuff doesn't control whether ioctl() (via tcget/setattr)
is used to set "raw" mode, so a separate fix will be needed.

That said, this sounds like a serious FreeBSD bug - ioctl is needed
for POSIX conformance on all character devices.

-- 
______________________________________________________________________
Michael Sweet, Easy Software Products           mike at easysw dot com
Internet Printing and Document Software          http://www.easysw.com




More information about the cups mailing list