Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

plotting is broken with nvidia drivers #327

Closed
dasergatskov opened this issue Dec 12, 2023 · 5 comments
Closed

plotting is broken with nvidia drivers #327

dasergatskov opened this issue Dec 12, 2023 · 5 comments

Comments

@dasergatskov
Copy link

dasergatskov commented Dec 12, 2023

Currently octave cannot plot on computer with proprietary nvidia drivers (crashes with signal 6).
Looking further I noticed:

[馃摝 org.octave.Octave ~]$ ldd /app/bin/octave-cli
	linux-vdso.so.1 (0x00007ffe20904000)
	liboctinterp.so.11 => /app/lib/octave/8.4.0/liboctinterp.so.11 (0x00007fe809c00000)
	liboctave.so.10 => /app/lib/octave/8.4.0/liboctave.so.10 (0x00007fe808c00000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fe808800000)
	libgcc_s.so.1 => /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fe80b13f000)
	libc.so.6 => /usr/lib/x86_64-linux-gnu/libc.so.6 (0x00007fe808400000)
	libhdf5.so.310 => /app/lib/libhdf5.so.310 (0x00007fe808000000)
	libGraphicsMagick++.so.12 => /app/lib/libGraphicsMagick++.so.12 (0x00007fe80b0ba000)
	libGraphicsMagick.so.3 => /app/lib/libGraphicsMagick.so.3 (0x00007fe807c00000)
	libz.so.1 => /usr/lib/x86_64-linux-gnu/libz.so.1 (0x00007fe80b09f000)
	libcholmod.so.4 => /app/lib/libcholmod.so.4 (0x00007fe808aa2000)
	libumfpack.so.6 => /app/lib/libumfpack.so.6 (0x00007fe80872c000)
	libamd.so.3 => /app/lib/libamd.so.3 (0x00007fe80b08f000)
	libcamd.so.3 => /app/lib/libcamd.so.3 (0x00007fe80b07f000)
	libcolamd.so.3 => /app/lib/libcolamd.so.3 (0x00007fe80b075000)
	libccolamd.so.3 => /app/lib/libccolamd.so.3 (0x00007fe809bf3000)
	libcxsparse.so.4 => /app/lib/libcxsparse.so.4 (0x00007fe808a6b000)
	libsuitesparseconfig.so.7 => /app/lib/libsuitesparseconfig.so.7 (0x00007fe809bed000)
	libfftw3_threads.so.3.6.9 => /app/lib/libfftw3_threads.so.3.6.9 (0x00007fe808a61000)
	libfftw3.so.3.6.9 => /app/lib/libfftw3.so.3.6.9 (0x00007fe808626000)
	libfftw3f_threads.so.3.6.9 => /app/lib/libfftw3f_threads.so.3.6.9 (0x00007fe808a55000)
	libfftw3f.so.3.6.9 => /app/lib/libfftw3f.so.3.6.9 (0x00007fe807f03000)
	libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007fe807b72000)
	libGLU.so.1 => /app/lib/libGLU.so.1 (0x00007fe807afd000)
	libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007fe807aaf000)
	libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fe8079ee000)
	libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fe8078a6000)
	libgl2ps.so.1 => /app/lib/libgl2ps.so.1 (0x00007fe8083e7000)
	libm.so.6 => /usr/lib/x86_64-linux-gnu/libm.so.6 (0x00007fe8077c3000)
	libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007fe80777a000)
	libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007fe8076d7000)
	libarpack.so.2 => /app/lib/libarpack.so.2 (0x00007fe80768e000)
	libqrupdate.so.1 => /app/lib/libqrupdate.so.1 (0x00007fe807665000)
	libopenblas.so.0 => /app/lib/libopenblas.so.0 (0x00007fe805198000)
	libreadline.so.8 => /usr/lib/x86_64-linux-gnu/libreadline.so.8 (0x00007fe80513f000)
	libpcre2-8.so.0 => /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007fe8050a4000)
	libgfortran.so.5 => /usr/lib/x86_64-linux-gnu/libgfortran.so.5 (0x00007fe804c00000)
	libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007fe80505c000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fe80b17e000)
	libwebp.so.7 => /usr/lib/x86_64-linux-gnu/libwebp.so.7 (0x00007fe804fe9000)
	libwebpmux.so.3 => /usr/lib/x86_64-linux-gnu/libwebpmux.so.3 (0x00007fe808a42000)
	liblcms2.so.2 => /usr/lib/x86_64-linux-gnu/liblcms2.so.2 (0x00007fe804f83000)
	libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5 (0x00007fe804efb000)
	libjpeg.so.62 => /usr/lib/x86_64-linux-gnu/libjpeg.so.62 (0x00007fe804b58000)
	libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fe804b1e000)
	libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fe808610000)
	libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007fe804ef0000)
	libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007fe804aff000)
	liblzma.so.5 => /usr/lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fe804ad5000)
	libbz2.so.1 => /usr/lib/x86_64-linux-gnu/libbz2.so.1 (0x00007fe804ac1000)
	libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007fe804955000)
	libzstd.so.1 => /usr/lib/x86_64-linux-gnu/libzstd.so.1 (0x00007fe804892000)
	libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007fe80485f000)
	libGLdispatch.so.0 => /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007fe8047a6000)
	libexpat.so.1 => /usr/lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fe804779000)
	libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007fe804670000)
	libbrotlidec.so.1 => /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007fe804ee3000)
	libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fe804644000)
	libOpenGL.so.0 => /usr/lib/x86_64-linux-gnu/libOpenGL.so.0 (0x00007fe804616000)
	libnghttp2.so.14 => /usr/lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007fe8045e6000)
	libssl.so.3 => /usr/lib/x86_64-linux-gnu/libssl.so.3 (0x00007fe80453d000)
	libcrypto.so.3 => /usr/lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007fe804000000)
	libncursesw.so.6 => /usr/lib/x86_64-linux-gnu/libncursesw.so.6 (0x00007fe8044ff000)
	libicui18n.so.71 => /usr/lib/x86_64-linux-gnu/libicui18n.so.71 (0x00007fe803c00000)
	libicuuc.so.71 => /usr/lib/x86_64-linux-gnu/libicuuc.so.71 (0x00007fe803800000)
	libicudata.so.71 => /usr/lib/x86_64-linux-gnu/libicudata.so.71 (0x00007fe801a00000)
	libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fe803ac7000)
	libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007fe8044db000)
	libbrotlicommon.so.1 => /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007fe8044b8000)
	libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fe8044b2000)
	libtinfow.so.6 => /usr/lib/x86_64-linux-gnu/libtinfow.so.6 (0x00007fe804471000)
	libpcre.so.1 => /usr/lib/x86_64-linux-gnu/libpcre.so.1 (0x00007fe803fb8000)

