Aggregator with HawtDB repository throws EOFException
mroslyak Feb 7, 2012 4:52 PMHello,
I am using servicemix 4.4.1-fuse-00-08
In my route definition I am using aggregator with repository
Ocassionally, HawtDB starts throwing exceptions and stops processing exchanges
If I restart servicemix, the errors go away and everything behaves as expected until some random time in the future.
HawtDBAggregationRepository errrorRepo = new HawtDBAggregationRepository("errors", "data/errors.dat");
...
.aggregate(simple("${body.type}"),errorAggregator)
.aggregationRepository(errrorRepo)
.completionTimeout(300000).completionSize(500)
....
Any help is appreciated.
thread #134 - AggregateTimeoutChecker] Exception occurred during purge task. This exception will be ignored.
org.fusesource.hawtdb.api.IndexException: java.io.EOFException
at org.fusesource.hawtdb.api.AbstractStreamPagedAccessor.load(AbstractStreamPagedAccessor.java:66)[238:org.fusesource.hawtdb:1.5]
at org.fusesource.hawtdb.internal.index.BTreeIndex.loadNode(BTreeIndex.java:238)[238:org.fusesource.hawtdb:1.5]
at org.fusesource.hawtdb.internal.index.BTreeIndex.root(BTreeIndex.java:158)[238:org.fusesource.hawtdb:1.5]
at org.fusesource.hawtdb.internal.index.BTreeIndex.get(BTreeIndex.java:85)[238:org.fusesource.hawtdb:1.5]
at org.apache.camel.component.hawtdb.HawtDBAggregationRepository$2.execute(HawtDBAggregationRepository.java:150)[237:org.apache.camel.camel-hawtdb:2.8.0.fuse-00-08]
at org.apache.camel.component.hawtdb.HawtDBAggregationRepository$2.execute(HawtDBAggregationRepository.java:144)[237:org.apache.camel.camel-hawtdb:2.8.0.fuse-00-08]
at org.apache.camel.component.hawtdb.HawtDBFile.doExecute(HawtDBFile.java:159)[237:org.apache.camel.camel-hawtdb:2.8.0.fuse-00-08]
at org.apache.camel.component.hawtdb.HawtDBFile.execute(HawtDBFile.java:113)[237:org.apache.camel.camel-hawtdb:2.8.0.fuse-00-08]
at org.apache.camel.component.hawtdb.HawtDBAggregationRepository.get(HawtDBAggregationRepository.java:144)[237:org.apache.camel.camel-hawtdb:2.8.0.fuse-00-08]
at org.apache.camel.processor.aggregate.AggregateProcessor$AggregationTimeoutMap.onEviction(AggregateProcessor.java:634)[85:org.apache.camel.camel-core:2.8.0.fuse-00-08]
at org.apache.camel.processor.aggregate.AggregateProcessor$AggregationTimeoutMap.onEviction(AggregateProcessor.java:605)[85:org.apache.camel.camel-core:2.8.0.fuse-00-08]
at org.apache.camel.util.DefaultTimeoutMap.purge(DefaultTimeoutMap.java:202)[85:org.apache.camel.camel-core:2.8.0.fuse-00-08]
at org.apache.camel.processor.aggregate.AggregateProcessor$AggregationTimeoutMap.purge(AggregateProcessor.java:617)[85:org.apache.camel.camel-core:2.8.0.fuse-00-08]
at org.apache.camel.util.DefaultTimeoutMap.run(DefaultTimeoutMap.java:158)[85:org.apache.camel.camel-core:2.8.0.fuse-00-08]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_24]
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)[:1.6.0_24]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)[:1.6.0_24]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)[:1.6.0_24]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)[:1.6.0_24]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)[:1.6.0_24]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_24]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_24]
at java.lang.Thread.run(Thread.java:662)[:1.6.0_24]
Caused by: java.io.EOFException
at org.fusesource.hawtdb.internal.page.ExtentInputStream.read(ExtentInputStream.java:80)[238:org.fusesource.hawtdb:1.5]
at java.io.DataInputStream.readFully(DataInputStream.java:178)[:1.6.0_24]
at java.io.DataInputStream.readFully(DataInputStream.java:152)[:1.6.0_24]
at org.fusesource.hawtbuf.codec.AbstractBufferCodec.decode(AbstractBufferCodec.java:40)[239:org.fusesource.hawtbuf.hawtbuf:1.2]
at org.fusesource.hawtbuf.codec.AbstractBufferCodec.decode(AbstractBufferCodec.java:30)[239:org.fusesource.hawtbuf.hawtbuf:1.2]
at org.fusesource.hawtdb.internal.index.BTreeNode.read(BTreeNode.java:207)[238:org.fusesource.hawtdb:1.5]
at org.fusesource.hawtdb.internal.index.BTreeNode$DataPagedAccessor.decode(BTreeNode.java:228)[238:org.fusesource.hawtdb:1.5]
at org.fusesource.hawtdb.internal.index.BTreeNode$DataPagedAccessor.decode(BTreeNode.java:214)[238:org.fusesource.hawtdb:1.5]
at org.fusesource.hawtdb.api.AbstractStreamPagedAccessor.load(AbstractStreamPagedAccessor.java:64)[238:org.fusesource.hawtdb:1.5]
... 22 more