Re: Unison hangs after macfuse 5.0.7 update
Greg Troxel <[email protected]> Thu, 16 Oct 2025 07:14:17 -0400
| Newsgroups | gmane.network.unison.general |
|---|---|
| Message-ID | <[email protected]> |
Lluc Pallej=C3=A0 <[email protected]> writes: > I have no idea whether this is an issue with macfuse or Unison > maybe?.. the thing is using macfuse 5.0.7 everything runs fine, I can > mount the folder with gocryptfs, I can open files.. the only issue is > when synchronizing using Unison. I'm guessing of course, but: - we have no other reports of problems like this + however I suspect not many people use macfuse/gocryptfs - you have repeatably shown unison works with macfuse 5.0.6 and not with 5.0.7 so that puts more of the probability on macfuse. But that's only helpful in choosing a strategy; the point is to figure out what's wrong so it can be fixed, whereever that might be. It is possible that unison does some VFS operation via macfuse/gocryptfs that don't happen during normal operations, or with unusual arguments, and it's only that corner case that is troubled. It's of course possible that there's been a bug in Unison ~forever that is only triggered by legit but unusual results. I would suggest (not really ordered): - sync locally, APFS to gocryptfs, and then gocryptfs to gocryptfs - build unison from git master, and run make test. Assuming that's ok, unpack the sources in a gocryptfs folder and repeat. Read the tests enough to see if it uses /tmp and if so repoint to inside the build dir so that the test repos are in gocryptfs. - run some filesystem tester in macfuse/gocryptfs. Not sure what one to suggest, but if you find one that's useful and portable please let me know. - turn on debugging in macfuse and gocryptfs. Reading the above, I see traces of unison talking to peer, but I am not seeing system calls. My guess is that unison is doing some fs operations locally after ending the lockArchive request, and getting hung up there. I use "ktrace" on NetBSD all the time, and I see that macOS 15 has this too. There is also dtrace, which I believe is more powerful, but it's on my list of things to learn so other than pointing you at dtrace, I don't have much to offer. - read the commit logs in macfuse's version-control system between those tags. - build macfuse from source and bisect between tags. This sounds crazy, but once you can build I suspect it is not really that hard. Once you find the commit that provokes trouble, I suspect things will be easier to figure out. But all that said, I'd first re-run your above tests with ktrace as the easiest thing likely to surface new information. To unsubscribe from this group and stop receiving emails from it, send an e= mail to [email protected].