which looks odd to me since I assum most libraries should be from withing /app container.
In particular:

[馃摝 org.octave.Octave ~]$ ldd /app/bin/octave-cli | grep GL
	libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007f157fc6c000)
	libGLU.so.1 => /app/lib/libGLU.so.1 (0x00007f157f18b000)
	libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f157bf38000)
	libGLdispatch.so.0 => /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f157be7f000)
	libOpenGL.so.0 => /usr/lib/x86_64-linux-gnu/libOpenGL.so.0 (0x00007f157bce2000)

Is a mix-n-match of /app and system libraries. If I have Mesa drivers installed on the system it kind-of works since
the libraries are ABI compatible (?).

In any case, it used to work fine some time ago (~month?) and now it does not.
There are already bug reports on the octave's bug tracker which seem to be related to this issue.

Sincerely,

Dmitri.

@Alexander-Wilms
Copy link
Collaborator

The /usr paths refer to the org.kde.Sdk//5.15-22.08 runtime, not the system libraries.

Can you link the issues in the Octave bug tracker?

Also, if this indeed affects the non-flatpak'd version of Octave as well, this issue should be closed, since this tracker is intended for issues that only occur with the Flatpak.

@dasergatskov
Copy link
Author

The issue is:

$ flatpak run  org.octave.Octave
Gtk-Message: 09:16:26.781: Failed to load module "canberra-gtk-module"
Gtk-Message: 09:16:26.781: Failed to load module "pk-gtk-module"
Gtk-Message: 09:16:26.781: Failed to load module "canberra-gtk-module"
Gtk-Message: 09:16:26.781: Failed to load module "pk-gtk-module"
qt.qpa.qgnomeplatform: Could not find color scheme  ""
Qt: Session management error: Could not open network socket
GNU Octave, version 8.4.0
Copyright (C) 1993-2023 The Octave Project Developers.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type 'warranty'.

