FR EN ES PT
Browse forums 
Ankama Trackers

wakfu updater crash on Fedora 30 x86_64

By Anix - MEMBER - August 21, 2019, 17:42:25

Hi,

I have downloaded and unpacked wakfu-amd64.tar.gz into my "/opt" directory. When I launch it, I get a segmentation fault in "/opt/Wakfu/transition/libQtNetwork.so.4", here is the stacktrace:

Starting program: /opt/Wakfu/transition/transition
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.29-15.fc30.x86_64
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Using "Noto Sans Lisu" as the default font "Any"
Using "Noto Sans Lisu" as the title font
Using "Noto Sans Lisu" as the default font "Any"
Using "Noto Sans Lisu" as the title font
[New Thread 0x7fffe79d0700 (LWP 11308)]
[New Thread 0x7fffe50d0700 (LWP 11309)]
[New Thread 0x7fffdffff700 (LWP 11310)]

Thread 1 "WakfuUpdater" received signal SIGSEGV, Segmentation fault.
0x00007ffff5f29161 in ?? () from /opt/Wakfu/transition/libQtNetwork.so.4
(gdb) bt
#0  0x00007ffff5f29161 in ?? () from /opt/Wakfu/transition/libQtNetwork.so.4
#1  0x00007ffff5f29390 in ?? () from /opt/Wakfu/transition/libQtNetwork.so.4
#2  0x00007ffff5f29585 in QSslCertificate::fromData(QByteArray const&, QSsl::EncodingFormat) () from /opt/Wakfu/transition/libQtNetwork.so.4
#3  0x00007ffff5f29e36 in QSslCertificate::fromPath(QString const&, QSsl::EncodingFormat, QRegExp:tongueatternSyntax) ()
   from /opt/Wakfu/transition/libQtNetwork.so.4
#4  0x00007ffff5f37d58 in ?? () from /opt/Wakfu/transition/libQtNetwork.so.4
#5  0x00007ffff5f38157 in ?? () from /opt/Wakfu/transition/libQtNetwork.so.4
#6  0x00007ffff5f2904f in QSslCertificate::QSslCertificate(QByteArray const&, QSsl::EncodingFormat) () from /opt/Wakfu/transition/libQtNetwork.so.4
#7  0x00007ffff5f300f6 in ?? () from /opt/Wakfu/transition/libQtNetwork.so.4
#8  0x00007ffff5f303e3 in ?? () from /opt/Wakfu/transition/libQtNetwork.so.4
#9  0x00007ffff5f2ac19 in QSslConfiguration::defaultConfiguration() ()
   from /opt/Wakfu/transition/libQtNetwork.so.4
#10 0x00007ffff5ecac55 in QNetworkRequest::sslConfiguration() const ()
   from /opt/Wakfu/transition/libQtNetwork.so.4
#11 0x00007ffff5eb39d8 in QNetworkAccessManager::createRequest(QNetworkAccessManager::Operation, QNetworkRequest const&, QIODevice*) ()
   from /opt/Wakfu/transition/libQtNetwork.so.4
#12 0x00007ffff75f4b80 in akm::transition::NetworkAccessManager::createRequest(QNetworkAccessManager::Operation, QNetworkRequest const&, QIODevice*) ()
   from /opt/Wakfu/transition/libtransition.so.1
#13 0x00007ffff5eb1db4 in QNetworkAccessManager::get(QNetworkRequest const&ampwink ()
   from /opt/Wakfu/transition/libQtNetwork.so.4
#14 0x00007fffe60eee2d in akm::updater::CarouselModel::loadJson(QUrl const&ampwink ()
   from /opt/Wakfu/transition/plugins/updater/libwakfuinterface.so
#15 0x00007fffe610224f in akm::updater::CommonUpdaterWindow::loadCarousel() ()
   from /opt/Wakfu/transition/plugins/updater/libwakfuinterface.so
#16 0x00007fffe61112d1 in ?? ()
   from /opt/Wakfu/transition/plugins/updater/libwakfuinterface.so
#17 0x00007ffff5b00c5e in QObject::event(QEvent*) ()
   from /opt/Wakfu/transition/libQtCore.so.4
