#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.

Reply via email to