Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Avro >> mail # user >> Deadlock using Avro 1.5.0


Copy link to this message
-
Deadlock using Avro 1.5.0
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.