Bug 253422

Summary: unnecessary "signal SIGPIPE" sending in dofilewrite.
Product: Base System Reporter: Horse Ma <shichun_ma>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: New ---    
Severity: Affects Many People CC: shichun_ma
Priority: ---    
Version: Unspecified   
Hardware: Any   
OS: Any   
URL: https://reviews.freebsd.org/D28562
Attachments:
Description Flags
diff for this bug. none

Description Horse Ma 2021-02-10 23:33:50 UTC
Created attachment 222347 [details]
diff for this bug.

current code in dofilewrite will send SIGPIPE once there is error of EPIPE, While SIGPIPE is just needed on socket and pipe operation. this is defined in POSIX standard, also with change it can be compatible with more Linux application.
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.
  

https://reviews.freebsd.org/D28562