Another attempt, now with an empty (all-commented out) xorg.conf gave
a system that was fairly responsive for a number of minutes while I
did a bit of mail archiving in Thunderbird, the froze while loading a message
into the viewer in Thunderbird.

ssh in gave this session before it became repetitive:

[Thu May 20 14:20:47] peter@zelda:~$ ps waux | grep X
root      8723  0.0  0.0   792  2000 ??  I       2:12PM    0:00.01 
/usr/X11R6/bin/xenodm
root     57001  0.3  0.9 81976 133108 ??  S       2:12PM    0:33.17 
/usr/X11R6/bin/X :0 vt05 -keepPriv -auth 
/etc/X11/xenodm/authdir/authfiles/A:0-hGAyCc (Xorg)
peter    31115  0.0  0.0  1012   952 ??  Ip      2:12PM    0:00.01 /bin/sh 
/etc/X11/xenodm/Xsession
peter    63177  0.0  0.0   636  1580 p1  S+p     2:20PM    0:00.01 grep X
[Thu May 20 14:20:50] peter@zelda:~$ doas gdb /usr/X11R6/bin/Xorg 57001
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-unknown-openbsd6.9"...
Attaching to program: /usr/X11R6/bin/Xorg, process 57001
Reading symbols from /usr/lib/libpthread.so.26.1...done.
Loaded symbols for /usr/lib/libpthread.so.26.1
Loaded symbols for /usr/X11R6/bin/Xorg
Symbols already loaded for /usr/lib/libpthread.so.26.1
Reading symbols from /usr/X11R6/lib/libpciaccess.so.2.0...done.
Loaded symbols for /usr/X11R6/lib/libpciaccess.so.2.0
Reading symbols from /usr/X11R6/lib/libdrm.so.7.9...done.
Loaded symbols for /usr/X11R6/lib/libdrm.so.7.9
Reading symbols from /usr/X11R6/lib/libpixman-1.so.38.4...done.
Loaded symbols for /usr/X11R6/lib/libpixman-1.so.38.4
Reading symbols from /usr/X11R6/lib/libXfont2.so.2.0...done.
Loaded symbols for /usr/X11R6/lib/libXfont2.so.2.0
Reading symbols from /usr/X11R6/lib/libfontenc.so.4.0...done.
Loaded symbols for /usr/X11R6/lib/libfontenc.so.4.0
Reading symbols from /usr/X11R6/lib/libfreetype.so.30.0...done.
Loaded symbols for /usr/X11R6/lib/libfreetype.so.30.0
Reading symbols from /usr/lib/libz.so.5.0...done.
Loaded symbols for /usr/lib/libz.so.5.0
Reading symbols from /usr/X11R6/lib/libXau.so.10.0...done.
Loaded symbols for /usr/X11R6/lib/libXau.so.10.0
Reading symbols from /usr/X11R6/lib/libxshmfence.so.0.0...done.
Loaded symbols for /usr/X11R6/lib/libxshmfence.so.0.0
Reading symbols from /usr/X11R6/lib/libXdmcp.so.11.0...done.
Loaded symbols for /usr/X11R6/lib/libXdmcp.so.11.0
Reading symbols from /usr/lib/libkvm.so.17.0...done.
Loaded symbols for /usr/lib/libkvm.so.17.0
Reading symbols from /usr/lib/libm.so.10.1...done.
Loaded symbols for /usr/lib/libm.so.10.1
Reading symbols from /usr/lib/libc.so.96.0...done.
Loaded symbols for /usr/lib/libc.so.96.0
Reading symbols from /usr/libexec/ld.so...Error while reading shared library 
symbols:
Dwarf Error: wrong version in compilation unit header (is 4, should be 2) [in 
module /usr/libexec/ld.so]
Reading symbols from /usr/X11R6/lib/modules/extensions/libglx.so...done.
Loaded symbols for /usr/X11R6/lib/modules/extensions/libglx.so
Reading symbols from /usr/X11R6/lib/libGL.so.17.1...done.
Loaded symbols for /usr/X11R6/lib/libGL.so.17.1
Reading symbols from /usr/lib/libexpat.so.13.0...done.
Loaded symbols for /usr/lib/libexpat.so.13.0
Reading symbols from /usr/X11R6/lib/libXdamage.so.4.0...done.
Loaded symbols for /usr/X11R6/lib/libXdamage.so.4.0
Reading symbols from /usr/X11R6/lib/libXfixes.so.6.0...done.
Loaded symbols for /usr/X11R6/lib/libXfixes.so.6.0
Reading symbols from /usr/X11R6/lib/libX11-xcb.so.2.0...done.
Loaded symbols for /usr/X11R6/lib/libX11-xcb.so.2.0
Reading symbols from /usr/X11R6/lib/libxcb-glx.so.1.1...done.
Loaded symbols for /usr/X11R6/lib/libxcb-glx.so.1.1
Reading symbols from /usr/X11R6/lib/libxcb-dri2.so.1.1...done.
Loaded symbols for /usr/X11R6/lib/libxcb-dri2.so.1.1
Reading symbols from /usr/X11R6/lib/libXxf86vm.so.6.0...done.
Loaded symbols for /usr/X11R6/lib/libXxf86vm.so.6.0
Reading symbols from /usr/X11R6/lib/libXext.so.13.0...done.
Loaded symbols for /usr/X11R6/lib/libXext.so.13.0
Reading symbols from /usr/X11R6/lib/libX11.so.17.1...done.
Loaded symbols for /usr/X11R6/lib/libX11.so.17.1
Reading symbols from /usr/X11R6/lib/libxcb.so.4.1...done.
Loaded symbols for /usr/X11R6/lib/libxcb.so.4.1
Reading symbols from /usr/X11R6/lib/libxcb-dri3.so.0.1...done.
Loaded symbols for /usr/X11R6/lib/libxcb-dri3.so.0.1
Reading symbols from /usr/X11R6/lib/libxcb-xfixes.so.1.2...done.
Loaded symbols for /usr/X11R6/lib/libxcb-xfixes.so.1.2
Reading symbols from /usr/X11R6/lib/libxcb-present.so.0.1...done.
Loaded symbols for /usr/X11R6/lib/libxcb-present.so.0.1
Reading symbols from /usr/X11R6/lib/libxcb-sync.so.1.2...done.
Loaded symbols for /usr/X11R6/lib/libxcb-sync.so.1.2
Reading symbols from /usr/X11R6/lib/libglapi.so.0.3...done.
Loaded symbols for /usr/X11R6/lib/libglapi.so.0.3
Reading symbols from /usr/X11R6/lib/modules/drivers/ati_drv.so...done.
Loaded symbols for /usr/X11R6/lib/modules/drivers/ati_drv.so
Reading symbols from /usr/X11R6/lib/modules/drivers/amdgpu_drv.so...done.
Loaded symbols for /usr/X11R6/lib/modules/drivers/amdgpu_drv.so
Reading symbols from /usr/X11R6/lib/libdrm_amdgpu.so.1.10...done.
Loaded symbols for /usr/X11R6/lib/libdrm_amdgpu.so.1.10
Reading symbols from /usr/X11R6/lib/libgbm.so.0.4...done.
Loaded symbols for /usr/X11R6/lib/libgbm.so.0.4
Reading symbols from /usr/X11R6/lib/modules/libfb.so...done.
Loaded symbols for /usr/X11R6/lib/modules/libfb.so
Reading symbols from /usr/X11R6/lib/modules/dri/radeonsi_dri.so...done.
Loaded symbols for /usr/X11R6/lib/modules/dri/radeonsi_dri.so
Reading symbols from /usr/lib/libelf.so.3.0...done.
Loaded symbols for /usr/lib/libelf.so.3.0
Reading symbols from /usr/lib/libLLVM.so.5.0...done.
Loaded symbols for /usr/lib/libLLVM.so.5.0
Reading symbols from /usr/X11R6/lib/libdrm_radeon.so.4.0...done.
Loaded symbols for /usr/X11R6/lib/libdrm_radeon.so.4.0
Reading symbols from /usr/lib/libc++.so.8.0...done.
Loaded symbols for /usr/lib/libc++.so.8.0
Reading symbols from /usr/lib/libc++abi.so.5.0...done.
Loaded symbols for /usr/lib/libc++abi.so.5.0
Reading symbols from /usr/X11R6/lib/modules/libglamoregl.so...done.
Loaded symbols for /usr/X11R6/lib/modules/libglamoregl.so
Reading symbols from /usr/X11R6/lib/libepoxy.so.4.0...done.
Loaded symbols for /usr/X11R6/lib/libepoxy.so.4.0
Reading symbols from /usr/X11R6/lib/libEGL.so.1.1...done.
Loaded symbols for /usr/X11R6/lib/libEGL.so.1.1
Reading symbols from /usr/X11R6/lib/modules/input/kbd_drv.so...done.
Loaded symbols for /usr/X11R6/lib/modules/input/kbd_drv.so
Reading symbols from /usr/X11R6/lib/modules/input/ws_drv.so...done.
Loaded symbols for /usr/X11R6/lib/modules/input/ws_drv.so
[Switching to thread 405627]
futex () at /tmp/-:3
3       /tmp/-: No such file or directory.
        in /tmp/-
