dotmesh-io / dotmesh

dotmesh (dm) is like git for your data volumes (databases, files etc) in Docker and Kubernetes
https://dotmesh.com
Apache License 2.0
539 stars 29 forks source link

Cleanly handle dots found in ZFS but not in the KV store #669

Open alaric-dotmesh opened 5 years ago

alaric-dotmesh commented 5 years ago

While investigating https://github.com/dotmesh-io/ds-runner/issues/31 a situation was found where a pull hung forever.

A previous attempt to pull the dot had resulted in it being created on disk, but it was not in the KV store.

During startup, Dotmesh found the dot on disk so created an fsmachine, but it went to the failed state as it could not be located in the KV store. It wasn't in the registry so it was invisible to normal observers, but its fsid was claimed by the failed fsmachine.

Attempts to pull the dot were then routed to the failed fsmachine, which never picked up the request, as it was in the failed state, so the pull just hung.

Possible things to improve: