com.sleepycat.je.latch.LatchNotHeldException: Latch(com.sleepycat.je.log.FileManager_fileCache) not held

JIRA | (sourceforge) | 10 years ago
  1. 0

    Got the below exception when running a large crawl over the weekend. The crawl had been running approx. 110 hours and collected over 8 million documents. The exception crashed Heritrix (no further progress and the UI quickly became unresponsive when I tried to generate end of crawl reports). No indications of anything else going on (or going wrong) that might explain this. This could possibly be a bug in BerkleyDB. java.io.IOException: fetchTarget of 0xb27/0x91d1b4 IN=357281107 state=0 com.sleepycat.je.latch.LatchNotHeldException: Latch(com.sleepycat.je.log.FileManager_fileCache) not held at org.archive.crawler.frontier.BdbWorkQueue.peekItem(BdbWorkQueue.java:93) at org.archive.crawler.frontier.WorkQueue.peek(WorkQueue.java:144) at org.archive.crawler.frontier.WorkQueueFrontier.next(WorkQueueFrontier.java: 472) at org.archive.crawler.framework.ToeThread.run(ToeThread.java:136) Caused by: com.sleepycat.je.DatabaseException: fetchTarget of 0xb27/0x91d1b4 IN=357281107 state=0 com.sleepycat.je.latch.LatchNotHeldException: Latch(com.sleepycat.je.log.FileManager_fileCache) not held at com.sleepycat.je.tree.IN.fetchTargetInternal(IN.java:547) at com.sleepycat.je.tree.IN.fetchTarget(IN.java:517) at com.sleepycat.je.dbi.CursorImpl.fetchCurrent(CursorImpl.java:1836) at com.sleepycat.je.dbi.CursorImpl.getCurrentAlreadyLatched(CursorImpl.java:10 58) at com.sleepycat.je.dbi.CursorImpl.getNextWithKeyChangeStatus(CursorImpl.java: 1203) at com.sleepycat.je.dbi.CursorImpl.getNext(CursorImpl.java:1133) at com.sleepycat.je.dbi.CursorImpl.getNextNoDup(CursorImpl.java:1266) at com.sleepycat.je.Cursor.searchInternal(Cursor.java:1201) at com.sleepycat.je.Cursor.searchAllowPhantoms(Cursor.java:1031) at com.sleepycat.je.Cursor.search(Cursor.java:910) at com.sleepycat.je.Cursor.getSearchKeyRange(Cursor.java:517) at org.archive.crawler.frontier.BdbMultipleWorkQueues.get(BdbMultipleWorkQueue s.java:228) at org.archive.crawler.frontier.BdbWorkQueue.peekItem(BdbWorkQueue.java:91) ... 3 more Caused by: com.sleepycat.je.latch.LatchNotHeldException: Latch(com.sleepycat.je.log.FileManager_fileCache) not held at com.sleepycat.je.latch.Latch.release(Latch.java:179) at com.sleepycat.je.log.FileManager.getFileHandle(FileManager.java:512) at com.sleepycat.je.log.LogManager.getLogSource(LogManager.java:628) at com.sleepycat.je.log.LogManager.getLogEntry(LogManager.java:483) at com.sleepycat.je.log.LogManager.get(LogManager.java:610) at com.sleepycat.je.tree.IN.fetchTargetInternal(IN.java:533) ... 15 more Exception in thread "ToeThread #1" java.lang.RuntimeException: java.io.IOException: fetchTarget of 0xb27/0x91d1b4 IN=357281107 state=0 com.sleepycat.je.latch.LatchNotHeldException: Latch(com.sleepycat.je.log.FileManager_fileCache) not held at org.archive.crawler.frontier.WorkQueue.peek(WorkQueue.java:148) at org.archive.crawler.frontier.WorkQueueFrontier.next(WorkQueueFrontier.java: 472) at org.archive.crawler.framework.ToeThread.run(ToeThread.java:136) Caused by: java.io.IOException: fetchTarget of 0xb27/0x91d1b4 IN=357281107 state=0 com.sleepycat.je.latch.LatchNotHeldException: Latch(com.sleepycat.je.log.FileManager_fileCache) not held at org.archive.crawler.frontier.BdbWorkQueue.peekItem(BdbWorkQueue.java:93) at org.archive.crawler.frontier.WorkQueue.peek(WorkQueue.java:144) ... 2 more Caused by: com.sleepycat.je.DatabaseException: fetchTarget of 0xb27/0x91d1b4 IN=357281107 state=0 com.sleepycat.je.latch.LatchNotHeldException: Latch(com.sleepycat.je.log.FileManager_fileCache) not held at com.sleepycat.je.tree.IN.fetchTargetInternal(IN.java:547) at com.sleepycat.je.tree.IN.fetchTarget(IN.java:517) at com.sleepycat.je.dbi.CursorImpl.fetchCurrent(CursorImpl.java:1836) at com.sleepycat.je.dbi.CursorImpl.getCurrentAlreadyLatched(CursorImpl.java:10 58) at com.sleepycat.je.dbi.CursorImpl.getNextWithKeyChangeStatus(CursorImpl.java: 1203) at com.sleepycat.je.dbi.CursorImpl.getNext(CursorImpl.java:1133) at com.sleepycat.je.dbi.CursorImpl.getNextNoDup(CursorImpl.java:1266) at com.sleepycat.je.Cursor.searchInternal(Cursor.java:1201) at com.sleepycat.je.Cursor.searchAllowPhantoms(Cursor.java:1031) at com.sleepycat.je.Cursor.search(Cursor.java:910) at com.sleepycat.je.Cursor.getSearchKeyRange(Cursor.java:517) at org.archive.crawler.frontier.BdbMultipleWorkQueues.get(BdbMultipleWorkQueue s.java:228) at org.archive.crawler.frontier.BdbWorkQueue.peekItem(BdbWorkQueue.java:91) ... 3 more Caused by: com.sleepycat.je.latch.LatchNotHeldException: Latch(com.sleepycat.je.log.FileManager_fileCache) not held at com.sleepycat.je.latch.Latch.release(Latch.java:179) at com.sleepycat.je.log.FileManager.getFileHandle(FileManager.java:512) at com.sleepycat.je.log.LogManager.getLogSource(LogManager.java:628) at com.sleepycat.je.log.LogManager.getLogEntry(LogManager.java:483) at com.sleepycat.je.log.LogManager.get(LogManager.java:610) at com.sleepycat.je.tree.IN.fetchTargetInternal(IN.java:533) ... 15 more

    JIRA | 10 years ago | (sourceforge)
    com.sleepycat.je.latch.LatchNotHeldException: Latch(com.sleepycat.je.log.FileManager_fileCache) not held

    Root Cause Analysis

    1. com.sleepycat.je.latch.LatchNotHeldException

      Latch(com.sleepycat.je.log.FileManager_fileCache) not held

      at com.sleepycat.je.latch.Latch.release()
    2. Berkeley DB Java Edition
      Cursor.getSearchKeyRange
      1. com.sleepycat.je.latch.Latch.release(Latch.java:179)
      2. com.sleepycat.je.log.FileManager.getFileHandle(FileManager.java:512)
      3. com.sleepycat.je.log.LogManager.getLogSource(LogManager.java:628)
      4. com.sleepycat.je.log.LogManager.getLogEntry(LogManager.java:483)
      5. com.sleepycat.je.log.LogManager.get(LogManager.java:610)
      6. com.sleepycat.je.tree.IN.fetchTargetInternal(IN.java:533)
      7. com.sleepycat.je.tree.IN.fetchTarget(IN.java:517)
      8. com.sleepycat.je.dbi.CursorImpl.fetchCurrent(CursorImpl.java:1836)
      9. com.sleepycat.je.dbi.CursorImpl.getCurrentAlreadyLatched(CursorImpl.java:1058)
      10. com.sleepycat.je.dbi.CursorImpl.getNextWithKeyChangeStatus(CursorImpl.java:1203)
      11. com.sleepycat.je.dbi.CursorImpl.getNext(CursorImpl.java:1133)
      12. com.sleepycat.je.dbi.CursorImpl.getNextNoDup(CursorImpl.java:1266)
      13. com.sleepycat.je.Cursor.searchInternal(Cursor.java:1201)
      14. com.sleepycat.je.Cursor.searchAllowPhantoms(Cursor.java:1031)
      15. com.sleepycat.je.Cursor.search(Cursor.java:910)
      16. com.sleepycat.je.Cursor.getSearchKeyRange(Cursor.java:517)
      16 frames
    3. org.archive.crawler
      ToeThread.run
      1. org.archive.crawler.frontier.BdbMultipleWorkQueues.get(BdbMultipleWorkQueues.java:228)
      2. org.archive.crawler.frontier.BdbWorkQueue.peekItem(BdbWorkQueue.java:91)
      3. org.archive.crawler.frontier.WorkQueue.peek(WorkQueue.java:144)
      4. org.archive.crawler.frontier.WorkQueueFrontier.next(WorkQueueFrontier.java:472)
      5. org.archive.crawler.framework.ToeThread.run(ToeThread.java:136)
      5 frames