#18 0x00007ffff63ee74a in QWidget::event(QEvent*) ()
   from /opt/Wakfu/transition/libQtGui.so.4
#19 0x00007ffff676d4c6 in QFrame::event(QEvent*) ()
   from /opt/Wakfu/transition/libQtGui.so.4
#20 0x00007ffff67e784b in QAbstractScrollArea::event(QEvent*) ()
   from /opt/Wakfu/transition/libQtGui.so.4
#21 0x00007fffe60fff27 in akm::updater::SkinnableFramelessWindow::event(QEvent*) () from /opt/Wakfu/transition/plugins/updater/libwakfuinterface.so
--Type for more, q to quit, c to continue without paging--
#22 0x00007ffff63a2e2c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /opt/Wakfu/transition/libQtGui.so.4
#23 0x00007ffff63a6f1f in QApplication::notify(QObject*, QEvent*) ()
   from /opt/Wakfu/transition/libQtGui.so.4
#24 0x00007ffff5aecf7e in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /opt/Wakfu/transition/libQtCore.so.4
#25 0x00007ffff5af0d81 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /opt/Wakfu/transition/libQtCore.so.4
#26 0x00007ffff5b1a1b3 in ?? () from /opt/Wakfu/transition/libQtCore.so.4
#27 0x00007ffff530dedd in g_main_context_dispatch ()
   from /lib64/libglib-2.0.so.0
#28 0x00007ffff530e270 in ?? () from /lib64/libglib-2.0.so.0
#29 0x00007ffff530e313 in g_main_context_iteration ()
   from /lib64/libglib-2.0.so.0
#30 0x00007ffff5b1a346 in QEventDispatcherGlib::processEvents(QFlags) () from /opt/Wakfu/transition/libQtCore.so.4
#31 0x00007ffff643ccde in ?? () from /opt/Wakfu/transition/libQtGui.so.4
#32 0x00007ffff5aebbff in QEventLoop::processEvents(QFlags) () from /opt/Wakfu/transition/libQtCore.so.4
#33 0x00007ffff5aebe88 in QEventLoop::exec(QFlags) () from /opt/Wakfu/transition/libQtCore.so.4
#34 0x00007ffff681dfa8 in QDialog::exec() ()
   from /opt/Wakfu/transition/libQtGui.so.4
#35 0x00007fffe571c83e in akm::updater::EulaPlugin::ensureValidated(QString const&ampwink () from /opt/Wakfu/transition/plugins/updater/libeula.so
#36 0x00007fffe5719f25 in akm::updater::EulaPlugin::requestValidation() ()
   from /opt/Wakfu/transition/plugins/updater/libeula.so
#37 0x00007fffe571e818 in akm::updater::EulaPlugin::updaterEvent(QSharedPointer) ()
   from /opt/Wakfu/transition/plugins/updater/libeula.so
#38 0x00007ffff7312916 in akm::updater::UpdaterPluginApi::postEvent(QSharedPointer) ()
   from /opt/Wakfu/transition/liblibupdater.so.1
#39 0x00007ffff730e473 in akm::updater::UpdaterPluginsManagerPrivate::loadPlugins(QList) ()
   from /opt/Wakfu/transition/liblibupdater.so.1
#40 0x00007ffff730f85f in akm::updater::UpdaterPluginsManagerPrivate::loadPlugins(QList) ()
   from /opt/Wakfu/transition/liblibupdater.so.1
#41 0x00007ffff730fdf2 in akm::updater::UpdaterPluginsManager::loadPlugins(bool) () from /opt/Wakfu/transition/liblibupdater.so.1
--Type for more, q to quit, c to continue without paging--
#42 0x00007ffff732228f in ?? () from /opt/Wakfu/transition/liblibupdater.so.1
#43 0x00007ffff5b00c5e in QObject::event(QEvent*) ()
   from /opt/Wakfu/transition/libQtCore.so.4
#44 0x00007ffff63a2e2c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /opt/Wakfu/transition/libQtGui.so.4
#45 0x00007ffff63a6ea4 in QApplication::notify(QObject*, QEvent*) ()
   from /opt/Wakfu/transition/libQtGui.so.4
