Found this one in the logs as well (uglier than the one before):
2015-05-26 12:49:24,639 [ERROR jobs.jobhandler] [inventory 10.257.1.140] Caught exception during save. Last manager = DefaultManager(<class 'nav.ipdevpoll.shadows.netbox.Netbox'>, 'ContainerRepository'(..
.)). Last model = <class 'nav.ipdevpoll.shadows.netbox.Netbox'>
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/jobs.py", line 413, in perform_save
manager.save()
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/storage.py", line 84, in save
obj.save(self.containers)
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/storage.py", line 468, in save
self.update(containers)
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/storage.py", line 492, in update
obj = self.convert_to_model(containers)
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/storage.py", line 300, in convert_to_model
value = value.convert_to_model(containers)
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/storage.py", line 290, in convert_to_model
model = self.get_existing_model(containers)
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/storage.py", line 352, in get_existing_model
model = self.__shadowclass__.objects.get(pk=pkey_value)
File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py", line 131, in get
return self.get_query_set().get(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 368, in get
% (self.model._meta.object_name, num, kwargs))
MultipleObjectsReturned: get() returned more than one NetboxType -- it returned 2! Lookup parameters were {'pk': 98}
2015-05-26 12:49:24,641 [ERROR jobs.jobhandler] [inventory 10.257.1.140] Save stage failed with unhandled error
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 525, in __bootstrap
self.__bootstrap_inner()
File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 505, in run
self.__target(*self.__args, **self.__kwargs)
--- <exception caught here> ---
File "/usr/lib/python2.7/dist-packages/twisted/python/threadpool.py", line 207, in _worker
result = context.call(ctx, function, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
return func(*args,**kw)
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/db.py", line 152, in _reset
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/db.py", line 111, in _autocommit
result = func(*args, **kw)
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/db.py", line 130, in _cleanup
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/jobs.py", line 368, in complete_save_cycle
result = self.perform_save()
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/jobs.py", line 413, in perform_save
manager.save()
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/storage.py", line 84, in save
obj.save(self.containers)
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/storage.py", line 468, in save
self.update(containers)
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/storage.py", line 492, in update
obj = self.convert_to_model(containers)
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/storage.py", line 300, in convert_to_model
value = value.convert_to_model(containers)
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/storage.py", line 290, in convert_to_model
model = self.get_existing_model(containers)
File "/usr/lib/python2.7/dist-packages/nav/ipdevpoll/storage.py", line 352, in get_existing_model
model = self.__shadowclass__.objects.get(pk=pkey_value)
File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py", line 131, in get
return self.get_query_set().get(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 368, in get
% (self.model._meta.object_name, num, kwargs))
nav.models.manage.MultipleObjectsReturned: get() returned more than one NetboxType -- it returned 2! Lookup parameters were {'pk': 98}
2015-05-26 12:49:24,642 [ERROR jobs.jobhandler] [inventory 10.257.1.140] Job 'inventory' for 10.257.1.140 aborted: Job aborted due to save failure (cause=MultipleObjectsReturned("get() returned more than one NetboxType -- it returned 2! Lookup parameters were {'pk': 98}",))
2015-05-26 12:49:24,643 [INFO schedule.netboxjobscheduler] [inventory 10.257.1.140] inventory for 10.257.1.140 failed in 0:00:01.316998. next run in 0:08:55.999954.
> nav.models. manage. MultipleObjects Returned: get() returned more than one NetboxType -- it returned 2! Lookup parameters were {'pk': 98}
That looks pretty f-ed up.
This is a lookup into the "type" database table, using a primary key.
Primary keys must be unique. The table cannot hold two records with the
same primary key unless something has gone seriously wrong with your
database.
What do you get if you connect to the database using psql and issue this
SQL statement:
SELECT * FROM type WHERE typeid=98;