java.io.EOFException

JIRA | Igor Ranitovic | 10 years ago
  1. 0

    Our Mike start seeing this error in one of our weekly crawls: Time: Jul. 26, 2006 06:34:18 GMT Level: SEVERE Message: Fatal exception in ToeThread #9: Exception: com.sleepycat.util.RuntimeExceptionWrapper Cause: java.io.EOFException at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.j ava:2502) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1267) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339) at com.sleepycat.bind.serial.SerialBinding.entryToObject(SerialBinding.java:12 4) at org.archive.crawler.frontier.BdbMultipleWorkQueues.get(BdbMultipleWorkQueue s.java:257) at org.archive.crawler.frontier.BdbWorkQueue.peekItem(BdbWorkQueue.java:106) at org.archive.crawler.frontier.WorkQueue.peek(WorkQueue.java:135) at org.archive.crawler.frontier.WorkQueueFrontier.next(WorkQueueFrontier.java: 581) at org.archive.crawler.framework.ToeThread.run(ToeThread.java:146) Stacktrace: com.sleepycat.util.RuntimeExceptionWrapper at com.sleepycat.bind.serial.SerialBinding.entryToObject(SerialBinding.java:12 6) at org.archive.crawler.frontier.BdbMultipleWorkQueues.get(BdbMultipleWorkQueue s.java:257) at org.archive.crawler.frontier.BdbWorkQueue.peekItem(BdbWorkQueue.java:106) at org.archive.crawler.frontier.WorkQueue.peek(WorkQueue.java:135) at org.archive.crawler.frontier.WorkQueueFrontier.next(WorkQueueFrontier.java: 581) at org.archive.crawler.framework.ToeThread.run(ToeThread.java:146) Caused by: java.io.EOFException at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.j ava:2502) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1267) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339) at com.sleepycat.bind.serial.SerialBinding.entryToObject(SerialBinding.java:12 4) ... 5 more

    JIRA | 10 years ago | Igor Ranitovic
    java.io.EOFException
  2. 0

    I have a job that with 20 seeds and the same amount of hosts. The job has been running for about 24 hours in total. Checkpoints are created every hour and the job has been relaunched multiple times from different checkpoints. When launching the job from a checkpoint there are warnings that some jdb files are missing. Nevertheless the job seems to be running as expected. After a couple of hours the following error is repeated indefinitely (with 100% cpu usage) until the process is terminated: Jul 6, 2010 9:43:46 PM org.archive.crawler.frontier.BdbMultipleWorkQueues get SEVERE: expected object missing in queue com,host2,www, (in thread 'org.archive.crawler.frontier.BdbFrontier@41b635.managerThread') com.sleepycat.util.RuntimeExceptionWrapper: java.io.EOFException at com.sleepycat.util.RuntimeExceptionWrapper.wrapIfNeeded(RuntimeExceptionWrapper.java:31) at com.sleepycat.bind.serial.SerialBinding.entryToObject(SerialBinding.java:137) at org.archive.crawler.frontier.BdbMultipleWorkQueues.get(BdbMultipleWorkQueues.java:261) at org.archive.crawler.frontier.BdbWorkQueue.peekItem(BdbWorkQueue.java:99) at org.archive.crawler.frontier.WorkQueue.peek(WorkQueue.java:172) at org.archive.crawler.frontier.WorkQueueFrontier.findEligibleURI(WorkQueueFrontier.java:664) at org.archive.crawler.frontier.AbstractFrontier.fillOutbound(AbstractFrontier.java:446) at org.archive.crawler.frontier.AbstractFrontier.managementTasks(AbstractFrontier.java:368) at org.archive.crawler.frontier.AbstractFrontier$2.run(AbstractFrontier.java:318) Caused by: java.io.EOFException at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2554) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1297) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at com.sleepycat.bind.serial.SerialBinding.entryToObject(SerialBinding.java:135) ... 7 more Jul 6, 2010 9:43:46 PM org.archive.crawler.frontier.BdbWorkQueue peekItem SEVERE: inconsistency: com,host1,(com,host1,) with 2 items gave null(com,host2,www, (in thread 'org.archive.crawler.frontier.BdbFrontier@41b635.managerThread') Jul 6, 2010 9:43:46 PM org.archive.crawler.frontier.BdbWorkQueue peekItem SEVERE: Trying get #2 in queue com,host1, with 2 items using key com,host1, (in thread 'org.archive.crawler.frontier.BdbFrontier@41b635.managerThread') Then the job can be launched from a previous checkpoint again and the same problem will happen after some hours. Expected Result: Try to recover from this error if possible. If this is not possible either disable the queue that caused the error, throw an exception or pause the job. Actual Result: Infinite loop. Code Inspection: From a brief look at the code I may have identified the cause: File: WorkQueueFrontier.java Function: findEligibleURI() There is an outer loop (findauri) and an innerloop (returnanuri): findauri: while(true) { ... some code .... returnauri: while(true) { // loop left by explicit return or break on empty CrawlURI curi = null; curi = readyQ.peek(this); if(curi == null) { // should not reach logger.severe("No CrawlURI from ready non-empty queue " + readyQ.classKey + "\n" + readyQ.shortReportLegend() + "\n" + readyQ.shortReportLine() + "\n"); break returnauri; } ... some code ... } // end of inner loop returnauri } // end of outer loop So what happens is that if peek() returns null, curi == null and therefore the inner loop breaks. But then the outer loops continues and goes back into the inner loop etc. Thanks :-) Mat

    JIRA | 6 years ago | Mat
    com.sleepycat.util.RuntimeExceptionWrapper: java.io.EOFException
  3. 0

    I have a job that with 20 seeds and the same amount of hosts. The job has been running for about 24 hours in total. Checkpoints are created every hour and the job has been relaunched multiple times from different checkpoints. When launching the job from a checkpoint there are warnings that some jdb files are missing. Nevertheless the job seems to be running as expected. After a couple of hours the following error is repeated indefinitely (with 100% cpu usage) until the process is terminated: Jul 6, 2010 9:43:46 PM org.archive.crawler.frontier.BdbMultipleWorkQueues get SEVERE: expected object missing in queue com,host2,www, (in thread 'org.archive.crawler.frontier.BdbFrontier@41b635.managerThread') com.sleepycat.util.RuntimeExceptionWrapper: java.io.EOFException at com.sleepycat.util.RuntimeExceptionWrapper.wrapIfNeeded(RuntimeExceptionWrapper.java:31) at com.sleepycat.bind.serial.SerialBinding.entryToObject(SerialBinding.java:137) at org.archive.crawler.frontier.BdbMultipleWorkQueues.get(BdbMultipleWorkQueues.java:261) at org.archive.crawler.frontier.BdbWorkQueue.peekItem(BdbWorkQueue.java:99) at org.archive.crawler.frontier.WorkQueue.peek(WorkQueue.java:172) at org.archive.crawler.frontier.WorkQueueFrontier.findEligibleURI(WorkQueueFrontier.java:664) at org.archive.crawler.frontier.AbstractFrontier.fillOutbound(AbstractFrontier.java:446) at org.archive.crawler.frontier.AbstractFrontier.managementTasks(AbstractFrontier.java:368) at org.archive.crawler.frontier.AbstractFrontier$2.run(AbstractFrontier.java:318) Caused by: java.io.EOFException at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2554) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1297) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at com.sleepycat.bind.serial.SerialBinding.entryToObject(SerialBinding.java:135) ... 7 more Jul 6, 2010 9:43:46 PM org.archive.crawler.frontier.BdbWorkQueue peekItem SEVERE: inconsistency: com,host1,(com,host1,) with 2 items gave null(com,host2,www, (in thread 'org.archive.crawler.frontier.BdbFrontier@41b635.managerThread') Jul 6, 2010 9:43:46 PM org.archive.crawler.frontier.BdbWorkQueue peekItem SEVERE: Trying get #2 in queue com,host1, with 2 items using key com,host1, (in thread 'org.archive.crawler.frontier.BdbFrontier@41b635.managerThread') Then the job can be launched from a previous checkpoint again and the same problem will happen after some hours. Expected Result: Try to recover from this error if possible. If this is not possible either disable the queue that caused the error, throw an exception or pause the job. Actual Result: Infinite loop. Code Inspection: From a brief look at the code I may have identified the cause: File: WorkQueueFrontier.java Function: findEligibleURI() There is an outer loop (findauri) and an innerloop (returnanuri): findauri: while(true) { ... some code .... returnauri: while(true) { // loop left by explicit return or break on empty CrawlURI curi = null; curi = readyQ.peek(this); if(curi == null) { // should not reach logger.severe("No CrawlURI from ready non-empty queue " + readyQ.classKey + "\n" + readyQ.shortReportLegend() + "\n" + readyQ.shortReportLine() + "\n"); break returnauri; } ... some code ... } // end of inner loop returnauri } // end of outer loop So what happens is that if peek() returns null, curi == null and therefore the inner loop breaks. But then the outer loops continues and goes back into the inner loop etc. Thanks :-) Mat

    JIRA | 6 years ago | Mat
    java.io.EOFException
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    Read Object Throw java.io.EOFException

    Oracle Community | 1 decade ago | 807597
    java.io.EOFException

  1. ex00 1 times, last 3 weeks ago
  2. eti22 1 times, last 1 month ago
  3. pnaranja 1 times, last 5 months ago
8 unregistered visitors
Not finding the right solution?
Take a tour to get the most out of Samebug.

Tired of useless tips?

Automated exception search integrated into your IDE

Root Cause Analysis

  1. java.io.EOFException

    No message provided

    at java.io.ObjectInputStream$BlockDataInputStream.peekByte()
  2. Java RT
    ObjectInputStream.readObject
    1. java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2502)
    2. java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1267)
    3. java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
    3 frames
  3. Berkeley DB Java Edition
    SerialBinding.entryToObject
    1. com.sleepycat.bind.serial.SerialBinding.entryToObject(SerialBinding.java:124)
    1 frame
  4. org.archive.crawler
    ToeThread.run
    1. org.archive.crawler.frontier.BdbMultipleWorkQueues.get(BdbMultipleWorkQueues.java:257)
    2. org.archive.crawler.frontier.BdbWorkQueue.peekItem(BdbWorkQueue.java:106)
    3. org.archive.crawler.frontier.WorkQueue.peek(WorkQueue.java:135)
    4. org.archive.crawler.frontier.WorkQueueFrontier.next(WorkQueueFrontier.java:581)
    5. org.archive.crawler.framework.ToeThread.run(ToeThread.java:146)
    5 frames