nyxt icon indicating copy to clipboard operation
nyxt copied to clipboard

Nyxt crashes when changing buffers repeatedly

Open lmcj-xyz opened this issue 2 months ago • 5 comments

Describe the bug Switching buffers makes the browser eventually crash, this happens regardless of the amount of buffers open.

It's triggered more easily when switching rapidly, say to load the buffers that were open in a previous session. No idea if this means it's loading something extra when switching and this corrupts memory in some way? The terminal output doesn't reflect that.

In the "Output from terminal" you will notice that it complains of not being able to create /home/lmcj/.var/app/engineer.atlas.Nyxt/cache, however when I look for it the directory exists and within it there are three directories, namely fontconfig, mesa_shader_cache and tmp. Also, it complains about it every time it's loading a buffer.

You will also see in the output from terminal that I loaded 3 buffers, this was a result of me changing buffers which were loaded from the history, once the buffers were loaded I continued changing buffers, naturally no more loading was done, but then suddenly the last part of the output is printed, which is when it crashed.

Precise recipe to reproduce the issue

  1. Open Nyxt
  2. Open a few buffers
  3. Change buffers repeatedly

For website-specific issues: N/A

Information

  • OS name+version: Fedora 40
  • Graphics card and driver: Intel® HD Graphics 520 (SKL GT2)
  • Desktop environment / Window manager name+version: GNOME 46
  • How you installed Nyxt (Guix pack, package manager, build from source): Flatpak
  • Information from show-system-information:
Nyxt version: 3.11.6
Renderer: GI-GTK
Operating system kernel: Linux 6.8.7-300.fc40.x86_64
Lisp implementation: SBCL 2.4.3 (Dynamic space size: 3221225472)
Features: (:NYXT-GI-GTK :NYXT-GTK :NYXT-GI-GTK :NYXT-GTK :NYXT-3.11 :NYXT-3 :NYXT-3.11.6
 :CLIPBOARD-CONTENT-METHOD :SWANK :SLYNK :PLUMP-UTF-32 :PARENSCRIPT :NSYMBOLS
 :FSET-EXT-STRINGS :SBCL+SAFE-STANDARD-READTABLE :NAMED-READTABLES :FLATPAK
 :GLOBAL-VARS :CL-FAD :LPARALLEL :21BIT-CHARS :CUSTOM-HASH-TABLE-NATIVE
 :CL-PPCRE-UNICODE :CL-UNICODE :CL-JSON-DOUBLE-FLOAT-IS-SUBSUMED
 :CL-JSON-SINGLE-FLOAT-IS-SUBSUMED :CHUNGA :FLEXI-STREAMS :CL-PPCRE :WEBKIT2
 :WEBKIT-2.44.0 :WEBKIT-2.44 :WEBKIT-2 :WEBKIT2-CORS-ALLOWLIST
 :WEBKIT2-PASTE-PLAINTEXT :WEBKIT2-TRACKING :WEBKIT2-MUTE :WEBKIT2-EMOJI
 :WEBKIT2-MEDIA :WEBKIT2-SANDBOXING :GTK-3-22 :GTK-3-20 :GTK-3-18 :GTK-3-16
 :GTK-3-14 :GTK-3-12 :GTK-3-10 :GTK-3-8 :GTK-3-6 :GTK-3-4 :GTK :GDK-3-22
 :GDK-3-20 :GDK-3-18 :GDK-3-16 :GDK-3-14 :GDK-3-12 :GDK-3-10 :GDK-3-8 :GDK-3-6
 :GDK-3-4 :CAIRO-1-10 :CAIRO-1-12 :GDK-PIXBUF :CLOSER-MOP :GLIB-2-30 :GLIB-2-32
 :GLIB-2-34 :GLIB-2-36 :GLIB-2-38 :GLIB-2-40 :GLIB-2-42 :GLIB-2-44 :GLIB-2-46
 :GLIB-2-48 :GLIB-2-50 :GLIB-2-52 :GLIB-2-54 :GLIB-2-56 :GLIB-2-58 :GLIB
 :BORDEAUX-THREADS :LPARALLEL.WITH-CLTL2 :LPARALLEL.WITH-CAS
 :LPARALLEL.WITH-STEALING-SCHEDULER :SPLIT-SEQUENCE
 CFFI-FEATURES:FLAT-NAMESPACE CFFI-FEATURES:X86-64 CFFI-FEATURES:UNIX :CFFI
 CFFI-SYS::FLAT-NAMESPACE ALEXANDRIA::SEQUENCE-EMPTYP :FAST-IO-SV :FAST-IO
 :CL-JSON-CLOS :CL-JSON :SBCL-USES-SB-ROTATE-BYTE CHIPZ-SYSTEM:GRAY-STREAMS
 :THREAD-SUPPORT :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :ASDF2 :ASDF :OS-UNIX
 :NON-BASE-CHARS-EXIST-P :ASDF-UNICODE :ARENA-ALLOCATOR :X86-64 :GENCGC :64-BIT
 :ANSI-CL :COMMON-LISP :ELF :IEEE-FLOATING-POINT :LINUX :LITTLE-ENDIAN
 :PACKAGE-LOCAL-NICKNAMES :SB-LDB :SB-PACKAGE-LOCKS :SB-THREAD :SB-UNICODE
 :SBCL :UNIX)

ASDF version: 3.3.1
ASDF registries: (NYXT-SOURCE-REGISTRY ENVIRONMENT-SOURCE-REGISTRY)
Critical dependencies: (/run/build/nyxt/_build/cl-cffi-gtk/gtk/cl-cffi-gtk.asd
 /run/build/nyxt/_build/cl-gobject-introspection/cl-gobject-introspection.asd
 /run/build/nyxt/_build/cl-webkit/webkit2/cl-webkit2.asd)

Output when started from a shell

Nyxt version 3.11.6
<INFO> [12:23:23] Source location: #P"/app/share/nyxt/"
<INFO> [12:23:23] Listening to socket: #P"/run/user/1000/nyxt/nyxt.socket"
<INFO> [12:23:24] Loading #P"/home/lmcj/.local/share/nyxt/history/default.lisp".
<INFO> [12:23:24] Restoring 4 buffers from history.
Failed to create /home/lmcj/.var/app/engineer.atlas.Nyxt/cache for shader cache (No existe el fichero o el directorio)---disabling.
Failed to create /home/lmcj/.var/app/engineer.atlas.Nyxt/cache for shader cache (No existe el fichero o el directorio)---disabling.
<INFO> [12:23:26] Loading #P"/home/lmcj/.local/share/nyxt/auto-rules.lisp".
Failed to create /home/lmcj/.var/app/engineer.atlas.Nyxt/cache for shader cache (No existe el fichero o el directorio)---disabliFailed to create /home/lmcj/.var/app/engineer.atlas.Nyxt/cache for shader cache (No existe el fichero o el directorio)---disabling.
ng.
<INFO> [12:23:40] Loading "https://luevano.xyz/".
<INFO> [12:23:41] Finished loading "https://luevano.xyz/".
Failed to create /home/lmcj/.var/app/engineer.atlas.Nyxt/cache for shader cache (No existe el fichero o el directorio)---disabling.
<INFO> [12:23:44] Loading "https://lmcj.xyz/stats-seminar/".
<INFO> [12:23:44] Finished loading "https://lmcj.xyz/stats-seminar/".
Failed to create /home/lmcj/.var/app/engineer.atlas.Nyxt/cache for shader cache (No existe el fichero o el directorio)---disabling.

(nyxt:2): Gdk-CRITICAL **: 12:24:13.505: gdk_window_create_gl_context: assertion 'GDK_IS_WINDOW (window)' failed
CORRUPTION WARNING in SBCL pid 2 tid 15:
Memory fault at 0x8 (pc=0x7fd07058cb48, fp=0x7fd089ffde50, sp=0x7fd089ffde30) tid 15
The integrity of this image is possibly compromised.
Continuing with fingers crossed.
<WARN> [12:24:13] Warning: Error on GI-GTK thread: Unhandled memory fault at #x8.
; 
; compilation unit aborted
;   caught 1 fatal ERROR condition