#46 0x00007ffff5aecf7e in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /opt/Wakfu/transition/libQtCore.so.4
#47 0x00007ffff5af0d81 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /opt/Wakfu/transition/libQtCore.so.4
#48 0x00007ffff5b1a1b3 in ?? () from /opt/Wakfu/transition/libQtCore.so.4
#49 0x00007ffff530dedd in g_main_context_dispatch ()
   from /lib64/libglib-2.0.so.0
#50 0x00007ffff530e270 in ?? () from /lib64/libglib-2.0.so.0
#51 0x00007ffff530e313 in g_main_context_iteration ()
   from /lib64/libglib-2.0.so.0
#52 0x00007ffff5b1a346 in QEventDispatcherGlib::processEvents(QFlags) () from /opt/Wakfu/transition/libQtCore.so.4
#53 0x00007ffff643ccde in ?? () from /opt/Wakfu/transition/libQtGui.so.4
#54 0x00007ffff5aebbff in QEventLoop::processEvents(QFlags) () from /opt/Wakfu/transition/libQtCore.so.4
#55 0x00007ffff5aebe88 in QEventLoop::exec(QFlags) () from /opt/Wakfu/transition/libQtCore.so.4
#56 0x00007ffff5af1058 in QCoreApplication::exec() ()
   from /opt/Wakfu/transition/libQtCore.so.4
#57 0x000000000040523a in ?? ()
#58 0x00007ffff541bf33 in __libc_start_main () from /lib64/libc.so.6
#59 0x0000000000405d71 in ?? ()
#60 0x00007fffffffd618 in ?? ()
#61 0x00007ffff7ffdfa0 in ?? () from /lib64/ld-linux-x86-64.so.2
#62 0x0000000000000001 in ?? ()
#63 0x00007fffffffd9b8 in ?? ()
#64 0x0000000000000000 in ?? ()

the Qt 4 version network library shipped with Wakfu has obviously problem with Fedora 30 SSL configuration. The strace shows it tries to read SSL certificates from Mozilla Foundation CA certificates and fails at it:

stat("/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem", {st_mode=S_IFREG|0444, st_size=205488, ...}) = 0
openat(AT_FDCWD, "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem", O_RDONLY|O_CLOEXEC) = 15
fcntl(15, F_SETFD, FD_CLOEXEC)          = 0
fstat(15, {st_mode=S_IFREG|0444, st_size=205488, ...}) = 0
fstat(15, {st_mode=S_IFREG|0444, st_size=205488, ...}) = 0
fstat(15, {st_mode=S_IFREG|0444, st_size=205488, ...}) = 0
read(15, "# ACCVRAIZ1\n-----BEGIN CERTIFICA"..., 205488) = 205488
futex(0x7f3ea3ffe1c4, FUTEX_WAKE_PRIVATE, 2147483647) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7c00000002} ---

the file "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem" is installed from RPM package "ca-certificates-2018.2.26-3.fc30.noarch".

Does somebody know a workaround? I don't know if I can replace the Qt libraries in Wakfu directory with the system ones or maybe specify a different SSL certificate package.

0 0
Reply
Reactions 2
Score : 1052

1. install compat-openssl10

sudo dnf install compat-openssl10

2. change owner of /opt/Wakfu to your user, it has to be user-writable to apply the updates

sudo chown -Rc $USERNAME /opt/Wakfu

3. create symlinks

ln -s /usr/lib64/libssl.so.10 /opt/Wakfu/transition/libssl.so
ln -s /usr/lib64/libssl.so.10 /opt/Wakfu/game/libssl.so

4. run wakfu updater


i have tested this scenario on my Fedora 30 box, but i don't have a clean install,
it was updated several times, starting from F26 or so - it should work, but i'm not 100% sure

0 0
Reply
Score : 28

Ok, I gave it a try - I already did the steps 1 and 2 before, so I tried to create those symlinks.

The game still kept crashing after displaying the EULA window (took maybe 1 second between the display and the crash). But when I clicked "Accept" very fast, I was able to proceed - the updater downloaded the updates and I was able to play the game.

So thank you for your help, I am now able to play Wakfu in Fedora.

0 0
Reply
Respond to this thread