abdera-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Garrett Rooney (JIRA)" <j...@apache.org>
Subject [jira] Commented: (ABDERA-46) Memory Leak and Concurency Bug in Factory
Date Wed, 25 Apr 2007 13:36:16 GMT

    [ https://issues.apache.org/jira/browse/ABDERA-46?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12491639

Garrett Rooney commented on ABDERA-46:

Umm, I'm not sure that's going to work.  Unless my java thread safety memory is failing me,
just synchronizing puts without synchronizing reads isn't going to do a damn thing.  You need
to synchronize both, or move to a more sophisticated data structure (like one of the ones
in the concurrent package) that can avoid total synchronization while still retaining safety.

Just think about it.  The problem Brian says they saw was an addition going on at the same
time as a read.  If you synchronize additions to the map without synchronizing reads you haven't
prevented that case, the only thing the synchronization will do is prevent concurrent adds,
which wasn't the original problem.

> Memory Leak and Concurency Bug in Factory
> -----------------------------------------
>                 Key: ABDERA-46
>                 URL: https://issues.apache.org/jira/browse/ABDERA-46
>             Project: Abdera
>          Issue Type: Bug
>            Reporter: Brian McCallister
>         Assigned To: James M Snell
> Okay, am trying to reconstruct this from memory as I thought we had a filed a bug on
it months agao when we found it...
> If you use the same Factory from multiple threads it maintains a map of extension namespaces.
When you create a new element it accesses this map and if an addition is going the reader
can get caught traversing it forever. (HashMap is not thread safe).
> This map also keeps all extensions it ever sees, which can lead to a memory leak if you
use the default factory a lot -- say, with hundreds of thousands of extensions in my case.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message