groovy

deadlock in MemoryAwareConcurrentReadMap.get

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Critical Critical
  • Resolution: Fixed
  • Affects Version/s: 1.1-beta-1
  • Fix Version/s: 1.1-beta-2
  • Component/s: groovy-jdk
  • Labels:
    None
  • Environment:
    Linux JDK 1.5
  • Number of attachments :
    1

Description

I've found a deadlock in MemoryAwareConcurrentReadMap.get that affects calls to MetaClassRegistryImpl.getMetaClass. This particular case seems to happen very infrequently; the last time I saw it happen was after my program had been running for 4.5 hours. I have seen it more than once, however, so I'm fairly certain this bug will strike any Groovy program that runs long enough.

This issue may be related GROOVY-1890 but I can't be certain from the information I have.

Issue Links

Activity

Hide
Guillaume Laforge added a comment -

Could you try with a snapshot of Groovy 1.1-beta-2 that you can download there?
http://build.canoo.com/groovy/

I encountered this problem with beta-1, but this problem has been solved with GROOVY-1890, so you shouldn't have it anymore.
If you could double-check, that would be great.

Show
Guillaume Laforge added a comment - Could you try with a snapshot of Groovy 1.1-beta-2 that you can download there? http://build.canoo.com/groovy/ I encountered this problem with beta-1, but this problem has been solved with GROOVY-1890, so you shouldn't have it anymore. If you could double-check, that would be great.
Hide
Guillaume Laforge added a comment -

I've had a closer look at the stacktraces you got, and the ones I had too, and they are the same.
So I can confirm you this bug is fixed by GROOVY-1890 in SVN Trunk.
The fix will be in Groovy 1.1-beta-2.

Show
Guillaume Laforge added a comment - I've had a closer look at the stacktraces you got, and the ones I had too, and they are the same. So I can confirm you this bug is fixed by GROOVY-1890 in SVN Trunk. The fix will be in Groovy 1.1-beta-2.
Hide
Guillaume Laforge added a comment -

Already fixed in SVN Trunk.
Fix available in Groovy 1.1-beta-2.

Show
Guillaume Laforge added a comment - Already fixed in SVN Trunk. Fix available in Groovy 1.1-beta-2.
Hide
blackdrag blackdrag added a comment -

As I found a free version of java5's ConcurrentreaderMap I will MemoryAwareConcurrentReadMap class and replace it, with a new version based on the ConcurrentReaderMap.

Show
blackdrag blackdrag added a comment - As I found a free version of java5's ConcurrentreaderMap I will MemoryAwareConcurrentReadMap class and replace it, with a new version based on the ConcurrentReaderMap.
Hide
John Williams added a comment -

I switched to 1.1-BETA-2 and the problem seems to have disappeared as expected. My program that originally hung after 4.5 hours has run for nearly 18 hours now with no problems.

Show
John Williams added a comment - I switched to 1.1-BETA-2 and the problem seems to have disappeared as expected. My program that originally hung after 4.5 hours has run for nearly 18 hours now with no problems.
Hide
blackdrag blackdrag added a comment -

I very much hope it... not only was the other deadlock fixed, the map is now replaced with a new version that is based on ConcurrentReaderHashMap and should be free of deadlocks.. I hope.. If you have tested it in the last 10 hours or so, then you should have the new map

Show
blackdrag blackdrag added a comment - I very much hope it... not only was the other deadlock fixed, the map is now replaced with a new version that is based on ConcurrentReaderHashMap and should be free of deadlocks.. I hope.. If you have tested it in the last 10 hours or so, then you should have the new map

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: