[
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