[Bug 270250] Linuxulator: golang hangs on aarch64; futex related?

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 21 Mar 2023 14:09:40 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270250

--- Comment #2 from Edward Tomasz Napierala <trasz@FreeBSD.org> ---
It appears to be looping like this:

  1263 101424 closure4 14.001160459 CALL  linux_rt_sigreturn
  1263 101424 closure4 14.001161209 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 14.001162167 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 14.001164667 CALL  linux_rt_sigreturn
  1263 101424 closure4 14.001165459 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 14.001166375 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 14.001168875 CALL  linux_rt_sigreturn
  1263 101424 closure4 14.001169667 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 14.001170584 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 14.001173125 CALL  linux_rt_sigreturn
  1263 101424 closure4 14.001173875 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 14.001174792 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 14.001177334 CALL  linux_rt_sigreturn
  1263 101424 closure4 14.001178125 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 14.001179042 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 14.001181584 CALL  linux_rt_sigreturn
  1263 101424 closure4 14.001194125 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 14.001195125 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 14.001197667 CALL  linux_rt_sigreturn
  1263 101424 closure4 14.001198459 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 14.001199375 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 14.001201917 CALL  linux_rt_sigreturn
  1263 101424 closure4 14.001202709 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 14.001203625 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 14.001206167 CALL  linux_rt_sigreturn
  1263 101424 closure4 14.001206917 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 14.001207834 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR

Occasionally there's something else inbetween, eg:

1263 101424 closure4 12.941496250 PSIG  SIGSEGV caught handler=0x5b4b0 mask=0x0
code=SEGV_MAPERR
  1263 101424 closure4 12.941498959 CALL  linux_rt_sigreturn
  1263 101424 closure4 12.941499792 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 12.941500792 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 12.941503500 CALL  linux_rt_sigreturn
  1263 101424 closure4 12.941504375 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 12.941505334 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 12.941508042 CALL  linux_rt_sigreturn
  1255 101461 go       12.941508625 RET   linux_nanosleep 0
  1263 101424 closure4 12.941509000 RET   linux_rt_sigreturn JUSTRETURN
  1255 101461 go       12.941512417 CALL 
linux_clock_gettime(CLOCK_MONOTONIC,0x436157c0)
  1263 101424 closure4 12.941513625 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1255 101461 go       12.941515459 RET   linux_clock_gettime 0
  1263 101424 closure4 12.941517084 CALL  linux_rt_sigreturn
  1263 101424 closure4 12.941520084 RET   linux_rt_sigreturn JUSTRETURN
  1255 101461 go       12.941518750 CALL 
linux_sys_futex(0xa1fc90,0x80,0,0x436157f8,0,0)
  1263 101424 closure4 12.941521167 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 12.941524542 CALL  linux_rt_sigreturn
  1263 101424 closure4 12.941525375 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 12.941526375 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 12.941529084 CALL  linux_rt_sigreturn
  1263 101424 closure4 12.941529917 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 12.941530875 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 12.941533584 CALL  linux_rt_sigreturn
  1263 101424 closure4 12.941534459 RET   linux_rt_sigreturn JUSTRETURN

Or:

1263 101424 closure4 12.940970375 PSIG  SIGSEGV caught handler=0x5b4b0 mask=0x0
code=SEGV_MAPERR
  1263 101424 closure4 12.940973709 CALL  linux_rt_sigreturn
  1263 101424 closure4 12.940974542 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 12.940975542 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 12.940978250 CALL  linux_rt_sigreturn
  1263 101424 closure4 12.940979084 RET   linux_rt_sigreturn JUSTRETURN
   973 100267 run      12.940981375 RET   linux_sys_futex -1 errno -110
Operation timed out
  1263 101424 closure4 12.940980125 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
   973 100267 run      12.940984792 CALL 
linux_clock_gettime(CLOCK_MONOTONIC,0x400006dfb0)
   973 100267 run      12.940987167 RET   linux_clock_gettime 0
  1263 101424 closure4 12.940985875 CALL  linux_rt_sigreturn
  1263 101424 closure4 12.940989542 RET   linux_rt_sigreturn JUSTRETURN
   973 100267 run      12.940988334 CALL 
