hopefully, things should be back to normal. last commit was revision 1.37 of PackageLocation.pm date: 2014/02/09 11:13:59; author: espie; state: Exp; lines: +4 -3; do a better job in wipe_info: close files and reap children. also wipe every state variable... fixes reget update_info in fringe cases (this should fix nigel@'s problems...)
pkg_add memory usage is back down to reasonable levels, after two large fixes, and a heck of a lot of small changes... with tidying up and minor bug fixes along the way (well, some of them probably not so minor). Just to put things in perspective, my "big" testcase backed down from 480M to 280M... and in more normal cases, usage stops growing. The two large fixes were to prevent ProgressMeter/Term.pm from capturing full plists (with their sha values and all that long post the peremption date) and to limit the number of locally opened IO::Uncompress::Gunzip handles to 3 (issue was already there for fork()d gunzip, but as extra processes hanging around...). Small fixes include shrinking conflict representation, bringing full packing-lists in only AFTER solving dependencies, not storing full objects for "simple" shared dirs, and a lot lot of work on caching disk access better (PackageLocation/Repository cleanup fixes). Kuddoes to pirofti@ for suggesting some awesome introspection tools (Devel::Leak::Object, Devel::BackRef, Devel::Gladiator. That stuff rocks). So if you notice suspicious things and you have the current version, report them asap... there's precious little time to fix them before the release.