Page MenuHomeFreeBSD

Fix handling of PIPE_EOF in the direct write path.
ClosedPublic

Authored by markj on Nov 6 2019, 5:11 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mar 16 2024, 4:01 AM
Unknown Object (File)
Dec 28 2023, 2:02 PM
Unknown Object (File)
Dec 22 2023, 9:14 PM
Unknown Object (File)
Nov 5 2023, 5:36 PM
Unknown Object (File)
Oct 21 2023, 10:16 PM
Unknown Object (File)
Aug 28 2023, 2:40 AM
Unknown Object (File)
Aug 28 2023, 2:37 AM
Unknown Object (File)
Aug 28 2023, 2:36 AM
Subscribers

Details

Summary

Suppose a writing thread has pinned its pages and gone to sleep with
pipe_map.cnt > 0. Suppose that the thread is woken up by a signal (so
error != 0) and the other end of the pipe has simultaneously been
closed. In this case, to satisfy the assertion about pipe_map.cnt in
pipe_destroy_write_buffer(), we must mark the buffer as empty.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision is now accepted and ready to land.Nov 6 2019, 8:01 PM

Peter, could you please test this patch?

Peter, could you please test this patch?

Sure.

I completed a full stress2 test with D22261.64008.diff.
The only problem I saw was this (unrelated) panic: https://people.freebsd.org/~pho/stress/log/mark107.txt

In D22261#487620, @pho wrote:

I completed a full stress2 test with D22261.64008.diff.
The only problem I saw was this (unrelated) panic: https://people.freebsd.org/~pho/stress/log/mark107.txt

Could you make the vmcore+kernel for this one available?

This revision was automatically updated to reflect the committed changes.