licq-im / licq

An instant messaging client for UNIX
http://www.licq.org/
16 stars 4 forks source link

licq latest failed to start (probably gpg message went offlne) #41

Open myallod opened 10 years ago

myallod commented 10 years ago

I start licq and see in console:

16:33:05.353 [WAR] licq: [GPG] gpgme message decryption failed: Decryption failed 16:33:05.359 [WAR] licq: [GPG] gpgme message decryption failed: Decryption failed 16:33:05.363 [WAR] licq: [GPG] gpgme message decryption failed: Decryption failed 16:33:05.373 [WAR] licq: [GPG] gpgme message decryption failed: Decryption failed ^C16:33:07.768 [WAR] licq: [GPG] gpgme message decryption failed: No data 16:33:07.772 [WAR] licq: [GPG] gpgme message decryption failed: Decryption failed

After Ctrl+C: licq: /home/lek/Downloads/src/licq/licq/src/plugin/pluginmanager.cpp:423: Licq::User* LicqDaemon::PluginManager::createProtocolUser(const Licq::UserId&, bool): Assertion `it != myProtocolPlugins.end()' failed.

Using gdb to save backtrace to /home/lek/.licq/licq.backtrace.gdb

gdb exited with exit code 0

Backtrace (saved in /home/lek/.licq/licq.backtrace): licq() [0x555362] /lib/x86_64-linux-gnu/libc.so.6(+0x324f0) [0x7f467c5ba4f0] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35) [0x7f467c5ba475] /lib/x86_64-linux-gnu/libc.so.6(abort+0x180) [0x7f467c5bd6f0] /lib/x86_64-linux-gnu/libc.so.6(assert_fail+0xf1) [0x7f467c5b3621] licq(_ZN10LicqDaemon13PluginManager18createProtocolUserERKN4Licq6UserIdEb+0xd7) [0x59ef41] licq(_ZN10LicqDaemon11UserManager10createUserERKN4Licq6UserIdEb+0x56) [0x58dae2] licq(_ZN10LicqDaemon11UserManager12loadUserListERKN4Licq6UserIdE+0x354) [0x58b1da] licq(_ZN10LicqDaemon11UserManager12loadProtocolEm+0x270) [0x58b642] licq(_ZN10LicqDaemon13PluginManager15startAllPluginsEv+0x497) [0x59d785] licq(_ZN5CLicq4MainEv+0x99) [0x531099] licq() [0x541ccb] licq(main+0x89) [0x541de7] /lib/x86_64-linux-gnu/libc.so.6(libc_start_main+0xfd) [0x7f467c5a6ead] licq() [0x51db29] Attempting to generate core file.

Licq has encountered a fatal error. Please report this error either by creating a new ticket at http://trac.licq.org/ or by sending an e-mail to the mailing list licq-dev@googlegroups.com (you must be registered to be able to post, see http://trac.licq.org/wiki/MailingList).

To help us debug the error, please include a full description of what you did when the error occurred. Additionally, please include the following files (if they exist): /home/lek/.licq/licq.backtrace /home/lek/.licq/licq.backtrace.gdb /home/lek/.licq/licq.debug_rw_mutex

Thanks, The Licq Team Aborted

licq.backtrace: time: 1387283591 licq() [0x555362] /lib/x86_64-linux-gnu/libc.so.6(+0x324f0) [0x7f467c5ba4f0] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35) [0x7f467c5ba475] /lib/x86_64-linux-gnu/libc.so.6(abort+0x180) [0x7f467c5bd6f0] /lib/x86_64-linux-gnu/libc.so.6(assert_fail+0xf1) [0x7f467c5b3621] licq(_ZN10LicqDaemon13PluginManager18createProtocolUserERKN4Licq6UserIdEb+0xd7) [0x59ef41] licq(_ZN10LicqDaemon11UserManager10createUserERKN4Licq6UserIdEb+0x56) [0x58dae2] licq(_ZN10LicqDaemon11UserManager12loadUserListERKN4Licq6UserIdE+0x354) [0x58b1da] licq(_ZN10LicqDaemon11UserManager12loadProtocolEm+0x270) [0x58b642] licq(_ZN10LicqDaemon13PluginManager15startAllPluginsEv+0x497) [0x59d785] licq(_ZN5CLicq4MainEv+0x99) [0x531099] licq() [0x541ccb] licq(main+0x89) [0x541de7] /lib/x86_64-linux-gnu/libc.so.6(libc_start_main+0xfd) [0x7f467c5a6ead] licq() [0x51db29]

licq.debug_rw_mutex: time: 1387273637 Possible deadlock for thread 0x7f5145ec5700 trying to get a write lock on 'userlist' No thread holds the write lock These threads hold the read lock: 0x7f514ec6d700

licq.backtrace.gdb: http://pastie.org/8558094

flynd commented 10 years ago

Which protocols are you using and which protocol plugins are being loaded?

Which Licq version are you using? Did this problem start after an upgrade? (i.e. have it always been a problem for this version?)

myallod commented 10 years ago

i've built 1.9.0-04ddb95/SSL (from build-all directory) (after your fix https://github.com/licq-im/licq/issues/40) and i was talking with my contacts successfully, using gpg. I use one icq number and eight jabber contacts for monitoring servers and receive notifications). But when i was offline one icq contact (he use licq 1.7.1) send me gpg messages, then I going online my licq failed and even main window did not appear with only message in shell:

16:33:05.353 [WAR] licq: [GPG] gpgme message decryption failed: Decryption failed

I renamed 2 files relating to this contact (.conf & .history), disabled gpg encryption with this contact and re-run licq - it started, and worked normally, except the case when i try to open message window for noted contact - licq hanged and after 1-2 min halted and disappeared with gdb dump.

Then i noticed, that there were about 15-20 gpg processes in list at moment and i killalled them and immediately received gpg not-decrypted message from this contact (previously i disable gpg on it). After restart licq it works fine. I suspect that gpg mechanism could not show me form for entering password and licq goes to infinite loop.

flynd commented 10 years ago

Regarding the failing GPG decryptions, it seems the gpgme library makes a callback to Licq to get the pass phrase. However, there is currently no support for this in the GUI so the password needs to be entered manually into a configuration file. There is an example licq_gpg.conf in the licq source directory.

Did you see if the GPG processes where CPU active or if they were just sleeping?

Did the assert about creating a user object for a non-existing protocol only occur after using ctrl+c for the gpg problem or can you reproduce this "normally"?

flynd commented 10 years ago

If I understood the gpgme documentation correct, if the pass phrase callback returns a bad pass phrase, it will be called again. I've pushed 019ea17691556ec7197403fdf16e2e42db2743e9 which should abort the decryption in that case. Please try if it solves the problem.

myallod commented 10 years ago

We tried to reproduce this bug with gpg and password input but no success. In processlist i saw no gpg* or pgp* processes at all stages of testing. No window to enter gpg password input appeared after lot of turning licq on/off and receiving gpg messages at moment of licq going online.

I build new 1.9.0-cfc5486/SSL and continue testing. Thank you