psi-im / psi

XMPP client
https://psi-im.org/
Other
403 stars 123 forks source link

Empty chat dialog #345

Open BiTOk opened 6 years ago

BiTOk commented 6 years ago

After update to Psi v1.3-dev (2018-02-20, webengine) from psi-plus-1.2.154 (archlinux) I get empty chat dialog. Chat dialog lost webview. Сleaning the profile does not help. In console I get: https://gist.github.com/BiTOk/d48d6527352df24db1dd3fc78ad2425f.

Ri0n commented 6 years ago

Qt 5.10.1?

BiTOk commented 6 years ago

Yes, 5.10.1 x64. This problem appeared earlier, from psi-plus-1.2.164 version, which depends on qt5-base-5.10.0.

Ri0n commented 6 years ago

Then it's something known. Ask in chat @Vitozz (KuKuRuZo)

Ri0n commented 6 years ago

I see some strange webkit related problems too. particularly with contact list (it's not pulated) with Adium themes. Pretty strange..

vbooka1 commented 2 years ago

The issue still persists in 2022 lol, at least in one distro: openSUSE has broken Qt Webengine so psi-plus has empty chat dialog, regardless if installed from repositories (both Leap and Tumbleweed) or built from the source with -DCHAT_TYPE=WEBENGINE.

You need to build psi-plus with -DCHAT_TYPE=WEBKIT to make chats work.

tehnick commented 2 years ago

@vbooka1 Make sure that QtWebEngineProcess program is present in your system:

$ find /usr/lib /usr/bin | grep -i QtWebEngineProcess
/usr/lib/x86_64-linux-gnu/qt5/libexec/QtWebEngineProcess

In Debian and Ubuntu it is packaged into libqt5webenginecore5 package.

vbooka1 commented 2 years ago

it is

$ file /usr/lib64/qt5/libexec/QtWebEngineProcess
/usr/lib64/qt5/libexec/QtWebEngineProcess: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=dc2e96c710ae092ff34ce2c20244e0833eed8a20, for GNU/Linux 3.2.0, stripped
$ rpm -qf /usr/lib64/qt5/libexec/QtWebEngineProcess
libqt5-qtwebengine-5.15.3-bp153.2.2.1.x86_64
Ri0n commented 2 years ago

If it's a problem with JS incomplete initialization then being started from terminal it may show some useful log messages related to the problem.

tehnick commented 2 years ago

@vbooka1 Could you show a screenshot of such empty window to make sure that we are talking about the same bug?

Ri0n commented 2 years ago

ah sorry I didn't pay attention the log is already attached. with stack traces.. oh. that's bad.

Ri0n commented 2 years ago

@tehnick If I understand correctly some threads controlling webengine are crashing. I don't have any explanation for this. IIRC all suspicious places were already patched.

Ri0n commented 2 years ago

Maybe /usr/lib64/qt5/libexec/QtWebEngineProcess is somewhat broken. Maybe Qt can't properly handle it's early disruption and crashes itself. Just a wild guess.

Ri0n commented 2 years ago

openSUSE has broken Qt Webengine

alright. likely true.

tehnick commented 2 years ago

/usr/lib64/qt5/libexec/QtWebEngineProcess

It would be nice to see output of:

ldd /usr/lib/x86_64-linux-gnu/qt5/libexec/QtWebEngineProcess

Also Qt may expect to find QtWebEngineProcess in the another place. And this may be checked only using command line tool strace.

vbooka1 commented 2 years ago

@tehnick

@vbooka1 Could you show a screenshot of such empty window to make sure that we are talking about the same bug?

the message input field has white background, the chat field has gray background and has no any text after I send messages.

scr

ldd /usr/lib64/qt5/libexec/QtWebEngineProcess : https://gist.github.com/vbooka1/cc5f4d97f044a995fc821e69e5b3a5f3

ldd /usr/bin/psi-plus : https://gist.github.com/vbooka1/b410870315ecbb680db993537851362e

running /usr/bin/psi-plus : https://gist.github.com/vbooka1/e833fb394b279901d343157d50120dda

partial strace without private and unnecessary data such as env contents, ELF files binary content, etc: https://gist.github.com/vbooka1/9f38b816efa153c6977244e0dc5eef11

take a look at this line:

[pid 215353] access("/usr/lib64/qt5/plugins/webengine", F_OK) = -1 ENOENT (No such file or directory) <0.000059>

there is no such directory indeed, however there is another interesting one:

$ ls -la /usr/lib64/qt5/plugins/|grep web
-rwxr-xr-x  1 root root   43688 Aug 26  2021 kcm_webshortcuts.so
-rwxr-xr-x  1 root root   27504 Aug 27  2021 krunner_webshortcuts.so
drwxr-xr-x  2 root root    4096 May 15 04:00 webview
$ ls -la /usr/lib64/qt5/plugins/webview/
total 60
drwxr-xr-x  2 root root  4096 May 15 04:00 .
drwxr-xr-x 60 root root 12288 May 16 13:06 ..
-rwxr-xr-x  1 root root 41672 Apr 24  2021 libqtwebview_webengine.so
Ri0n commented 2 years ago

I don't have webengine plugin either. So probably not important. The goal of webview plugin is to use some Chromium-based system browser to embed it into an application. But Psi doesn't use webview. Well if I properly understand plugins naming.

I don't see anything strange in the strace log.

I think it's necessary to install debug packages for qtwebengine package and take a look at traces once again.

Also you don't need to open any chat dialog to load web theme. It's loaded on Psi start. Well just to have less logs :-)

vbooka1 commented 2 years ago

I think it's necessary to install debug packages for qtwebengine package and take a look at traces once again.

sorry, I'm too lazy for this, especially when there is a solution already: https://github.com/psi-im/psi/issues/345#issuecomment-1126908814 - I've compiled Psi+ from source with Webkit and it works well. Also there is extremely small amount of affected users - it was the first comment in 3 years!

Also you don't need to open any chat dialog to load web theme.

I thought that the [20220516 19:51:34] ChatView theme is not loaded. this is fatal (unknown:0, unknown) message might be important, because it appears only when I open a chat window (i.e. when I trigger the bug)

Ri0n commented 2 years ago

sorry, I'm too lazy for this

Ok Ok :)

I thought ...

Psi starts hidden webengine on start to init theme resources (loads theme) and it's where it fails. The message just means it can't properly open chat dialog without loaded theme in advance.

tehnick commented 2 years ago

@vbooka1

the chat field has gray background and has no any text after I send messages

Yep, I have faced with very similar bug in macOS. It was caused by features of Qt build in Homebrew: QtWebEngineProcess executable used absolute path to Qt libs and did not worked with libs from app bundle.

there is no such directory indeed

It does not needed for proper work of QtWebEngine.

running /usr/bin/psi-plus ... partial strace ...

Thank you for such detailed logs! Unfortunately they look normal. I do not have any new ideas what may cause this problem.