[ 
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

Reply via email to