Actually any Mapper on a sufficiently long running job leads to this stack trace
2012-05-03 12:22:00,728 ERROR [peregrine.controller.rpcd.ControllerRPCHandler:0] peregrine.rpcd.BaseRPCHandler Unable handle message: ?action=flush
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at peregrine.rpcd.delegate.RPCDelegate.handleMessage(RPCDelegate.java:48)
at peregrine.worker.rpcd.FSDaemonRPCHandler.handleMessage(FSDaemonRPCHandler.java:75)
at peregrine.rpcd.BaseRPCHandler$1.doAction(BaseRPCHandler.java:104)
at peregrine.rpcd.BaseRPCHandler$AsyncMessageHandler.run(BaseRPCHandler.java:144)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
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:619)
Caused by: java.io.IOException: Failed to close writer:
at peregrine.shuffle.receiver.ShuffleReceiver.rollover(ShuffleReceiver.java:116)
at peregrine.shuffle.receiver.ShuffleReceiver.close(ShuffleReceiver.java:132)
at peregrine.shuffle.receiver.ShuffleReceiverFactory.flush(ShuffleReceiverFactory.java:81)
at peregrine.worker.rpcd.delegate.ShufflerRPCDelegate.flush(ShufflerRPCDelegate.java:37)
... 14 more
Caused by: java.util.concurrent.ExecutionException: java.io.IOException: count < 0
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at peregrine.shuffle.receiver.ShuffleReceiver.rollover(ShuffleReceiver.java:114)
... 17 more
Caused by: java.io.IOException: count < 0
at peregrine.shuffle.ShuffleOutputWriter.buildLookup(ShuffleOutputWriter.java:142)
at peregrine.shuffle.ShuffleOutputWriter.close(ShuffleOutputWriter.java:164)
at peregrine.shuffle.receiver.ShuffleReceiverFlushCallable.call(ShuffleReceiverFlushCallable.java:37)
... 5 more
Maybe related is this Debug message a little while before the error:
2012-05-03 13:47:17,831 DEBUG [peregrine.worker.rpcd.delegate.MapperRPCDelegate:0] org.apache.hadoop.conf.Configuration java.io.IOException: config(config)
at org.apache.hadoop.conf.Configuration.<init>(Configuration.java:259)
at org.apache.hadoop.mapred.JobConf.<init>(JobConf.java:341)
at org.apache.hadoop.mapreduce.JobContext.<init>(JobContext.java:76)
at org.apache.hadoop.mapreduce.TaskAttemptContext.<init>(TaskAttemptContext.java:35)
at peregrine.io.driver.cassandra.CassandraJobInput.<init>(CassandraJobInput.java:60)
at peregrine.io.driver.cassandra.CassandraIODriver.getJobInput(CassandraIODriver.java:96)
at peregrine.task.BaseMapperTask.getJobInput(BaseMapperTask.java:119)
at peregrine.task.MapperTask.doCall(MapperTask.java:48)
at peregrine.task.BaseTask.call(BaseTask.java:196)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
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:619)