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

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

Thanks for looking at the patch, Kristian.

I think getCurrentDependent() is guaranteed to return a non-null dependent at 
that location in the code for the following reasons:

- JavaDoc for CompilerContext.setCurrentDependent() says

         * This should be called at the start of a compile to
         * register who has the dependencies needed for the compilation.

so it sounds like the compiler context is expected to have a dependent once the 
compilation has started.

- CompilerContextImpl.createDependency(Provider), which is called just a few 
lines before getCurrentDependent() is called, has the following assertion:

                SanityManager.ASSERT(currentDependent != null,
                                "no current dependent for compilation");

(and in insane builds it would fail with a NullPointerException) so we should 
not come to that point in the code if the dependent was null.
                
> Intermittent failures in CompressTableTest and TruncateTableTest
> ----------------------------------------------------------------
>
>                 Key: DERBY-5406
>                 URL: https://issues.apache.org/jira/browse/DERBY-5406
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.8.2.0, 10.9.0.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>         Attachments: d5406-1a-detect-invalidation-during-compilation.diff, 
> d5406-1b.diff, d5406-2a-invalidate-self.diff
>
>
> The test cases CompressTableTest.testConcurrentInvalidation() and 
> TruncateTableTest.testConcurrentInvalidation() fail intermittently with 
> errors such as:
> ERROR XSAI2: The conglomerate (2,720) requested does not exist.
> The problem has been analyzed in the comments on DERBY-4275, and a patch 
> attached to that issue (invalidation-during-compilation.diff) fixes the 
> underlying race condition. However, that patch only works correctly together 
> with the fix for DERBY-5161, which was backed out because it caused the 
> regression DERBY-5280.
> We will therefore need to find a way to fix DERBY-5161 without reintroducing 
> DERBY-5280 in order to resolve this issue.

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

        

Reply via email to