On 01/31/2013 12:50 AM, Moti Asayag wrote: > On 01/29/2013 10:27 AM, navin p wrote: >> > Hi, >> > I wrote this sample code and the resident memory of the process is >> > increasing gradually over time. What could be the reason ? I don't see >> > any obvious leaks in my program. Could it be that the API is not >> > freeing/deleting memory ? > By monitoring the program, it seems that the failure is due to constant > threads creation by invoking the "new API()" call: > > Exception in thread "main" java.lang.OutOfMemoryError: unable to create > new native thread > at java.lang.Thread.start0(Native Method) > at java.lang.Thread.start(Thread.java:691) > at > org.ovirt.engine.sdk.web.ConnectionsPoolBuilder.createPoolingClientConnectionManager(ConnectionsPoolBuilder.java:182) > at > org.ovirt.engine.sdk.web.ConnectionsPoolBuilder.createDefaultHttpClient(ConnectionsPoolBuilder.java:160) > at > org.ovirt.engine.sdk.web.ConnectionsPoolBuilder.build(ConnectionsPoolBuilder.java:234) > at org.ovirt.engine.sdk.Api.<init>(Api.java:82) > at collectHosts.main(collectHosts.java:102) > > > By pulling the API instantiation outside of the loop, problem solved, > since only a single thread is created to monitor the idle/expired > connections.
Thanks Moti, I already suggested navin to take SDK proxy initiation out of his while loop. > > > Michael, wouldn't you suggest adding some sort of API.shutdown() method > in order to release resources used by it including the connection > monitor and any other live connections if exists? no need for that, in SDK i have dedicated thread (watchdog) for that. > -- Michael Pasternak RedHat, ENG-Virtualization R&D _______________________________________________ Engine-devel mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-devel
