#1569: Crash while showing gpg pinentry
----------------------+-----------------------------------------------------
Reporter: root_42 | Owner:
Type: defect | Status: closed
Priority: normal | Milestone: 1.3.5
Component: None | Version: devel
Resolution: wontfix | Keywords:
----------------------+-----------------------------------------------------
Changes (by erijo):
* status: new => closed
* resolution: => wontfix
Comment:
This is what happens:
1. When a new messages arrives, the daemon locks the contact's mutex (for
writing == exclusive access).
1. While holding the lock, a new CEventMsg is created.
1. The CEventMsg's ctor will try to decrypt the message if it is
encrypted.
1. This will block the thread while pinentry asks the user for the
password.
1. If the Qt gui plugin decides to update the gui during this time it
will also try to lock the contact's mutex (for reading).
1. If it can't get the lock within 10 seconds it will abort, thinking
that this must surely be a deadlock (even though it, in this case, isn't
one).
Similar problems appear if you for example open the history for a contact
that contains encrypted messages and simultaneous receive a new message
from that contact.
I increased the time before abort to 30 seconds in r5650, but this just
means that you have a little more time to enter the password before it
crashes.
This bug is simply a conflict between the GPG support and the deadlock
detection code. The GPG support will probably not be changed and I very
much prefer Licq to crash when there is a deadlock instead of just
hanging. Also, deadlock detection will be disabled for 1.3.5 final.
--
Ticket URL: <http://www.licq.org/ticket/1569#comment:3>
Licq <http://trac.licq.org/>
Licq - an instant messaging client for UNIX.