427 words

Issue #119 - EOFException

BugVersion: 2.3.3Priority: CriticalStatus: FixedReplies: 2
#1
2011-12-22 12:08

Not sure if you'll be able to help with this but I've had an application get into a state where it cannot access anything from the database - queries fail with the following exception:

[ObjectDB 2.3.3_06] javax.persistence.PersistenceException
Failed to read from file 'F:\calculationservice\objectdb\dbs\workflow\uatsrtlonw242-WSAgent-2-Graphs.odb' (error 117)
at com.objectdb.jpa.JpaQuery.getResultList(JpaQuery.java:675)
at rbccm.felix.objectdb.workflow.ObjectDbGraphContainer.find(Unknown Source)
at rbccm.felix.objectdb.workflow.ObjectDbGraphContainer.get(Unknown Source)
at rbccm.digest2.execution.Workflow2Runner.processWorkflows(Unknown Source)
at rbccm.digest2.execution.Workflow2Runner.processWorkflow(Unknown Source)
at rbccm.digest2.execution.Workflow2Runner.workflowCompleteForSomeTasks(Unknown Source)
at rbccm.felix.gridservice.workflow.WorkflowService.process(Unknown Source)
at rbccm.felix.gridservice.workflow.WorkflowService.process(Unknown Source)
at rbccm.felix.gridservice.workflow.WorkflowService.process(Unknown Source)
at rbccm.felix.framework.service.ServiceRunner.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)
Caused by: com.objectdb.o.UserException: Failed to read from file 'F:\calculationservice\objectdb\dbs\workflow\uatsrtlonw242-WSAgent-2-Graphs.odb'
at com.objectdb.o.MSG.d(MSG.java:74)
at com.objectdb.o.LFL.T(LFL.java:1059)
at com.objectdb.o.PAG.am(PAG.java:818)
at com.objectdb.o.PGC.w(PGC.java:237)
at com.objectdb.o.SNP.B(SNP.java:366)
at com.objectdb.o.OBI.v(OBI.java:430)
at com.objectdb.o.OBI.<init>(OBI.java:199)
at com.objectdb.o.PBI.<init>(PBI.java:56)
at com.objectdb.o.MST.aX(MST.java:789)
at com.objectdb.o.BQI.Ut(BQI.java:123)
at com.objectdb.o.PRG.ae(PRG.java:637)
at com.objectdb.o.PRG.ad(PRG.java:539)
at com.objectdb.o.QRM.U4(QRM.java:259)
at com.objectdb.o.MST.U4(MST.java:947)
at com.objectdb.o.WRA.U4(WRA.java:290)
at com.objectdb.o.WSM.U4(WSM.java:113)
at com.objectdb.o.QRR.g(QRR.java:232)
at com.objectdb.o.QRR.b(QRR.java:151)
at com.objectdb.jpa.JpaQuery.getResultList(JpaQuery.java:666)
... 10 more
Caused by: java.io.EOFException
at java.io.RandomAccessFile.readFully(RandomAccessFile.java:399)
at com.objectdb.o.LFL.T(LFL.java:1056)
... 27 more

Before this error I was getting a large number of EntityNotFoundExceptions:

[ObjectDB 2.3.3_06] javax.persistence.EntityNotFoundException
Entity is not found: rbccm.digest.workflow.execution.WorkflowInstance#'e8bc02bc-ac4c-49c4-a87a-0fcc65a71778' (error 631)
at rbccm.digest.workflow.execution.WorkflowInstance.__odbGet_taskInstances(Unknown Source)
at rbccm.digest.workflow.execution.WorkflowInstance.setGlobalError(Unknown Source)
at rbccm.digest2.execution.Workflow2Runner.cancelWorkflow(Unknown Source)
at rbccm.digest2.execution.Workflow2Runner.cancelWorkflow(Unknown Source)
at rbccm.digest2.execution.Workflow2Runner.workflowCompleteForSomeTasks(Unknown Source)
at rbccm.felix.gridservice.workflow.WorkflowService.process(Unknown Source)
at rbccm.felix.gridservice.workflow.WorkflowService.process(Unknown Source)
at rbccm.felix.gridservice.workflow.WorkflowService.process(Unknown Source)
at rbccm.felix.framework.service.ServiceRunner.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)

These were unexpected as the objects should be eager loaded and existed on persistance.

I've attached the database in question. ObjectDbDoctor finds a number of errors in it (output attached) but I'm not sure if it will be of much use to you.

felixobjectdb
felixobjectdb's picture
Joined on 2011-02-10
User Post #98
#2
2011-12-23 11:01

The database file that you uploaded is corrupted and you must repair it using the ObjectDB Doctor before you can use it. Otherwise, many different exceptions (including EOF) are expected.

Following is a list of possible causes:

  • Hardware failure (e.g. a physical disk failure).
  • Software failure (e.g. a bug of the Operating System, Java or ObjectDB).
  • Copying a database file while it is open and in use.
  • Network or I/O failure when copying, moving or transferring a database file.
  • Transferring a database file over FTP in ASCII mode (BINARY mode should be used).
  • Deleting an ObjectDB database recovery file or recording directory if it exists, or copying, moving or transferring an ObjectDB database file without its recovery file or recording directory.
  • Power failure when the database is being updated - if recovery file is disabled.
  • Using the database file simultaneously by two instances of the ObjectDB engine (not using one server process), thus bypassing ObjectDB internal file lock protection.
  • Modifying the database file externally not through ObjectDB (e.g. by malicious software such as a computer virus).

Maybe you can provide more details:

  • What hardware are you using?
  • Which JVM?
  • What is the recovery configuration?
  • Where is the database file located - on a local drive or on a shared network drive?
  • Is accessing the database from multiple processes possible (more than one ObjectDB application or another utility that manages files, including the database file while it is open by ObjectDB)?
  • Any special event before that failure (e.g. power failure? shutdown? process kill?)
  • Any other suspicious activity.
ObjectDB Support
ObjectDB - Fast Object Database for Java (JPA/JDO)
support
support's picture
Joined on 2010-05-03
User Post #823
#3
2011-12-31 16:09

The stack trace reflects a bug that was reproduced and fixed using the test in issue #121.

ObjectDB Support
ObjectDB - Fast Object Database for Java (JPA/JDO)
support
support's picture
Joined on 2010-05-03
User Post #836

Post Reply

Please read carefully the posting instructions - before posting to the ObjectDB website.

  • You may have to disable pop up blocking in order to use the toolbar (e.g. in Chrome).
  • Use ctrl + right click to open the browser context menu in the editing area (e.g. for using a browser spell checker).
  • To insert formatted lines (e.g. Java code, stack trace) - select a style in the toolbar and then insert the text in the new created block.
  • Avoid overflow of published source code examples by breaking long lines.
  • You may mark in paragraph code words (e.g. class names) with the code style (can be applied by ctrl + D).
  • Long stack traces (> 50 lines) and complex source examples (> 100 lines) should be posted as attachments.
Attachments:
Maximum file size: 32 MB
Cancel