db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-5406) Intermittent failures in CompressTableTest and TruncateTableTest
Date Fri, 21 Oct 2011 08:08:32 GMT

    [ 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

        

Mime
View raw message