Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 49478 invoked from network); 17 Mar 2011 10:58:52 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 17 Mar 2011 10:58:52 -0000 Received: (qmail 51681 invoked by uid 500); 17 Mar 2011 10:58:51 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 51656 invoked by uid 500); 17 Mar 2011 10:58:51 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 51649 invoked by uid 99); 17 Mar 2011 10:58:51 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 17 Mar 2011 10:58:51 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 17 Mar 2011 10:58:50 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 8A0403ADF38 for ; Thu, 17 Mar 2011 10:58:29 +0000 (UTC) Date: Thu, 17 Mar 2011 10:58:29 +0000 (UTC) From: "Dag H. Wanvik (JIRA)" To: derby-dev@db.apache.org Message-ID: <2020848535.8630.1300359509546.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <1028015712.5573.1299608280761.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] Issue Comment Edited: (DERBY-5109) testRAFWriteInterupted fails with The exception 'junit.framework.AssertionFailedError: interrupt flag lost' was thrown while evaluating an expression MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/DERBY-5109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13007464#comment-13007464 ] Dag H. Wanvik edited comment on DERBY-5109 at 3/17/11 10:57 AM: ---------------------------------------------------------------- It seems like the thread's interrupt flag is gets lost along the way (of execution) here. So, you don't see this at all with IBM 1.6? In the first case, the assert fails after executing an update which does not throw, but that was interrupted before execution of the update starts. Maybe you could instrument InterruptStatus#setInterrupted to see if Derby ever notices the interrupt. If so, the flag should be reinstated before the API call exits in a call to #restoreIntrFlagIfSeen. If Derby doesn't see it, it can be that some JRE method that swallows it silently, or some location where I have forgotten to save the flag, but if so strange it only happens on this VM.. In the second case Myrna tried , (testInterruptBatch), 08000 i seen but again the flag is not set. I tend to think this must be a JVM issue.. Instrumentation of #throwIf should reveal if the exception comes from where we assume it should during batch execution (EmbedStatement#executeBatch, ca line 983. was (Author: dagw): It seems like the thread's interrupt flag is gets lost along the way (of execution) here. So, you don't see this at all with IBM 1.6? In the first case, the assert fails after executing an update which does not throw, but that was interrupted before execution of the update starts. Maybe you could instrument InterruptStatus#setInterrupted to see if Derby ever notices the interrupt. If so, the flag should be reinstated before the API call exits in a call to #restoreIntrFlagIfSeen. If Derby doesn't see it, it can be that some JRE method that swallows it silently, or some location where I have forgotten to save the flag, but if so strange it only happens on this VM.. In the second case Myrna tried , (testInterruptBatch), 08000 i seen but again the flag is not set. I tend to this this must be a JVM issue.. Instrumentation of #throwIf should reveal if the exception comes from where we assume it shoudl during batch execution (EmbedStatement#executeBatch, ca line 983. > testRAFWriteInterupted fails with The exception 'junit.framework.AssertionFailedError: interrupt flag lost' was thrown while evaluating an expression > ----------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: DERBY-5109 > URL: https://issues.apache.org/jira/browse/DERBY-5109 > Project: Derby > Issue Type: Bug > Affects Versions: 10.8.0.0 > Environment: IBM 1.4.2 10.8.0.1 alpha - (1079089) 3/7/2011 > on LInux > Reporter: Kathey Marsden > > I saw the following failure with IBM 1.4.2. > testRAFWriteInterrupted(org.apache.derbyTesting.functionTests.tests.store.InterruptResilienceTest)java.sql.SQLException: The exception 'junit.framework.AssertionFailedError: interrupt flag lost' was thrown while evaluating an expression. > at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) > at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source) > at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) > at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) > at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown Source) > at org.apache.derbyTesting.functionTests.tests.store.InterruptResilienceTest.testRAFWriteInterrupted(InterruptResilienceTest.java:204) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code)) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code)) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code)) > at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java(Compiled Code)) > at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22) > at junit.extensions.TestSetup$1.protect(TestSetup.java:19) > at junit.extensions.TestSetup.run(TestSetup.java:23) > at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57) > at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22) > at junit.extensions.TestSetup$1.protect(TestSetup.java:19) > at junit.extensions.TestSetup.run(TestSetup.java:23) > at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22) > at junit.extensions.TestSetup$1.protect(TestSetup.java:19) > at junit.extensions.TestSetup.run(TestSetup.java:23) > Caused by: java.sql.SQLException: Java exception: 'interrupt flag lost: junit.framework.AssertionFailedError'. > at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) > at org.apache.derby.impl.jdbc.Util.javaException(Unknown Source) > at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) > ... 46 more > Caused by: junit.framework.AssertionFailedError: interrupt flag lost > at org.apache.derbyTesting.functionTests.tests.store.InterruptResilienceTest.tstRAFwriteInterrupted(InterruptResilienceTest.java(Compiled Code)) > at org.apache.derby.exe.ac0b5b0099x012ex9446x7cf7xfffffa2dc87e0.g0(Unknown Source) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code)) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code)) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code)) > at org.apache.derby.impl.services.reflect.ReflectMethod.invoke(Unknown Source) > at org.apache.derby.impl.sql.execute.CallStatementResultSet.open(Unknown Source) > at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source) > at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source) > ... 42 more -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira