DragonFly 3.6-RELEASE: how to crash the kernel from userland

Nelson H. F. Beebe beebe at math.utah.edu
Thu Jul 17 14:08:40 PDT 2014


I run DragonFly 3.6-RELEASE (and also 3.4) on VMware ESX on Sun AMD64
hardware, along with dozens of other virtual machines.

Today, I found out how to reliably, and preproducibly, crash the 3.6
kernel from a user process: build GNU rcs-5.9.1 or rcs-5.9.2, available
at

	ftp://ftp.gnu.org/gnu/rcs/

There is a kernel panic immediately after this report from the
configure run:

    checking signal received if referencing nonexistent part of mmapped file... 

I cannot capture the exact panic report easily from the VMware
console, which puts me into a debugger with prompt "db>", at which
typing "reset" reboots the system.

After the reboot, examination of /var/log/messages shows something
similar to what I saw in the VMware console window:

    Jul 17 14:52:47 xxx syslogd: kernel boot file is /boot/kernel/kernel
    Jul 17 14:52:47 xxx kernel: pid 23179 (conftest), uid 887: exited on signal 11
    Jul 17 14:52:47 xxx kernel: panic: assertion "ref >= &td->td_toks_base && ref->tr_tok == tok" failed in lwkt_reltoken at /build/home/justin/src/sys/kern/lwkt_token.c:812
    Jul 17 14:52:47 xxx kernel: cpuid = 0
    Jul 17 14:52:47 xxx kernel: Trace beginning at frame 0xffffffe05ce377d8
    Jul 17 14:52:47 xxx kernel: panic() at panic+0x223 0xffffffff80561c0c
    Jul 17 14:52:47 xxx kernel: panic() at panic+0x223 0xffffffff80561c0c
    Jul 17 14:52:47 xxx kernel: lwkt_reltoken() at lwkt_reltoken+0x5d 0xffffffff80575f98
    Jul 17 14:52:47 xxx kernel: sigexit() at sigexit+0xce 0xffffffff80564a78
    Jul 17 14:52:47 xxx kernel: postsig() at postsig+0x1c7 0xffffffff80564c46
    Jul 17 14:52:47 xxx kernel: userret() at userret+0x18d 0xffffffff8092ed6d
    Jul 17 14:52:47 xxx kernel: trap() at trap+0x6b4 0xffffffff8092fb4c
    Jul 17 14:52:47 xxx kernel: calltrap() at calltrap+0x9 0xffffffff80919bef
    Jul 17 14:52:47 xxx kernel: --- trap 000000000000000c, rip = 0000000000400ab4, rsp = ffffffe05ce37ab0, rbp = 00007fffffffe990 ---
    Jul 17 14:52:47 xxx kernel: kernmxps() at 0x400ab4 0x400ab4
    Jul 17 14:52:47 xxx kernel: kernmxps() at 0x400926 0x400926
    Jul 17 14:52:47 xxx kernel: Debugger("panic")
    Jul 17 14:52:47 xxx kernel:
    Jul 17 14:52:47 xxx kernel: CPU0 stopping CPUs: 0x00000000
    Jul 17 14:52:47 xxx kernel: stopped

Can anyone reproduce this crash on physical hardware?

Builds of the two named releases of GNU rcs on DragonflyBSD 3.4 work
just fine.

All of the files in /boot/kernel on my 3.6 system are dated
20-Feb-2014 14:47, and the panic persists even after running

	pkg update
	pkg upgrade

to ensure that all software components are current (as expected,
because the kernel files themselves do not change).

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------



More information about the Users mailing list