[Webkit-unassigned] [Bug 248267] New: JSC init crashes WebKit with overcommit limit enabled

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Nov 23 01:27:08 PST 2022


https://bugs.webkit.org/show_bug.cgi?id=248267

            Bug ID: 248267
           Summary: JSC init crashes WebKit with overcommit limit enabled
           Product: WebKit
           Version: Other
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: bmalloc
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: paul at luon.net
                CC: ggaren at apple.com

With the update of WebKitGTK in Ubuntu (both 20.04LTS and 22.04LTS) of 2.36.8 to 2.38.2 on a system with a VM overcommit limit enabled, it now crashes the process on WebKit initialization via `webkit_web_context_new_ephemeral()` (or `webkit_web_context_new()`) without any error message.

I use the following overcommit configuration on 2 GiB and 4 GiB RAM systems:

  vm.overcommit_memory = 2
  vm.overcommit_ratio = 80

I get the following backtrace (unfortunately incomplete because of unavailable debug symbols):

  #0  __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
  [Current thread is 1 (Thread 0x7f2bf1762ac0 (LWP 11568))]

  Thread 4 (Thread 0x7f2be8822700 (LWP 11574)):
  #0  futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7f2be8821b00, clockid=<optimized out>, expected=0, futex_word=0x7f2bd400e690) at ../sysdeps/nptl/futex-internal.h:320
  #1  __pthread_cond_wait_common (abstime=0x7f2be8821b00, clockid=<optimized out>, mutex=0x7f2bd400e640, cond=0x7f2bd400e668) at pthread_cond_wait.c:520
  #2  __pthread_cond_timedwait (cond=0x7f2bd400e668, mutex=0x7f2bd400e640, abstime=0x7f2be8821b00) at pthread_cond_wait.c:665
  #3  0x00007f2bf74c64ac in  () at /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
  #4  0x00007f2bf74c6746 in  () at /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
  #5  0x00007f2bf5b65609 in start_thread (arg=<optimized out>) at pthread_create.c:477
  #6  0x00007f2bf5a8a133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

  Thread 3 (Thread 0x7f2be9879700 (LWP 11570)):
  #0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55fe89c24e28) at ../sysdeps/nptl/futex-internal.h:183
  #1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55fe89c24dd8, cond=0x55fe89c24e00) at pthread_cond_wait.c:508
  #2  __pthread_cond_wait (cond=0x55fe89c24e00, mutex=0x55fe89c24dd8) at pthread_cond_wait.c:647
  #3  0x00007f2bef52a5eb in  () at /usr/lib/x86_64-linux-gnu/dri/iris_dri.so
  #4  0x00007f2bef52a1eb in  () at /usr/lib/x86_64-linux-gnu/dri/iris_dri.so
  #5  0x00007f2bf5b65609 in start_thread (arg=<optimized out>) at pthread_create.c:477
  #6  0x00007f2bf5a8a133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

  Thread 2 (Thread 0x7f2be9038700 (LWP 11572)):
  #0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55fe89ca0f60) at ../sysdeps/nptl/futex-internal.h:183
  #1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55fe89ca0f10, cond=0x55fe89ca0f38) at pthread_cond_wait.c:508
  #2  __pthread_cond_wait (cond=0x55fe89ca0f38, mutex=0x55fe89ca0f10) at pthread_cond_wait.c:647
  #3  0x00007f2bef52a5eb in  () at /usr/lib/x86_64-linux-gnu/dri/iris_dri.so
  #4  0x00007f2bef52a1eb in  () at /usr/lib/x86_64-linux-gnu/dri/iris_dri.so
  #5  0x00007f2bf5b65609 in start_thread (arg=<optimized out>) at pthread_create.c:477
  #6  0x00007f2bf5a8a133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

  Thread 1 (Thread 0x7f2bf1762ac0 (LWP 11568)):
  #0  __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
  #1  0x00007f2bf598d859 in __GI_abort () at abort.c:79
  #2  0x00007f2bf61aee1d in  () at /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
  #3  0x00007f2bf6eb2847 in  () at /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
  #4  0x00007f2bf5b6e4df in __pthread_once_slow (once_control=0x7f2bf78dfee8, init_routine=0x7f2bf5dc1c20 <__once_proxy>) at pthread_once.c:116
  #5  0x00007f2bf6eb86e1 in JSC::initialize() () at /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
  #6  0x00007f2bf8e31e81 in  () at /lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37
  #7  0x00007f2bf8f93845 in  () at /lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37
  #8  0x00007f2bf5b6e4df in __pthread_once_slow (once_control=0x7f2bfc2d8d90, init_routine=0x7f2bf5dc1c20 <__once_proxy>) at pthread_once.c:116
  #9  0x00007f2bf8f93c11 in  () at /lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37
  #10 0x00007f2bf8fcb93c in  () at /lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37
  #11 0x00007f2bf60301d1 in g_type_class_ref () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
  #12 0x00007f2bf60135e1 in g_object_new_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
  #13 0x00007f2bf60136cd in g_object_new () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
  #14 0x00007f2bf8fb13e0 in webkit_web_context_new_ephemeral () at /lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37
  #15 0x000055fe88b8b4c6 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at main.cpp:1342


and strace output:

[pid  9244] mmap(NULL, 1073750016, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f952bffe000
[pid  9244] madvise(0x7f952bffe000, 1073750016, MADV_DONTNEED) = 0
[pid  9244] futex(0x7f9591a750d8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
[pid  9244] mmap(NULL, 8589934592, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = -1 ENOMEM (Cannot allocate memory)
[pid  9244] munmap(0x100000000, 4294967296) = 0
[pid  9244] mmap(NULL, 6442450944, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = -1 ENOMEM (Cannot allocate memory)
[pid  9244] munmap(0x80000000, 4294967296) = 0
[pid  9244] mmap(NULL, 5368709120, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = -1 ENOMEM (Cannot allocate memory)
[pid  9244] munmap(0x40000000, 4294967296) = 0
[pid  9244] mmap(NULL, 4831838208, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = -1 ENOMEM (Cannot allocate memory)
[pid  9244] munmap(0x20000000, 4294967296) = 0
[pid  9244] mmap(NULL, 4563402752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = -1 ENOMEM (Cannot allocate memory)
[pid  9244] munmap(0x10000000, 4294967296) = 0
[pid  9244] mmap(NULL, 4429185024, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = -1 ENOMEM (Cannot allocate memory)
[pid  9244] munmap(0x8000000, 4294967296) = 0
[pid  9244] mmap(NULL, 4362076160, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = -1 ENOMEM (Cannot allocate memory)
[pid  9244] munmap(0x4000000, 4294967296) = 0
[pid  9244] mmap(NULL, 4328521728, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = -1 ENOMEM (Cannot allocate memory)
[pid  9244] munmap(0x2000000, 4294967296) = 0
[pid  9244] rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
[pid  9244] rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
[pid  9244] getpid()                    = 9244
[pid  9244] gettid()                    = 9244
[pid  9244] tgkill(9244, 9244, SIGABRT) = 0
[pid  9244] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid  9244] --- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=9244, si_uid=1000} ---

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20221123/1436ec91/attachment-0001.htm>


More information about the webkit-unassigned mailing list