> it seems likely that ~msgForMultiplyDefinedPV is/was never called due to some bug involving free lists, custom "operator delete", and explicitly calling the dtor.
I think so.
~msgForMultiplyDefinedPV is explicitly called as part of cac::pvMultiplyDefinedNotify, the callback that is executed when additional DNS answers come in.
Since fixing lp:1527636 removed the phase that waited for all pending requests (and callbacks being executed), the new fast exit means cac::pvMultiplyDefinedNotify is not called.
I think this shows in a fast 'caget' client loop: now I get lots of single line executions, while running the destructor in ipAddrToAsciiEnginePrivate::release() (called from the cac destructor) yields exactly one MultiplyDefined message per call, and no segfaults or exceptions.
> it seems likely that ~msgForMultiply DefinedPV is/was never called due to some bug involving free lists, custom "operator delete", and explicitly calling the dtor.
I think so.
~msgForMultiply DefinedPV is explicitly called as part of cac::pvMultiply DefinedNotify, the callback that is executed when additional DNS answers come in.
Since fixing lp:1527636 removed the phase that waited for all pending requests (and callbacks being executed), the new fast exit means cac::pvMultiply DefinedNotify is not called.
I think this shows in a fast 'caget' client loop: now I get lots of single line executions, while running the destructor in ipAddrToAsciiEn ginePrivate: :release( ) (called from the cac destructor) yields exactly one MultiplyDefined message per call, and no segfaults or exceptions.