(gdb) bt
#0  futex () at /tmp/-:3
#1  0x0000074b5747a557 in __driDriverGetExtensions_radeonsi () from 
/usr/X11R6/lib/modules/dri/radeonsi_dri.so
#2  0x0000074b57902dd0 in amdgpu_winsys_create () from 
/usr/X11R6/lib/modules/dri/radeonsi_dri.so
#3  0x0000074b570ad4c2 in __driDriverGetExtensions_radeonsi () from 
/usr/X11R6/lib/modules/dri/radeonsi_dri.so
#4  0x0000074b0229b34a in amdgpu_glamor_flush () from 
/usr/X11R6/lib/modules/drivers/amdgpu_drv.so
#5  0x0000074870cffda3 in _CallCallbacks () from /usr/X11R6/bin/Xorg
#6  0x0000074870e981f4 in FlushClient () from /usr/X11R6/bin/Xorg
#7  0x0000074870e9883f in WriteToClient () from /usr/X11R6/bin/Xorg
#8  0x0000074870d05e94 in WriteEventsToClient () from /usr/X11R6/bin/Xorg
#9  0x0000074870dfa556 in DamageExtNotify () from /usr/X11R6/bin/Xorg
#10 0x0000074870e04639 in DamageReportDamage () from /usr/X11R6/bin/Xorg
#11 0x0000074870e05d8f in damageCopyArea () from /usr/X11R6/bin/Xorg
#12 0x0000074870cf5fef in ProcCopyArea () from /usr/X11R6/bin/Xorg
#13 0x0000074870cf356d in Dispatch () from /usr/X11R6/bin/Xorg
#14 0x0000074870cfe5ec in dix_main () from /usr/X11R6/bin/Xorg
#15 0x0000074870ce5180 in _start () from /usr/X11R6/bin/Xorg
#16 0x0000000000000000 in ?? ()
Current language:  auto; currently asm
(gdb) list
3       in /tmp/-
(gdb) list
3       in /tmp/-
(gdb) continue
Continuing.

