plexinc / plex-media-player

Next generation Plex Desktop/Embedded Client
GNU General Public License v2.0
1.16k stars 170 forks source link

Core Dump / "Aborted" on Raspberry Pi 4 due to a QT configuration issue #1008

Closed elpollodiablo closed 3 years ago

elpollodiablo commented 3 years ago

Hand compiled plex-media-player on Raspberry Pi 4 would core dump on startup.

I followed the instructions here:

https://forums.plex.tv/t/instructions-how-to-build-plex-media-player-on-raspberry-pi-4-b-under-raspbian/562633

but used raspian buster lite instead of desktop. This may also be why I'm being hit with this issue, and others aren't. But since not everyone wants to have the whole desktop distro on their pi, I'll leave this here anyway.

When started with plexmediaplayer --terminal, the log lines before "Aborted" would usually be

2021-01-22 19:32:45 [ DEBUG ] KonvergoWindow.cpp @ 219 - Window state when saving geometry: QWindow::Hidden
2021-01-22 19:32:45 [ DEBUG ] KonvergoWindow.cpp @ 230 - Saving window geometry: QRect(320,180 1280x720)
2021-01-22 19:32:45 [ DEBUG ] KonvergoWindow.cpp @ 518 - QWindow visibility set to QWindow::Windowed
Aborted

but sometimes, there would be the additional line:

2021-01-22 19:32:45 [ FATAL ] Log.cpp @ 41 - "EGL Error : Could not create the egl surface: error = 0x3003\n"
Aborted

The coredump would show:

[Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".

Core was generated by `plexmediaplayer'. Program terminated with signal SIGABRT, Aborted.

0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50

50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. [Current thread is 1 (Thread 0xa578d010 (LWP 887))] (gdb) (gdb) where

0 0xaf615f24 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50

1 0xaf601230 in __GI_abort () at abort.c:79

2 0xaf97a5bc in QMessageLogger::fatal(char const*, ...) const () at /usr/lib/qt5.12//lib/libQt5Core.so.5

3 0xa3d7bf34 in QEglFSWindow::create() () at /usr/lib/qt5.12/plugins/platforms/../../lib/libQt5EglFSDeviceIntegration.so.5

4 0xa3d8283c in QEglFSIntegration::createPlatformWindow(QWindow*) const () at /usr/lib/qt5.12/plugins/platforms/../../lib/libQt5EglFSDeviceIntegration.so.5

5 0xafef5c98 in QWindowPrivate::create(bool, unsigned int) () at /usr/lib/qt5.12//lib/libQt5Gui.so.5

6 0xafef74b4 in QWindowPrivate::setVisible(bool) () at /usr/lib/qt5.12//lib/libQt5Gui.so.5

7 0x000a80d4 in KonvergoWindow::updateWindowState(bool) (this=0xe67010, saveGeo=false) at /home/pi/pmp/plex-media-player/src/ui/KonvergoWindow.cpp:477

8 0x000a4578 in KonvergoWindow::KonvergoWindow(QWindow*) (this=0xe67010, parent=0x0) at /home/pi/pmp/plex-media-player/src/ui/KonvergoWindow.cpp:132

9 0x000ad98c in QQmlPrivate::QQmlElement::QQmlElement() (this=0xe67010) at /usr/lib/qt5.12/include/QtQml/qqmlprivate.h:103

10 0x000ad9f8 in QQmlPrivate::createInto(void*) (memory=0xe67010) at /usr/lib/qt5.12/include/QtQml/qqmlprivate.h:124

11 0xb0755320 in QQmlType::create(QObject, void, unsigned int) const () at /usr/lib/qt5.12//lib/libQt5Qml.so.5

12 0xb07b8ad0 in QQmlObjectCreator::createInstance(int, QObject*, bool) () at /usr/lib/qt5.12//lib/libQt5Qml.so.5

13 0xb07b9e44 in QQmlObjectCreator::create(int, QObject, QQmlInstantiationInterrupt) () at /usr/lib/qt5.12//lib/libQt5Qml.so.5

14 0xb073ce24 in QQmlComponentPrivate::beginCreate(QQmlContextData*) () at /usr/lib/qt5.12//lib/libQt5Qml.so.5

15 0xb073ae48 in QQmlComponent::create(QQmlContext*) () at /usr/lib/qt5.12//lib/libQt5Qml.so.5

16 0xb07aa084 in QQmlApplicationEnginePrivate::finishLoad(QQmlComponent*) () at /usr/lib/qt5.12//lib/libQt5Qml.so.5

17 0xb07aa2f0 in QQmlApplicationEnginePrivate::startLoad(QUrl const&, QByteArray const&, bool) () at /usr/lib/qt5.12//lib/libQt5Qml.so.5

18 0xb07aa334 in QQmlApplicationEngine::load(QUrl const&) () at /usr/lib/qt5.12//lib/libQt5Qml.so.5

19 0x00047da4 in main(int, char**) (argc=1, argv=0xbeb2c674) at /home/pi/pmp/plex-media-player/src/main.cpp:243

What fixed it - and I don't know why - was QT_QPA_PLATFORM=xcb which I found somewhere on the internet. Maybe this could make it into the docs or in some other way help the issue.

mseeley commented 3 years ago

Thanks for the feedback @elpollodiablo. We don't support the Pi 4 ourselves. Please submit any changes you'd recommend as a pull request.