db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Deepa Remesh (JIRA)" <derby-...@db.apache.org>
Subject [jira] Commented: (DERBY-803) derbynet/DerbyNetAutoStart.java test fails intermittently with org.apache.derby.iapi.services.context.ShutdownException
Date Thu, 27 Jul 2006 20:57:16 GMT
    [ http://issues.apache.org/jira/browse/DERBY-803?page=comments#action_12423919 ] 
            
Deepa Remesh commented on DERBY-803:
------------------------------------

Thanks Fernanda for picking this up. 

I am wondering if this solution will fix all cases. I think this solution is in same lines
as what was discussed in DERBY-1020 (use of forceClose() method) to do a rollback and close
together. At that time itself, I was not convinced this solution will solve the problem. There
are at least three different exceptions seen during shutdown in this test (stack traces are
spread between DERBY-803, DERBY-273 and DERBY-1020). As seen from the stack traces, these
exceptions can occur at calls to conn.rollback() or conn.close().  In a previous comment,
Mike had posted another exception: "SQL Exception: No current connection. " The full stack
trace for this exception is:
java.sql.SQLException: No current connection.
	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:44)
	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:88)
	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:104)
	at org.apache.derby.impl.jdbc.Util.noCurrentConnection(Util.java:208)
	at org.apache.derby.impl.jdbc.EmbedConnection.checkIfClosed(EmbedConnection.java:1335)
	at org.apache.derby.impl.jdbc.EmbedConnection.setupContextStack(EmbedConnection.java:1513)
	at org.apache.derby.impl.jdbc.EmbedConnection.close(EmbedConnection.java:992)
	at org.apache.derby.impl.jdbc.EmbedConnection.close(EmbedConnection.java:970)
	at org.apache.derby.impl.drda.Database.close(Database.java:320)
	at org.apache.derby.impl.drda.Session.close(Session.java:110)
	at org.apache.derby.impl.drda.DRDAConnThread.closeSession(DRDAConnThread.java:7270)
	at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:269)

This is similar to the exception I was getting when I was trying to simulate the failure by
adding a sleep. When the network server thread was sleeping, the engine shutdown runs to completion
and so I was getting  "SQL Exception: No current connection. ".

I think we can get these exceptions when we call conn.close() or conn.rollback() during shutdown
of network server and in the meantime engine shutdown is:
1)  in progress - In this case, we get org.apache.derby.iapi.services.context.ShutdownException
2)  complete  - In this case, we get java.sql.SQLException: No current connection.  

I may be mistaken here but just wanted to share my thoughts. 

Leaving my thoughts aside, if this patch solves the failure on your machine, then it may be
okay to proceed with this approach. I have only a small comment about the changes in the patch.
It may not be okay to remove this check "if ((conn != null) && !conn.isClosed())"
before calling conn.rollbackAndClose() or conn.close() in Database.close().  I think we need
to at least check the case that conn is not null.

> derbynet/DerbyNetAutoStart.java test fails intermittently with org.apache.derby.iapi.services.context.ShutdownException
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-803
>                 URL: http://issues.apache.org/jira/browse/DERBY-803
>             Project: Derby
>          Issue Type: Test
>          Components: Network Server, Regression Test Failure
>    Affects Versions: 10.2.0.0
>            Reporter: Kathey Marsden
>         Attachments: suggestion-803.diff, suggestion-803.stat
>
>
> DerbyNetAutoStart fails intermittently with the following diff:
> This issue is likely related to DERBY-1020
> ********* Diff file derbyall/derbynetmats/DerbyNet/derbynetmats/DerbyNetAutoStart.diff
> *** Start: DerbyNetAutoStart jdk1.4.2 DerbyNet derbynetmats:derbynetmats 2006-01-05 23:39:40
***
> 1a2,3
> > org.apache.derby.iapi.services.context.ShutdownException: 
> > 	at org.apache.derby.impl.drda.Session.close(Unknown Source)agentThread[DRDAConnThread_3,5,derby.daemons]
> Test Failed.
> *** End:   DerbyNetAutoStart jdk1.4.2 DerbyNet derbynetmats:derbynetmats 2006-01-05 23:41:10
***

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message