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
