voxel51/fiftyone

[BUG] ReferenceError: weakly-referenced object no longer exists

Open

#2,738 opened on Mar 7, 2023

View on GitHub
 (4 comments) (0 reactions) (0 assignees)Python (400 forks)batch import
bugcoregood first issue

Repository metrics

Stars
 (4,021 stars)
PR merge metrics
 (Avg merge 3d 11h) (161 merged PRs in 30d)

Description

Here's a perplexing mongoengine-related error:

import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset("quickstart")

# this fails
dataset.first()["tags"].append("tag")

# but this works
sample = dataset.first()
sample["tags"].append("tag")
ReferenceError                            Traceback (most recent call last)
<ipython-input-2-846545a97f03> in <module>
----> 1 dataset.first()['tags'].append('tag')

~/dev/env/fo/lib/python3.9/site-packages/mongoengine/base/datastructures.py in wrapper(self, *args, **kwargs)
     21         # Can't use super() in the decorator.
     22         result = parent_method(self, *args, **kwargs)
---> 23         self._mark_as_changed()
     24         return result
     25 

~/dev/env/fo/lib/python3.9/site-packages/mongoengine/base/datastructures.py in _mark_as_changed(self, key)
    179 
    180     def _mark_as_changed(self, key=None):
--> 181         if hasattr(self._instance, "_mark_as_changed"):
    182             if key is not None:
    183                 self._instance._mark_as_changed(f"{self._name}.{key % len(self)}")

ReferenceError: weakly-referenced object no longer exists

Contributor guide