- User Since
- Oct 16 2018, 6:25 AM (123 w, 1 d)
Mon, Feb 22
Thu, Feb 18
I make a driver that compatable with Linux. From the application, it will not see it running on FreeBSD or Linux.
On linux, it will encounter same error without this signal sending. If I change error code, it will behave differently from linux.
I think others will also encounter similar issue , why not make a genric change that benifit all?
Sat, Feb 13
@hselasky , expecting to see your patch, and I stand by to do any test.
@kib, sorry just realize that nfslock_write is a function in FreeBSD 12.0.
I don't have exact backtrace for it, this is an issue I debugs days before. Here is what I did. I implemented /dev/hidraw.
When run same app on Linux system, it has below strace. While there is signal SIGPIPE after write error.
Then I checked the code, and got that tdsignal(td, SIGPIPE) will be called from dofilewrite.
Here is the piece info from the whole trace file.
Wed, Feb 10
@jhb, Here is one example:
- in function nfslock_write, it call nfslockdans, and it's possible that nfslockdans encounter EPIPE error.
- application's expectation is jut got write error with return error EPIPE, while freeBSD kernel send extra signal SIGPIPE, this will cause application killed by unexpected signal.
@jhb , could you review this?
@hselasky , the set chan prepare operation need wait configure message callback API finished.
I don't have good method to do that, while usually xfer starts after set alt interface.
It's ok to submit this to mainstream, this change may impact others and can be improved.