Program received signal SIGSTOP, Stopped (signal).
[Switching to thread 422852]
ioctl () at /tmp/-:3
3       /tmp/-: No such file or directory.
        in /tmp/-
(gdb) continue
Continuing.

Program received signal SIGSTOP, Stopped (signal).
[Switching to thread 608925]
futex () at /tmp/-:3
3       /tmp/-: No such file or directory.
        in /tmp/-
(gdb) continue
Continuing.

Program received signal SIGSTOP, Stopped (signal).
[Switching to thread 405627]
<signal handler called>
(gdb) continue
Continuing.

Program received signal SIGSTOP, Stopped (signal).
[Switching to thread 260001]
futex () at /tmp/-:3
3       in /tmp/-
(gdb) continue
Continuing.

Program received signal SIGSTOP, Stopped (signal).
[Switching to thread 486215]
futex () at /tmp/-:3
3       in /tmp/-
(gdb) continue
Continuing.

Program received signal SIGSTOP, Stopped (signal).
[Switching to thread 608925]
_rthread_cond_timedwait (cond=0x74a78bcb8c0, mutexp=0x74a78be1690, abs=0x0) at 
/usr/src/lib/libc/thread/rthread_cond.c:121
121             pthread_mutex_lock(mutexp);
Current language:  auto; currently minimal
(gdb) continue
Continuing.

Program received signal SIGSTOP, Stopped (signal).
[Switching to thread 260001]
_rthread_cond_timedwait (cond=0x74a78bcb8c0, mutexp=0x74a78be1690, abs=0x0) at 
/usr/src/lib/libc/thread/rthread_cond.c:121
121             pthread_mutex_lock(mutexp);
(gdb) continue
Continuing.

Program received signal SIGSTOP, Stopped (signal).
[Switching to thread 608925]
futex () at /tmp/-:3
3       /tmp/-: No such file or directory.
        in /tmp/-
Current language:  auto; currently asm
(gdb) continue
Continuing.

Program received signal SIGSTOP, Stopped (signal).
[Switching to thread 534147]
futex () at /tmp/-:3
3       in /tmp/-
(gdb) continue
Continuing.

Program received signal SIGSTOP, Stopped (signal).
[Switching to thread 491297]
futex () at /tmp/-:3
3       in /tmp/-
(gdb) continue
Continuing.

Program received signal SIGSTOP, Stopped (signal).
[Switching to thread 486215]
_rthread_cond_timedwait (cond=0x74a78bcebb0, mutexp=0x74a78be1d08, abs=0x0) at 
/usr/src/lib/libc/thread/rthread_cond.c:121
121             pthread_mutex_lock(mutexp);
Current language:  auto; currently minimal
(gdb) list
116             if (error == ETIMEDOUT)
117                     rv = ETIMEDOUT;
118             else if (error == EINTR)
119                     canceled = 1;
120     
121             pthread_mutex_lock(mutexp);
122     
123             /* restore the mutex's count */
124             if (mutex->type == PTHREAD_MUTEX_RECURSIVE)
125                     mutex->count = mutex_count;
(gdb) list
126     
127             LEAVE_CANCEL_POINT_INNER(tib, canceled);
128     
129             return rv;
130     }
131     
132     int
133     pthread_cond_timedwait(pthread_cond_t *condp, pthread_mutex_t *mutexp,
134         const struct timespec *abs)
135     {
(gdb) list
136             pthread_cond_t cond;
137             int error;
138     
139             if (*condp == NULL) {
140                     if ((error = pthread_cond_init(condp, NULL)))
141                             return (error);
142             }
143     
144             cond = *condp;
145             if (abs == NULL || abs->tv_sec < 0 || abs->tv_nsec < 0 ||
(gdb) list
146                 abs->tv_nsec >= 1000000000)
147                     return (EINVAL);
148     
149             return (_rthread_cond_timedwait(cond, mutexp, abs));
150     }
151     
152     int
153     pthread_cond_wait(pthread_cond_t *condp, pthread_mutex_t *mutexp)
154     {
155             pthread_cond_t cond;
(gdb) list
156             int error;
157     
158             if (*condp == NULL) {
159                     if ((error = pthread_cond_init(condp, NULL)))
160                             return (error);
161             }
162     
163             cond = *condp;
164             return (_rthread_cond_timedwait(cond, mutexp, NULL));
165     }
(gdb) list
166     
167     int
168     pthread_cond_signal(pthread_cond_t *condp)
169     {
170             pthread_cond_t cond;
171             int count;
172     
173             if (*condp == NULL)
174                     return (0);
175     
(gdb) list
176             cond = *condp;
177     
178             atomic_inc_int(&cond->seq);
179             count = _wake(&cond->seq, 1);
180     
181             _rthread_debug(5, "%p: cond_signal %p, %d awaken\n", 
pthread_self(),
182                 (void *)cond, count);
183     
184             return (0);
185     }
(gdb) list
186     
187     int
188     pthread_cond_broadcast(pthread_cond_t *condp)
189     {
190             pthread_cond_t cond;
191             int count;
192     
193             if (*condp == NULL)
194                     return (0);
195     
(gdb) list
196             cond = *condp;
197     
198             atomic_inc_int(&cond->seq);
199     #if notyet
200             count = _requeue(&cond->seq, 1, INT_MAX, &cond->mutex->lock);
201     #else
202             count = _wake(&cond->seq, INT_MAX);
203     #endif
204     
205             _rthread_debug(5, "%p: cond_broadcast %p, %d awaken\n", 
pthread_self(),
(gdb) list
206                 (void *)cond, count);
207     
208             return (0);
209     }
(gdb) list
Line number 210 out of range; /usr/src/lib/libc/thread/rthread_cond.c has 209 
lines.
(gdb) continue
Continuing.

