On Satellite, Cobbler is occasionally failing with 'Exception value: dictionary changed size during iteration' when creating system records
Issue
- While creating a new cobbler system record, we sometimes receive an Exception:
- From /var/log/cobbler/cobbler.log:
Mon Aug 26 12:05:27 2013 - INFO | REMOTE save_item(system); user(epe-script-user); object_id(___NEW___system::Ek0nd9GksZ1YCCrMTkRFMXWt7gJxzIr0Zg==)
Mon Aug 26 12:05:27 2013 - DEBUG | authorize; ['epe-script-user', 'save_system', <cobbler.item_system.System instance at 0x7fa234605ea8>, None, True]
Mon Aug 26 12:05:27 2013 - DEBUG | REMOTE epe-script-user authorization result: True; user(?)
Mon Aug 26 12:05:27 2013 - INFO | add_item(system); ['client.example.com']
Mon Aug 26 12:05:27 2013 - DEBUG | get_items; ['system']
Mon Aug 26 12:05:27 2013 - INFO | Exception occured: <type 'exceptions.RuntimeError'>
Mon Aug 26 12:05:27 2013 - INFO | Exception value: dictionary changed size during iteration
Mon Aug 26 12:05:27 2013 - INFO | Exception Info:
File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 1758, in _dispatch
return method_handle(*params)
File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 842, in xapi_object_edit
self.modify_system(handle, 'modify_interface', imods, token)
File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 765, in modify_system
return self.modify_item("system",object_id,attribute,arg,token)
File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 758, in modify_item
return method(arg)
File "/usr/lib/python2.6/site-packages/cobbler/item_system.py", line 579, in modify_interface
if field == "macaddress" : self.set_mac_address(value, interface)
File "/usr/lib/python2.6/site-packages/cobbler/item_system.py", line 315, in set_mac_address
matched = self.config.api.find_items("system", {"mac_address" : address})
File "/usr/lib/python2.6/site-packages/cobbler/api.py", line 426, in find_items
res=items.find(return_list=True, no_errors=False, **criteria)
File "/usr/lib/python2.6/site-packages/cobbler/collection.py", line 92, in find
for (name, obj) in self.listing.iteritems():
Environment
- Red Hat Satellite 5.5 and 5.6
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
