db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kristian Waagan (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-5098) embedded/in-memory: SQLNonTransientConnectionException: No current connection due to invalid page format
Date Mon, 16 May 2011 09:50:47 GMT

     [ https://issues.apache.org/jira/browse/DERBY-5098?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Kristian Waagan updated DERBY-5098:
-----------------------------------

    Attachment: derby-5098-1a-overflow_fixes.stat
                derby-5098-1a-overflow_fixes.diff

Attaching patch 1a, which fixes the problem reported.

The bug is an int overflow, which causes the in-memory backend  to allocate a new page instead
of using the existing page. This is why the page contains zeros only.
I also changed a few other places in the code where there's a possibility for int overflow,
by casting one of the operands to long.

A cautionary note about running the repro unmodified, it seems to require more than 20 GB
to finish. Is this another observation of DERBY-2338?

suites.All ran successfully on Solaris 11 Express with Java SE 6.


Patch ready for review.

> embedded/in-memory: SQLNonTransientConnectionException: No current connection   due to
invalid page format
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5098
>                 URL: https://issues.apache.org/jira/browse/DERBY-5098
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.6.1.0, 10.7.1.1
>         Environment: OS: windows 2008 R2 x64, AIX 7.1, possibly other
> JVM: SUN/Oracle 1.6.0_24 server x64, IBM J9 Java5 vm2.3.sr12.j9vmap6423-20100630, possibly
others
>            Reporter: Christian Deutsch
>            Assignee: Kristian Waagan
>         Attachments: DerbyRepro5098.java, derby-5098-1a-overflow_fixes.diff, derby-5098-1a-overflow_fixes.stat,
derby.10.6.1.0.IBM_J9.java5.vm2.3.sr12.j9vmap6423-20100630.log, derby.10.6.1.0_1.6.0_24.log,
derby.10.7.1.1.IBM_J9.java5.vm2.3.sr12.j9vmap6423-20100630.log, derby.10.7.1.1_1.6.0_24.log,
derby.10.7.1.1_1.6.0_24__singleThreaded.log
>
>
> Hi
> In my case I am inserting many many rows in a in memory derby DB. After a while (a few
minutes) I get a "SQLNonTransientConnectionException: No current connection" and the derby.log
(see attachment) contains a complaint about an invalid page format with a dump of the page
in question (which is completely zeros). The derby.log also contains another entry before
the error (usually the same time stamp as the error): Cleanup action starting
> Maybe this is related to the error.
> Please find attached a test case to reproduce the issue. Just give it enough memory (-Xmx4g).
It will insert a lot of rows to an in-memory derby DB with several threads over several connections.
In case you want to run only one thread with one connection you might want to set these properties:
>  -DuseSingleConnectionOnly=true -DuseSynchronousCommit=true -DnumberOfAsyncThreadsPerGenerator=1
-DnumberOfGeneratorThreads=1 -DnubmerOfRowsPerThread=100000000 
> Thank you very much
> Christian

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message