Since the AppImage or binary wasn't working for me on my Arch Linux system (I didn't get any audio, communication problem with pipewire perhaps? See #234), I compiled xpilot from scratch. After fixing a small compilation problem (#233) I ran into a segfault somewhere deep in the SSL certificate handling.
The segfault happens one or two seconds after launch, the GUI shows for a bit and shows the 'first time' dialog (which I don't really get the chance to interact with before the segfault happens).
Gdb traceback follows:
Thread 1 "xPilot" received signal SIGSEGV, Segmentation fault.
0x0000555556168380 in ASN1_OCTET_STRING_it ()
(gdb) bt
#0 0x0000555556168380 in ASN1_OCTET_STRING_it ()
#1 0x00007fff9abdfad3 in operator() (__closure=<optimized out>)
at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qx509_openssl.cpp:255
#2 QScopeGuard<QTlsPrivate::(anonymous namespace)::x509ExtensionToValue(X509_EXTENSION*)::<lambda()> >::~QScopeGuard
(this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/tools/qscopeguard.h:41
#3 QTlsPrivate::(anonymous namespace)::x509ExtensionToValue (ext=0x555556ddadb0)
at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qx509_openssl.cpp:351
#4 QTlsPrivate::X509CertificateOpenSSL::convertExtension (ext=0x555556ddadb0)
at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qx509_openssl.cpp:929
#5 QTlsPrivate::X509CertificateOpenSSL::parseExtensions (this=<optimized out>)
at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qx509_openssl.cpp:906
#6 QTlsPrivate::X509CertificateOpenSSL::certificateFromX509 (x509=x509@entry=0x5555565bc3a0)
at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qx509_openssl.cpp:573
#7 0x00007fff9abe0a7b in QTlsPrivate::X509CertificateOpenSSL::certificatesFromPem (pem=..., count=-1)
at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qx509_openssl.cpp:746
#8 0x00007ffff663cd94 in QSslCertificate::fromData (data=..., format=format@entry=QSsl::Pem)
at /usr/src/debug/qt6-base/qtbase/src/network/ssl/qsslcertificate.cpp:757
#9 0x00007ffff663e0ad in QSslCertificate::fromPath
(path=<optimized out>, format=format@entry=QSsl::Pem, syntax=syntax@entry=QSslCertificate::PatternSyntax::FixedString)
at /usr/src/debug/qt6-base/qtbase/src/network/ssl/qsslcertificate.cpp:671
#10 0x00007fff9abd7b91 in QTlsPrivate::systemCaCertificates ()
at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qtlsbackend_openssl.cpp:402
#11 0x00007fff9abd8cd0 in QTlsBackendOpenSSL::systemCaCertificates (this=<optimized out>)
at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qtlsbackend_openssl.cpp:417
#12 QTlsBackendOpenSSL::ensureCiphersAndCertsLoaded (this=<optimized out>)
at /usr/src/debug/qt6-base/qtbase/src/plugins/tls/openssl/qtlsbackend_openssl.cpp:221
#13 0x00007ffff66cbdb0 in QSslSocketPrivate::ensureInitialized ()
at /usr/src/debug/qt6-base/qtbase/src/network/ssl/qsslsocket.cpp:2033
#14 QSslSocketPrivate::ensureInitialized () at /usr/src/debug/qt6-base/qtbase/src/network/ssl/qsslsocket.cpp:2026
#15 QSslConfigurationPrivate::defaultConfiguration () at /usr/src/debug/qt6-base/qtbase/src/network/ssl/qsslsocket.cpp:2259
#16 0x00007ffff65fafc9 in QSslConfiguration::defaultConfiguration ()
at /usr/src/debug/qt6-base/qtbase/src/network/ssl/qsslconfiguration.cpp:1095
#17 QNetworkRequest::sslConfiguration (this=0x7fffffffc780)
at /usr/src/debug/qt6-base/qtbase/src/network/access/qnetworkrequest.cpp:784
#18 0x00007ffff65e2502 in QNetworkReplyHttpImpl::QNetworkReplyHttpImpl
(this=0x555556497e00, manager=<optimized out>, request=..., operation=<synthetic pointer>: <optimized out>, outgoingData=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/network/access/qnetworkreplyhttpimpl.cpp:158
#19 QNetworkAccessManager::createRequest
(this=<optimized out>, op=<optimized out>, originalReq=<optimized out>, outgoingData=<optimized out>)
at /usr/src/debug/qt6-base/qtbase/src/network/access/qnetworkaccessmanager.cpp:1318
#20 0x00007ffff65db361 in QNetworkAccessManager::get (this=<optimized out>, request=<optimized out>)
at /usr/src/debug/qt6-base/qtbase/src/network/access/qnetworkaccessmanager.cpp:780
#21 0x00005555556f6bad in auto xpilot::ServerListManager::DownloadStatusInfo(QString const&)::{lambda(auto:1, auto:2)#1}::operator()<QtPromise::QPromiseResolve<QString>, QtPromise::QPromiseReject<QString> >(QtPromise::QPromiseResolve<QString>, QtPromise::QPromiseReject<QString>) const ()
#22 0x00005555556f6e47 in QtPromise::QPromiseBase<QString>::QPromiseBase<xpilot::ServerListManager::DownloadStatusInfo(QString const&)::{lambda(auto:1, auto:2)#1}, 0>(xpilot::ServerListManager::DownloadStatusInfo(QString const&)::{lambda(auto:1, auto:2)#1}) ()
#23 0x00005555556f5fe2 in QtPromise::QPromise<QString>::QPromise<xpilot::ServerListManager::DownloadStatusInfo(QString const&)::{lambda(auto:1, auto:2)#1}>(xpilot::ServerListManager::DownloadStatusInfo(QString const&)::{lambda(auto:1, auto:2)#1}&&) ()
#24 0x00005555556f5bd6 in xpilot::ServerListManager::DownloadStatusInfo(QString const&) ()
#25 0x00005555556f5a8c in xpilot::ServerListManager::PerformServerListDownload(QString const&) ()
#26 0x000055555564a326 in xpilot::Main(int, char**)::{lambda()#1}::operator()() const ()
PS: It also seems that because of these failed attempts, I might be locked out by the vatsim server currently? I get "Network server address returned null, possibly due to a failed DNS lookup." in the AppImage-version of the client now.
Since the AppImage or binary wasn't working for me on my Arch Linux system (I didn't get any audio, communication problem with pipewire perhaps? See #234), I compiled xpilot from scratch. After fixing a small compilation problem (#233) I ran into a segfault somewhere deep in the SSL certificate handling.
The segfault happens one or two seconds after launch, the GUI shows for a bit and shows the 'first time' dialog (which I don't really get the chance to interact with before the segfault happens).
Gdb traceback follows:
PS: It also seems that because of these failed attempts, I might be locked out by the vatsim server currently? I get "Network server address returned null, possibly due to a failed DNS lookup." in the AppImage-version of the client now.