Part of my test (including the database) runs in a forked process created 
using ProcessBuilder. I call Process#destroy to destroy the JVM that runs 
the database. It seems that the destroy call triggers a SIGTERM, which is 
not as abrupt as I was thinking. 

Regards,

Laurent


On Thursday, July 23, 2015 at 7:31:28 PM UTC+2, Thomas Mueller wrote:
>
> Hi,
>
> How do you kill the database?
>
> Regards,
> Thomas
>
>
> On Thu, Jul 23, 2015 at 5:21 PM, Laurent Pellegrino <
> [email protected] <javascript:>> wrote:
>
>> 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] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at http://groups.google.com/group/h2-database.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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.

Reply via email to