Hello, I'm seeing a deadlock condition using avro 1.5.0. See the relevant thread dump:
2011-05-09 20:24:50 Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.0-b11 mixed mode): "pool-1-thread-2" prio=10 tid=0x0000000040c66800 nid=0x1e38 in Object.wait() [0x00007f4746257000] java.lang.Thread.State: RUNNABLE at org.apache.avro.io.parsing.Symbol.<clinit>(Symbol.java:542) at org.apache.avro.io.parsing.ResolvingGrammarGenerator.generate(ResolvingGrammarGenerator.java:79) at org.apache.avro.io.parsing.ResolvingGrammarGenerator.generate(ResolvingGrammarGenerator.java:50) at org.apache.avro.io.ResolvingDecoder.resolve(ResolvingDecoder.java:82) at org.apache.avro.io.ResolvingDecoder.<init>(ResolvingDecoder.java:46) at org.apache.avro.io.DecoderFactory.resolvingDecoder(DecoderFactory.java:307) at org.apache.avro.generic.GenericDatumReader.getResolver(GenericDatumReader.java:112) at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:127) at com.aol.service.provider.ServiceContainer$JobExecutor.run(ServiceContainer.java:152) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) "pool-1-thread-1" prio=10 tid=0x0000000040c65800 nid=0x1e32 in Object.wait() [0x00007f4746359000] java.lang.Thread.State: RUNNABLE at org.apache.avro.io.parsing.ResolvingGrammarGenerator.resolveRecords(ResolvingGrammarGenerator.java:237) at org.apache.avro.io.parsing.ResolvingGrammarGenerator.generate(ResolvingGrammarGenerator.java:118) at org.apache.avro.io.parsing.ResolvingGrammarGenerator.generate(ResolvingGrammarGenerator.java:50) at org.apache.avro.io.ResolvingDecoder.resolve(ResolvingDecoder.java:82) at org.apache.avro.io.ResolvingDecoder.<init>(ResolvingDecoder.java:46) at org.apache.avro.io.DecoderFactory.resolvingDecoder(DecoderFactory.java:307) at org.apache.avro.generic.GenericDatumReader.getResolver(GenericDatumReader.java:112) at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:127) at com.aol.service.provider.ServiceContainer$JobExecutor.run(ServiceContainer.java:152) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) I was able to workaround this condition by adding the following code at server startup: Class.forName(Symbol.class.getName()); Is this a known issue? -- Regards, Shalin Shekhar Mangar.
