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

Michael Sweet mike at easysw.com
Fri May 4 06:09:22 PDT 2007


Peter van Heusden wrote:
> Sorry, a bit more investigation revealed that my earlier comments were
> wrong. Yes, the tcgetattr() call *does* "hang" - on my system it takes
> 10 seconds to return, before returning ENODEV (the only thing that ioctl
> on a ulpt returns on FreeBSD, according to my reading of the kernel).
> That, however, isn't the real problem - the real hang occurs when
> backendRunLoop() in runloop.c tries to read backchannel data from the
> ulpt - despite select() saying that there is data available, the read()
> blocks (I've even tried making the read buffer's size 1 byte, the
> problem persists). This causes the usb backend hang. So indeed, setting
> use_bc = 0 solves the problem. I'm not sure why select() / read()
> interact like this.

OK, I'm expanding the NetBSD back-channel boycott to include all of
the BSD derivatives.

-- 
______________________________________________________________________
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