On Wed, 2009-10-07 at 22:51 +0200, Hans de Goede wrote: > block.dmraid.RaidSet keeps track of the state of the devicemaps and will > try to add / remove maps when activating / deactivating the set depending > on its internal state, shallow copying it copies this state, creating > 2 copies of it, which can result in trying to bring the set up or down > twice, which causes a backtrace. Seems a little tricky, but if it works it works. > --- > storage/devices.py | 7 +++++-- > 1 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/storage/devices.py b/storage/devices.py > index 4fb1158..8d23b86 100644 > --- a/storage/devices.py > +++ b/storage/devices.py > @@ -237,9 +237,12 @@ class Device(object): > """ > new = self.__class__.__new__(self.__class__) > memo[id(self)] = new > - shallow_copy_attrs = ('_partedDevice', '_partedPartition', '_raidSet') > + dont_copy_attrs = ('_raidSet',) > + shallow_copy_attrs = ('_partedDevice', '_partedPartition') > for (attr, value) in self.__dict__.items(): > - if attr in shallow_copy_attrs: > + if attr in dont_copy_attrs: > + setattr(new, attr, value) > + elif attr in shallow_copy_attrs: > setattr(new, attr, copy.copy(value)) > else: > setattr(new, attr, copy.deepcopy(value, memo)) _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list