db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mike Matrigali (JIRA)" <derby-...@db.apache.org>
Subject [jira] Updated: (DERBY-1280) Derby throws "ERROR XSDG1: Page could not be written to disk, please check if disk is full" when there is 20+ gigs of free space
Date Thu, 04 May 2006 17:14:22 GMT
     [ http://issues.apache.org/jira/browse/DERBY-1280?page=all ]

Mike Matrigali updated DERBY-1280:
----------------------------------


will be interested to see the results of your tests.  This may still be a problem in the OS
vs. the JVM (trying other jvms
should make this clearer).  The notes
in that one link I included above mention that while the underlying filesystem was altered
in the 2.4 linux version
some of the stuff to access the files was still not completely right.
Derby uses at least the following calls:
    RandomAccessFile.seek(long)
     long = RandomAccessFile.length()
    long = RandomAccessFile.getFilePointer()

>From looking at the Derby call I think a problem happened even before the exception that
you are reporting.  It
tried to seek to an bigger than 2 gig address using RandomAccessFile.seek(), and then there
is a check
to see if the seek worked (the check is for some long ago wierd behavior on a handheld device):

if (fileData.getFilePointer() != pageOffset)
    padFile(fileData, pageOffset);

I would not expect this condition on linux, so I would guess that either seek or getFilePointer
is also doing something
wrong.  In your test it would be interesting to see if you can seek past 2 gig and what getFilePointer
does.

Are you tied to release 3 of redhat, or is release 4 an option?  I think we have a release
4 around here, we could check on.

> Derby throws "ERROR XSDG1: Page could not be written to disk, please check if disk is
full" when there is 20+ gigs of free space
> --------------------------------------------------------------------------------------------------------------------------------
>
>          Key: DERBY-1280
>          URL: http://issues.apache.org/jira/browse/DERBY-1280
>      Project: Derby
>         Type: Bug

>   Components: Store
>     Versions: 10.1.2.1
>  Environment:  Environment: IBM ThinkCentre, pentium 4, 1 gig memory, 40 gigs of disk
> Redhat Linux rel 3.
> IBM Java 1.5
>     Reporter: Justin Hill

>
> ------------------ Java Information ------------------
> Java Version:    1.5.0
> Java Vendor:     IBM Corporation
> Java home:       /opt/ibm/java2-i386-50/jre
> Java classpath:  /home/jhills/JazzDev0411/org.apache.derby.core/derby.jar:/home/jhills/JazzDev0411/org.apache.derby.core/derbyclient.jar:/home/jhills/JazzDev0411/org.apache.derby.core/derbytools.jar:/home/jhills/JazzDev0411/org.apache.derby.core/derbynet.jar
> OS name:         Linux
> OS architecture: x86
> OS version:      2.4.21-37.EL
> Java user name:  jhills
> Java user home:  /home/jhills
> Java user dir:   /home/jhills/JazzDev0411/org.apache.derby.core
> java.specification.name: Java Platform API Specification
> java.specification.version: 1.5
> --------- Derby Information --------
> JRE - JDBC: J2SE 5.0 - JDBC 3.0
> [/home/jhills/JazzDev0411/org.apache.derby.core/derby.jar] 10.1.2.1 - (330608)
> [/home/jhills/JazzDev0411/org.apache.derby.core/derbyclient.jar] 10.1.2.1 - (330608)
> [/home/jhills/JazzDev0411/org.apache.derby.core/derbytools.jar] 10.1.2.1 - (330608)
> [/home/jhills/JazzDev0411/org.apache.derby.core/derbynet.jar] 10.1.2.1 - (330608)
> ------------------------------------------------------
> ----------------- Locale Information -----------------
> ------------------------------------------------------
> We are an IBM project that is using Derby and we need a solution or a workaround to this
problem.  The Derby error is thrown after about 3 hours of running the application which involves
a large number of inserts to the database.   Even though it is not easy to provide a way to
reproduce the error , we can easily reproduce it and are we are willing to work with anyone
to assist in finding a solution to this problem.  
>  This issue seems to be related to a previously reported issue Derby-151.  We are running
with  autocommit off.  It appears that the XSDG1 error is in response to a java.io.IOException
being thrown by the native method "length" in java.io.RandomAccessFile.    It  always seems
to happen while trying to write page #65536 to disk.
> Below is the derby.log file. 
> ----------------------------------------------------------------
> 2006-04-28 14:07:03.389 GMT:
>  Booting Derby version The Apache Software Foundation - Apache Derby - 10.1.2.1 - (330608):
instance c013800d-010a-e0d2-ba43-00000016c308
> on database directory /home/jhills/magnolia-runtime/teamRepositoryDB 
> Database Class Loader started - derby.database.classpath=''
> 2006-04-28 17:26:22.961 GMT Thread[Worker-1,5,main] (XID = 1707467), (SESSIONID = 0),
(DATABASE = /home/jhills/magnolia-runtime/teamRepositoryDB), (DRDAID = null), Cleanup action
starting
> 2006-04-28 17:26:22.961 GMT Thread[Worker-1,5,main] (XID = 1707467), (SESSIONID = 0),
(DATABASE = /home/jhills/magnolia-runtime/teamRepositoryDB), (DRDAID = null), Failed Statement
is: insert into core.content_storage values (?, ?, ?, ?, ?, ?)
> ERROR XSDG1: Page Page(65536,Container(0, 17488)) could not be written to disk, please
check if disk is full.
> 		 at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
> 		 at org.apache.derby.impl.store.raw.data.CachedPage.writePage(Unknown Source)
> 		 at org.apache.derby.impl.store.raw.data.CachedPage.createIdentity(Unknown Source)
> 		 at org.apache.derby.impl.services.cache.CachedItem.takeOnIdentity(Unknown Source)
> 		 at org.apache.derby.impl.services.cache.Clock.addEntry(Unknown Source)
> 		 at org.apache.derby.impl.services.cache.Clock.create(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.StoredPage.getNewOverflowPage(Unknown Source)
> 		 at org.apache.derby.impl.store.raw.data.BasePage.insertLongColumn(Unknown Source)
> 		 at org.apache.derby.impl.store.raw.data.BasePage.insertAllowOverflow(Unknown Source)
> 		 at org.apache.derby.impl.store.raw.data.BasePage.insert(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.execute(Unknown Source)
> 		 at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
> 		 at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown Source)
> 		 at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(Unknown Source)
> 		 at com.ibm.team.core.repository.db.jdbcwrappers.stat.PreparedStatementStatWrapper.executeUpdate(PreparedStatementStatWrapper.java:63)
> 		 at com.ibm.team.core.repository.db.jdbcwrappers.leak.PreparedStatementLeakWrapper.executeUpdate(PreparedStatementLeakWrapper.java:63)
> 		 at com.ibm.team.core.repository.db.filestorage.ContentStorage.saveContent(ContentStorage.java:160)
> 		 at com.ibm.team.core.repository.db.filestorage.ContentStorage.saveContent(ContentStorage.java:172)
> 		 at com.ibm.team.internal.repository.RdbRepositoryDataMediator.saveContent(RdbRepositoryDataMediator.java:1257)
> 		 at com.ibm.team.core.repository.content.impl.DefaultContentServiceImpl.internalPersistStoredContent(DefaultContentServiceImpl.java:452)
> 		 at com.ibm.team.core.repository.content.impl.DefaultContentServiceImpl.internalPersistAndMaybeCompressStoredContent(DefaultContentServiceImpl.java:484)
> 		 at com.ibm.team.internal.repository.BaseItemUtils.saveContent(BaseItemUtils.java:34)
> 		 at com.ibm.team.internal.repository.BaseItemUtils.saveAllContent(BaseItemUtils.java:70)
> 		 at com.ibm.team.internal.repository.BaseItemUtils.saveAllContent(BaseItemUtils.java:49)
> 		 at com.ibm.team.internal.repository.ConfigurationServiceInternal.internalSaveVersionable(ConfigurationServiceInternal.java:2591)
> 		 at com.ibm.team.internal.repository.ConfigurationServiceInternal.internalSaveVersionables(ConfigurationServiceInternal.java:2536)
> 		 at com.ibm.team.internal.repository.ConfigurationServiceInternal.internalCommit(ConfigurationServiceInternal.java:1798)
> 		 at com.ibm.team.internal.repository.ConfigurationService$22.run(ConfigurationService.java:786)
> 		 at com.ibm.team.internal.repository.rdb.RepositoryDatabase$Transaction.run(RepositoryDatabase.java:192)
> 		 at com.ibm.team.internal.repository.rdb.RepositoryDatabase.runInTransaction(RepositoryDatabase.java:129)
> 		 at com.ibm.team.core.service.utils.AbstractService.runInTransaction(AbstractService.java:253)
> 		 at com.ibm.team.internal.repository.ConfigurationService.commit(ConfigurationService.java:779)
> 		 at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
> 		 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 		 at java.lang.reflect.Method.invoke(Method.java:615)
> 		 at com.ibm.team.internal.core.services.LocalProxiedTeamService.invokeMethodUsingNewMarshaller(LocalProxiedTeamService.java:155)
> 		 at com.ibm.team.internal.core.services.LocalProxiedTeamService.invoke(LocalProxiedTeamService.java:108)
> 		 at com.ibm.team.internal.core.services.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:43)
> 		 at $Proxy1.commit(Unknown Source)
> 		 at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
> 		 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 		 at java.lang.reflect.Method.invoke(Method.java:615)
> 		 at com.ibm.team.internal.core.client.ServiceInterfaceProxy.invoke(ServiceInterfaceProxy.java:50)
> 		 at $Proxy15.commit(Unknown Source)
> 		 at com.ibm.team.internal.core.client.configuration.WorkspaceConnection.commit(WorkspaceConnection.java:1737)
> 		 at com.ibm.team.internal.core.client.configuration.DeprecatedWorkspaceConnection.commit(DeprecatedWorkspaceConnection.java:177)
> 		 at com.ibm.team.migration.ccvs.ChangeSetArchiveImporter.commit(ChangeSetArchiveImporter.java:430)
> 		 at com.ibm.team.migration.ccvs.ChangeSetArchiveImporter.commitChangesFromMap(ChangeSetArchiveImporter.java:406)
> 		 at com.ibm.team.migration.ccvs.ChangeSetArchiveImporter.commitChanges(ChangeSetArchiveImporter.java:278)
> 		 at com.ibm.team.migration.ccvs.ChangeSetArchiveImporter.importChangeSetArchive(ChangeSetArchiveImporter.java:190)
> 		 at com.ibm.team.migration.operations.ImportOperation.doImport(ImportOperation.java:191)
> 		 at com.ibm.team.migration.ccvs.ui.ChangeArchiveImportWizard$1.run(ChangeArchiveImportWizard.java:148)
> 		 at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
> ============= begin nested exception, level (1) ===========
> java.io.IOException: Value too large for defined data type
> 		 at java.io.RandomAccessFile.length(Native Method)
> 		 at org.apache.derby.impl.store.raw.data.RAFContainer.padFile(Unknown Source)
> 		 at org.apache.derby.impl.store.raw.data.RAFContainer.writePage(Unknown Source)
> 		 at org.apache.derby.impl.store.raw.data.CachedPage.writePage(Unknown Source)
> 		 at org.apache.derby.impl.store.raw.data.CachedPage.createIdentity(Unknown Source)
> 		 at org.apache.derby.impl.services.cache.CachedItem.takeOnIdentity(Unknown Source)
> 		 at org.apache.derby.impl.services.cache.Clock.addEntry(Unknown Source)
> 		 at org.apache.derby.impl.services.cache.Clock.create(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.StoredPage.getNewOverflowPage(Unknown Source)
> 		 at org.apache.derby.impl.store.raw.data.BasePage.insertLongColumn(Unknown Source)
> 		 at org.apache.derby.impl.store.raw.data.BasePage.insertAllowOverflow(Unknown Source)
> 		 at org.apache.derby.impl.store.raw.data.BasePage.insert(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.execute(Unknown Source)
> 		 at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
> 		 at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown Source)
> 		 at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(Unknown Source)
> 		 at com.ibm.team.core.repository.db.jdbcwrappers.stat.PreparedStatementStatWrapper.executeUpdate(PreparedStatementStatWrapper.java:63)
> 		 at com.ibm.team.core.repository.db.jdbcwrappers.leak.PreparedStatementLeakWrapper.executeUpdate(PreparedStatementLeakWrapper.java:63)
> 		 at com.ibm.team.core.repository.db.filestorage.ContentStorage.saveContent(ContentStorage.java:160)
> 		 at com.ibm.team.core.repository.db.filestorage.ContentStorage.saveContent(ContentStorage.java:172)
> 		 at com.ibm.team.internal.repository.RdbRepositoryDataMediator.saveContent(RdbRepositoryDataMediator.java:1257)
> 		 at com.ibm.team.core.repository.content.impl.DefaultContentServiceImpl.internalPersistStoredContent(DefaultContentServiceImpl.java:452)
> 		 at com.ibm.team.core.repository.content.impl.DefaultContentServiceImpl.internalPersistAndMaybeCompressStoredContent(DefaultContentServiceImpl.java:484)
> 		 at com.ibm.team.internal.repository.BaseItemUtils.saveContent(BaseItemUtils.java:34)
> 		 at com.ibm.team.internal.repository.BaseItemUtils.saveAllContent(BaseItemUtils.java:70)
> 		 at com.ibm.team.internal.repository.BaseItemUtils.saveAllContent(BaseItemUtils.java:49)
> 		 at com.ibm.team.internal.repository.ConfigurationServiceInternal.internalSaveVersionable(ConfigurationServiceInternal.java:2591)
> 		 at com.ibm.team.internal.repository.ConfigurationServiceInternal.internalSaveVersionables(ConfigurationServiceInternal.java:2536)
> 		 at com.ibm.team.internal.repository.ConfigurationServiceInternal.internalCommit(ConfigurationServiceInternal.java:1798)
> 		 at com.ibm.team.internal.repository.ConfigurationService$22.run(ConfigurationService.java:786)
> 		 at com.ibm.team.internal.repository.rdb.RepositoryDatabase$Transaction.run(RepositoryDatabase.java:192)
> 		 at com.ibm.team.internal.repository.rdb.RepositoryDatabase.runInTransaction(RepositoryDatabase.java:129)
> 		 at com.ibm.team.core.service.utils.AbstractService.runInTransaction(AbstractService.java:253)
> 		 at com.ibm.team.internal.repository.ConfigurationService.commit(ConfigurationService.java:779)
> 		 at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
> 		 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 		 at java.lang.reflect.Method.invoke(Method.java:615)
> 		 at com.ibm.team.internal.core.services.LocalProxiedTeamService.invokeMethodUsingNewMarshaller(LocalProxiedTeamService.java:155)
> 		 at com.ibm.team.internal.core.services.LocalProxiedTeamService.invoke(LocalProxiedTeamService.java:108)
> 		 at com.ibm.team.internal.core.services.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:43)
> 		 at $Proxy1.commit(Unknown Source)
> 		 at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
> 		 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 		 at java.lang.reflect.Method.invoke(Method.java:615)
> 		 at com.ibm.team.internal.core.client.ServiceInterfaceProxy.invoke(ServiceInterfaceProxy.java:50)
> 		 at $Proxy15.commit(Unknown Source)
> 		 at com.ibm.team.internal.core.client.configuration.WorkspaceConnection.commit(WorkspaceConnection.java:1737)
> 		 at com.ibm.team.internal.core.client.configuration.DeprecatedWorkspaceConnection.commit(DeprecatedWorkspaceConnection.java:177)
> 		 at com.ibm.team.migration.ccvs.ChangeSetArchiveImporter.commit(ChangeSetArchiveImporter.java:430)
> 		 at com.ibm.team.migration.ccvs.ChangeSetArchiveImporter.commitChangesFromMap(ChangeSetArchiveImporter.java:406)
> 		 at com.ibm.team.migration.ccvs.ChangeSetArchiveImporter.commitChanges(ChangeSetArchiveImporter.java:278)
> 		 at com.ibm.team.migration.ccvs.ChangeSetArchiveImporter.importChangeSetArchive(ChangeSetArchiveImporter.java:190)
> 		 at com.ibm.team.migration.operations.ImportOperation.doImport(ImportOperation.java:191)
> 		 at com.ibm.team.migration.ccvs.ui.ChangeArchiveImportWizard$1.run(ChangeArchiveImportWizard.java:148)
> 		 at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
> ============= end nested exception, level (1) ===========
> 2006-04-28 17:26:27.629 GMT:
> Shutting down instance c013800d-010a-e0d2-ba43-00000016c308
> ----------------------------------------------------------------
> Cleanup action completed
> ----------------------------------------------------------------
> 2006-04-28 17:26:30.258 GMT:
>  Booting Derby version The Apache Software Foundation - Apache Derby - 10.1.2.1 - (330608):
instance 13e1c7d6-010a-e0d2-ba43-00000016c308
> on database directory /home/jhills/magnolia-runtime/teamRepositoryDB 
> Database Class Loader started - derby.database.classpath=''

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message