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, tools, and much more.