On Saturday 18 April 2009 15:00:42 [email protected] 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.

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Devl mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to