Closed mishoboss closed 2 years ago
I have DashD running on a RPI 0 which has a quad core cpu. Also DashD doesn't use net/http. The error originates from the webview library (probably unsafe pointer deref in c -> seg fault). Could you try and start DashD without the default_url
flag?
Same result. Unfortunately. Any other idea how to debug it?
I have a suspicion as to what may be causing it. I have seen over at the webview repo that someone was experiencing crashes when the window was being created in a separate os thread. It could be that Go decided to give the display goroutine a separate thread on your platform as opposed to running it on the main thread on my RPi. The webview library is in general pretty unstable and I'll maybe replace it if i can't find a solution which satisfies the architecture of DashD.
Is there an easy workaround that won't take a lot of time? I would really like to run the daemon soon.
A fix is in progress. Unfortunatly there is no user workaround exept using another CPU/board which might behave differently. However I have already made some changes, which you could try. I haven't tested them yet so report back if they don't work. Here are the patched binaries
A fix is in progress. Unfortunatly there is no user workaround exept using another CPU/board which might behave differently. However I have already made some changes, which you could try. I haven't tested them yet so report back if they don't work. Here are the patched binaries
Unfortunately nothing has changed.
Actually, I get goroutine 1 [syscall, locked to thread]:
now:
I have seen just now that the crash occurs in SetTitle
which I haven't touched in my patch so no wonder it didn't change anything. Here is another version you can try.
Thanks, it's definitively a step forward. However I get Could not connect: Connection refused
again, just no additional errors:
I tried with the 9090 port as well, just to be sure.
If I disable the display - -display_enabled=false
the error is gone, but of course no website is shown either. This definitively comes from the WebKitGTK.
Can you post the output of ldd /usr/local/sbin/dashd
?
linux-vdso.so.1 (0x0000ffffa027d000)
libwebkit2gtk-4.0.so.37 => /lib/aarch64-linux-gnu/libwebkit2gtk-4.0.so.37 (0x0000ffff9d223000)
libgtk-3.so.0 => /lib/aarch64-linux-gnu/libgtk-3.so.0 (0x0000ffff9ca33000)
libjavascriptcoregtk-4.0.so.18 => /lib/aarch64-linux-gnu/libjavascriptcoregtk-4.0.so.18 (0x0000ffff9b6f5000)
libgobject-2.0.so.0 => /lib/aarch64-linux-gnu/libgobject-2.0.so.0 (0x0000ffff9b688000)
libglib-2.0.so.0 => /lib/aarch64-linux-gnu/libglib-2.0.so.0 (0x0000ffff9b545000)
libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff9b514000)
libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffff9b33c000)
libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff9b291000)
libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffff9b26d000)
libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff9b0f7000)
libwpe-1.0.so.1 => /lib/aarch64-linux-gnu/libwpe-1.0.so.1 (0x0000ffff9b0de000)
libWPEBackend-fdo-1.0.so.1 => /lib/aarch64-linux-gnu/libWPEBackend-fdo-1.0.so.1 (0x0000ffff9b0bb000)
libEGL.so.1 => /lib/aarch64-linux-gnu/libEGL.so.1 (0x0000ffff9b096000)
librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000ffff9b07e000)
libnotify.so.4 => /lib/aarch64-linux-gnu/libnotify.so.4 (0x0000ffff9b065000)
libgdk_pixbuf-2.0.so.0 => /lib/aarch64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x0000ffff9b031000)
libgio-2.0.so.0 => /lib/aarch64-linux-gnu/libgio-2.0.so.0 (0x0000ffff9ae2c000)
libicudata.so.67 => /lib/aarch64-linux-gnu/libicudata.so.67 (0x0000ffff99305000)
libicui18n.so.67 => /lib/aarch64-linux-gnu/libicui18n.so.67 (0x0000ffff98ffb000)
libicuuc.so.67 => /lib/aarch64-linux-gnu/libicuuc.so.67 (0x0000ffff98e03000)
libsystemd.so.0 => /lib/aarch64-linux-gnu/libsystemd.so.0 (0x0000ffff98d3d000)
libgdk-3.so.0 => /lib/aarch64-linux-gnu/libgdk-3.so.0 (0x0000ffff98c25000)
libpangocairo-1.0.so.0 => /lib/aarch64-linux-gnu/libpangocairo-1.0.so.0 (0x0000ffff98c06000)
libpango-1.0.so.0 => /lib/aarch64-linux-gnu/libpango-1.0.so.0 (0x0000ffff98ba5000)
libharfbuzz.so.0 => /lib/aarch64-linux-gnu/libharfbuzz.so.0 (0x0000ffff98ab5000)
libcairo-gobject.so.2 => /lib/aarch64-linux-gnu/libcairo-gobject.so.2 (0x0000ffff98a9b000)
libcairo.so.2 => /lib/aarch64-linux-gnu/libcairo.so.2 (0x0000ffff98972000)
libxml2.so.2 => /lib/aarch64-linux-gnu/libxml2.so.2 (0x0000ffff987c5000)
libsqlite3.so.0 => /lib/aarch64-linux-gnu/libsqlite3.so.0 (0x0000ffff98679000)
libxslt.so.1 => /lib/aarch64-linux-gnu/libxslt.so.1 (0x0000ffff98629000)
libGLESv2.so.2 => /lib/aarch64-linux-gnu/libGLESv2.so.2 (0x0000ffff985f4000)
libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffff985e0000)
liblcms2.so.2 => /lib/aarch64-linux-gnu/liblcms2.so.2 (0x0000ffff98571000)
libwoff2dec.so.1.0.2 => /lib/aarch64-linux-gnu/libwoff2dec.so.1.0.2 (0x0000ffff98557000)
libfontconfig.so.1 => /lib/aarch64-linux-gnu/libfontconfig.so.1 (0x0000ffff98502000)
libfreetype.so.6 => /lib/aarch64-linux-gnu/libfreetype.so.6 (0x0000ffff9843b000)
libharfbuzz-icu.so.0 => /lib/aarch64-linux-gnu/libharfbuzz-icu.so.0 (0x0000ffff98426000)
libgcrypt.so.20 => /lib/aarch64-linux-gnu/libgcrypt.so.20 (0x0000ffff98356000)
libgpg-error.so.0 => /lib/aarch64-linux-gnu/libgpg-error.so.0 (0x0000ffff98323000)
libgstapp-1.0.so.0 => /lib/aarch64-linux-gnu/libgstapp-1.0.so.0 (0x0000ffff98301000)
libgstbase-1.0.so.0 => /lib/aarch64-linux-gnu/libgstbase-1.0.so.0 (0x0000ffff98277000)
libgstreamer-1.0.so.0 => /lib/aarch64-linux-gnu/libgstreamer-1.0.so.0 (0x0000ffff98113000)
libgstpbutils-1.0.so.0 => /lib/aarch64-linux-gnu/libgstpbutils-1.0.so.0 (0x0000ffff980c4000)
libgstaudio-1.0.so.0 => /lib/aarch64-linux-gnu/libgstaudio-1.0.so.0 (0x0000ffff98040000)
libgsttag-1.0.so.0 => /lib/aarch64-linux-gnu/libgsttag-1.0.so.0 (0x0000ffff97ff1000)
libgstvideo-1.0.so.0 => /lib/aarch64-linux-gnu/libgstvideo-1.0.so.0 (0x0000ffff97f31000)
libgstgl-1.0.so.0 => /lib/aarch64-linux-gnu/libgstgl-1.0.so.0 (0x0000ffff97ea7000)
libgstfft-1.0.so.0 => /lib/aarch64-linux-gnu/libgstfft-1.0.so.0 (0x0000ffff97e8d000)
libjpeg.so.62 => /lib/aarch64-linux-gnu/libjpeg.so.62 (0x0000ffff97e3b000)
libpng16.so.16 => /lib/aarch64-linux-gnu/libpng16.so.16 (0x0000ffff97df4000)
libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffff97dca000)
libopenjp2.so.7 => /lib/aarch64-linux-gnu/libopenjp2.so.7 (0x0000ffff97d64000)
libwebpdemux.so.2 => /lib/aarch64-linux-gnu/libwebpdemux.so.2 (0x0000ffff97d4f000)
libwebp.so.6 => /lib/aarch64-linux-gnu/libwebp.so.6 (0x0000ffff97ced000)
libsoup-2.4.so.1 => /lib/aarch64-linux-gnu/libsoup-2.4.so.1 (0x0000ffff97c3b000)
libatk-1.0.so.0 => /lib/aarch64-linux-gnu/libatk-1.0.so.0 (0x0000ffff97c01000)
libenchant-2.so.2 => /lib/aarch64-linux-gnu/libenchant-2.so.2 (0x0000ffff97be5000)
libgmodule-2.0.so.0 => /lib/aarch64-linux-gnu/libgmodule-2.0.so.0 (0x0000ffff97bd1000)
libsecret-1.so.0 => /lib/aarch64-linux-gnu/libsecret-1.so.0 (0x0000ffff97b60000)
libtasn1.so.6 => /lib/aarch64-linux-gnu/libtasn1.so.6 (0x0000ffff97b3c000)
libhyphen.so.0 => /lib/aarch64-linux-gnu/libhyphen.so.0 (0x0000ffff97b24000)
libX11.so.6 => /lib/aarch64-linux-gnu/libX11.so.6 (0x0000ffff979d7000)
libXcomposite.so.1 => /lib/aarch64-linux-gnu/libXcomposite.so.1 (0x0000ffff979c3000)
libXdamage.so.1 => /lib/aarch64-linux-gnu/libXdamage.so.1 (0x0000ffff979b0000)
libXrender.so.1 => /lib/aarch64-linux-gnu/libXrender.so.1 (0x0000ffff97997000)
libXt.so.6 => /lib/aarch64-linux-gnu/libXt.so.6 (0x0000ffff97920000)
libwayland-server.so.0 => /lib/aarch64-linux-gnu/libwayland-server.so.0 (0x0000ffff978fa000)
libwayland-egl.so.1 => /lib/aarch64-linux-gnu/libwayland-egl.so.1 (0x0000ffff978e8000)
libwayland-client.so.0 => /lib/aarch64-linux-gnu/libwayland-client.so.0 (0x0000ffff978c9000)
libmanette-0.2.so.0 => /lib/aarch64-linux-gnu/libmanette-0.2.so.0 (0x0000ffff9788a000)
libseccomp.so.2 => /lib/aarch64-linux-gnu/libseccomp.so.2 (0x0000ffff9785b000)
/lib/ld-linux-aarch64.so.1 (0x0000ffffa024d000)
libXi.so.6 => /lib/aarch64-linux-gnu/libXi.so.6 (0x0000ffff97839000)
libXfixes.so.3 => /lib/aarch64-linux-gnu/libXfixes.so.3 (0x0000ffff97823000)
libatk-bridge-2.0.so.0 => /lib/aarch64-linux-gnu/libatk-bridge-2.0.so.0 (0x0000ffff977dd000)
libepoxy.so.0 => /lib/aarch64-linux-gnu/libepoxy.so.0 (0x0000ffff97687000)
libfribidi.so.0 => /lib/aarch64-linux-gnu/libfribidi.so.0 (0x0000ffff9765c000)
libpangoft2-1.0.so.0 => /lib/aarch64-linux-gnu/libpangoft2-1.0.so.0 (0x0000ffff97635000)
libffi.so.7 => /lib/aarch64-linux-gnu/libffi.so.7 (0x0000ffff9761a000)
libpcre.so.3 => /lib/aarch64-linux-gnu/libpcre.so.3 (0x0000ffff975a8000)
libxkbcommon.so.0 => /lib/aarch64-linux-gnu/libxkbcommon.so.0 (0x0000ffff97557000)
libGLdispatch.so.0 => /lib/aarch64-linux-gnu/libGLdispatch.so.0 (0x0000ffff973cc000)
libmount.so.1 => /lib/aarch64-linux-gnu/libmount.so.1 (0x0000ffff97359000)
libselinux.so.1 => /lib/aarch64-linux-gnu/libselinux.so.1 (0x0000ffff9731e000)
libresolv.so.2 => /lib/aarch64-linux-gnu/libresolv.so.2 (0x0000ffff972f7000)
liblzma.so.5 => /lib/aarch64-linux-gnu/liblzma.so.5 (0x0000ffff972c1000)
libzstd.so.1 => /lib/aarch64-linux-gnu/libzstd.so.1 (0x0000ffff971f5000)
liblz4.so.1 => /lib/aarch64-linux-gnu/liblz4.so.1 (0x0000ffff971c4000)
libXinerama.so.1 => /lib/aarch64-linux-gnu/libXinerama.so.1 (0x0000ffff971b1000)
libXrandr.so.2 => /lib/aarch64-linux-gnu/libXrandr.so.2 (0x0000ffff97197000)
libXcursor.so.1 => /lib/aarch64-linux-gnu/libXcursor.so.1 (0x0000ffff9717c000)
libwayland-cursor.so.0 => /lib/aarch64-linux-gnu/libwayland-cursor.so.0 (0x0000ffff97164000)
libXext.so.6 => /lib/aarch64-linux-gnu/libXext.so.6 (0x0000ffff97140000)
libthai.so.0 => /lib/aarch64-linux-gnu/libthai.so.0 (0x0000ffff97125000)
libgraphite2.so.3 => /lib/aarch64-linux-gnu/libgraphite2.so.3 (0x0000ffff970f3000)
libpixman-1.so.0 => /lib/aarch64-linux-gnu/libpixman-1.so.0 (0x0000ffff97080000)
libxcb-shm.so.0 => /lib/aarch64-linux-gnu/libxcb-shm.so.0 (0x0000ffff9706c000)
libxcb.so.1 => /lib/aarch64-linux-gnu/libxcb.so.1 (0x0000ffff97034000)
libxcb-render.so.0 => /lib/aarch64-linux-gnu/libxcb-render.so.0 (0x0000ffff97015000)
libwoff2common.so.1.0.2 => /lib/aarch64-linux-gnu/libwoff2common.so.1.0.2 (0x0000ffff97002000)
libbrotlidec.so.1 => /lib/aarch64-linux-gnu/libbrotlidec.so.1 (0x0000ffff96fe7000)
libexpat.so.1 => /lib/aarch64-linux-gnu/libexpat.so.1 (0x0000ffff96faf000)
libuuid.so.1 => /lib/aarch64-linux-gnu/libuuid.so.1 (0x0000ffff96f97000)
libunwind.so.8 => /lib/aarch64-linux-gnu/libunwind.so.8 (0x0000ffff96f56000)
libdw.so.1 => /lib/aarch64-linux-gnu/libdw.so.1 (0x0000ffff96ea5000)
liborc-0.4.so.0 => /lib/aarch64-linux-gnu/liborc-0.4.so.0 (0x0000ffff96e12000)
libgstallocators-1.0.so.0 => /lib/aarch64-linux-gnu/libgstallocators-1.0.so.0 (0x0000ffff96dfd000)
libGL.so.1 => /lib/aarch64-linux-gnu/libGL.so.1 (0x0000ffff96d06000)
libX11-xcb.so.1 => /lib/aarch64-linux-gnu/libX11-xcb.so.1 (0x0000ffff96cf2000)
libgudev-1.0.so.0 => /lib/aarch64-linux-gnu/libgudev-1.0.so.0 (0x0000ffff96cd6000)
libdrm.so.2 => /lib/aarch64-linux-gnu/libdrm.so.2 (0x0000ffff96cb3000)
libgbm.so.1 => /lib/aarch64-linux-gnu/libgbm.so.1 (0x0000ffff96c95000)
libgssapi_krb5.so.2 => /lib/aarch64-linux-gnu/libgssapi_krb5.so.2 (0x0000ffff96c37000)
libpsl.so.5 => /lib/aarch64-linux-gnu/libpsl.so.5 (0x0000ffff96c13000)
libSM.so.6 => /lib/aarch64-linux-gnu/libSM.so.6 (0x0000ffff96bfb000)
libICE.so.6 => /lib/aarch64-linux-gnu/libICE.so.6 (0x0000ffff96bd0000)
libevdev.so.2 => /lib/aarch64-linux-gnu/libevdev.so.2 (0x0000ffff96ba4000)
libdbus-1.so.3 => /lib/aarch64-linux-gnu/libdbus-1.so.3 (0x0000ffff96b3d000)
libatspi.so.0 => /lib/aarch64-linux-gnu/libatspi.so.0 (0x0000ffff96af6000)
libblkid.so.1 => /lib/aarch64-linux-gnu/libblkid.so.1 (0x0000ffff96a92000)
libpcre2-8.so.0 => /lib/aarch64-linux-gnu/libpcre2-8.so.0 (0x0000ffff96a01000)
libdatrie.so.1 => /lib/aarch64-linux-gnu/libdatrie.so.1 (0x0000ffff969e7000)
libXau.so.6 => /lib/aarch64-linux-gnu/libXau.so.6 (0x0000ffff969d3000)
libXdmcp.so.6 => /lib/aarch64-linux-gnu/libXdmcp.so.6 (0x0000ffff969bd000)
libbrotlicommon.so.1 => /lib/aarch64-linux-gnu/libbrotlicommon.so.1 (0x0000ffff9698c000)
libelf.so.1 => /lib/aarch64-linux-gnu/libelf.so.1 (0x0000ffff96961000)
libbz2.so.1.0 => /lib/aarch64-linux-gnu/libbz2.so.1.0 (0x0000ffff9693e000)
libGLX.so.0 => /lib/aarch64-linux-gnu/libGLX.so.0 (0x0000ffff968fb000)
libudev.so.1 => /lib/aarch64-linux-gnu/libudev.so.1 (0x0000ffff968c4000)
libkrb5.so.3 => /lib/aarch64-linux-gnu/libkrb5.so.3 (0x0000ffff967da000)
libk5crypto.so.3 => /lib/aarch64-linux-gnu/libk5crypto.so.3 (0x0000ffff9679c000)
libcom_err.so.2 => /lib/aarch64-linux-gnu/libcom_err.so.2 (0x0000ffff96786000)
libkrb5support.so.0 => /lib/aarch64-linux-gnu/libkrb5support.so.0 (0x0000ffff96769000)
libunistring.so.2 => /lib/aarch64-linux-gnu/libunistring.so.2 (0x0000ffff965dd000)
libidn2.so.0 => /lib/aarch64-linux-gnu/libidn2.so.0 (0x0000ffff965ad000)
libbsd.so.0 => /lib/aarch64-linux-gnu/libbsd.so.0 (0x0000ffff96588000)
libkeyutils.so.1 => /lib/aarch64-linux-gnu/libkeyutils.so.1 (0x0000ffff96571000)
libmd.so.0 => /lib/aarch64-linux-gnu/libmd.so.0 (0x0000ffff96555000)
So I just figured out that the error happens because WebKit can't connect to your Xserver. Make sure your Xserver is running and you launch DashD with DISPLAY=:0
set as environment variable or in a terminal emulator running in an X context. If you use the recommended setup from the README it should just work™.
closing as the seg fault is already fixed
Description When
/usr/local/sbin/dashd
is executed I get the following error:From what I understand, this issue could be because of multithreaded CPU. Go runs the http on another goroutine. This is a thread with more info: https://github.com/golang/go/issues/26698
How To Reproduce Just run on a multithreaded CPU.