You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ka...@apache.org on 2006/09/18 13:41:38 UTC

svn commit: r447375 - /db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java

Author: kahatlen
Date: Mon Sep 18 04:41:37 2006
New Revision: 447375

URL: http://svn.apache.org/viewvc?view=rev&rev=447375
Log:
DERBY-1326 (partial) Network server may abandon sessions when Derby
system is shutdown and this causes intermittent hangs in the client

Don't poison the network server's worker threads when an engine
shutdown is detected. Poisoning the threads could lead to abandoning
of sessions and hangs in the client.

Modified:
    db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java

Modified: db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java?view=diff&rev=447375&r1=447374&r2=447375
==============================================================================
--- db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java (original)
+++ db/derby/code/trunk/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java Mon Sep 18 04:41:37 2006
@@ -752,11 +752,12 @@
 							runQueue.clear();
 						}
 
-						// Close and remove DRDAConnThreads on threadList.
-						for (int i = 0; i < threadList.size(); i++)
-							((DRDAConnThread)threadList.get(i)).close();
-						threadList.clear();
-						freeThreads = 0;
+						// DERBY-1326: There could be active threads that
+						// contain old/invalid sessions. These sessions won't
+						// be cleaned up until there is some activity on
+						// them. We could optimize this by going through
+						// sessionTable and closing the sessions' socket
+						// streams.
 
 						// Unload driver, then restart the server.
 						cloudscapeDriver = null;	// so it gets collected.