Hi,

I'm sorry for the delay.

This looks like a corrupt database. To recover the data, use the tool
org.h2.tools.Recover to create the SQL script file, and then re-create the
database using this script. Does it work when you do this?

I am very interested in analyzing and solving this problem. Corruption
problems have top priority for me. I have a few questions:

- What is your database URL?
- Did you use LOG=0 or LOG=1? Did you read the FAQ about it?
- Did the system ever run out of disk space?
- Could you send the full stack trace of the exception including message
text?
- Did you use SHUTDOWN DEFRAG or the database setting DEFRAG_ALWAYS with H2
version 1.3.159 or older?
- How many connections does your application use concurrently?
- Do you use temporary tables?
- With which version of H2 was this database created?
    You can find it out using:
    select * from information_schema.settings where name='CREATE_BUILD'
    or have a look in the SQL script created by the recover tool.
- Did the application run out of memory (once, or multiple times)?
- Do you use any settings or special features (for example cache settings,
    two phase commit, linked tables)?
- Do you use any H2-specific system properties?
- Is the application multi-threaded?
- What operating system, file system, and virtual machine
    (java -version) do you use?
- How did you start the Java process (java -Xmx... and so on)?
- Is it (or was it at some point) a networked file system?
- How big is the database (file sizes)?
- How much heap memory does the Java process have?
- Is the database usually closed normally, or is process terminated
    forcefully or the computer switched off?
- Is it possible to reproduce this problem using a fresh database
    (sometimes, or always)?
- Are there any other exceptions (maybe in the .trace.db file)?
    Could you send them please?
- Do you still have any .trace.db files, and if yes could you send them?
- Could you send the .h2.db file where this exception occurs?

Regards,

Thomas

On Mon, Aug 13, 2012 at 9:07 PM, bdeen <[email protected]> wrote:

> I'm running with h2 h2-1.3.166.jar.  I'm getting the following.  The only
> thing I see on this issue is that this was suppose to be fixed in the 159
> version.  Anyone see this and know what the actual issue is, I've used the
> error identifier on h2database and it says an io error occurred. I'm
> getting this at the very end of my unit test run after using the table
> structure to create/update/delete local cache entries.
>
>
>
> org.h2.jdbc.JdbcSQLException: IO Exception: "java.io.IOException:
> org.h2.jdbc.JdbcSQLException: IO Exception: ""Missing lob entry: 4/14""
> [90028-166]"; "lob: null table: 16 id: 4" [90031-166]
> at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
> at org.h2.message.DbException.get(DbException.java:158)
> at org.h2.message.DbException.convertIOException(DbException.java:315)
> at org.h2.value.ValueLobDb.getBytesNoCopy(ValueLobDb.java:229)
> at org.h2.value.ValueLobDb.getBytes(ValueLobDb.java:214)
> at org.h2.jdbc.JdbcResultSet.getBytes(JdbcResultSet.java:970)
> at
> com.j256.ormlite.jdbc.JdbcDatabaseResults.getBytes(JdbcDatabaseResults.java:106)
> at
> com.j256.ormlite.field.types.StringBytesType.resultToSqlArg(StringBytesType.java:41)
> at
> com.j256.ormlite.field.BaseFieldConverter.resultToJava(BaseFieldConverter.java:24)
> at com.j256.ormlite.field.FieldType.resultToJava(FieldType.java:761)
> at
> com.j256.ormlite.stmt.mapped.BaseMappedQuery.mapRow(BaseMappedQuery.java:60)
> at
> com.j256.ormlite.stmt.StatementExecutor.queryForFirst(StatementExecutor.java:96)
> at com.j256.ormlite.dao.BaseDaoImpl.queryForFirst(BaseDaoImpl.java:229)
> at com.j256.ormlite.stmt.QueryBuilder.queryForFirst(QueryBuilder.java:269)
> at DocScannerMain.getFalconData(Unknown Source)
> at DocScannerMain$UpdateCache.run(Unknown Source)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at
> java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:573)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:570)
> at java.lang.Thread.run(Thread.java:680)
> Caused by: java.io.IOException: org.h2.jdbc.JdbcSQLException: IO
> Exception: "Missing lob entry: 4/14" [90028-166]
> at org.h2.message.DbException.convertToIOException(DbException.java:348)
> at org.h2.store.LobStorage$LobInputStream.fillBuffer(LobStorage.java:464)
> at org.h2.store.LobStorage$LobInputStream.readFully(LobStorage.java:437)
> at org.h2.store.LobStorage$LobInputStream.read(LobStorage.java:428)
> at org.h2.util.IOUtils.copy(IOUtils.java:163)
> at org.h2.util.IOUtils.readBytesAndClose(IOUtils.java:276)
> at org.h2.value.ValueLobDb.getBytesNoCopy(ValueLobDb.java:227)
> ... 18 more
> Caused by: org.h2.jdbc.JdbcSQLException: IO Exception: "Missing lob entry:
> 4/14" [90028-166]
> at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
> at org.h2.message.DbException.get(DbException.java:169)
> at org.h2.message.DbException.get(DbException.java:146)
> at org.h2.store.LobStorage.readBlock(LobStorage.java:228)
> at org.h2.store.LobStorage$LobInputStream.fillBuffer(LobStorage.java:461)
> ... 23 more
>
>  --
> You received this message because you are subscribed to the Google Groups
> "H2 Database" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/h2-database/-/zCYK_7N6Vx0J.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/h2-database?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.

Reply via email to