linux_sys_futex(0x237f50,0x81,0x1,0,0,0)
  1263 101424 closure4 12.940990500 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 12.940993875 CALL  linux_rt_sigreturn
   973 100267 run      12.940994750 RET   linux_sys_futex 1
  1263 101424 closure4 12.940994917 RET   linux_rt_sigreturn JUSTRETURN
   973 100267 run      12.940996625 CALL 
linux_clock_gettime(CLOCK_MONOTONIC,0x400006dfb0)
   973 100267 run      12.940999375 RET   linux_clock_gettime 0
  1263 101424 closure4 12.940998042 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
   973 100267 run      12.941000792 CALL 
linux_sys_futex(0x4000030848,0x81,0x1,0,0,0)
  1263 101424 closure4 12.941002042 CALL  linux_rt_sigreturn
  1263 101424 closure4 12.941004917 RET   linux_rt_sigreturn JUSTRETURN
   973 100267 run      12.941005125 RET   linux_sys_futex 1
   973 100267 run      12.941007625 CALL 
linux_clock_gettime(CLOCK_MONOTONIC,0x400006dfb0)
   973 100267 run      12.941008500 RET   linux_clock_gettime 0
  1263 101424 closure4 12.941006000 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 12.941010917 CALL  linux_rt_sigreturn
  1263 101424 closure4 12.941011750 RET   linux_rt_sigreturn JUSTRETURN
   973 100267 run      12.941009625 CALL 
linux_clock_gettime(CLOCK_MONOTONIC,0x400006df10)
   973 100267 run      12.941013959 RET   linux_clock_gettime 0
  1263 101424 closure4 12.941012834 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
   973 100267 run      12.941015584 CALL 
linux_madvise(0x4000698000,0x2000,0x8)
  1263 101424 closure4 12.941016417 CALL  linux_rt_sigreturn
   973 100267 run      12.941019167 RET   linux_madvise 0
   973 100267 run      12.941021084 CALL 
linux_clock_gettime(CLOCK_MONOTONIC,0x400006dfb0)
  1263 101424 closure4 12.941019584 RET   linux_rt_sigreturn JUSTRETURN
   973 100267 run      12.941022125 RET   linux_clock_gettime 0
   973 100267 run      12.941025250 CALL 
linux_clock_gettime(CLOCK_MONOTONIC,0x400006dfb0)
  1263 101424 closure4 12.941023542 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
   973 100173 run      12.941027584 RET   linux_sys_futex 0
   973 100267 run      12.941026209 RET   linux_clock_gettime 0
   973 100173 run      12.941031042 CALL 
linux_clock_gettime(CLOCK_MONOTONIC,0x400003fef0)
   973 100173 run      12.941033417 RET   linux_clock_gettime 0
   973 100173 run      12.941034500 CALL  linux_nanosleep(0x400003ff18,0)
   973 100175 run      12.941028625 RET   linux_sys_futex 0
  1263 101424 closure4 12.941027875 CALL  linux_rt_sigreturn
   973 100175 run      12.941039042 CALL 
linux_sys_futex(0x4000030848,0x80,0,0,0,0)
  1263 101424 closure4 12.941039584 RET   linux_rt_sigreturn JUSTRETURN
   973 100267 run      12.941032250 CALL 
linux_clock_gettime(CLOCK_MONOTONIC,0x400006dfb0)
   973 100267 run      12.941043750 RET   linux_clock_gettime 0
  1263 101424 closure4 12.941042750 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 12.941046417 CALL  linux_rt_sigreturn
   973 100267 run      12.941044834 CALL 
linux_sys_futex(0x23a980,0x80,0,0x4000638ec8,0,0)
  1263 101424 closure4 12.941047459 RET   linux_rt_sigreturn JUSTRETURN
  1263 101424 closure4 12.941050500 PSIG  SIGSEGV caught handler=0x5b4b0
mask=0x0 code=SEGV_MAPERR
  1263 101424 closure4 12.941053250 CALL  linux_rt_sigreturn
  1263 101424 closure4 12.941054125 RET   linux_rt_sigreturn JUSTRETURN

I'll happily test any patches you throw in my way.

-- 
You are receiving this mail because:
You are the assignee for the bug.