Skip to content

Database errors when loading repo from NFS Share #11157

@TheTechmage

Description

@TheTechmage

Version

0.17.6

Operating System

Windows

Distribution Method

msi (Windows)

Describe the issue

When attempting to open a project on an NFS share (SMB share was going too slow), I am getting errors from the app in relation to the database files on the share. I have verified that the files do exist after the app attempts to create them. I have tried multiple things to disable locking such as mounting with nolock and turning on/off asynchronous operations on the NFS server, to no avail.

My linux NFS export is:

/home/techmage/repos/ 192.168.1.2(rw,sync,all_squash,anonuid=1000,anongid=1000,nohide)

My Windows mount command is:

mount -o nolock \\192.168.1.3\home\techmage\repos Z:

When selecting the network mount as the repo and waiting for a bit, I get the following "file in use" error:

command: set_project_active
params: {"id":"e5beb465-3060-4717-8d2a-2c37b5a4b953"})

Failed to rename Z:\wyvern\web\.git\gitbutler\but.sqlite to Z:\wyvern\web\.git\gitbutler\but.sqlite.maybe-broken-01 - application may fail to startup: The process cannot access the file because it is being used by another process. (os error 32)

After proceeding anyways to open the project, the "rules" section loads for a bit then spits out this error:

command: list_workspace_rules
params: {"projectId":"e5beb465-3060-4717-8d2a-2c37b5a4b953"})

database is locked

I have verified that the files are being created and written to, and they have the "correct" user/group IDs and permissions assigned to them:

Image

When I remove the project, the folder is deleted and things are correctly cleaned up.

How to reproduce (Optional)

  1. Setup an NFS share (I did so on Linux, though other OSs might exhibit the issue as well)
  2. Setup and configure Windows built-in "Client for NFS"
  3. Mount the NFS share
  4. Add a new local repository pointing to a git repo on the NFS share

Expected behavior (Optional)

No errors, the app works as if it were working with local files.

Relevant log output (Optional)

command: set_project_active
params: {"id":"e5beb465-3060-4717-8d2a-2c37b5a4b953"})

Failed to rename Z:\wyvern\web\.git\gitbutler\but.sqlite to Z:\wyvern\web\.git\gitbutler\but.sqlite.maybe-broken-01 - application may fail to startup: The process cannot access the file because it is being used by another process. (os error 32)

command: list_workspace_rules
params: {"projectId":"e5beb465-3060-4717-8d2a-2c37b5a4b953"})

database is locked

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingos:windowsThe Windows platform⚠️Critical⚠️Resolve as soon as possible as the app is seriously hampered, unusable, or data is in danger.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions