Return-Path: X-Original-To: apmail-db-derby-dev-archive@www.apache.org Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A2B369DCD for ; Mon, 7 May 2012 19:53:10 +0000 (UTC) Received: (qmail 4278 invoked by uid 500); 7 May 2012 19:53:10 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 4255 invoked by uid 500); 7 May 2012 19:53:10 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 4247 invoked by uid 99); 7 May 2012 19:53:10 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 May 2012 19:53:10 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 May 2012 19:53:08 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id CB9864374E5 for ; Mon, 7 May 2012 19:52:48 +0000 (UTC) Date: Mon, 7 May 2012 19:52:48 +0000 (UTC) From: "Rick Hillegas (JIRA)" To: derby-dev@db.apache.org Message-ID: <517853908.36179.1336420368836.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <806810189.15310.1305554327557.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Updated] (DERBY-5234) Unable to insert data into table. Failed due be "ERROR XSDG0: Page Page(51919,Container(0, 1104)) could not be read from disk." MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/DERBY-5234?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Rick Hillegas updated DERBY-5234: --------------------------------- Attachment: Derby5234.java Attaching Derby5234.java, a simpler, faster version of the repro. On my machine, this repro trips the bug in about 12 seconds. I will probably use this simpler code in the test case which will accompany the first patch. > Unable to insert data into table. Failed due be "ERROR XSDG0: Page Page(51919,Container(0, 1104)) could not be read from disk." > ------------------------------------------------------------------------------------------------------------------------------- > > Key: DERBY-5234 > URL: https://issues.apache.org/jira/browse/DERBY-5234 > Project: Derby > Issue Type: Bug > Components: Store > Affects Versions: 10.5.3.0 > Environment: HP-UX 11iv2 in production environment with JDK1.6; Solaris 5/10 in test environment with JDK 1.6 > Reporter: Varma R > Priority: Critical > Labels: ERROR, XSDG0, apache, corruption, data, derby, derby_triage10_9 > Attachments: 5234_alloc.out, 5234_page_10219.out, 5234_summary.out, DataFileReader_Output.zip, DbCompressErrorTester.java, Derby5234.java, derby-5234-01-aa-emptyAllocPage.diff, log191.dat, log85.dat > > > One of the derby database table "gets corrupted"/"indicates connection not available" during processing inserts from java client application as shown in the trace and the only way to recover from this error is to rebuild the DB - by deleting the data and creating the tables again. This happens once in a while (thrice in a span of two months) and the java application (run in multiple servers), which updates the database, processes around 100 million transactions per hour (in total and each transation results in 4-5 updates to the DB) > There are eight tables in the derby database. > TABLE NAME ROWS COUNT (at time of corruption) > --------------------------------------------------------------------------------- > KPI.KPI_MERGEIN; 362917 > KPI.KPI_IN; 422508 > KPI.KPI_DROPPED; 53667 > KPI.KPI_ERROR1; 0 > KPI.KPI_ERROR2; 2686 > KPI.KPI_ERRORMERGE; 0 > KPI.KPI_MERGEOUT; 362669 > KPI.KPI_OUT; 125873 > The derby database has been started with the following parameters > CMD="java -Dderby.system.home=$DERBY_OPTS -Dderby.locks.monitor=true -Dderby.locks.deadlockTrace=true -Dderby.locks.escalationThreshold=50000 -Dderby.locks.waitTimeout= > -1 -Dderby.storage.pageCacheSize=100000 -Xms512M -Xmx3072M -XX:NewSize=256M -classpath $DERBY_CLASSPATH org.apache.derby.drda.NetworkServerControl start -h $KPIDERBYHOST -p $DERBY_KPI_PORT" > The corrupted database tar (filesystem) in live environment was moved to a test system (Solaris system) and few checks were run on the corrupted DB as part of analysis (DB does start fine) > While trying to insert a row in any table expect KPI.KPI_MERGEIN, it is successful. But when a new row is inserted into KPI.KPI_MERGEIN table using command line tool it's throwing below error message (the same message that appeared in live > ij> INSERT INTO KPI.KPI_MERGEIN (A0_TXN_ID, A1_NE_ID, A2_CHU_IP_ADDR, A3_BATCH_DATE,A5_CODE) VALUES (-1, 'BMTDE', '192.2.1.3', 231456879, 'KSD'); > ERROR 08006: A network protocol error was encountered and the connection has been terminated: the requested command encountered an unarchitected and implementation-specific condition for which there was no architected message > and in derby.log file it shows below error stacktrace. > ERROR XSDG0: Page Page(51919,Container(0, 1104)) could not be read from disk. > at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) > at org.apache.derby.impl.store.raw.data.CachedPage.readPage(Unknown Source) > at org.apache.derby.impl.store.raw.data.CachedPage.setIdentity(Unknown Source) > at org.apache.derby.impl.services.cache.ConcurrentCache.find(Unknown Source) > at org.apache.derby.impl.store.raw.data.FileContainer.initPage(Unknown Source) > at org.apache.derby.impl.store.raw.data.FileContainer.newPage(Unknown Source) > at org.apache.derby.impl.store.raw.data.BaseContainer.addPage(Unknown Source) > at org.apache.derby.impl.store.raw.data.BaseContainerHandle.addPage(Unknown Source) > at org.apache.derby.impl.store.access.heap.HeapController.doInsert(Unknown Source) > at org.apache.derby.impl.store.access.heap.HeapController.insertAndFetchLocation(Unknown Source) > at org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(Unknown Source) > at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown Source) > at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown Source) > at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source) > at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown Source) > at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLIMM(Unknown Source) > at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source) > at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source) > Caused by: java.io.EOFException: Reached end of file while attempting to read a whole page. > at org.apache.derby.impl.store.raw.data.RAFContainer4.readFull(Unknown Source) > at org.apache.derby.impl.store.raw.data.RAFContainer4.readPage0(Unknown Source) > at org.apache.derby.impl.store.raw.data.RAFContainer4.readPage(Unknown Source) > ... 20 more > ============= begin nested exception, level (1) =========== > java.io.EOFException: Reached end of file while attempting to read a whole page. > at org.apache.derby.impl.store.raw.data.RAFContainer4.readFull(Unknown Source) > at org.apache.derby.impl.store.raw.data.RAFContainer4.readPage0(Unknown Source) > at org.apache.derby.impl.store.raw.data.RAFContainer4.readPage(Unknown Source) > at org.apache.derby.impl.store.raw.data.CachedPage.readPage(Unknown Source) > at org.apache.derby.impl.store.raw.data.CachedPage.setIdentity(Unknown Source) > at org.apache.derby.impl.services.cache.ConcurrentCache.find(Unknown Source) > at org.apache.derby.impl.store.raw.data.FileContainer.initPage(Unknown Source) > at org.apache.derby.impl.store.raw.data.FileContainer.newPage(Unknown Source) > at org.apache.derby.impl.store.raw.data.BaseContainer.addPage(Unknown Source) > at org.apache.derby.impl.store.raw.data.BaseContainerHandle.addPage(Unknown Source) > at org.apache.derby.impl.store.access.heap.HeapController.doInsert(Unknown Source) > at org.apache.derby.impl.store.access.heap.HeapController.insertAndFetchLocation(Unknown Source) > at org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(Unknown Source) > at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown Source) > at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown Source) > at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source) > at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown Source) > at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLIMM(Unknown Source) > at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source) > at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source) > ============= end nested exception, level (1) =========== > 2011-05-16 10:37:21.392 GMT: > Shutting down instance a816c00e-012f-f85f-7892-ffff874c3ff6 > ---------------------------------------------------------------- > Cleanup action completed > The problem is only with INSERT statement. When i try SELECT statement on KPI.KPI_MERGEIN table it is working well.The database file system size (in seg0) is 1.3 GB > Can anyone help me out in identifying the problem that why for one table alone its throwing the above error message ? Would upgrade to a new version help ? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira