dreamworksanimation / openmoonray

MoonRay is DreamWorks’ open-source, award-winning, state-of-the-art production MCRT renderer.
https://openmoonray.org/
Apache License 2.0
4.32k stars 254 forks source link

_GLIBCXX_ASSERTIONS flag causes core dump #154

Open adro79 opened 6 months ago

adro79 commented 6 months ago

Hi there,

I'm working on a Fedora RPM package for OpenMoonray. By default, it adds some compiler flags for hardening and debugging and, in this case, one of them (_GLIBCXX_ASSERTIONS) is causing the build to crash:

/usr/include/c++/14/bits/basic_string.h:1352: std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::back() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; reference = char&]: Assertion '!empty()' failed.
[1]    302750 IOT instruction (core dumped)  ./moonray

This is the output of gdb:

/usr/include/c++/14/bits/basic_string.h:1352: std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::back() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; reference = char&]: Assertion '!empty()' failed.

Program received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
Downloading source file /usr/src/debug/glibc-2.39-13.fc40.x86_64/nptl/pthread_kill.c
44        return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
Missing separate debuginfos, use: dnf debuginfo-install cuda-opencl-12-4-12.4.127-1.x86_64 ffmpeg-libs-6.1.1-8.fc40.x86_64 libvdpau-1.5-11.fc40.x86_64 x264-libs-0.164-13.20231001git31e19f92.fc40.x86_64 x265-libs-3.6-2.fc40.x86_64
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007fffe4cab1b3 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:78
#2  0x00007fffe4c5365e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007fffe4c3b902 in __GI_abort () at abort.c:79
#4  0x00007fffe4ed9d50 in std::__glibcxx_assert_fail (file=<optimized out>, line=<optimized out>, function=<optimized out>, condition=<optimized out>)
    at ../../../../../libstdc++-v3/src/c++11/assert_fail.cc:41
#5  0x00007ffff7ca5d3f in scene_rdl2::grid_util::ParserItem::ParserItem(scene_rdl2::grid_util::ParserItem::ItemType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<bool (scene_rdl2::grid_util::Arg&)> const&) ()
    at /home/adro/rpmbuild/BUILDROOT/openmoonray-1.5.0.0-1.fc40.x86_64/opt/openmoonray/bin/../lib64/librendering_rndr.so
#6  0x00007ffff7cbe9a0 in scene_rdl2::grid_util::ParserItem& std::vector<scene_rdl2::grid_util::ParserItem, std::allocator<scene_rdl2::grid_util::ParserItem> >::emplace_back<scene_rdl2::grid_util::ParserItem::ItemType, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<bool (scene_rdl2::grid_util::Arg&)> >(scene_rdl2::grid_util::ParserItem::ItemType&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<bool (scene_rdl2::grid_util::Arg&)>&&) ()
    at /home/adro/rpmbuild/BUILDROOT/openmoonray-1.5.0.0-1.fc40.x86_64/opt/openmoonray/bin/../lib64/librendering_rndr.so
#7  0x00007ffff7d26cd2 in moonray::rndr::RenderOptions::parserConfigure() ()
    at /home/adro/rpmbuild/BUILDROOT/openmoonray-1.5.0.0-1.fc40.x86_64/opt/openmoonray/bin/../lib64/librendering_rndr.so
#8  0x00007ffff7d256de in moonray::rndr::RenderOptions::RenderOptions() ()
    at /home/adro/rpmbuild/BUILDROOT/openmoonray-1.5.0.0-1.fc40.x86_64/opt/openmoonray/bin/../lib64/librendering_rndr.so
#9  0x00007ffff7fb9777 in moonray::RaasApplication::RaasApplication() ()
    at /home/adro/rpmbuild/BUILDROOT/openmoonray-1.5.0.0-1.fc40.x86_64/opt/openmoonray/bin/../lib64/libapplication.so
#10 0x0000000000404fdb in main ()

Tested with v1.5.0.0 on an updated Fedora 40 system.