On Saturday 18 April 2009 15:00:42 j16sdiz at freenetproject.org wrote:
> Author: j16sdiz
> Date: 2009-04-18 14:00:42 +0000 (Sat, 18 Apr 2009)
> New Revision: 26969
> 
> Modified:
>    trunk/freenet/src/freenet/node/FailureTable.java
> Log:
> Synchroized for update while cleanup
> 
> Modified: trunk/freenet/src/freenet/node/FailureTable.java
> ===================================================================
> --- trunk/freenet/src/freenet/node/FailureTable.java  2009-04-18 14:00:15 UTC 
(rev 26968)
> +++ trunk/freenet/src/freenet/node/FailureTable.java  2009-04-18 14:00:42 UTC 
(rev 26969)
> @@ -614,6 +614,7 @@
>                               entriesByKey.valuesToArray(entries);
>                       }
>                       for(int i=0;i<entries.length;i++) {
> +                             synchronized(entries[i]) {
>                               if(entries[i].cleanup()) {
>                                       synchronized(FailureTable.this) {
>                                               if(entries[i].isEmpty()) {
> @@ -621,6 +622,7 @@
>                                               }
>                                       }
>                               }
> +                             }

This will deadlock. We always take the FailureTable lock FIRST. I have 
committed a fix in 323a109.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 835 bytes
Desc: This is a digitally signed message part.
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20090428/3aca7af3/attachment.pgp>

Reply via email to