Hi João, On Wed, 6 Jun 2018 18:23:08 +0200 João Eiras wrote: > Howdy. > > I've prepared a testcase for a bug or inconsistency with linux that is > affecting one of my projects. > > Basically I have a background process that keeps some state always > running with a pipe open for reading requests. > > Foreground processes that try to open that pipe for writting (to send > a request) then block/fail on the second and subsequent tries. > > The whole setup can be simplified with a small testcase that runs in a > single process. > > https://github.com/joaoe/cygwin-pipe-testcase > > I left a README that explains things in a bit more detail. > > To summarize here, consider the following order of events: > * open pipe for reading with NONBLOCK into FD1 -> OK > * poll() FD1 -> empty event list, OK > * read from FD1 -> zero length read, OK > > * open pipe for writting into FD2, write something -> OK > * poll() FD1 -> POLLIN and POLLPRI, POLLPRI is unexpected here, FAIL > * read from FD1 -> got stuff that was written > > * close FD2 > * poll() FD1 -> POLLIN and POLLPRI, wrong, should report POLLHUP, FAIL > * read from FD1 -> zero length read, OK > > * open pipe for writting into FD2 again -> got error ENXIO, FAIL > > So, known bug ? Do you confirm my observations ? > > Any pointers so I could perhaps look into the relevant code ? It seems > like Cygwin still keeps some dirty state somewhere that tells the pipe > is still open by a writer somewhere. > > Thank you !
Is this related to https://cygwin.com/ml/cygwin/2017-03/msg00188.html ? -- Takashi Yano <takashi.y...@nifty.ne.jp> -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple