db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Matrigali <mikem_...@sbcglobal.net>
Subject Re: store/OnlineCompressTest.java fails on Linux-2.4.20-31.9 i686-i686 (RedHat 9)
Date Thu, 02 Jun 2005 15:55:52 GMT
I will look into this, see if I can reproduce locally.  Note that
lock timeouts in the derby.log are expected part of a successful run -
but the other 2 are of course wrong.

Getting a few stack traces into derby log is a good 1st step to 
diagnosing "hangs".  Also knowing if the hanging process is looping or
waiting is good info.  It is JVM dependent but on unix there is usually
a signal you can send the JVM which will cause it to dump stack
traces of all the threads in the system.  Getting 2 or 3 can often tell
if it is hanging or looping.

/mikem

Ole Solberg wrote:
> I have observed that, on 1-one of the platforms we're running regression 
> tests on, the store/OnlineCompressTest.java fails.
> See e.g. 
> http://www.multinet.no/~solberg/public/Apache/Derby/index.html/storemore_history.html

> 
> (storeall and derbyall ditto).
> 
> The platform showing the problem is Linux-2.4.20-31.9 i686-i686 (RedHat 9).
> 
> There seems to be three different behaviours: DATA_UNKNOWN_PAGE_FORMAT, 
> LOCK_TIMEOUT, test never terminates.
> 
> 
> 1. changeInstanceTo(CachedPage.java:315) throws DATA_UNKNOWN_PAGE_FORMAT:
> ----------------------------------------------------------
> Database Class Loader started - derby.database.classpath=''
> 2005-06-01 11:50:53.078 GMT Thread[main,5,main] (XID = 2027143), 
> (SESSIONID = 0), (DATABASE = wombat), (DRDAID = null), Cleanup action 
> starting
> 2005-06-01 11:50:53.079 GMT Thread[main,5,main] (XID = 2027143), 
> (SESSIONID = 0), (DATABASE = wombat), (DRDAID = null), Failed Statement 
> is: insert into TEST1 values(?, ?, ?, ?, ?, ?)
> ERROR XSDB1: Unknown page format at page Page(14,Container(0, 1057))
>     at 
> org.apache.derby.iapi.error.StandardException.newException(StandardException.java:315)

> 
>     at 
> org.apache.derby.impl.store.raw.data.CachedPage.changeInstanceTo(CachedPage.java:315)

> 
>     at 
> org.apache.derby.impl.store.raw.data.CachedPage.setIdentity(CachedPage.java:195) 
> 
>     at 
> org.apache.derby.impl.services.cache.CachedItem.takeOnIdentity(CachedItem.java:235) 
> 
>     at org.apache.derby.impl.services.cache.Clock.addEntry(Clock.java:798)
> 
> 
> 2. lockObject(LockSet.java:414) throws LOCK_TIMEOUT:
> ----------------------------------------------------------
> Database Class Loader started - derby.database.classpath=''
> 2005-05-31 07:16:50.336 GMT Thread[main,5,main] (XID = 156), (SESSIONID 
> = 0), (DATABASE = wombat), (DRDAID = null), Cleanup action starting
> 2005-05-31 07:16:50.336 GMT Thread[main,5,main] (XID = 156), (SESSIONID 
> = 0), (DATABASE = wombat), (DRDAID = null), Failed Statement is: call 
> SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE(?, ?, ?, ?, ?)
> ERROR 40XL1: A lock could not be obtained within the time requested
>     at 
> org.apache.derby.iapi.error.StandardException.newException(StandardException.java:301)

> 
>     at 
> org.apache.derby.impl.services.locks.LockSet.lockObject(LockSet.java:414)
>     at 
> org.apache.derby.impl.services.locks.SinglePool.lockAnObject(SinglePool.java:174) 
> 
>     at 
> org.apache.derby.impl.services.locks.SinglePool.lockObject(SinglePool.java:226) 
> 
>     at 
> org.apache.derby.impl.store.raw.xact.ContainerLocking3.lockContainer(ContainerLocking3.java:63)

> 
>     at 
> org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(BaseContainerHandle.java:761)

> 
>     at 
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(BaseDataFileFactory.java:548)

> 
>     at 
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(BaseDataFileFactory.java:494)

> 
>     at 
> org.apache.derby.impl.store.raw.xact.Xact.openContainer(Xact.java:1270)
>     at 
> org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(OpenConglomerate.java:865)

> 
> 
> 
> 3. Never terminates and have to kill the test! tail 
> OnlineCompressTest.tmp shows:
> ----------------------------------------------
> Executing test: end checkPurgePhase50 row test.
> Executing test: begin deleteAllRows,4000 row test, create = true.
> Executing test: no delete case complete.
> Executing test: delete all rows case succeeded.
> Executing test: end deleteAllRows,4000 row test.
> Executing test: begin deleteAllRows,4000 row test, create = false.
> Executing test: no delete case complete.
> Executing test: delete all rows case succeeded.
> Executing test: end deleteAllRows,4000 row test.
> Executing test: begin checkPurgePhase4000 row test, create = false.
> 
> 
> I have been digging around in the code but must admit I haven't got any 
> closer to an explanation.
> 
> What is the best way to debug further?
> 
> 


Mime
View raw message