On 14.10.2015 11:29, Vasiliy Tolstov wrote: > 2015-10-14 11:39 GMT+03:00 Michal Privoznik <mprivozn@xxxxxxxxxx>: >> are you trying the latest git HEAD? Because I resolved some mem leaks there. >> Maybe the problem is, the value passed to caller is not unset() >> (something like free() in php), or we are setting wrong reference >> counters somewhere. > > > I'm try master head, also i'm add in get_string_from_xpath string > xmlNodeListGetString(doc, nodeset->nodeTab[i]->xmlChildrenNode, 1) > allocates char * that needs to be freed, but it only checked with > NULL, and later value is duplicated (allocating another memory block > in add_assoc_string_ex ) . i'm rearrange some code paths, but leaks > not solved. Ah, so this is the problem. You need to xmlFree() the xpath result, once strduped(). Alternatively, don't strdup and pass ownership of the string to libvirt-php. BTW: what function are you looking at? > I have simple php script, that use functions that internally use > get_string_from_xpath and after 100-200 executions i have is about > 1.5Gb memory wasted by script. May be this is internally php problem, > i'm try unset, run gc but this is not helps. > I'm remove all functions that use get_string_from_xpath and get xml > via libvirt and after that all leaks dissapeared. > > So i voted to remove unneded functions and provide only libvirt > bindings. All other logic can be created with provided binding. Like > golang libvirt binding. > Yes, we should remove unneeded functions. Mind proposing a patch? Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list