Ryan Barry has posted comments on this change.

Change subject: Find installer exceptions
......................................................................


Patch Set 2:

No, it's not enough to only import it one time.

The problem isn't in AugeasWrapper specifically, and may be very difficult to 
solve there.

It's in the python augeas codebase itself. The augeas object is instantiated 
with a slim FFI wrapper, and doesn't appear to have been created as a 
singleton, so when imported multiple times, it tries to dispose of nonexistent 
objects.

At any point where we may be calling down to the old codebase *and* 
instantiating augeaswrapper, we have multiple calls to augeas.Augeas(

If there's an extant reference, it's returned. So now 
ovirt.node.utils.AugeasWrapper().aug and ovirtnode.ovirtfunctions.aug are 
pointing to the same reference. And when the python runtime collapses to clean 
up garbage and unused references at exit, object.__del__ is called for both, 
and Augeas doesn't handle it gracefully.

The solution is to stop using the augeas utilities in the new codebase and the 
old codebase simultaneously if there's a chance both will be terminated at 
once, but that's infeasible until we can move off the old codebase (or unless 
we go through to catch every place ovirtfunctions.aug is being used and replace 
it with AugeasWrapper).

-- 
To view, visit http://gerrit.ovirt.org/27303
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ida10fd5ae68d2b8eececd58d154adf9d3042ff28
Gerrit-PatchSet: 2
Gerrit-Project: ovirt-node
Gerrit-Branch: master
Gerrit-Owner: Ryan Barry <[email protected]>
Gerrit-Reviewer: Fabian Deutsch <[email protected]>
Gerrit-Reviewer: Ryan Barry <[email protected]>
Gerrit-Reviewer: [email protected]
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: No
_______________________________________________
node-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/node-patches

Reply via email to