voxel51 / fiftyone

Refine high-quality datasets and visual AI models
https://fiftyone.ai
Apache License 2.0
8.72k stars 550 forks source link

[BUG] lancedb backend doesnt work in exfat disk #4404

Closed fcakyon closed 4 months ago

fcakyon commented 4 months ago

Describe the problem

lancedb backend raises error and doesn't work on an exfat disk. it is very frustrating. most probably related to this issue https://github.com/lancedb/lancedb/issues/1231.

Code to reproduce issue

import fiftyone.zoo as foz
import fiftyone.brain as fob
from fiftyone.brain.internal.core.lancedb import LanceDBSimilarityConfig

dataset = foz.load_zoo_dataset("mnist", max_samples=2500)
train_view = dataset.match_tags(tags=["train"])

# Compute embeddings
model = foz.load_zoo_model("mobilenet-v2-imagenet-torch")
train_embeddings = train_view.compute_embeddings(model)

# Compute similarity with lancedb backend
fob.brain_config.similarity_backends["lancedb"] = {
    "config_cls": LanceDBSimilarityConfig,
    "uri": {PUT HERE ANY FAT32 DISK PATH},
}
fob.compute_similarity(train_view, embeddings=train_embeddings, brain_key="lancedb_example", backend="lancedb")

raises this error:

OSError: LanceError(IO): Generic LocalFileSystem error: Unable to copy file from /Volumes/.../lancedb/xxx.lance/_versions/.tmp_1.manifest_4968017c-ea02-4946-90f4-93d87cea4074 to /Volumes/.../lancedb/xxx.lance/_versions/1.manifest: Operation not supported (os error 45), /Users/runner/work/lance/lance/rust/lance-table/src/io/commit.rs:609:54

System information

Willingness to contribute

The FiftyOne Community encourages bug fix contributions. Would you or another member of your organization be willing to contribute a fix for this bug to the FiftyOne codebase?

brimoor commented 4 months ago

@fcakyon thanks for reporting this. Looks like we'll need to await a solution from the lancedb team as per https://github.com/lancedb/lancedb/issues/1231#issuecomment-2123388612.