On 27.10.2017 14:20, John Ferlan wrote:
On 10/27/2017 02:29 AM, Nikolay Shirokovskiy wrote:
>
>
> On 27.10.2017 08:26, John Ferlan wrote:
>> From: Nikolay Shirokovskiy <nshirokovskiy(a)virtuozzo.com>
>>
>> Commit id '252610f7d' modified net server management to use a
>> hash table to store/manage the various servers; however, during
>> virNetDaemonAddServerPostExec an @srv object is created, added
>> to the dmn->servers hash table, but did not increment the object
>> refcnt like was done during virNetDaemonAddServer as if @srv
>> were being created for the first time.
>
> I'm not agree that 252610f7d introduced the problem. Before this
> commit the situation was the same as now. virNetDaemonAddServer
> takes extra reference, virNetDaemonAddServerPostExec does not
> take extra reference, virNetDaemonDispose unref every server
> in array (just as hash table does). lock daemon does not store
> object returned by virNetDaemonAddServerPostExec and log daemon
> store the object and unref it in virLogDaemonFree.
>
So I dug deeper and can alter the commit message to:
Commit id 'fa1420736' introduced virNetDaemonAddServerPostExec
and virNetDaemonAddServer; however, for the former when adding
@srv to the dmn->servers list, there was no corresponding virObjectRef
as there was in the latter.
Commit id '252610f7d' modified net server management to use a
hash table to store/manage the various servers and did not alter
the code to add the object reference.
I still think 252610f7d is not related. Commit only change the way
servers list is stored not be way their reference are managed.
Particularly virNetDaemonAddServerPostExec does not make ref before
252610f7d so the commit supposes it ok.
Nikolay