Describe the bug
When I start helm (the synthesizer), I get MESA errors:
libGL error: MESA-LOADER: failed to open iris (search paths /run/opengl-driver/lib/dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open iris (search paths /run/opengl-driver/lib/dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open swrast (search paths /run/opengl-driver/lib/dri)
libGL error: failed to load driver: swrast
and the window opens, but the GUI doesn't show.
Additional context
Similar to #87967, when I use LD_PRELOAD to load libstdc++ from gcc-9 instead of gcc-8 it works!
Notify maintainers
@magnetophon
Metadata
"x86_64-linux"Linux 5.7.15, NixOS, 20.09.git.1e3f09feaa5 (Nightingale)yesyesnix-env (Nix) 2.3.7"nixos-20.03pre194293.2436c27541b"/home/aengelen/nixpkgsSee https://github.com/NixOS/nixpkgs/issues/94315#issuecomment-673402072 (and following comments) ;)
If you enable the verbose output (https://github.com/NixOS/nixpkgs/issues/94315#issuecomment-667942575) you'll likely get something similar.
Also: Feel free to open a new issue if you find the source of this impurity (though this might be too time to find). Unfortunately we're getting a lot of those glibc impurities lately... :o
See #94315 (comment) (and following comments) ;)
Good additional input, thanks.
If you enable the verbose output (#94315 (comment)) you'll likely get something similar.
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/aengelen/.drirc: No such file or directory.
libGL: using driver i915 for 14
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/aengelen/.drirc: No such file or directory.
libGL: using driver i915 for 14
libGL: pci id for fd 14: 8086:3e9b, driver iris
libGL: MESA-LOADER: failed to open /run/opengl-driver/lib/dri/iris_dri.so: /nix/store/gp8q4g5q5gd9rn75ghmzgykgx3wx82lz-gcc-8.4.0-lib/lib/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /nix/store/h9k66011q5lakgl67prkknxrbx33rr38-llvm-9.0.1-lib/lib/libLLVM-9.so)
libGL error: MESA-LOADER: failed to open iris (search paths /run/opengl-driver/lib/dri)
libGL error: failed to load driver: iris
libGL: using driver i915 for 14
libGL: Can't open configuration file /etc/drirc: No such file or directory.
libGL: Can't open configuration file /home/aengelen/.drirc: No such file or directory.
libGL: using driver i915 for 14
libGL: pci id for fd 14: 8086:3e9b, driver iris
libGL: MESA-LOADER: failed to open /run/opengl-driver/lib/dri/iris_dri.so: /nix/store/gp8q4g5q5gd9rn75ghmzgykgx3wx82lz-gcc-8.4.0-lib/lib/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /nix/store/h9k66011q5lakgl67prkknxrbx33rr38-llvm-9.0.1-lib/lib/libLLVM-9.so)
libGL error: MESA-LOADER: failed to open iris (search paths /run/opengl-driver/lib/dri)
libGL error: failed to load driver: iris
libGL: MESA-LOADER: failed to open /run/opengl-driver/lib/dri/swrast_dri.so: /nix/store/gp8q4g5q5gd9rn75ghmzgykgx3wx82lz-gcc-8.4.0-lib/lib/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /nix/store/h9k66011q5lakgl67prkknxrbx33rr38-llvm-9.0.1-lib/lib/libLLVM-9.so)
libGL error: MESA-LOADER: failed to open swrast (search paths /run/opengl-driver/lib/dri)
libGL error: failed to load driver: swrast
So mainly
libGL: MESA-LOADER: failed to open /run/opengl-driver/lib/dri/iris_dri.so: /nix/store/gp8q4g5q5gd9rn75ghmzgykgx3wx82lz-gcc-8.4.0-lib/lib/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /nix/store/h9k66011q5lakgl67prkknxrbx33rr38-llvm-9.0.1-lib/lib/libLLVM-9.so)
Also: Feel free to open a new issue if you find the source of this impurity (though this might be too time to find). Unfortunately we're getting a lot of those glibc impurities lately... :o
Right - I don't think there's different nixpkgs revisions in play side-by-side here, but I'll try and double-check.
I cannot reproduce these.
Oh weird. I was on nixos-unstable (1e3f09feaa5667be4ed6eca96a984b4642420b83).
Ok, I had another look and this might indeed be a problem with Nixpkgs since we still build helm with GCC 8 while GCC 9 is the default:
helm = callPackage ../applications/audio/helm {
stdenv = gcc8Stdenv;
};
Details
$ # Helm loads libstdc++ though GCC 8:
$ strings /nix/store/gp8q4g5q5gd9rn75ghmzgykgx3wx82lz-gcc-8.4.0-lib/lib/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.14
GLIBC_2.18
GLIBC_2.16
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
$ # While iris would load libstdc++ from GCC 9:
$ strings /nix/store/v589pqjhvxrj73g3r0xb41yr84z5pwb7-gcc-9.3.0-lib/lib/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.14
GLIBC_2.6
GLIBC_2.4
GLIBC_2.18
GLIBC_2.16
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
If Helm can be built with GCC 9 that should fix the crash in theory.
cc @magnetophon (maintainer)
Edit: Oh and the only dependency on GLIBCXX_3.4.26 is actually through /nix/store/h9k66011q5lakgl67prkknxrbx33rr38-llvm-9.0.1-lib/lib/libLLVM-9.so like the error says:
/nix/store/h9k66011q5lakgl67prkknxrbx33rr38-llvm-9.0.1-lib/lib/libLLVM-9.so:
[...]
libstdc++.so.6 (GLIBCXX_3.4.26) => /nix/store/v589pqjhvxrj73g3r0xb41yr84z5pwb7-gcc-9.3.0-lib/lib/libstdc++.so.6
And AFAIK (#93946) /nix/store/hwqrkli3j96kfb0vjm7a3rxx7vz7ns5b-mesa-20.1.4-drivers/lib/dri/iris_dri.so should actually only load libLLVM-9.so to try to read its build ID as fallback for the shader cache invalidation.
If Helm can be built with GCC 9 that should fix the crash in theory.
cc @magnetophon (maintainer)
Not sure how I can help, since I cannot reproduce the crash.
Oops, didn't realize that you already replied before my ping. My request was basically only to try to build helm without stdenv = gcc8Stdenv; (was added in 095f2b9805552b166bdd3d84a9b066efdfdb94c7, most likely because the build was failing) if you have time (that be useful regardless of the crash). I assume that you cannot reproduce the crash because your Mesa version is either older or you don't use the Iris driver (Intel iGPUs).
@primeos That gives me:
unpacking sources
unpacking source archive /nix/store/bfa0j9rmmx9zjh9jq527pnck827gc81p-source
source root is source
patching sources
configuring
configure flags: --prefix=/nix/store/6idckxn7gilnzrzbcaj8q4cfb0w1vpci-helm-0.9.0
building
make -C builds/linux/LV2 CONFIG=Release DEBCXXFLAGS="" DEBLDFLAGS="" SIMDFLAGS="-msse2"
make[1]: Entering directory '/tmp/nix-build-helm-0.9.0.drv-0/source/builds/linux/LV2'
make -f Makefile.binary CONFIG=Release DEBCXXFLAGS="" DEBLDFLAGS=""
make[2]: Entering directory '/tmp/nix-build-helm-0.9.0.drv-0/source/builds/linux/LV2'
Compiling juce_LV2_Wrapper.cpp
In file included from ../../../JUCE/modules/juce_graphics/juce_graphics.h:111,
from ../../../JUCE/modules/juce_gui_basics/juce_gui_basics.h:57,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/../utility/../juce_audio_plugin_client.h:53,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/../utility/juce_IncludeModuleHeaders.h:29,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp:80:
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function 'juce::uint8& juce::PixelARGB::getAlpha()':
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:114:77: error: cannot bind packed field '((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[3]' to 'juce::uint8&' {aka 'unsigned char&'}
114 | forcedinline uint8& getAlpha() noexcept { return comps [indexA]; }
| ~~~~~~~~~~~~~^
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function 'juce::uint8& juce::PixelARGB::getRed()':
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:115:77: error: cannot bind packed field '((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[2]' to 'juce::uint8&' {aka 'unsigned char&'}
115 | forcedinline uint8& getRed() noexcept { return comps [indexR]; }
| ~~~~~~~~~~~~~^
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function 'juce::uint8& juce::PixelARGB::getGreen()':
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:116:77: error: cannot bind packed field '((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[1]' to 'juce::uint8&' {aka 'unsigned char&'}
116 | forcedinline uint8& getGreen() noexcept { return comps [indexG]; }
| ~~~~~~~~~~~~~^
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function 'juce::uint8& juce::PixelARGB::getBlue()':
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:117:77: error: cannot bind packed field '((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[0]' to 'juce::uint8&' {aka 'unsigned char&'}
117 | forcedinline uint8& getBlue() noexcept { return comps [indexB]; }
| ~~~~~~~~~~~~~^
In file included from ../../../JUCE/modules/juce_gui_basics/juce_gui_basics.h:181,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/../utility/../juce_audio_plugin_client.h:53,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/../utility/juce_IncludeModuleHeaders.h:29,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp:80:
../../../JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function 'void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)':
../../../JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:203:23: warning: invalid use of incomplete type 'class juce::LookAndFeel'
203 | getLookAndFeel().drawLasso (g, *this);
| ~~~~~~~~~~~~~~^~
In file included from ../../../JUCE/modules/juce_audio_plugin_client/LV2/../utility/../juce_audio_plugin_client.h:53,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/../utility/juce_IncludeModuleHeaders.h:29,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp:80:
../../../JUCE/modules/juce_gui_basics/juce_gui_basics.h:117:7: note: forward declaration of 'class juce::LookAndFeel'
117 | class LookAndFeel;
| ^~~~~~~~~~~
In file included from ../../../JUCE/modules/juce_graphics/juce_graphics.h:133,
from ../../../JUCE/modules/juce_gui_basics/juce_gui_basics.h:57,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/../utility/../juce_audio_plugin_client.h:53,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/../utility/juce_IncludeModuleHeaders.h:29,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp:80:
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h: In instantiation of 'void juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType, replaceExisting>::replaceLine(juce::PixelRGB*, juce::PixelARGB, int) const [with PixelType = juce::PixelRGB; bool replaceExisting = true]':
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:637:17: required from 'void juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType, replaceExisting>::handleEdgeTableLineFull(int, int) const [with PixelType = juce::PixelRGB; bool replaceExisting = true]'
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1890:29: required from 'void juce::RenderingHelpers::ClipRegions<SavedStateType>::RectangleListRegion::SubRectangleIterator::iterate(Renderer&) const [with Renderer = juce::RenderingHelpers::EdgeTableFillers::SolidColour<juce::PixelRGB, true>; SavedStateType = juce::RenderingHelpers::SoftwareRendererSavedState]'
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1514:13: required from 'void juce::RenderingHelpers::EdgeTableFillers::renderSolidFill(Iterator&, const juce::Image::BitmapData&, juce::PixelARGB, bool, DestPixelType*) [with Iterator = juce::RenderingHelpers::ClipRegions<juce::RenderingHelpers::SoftwareRendererSavedState>::RectangleListRegion::SubRectangleIterator; DestPixelType = juce::PixelRGB]'
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:2556:67: required from 'void juce::RenderingHelpers::SoftwareRendererSavedState::fillWithSolidColour(IteratorType&, juce::PixelARGB, bool) const [with IteratorType = juce::RenderingHelpers::ClipRegions<juce::RenderingHelpers::SoftwareRendererSavedState>::RectangleListRegion::SubRectangleIterator]'
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1815:13: required from 'void juce::RenderingHelpers::ClipRegions<SavedStateType>::RectangleListRegion::fillRectWithColour(SavedStateType&, const juce::Rectangle<int>&, juce::PixelARGB, bool) const [with SavedStateType = juce::RenderingHelpers::SoftwareRendererSavedState]'
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1812:14: required from here
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:682:34: warning: converting a packed 'juce::PixelRGB' pointer (alignment 1) to a 'int' pointer (alignment 4) may result in an unaligned pointer value [-Waddress-of-packed-member]
682 | int* d = reinterpret_cast<int*> (dest);
| ^
In file included from ../../../JUCE/modules/juce_graphics/juce_graphics.h:111,
from ../../../JUCE/modules/juce_gui_basics/juce_gui_basics.h:57,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/../utility/../juce_audio_plugin_client.h:53,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/../utility/juce_IncludeModuleHeaders.h:29,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp:80:
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:362:17: note: defined here
362 | class JUCE_API PixelRGB
| ^~~~~~~~
In file included from ../../../JUCE/modules/juce_graphics/juce_graphics.h:133,
from ../../../JUCE/modules/juce_gui_basics/juce_gui_basics.h:57,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/../utility/../juce_audio_plugin_client.h:53,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/../utility/juce_IncludeModuleHeaders.h:29,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp:80:
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h: In instantiation of 'void juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType, replaceExisting>::replaceLine(juce::PixelRGB*, juce::PixelARGB, int) const [with PixelType = juce::PixelRGB; bool replaceExisting = false]':
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:637:17: required from 'void juce::RenderingHelpers::EdgeTableFillers::SolidColour<PixelType, replaceExisting>::handleEdgeTableLineFull(int, int) const [with PixelType = juce::PixelRGB; bool replaceExisting = false]'
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1890:29: required from 'void juce::RenderingHelpers::ClipRegions<SavedStateType>::RectangleListRegion::SubRectangleIterator::iterate(Renderer&) const [with Renderer = juce::RenderingHelpers::EdgeTableFillers::SolidColour<juce::PixelRGB, false>; SavedStateType = juce::RenderingHelpers::SoftwareRendererSavedState]'
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1519:13: required from 'void juce::RenderingHelpers::EdgeTableFillers::renderSolidFill(Iterator&, const juce::Image::BitmapData&, juce::PixelARGB, bool, DestPixelType*) [with Iterator = juce::RenderingHelpers::ClipRegions<juce::RenderingHelpers::SoftwareRendererSavedState>::RectangleListRegion::SubRectangleIterator; DestPixelType = juce::PixelRGB]'
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:2556:67: required from 'void juce::RenderingHelpers::SoftwareRendererSavedState::fillWithSolidColour(IteratorType&, juce::PixelARGB, bool) const [with IteratorType = juce::RenderingHelpers::ClipRegions<juce::RenderingHelpers::SoftwareRendererSavedState>::RectangleListRegion::SubRectangleIterator]'
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1815:13: required from 'void juce::RenderingHelpers::ClipRegions<SavedStateType>::RectangleListRegion::fillRectWithColour(SavedStateType&, const juce::Rectangle<int>&, juce::PixelARGB, bool) const [with SavedStateType = juce::RenderingHelpers::SoftwareRendererSavedState]'
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:1812:14: required from here
../../../JUCE/modules/juce_graphics/native/juce_RenderingHelpers.h:682:34: warning: converting a packed 'juce::PixelRGB' pointer (alignment 1) to a 'int' pointer (alignment 4) may result in an unaligned pointer value [-Waddress-of-packed-member]
682 | int* d = reinterpret_cast<int*> (dest);
| ^
In file included from ../../../JUCE/modules/juce_graphics/juce_graphics.h:111,
from ../../../JUCE/modules/juce_gui_basics/juce_gui_basics.h:57,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/../utility/../juce_audio_plugin_client.h:53,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/../utility/juce_IncludeModuleHeaders.h:29,
from ../../../JUCE/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp:80:
../../../JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:362:17: note: defined here
362 | class JUCE_API PixelRGB
| ^~~~~~~~
make[2]: *** [Makefile.binary:252: build/intermediate/Release/juce_LV2_Wrapper_fb90cd9c.o] Error 1
make[2]: Leaving directory '/tmp/nix-build-helm-0.9.0.drv-0/source/builds/linux/LV2'
make[1]: *** [Makefile:8: binary] Error 2
make[1]: Leaving directory '/tmp/nix-build-helm-0.9.0.drv-0/source/builds/linux/LV2'
make: *** [Makefile:83: lv2] Error 2
builder for '/nix/store/f2xdrzbmpd64g5f4fay4gd5006shara0-helm-0.9.0.drv' failed with exit code 2
error: build of '/nix/store/f2xdrzbmpd64g5f4fay4gd5006shara0-helm-0.9.0.drv' on 'ssh://nxb-4' failed: builder for '/nix/store/f2xdrzbmpd64g5f4fay4gd5006shara0-helm-0.9.0.drv' failed with exit code 2
builder for '/nix/store/f2xdrzbmpd64g5f4fay4gd5006shara0-helm-0.9.0.drv' failed with exit code 1
error: build of '/nix/store/f2xdrzbmpd64g5f4fay4gd5006shara0-helm-0.9.0.drv' failed
there is already an upstream PR with a fix, so #95862 was easy to make.
Most helpful comment
there is already an upstream PR with a fix, so #95862 was easy to make.