On Wed, Dec 23, 2020 at 01:46:51PM +0000, Stuart Henderson wrote: > On 2020/12/22 06:24, Martin Pieuchot wrote: > > CVSROOT: /cvs > > Module name: src > > Changes by: [email protected] 2020/12/22 06:24:45 > > > > Modified files: > > sys/kern : sys_generic.c > > > > Log message: > > Implement select(2) and pselect(2) on top of kqueue. > > > > The given set of fds are converted to equivalent kevents using EV_SET(2) > > and passed to the scanning internals of kevent(2): kqueue_scan(). > > > > ktrace(1) will now output the converted kevents on top of the usuals set > > bits to be able to find possible error in the convertion. > > > > This switch implies that select(2) and pselect(2) will now query the > > underlying kqfilters instead of the *_poll() routines. > > > > Based on similar work done on DragonFlyBSD with inputs from from visa@, > > millert@, anton@, cheloha@, thanks! > > > > ok visa@ > > > > rxvt-unicode is crashing frequently; > > (libev) select: Resource temporarily unavailable > Abort trap (core dumped) > > libev's select backend doesn't handle EAGAIN here, only > EBADF/ENOMEM/EINTR. > > I am triggering it fairly easily, what can I get that would help > debugging? Should I hack the kernel to permit ktrace on setgid > proc's?
Please test again with the recent kern_event.c commits (r1.154 in particular). I think select(2) should not return EAGAIN.
