Skip to content

[Bug]: Crash in RvApplication::newSessionFromFiles while multiple displays are connected. #1211

@pjurkas

Description

@pjurkas

What happened?

Some users are experiencing OpenRV crashing at startup (SIGSEGV) when multiple monitors are connected to theirs' computers. I was trying to reproduce it on my machine, but I was not successfull. It might depend on how the monitors are setup in GNOME config. This is the callstack at the SIGSEGV:

#0  0x00007ffff7386230 in QScreen::geometry() const () at /spfs/lib/openrv/lib/libQt5Gui.so.5
#1  0x00000000008cd4a8 in Rv::RvApplication::newSessionFromFiles(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) ()
#2  0x00000000008cd995 in Rv::RvApplication::runCreateSession() ()
#3  0x00007ffff6f7924d in ??? () at /spfs/lib/openrv/lib/libQt5Core.so.5
#4  0x00007ffff6f7cf3a in QTimer::timeout(QTimer::QPrivateSignal) () at /spfs/lib/openrv/lib/libQt5Core.so.5
#5  0x00007ffff6f6f61f in QObject::event(QEvent*) () at /spfs/lib/openrv/lib/libQt5Core.so.5
#6  0x00007ffff7a47b6f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /spfs/lib/openrv/lib/libQt5Widgets.so.5
#7  0x00007ffff6f44ef0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /spfs/lib/openrv/lib/libQt5Core.so.5
#8  0x00007ffff6f9837b in QTimerInfoList::activateTimers() () at /spfs/lib/openrv/lib/libQt5Core.so.5
#9  0x00007ffff6f98b54 in ??? () at /spfs/lib/openrv/lib/libQt5Core.so.5
#10 0x00007fffe9119f4f in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#11 0x00007fffe916f268 in g_main_context_iterate.constprop () at /usr/lib64/libglib-2.0.so.0
#12 0x00007fffe9117713 in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#13 0x00007ffff6f98eb4 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /spfs/lib/openrv/lib/libQt5Core.so.5
#14 0x00007ffff6f43a6b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /spfs/lib/openrv/lib/libQt5Core.so.5
#15 0x00007ffff6f4b67c in QCoreApplication::exec() () at /spfs/lib/openrv/lib/libQt5Core.so.5
#16 0x00000000008396e5 in utf8Main(int, char**) ()
#17 0x00007fffeb4295d0 in __libc_start_call_main () at /usr/lib64/libc.so.6
#18 0x00007fffeb429680 in __libc_start_main_impl () at /usr/lib64/libc.so.6
#19 0x0000000000831d25 in _start ()

Looks like some screen instance is nullptr when calling screen->geometry() inside RvApplication::newSessionFromFiles function.

List all the operating systems versions where this is happening

RHEL 9.5

On what computer hardware is this happening?

NVIDIA Corporation GA102GL [RTX A6000], Intel(R) Xeon(R) Gold 6226R CPU @ 2.90GHz, 64 cores, 187Gi RAM

Relevant console log output

#0  0x00007ffff7386230 in QScreen::geometry() const () at /spfs/lib/openrv/lib/libQt5Gui.so.5
#1  0x00000000008cd4a8 in Rv::RvApplication::newSessionFromFiles(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) ()
#2  0x00000000008cd995 in Rv::RvApplication::runCreateSession() ()
#3  0x00007ffff6f7924d in ??? () at /spfs/lib/openrv/lib/libQt5Core.so.5
#4  0x00007ffff6f7cf3a in QTimer::timeout(QTimer::QPrivateSignal) () at /spfs/lib/openrv/lib/libQt5Core.so.5
#5  0x00007ffff6f6f61f in QObject::event(QEvent*) () at /spfs/lib/openrv/lib/libQt5Core.so.5
#6  0x00007ffff7a47b6f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /spfs/lib/openrv/lib/libQt5Widgets.so.5
#7  0x00007ffff6f44ef0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /spfs/lib/openrv/lib/libQt5Core.so.5
#8  0x00007ffff6f9837b in QTimerInfoList::activateTimers() () at /spfs/lib/openrv/lib/libQt5Core.so.5
#9  0x00007ffff6f98b54 in ??? () at /spfs/lib/openrv/lib/libQt5Core.so.5
#10 0x00007fffe9119f4f in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#11 0x00007fffe916f268 in g_main_context_iterate.constprop () at /usr/lib64/libglib-2.0.so.0
#12 0x00007fffe9117713 in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#13 0x00007ffff6f98eb4 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /spfs/lib/openrv/lib/libQt5Core.so.5
#14 0x00007ffff6f43a6b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /spfs/lib/openrv/lib/libQt5Core.so.5
#15 0x00007ffff6f4b67c in QCoreApplication::exec() () at /spfs/lib/openrv/lib/libQt5Core.so.5
#16 0x00000000008396e5 in utf8Main(int, char**) ()
#17 0x00007fffeb4295d0 in __libc_start_call_main () at /usr/lib64/libc.so.6
#18 0x00007fffeb429680 in __libc_start_main_impl () at /usr/lib64/libc.so.6
#19 0x0000000000831d25 in _start ()

Environment variables

No response

Extra information

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions