Incompatibility of the used Qt library and the installed SilentDragonLite-aarch #61

Closed
opened 3 years ago by onryo · 9 comments
onryo commented 3 years ago

After days of trying to fix it myself it seems I might want to ask some help.

The file to the .AppImage can be found by hash in our room: dc840e30ae4300350ff3aea93e5835751b2eabddea7767f3365957a509c2159d

The exact problem I see is:

./SilentDragonLite-aarch64.AppImage 
./SilentDragonLite-aarch64.AppImage: relocation error: ./SilentDragonLite-aarch64.AppImage: symbol _ZN20QTextStreamFunctions4endlER11QTextStream version Qt_5 not defined in file libQt5Core.so.5 with link time reference

In one line relocation error: ./SilentDragonLite-aarch64.AppImage: symbol _ZN20QTextStreamFunctions4endlER11QTextStream version Qt_5 not defined in file libQt5Core.so.5 with link time reference

If I understand correctly there is an incompatibility of the used Qt library and the installed SilentDragonLite-aarch.

My current set up is:

Description:	Devuan GNU/Linux 3 (beowulf)

Some more info:

Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  1
Core(s) per socket:  4
Socket(s):           1
Vendor ID:           ARM
Model:               3
Model name:          Cortex-A72
Stepping:            r0p3
CPU max MHz:         1500.0000
CPU min MHz:         600.0000
BogoMIPS:            108.00
Flags:               fp asimd evtstrm crc32 cpuid
getconf LONG_BIT
64
Linux bcm2711 5.10.81-v8 #1 SMP PREEMPT Mon Nov 29 01:17:51 CET 2021 aarch64 GNU/Linux

More importantly:

ii  libqt5concurrent5:arm64              5.11.3+dfsg1-1+deb10u4              arm64        Qt 5 concurrent module
ii  libqt5core5a:arm64                   5.11.3+dfsg1-1+deb10u4              arm64        Qt 5 core module
ii  libqt5dbus5:arm64                    5.11.3+dfsg1-1+deb10u4              arm64        Qt 5 D-Bus module
ii  libqt5gui5:arm64                     5.11.3+dfsg1-1+deb10u4              arm64        Qt 5 GUI module
ii  libqt5network5:arm64                 5.11.3+dfsg1-1+deb10u4              arm64        Qt 5 network module
ii  libqt5opengl5:arm64                  5.11.3+dfsg1-1+deb10u4              arm64        Qt 5 OpenGL module
ii  libqt5opengl5-dev:arm64              5.11.3+dfsg1-1+deb10u4              arm64        Qt 5 OpenGL library development files
ii  libqt5printsupport5:arm64            5.11.3+dfsg1-1+deb10u4              arm64        Qt 5 print support module
ii  libqt5sql5:arm64                     5.11.3+dfsg1-1+deb10u4              arm64        Qt 5 SQL module
ii  libqt5sql5-sqlite:arm64              5.11.3+dfsg1-1+deb10u4              arm64        Qt 5 SQLite 3 database driver
ii  libqt5svg5:arm64                     5.11.3-2                            arm64        Qt 5 SVG module
ii  libqt5test5:arm64                    5.11.3+dfsg1-1+deb10u4              arm64        Qt 5 test module
ii  libqt5websockets5:arm64              5.11.3-5                            arm64        Qt 5 Web Sockets module
ii  libqt5websockets5-dev:arm64          5.11.3-5                            arm64        Qt 5 Web Sockets module - development files
ii  libqt5widgets5:arm64                 5.11.3+dfsg1-1+deb10u4              arm64        Qt 5 widgets module
ii  libqt5xml5:arm64                     5.11.3+dfsg1-1+deb10u4              arm64        Qt 5 XML module

May I ask @oDinZu to build a release for me using Qt library 5.11.3?
I can be also very confused, let me know what might be the problem/solution. 🐤

After days of trying to fix it myself it seems I might want to ask some help. The file to the .AppImage can be found by hash in our room: `dc840e30ae4300350ff3aea93e5835751b2eabddea7767f3365957a509c2159d` The exact problem I see is: ``` ./SilentDragonLite-aarch64.AppImage ./SilentDragonLite-aarch64.AppImage: relocation error: ./SilentDragonLite-aarch64.AppImage: symbol _ZN20QTextStreamFunctions4endlER11QTextStream version Qt_5 not defined in file libQt5Core.so.5 with link time reference ``` In one line `relocation error: ./SilentDragonLite-aarch64.AppImage: symbol _ZN20QTextStreamFunctions4endlER11QTextStream version Qt_5 not defined in file libQt5Core.so.5 with link time reference` If I understand correctly there is an incompatibility of the used Qt library and the installed SilentDragonLite-aarch. My current set up is: ``` Description: Devuan GNU/Linux 3 (beowulf) ``` Some more info: ``` Architecture: aarch64 Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 Vendor ID: ARM Model: 3 Model name: Cortex-A72 Stepping: r0p3 CPU max MHz: 1500.0000 CPU min MHz: 600.0000 BogoMIPS: 108.00 Flags: fp asimd evtstrm crc32 cpuid ``` ``` getconf LONG_BIT 64 ``` ``` Linux bcm2711 5.10.81-v8 #1 SMP PREEMPT Mon Nov 29 01:17:51 CET 2021 aarch64 GNU/Linux ``` More importantly: ``` ii libqt5concurrent5:arm64 5.11.3+dfsg1-1+deb10u4 arm64 Qt 5 concurrent module ii libqt5core5a:arm64 5.11.3+dfsg1-1+deb10u4 arm64 Qt 5 core module ii libqt5dbus5:arm64 5.11.3+dfsg1-1+deb10u4 arm64 Qt 5 D-Bus module ii libqt5gui5:arm64 5.11.3+dfsg1-1+deb10u4 arm64 Qt 5 GUI module ii libqt5network5:arm64 5.11.3+dfsg1-1+deb10u4 arm64 Qt 5 network module ii libqt5opengl5:arm64 5.11.3+dfsg1-1+deb10u4 arm64 Qt 5 OpenGL module ii libqt5opengl5-dev:arm64 5.11.3+dfsg1-1+deb10u4 arm64 Qt 5 OpenGL library development files ii libqt5printsupport5:arm64 5.11.3+dfsg1-1+deb10u4 arm64 Qt 5 print support module ii libqt5sql5:arm64 5.11.3+dfsg1-1+deb10u4 arm64 Qt 5 SQL module ii libqt5sql5-sqlite:arm64 5.11.3+dfsg1-1+deb10u4 arm64 Qt 5 SQLite 3 database driver ii libqt5svg5:arm64 5.11.3-2 arm64 Qt 5 SVG module ii libqt5test5:arm64 5.11.3+dfsg1-1+deb10u4 arm64 Qt 5 test module ii libqt5websockets5:arm64 5.11.3-5 arm64 Qt 5 Web Sockets module ii libqt5websockets5-dev:arm64 5.11.3-5 arm64 Qt 5 Web Sockets module - development files ii libqt5widgets5:arm64 5.11.3+dfsg1-1+deb10u4 arm64 Qt 5 widgets module ii libqt5xml5:arm64 5.11.3+dfsg1-1+deb10u4 arm64 Qt 5 XML module ``` May I ask @oDinZu to build a release for me using Qt library 5.11.3? I can be also very confused, let me know what might be the problem/solution. 🐤
Poster

A little update after compiling on the same host. I got a QTBUG-72555, to fix it I need to compile Qt to 5.12 or newer version which is not super easy, but luckily we have compile-qt5-from-source.md.

The problem solves by editing .ui file directly with some text editor(not qtdesign) and removing all blocks that contains "PlaceholderText ".

The above fixed the issue temporarily, below is what I have after running sdl:

Checking if lite server  "https://lite.hush.land"  is a alive, try= 2
litelib_process_response :  Error: Cannot read wallet. No file at /home/devuan/.silentdragonlite/silentdragonlite-wallet.dat

.silentdragonlite folder is empty. Most likely I need to go with the newest Qt to make it work which I will do next. Also sdl_01.png is how GUI looks like.

A little update after compiling on the same host. I got a [QTBUG-72555](https://bugreports.qt.io/browse/QTBUG-72555), to fix it I need to compile Qt to 5.12 or newer version which is not super easy, but luckily we have [compile-qt5-from-source.md](https://git.hush.is/jahway603/hush-docs/src/branch/master/advanced/compile-qt5-from-source.md). > The problem solves by editing .ui file directly with some text editor(not qtdesign) and removing all blocks that contains "PlaceholderText ". The above fixed the issue temporarily, below is what I have after running sdl: ``` Checking if lite server "https://lite.hush.land" is a alive, try= 2 litelib_process_response : Error: Cannot read wallet. No file at /home/devuan/.silentdragonlite/silentdragonlite-wallet.dat ``` `.silentdragonlite` folder is empty. Most likely I need to go with the newest Qt to make it work which I will do next. Also [sdl_01.png](https://git.hush.is/attachments/4cbbb055-ddab-4bfe-aaec-08a8b6736b91) is how GUI looks like.
Owner

@onryo if SDL crashed previously, after it created the ~/.silentdragonlite directory but before it created the wallet, it might not like that. Try deleting the empty directory and see if anything different happens.

Our code should probably handle this case automatically.

@onryo if SDL crashed previously, after it created the ~/.silentdragonlite directory but before it created the wallet, it might not like that. Try deleting the empty directory and see if anything different happens. Our code should probably handle this case automatically.
Poster

if SDL crashed previously, after it created the ~/.silentdragonlite directory but before it created the wallet, it might not like that.

It happened again even with a compiled Qt 5.15.2 on my HushBox.
To fix it I just need to wait a minute or so, I wasn't patient and that's why it happened.

Nevertheless, now I have SDL working on my armDevuan Pi 4 HushBox device.
So far it looks fine, but I will test HushChat later.

To fix it I just need to wait a minute or so

It's needed only on a first run, when you run SDL for the second time the GUI works as it supposed to be.

Next I will create HushBox-Qt-5.15.2-aarch64.deb

> if SDL crashed previously, after it created the ~/.silentdragonlite directory but before it created the wallet, it might not like that. It happened again even with a compiled `Qt 5.15.2` on my HushBox. To fix it I just need to wait a minute or so, I wasn't patient and that's why it happened. Nevertheless, now I have SDL working on my `armDevuan Pi 4` HushBox device. So far it looks fine, but I will test HushChat later. > To fix it I just need to wait a minute or so It's needed only on a first run, when you run SDL for the second time the GUI works as it supposed to be. Next I will create `HushBox-Qt-5.15.2-aarch64.deb`
Poster

Next I will create HushBox-Qt-5.15.2-aarch64.deb

It might be not needed, the most time consuming process is compiling Qt. (~5 hours)

> Next I will create `HushBox-Qt-5.15.2-aarch64.deb` It might be not needed, the most time consuming process is compiling Qt. (~5 hours)
Owner

It's needed only on a first run, when you run SDL for the second time the GUI works as it supposed to be. sounds like a bug that could be fixed, it should retry and/or maybe sleep before looking for the wallet

`It's needed only on a first run, when you run SDL for the second time the GUI works as it supposed to be.` sounds like a bug that could be fixed, it should retry and/or maybe sleep before looking for the wallet
Owner

@onryo if you can tell me what your STDOUT debug prints look like, when it fails the first time with an empty ~/.silentdragonlite , I can try to fix this bug. My guess is that on a normal powerful laptop, this bug doesn't happen by luck, but on a machine with less CPU resources and/or slower disk, the filesystem hasn't finished writing things to disk before code runs that looks for that stuff.

@onryo if you can tell me what your STDOUT debug prints look like, when it fails the first time with an empty ~/.silentdragonlite , I can try to fix this bug. My guess is that on a normal powerful laptop, this bug doesn't happen by luck, but on a machine with less CPU resources and/or slower disk, the filesystem hasn't finished writing things to disk before code runs that looks for that stuff.
Poster
  • Yes, it relates to CPU usage or a slower disk on my Pi4, also happened some time ago on my old PC. Let me see if I can reproduce this bug by removing the folder. @duke

  • Just like the issue below, but not sure if I saw anything useful in STDOUT.

- Yes, it relates to CPU usage or a slower disk on my Pi4, also happened some time ago on my old PC. Let me see if I can reproduce this bug by removing the folder. @duke - Just like the issue below, but not sure if I saw anything useful in STDOUT. ![](https://git.hush.is/attachments/4cbbb055-ddab-4bfe-aaec-08a8b6736b91)
Owner

@onryo ok, you are probably right that there is maybe not useful STDOUT output. There may be something useful in SilentDragonLite.log file, but maybe not.

From src/connection.cpp the code will send no Plaintext wallet.dat to the log file (but not STDOUT) if it cannot find a wallet. I think the simple potential fix is to sleep 1 or 2 seconds and try again if this happens.

@onryo ok, you are probably right that there is maybe not useful STDOUT output. There may be something useful in SilentDragonLite.log file, but maybe not. From `src/connection.cpp` the code will send `no Plaintext wallet.dat` to the log file (but not STDOUT) if it cannot find a wallet. I think the simple potential fix is to sleep 1 or 2 seconds and try again if this happens.
Poster

The initial issue was fixed.
A new issue will be created to track the activity for the startup screen bug on slow machines.

The initial issue was fixed. A new issue will be created to track the activity for the startup screen bug on slow machines.
onryo closed this issue 3 years ago
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.