On 04/08/2010 12:32 PM, Michael Moore wrote:
We were seeing pvfs2-client-core exhibiting large amounts of memory
usage, exceeding 1GB and continuing to rise. Investigating, it appears
there are cases where PVFS_hints get allocated but the state machine
don't always exit via terminate so the hints go un-freed. The culprit I
noticed the most is get-attr.
Attached are a set of patches to clean up the leaks I found.
1) hint_related_leaks.patch
Modifies PINT_client_state_machine_post to free hints that were
added at the top of the function if something causes it to return before
posting the job. Also, modify PINT_client_state_machine_release to free
hints before free the control block. Finally, adding a free of hints to
PINT_sys_release_smcb so state machines that don't go through terminate
still get their hints freed. These leaks cause continual increased
memory usage throughout the life of pvfs2-client-core.
Hi Michael,
I haven't looked at the others ones yet, but I think the hints patch was
the most serious. Bart submitted something similar recently too.
I took Michael's patch, removed the old hint_free() call in
client_state_machine_terminate(), and set the hint structure to NULL
everywhere for extra paranoia. Could you guys try out the trunk or
pvfs-2-8-branch in cvs and let me know if it seems Ok to you? I think
free call in client_state_machine_terminate() was being duplicated, but
NULL checks prevented it from causing a problem other than just looking
weird to me.
Thanks for the fixes!
-Phil
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers