nyxt icon indicating copy to clipboard operation
nyxt copied to clipboard

youtube.com crashing

Open toshism opened this issue 2 years ago • 7 comments

Hi, opening youtube.com seems to crash reliably for me. It looks like the page starts to load, but then crashes with the following info:

Ubuntu Linux 18.04 Nyxt: 2.2.4 (installed with guix)

<INFO> [18:31:13] Loading "https://youtube.com/".
GStreamer element autoaudiosink not found. Please install it

(WebKitWebProcess:32535): GLib-GObject-WARNING **: 18:31:15.843: invalid (NULL) pointer instance

(WebKitWebProcess:32535): GLib-GObject-CRITICAL **: 18:31:15.843: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
<WARN> [18:31:16] Warning: Web process terminated for buffer 2 (opening https://www.youtube.com/) because it crashed

I do have autoaudiosink installed

$ gst-inspect-1.0  autovideosink

Factory Details:
  Rank                     none (0)
  Long-name                Auto video sink
  Klass                    Sink/Video
  Description              Wrapper video sink for automatically detected video sink
  Author                   Jan Schmidt <[email protected]>

Plugin Details:
  Name                     autodetect
  Description              Plugin contains auto-detection plugins for video/audio in- and outputs
  Filename                 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstautodetect.so
  Version                  1.14.5
  License                  LGPL
  Source module            gst-plugins-good
  Source release date      2019-05-29
  Binary package           GStreamer Good Plugins (Ubuntu)
  Origin URL               https://launchpad.net/distros/ubuntu/+source/gst-plugins-good1.0

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBin
                         +----GstAutoDetect
                               +----GstAutoVideoSink

Implemented Interfaces:
  GstChildProxy

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      ANY

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'

Element Properties:
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "autovideosink0"
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  async-handling      : The bin will handle Asynchronous state changes
                        flags: readable, writable
                        Boolean. Default: false
  message-forward     : Forwards all children messages
                        flags: readable, writable
                        Boolean. Default: false
  filter-caps         : Filter sink candidates using these caps.
                        flags: readable, writable
                                                   video/x-raw

  sync                : Sync on the clock
                        flags: readable, writable
                        Boolean. Default: true
  ts-offset           : Timestamp offset in nanoseconds
                        flags: readable, writable
                        Integer64. Range: -9223372036854775808 - 9223372036854775807 Default: 0

Children:
  fake-video-sink

and GStreamer version

$ gst-inspect-1.0  --version
gst-inspect-1.0 version 1.14.5
GStreamer 1.14.5

Any other info that could be helpful?

Thanks!

toshism avatar Jul 09 '22 16:07 toshism

This is a limitation of WebKitGTK (or blame it on YouTube, your call :p).

Updating to a more recent version of WebKitGTK will help though. Your distro is aging... You can also try installing the Guix pack or Guix itself, which will allow you to use an up-to-date Nyxt / WebKitGTK while keeping your current distro.

Ambrevar avatar Jul 09 '22 19:07 Ambrevar

I did install Nyxt using Guix, is that what you mean, or is Guix pack something different?

toshism avatar Jul 10 '22 19:07 toshism

Mine is crashing with a different error, on Fedora:

<INFO> [17:31:51] Loading "https://youtube.com/".
<WARN> [17:31:55] Warning: Web process terminated for buffer 3 (opening https://www.youtube.com/) because it crashed
<WARN> [17:31:55] Warning: JavaScript error: GError: Domain: "WebKitJavascriptError", Code: 699, Message:

This is how I installed the latest released verions:

# First create a local directory named nyxt and enter it:
cd /tmp && mkdir nyxt && cd nyxt

# Download the compressed (latest) version:
wget https://github.com/atlas-engineer/nyxt/releases/download/2.2.4/nyxt-2.2.4.tar.xz

# Unzip the file and remove archive:
tar Jxvf nyxt-2.2.4.tar.xz && rm nyxt-2.2.4.tar.xz

# Exit directory and move nyxt directory to /opt
cd .. && sudo mv nyxt/ /opt/

# Now create a symbolic link to /usr/local/bin:
sudo ln -s /opt/nyxt/usr/local/bin/nyxt /usr/local/bin/nyxt

# Make it possible to access it via Launcher or your system’s Dashboard and copy the .desktop for Launcher:
find /opt/nyxt/ -name "nyxt.desktop" -exec sudo cp {} /usr/share/applications/ \;

# Change the executable path of the nyxt.desktop file:
sudo sed -i 's/Exec.*/Exec=nyxt %u/g' /usr/share/applications/nyxt.desktop

# Set the default path for the Nyxt icon to be displayed correctly:
sudo cp $(find /opt/nyxt/ -name "nyxt.png" | grep 256x256) /usr/share/pixmaps/

This is the verbose output, when running nyxt -v:

  Loading "https://youtube.com/".
<DEBUG> [17:37:13] nyxt browser.lisp (preprocess-request) -
  Forwarding https://www.youtube.com/ for buffer #<USER-WEB-BUFFER 2 {10089948A3}>
<DEBUG> [17:37:13] nyxt gtk.lisp (on-signal-decide-policy gtk-buffer form-fun-448) -
  Forward to #<USER-WEB-BUFFER 2 {10089948A3}>'s renderer (no request-resource-hook handlers).
<DEBUG> [17:37:14] nyxt browser.lisp (preprocess-request) -
  Forwarding https://www.youtube.com/ for buffer #<USER-WEB-BUFFER 2 {10089948A3}>
<DEBUG> [17:37:14] nyxt gtk.lisp (on-signal-decide-policy gtk-buffer form-fun-448) -
  Forward to #<USER-WEB-BUFFER 2 {10089948A3}>'s renderer (no request-resource-hook handlers).
<DEBUG> [17:37:15] nyxt browser.lisp (preprocess-request) -
  Forwarding about:blank for buffer #<USER-WEB-BUFFER 2 {10089948A3}>
<DEBUG> [17:37:15] nyxt gtk.lisp (on-signal-decide-policy gtk-buffer form-fun-448) -
  Forward to #<USER-WEB-BUFFER 2 {10089948A3}>'s renderer (no request-resource-hook handlers).
Backtrace for: #<SB-THREAD:THREAD "Nyxt renderer thread" RUNNING {1008FF3653}>
0: ((LAMBDA NIL :IN UIOP/IMAGE:PRINT-BACKTRACE))
1: ((FLET "THUNK" :IN UIOP/STREAM:CALL-WITH-SAFE-IO-SYNTAX))
2: (SB-IMPL::%WITH-STANDARD-IO-SYNTAX #<FUNCTION (FLET "THUNK" :IN UIOP/STREAM:CALL-WITH-SAFE-IO-SYNTAX) {7FD407CEC8DB}>)
3: (UIOP/STREAM:CALL-WITH-SAFE-IO-SYNTAX #<FUNCTION (LAMBDA NIL :IN UIOP/IMAGE:PRINT-BACKTRACE) {100991CC4B}> :PACKAGE :CL)
4: ((:METHOD LOG4CL-IMPL:APPENDER-DO-APPEND (NYXT::MESSAGES-APPENDER T T T)) #<NYXT::MESSAGES-APPENDER {1010148FE3}> #<LOG4CL-IMPL::FILE-LOGGER NYXT.ECHO-WARNING.FORM-FUN-6 /tmp/guix-build-nyxt-2.2.4.drv-0/source/source/message.lisp {100280A9C3}> 3 #<FUNCTION (FLET "log-stmt9" :IN NYXT:ECHO-WARNING) {7FD407CECD4B}>) [fast-method]
5: ((LABELS LOG4CL-IMPL::LOG-TO-LOGGER-APPENDERS :IN LOG4CL-IMPL::LOG-WITH-LOGGER) #<LOGGER +ROOT+ {10019E56C3}> #<LOG4CL-IMPL::FILE-LOGGER NYXT.ECHO-WARNING.FORM-FUN-6 /tmp/guix-build-nyxt-2.2.4.drv-0/source/source/message.lisp {100280A9C3}> 3 #<FUNCTION (FLET "log-stmt9" :IN NYXT:ECHO-WARNING) {7FD407CECD4B}>)
6: ((LABELS LOG4CL-IMPL::LOG-TO-LOGGER-APPENDERS :IN LOG4CL-IMPL::LOG-WITH-LOGGER) #<LOG4CL-IMPL::FILE-LOGGER NYXT NIL {1002108413}> #<LOG4CL-IMPL::FILE-LOGGER NYXT.ECHO-WARNING.FORM-FUN-6 /tmp/guix-build-nyxt-2.2.4.drv-0/source/source/message.lisp {100280A9C3}> 3 #<FUNCTION (FLET "log-stmt9" :IN NYXT:ECHO-WARNING) {7FD407CECD4B}>)
7: ((LABELS LOG4CL-IMPL::LOG-TO-LOGGER-APPENDERS :IN LOG4CL-IMPL::LOG-WITH-LOGGER) #<LOG4CL-IMPL::FILE-LOGGER NYXT.ECHO-WARNING /tmp/guix-build-nyxt-2.2.4.drv-0/source/source/message.lisp {10026149D3}> #<LOG4CL-IMPL::FILE-LOGGER NYXT.ECHO-WARNING.FORM-FUN-6 /tmp/guix-build-nyxt-2.2.4.drv-0/source/source/message.lisp {100280A9C3}> 3 #<FUNCTION (FLET "log-stmt9" :IN NYXT:ECHO-WARNING) {7FD407CECD4B}>)
8: ((LABELS LOG4CL-IMPL::LOG-TO-LOGGER-APPENDERS :IN LOG4CL-IMPL::LOG-WITH-LOGGER) #<LOG4CL-IMPL::FILE-LOGGER NYXT.ECHO-WARNING.FORM-FUN-6 /tmp/guix-build-nyxt-2.2.4.drv-0/source/source/message.lisp {100280A9C3}> #<LOG4CL-IMPL::FILE-LOGGER NYXT.ECHO-WARNING.FORM-FUN-6 /tmp/guix-build-nyxt-2.2.4.drv-0/source/source/message.lisp {100280A9C3}> 3 #<FUNCTION (FLET "log-stmt9" :IN NYXT:ECHO-WARNING) {7FD407CECD4B}>)
9: (LOG4CL-IMPL::LOG-WITH-LOGGER #<LOG4CL-IMPL::FILE-LOGGER NYXT.ECHO-WARNING.FORM-FUN-6 /tmp/guix-build-nyxt-2.2.4.drv-0/source/source/message.lisp {100280A9C3}> 3 #<FUNCTION (FLET "log-stmt9" :IN NYXT:ECHO-WARNING) {7FD407CECD4B}> #<PACKAGE "NYXT">)
10: (NYXT:ECHO-WARNING "Web process terminated for buffer ~a (opening ~a) because ~[it crashed~;of memory exhaustion~;we had to close it~]" "2" #<QURI.URI.HTTP:URI-HTTPS https://#1=www.youtube.com/> 0)
11: ((LAMBDA (NYXT::WEB-VIEW NYXT::REASON) :IN NYXT:FFI-BUFFER-MAKE) #<CL-WEBKIT2:WEBKIT-WEB-VIEW {1008D75F13}> :WEBKIT-WEB-PROCESS-CRASHED)
12: (GOBJECT::CALL-WITH-RESTARTS #<FUNCTION (LAMBDA (NYXT::WEB-VIEW NYXT::REASON) :IN NYXT:FFI-BUFFER-MAKE) {1008D77DFB}> (#<CL-WEBKIT2:WEBKIT-WEB-VIEW {1008D75F13}> :WEBKIT-WEB-PROCESS-CRASHED))
13: ((LAMBDA (GOBJECT::CLOSURE GOBJECT::RETURN-VALUE GOBJECT::COUNT-OF-ARGS GOBJECT::ARGS GOBJECT::INVOCATION-HINT GOBJECT::MARSHAL-DATA) :IN "/gnu/store/s7w144g61qsmschm6mzy41bvq0qvjfrs-cl-cffi-gtk-0.11.2-2.e9a46df/share/common-lisp/source/cl-cffi-gtk/gobject/gobject.signals.lisp") #.(SB-SYS:INT-SAP #X7FD3F832A2A0) #.(SB-SYS:INT-SAP #X00000000) 2 #.(SB-SYS:INT-SAP #X7FD407CEDC90) #<unused argument> #<unused argument>)
14: ((LAMBDA (SB-ALIEN::ARGS-POINTER SB-ALIEN::RESULT-POINTER FUNCTION) :IN "/gnu/store/s7w144g61qsmschm6mzy41bvq0qvjfrs-cl-cffi-gtk-0.11.2-2.e9a46df/share/common-lisp/source/cl-cffi-gtk/gobject/gobject.signals.lisp") #<unavailable argument> #<unavailable argument> #<unavailable argument>)
15: ("foreign function: funcall_alien_callback")
16: ("foreign function: #x5010098B")
17: ((LAMBDA (&REST GIR::ARGS-IN) :IN GIR::BUILD-FUNCTION))
18: ((FLET NYXT::MAIN-FUNC :IN NYXT:FFI-INITIALIZE))
19: ((LAMBDA NIL :IN BORDEAUX-THREADS::BINDING-DEFAULT-SPECIALS))
20: ((FLET SB-UNIX::BODY :IN SB-THREAD::RUN))
21: ((FLET "WITHOUT-INTERRUPTS-BODY-10" :IN SB-THREAD::RUN))
22: ((FLET SB-UNIX::BODY :IN SB-THREAD::RUN))
23: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-THREAD::RUN))
24: (SB-THREAD::RUN)
25: ("foreign function: call_into_lisp")
26: ("foreign function: funcall1")
 <WARN> [17:37:16] nyxt message.lisp (echo-warning form-fun-6) -
  Warning: Web process terminated for buffer 2 (opening https://www.youtube.com/) because it crashed
<DEBUG> [17:37:16] nyxt gtk.lisp (ffi-buffer-make gtk-buffer form-fun-660 form-fun-1801) -
  Web process terminated for web view #<WEBKIT-WEB-VIEW {1008D75F13}> because of WEBKIT_WEB_PROCESS_CRASHED

jvillasante avatar Jul 10 '22 21:07 jvillasante

@toshism Sorry, I had misread your report. Looks like autoaudiosink is conflicting with that of the Guix package. Try Nyxt without it, or alternatively we should packaage autoaudiosink for Guix so that you could use it from there.

Ambrevar avatar Jul 11 '22 09:07 Ambrevar

@jvillasante Looks like it's WebKitGTK that's crashing here. See if you can reproduce with Epiphany / GNOME Web.

Ambrevar avatar Jul 11 '22 09:07 Ambrevar

@jvillasante Looks like it's WebKitGTK that's crashing here. See if you can reproduce with Epiphany / GNOME Web.

It is not reproducible with Epiphany, YouTube opens normally there.

jvillasante avatar Jul 11 '22 14:07 jvillasante

@jvillasante Can you open a new "bug" issue and fill the form as precisely as you can?

Ambrevar avatar Jul 11 '22 15:07 Ambrevar

Closing as I don't think there's something to do from our side. Youtube is working as of commit 28c6ad3 and WebKitGTK version 2.40.1.

aadcg avatar May 03 '23 20:05 aadcg