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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cytoflow 1.2 fails to launch #330

Open
protist opened this issue Feb 10, 2022 · 3 comments
Open

Cytoflow 1.2 fails to launch #330

protist opened this issue Feb 10, 2022 · 3 comments

Comments

@protist
Copy link

protist commented Feb 10, 2022

PLATFORM (Mac, PC, Linux, other)

Linux

OPERATING SYSTEM (eg OSX 10.7, Windows 8.1)

Arch Linux, up to date

SEVERITY (Critical? Major? Minor? Enhancement?)

Critical

DESCRIPTION:

  • What were you trying to do? Launch Cytoflow 1.2
  • What happened? A dialog box is shown with an error, and Cytoflow fails to launch.
  • What did you expect to happen? Cytoflow to launch

Don't forget to attach the log file to this bug report!

The dialog box contains

An exception has occurred. Please report a problem from the Help menu!

Afterwards, may need to restart Cytoflow to continue working.

Qt message: Failed to create OpenGL context for format QSurfaceFormat(version 2.0, options QFlagsQSurfaceFormat::FormatOption(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::SwapBehavior(DefaultSwapBehavior), swapInterval 1, profile QSurfaceFormat::OpenGLContextProfile(NoProfile))

And the command line has the following

libGL error: MESA-LOADER: failed to open iris: /tmp/cytoflow-1.2/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib/dri/iris_dri.so) (search paths /usr/lib/dri, suffix _dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open iris: /tmp/cytoflow-1.2/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib/dri/iris_dri.so) (search paths /usr/lib/dri, suffix _dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open swrast: /tmp/cytoflow-1.2/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib/dri/swrast_dri.so) (search paths /usr/lib/dri, suffix _dri)
libGL error: failed to load driver: swrast
2022-02-10 13:53:52,690 CRITICAL:root:Qt message: Failed to create OpenGL context for format QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::SwapBehavior(DefaultSwapBehavior), swapInterval 1, profile  QSurfaceFormat::OpenGLContextProfile(NoProfile)) 
composeAndFlush: makeCurrent() failed
composeAndFlush: makeCurrent() failed
composeAndFlush: makeCurrent() failed
Fatal Python error: Aborted

Thread 0x00007fb763fff640 (most recent call first):
  File "threading.py", line 302 in wait
  File "threading.py", line 558 in wait
  File "matplotlib_backend_local.py", line 200 in send_to_remote
  File "threading.py", line 870 in run
  File "threading.py", line 932 in _bootstrap_inner
  File "threading.py", line 890 in _bootstrap

Thread 0x00007fb778b67640 (most recent call first):
  File "selectors.py", line 415 in select
  File "multiprocessing/connection.py", line 931 in wait
  File "multiprocessing/connection.py", line 424 in _poll
  File "multiprocessing/connection.py", line 257 in poll
  File "matplotlib_backend_local.py", line 165 in listen_for_remote
  File "threading.py", line 870 in run
  File "threading.py", line 932 in _bootstrap_inner
  File "threading.py", line 890 in _bootstrap

Thread 0x00007fb7793a8640 (most recent call first):
  File "threading.py", line 302 in wait
  File "queue.py", line 170 in get
  File "workflow/workflow.py", line 361 in send_main
  File "threading.py", line 870 in run
  File "threading.py", line 932 in _bootstrap_inner
  File "threading.py", line 890 in _bootstrap

Thread 0x00007fb779ba9640 (most recent call first):
  File "selectors.py", line 415 in select
  File "multiprocessing/connection.py", line 931 in wait
  File "multiprocessing/connection.py", line 424 in _poll
  File "multiprocessing/connection.py", line 257 in poll
  File "workflow/workflow.py", line 290 in recv_main
  File "threading.py", line 870 in run
  File "threading.py", line 932 in _bootstrap_inner
  File "threading.py", line 890 in _bootstrap

Thread 0x00007fb77c748640 (most recent call first):
  File "multiprocessing/popen_fork.py", line 27 in poll
  File "multiprocessing/popen_fork.py", line 47 in wait
  File "multiprocessing/process.py", line 149 in join
  File "run.py", line 303 in monitor_remote_process
  File "threading.py", line 870 in run
  File "threading.py", line 932 in _bootstrap_inner
  File "threading.py", line 890 in _bootstrap

