[prev in list] [next in list] [prev in thread] [next in thread] 

List:       dragonfly-bugs
Subject:    [DragonFlyBSD - Bug #3307] select() not working as expect when a pipe is closed
From:       bugtracker-admin () leaf ! dragonflybsd ! org
Date:       2021-12-28 22:20:29
Message-ID: redmine.journal-14230.20211228222028.9387 () leaf ! dragonflybsd ! org
[Download RAW message or body]

Issue #3307 has been updated by tuxillo.


It's MFC'ed now.

----------------------------------------
Bug #3307: select() not working as expect when a pipe is closed
http://bugs.dragonflybsd.org/issues/3307#change-14230

* Author: tmunro
* Status: Resolved
* Priority: High
* Target version: 6.0
* Start date: 2021-11-19
----------------------------------------
When a the write end of a pipe is in the writefds set of a call to select(), and the \
read end is closed, I think select() should report the descriptor as writable \
(because writing would produce EPIPE or SIGPIPE), but it does not.  We suspect this \
changed, and we noticed the change in the PostgreSQL build farm after upgrading an \
ancient Dragonfly build machine to the current release.  In our real usage, this \
causes Perl IPC::Run in our test harness to hang, but here's a minimal repro in C:

https://www.postgresql.org/message-id/flat/CA%2BhUKG%2BUZi3tp%3De0ffO1R7eZ%3Dx8azSJDNzO0E2zOy9PhuyOpAQ%40mail.gmail.com#f90edeec19759a8b62ce98ea5a11cb6e


(Please disregard the discussion of kqueue problems on ancient macOS, which turned \
out to be a separate problem, completely unrelated).



-- 
You have received this notification because you have either subscribed to it, or are \
involved in it. To change your notification preferences, please click here: \
http://bugs.dragonflybsd.org/my/account


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic