cosmopolitan: redbean segfaults on Linux x86_64

redbean.com when built from source segfaults on Linux x86_64 (Kernel 5.15.3-arch1-1)

*** Update: The binary downloaded from your website also segfaults. *** Filetype before executing: *** [linux@linux cosmopolitan]$ file o//tool/net/redbean.com *** o//tool/net/redbean.com: DOS/MBR boot sector *** Tested on Windows 11 and works fine on windows

CLI Output:

[linux@linux cosmopolitan]$ o//tool/net/redbean.com -vv
Segmentation fault (core dumped)
[linux@linux cosmopolitan]$ file o//tool/net/redbean.com 
o//tool/net/redbean.com: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), for OpenBSD, statically linked, no section header

Debug version works

My default compiler is Clang. But I think that como ships with its own gcc-musl.

Further CLI:

[linux@linux cosmopolitan]$ rm o//tool/net/redbean.com 
[linux@linux cosmopolitan]$ make -j8 o//tool/net/redbean.com
♥cosmo
     5,116⏰     4,966⏳   3,032k   3,184iop o/third_party/gcc/bin/x86_64-linux-musl-objcopy -S -O binary o//tool/net/redbean.com.dbg o//tool/net/redbean.com
    11,122⏰    10,960⏳   3,316k   3,240iop o//third_party/infozip/zip.com -qj o//tool/net/redbean.com o//tool/net/.ape tool/net/help.txt tool/net/.init.lua tool/net/favicon.ico tool/net/redbean.png
[linux@linux cosmopolitan]$ o//tool/net/redbean.com -vv
Segmentation fault (core dumped)

Strace:

[linux@linux cosmopolitan]$ strace o/tool/net/redbean.com
execve("o/tool/net/redbean.com", ["o/tool/net/redbean.com"], 0x7ffe86381310 /* 81 vars */) = 0
mmap(0x6ffffffe0000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_GROWSDOWN, -1, 0) = 0x6ffffffe0000
mprotect(0x6ffffffe0000, 4096, PROT_NONE) = 0
newfstatat(AT_FDCWD, "o/tool/net/redbean.com", {st_mode=S_IFREG|0755, st_size=1657367, ...}, 0) = 0
getcwd("/home/linux/NOSTROMO/COSMO/cosmopolitan", 1023) = 48
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
getrandom(NULL, 0, 0)                   = 0
mmap(0x100080000000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x100080000000
mmap(0x100080010000, 196608, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x100080010000
sigaltstack({ss_sp=0x1000800023a0, ss_flags=0, ss_size=131072}, NULL) = 0
rt_sigaction(SIGQUIT, {sa_handler=0x510871, sa_mask=~[QUIT ILL TRAP ABRT BUS FPE SEGV PIPE], sa_flags=SA_RESTORER|SA_ONSTACK|SA_NODEFER|SA_SIGINFO, sa_restorer=0x546a10}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGFPE, {sa_handler=0x51087c, sa_mask=~[QUIT ILL TRAP ABRT BUS FPE SEGV PIPE], sa_flags=SA_RESTORER|SA_ONSTACK|SA_NODEFER|SA_SIGINFO, sa_restorer=0x546a10}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGILL, {sa_handler=0x510887, sa_mask=~[QUIT ILL TRAP ABRT BUS FPE SEGV PIPE], sa_flags=SA_RESTORER|SA_ONSTACK|SA_NODEFER|SA_SIGINFO, sa_restorer=0x546a10}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x510892, sa_mask=~[QUIT ILL TRAP ABRT BUS FPE SEGV PIPE], sa_flags=SA_RESTORER|SA_ONSTACK|SA_NODEFER|SA_SIGINFO, sa_restorer=0x546a10}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTRAP, {sa_handler=0x51089d, sa_mask=~[QUIT ILL TRAP ABRT BUS FPE SEGV PIPE], sa_flags=SA_RESTORER|SA_ONSTACK|SA_NODEFER|SA_SIGINFO, sa_restorer=0x546a10}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGABRT, {sa_handler=0x5108a8, sa_mask=~[QUIT ILL TRAP ABRT BUS FPE SEGV PIPE], sa_flags=SA_RESTORER|SA_ONSTACK|SA_NODEFER|SA_SIGINFO, sa_restorer=0x546a10}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=0x5108b3, sa_mask=~[QUIT ILL TRAP ABRT BUS FPE SEGV PIPE], sa_flags=SA_RESTORER|SA_ONSTACK|SA_NODEFER|SA_SIGINFO, sa_restorer=0x546a10}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=0x5108be, sa_mask=~[QUIT ILL TRAP ABRT BUS FPE SEGV PIPE], sa_flags=SA_RESTORER|SA_ONSTACK|SA_NODEFER|SA_SIGINFO, sa_restorer=0x546a10}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
sched_yield()                           = 0
clock_gettime(CLOCK_REALTIME, {tv_sec=1641069519, tv_nsec=382211569}) = 0
nanosleep({tv_sec=0, tv_nsec=100000}, NULL) = 0
clock_gettime(CLOCK_REALTIME, {tv_sec=1641069519, tv_nsec=382475221}) = 0
sched_yield()                           = 0
clock_gettime(CLOCK_REALTIME, {tv_sec=1641069519, tv_nsec=382588017}) = 0
nanosleep({tv_sec=0, tv_nsec=100000}, NULL) = 0
clock_gettime(CLOCK_REALTIME, {tv_sec=1641069519, tv_nsec=382845720}) = 0
sched_yield()                           = 0
clock_gettime(CLOCK_REALTIME, {tv_sec=1641069519, tv_nsec=382988830}) = 0
nanosleep({tv_sec=0, tv_nsec=100000}, NULL) = 0
clock_gettime(CLOCK_REALTIME, {tv_sec=1641069519, tv_nsec=383246940}) = 0
sched_yield()                           = 0
clock_gettime(CLOCK_REALTIME, {tv_sec=1641069519, tv_nsec=383359827}) = 0
nanosleep({tv_sec=0, tv_nsec=100000}, NULL) = 0
clock_gettime(CLOCK_REALTIME, {tv_sec=1641069519, tv_nsec=383617007}) = 0
clock_gettime(CLOCK_REALTIME, {tv_sec=1641069519, tv_nsec=383675786}) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
openat(AT_FDCWD, "/home/linux/NOSTROMO/COSMO/cosmopolitan/o/tool/net/redbean.com", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=1657367, ...}) = 0
mmap(0x100080040000, 1657367, PROT_READ, MAP_SHARED|MAP_FIXED, 3, 0) = 0x100080040000
munmap(0x100080040000, 1507328)         = 0
close(3)                                = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
dup(2)                                  = 3
close(3)                                = 0
mmap(0x100080040000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x100080040000
dup(2)                                  = 3
close(3)                                = 0
mmap(0x100080050000, 65536, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x100080050000
openat(AT_FDCWD, "/home/linux/NOSTROMO/COSMO/cosmopolitan/o/tool/net/redbean.com", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=1657367, ...}) = 0
newfstatat(AT_FDCWD, "/home/linux/NOSTROMO/COSMO/cosmopolitan/o/tool/net/redbean.com", {st_mode=S_IFREG|0755, st_size=1657367, ...}, 0) = 0
mmap(0x1000801e0000, 1657367, PROT_READ, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x1000801e0000
dup(2)                                  = 4
close(4)                                = 0
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f580ef97000
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f580ef94000
mprotect(0x7f580ef97000, 4096, PROT_READ|PROT_EXEC) = 0
munmap(0x400000, 1544192)               = 0
munmap(0x579000, 12288)                 = 0
open("/home/linux/NOSTROMO/COSMO/cosmopolitan/o/tool/net/redbean.com", O_RDWR) = -1 ETXTBSY (Text file busy)
mmap(0x400000, 1544192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, -26, 0) = -1 EBADF (Bad file descriptor)
mmap(0x579000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x579000
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x545d82} ---
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x510892} ---
...
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x510892} ---
--- SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=NULL} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault (core dumped)

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 16

Most upvoted comments

@pkulchenko very nice 😃 awesome work 😃

This should be fixed by #365, which has been merged. Thanks @igravious for checking!

No worries. If there’s anything else you want me to test I’d be more than happy to help out.