Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Aug 2018 16:11:38 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 230856] tail -f fails unexpectedly with EINTR if truss is run against it.
Message-ID:  <bug-230856-227-bYtF2cWPbo@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-230856-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-230856-227@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D230856

--- Comment #3 from John Baldwin <jhb@FreeBSD.org> ---
This is a known longstanding issue with ptrace() and not trivially fixable.=
=20
(It's also documented in truss's manpage I think, or perhaps only in gcore's
manpage.)  I have been trying to work on a possible solution for several
months, but it won't be ready any time soon.  (In particular, the issue is =
that
ptrace() doesn't pass the signal to the debugger which then discards it unt=
il
after it has awakened the sleeping thread and forced it out to the user/ker=
nel
boundary.  The fix I'm working on aims to keep the thread asleep while lett=
ing
the debugger intercept the signal and only interrupting the thread if the
debugger passes the signal.  The current WIP can be found here, but it's not
really tested at all yet and I think it still panics when trying to use
ptrace():
https://github.com/freebsd/freebsd/compare/master...bsdjhb:spurious_EINTR )

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-230856-227-bYtF2cWPbo>