https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265736
Bug ID: 265736
Summary: [FUSEFS] fuse(4) reports error on F_SETFL,
O_RDWR|O_NONBLOCK but still sets the device in
non-blocking mode
Product: Base System
Version: 13.1-STABLE
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: kern
Assignee: [email protected]
Reporter: [email protected]
Created attachment 235799
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=235799&action=edit
bazil/fuse workaround
(Copied from https://github.com/golang/go/issues/54100#issuecomment-1200165500)
I ran the bazil/fuse/examples/hellofs example
(https://github.com/bazil/fuse/blob/master/examples/hellofs/hello.go), under
truss, getting the same result:
# truss -SdHf -o /tmp/truss ./hellofs -fuse.debug /tmp/tst1
2022/07/30 14:30:17 resource temporarily unavailable
3678 100150: 0.032046504 open("/dev/fuse",O_RDWR|O_CLOEXEC,00) = 3 (0x3)
3678 100150: 0.032667484 fstat(3,{ mode=crw-rw-rw-
,inode=102,size=0,blksize=4096 }) = 0 (0x0)
3678 100150: 0.032856138 kqueue() = 4 (0x4)
3678 100150: 0.033037163 fcntl(4,F_SETFD,FD_CLOEXEC) = 0 (0x0)
3678 100150: 0.033541314 compat11.kevent(4,{
3,EVFILT_READ,EV_ADD|EV_CLEAR,0,0,0x827253f68
3,EVFILT_WRITE,EV_ADD|EV_CLEAR,0,0,0x827253f68 },2,0x0,0,0x0) = 0 (0x0)
3678 100150: 0.033721862 fcntl(3,F_GETFL,) = 2 (0x2)
3678 100150: 0.033866169 fcntl(3,F_SETFL,O_RDWR|O_NONBLOCK) ERR#19 'Operation
not supported by device'
The fcntl(3,F_SETFL,O_RDWR|O_NONBLOCK) reports an error, but still sets the
underlying file status flag to non-blocking. This later causes a read to return
EAGAIN which breaks the program.
--
You are receiving this mail because:
You are the assignee for the bug.