Hi Thomas,
Unfortunately I've been unable to reproduce this. It was on a
customer's computer, and I've collected what info and source data I
can from the customer.
Here's what info I can give you:
It's a desktop (Swing) app.
The app uses an H2 connection pool... (eg.
org.h2.jdbcx.JdbcConnectionPool.create(url, username, password))
Only the desktop apps uses the database.
The app is heavily multi-threaded.
The app uses H2 1.1.115. The database was created with 1.1.115 and
solely used with 1.1.115
Operating System: Mac OS X 10.5.7
Java Version: 1.5.0_19
File size of all database files (for the user in question) is about
140 Megabytes.
The h2 features in use are described by this URL, which is always used
to connect:
final String url =
"jdbc:h2:~/pokercopilot;" +
"MVCC=TRUE;" +
"CACHE_TYPE=SOFT_LRU;" +
"MAX_LENGTH_INPLACE_LOB=8192;" +
"DB_CLOSE_ON_EXIT=FALSE;" +
"COMPRESS_LOB=DEFLATE";
Full error stack trace:
org.springframework.jdbc.UncategorizedSQLException:
PreparedStatementCallback; uncategorized SQLException for SQL [update
PlayerSummary set starttime=?, takeincents=?, showdowntakeInCents=?,
nonshowdowntakeInCents=?, takeinbigblinds=?, timesseen=?, flopseen=?,
vpip=?, preflopraised=?, postflopbet=?, postflopraised=?,
postflopcalled=?, postflopfolded=?, postflopcallfoldbetorraise=?,
postflopbetorraised=?, blindstealattempt=?,
blindstealattemptopportunity=?, checkraised=?, wenttoshowdown=?,
wonatshowdown=?, wonwithoutshowdown=?, threebetpreflop=?,
threebetpreflopopportunity=?,
blindStealDefenseOpportunityOnBigBlind=?, calledPreflopRaise=?,
calledPreflopRaiseOpportunity=?, continuationBetPreflop=?,
continuationBetPreflopOpportunity=?, foldedToBlindStealOnBigBlind=?,
foldedToContinuationBet=?, foldedToContinuationBetOpportunity=?,
foldedToPreflopThreeBet=?, foldedToPreflopThreeBetOpportunity=? where
playerid=? and dayid=? and tablesize=? and gametypeid=? and ishero=?
and istournament=? and isplaymoney=? ]; SQL state [90112]; error code
[90112]; Fila no encontrada mientras se intentaba borrar del indice
PUBLIC.PLAYERSUMMARY_SHORT_IDX
Row not found when trying to delete from index
PUBLIC.PLAYERSUMMARY_SHORT_IDX; SQL statement:
update PlayerSummary set starttime=?, takeincents=?,
showdowntakeInCents=?, nonshowdowntakeInCents=?, takeinbigblinds=?,
timesseen=?, flopseen=?, vpip=?, preflopraised=?, postflopbet=?,
postflopraised=?, postflopcalled=?, postflopfolded=?,
postflopcallfoldbetorraise=?, postflopbetorraised=?,
blindstealattempt=?, blindstealattemptopportunity=?, checkraised=?,
wenttoshowdown=?, wonatshowdown=?, wonwithoutshowdown=?,
threebetpreflop=?, threebetpreflopopportunity=?,
blindStealDefenseOpportunityOnBigBlind=?, calledPreflopRaise=?,
calledPreflopRaiseOpportunity=?, continuationBetPreflop=?,
continuationBetPreflopOpportunity=?, foldedToBlindStealOnBigBlind=?,
foldedToContinuationBet=?, foldedToContinuationBetOpportunity=?,
foldedToPreflopThreeBet=?, foldedToPreflopThreeBetOpportunity=? where
playerid=? and dayid=? and tablesize=? and gametypeid=? and ishero=?
and istournament=? and isplaymoney=? [90112-115]; nested exception is
org.h2.jdbc.JdbcSQLException: Fila no encontrada mientras se intentaba
borrar del indice PUBLIC.PLAYERSUMMARY_SHORT_IDX
Row not found when trying to delete from index
PUBLIC.PLAYERSUMMARY_SHORT_IDX; SQL statement:
update PlayerSummary set starttime=?, takeincents=?,
showdowntakeInCents=?, nonshowdowntakeInCents=?, takeinbigblinds=?,
timesseen=?, flopseen=?, vpip=?, preflopraised=?, postflopbet=?,
postflopraised=?, postflopcalled=?, postflopfolded=?,
postflopcallfoldbetorraise=?, postflopbetorraised=?,
blindstealattempt=?, blindstealattemptopportunity=?, checkraised=?,
wenttoshowdown=?, wonatshowdown=?, wonwithoutshowdown=?,
threebetpreflop=?, threebetpreflopopportunity=?,
blindStealDefenseOpportunityOnBigBlind=?, calledPreflopRaise=?,
calledPreflopRaiseOpportunity=?, continuationBetPreflop=?,
continuationBetPreflopOpportunity=?, foldedToBlindStealOnBigBlind=?,
foldedToContinuationBet=?, foldedToContinuationBetOpportunity=?,
foldedToPreflopThreeBet=?, foldedToPreflopThreeBetOpportunity=? where
playerid=? and dayid=? and tablesize=? and gametypeid=? and ishero=?
and istournament=? and isplaymoney=? [90112-115]
at
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate
(AbstractFallbackSQLExceptionTranslator.java:83)
at
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate
(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute
(JdbcTemplate.java:607)
at org.springframework.jdbc.core.JdbcTemplate.update
(JdbcTemplate.java:792)
at org.springframework.jdbc.core.JdbcTemplate.update
(JdbcTemplate.java:850)
at org.springframework.jdbc.core.JdbcTemplate.update
(JdbcTemplate.java:858)
at org.springframework.jdbc.core.simple.SimpleJdbcTemplate.update
(SimpleJdbcTemplate.java:237)
at com.barbarysoftware.pokercopilot.database.ax.update(SourceFile:
283)
at com.barbarysoftware.pokercopilot.database.ac.a(SourceFile:412)
at com.barbarysoftware.pokercopilot.database.ac.a(SourceFile:96)
at com.barbarysoftware.pokercopilot.database.ac.b(SourceFile:79)
at com.barbarysoftware.pokercopilot.database.ac.a(SourceFile:34)
at
com.barbarysoftware.pokercopilot.database.ah.doInTransactionWithoutResult
(SourceFile:51)
at
org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction
(TransactionCallbackWithoutResult.java:33)
at
org.springframework.transaction.support.TransactionTemplate.execute
(TransactionTemplate.java:128)
at com.barbarysoftware.pokercopilot.database.ac.a(SourceFile:48)
at com.barbarysoftware.pokercopilot.loader.q.a(SourceFile:43)
at com.barbarysoftware.pokercopilot.loader.q.run(SourceFile:28)
Caused by: org.h2.jdbc.JdbcSQLException: Fila no encontrada mientras
se intentaba borrar del indice PUBLIC.PLAYERSUMMARY_SHORT_IDX
Row not found when trying to delete from index
PUBLIC.PLAYERSUMMARY_SHORT_IDX; SQL statement:
update PlayerSummary set starttime=?, takeincents=?,
showdowntakeInCents=?, nonshowdowntakeInCents=?, takeinbigblinds=?,
timesseen=?, flopseen=?, vpip=?, preflopraised=?, postflopbet=?,
postflopraised=?, postflopcalled=?, postflopfolded=?,
postflopcallfoldbetorraise=?, postflopbetorraised=?,
blindstealattempt=?, blindstealattemptopportunity=?, checkraised=?,
wenttoshowdown=?, wonatshowdown=?, wonwithoutshowdown=?,
threebetpreflop=?, threebetpreflopopportunity=?,
blindStealDefenseOpportunityOnBigBlind=?, calledPreflopRaise=?,
calledPreflopRaiseOpportunity=?, continuationBetPreflop=?,
continuationBetPreflopOpportunity=?, foldedToBlindStealOnBigBlind=?,
foldedToContinuationBet=?, foldedToContinuationBetOpportunity=?,
foldedToPreflopThreeBet=?, foldedToPreflopThreeBetOpportunity=? where
playerid=? and dayid=? and tablesize=? and gametypeid=? and ishero=?
and istournament=? and isplaymoney=? [90112-115]
at org.h2.message.Message.getSQLException(Message.java:105)
at org.h2.message.Message.getSQLException(Message.java:116)
at org.h2.message.Message.getSQLException(Message.java:75)
at org.h2.index.BtreeLeaf.remove(BtreeLeaf.java:132)
at org.h2.index.BtreeNode.remove(BtreeNode.java:147)
at org.h2.index.BtreeNode.remove(BtreeNode.java:147)
at org.h2.index.BtreeIndex.remove(BtreeIndex.java:261)
at org.h2.index.MultiVersionIndex.remove(MultiVersionIndex.java:
145)
at org.h2.table.TableData.removeRow(TableData.java:316)
at org.h2.table.Table.updateRows(Table.java:380)
at org.h2.command.dml.Update.update(Update.java:132)
at org.h2.command.CommandContainer.update(CommandContainer.java:
72)
at org.h2.command.Command.executeUpdate(Command.java:208)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal
(JdbcPreparedStatement.java:139)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdate
(JdbcPreparedStatement.java:128)
at org.springframework.jdbc.core.JdbcTemplate
$2.doInPreparedStatement(JdbcTemplate.java:798)
at org.springframework.jdbc.core.JdbcTemplate.execute
(JdbcTemplate.java:591)
... 15 more
Sorry I can't provide more useful info.
Rgds
Steve
On Jul 23, 9:41 am, Thomas Mueller <[email protected]>
wrote:
> Hi,
>
> This doesn't sound good... Could you post a reproducible test case? If
> not, I have a few questions:
>
> - Could you send the full stack trace of the exception including message text?
> - Do you use Tomcat or another web server?
> Do you unload or reload the web application?
> - You can find out if the database is corrupted when running
> SCRIPT TO 'test.sql'
> - Did you use multiple connections?
> - A workarounds is: delete the index.db file (it is re-created
> automatically) and try again. Does it work when you do this?
> - The third workarounds is: 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?
> - With which version of H2 was this database created?
> You can find it out using:
> select * from information_schema.settings where name='CREATE_BUILD'
> - Did you use any settings or special features (for example, the setting
> LOG=0, or two phase commit, linked tables, cache settings)?
> - Is the application multi-threaded?
> - What operating system, file system, and virtual machine
> (java -version) do you use?
> - Is it (or was it at some point) a networked file system?
> - How big is the database (file sizes)?
> - 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 .data.db file where this exception occurs?
>
> Regards,
> Thomas
>
> On Tue, Jul 21, 2009 at 2:02 PM, SteveMcLeod<[email protected]> wrote:
>
> > Hi Thomas,
>
> > One of my users sent this exception to me. It seems severe, based on
> > the error details for 90112, so I thought it was worth reporting here.
>
> > For the sake of completeness, here's some details:
> > final String databaseUrl =
> > "jdbc:h2:~/pokercopilot;" +
> > "MVCC=TRUE;" +
> > "CACHE_TYPE=SOFT_LRU;" +
> > "MAX_LENGTH_INPLACE_LOB=8192;" +
> > "DB_CLOSE_ON_EXIT=FALSE;" +
> > "COMPRESS_LOB=DEFLATE";
>
> > The user is running on Mac OS X 10.5.7, Java Version: 1.5.0_19, in
> > Colombia, using a Spanish-language locale.
>
> > Row not found when trying to delete from index
> > PUBLIC.PLAYERSUMMARY_SHORT_IDX; SQL statement:
> > update PlayerSummary set starttime=?, takeincents=?,
> > showdowntakeInCents=?, nonshowdowntakeInCents=?, takeinbigblinds=?,
> > timesseen=?, flopseen=?, vpip=?, preflopraised=?, postflopbet=?,
> > postflopraised=?, postflopcalled=?, postflopfolded=?,
> > postflopcallfoldbetorraise=?, postflopbetorraised=?,
> > blindstealattempt=?, blindstealattemptopportunity=?, checkraised=?,
> > wenttoshowdown=?, wonatshowdown=?, wonwithoutshowdown=?,
> > threebetpreflop=?, threebetpreflopopportunity=?,
> > blindStealDefenseOpportunityOnBigBlind=?, calledPreflopRaise=?,
> > calledPreflopRaiseOpportunity=?, continuationBetPreflop=?,
> > continuationBetPreflopOpportunity=?, foldedToBlindStealOnBigBlind=?,
> > foldedToContinuationBet=?, foldedToContinuationBetOpportunity=?,
> > foldedToPreflopThreeBet=?, foldedToPreflopThreeBetOpportunity=? where
> > playerid=? and dayid=? and tablesize=? and gametypeid=? and ishero=?
> > and istournament=? and isplaymoney=? [90112-115]
> > at org.h2.message.Message.getSQLException(Message.java:105)
> > at org.h2.message.Message.getSQLException(Message.java:116)
> > at org.h2.message.Message.getSQLException(Message.java:75)
> > at org.h2.index.BtreeLeaf.remove(BtreeLeaf.java:132)
> > at org.h2.index.BtreeNode.remove(BtreeNode.java:147)
> > at org.h2.index.BtreeNode.remove(BtreeNode.java:147)
> > at org.h2.index.BtreeIndex.remove(BtreeIndex.java:261)
> > at org.h2.index.MultiVersionIndex.remove(MultiVersionIndex.java:
> > 145)
> > at org.h2.table.TableData.removeRow(TableData.java:316)
> > at org.h2.table.Table.updateRows(Table.java:380)
> > at org.h2.command.dml.Update.update(Update.java:132)
> > at org.h2.command.CommandContainer.update(CommandContainer.java:
> > 72)
> > at org.h2.command.Command.executeUpdate(Command.java:208)
> > at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal
> > (JdbcPreparedStatement.java:139)
> > at org.h2.jdbc.JdbcPreparedStatement.executeUpdate
> > (JdbcPreparedStatement.java:128)
>
> > Regards,
>
> > Steve
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---