lmcj-xyz avatar Apr 30 '24 11:04 lmcj-xyz

I can't reproduce it but I'll keep an eye on it. Try to run flatpak update in the meantime as it may update some dependencies.

aadcg avatar May 01 '24 19:05 aadcg

Running into the same issue with crashing (but not having the failure to create cache issue).

Built from source. Happened on 3.11.6, downgraded to 3.11.4 with sbcl 2.3.5 and it occured again. Tried with latest git clone and got the same crash.

Nyxt version: 3.11.6
Renderer: GI-GTK
Operating system kernel: Linux 6.8.8-gentoo
Lisp implementation: SBCL 2.4.3 (Dynamic space size: 3221225472)
Features: (:NYXT-GI-GTK :NYXT-GTK :NYXT-GI-GTK :NYXT-GTK :NYXT-3.11 :NYXT-3 :NYXT-3.11.6
 :CLIPBOARD-CONTENT-METHOD :SWANK :SLYNK :PLUMP-UTF-32 :PARENSCRIPT :NSYMBOLS
 :FSET-EXT-STRINGS :SBCL+SAFE-STANDARD-READTABLE :NAMED-READTABLES :GLOBAL-VARS
 :CL-FAD :LPARALLEL :21BIT-CHARS :CUSTOM-HASH-TABLE-NATIVE :CL-PPCRE-UNICODE
 :CL-UNICODE :CL-JSON-DOUBLE-FLOAT-IS-SUBSUMED
 :CL-JSON-SINGLE-FLOAT-IS-SUBSUMED :CHUNGA :FLEXI-STREAMS :CL-PPCRE :WEBKIT2
 :WEBKIT-2.44.1 :WEBKIT-2.44 :WEBKIT-2 :WEBKIT2-CORS-ALLOWLIST
 :WEBKIT2-PASTE-PLAINTEXT :WEBKIT2-TRACKING :WEBKIT2-MUTE :WEBKIT2-EMOJI
 :WEBKIT2-MEDIA :WEBKIT2-SANDBOXING :GTK-3-22 :GTK-3-20 :GTK-3-18 :GTK-3-16
 :GTK-3-14 :GTK-3-12 :GTK-3-10 :GTK-3-8 :GTK-3-6 :GTK-3-4 :GTK :GDK-3-22
 :GDK-3-20 :GDK-3-18 :GDK-3-16 :GDK-3-14 :GDK-3-12 :GDK-3-10 :GDK-3-8 :GDK-3-6
 :GDK-3-4 :CAIRO-1-10 :CAIRO-1-12 :GDK-PIXBUF :CLOSER-MOP :GLIB-2-30 :GLIB-2-32
 :GLIB-2-34 :GLIB-2-36 :GLIB-2-38 :GLIB-2-40 :GLIB-2-42 :GLIB-2-44 :GLIB-2-46
 :GLIB-2-48 :GLIB-2-50 :GLIB-2-52 :GLIB-2-54 :GLIB-2-56 :GLIB-2-58 :GLIB
 :BORDEAUX-THREADS :LPARALLEL.WITH-CLTL2 :LPARALLEL.WITH-CAS
 :LPARALLEL.WITH-STEALING-SCHEDULER :SPLIT-SEQUENCE
 CFFI-FEATURES:FLAT-NAMESPACE CFFI-FEATURES:X86-64 CFFI-FEATURES:UNIX :CFFI
 CFFI-SYS::FLAT-NAMESPACE ALEXANDRIA::SEQUENCE-EMPTYP :FAST-IO-SV :FAST-IO
 :CL-JSON-CLOS :CL-JSON :SBCL-USES-SB-ROTATE-BYTE CHIPZ-SYSTEM:GRAY-STREAMS
 :THREAD-SUPPORT :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :ASDF2 :ASDF :OS-UNIX
 :NON-BASE-CHARS-EXIST-P :ASDF-UNICODE :ARENA-ALLOCATOR :X86-64 :GENCGC :64-BIT
 :ANSI-CL :COMMON-LISP :ELF :IEEE-FLOATING-POINT :LINUX :LITTLE-ENDIAN
 :PACKAGE-LOCAL-NICKNAMES :SB-CORE-COMPRESSION :SB-LDB :SB-PACKAGE-LOCKS
 :SB-THREAD :SB-UNICODE :SBCL :UNIX)
(nyxt:11822): Gdk-CRITICAL **: 11:42:59.938: gdk_window_create_gl_context: assertion 'GDK_IS_WINDOW (window)' failed
CORRUPTION WARNING in SBCL pid 11822 tid 11848:
Memory fault at 0x8 (pc=0x7efe465f6bb8, fp=0x7efe2c765eb0, sp=0x7efe2c765eb0) tid 11848
The integrity of this image is possibly compromised.
Continuing with fingers crossed.
Backtrace for: #<SB-THREAD:THREAD tid=11848 "Nyxt renderer thread" RUNNING {10082969E3}>
0: ("bogus stack frame")
1: ((LAMBDA (&REST GIR::ARGS-IN) :IN GIR::BUILD-FUNCTION))
2: ((FLET NYXT/RENDERER/GI-GTK::MAIN-FUNC :IN NYXT:FFI-INITIALIZE))
3: ((LAMBDA NIL :IN BORDEAUX-THREADS::BINDING-DEFAULT-SPECIALS))
4: ((FLET SB-UNIX::BODY :IN SB-THREAD::RUN))
5: ((FLET "WITHOUT-INTERRUPTS-BODY-156" :IN SB-THREAD::RUN))
6: ((FLET SB-UNIX::BODY :IN SB-THREAD::RUN))
7: ((FLET "WITHOUT-INTERRUPTS-BODY-149" :IN SB-THREAD::RUN))
8: (SB-THREAD::RUN)
9: ("foreign function: call_into_lisp_")
10: ("foreign function: funcall1")
 <WARN> [11:42:59] nyxt message.lisp (echo-warning form-fun-5) -
  Warning: Error on GI-GTK thread: Unhandled memory fault at #x8.
<DEBUG> [11:42:59] nyxt urls.lisp (lisp-url with-recursive-lock-thunk) - Registering callback 20587 for buffer #<STATUS-BUFFER 6959 {1006C29A33}>

Nyxt version: 3.11.4
Renderer: GI-GTK
Operating system kernel: Linux 6.8.8-gentoo
Lisp implementation: SBCL 2.3.5 (Dynamic space size: 3221225472)
Features: (:NYXT-GI-GTK :NYXT-GTK :NYXT-GI-GTK :NYXT-GTK :NYXT-3.11 :NYXT-3 :NYXT-3.11.4
 :CLIPBOARD-CONTENT-METHOD :SWANK :SLYNK :PLUMP-UTF-32 :PARENSCRIPT :NSYMBOLS
 :FSET-EXT-STRINGS :SBCL+SAFE-STANDARD-READTABLE :NAMED-READTABLES :GLOBAL-VARS
 :CL-FAD :LPARALLEL :21BIT-CHARS :CUSTOM-HASH-TABLE-NATIVE :CL-PPCRE-UNICODE
 :CL-UNICODE :CL-JSON-DOUBLE-FLOAT-IS-SUBSUMED
 :CL-JSON-SINGLE-FLOAT-IS-SUBSUMED :CHUNGA :FLEXI-STREAMS :CL-PPCRE :WEBKIT2
 :WEBKIT-2.44.1 :WEBKIT-2.44 :WEBKIT-2 :WEBKIT2-CORS-ALLOWLIST
 :WEBKIT2-PASTE-PLAINTEXT :WEBKIT2-TRACKING :WEBKIT2-MUTE :WEBKIT2-EMOJI
 :WEBKIT2-MEDIA :WEBKIT2-SANDBOXING :GTK-3-22 :GTK-3-20 :GTK-3-18 :GTK-3-16
 :GTK-3-14 :GTK-3-12 :GTK-3-10 :GTK-3-8 :GTK-3-6 :GTK-3-4 :GTK :GDK-3-22
 :GDK-3-20 :GDK-3-18 :GDK-3-16 :GDK-3-14 :GDK-3-12 :GDK-3-10 :GDK-3-8 :GDK-3-6
 :GDK-3-4 :CAIRO-1-10 :CAIRO-1-12 :GDK-PIXBUF :CLOSER-MOP :GLIB-2-30 :GLIB-2-32
 :GLIB-2-34 :GLIB-2-36 :GLIB-2-38 :GLIB-2-40 :GLIB-2-42 :GLIB-2-44 :GLIB-2-46
 :GLIB-2-48 :GLIB-2-50 :GLIB-2-52 :GLIB-2-54 :GLIB-2-56 :GLIB-2-58 :GLIB
 :BORDEAUX-THREADS :LPARALLEL.WITH-CLTL2 :LPARALLEL.WITH-CAS
 :LPARALLEL.WITH-STEALING-SCHEDULER :SPLIT-SEQUENCE
 CFFI-FEATURES:FLAT-NAMESPACE CFFI-FEATURES:X86-64 CFFI-FEATURES:UNIX :CFFI
 CFFI-SYS::FLAT-NAMESPACE ALEXANDRIA::SEQUENCE-EMPTYP :FAST-IO-SV :FAST-IO
 :CL-JSON-CLOS :CL-JSON :SBCL-USES-SB-ROTATE-BYTE CHIPZ-SYSTEM:GRAY-STREAMS
 :THREAD-SUPPORT :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :ASDF2 :ASDF :OS-UNIX
 :NON-BASE-CHARS-EXIST-P :ASDF-UNICODE :ARENA-ALLOCATOR :X86-64 :GENCGC :64-BIT
 :ANSI-CL :COMMON-LISP :ELF :IEEE-FLOATING-POINT :LINUX :LITTLE-ENDIAN
 :PACKAGE-LOCAL-NICKNAMES :SB-CORE-COMPRESSION :SB-LDB :SB-PACKAGE-LOCKS
 :SB-THREAD :SB-UNICODE :SBCL :UNIX)
(nyxt:19646): Gdk-CRITICAL **: 11:47:15.811: gdk_window_create_gl_context: assertion 'GDK_IS_WINDOW (window)' failed
CORRUPTION WARNING in SBCL pid 19646 tid 19671:
Memory fault at 0x8 (pc=0x7f465b2c2bb8, fp=0x7f464106deb0, sp=0x7f464106deb0) tid 19671
The integrity of this image is possibly compromised.
Continuing with fingers crossed.
Backtrace for: #<SB-THREAD:THREAD tid=19671 "Nyxt renderer thread" RUNNING {100821DF33}>
0: ("bogus stack frame")
1: ((LAMBDA (&REST GIR::ARGS-IN) :IN GIR::BUILD-FUNCTION))
2: ((FLET NYXT/RENDERER/GI-GTK::MAIN-FUNC :IN NYXT:FFI-INITIALIZE))
3: ((LAMBDA NIL :IN BORDEAUX-THREADS::BINDING-DEFAULT-SPECIALS))
4: ((FLET SB-UNIX::BODY :IN SB-THREAD::RUN))
5: ((FLET "WITHOUT-INTERRUPTS-BODY-156" :IN SB-THREAD::RUN))
6: ((FLET SB-UNIX::BODY :IN SB-THREAD::RUN))
7: ((FLET "WITHOUT-INTERRUPTS-BODY-149" :IN SB-THREAD::RUN))
8: (SB-THREAD::RUN)
9: ("foreign function: call_into_lisp_")
10: ("foreign function: funcall1")
 <WARN> [11:47:15] nyxt message.lisp (echo-warning form-fun-5) -
  Warning: Error on GI-GTK thread: Unhandled memory fault at #x8.
<DEBUG> [11:47:15] nyxt urls.lisp (lisp-url with-recursive-lock-thunk) - Registering callback 16242 for buffer #<STATUS-BUFFER 6957 {1006C30633}>

fictitiousexistence avatar May 02 '24 16:05 fictitiousexistence

@fictitiousexistence that seems to suggest that the issue may be related to a new WebKitGTK version.

aadcg avatar May 02 '24 16:05 aadcg