Program received signal SIGSTOP, Stopped (signal).
[Switching to thread 491297]
_rthread_cond_timedwait (cond=0x74a78bcb8c0, mutexp=0x74a78be1690, abs=0x0) at 
/usr/src/lib/libc/thread/rthread_cond.c:121
121             pthread_mutex_lock(mutexp);
(gdb) list
116             if (error == ETIMEDOUT)
117                     rv = ETIMEDOUT;
118             else if (error == EINTR)
119                     canceled = 1;
120     
121             pthread_mutex_lock(mutexp);
122     
123             /* restore the mutex's count */
124             if (mutex->type == PTHREAD_MUTEX_RECURSIVE)
125                     mutex->count = mutex_count;
(gdb) list
126     
127             LEAVE_CANCEL_POINT_INNER(tib, canceled);
128     
129             return rv;
130     }
131     
132     int
133     pthread_cond_timedwait(pthread_cond_t *condp, pthread_mutex_t *mutexp,
134         const struct timespec *abs)
135     {
(gdb) list
136             pthread_cond_t cond;
137             int error;
138     
139             if (*condp == NULL) {
140                     if ((error = pthread_cond_init(condp, NULL)))
141                             return (error);
142             }
143     
144             cond = *condp;
145             if (abs == NULL || abs->tv_sec < 0 || abs->tv_nsec < 0 ||
(gdb) list
146                 abs->tv_nsec >= 1000000000)
147                     return (EINVAL);
148     
149             return (_rthread_cond_timedwait(cond, mutexp, abs));
150     }
151     
152     int
153     pthread_cond_wait(pthread_cond_t *condp, pthread_mutex_t *mutexp)
154     {
155             pthread_cond_t cond;
(gdb) list
156             int error;
157     
158             if (*condp == NULL) {
159                     if ((error = pthread_cond_init(condp, NULL)))
160                             return (error);
161             }
162     
163             cond = *condp;
164             return (_rthread_cond_timedwait(cond, mutexp, NULL));
165     }
(gdb) list
166     
167     int
168     pthread_cond_signal(pthread_cond_t *condp)
169     {
170             pthread_cond_t cond;
171             int count;
172     
173             if (*condp == NULL)
174                     return (0);
175     
(gdb) list
176             cond = *condp;
177     
178             atomic_inc_int(&cond->seq);
179             count = _wake(&cond->seq, 1);
180     
181             _rthread_debug(5, "%p: cond_signal %p, %d awaken\n", 
pthread_self(),
182                 (void *)cond, count);
183     
184             return (0);
185     }
(gdb) list
186     
187     int
188     pthread_cond_broadcast(pthread_cond_t *condp)
189     {
190             pthread_cond_t cond;
191             int count;
192     
193             if (*condp == NULL)
194                     return (0);
195     
(gdb) list
196             cond = *condp;
197     
198             atomic_inc_int(&cond->seq);
199     #if notyet
200             count = _requeue(&cond->seq, 1, INT_MAX, &cond->mutex->lock);
201     #else
202             count = _wake(&cond->seq, INT_MAX);
203     #endif
204     
205             _rthread_debug(5, "%p: cond_broadcast %p, %d awaken\n", 
pthread_self(),
(gdb) list
206                 (void *)cond, count);
207     
208             return (0);
209     }
(gdb) list
Line number 210 out of range; /usr/src/lib/libc/thread/rthread_cond.c has 209 
lines.
(gdb) continue
Continuing.

Program received signal SIGSTOP, Stopped (signal).
[Switching to thread 269704]
futex () at /tmp/-:3
3       /tmp/-: No such file or directory.
        in /tmp/-
Current language:  auto; currently asm


-- 
Peter N. M. Hansteen, member of the first RFC 1149 implementation team
http://bsdly.blogspot.com/ http://www.bsdly.net/ http://www.nuug.no/
"Remember to set the evil bit on all malicious network traffic"
delilah spamd[29949]: 85.152.224.147: disconnected after 42673 seconds.

Reply via email to