Closed paulmelis closed 4 years ago
By the way, the ASAN error was related to the use of the wrong (system-wide) library. I no longer see it after removing the 1.8.5 package
Unless this still occurs on v2.0.0-alpha
or later, I think we can consider this closed.
I'm still seeing this with 01a4e8490cd7bd731bb44ca4bcb94c78d39f048d
--------------------------------------------------
OSPRAY STATUS: #ospray: trying to look up material type 'scivis__OBJMaterial' for the first time
--------------------------------------------------
6972: /home/paulm/software/ospray-superbuild-git/lib/libopenvkl_module_ispc_driver.so: error: symbol lookup error: undefined symbol: ospray_create_material__scivis__OBJMaterial (fatal)
6972: /home/paulm/software/ospray-superbuild-git/lib/libospcommon.so: error: symbol lookup error: undefined symbol: ospray_create_material__scivis__OBJMaterial (fatal)
6972: /home/paulm/software/ospray-superbuild-git/lib/libospray_module_ispc.so: error: symbol lookup error: undefined symbol: ospray_create_material__scivis__OBJMaterial (fatal)
--------------------------------------------------
OSPRAY STATUS: WARNING: unrecognized material type 'scivis__OBJMaterial'.
--------------------------------------------------
Hmmm, can you provide OS/compiler information so we can better reproduce? Did you reinstall the Arch OSPRay package, or is this still without it installed?
GCC 9.1.0 on Arch Linux. This is not using the Arch package, but with a superbuild
Hmmm, that's the same OS/compiler setup I use on my development workstation (specifically, I use Manjaro) and don't see the same problem.
I am able to invoke the superbuild directly with:
mkdir superbuild_ospray
cd superbuild_ospray
cmake [path/to/ospray/source]/scripts/superbuild
cmake --build .
Maybe there's something else in your environment causing the issue? (likely an old OSPRay somewhere on your LD_LIBRARY_PATH
?)
Oh, this isn't at build time. Do the interactive example apps work for you?
I'm using the same set of commands as you for building the superbuild. I don't see any strange visual artifacts or such in the examples, the OBJMaterial works. I double-checked if I have any other ospray libs lying around, but no. Library paths also seem okay:
melis@juggle 21:52:~/software/ospray-superbuild-git/bin$ ldd ./ospTutorialCylinders
linux-vdso.so.1 (0x00007ffe527e2000)
libospray_testing.so.1 => /home/melis/software/ospray-superbuild-git/bin/./../lib/libospray_testing.so.1 (0x00007f22a0c55000)
libospray.so.1 => /home/melis/software/ospray-superbuild-git/bin/./../lib/libospray.so.1 (0x00007f22a0c19000)
libospray_imgui.so => /home/melis/software/ospray-superbuild-git/bin/./../lib/libospray_imgui.so (0x00007f22a0b52000)
libospcommon.so => /home/melis/software/ospray-superbuild-git/bin/./../lib/libospcommon.so (0x00007f22a0b34000)
libtbb.so => /home/melis/software/ospray-superbuild-git/bin/./../lib/libtbb.so (0x00007f22a0aef000)
libtbbmalloc.so => /home/melis/software/ospray-superbuild-git/bin/./../lib/libtbbmalloc.so (0x00007f22a0aaa000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007f22a0a25000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f22a0a20000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f22a08e1000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f22a08c0000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x00007f22a08b3000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00007f22a06ae000)
libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0x00007f22a04a8000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00007f22a049c000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f22a0409000)
libGLU.so.1 => /usr/lib/libGLU.so.1 (0x00007f22a0398000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f22a01b0000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f22a0068000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f22a004e000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f229fe8b000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f22a0caa000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f229fe61000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f229fe4c000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007f229fe3d000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00007f229fc37000)
libGLX.so.0 => /usr/lib/libGLX.so.0 (0x00007f229fc04000)
libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x00007f229fb48000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f229fb43000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f229fb39000)
I can reproduce this with the ospTutorialCylinders
example:
melis@juggle 21:53:~/software/ospray-superbuild-git/bin$ ./ospTutorialCylinders --osp:debug 2>&1 | grep -i warning
WARNING: unrecognized material type 'scivis__OBJMaterial'.
WARNING: unrecognized material type 'scivis__OBJMaterial'.
It's really weird, the actual libs used look fine with respect to the location:
melis@juggle 21:54:~/software/ospray-superbuild-git/bin$ LD_DEBUG=libs ./ospTutorialCylinders 2>&1 |grep -i libosp
12887: find library=libospray_testing.so.1 [0]; searching
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/tls/haswell/x86_64/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/tls/haswell/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/tls/x86_64/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/tls/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/haswell/x86_64/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/haswell/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/x86_64/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/../lib/tls/haswell/x86_64/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/../lib/tls/haswell/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/../lib/tls/x86_64/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/../lib/tls/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/../lib/haswell/x86_64/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/../lib/haswell/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/../lib/x86_64/libospray_testing.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/../lib/libospray_testing.so.1
12887: find library=libospray.so.1 [0]; searching
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/libospray.so.1
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/../lib/libospray.so.1
12887: find library=libospray_imgui.so [0]; searching
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/libospray_imgui.so
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/../lib/libospray_imgui.so
12887: find library=libospcommon.so [0]; searching
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/libospcommon.so
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/../lib/libospcommon.so
12887: calling init: /home/melis/software/ospray-superbuild-git/bin/../lib/libospcommon.so
12887: calling init: /home/melis/software/ospray-superbuild-git/bin/../lib/libospray_imgui.so
12887: calling init: /home/melis/software/ospray-superbuild-git/bin/../lib/libospray.so.1
12887: calling init: /home/melis/software/ospray-superbuild-git/bin/../lib/libospray_testing.so.1
12887: find library=libospray_module_ispc.so [0]; searching
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/libospray_module_ispc.so
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/../lib/libospray_module_ispc.so
12887: calling init: /home/melis/software/ospray-superbuild-git/bin/../lib/libospray_module_ispc.so
12887: find library=libospray_testing.so [0]; searching
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/libospray_testing.so
12887: trying file=/home/melis/software/ospray-superbuild-git/bin/../lib/libospray_testing.so
12887: /home/melis/software/ospray-superbuild-git/bin/../lib/libospcommon.so: error: symbol lookup error: undefined symbol: ospray_create_material__scivis__OBJMaterial (fatal)
12887: /home/melis/software/ospray-superbuild-git/bin/../lib/libospray_module_ispc.so: error: symbol lookup error: undefined symbol: ospray_create_material__scivis__OBJMaterial (fatal)
12887: /home/melis/software/ospray-superbuild-git/bin/../lib/libospray_testing.so.1: error: symbol lookup error: undefined symbol: ospray_create_material__scivis__OBJMaterial (fatal)
12887: /home/melis/software/ospray-superbuild-git/bin/../lib/libospcommon.so: error: symbol lookup error: undefined symbol: ospray_create_material__scivis__OBJMaterial (fatal)
12887: /home/melis/software/ospray-superbuild-git/bin/../lib/libospray_module_ispc.so: error: symbol lookup error: undefined symbol: ospray_create_material__scivis__OBJMaterial (fatal)
12887: /home/melis/software/ospray-superbuild-git/bin/../lib/libospray_testing.so.1: error: symbol lookup error: undefined symbol: ospray_create_material__scivis__OBJMaterial (fatal)
12887: calling fini: /home/melis/software/ospray-superbuild-git/bin/../lib/libospray_testing.so.1 [0]
12887: calling fini: /home/melis/software/ospray-superbuild-git/bin/../lib/libospray_imgui.so [0]
12887: calling fini: /home/melis/software/ospray-superbuild-git/bin/../lib/libospray_module_ispc.so [0]
12887: calling fini: /home/melis/software/ospray-superbuild-git/bin/../lib/libospray.so.1 [0]
12887: calling fini: /home/melis/software/ospray-superbuild-git/bin/../lib/libospcommon.so [0]
I also had just cleaned (rm -rf) my superbuild and rebuilt it, as I find it doesn't reliably rebuild after a git update.
And I really see no symbol ospray_create_material__scivis__OBJMaterial
in any of the libs:
melis@juggle 21:56:~/software/ospray-superbuild-git/bin$ grep ospray_create_material__scivis__OBJMaterial ../lib/lib*
melis@juggle 21:56:~/software/ospray-superbuild-git/bin$
We have simplified our material creation in v2.0
, so I believe this is obsolete. We used to have a fallback mechanism that would attempt to create a "default"
material if the input string wasn't a valid material. We changed this to be a hard error now, in favor of consistency and being less surprising.
FYI, only "obj"
is supported as a scivis
material type (i.e. "OBJMaterial"
is not a valid string).
This is some fallout from running my own code under AddressSanitizer, which detected a null pointer access error somewhere in the OSPRay code. However, looking at the ASAN stack trace I noticed the OSPRay shared libs came from the older 1.8.5 global installation of OSPRay (Arch package) and not my manually built devel version I have stored somewhere else.
I removed the 1.8.5 package and now looking at OSPRay's debug output I see this (some unrelated stuff deleted):
So
scivis__OBJMaterial
cannot be found, which seems a bit odd. Checking the relevant output of running withLD_DEBUG=libs
:So it seems there really is an issue related to the scivis OBJMaterial?