FuzzManager
FuzzManager copied to clipboard
BucketHit integrity error
>>> b.reassign(True)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/src/server/crashmanager/models.py", line 232, in reassign
BucketHit.increment_count(
File "/src/server/crashmanager/models.py", line 370, in increment_count
counter, _ = cls.objects.get_or_create(
File "/home/worker/.local/lib/python3.10/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/worker/.local/lib/python3.10/site-packages/django/db/models/query.py", line 929, in get_or_create
return self.get(**kwargs), False
File "/home/worker/.local/lib/python3.10/site-packages/django/db/models/query.py", line 653, in get
raise self.model.MultipleObjectsReturned(
crashmanager.models.BucketHit.MultipleObjectsReturned: get() returned more than one BucketHit -- it returned 2!
to manually fix
counts={}
for key in BucketHit.objects.values_list("bucket_id", "tool_id", "begin"):
counts.setdefault(key, 0)
counts[key] += 1
bad={k:v for k,v in counts.items() if v > 1}
for bid,tid,ts in bad:
a,b=BucketHit.objects.filter(bucket_id=bid,tool_id=tid,begin=ts)
a.count+=b.count
a.save()
b.delete()