Sergio Cruz created DERBY-7156:
----------------------------------

             Summary: ERROR XSDAO: Internal error: Page attempted latched twice 
when executing parallel accesses to the same binary column
                 Key: DERBY-7156
                 URL: https://issues.apache.org/jira/browse/DERBY-7156
             Project: Derby
          Issue Type: Bug
    Affects Versions: 10.16.1.1, 10.15.2.0, 10.15.1.3
         Environment: OS name:         Windows 10
OS architecture: amd64
OS version:      10.0
Java Version:    17.0.7 
Java Vendor:     Eclipse Adoptium
            Reporter: Sergio Cruz
         Attachments: TestTx.java, derby.log, sysinfo.txt

{{When executing parallel _SELECT_ statements accessing to a table with a 
binary column, sometimes an error indicating that a page was attempted latched 
twice is received while reading the value of the binary column.}}

 

{{This error _ERROR XSDAO: Internal error: page Page(334,Container(0, 1456)) 
attempted latched twice_ is received when connection is inside a transaction.}}

{{In case the connection is not in a transaction, the error is different: 
_ERROR 40XD0: Container has been closed_}}

 

I attach a Java class for reproducing the issue. It has the following lines for 
testing both versions of the error
{code:java}
//conn.setAutoCommit(true); //ERROR 40XD0: Container has been closed.
conn.setAutoCommit(false); //ERROR XSDAO: Internal error: page 
Page(334,Container(0, 1392)) attempted latched twice. {code}
This is an example of the received error.

 
{noformat}
Exception in thread "pool-1-thread-1" java.lang.RuntimeException: 
java.io.IOException: ERROR XSDAO: Internal error: page Page(334,Container(0, 
1456)) attempted latched twice.
    at org.scruz.derby.TestTx$Access.run(TestTx.java:60)
    at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.io.IOException: ERROR XSDAO: Internal error: page 
Page(334,Container(0, 1456)) attempted latched twice.
    at 
org.apache.derby.impl.store.raw.data.OverflowInputStream.fillByteHolder(OverflowInputStream.java:168)
    at 
org.apache.derby.impl.store.raw.data.BufferedByteHolderInputStream.read(BufferedByteHolderInputStream.java:37)
    at java.base/java.io.FilterInputStream.read(FilterInputStream.java:82)
    at java.base/java.io.FilterInputStream.read(FilterInputStream.java:82)
    at java.base/java.io.FilterInputStream.read(FilterInputStream.java:82)
    at 
org.apache.derby.iapi.services.io.CloseFilterInputStream.read(CloseFilterInputStream.java:60)
    at org.scruz.derby.TestTx$Access.run(TestTx.java:55)
    ... 3 more
Caused by: ERROR XSDAO: Internal error: page Page(334,Container(0, 1456)) 
attempted latched twice.
    at 
org.apache.derby.shared.common.error.StandardException.newException(StandardException.java:300)
    at 
org.apache.derby.shared.common.error.StandardException.newException(StandardException.java:295)
    at 
org.apache.derby.impl.store.raw.data.BasePage.setExclusive(BasePage.java:1710)
    at 
org.apache.derby.impl.store.raw.data.BaseContainer.latchPage(BaseContainer.java:527)
    at 
org.apache.derby.impl.store.raw.data.FileContainer.latchPage(FileContainer.java:3532)
    at 
org.apache.derby.impl.store.raw.data.FileContainer.getUserPage(FileContainer.java:2551)
    at 
org.apache.derby.impl.store.raw.data.FileContainer.getPage(FileContainer.java:2593)
    at 
org.apache.derby.impl.store.raw.data.BaseContainerHandle.getPage(BaseContainerHandle.java:319)
    at 
org.apache.derby.impl.store.raw.data.OverflowInputStream.fillByteHolder(OverflowInputStream.java:151)
    ... 9 more{noformat}
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to