Hello, I am using H2 version 1.4.187 along with Hibernate in order to persist some data for test. These data contain some BLOBs which are inserted in the DB using transactions. Once transactions are finished, the database is killed abruptly and then restarted.
Unfortunately, when the database is restarted, if I execute a query that access to some BLOB data I get an exception. Is it a known issue ? is there a workaround while still using MVCC ? is a fix planned soon ? Below is a copy of the exception mentioned previously: [Scheduler output]: Caused by: org.hibernate.HibernateException: > IOException occurred reading a binary value [Scheduler output]: at > org.hibernate.type.descriptor.java.DataHelper.extractBytes(DataHelper.java:191) [Scheduler output]: at > org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:137) [Scheduler output]: at > org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:44) [Scheduler output]: at > org.hibernate.type.descriptor.sql.BlobTypeDescriptor$1.doExtract(BlobTypeDescriptor.java:65) [Scheduler output]: at > org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64) [Scheduler output]: at > org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:267) [Scheduler output]: at > org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:263) [Scheduler output]: at > org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253) [Scheduler output]: at > org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:338) [Scheduler output]: at > org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2969) [Scheduler output]: at > org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1696) [Scheduler output]: at > org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1628) [Scheduler output]: at org.hibernate.loader.Loader.getRow(Loader.java:1515) [Scheduler output]: at > org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:726) [Scheduler output]: at > org.hibernate.loader.Loader.processResultSet(Loader.java:953) [Scheduler output]: at org.hibernate.loader.Loader.doQuery(Loader.java:921) [Scheduler output]: at > org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355) [Scheduler output]: at org.hibernate.loader.Loader.doList(Loader.java:2554) [Scheduler output]: at org.hibernate.loader.Loader.doList(Loader.java:2540) [Scheduler output]: at > org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2370) [Scheduler output]: at org.hibernate.loader.Loader.list(Loader.java:2365) [Scheduler output]: at > org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:497) [Scheduler output]: at > org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387) [Scheduler output]: at > org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236) [Scheduler output]: at > org.hibernate.internal.SessionImpl.list(SessionImpl.java:1300) [Scheduler output]: at > org.hibernate.internal.QueryImpl.list(QueryImpl.java:103) [Scheduler output]: at > org.ow2.proactive.scheduler.core.db.SchedulerDBManager.loadJobResult(SchedulerDBManager.java:1297) [Scheduler output]: at > org.ow2.proactive.scheduler.core.db.SchedulerDBManager.access$1700(SchedulerDBManager.java:76) [Scheduler output]: at > org.ow2.proactive.scheduler.core.db.SchedulerDBManager$29.executeWork(SchedulerDBManager.java:1227) [Scheduler output]: at > org.ow2.proactive.scheduler.core.db.SchedulerDBManager$29.executeWork(SchedulerDBManager.java:1203) [Scheduler output]: at > org.ow2.proactive.scheduler.core.db.TransactionHelper.runWithoutTransaction(TransactionHelper.java:95) [Scheduler output]: ... 8 more [Scheduler output]: Caused by: java.io.IOException: Block not found in id > [1, -30, 7, 5] [1.4.187/50] [Scheduler output]: at > org.h2.mvstore.StreamStore$Stream.read(StreamStore.java:466) [Scheduler output]: at java.io.InputStream.read(InputStream.java:101) [Scheduler output]: at > org.hibernate.type.descriptor.java.DataHelper.extractBytes(DataHelper.java:183) [Scheduler output]: ... 38 more [Scheduler output]: Caused by: java.lang.IllegalStateException: Block 5 not > found [1.4.187/50] [Scheduler output]: at > org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:773) [Scheduler output]: at > org.h2.mvstore.StreamStore.getBlock(StreamStore.java:388) [Scheduler output]: at > org.h2.mvstore.StreamStore$Stream.nextBuffer(StreamStore.java:503) [Scheduler output]: at > org.h2.mvstore.StreamStore$Stream.read(StreamStore.java:460) [Scheduler output]: ... 40 more -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/h2-database. For more options, visit https://groups.google.com/d/optout.
