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)
Wed, Dec 25, 12:05 PM
Unknown Object (File)
Tue, Dec 3, 12:35 AM
Unknown Object (File)
Fri, Nov 29, 5:40 PM
Unknown Object (File)
Fri, Nov 29, 8:18 AM
Unknown Object (File)
Nov 23 2024, 10:15 PM
Unknown Object (File)
Nov 23 2024, 8:54 AM
Unknown Object (File)
Nov 23 2024, 12:20 AM
Unknown Object (File)
Nov 21 2024, 12:44 PM
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.