You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 20, 2022. It is now read-only.
When a helper thread exit voluntariy, the following segv happends.
The reason for segv is, __handle_signal() tries to access
shim_thread, it's already freed.
This situation only happens with helper threads. exit system call
doesn't trigger this pattern.
So add __disable_preempt() before put_thread() in helper function
as exeption.
> #0 0x00007f99f900d77e in atomic_read (v=0x7f99f8d772b8) at ../../../Pal/lib/atomic.h:93
> #1 0x00007f99f900f800 in __handle_signal (tcb=0x7f99f9522ec0, sig=1) at bookkeep/shim_signal.c:677
> #2 0x00007f99f90052dd in enable_preempt (tcb=0x7f99f9522ec0) at ../include/shim_internal.h:507
> #3 0x00007f99f90053db in unlock (l=0x7f99f930c190 <vma_list_lock>) at ../include/shim_internal.h:581
> #4 0x00007f99f9007c65 in bkeep_munmap (addr=0x7f99f8d77000, length=8192, flags=536870912) at bookkeep/shim_vma.c:681
> #5 0x00007f99f90731f0 in __system_free (addr=0x7f99f8d77000, size=5176) at shim_malloc.c:102
> #6 0x00007f99f9072ead in slab_free (mgr=0x7f99f8dc6000, obj=0x7f99f8d77020) at ../../../Pal/lib/slabmgr.h:465
> #7 0x00007f99f90733e7 in free (mem=0x7f99f8d77020) at shim_malloc.c:332
> #8 0x00007f99f900ae99 in put_thread (thread=0x7f99f8d77020) at bookkeep/shim_thread.c:346
> #9 0x00007f99f90742c7 in shim_async_helper (arg=0x7f99f8d77020) at shim_async.c:271
> #10 0x00007f99f931cd76 in pal_thread_init (tcbptr=<optimized out>) at db_threading.c:75
> #11 0x00007f99f9321776 in clone () at clone-x86_64.S:105
Signed-off-by: Isaku Yamahata <isaku.yamahata@gmail.com>
https://github.com/oscarlab/graphene/blob/1a1e199/LibOS/shim/src/shim_parser.c#L977
The text was updated successfully, but these errors were encountered: