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.