Octave was configured for "x86_64-pc-linux-gnu".

Additional information about Octave is available at https://www.octave.org.

Please contribute if you find this software useful.
For more information, visit https://www.octave.org/get-involved.html

Read https://www.octave.org/bugs.html to learn how to submit bug reports.
For information about changes from previous versions, type 'news'.

octave:1> plot(1:3)
fatal: caught signal Aborted -- stopping myself...
octave:1> graphics_toolkit fltk
octave:2> plot(1:3)
Insufficient GL support
error: unable to plot due to insufficient OpenGL support
octave:3> 

(and gnuplot works)

Dmitri.

@dasergatskov
Copy link
Author

https://savannah.gnu.org/bugs/index.php?64948

Not much info there though.

Dmitri.

@dasergatskov
Copy link
Author

Attached is a backtrace. The relevant thread seems to be:

Thread 1 (Thread 0x7fffef561540 (LWP 110) "octave-gui"):
#0  0x00007ffff4c91204 in __pthread_kill_implementation () at /usr/lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff4c3f04e in raise () at /usr/lib/x86_64-linux-gnu/libc.so.6
#2  0x00007ffff4c287fc in abort () at /usr/lib/x86_64-linux-gnu/libc.so.6
#3  0x00007ffff3a9dc8f in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffedcc32d6e in  () at /usr/lib/plugins/xcbglintegrations/libqxcb-glx-integration.so
#5  0x00007ffedcc331c7 in  () at /usr/lib/plugins/xcbglintegrations/libqxcb-glx-integration.so
#6  0x00007ffff33a244d in QOpenGLContext::create() () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#7  0x00007ffff41aa569 in QWidgetPrivate::shareContext() const () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007ffff41dbab9 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007ffff41dbc22 in QOpenGLWidget::resizeEvent(QResizeEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007ffff41bd923 in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff417affe in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ffff7c79826 in octave::octave_qapplication::notify(QObject*, QEvent*) (this=0x555555656880, receiver=<optimized out>, ev=<optimized out>) at libgui/src/octave-qobject.cc:147
#13 0x00007ffff3cced98 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007ffff41b5019 in QWidgetPrivate::sendPendingMoveAndResizeEvents(bool, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff41b9a13 in QWidgetPrivate::show_helper() () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff41b99b9 in QWidgetPrivate::showChildren(bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff41b9a2f in QWidgetPrivate::show_helper() () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007ffff41bc993 in QWidgetPrivate::setVisible(bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007ffff41b9999 in QWidgetPrivate::showChildren(bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007ffff41b9a2f in QWidgetPrivate::show_helper() () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff41bc993 in QWidgetPrivate::setVisible(bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff3cfa9c0 in QObject::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007ffff7bbd0b3 in octave::FigureWindowBase::event(QEvent*) (this=0x555555b5e210, evt=0x555555a60d00) at libgui/graphics/FigureWindow.h:35
#24 0x00007ffff417affe in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff7c79826 in octave::octave_qapplication::notify(QObject*, QEvent*) (this=0x555555656880, receiver=<optimized out>, ev=<optimized out>) at libgui/src/octave-qobject.cc:147
#26 0x00007ffff3cced98 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007ffff3cd1d31 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007ffff3d27403 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007fffecf20d71 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007fffecf77028 in g_main_context_iterate.constprop () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fffecf1e4a3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007ffff3d26ae6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x00007ffff3ccd80b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007ffff3cd5976 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#35 0x00007ffff7c767be in octave::base_qobject::exec() (this=this@entry=0x7fffffffd0f0) at libgui/src/octave-qobject.cc:425
#36 0x00007ffff7c88aba in octave::qt_application::execute() (this=this@entry=0x7fffffffd390) at libgui/src/qt-application.cc:73
#37 0x00005555555563cf in main(int, char**) (argc=1, argv=0x7fffffffd708) at src/main-gui.cc:148

octave_flatpak_crash.txt.gz

Dmitri.

@dasergatskov
Copy link
Author

After the latest update to org.freedesktop.Platform.GL.nvidia-545-23-08 (so the nvidia driver matches my system) the problem is gone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants