[ http://issues.apache.org/jira/browse/DERBY-654?page=all ]

Mike Matrigali updated DERBY-654:
---------------------------------

    Component: Regression Test Failure

> unit/T_RawStoreFactory.unit fails with an assert failure in J2ME/CDC/FP
> -----------------------------------------------------------------------
>
>          Key: DERBY-654
>          URL: http://issues.apache.org/jira/browse/DERBY-654
>      Project: Derby
>         Type: Bug
>   Components: Store, Regression Test Failure
>     Versions: 10.2.0.0
>  Environment: IBM WCTME5.7 j9 foundation VM 
>     Reporter: Deepa Remesh
>     Priority: Minor

>
> I am thinking this is a bug and opening a JIRA issue since I did not get any 
> response to my question in derby-dev. One more thing I noticed is this test 
> passes in 10.1 branch.  It is failing only in trunk.
> The test unit/T_RawStoreFactory.unit fails with an assert failure in CDC/FP. 
> This failure looks like an intermittent one though it is failing all the time 
> now. I have run this test successfully some time back. I would like to find 
> out if this is a bug (Derby or jvm) or just an intermittent failure. I am 
> using j9 foundation  from IBM WCTME5.7.
> ---------------------------------------------------------------------
> diff for the test:
> ---------------------------------------------------------------------
>  < -- Unit Test T_RawStoreFactory finished
>  2 add
>  > There should be 0 observers, but we still have 1 observers.
> > Shutting down due to unit test failure.
> ---------------------------------------------------------------------
> stack trace for AssertFailure in derby.log is:
> ---------------------------------------------------------------------
>  FAIL - org.apache.derby.iapi.services.sanity.AssertFailure: ASSERT
> FAILED still on observer list
> [EMAIL PROTECTED]
> org.apache.derby.iapi.services.sanity.AssertFailure: ASSERT FAILED
> still on observer list
> [EMAIL PROTECTED]
>        at 
> org.apache.derby.iapi.services.sanity.SanityManager.THROWASSERT(SanityManager.java:150)
>        at 
> org.apache.derby.impl.store.raw.data.TruncateOnCommit.update(TruncateOnCommit.java:69)
>        at java.util.Observable.notifyObservers(Observable.java:117)
>        at 
> org.apache.derby.iapi.store.raw.xact.RawTransaction.notifyObservers(RawTransaction.java:313)
>        at org.apache.derby.impl.store.raw.xact.Xact.doComplete(Xact.java:1927)
>        at 
> org.apache.derby.impl.store.raw.xact.Xact.preComplete(Xact.java:1880)
>        at 
> org.apache.derby.impl.store.raw.xact.Xact.prepareCommit(Xact.java:726)
>        at org.apache.derby.impl.store.raw.xact.Xact.commit(Xact.java:839)
>        at org.apache.derby.impl.store.raw.xact.Xact.commit(Xact.java:636)
>        at 
> org.apache.derbyTesting.unitTests.store.T_Util.t_commit(T_Util.java:838)
>        at 
> org.apache.derbyTesting.unitTests.store.T_RawStoreFactory.TC001(T_RawStoreFactory.java:7435)
>        at 
> org.apache.derbyTesting.unitTests.store.T_RawStoreFactory.runTempTests(T_RawStoreFactory.java:420)
>        at 
> org.apache.derbyTesting.unitTests.store.T_RawStoreFactory.runTestSet(T_RawStoreFactory.java:247)
>        at 
> org.apache.derbyTesting.unitTests.harness.T_MultiIterations.runTests(T_MultiIterations.java:94)
>        at 
> org.apache.derbyTesting.unitTests.harness.T_MultiThreadedIterations.runTests(T_MultiThreadedIterations.java:91)
>        at 
> org.apache.derbyTesting.unitTests.harness.T_Generic.Execute(T_Generic.java:117)
>        at 
> org.apache.derbyTesting.unitTests.harness.BasicUnitTestManager.runATest(BasicUnitTestManager.java:183)
>        at 
> org.apache.derbyTesting.unitTests.harness.BasicUnitTestManager.runTests(BasicUnitTestManager.java:245)
>        at 
> org.apache.derbyTesting.unitTests.harness.BasicUnitTestManager.boot(BasicUnitTestManager.java:92)
>        at 
> org.apache.derby.impl.services.monitor.BaseMonitor.boot(BaseMonitor.java:2008)
>        at 
> org.apache.derby.impl.services.monitor.TopService.bootModule(TopService.java:290)
>        at 
> org.apache.derby.impl.services.monitor.BaseMonitor.bootService(BaseMonitor.java:1846)
>        at 
> org.apache.derby.impl.services.monitor.BaseMonitor.startServices(BaseMonitor.java:966)
>        at 
> org.apache.derby.impl.services.monitor.BaseMonitor.runWithState(BaseMonitor.java:398)
>        at 
> org.apache.derby.impl.services.monitor.FileMonitor.<init>(FileMonitor.java:59)
>        at 
> org.apache.derby.iapi.services.monitor.Monitor.startMonitor(Monitor.java:288)
>        at 
> org.apache.derbyTesting.unitTests.harness.UnitTestMain.main(UnitTestMain.java:50)
> ---------------------------------------------------------------------
> On looking at the code, I did not understand how this assert failure can 
> happen. The assert is thrown in following code in TruncateOnCommit: 
> public void update(Observable obj, Object arg) {
>        if (SanityManager.DEBUG) {
>                if (arg == null)
>                SanityManager.THROWASSERT("still on observer list " + this);
>        }
> I am puzzled by how 'arg' can become null in this case. As I understand, 
> 'update' method of each Observer gets called by the notifyObserver method in 
> java.util.Observable class. notifyObserver passes 'arg', which describes the 
> type of change, as the second argument to update. In this code path, 'arg' 
> passed to notifyObserver is RawTransaction.COMMIT (which is not null).  
> However the code has an assert to check for null value which means there is 
> some situation where the 'arg' can become null.  I have not understood what 
> causes this situation but it is always being hit when running in this 
> environment. 

-- 
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

Reply via email to