[ 
https://issues.apache.org/jira/browse/DERBY-1781?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12535168
 ] 

Thomas Nielsen commented on DERBY-1781:
---------------------------------------

I attached the NB profiler to the NetworkServer running on a Java 6 VM, and had 
a quick look around while running the repro. 

There are in excess of  300 "surviving generations" of objects, and 3 live 
DRDAConnThread's after the first run. 
On the subsequent 2 runs of the repro I see GC being run, the number of 
surviving generations is still increasing, and there are 3 additional 
DRDAConnThreads for each run.

Forcing manual GC via the profiler reduced the surviving generations to about 
50% (~300) after the third run. Additional GC runs does (understandably) not 
help.

The DRDAConnThreads are in "wait" state, but still live. I'm not sure what 
lifespan the DRDAConnThreads are supposed to have at this moment. Wether they 
should stop when the client disconnects, or if they are supposed to live for 
some time to serve probable next connections?

I'll have another look at where the surviving generations are/originate from.

> Process handles appear to be leaking in queries using an IN clause during 
> concurrent DB access
> ----------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1781
>                 URL: https://issues.apache.org/jira/browse/DERBY-1781
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.1.3.1
>         Environment: Windows XP, Java 1.5.0_05
>            Reporter: Mark Hellkamp
>         Attachments: SqlStressTest.java
>
>
> We are currently using Derby embedded in our web application running on 
> Windows. When processing multiple concurrent requests we have noticed that 
> the Java process handle count continues to increase until the machine becomes 
> unresponsive. I was able to isolate the problem to Derby by running the 
> database in network mode in another process. Further investigation showed 
> that the problem could be reproduced using a select statement that has an IN 
> clause with multiple entries on the primary key column. Spawning multiple 
> threads running the same query causes the handle count to increase 
> considerably on the Derby process. The problem occurs in version 10.1.3.1 and 
> 10.2.1.1 (even worse) in both embedded and network mode. The attached test 
> program duplicates the problem. Start Derby in network mode (using 
> startNetworkServer.bat) and run the enclosed test program. The handle count 
> on the Derby process will increase and never go down short of restarting 
> Derby. Using 10.2.1.1 the handle count for the Derby process goes somewhere 
> between 1400-1500 with just two threads in my environment. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to