On 2020/12/22 06:24, Martin Pieuchot wrote:
> CVSROOT:      /cvs
> Module name:  src
> Changes by:   m...@cvs.openbsd.org    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?


# egdb /usr/local/bin/urxvt /var/crash/urxvt/73013.core
GNU gdb (GDB) 7.12.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-openbsd6.8".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/local/bin/urxvt...Reading symbols from 
/usr/local/bin/.debug/urxvt.dbg...done.
done.
[New process 181831]
Core was generated by `urxvt'.
Program terminated with signal SIGABRT, Aborted.
#0  thrkill () at /tmp/-:3
3       /tmp/-: No such file or directory.
(gdb) bt
#0  thrkill () at /tmp/-:3
#1  0x000004ef77e0984e in _libc_abort ()
    at /usr/src/lib/libc/stdlib/abort.c:51
#2  0x000004ed5f2e4971 in ev_syserr (msg=<optimized out>)
    at ./../libev/ev.c:1703
#3  0x000004ed5f2e4eae in select_poll (timeout=<optimized out>)
    at ./../libev/ev_select.c:213
#4  0x000004ed5f2e23b3 in ev_run (flags=<optimized out>)
    at ./../libev/ev.c:3654
#5  0x000004ed5f2ae5be in main (argc=1, argv=<optimized out>) at rxvt.C:38


Reply via email to