Messages in this thread | | | From | Andy Lutomirski <> | Date | Fri, 30 Apr 2021 16:22:48 -0700 | Subject | Re: [PATCH v2 2/5] seccomp: Add wait_killable semantic to seccomp user notifier |
| |
On Fri, Apr 30, 2021 at 1:49 PM Sargun Dhillon <sargun@sargun.me> wrote: > > The user notifier feature allows for filtering of seccomp notifications in > userspace. While the user notifier is handling the syscall, the notifying > process can be preempted, thus ending the notification. This has become a > growing problem, as Golang has adopted signal based async preemption[1]. In > this, it will preempt every 10ms, thus leaving the supervisor less than > 10ms to respond to a given notification. If the syscall require I/O (mount, > connect) on behalf of the process, it can easily take 10ms. > > This allows the supervisor to set a flag that moves the process into a > state where it is only killable by terminating signals as opposed to all > signals. The process can still be terminated before the supervisor receives > the notification.
This is still racy, right? If a signal arrives after the syscall enters the seccomp code but before the supervisor gets around to issuing the new ioctl, the syscall will erroneously return -EINTR, right?
Can we please just fully fix this instead of piling a racy partial fix on top of an incorrect design?
--Andy
| |