Thread 0x00007fb77cf89640 (most recent call first):
  File "multiprocessing/connection.py", line 379 in _recv
  File "multiprocessing/connection.py", line 414 in _recv_bytes
  File "multiprocessing/connection.py", line 216 in recv_bytes
  File "multiprocessing/queues.py", line 97 in get
  File "logging/handlers.py", line 1431 in dequeue
  File "logging/handlers.py", line 1482 in _monitor
  File "threading.py", line 870 in run
  File "threading.py", line 932 in _bootstrap_inner
  File "threading.py", line 890 in _bootstrap

Current thread 0x00007fb7d8077b80 (most recent call first):
  File "pyface/ui/qt4/tasks/main_window_layout.py", line 217 in set_layout_for_area
  File "pyface/ui/qt4/tasks/main_window_layout.py", line 153 in set_layout
  File "pyface/ui/qt4/tasks/task_window_backend.py", line 169 in set_layout
  File "pyface/ui/qt4/tasks/task_window_backend.py", line 123 in _layout_state
  File "pyface/ui/qt4/tasks/task_window_backend.py", line 82 in show_task
  File "pyface/tasks/task_window.py", line 158 in activate_task
  File "pyface/tasks/task_window.py", line 348 in set_window_layout
  File "envisage/ui/tasks/tasks_application.py", line 269 in create_window
  File "envisage/ui/tasks/tasks_application.py", line 353 in _create_windows
  File "envisage/ui/tasks/tasks_application.py", line 175 in run
  File "cytoflow_application.py", line 163 in run
  File "run.py", line 293 in run_gui
  File "run.py", line 399 in <module>
[1]    21315 abort (core dumped)  ./cytoflow

I was trying to test the fix to #320. I firstly retested the older version 1.1.1, which launched fine (and I could indeed replicate the problem reported in that issue). I then downloaded the current version 1.2, which failed to launch as above.

@protist
Copy link
Author

protist commented Aug 9, 2022

I needed to do more flow analysis lately, so I tried this again. I'm still getting the same error. I did some more troubleshooting.

On my system, libstdc++.so.6 is located in /usr/lib/. From the logs above, it seemed like Cytoflow was looking in /usr/lib/dri/, so I tried creating a symlink.

cd /usr/lib/dri
sudo ln -s ../libstdc++.so.6 .

but this still failed. However, if I manually preload it, it seems to launch fine.

export LD_PRELOAD=/usr/lib/libstdc++.so.6
./cytoflow

@SamSeven777
Copy link

SamSeven777 commented Mar 4, 2024

Hi, I had a similar issue and I fixed it.

PLATFORM (Mac, PC, Linux, other)

Linux

OPERATING SYSTEM (eg OSX 10.7, Windows 8.1)

Fedora 39

Command line output

MESA-LOADER: failed to open radeonsi: /tmp/cytoflow-gui-1.2.linux_x86-64/cytoflow-1.2/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib64/dri/radeonsi_dri.so) (search paths /usr/lib64/dri, suffix _dri)
failed to load driver: radeonsi
MESA-LOADER: failed to open swrast: /tmp/cytoflow-gui-1.2.linux_x86-64/cytoflow-1.2/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib64/dri/swrast_dri.so) (search paths /usr/lib64/dri, suffix _dri)
failed to load driver: swrast
Qt message: Failed to create OpenGL context for format QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::SwapBehavior(DefaultSwapBehavior), swapInterval 1, profile  QSurfaceFormat::OpenGLContextProfile(NoProfile))

Testing

strings /tmp/cytoflow-gui-1.2.linux_x86-64/cytoflow-1.2/libstdc++.so.6 | grep GLIBCXX
The output has no GLIBCXX_3.4.29

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
This output has GLIBCXX_3.4.29

Solution

I replaced the /tmp/cytoflow-gui-1.2.linux_x86-64/cytoflow-1.2/libstdc++.so.6 with /usr/lib64/libstdc++.so.6

So I suppose that the libstdc++.so.6 should be updated.

@bpteague
Copy link
Collaborator

bpteague commented Apr 9, 2024

Yup, @protist found the right workaround. The DRI drivers need the system version of libstdc++ -- you can either the one that comes with cytoflow or replace it with the one in /usr/lib64. I think there's an underlying issue in conda's QT package -- I'm leaving this bug open so I will remember to fix the packaging.

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

3 participants