| Summary: | A custom application using Qt and Phonon (but not KDE) sometimes crashes in Phonon code upon exit | ||
|---|---|---|---|
| Product: | [Unmaintained] phonon-backend-gstreamer | Reporter: | lthode |
| Component: | general | Assignee: | Daniel Vrátil <dvratil> |
| Status: | RESOLVED UNMAINTAINED | ||
| Severity: | crash | CC: | myriam, romain.perier, sitter, tdfischer |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | 4.8 | ||
| Platform: | RedHat Enterprise Linux | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | Backtrace of the crash (all threads, very mildly redacted to protect the innocent) | ||
|
Description
lthode
2020-10-06 18:27:03 UTC
My investigation of the issue pointed me at a bad metaObject within the devnull NoDebugStream (derived from QIODevice). Following that trail to gstreamer/debug_p.h led me to notice that the Q_OBJECT macro in NoDebugStream's definition is commented out (in master, even!), which looks wrong since QIODevice is a QObject in the normal case (the only way it isn't is if QT_NO_QOBJECT is defined when qiodevice.h is #included). Is there a good reason for NoDebugStream to be defined the way it is, or am I onto something here? (NB: https://marcmutz.wordpress.com/effective-qt/subclassing/ seems to agree with what I am seeing that Q_OBJECT should have been there all along...) A bit of a clarification on the investigation -- the bogus metaObject I mentioned stems from the QObject::d pointer within devnull being nullptr (zero-initialized, most likely). Qt4 is long unmaintained. |