db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-2949) AssertionFailedError in testStalePlansOnLargeTable
Date Thu, 02 Dec 2010 09:56:11 GMT

    [ https://issues.apache.org/jira/browse/DERBY-2949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12966042#action_12966042
] 

Knut Anders Hatlen commented on DERBY-2949:
-------------------------------------------

I see that if I call SYSCS_UTIL.SYSCS_CHECKPOINT_DATABASE right before the loop that performs
the last 11 executions of the query, the assert fails consistently. I'm not sure exactly how
the checkpoint interacts with the optimizer, though. Perhaps it's doing something with the
row count estimates?

The reason why I tried adding a checkpoint at that point in the code, was that the test sets
derby.storage.checkpointInterval=100000. There aren't any comments saying why it does that,
neither in StalePlansTest nor in the original staleplans.sql, but I suppose it is to make
the checkpoints happen at the spots where it's known to be safe and/or needed.

I also see that the assert fails consistently if I effectively disable checkpointing for the
test by setting derby.storage.checkpointInterval to the maximum allowed value (128*1024*1024).
If I run the test with the default settings, I see that the background worker thread invokes
a checkpoint when testStalePlansOnLargeTable has loaded the rows into the table. I suppose,
depending on timing, this checkpoint could end up running at a time where it interferes with
the optimizer's decisions.

Would it make sense to disable automatic checkpointing for the test and add a call to SYSCS_CHECKPOINT_DATABASE
after the table has been populated? Then at least we know that the checkpoint has been performed
at the expected spot, and that it has completed before we start executing the statements whose
plans we want to check.

And if someone could shed some light on *why* the checkpoint affects the choices of the optimizer,
that would be appreciated too... :)

> AssertionFailedError in testStalePlansOnLargeTable
> --------------------------------------------------
>
>                 Key: DERBY-2949
>                 URL: https://issues.apache.org/jira/browse/DERBY-2949
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.3.1.4
>         Environment: Microsoft© Windows VistaT Ultimate - 6.0.6000 N/A Build 6000
> WindowsNT 0 6
> 2 X [Sun Fire X4100 Server x64 Family 15 Model 37 Stepping 1 AuthenticAMD]: ~2592 MHz,
 cache. 3ÿ967 Total Memory.
> JVM: Sun Microsystems Inc. 1.5.0_07-b03 
>            Reporter: Henri van de Scheur
>            Priority: Minor
>         Attachments: expected-plan.txt, plan.txt
>
>
> testStalePlansOnLargeTable(org.apache.derbyTesting.functionTests.tests.lang.StalePlansTest)junit.framework.AssertionFailedError
> 	at org.apache.derbyTesting.functionTests.tests.lang.StalePlansTest.testStalePlansOnLargeTable(StalePlansTest.java:264)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:88)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message