[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1fcbb94c5f264c17af3394807438ad50@AcuMS.aculab.com>
Date: Mon, 12 Aug 2019 13:12:16 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Philipp Reisner' <philipp.reisner@...bit.com>,
Jens Axboe <axboe@...nel.dk>
CC: 'Christoph Böhmwalder'
<christoph.boehmwalder@...bit.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"stable@...r.kernel.org" <stable@...r.kernel.org>,
"Eric W . Biederman" <ebiederm@...ssion.com>
Subject: RE: [PATCH] drbd: do not ignore signals in threads
From: Philipp Reisner
> Sent: 12 August 2019 12:53
> Hi Jens,
>
> Please have a look.
>
> With fee109901f392 Eric W. Biederman changed drbd to use send_sig()
> instead of force_sig(). That was part of a series that did this change
> in multiple call sites tree wide. Which, by accident broke drbd, since
> the signals are _not_ allowed by default. That got released with v5.2.
>
> On July 29 Christoph Böhmwalder sent a patch that adds two
> allow_signal()s to fix drbd.
>
> Then David Laight points out that he has code that can not deal
> with the send_sig() instead of force_sig() because allowed signals
> can be sent from user-space as well.
> I assume that David is referring to out of tree code, so I fear it
> is up to him to fix that to work with upstream, or initiate a
> revert of Eric's change.
While our code is 'out of tree' (you really don't want it - and since
it still uses force_sig() is fine) I suspect that the 'drdb' code
(with Christoph's allow_signal() patch) now loops in kernel if a user
sends it a signal.
If the driver (eg drdb) is using (say) SIGINT to break a thread out of
(say) a blocking kernel_accept() call then it can detect the unexpected
signal (maybe double-checking with signal_pending()) but I don't think
it can clear down the pending signal so that kernel_accept() blocks
again.
> Jens, please consider sending Christoph's path to Linus for merge in
> this cycle, or let us know how you think we should proceed.
I'm not sure what the 'correct' solution is.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Powered by blists - more mailing lists