final bug report

This commit is contained in:
Nathan
2026-01-09 10:30:03 -07:00
parent e53c9270c1
commit 2072a13e6f
2 changed files with 15 additions and 25 deletions

View File

@@ -2,16 +2,19 @@
Operating System(s): Win11 25h2
**Flamenco Version**
Is Broken: 3.8
Is Broken: 3.8.2
Worked OK: unknown
When Flamenco is ran from a Windows machine, with the shared-storage set to an SMB share, the symlinks created by Shaman appear to be either completely useless at worst, context dependent at best.
When Flamenco is ran from a Windows machine, with the shared-storage set to an SMB share, the symlinks (Windows reparse points) created by Shaman appear to be either completely useless at worst, or context dependent at best.
I don't know if this is a bug, or if I'm doing something wrong. But I can't get a windows system to create proper Windows Reparse points on an SMB share. And I'm [not the only one in recent history](https://www.reddit.com/r/blenderhelp/comments/1onwaj1/need_help_with_windows_flamenco_worker_file/) who has struggled to get Shaman to work with Windows and Samba.
1. Download and configure Flamenco
2. Configure the security policy as instructed [in the documentation](https://flamenco.blender.org/usage/shared-storage/shaman/#windows)
3. Set `shaman: enabled: true`.
4. Set `shared_storage_path`. I was originally hosting the files on a TrueNAS SMB share (mapped to F:\). Testing it with a local drive (T:\Flamenco) results with the intended behavior.
5. Submit job
3. Enable symlinks on the (Linux) machine hosting your SMB share, as instructed [in the documentation](https://flamenco.blender.org/usage/shared-storage/shaman/#enabling-symlinks-on-samba)
4. Set `shaman: enabled: true`.
5. Set `shared_storage_path`. I was originally hosting the files on a TrueNAS SMB share (mapped to F:\). Testing it with a local drive (T:\Flamenco) results with the intended behavior.
6. Submit job
The symlinks created within `jobs` will not be universally accessible by Windows. All Windows workers (I have only tested Windows) will fail:
@@ -75,25 +78,12 @@ Opening the actual blob in blender works, but obviously it's still pointing to f
### Root Cause
Windows creates **Windows reparse points** (not Unix symlinks) when creating symlinks on SMB shares. The behavior differs based on how the file is accessed:
1. **Windows reparse points on SMB shares:**
- Windows stores the target path in reparse point metadata
- Samba stores these as empty regular files on the server (doesn't understand Windows reparse points)
- The target path is correctly stored and can be read via `Get-Item` `.Target` property
2. **Why some applications work:**
- **Windows Explorer/Notepad:** Use file system filters that detect reparse points and automatically resolve them client-side by reading the `Target` property and opening the target file
- This works because resolution happens on the Windows client, not the SMB server
3. **Why Blender/other applications fail:**
- **Blender/VSCode/programmatic I/O:** Use direct file I/O operations (`ReadAllBytes()`, `FileStream`, etc.)
- These operations don't use reparse point filters
- SMB client doesn't automatically follow reparse points
- Returns the empty file from the server (0 bytes)
Windows creates **Windows reparse points**. The reparse points are not interpreted properly in all contexts, but only when read from the SMB share. When Flamenco's shared storage is set to a local drive, the reparse points work, but I haven't tested if sharing this folder via SMB works, and you'd probably still have to perform [this step](https://flamenco.blender.org/usage/shared-storage/shaman/#enabling-symlinks-on-samba).
## Workarounds
1. **Use local storage:** Set `shared_storage_path` to a local NTFS drive (symlinks work perfectly)
2. **Run Flamenco Manager on Linux/WSL:** Use `mfsymlinks` mount option for SMB shares
3. Disable Shaman.
1. **Use local storage:** Set `shared_storage_path` to a local NTFS drive (symlinks work perfectly). This would possibly require hosting the SMB share from that same Windows machine, but I haven't tested if that works. It's possible SMB would behave the same.
2. **Run Flamenco Manager on Linux/WSL:** Use `mfsymlinks` mount option for SMB shares. Running the Manager from WSL on the Windows machine works, but running the Manager from the Linux machine hosting the storage makes more sense. This also requires setting up a [two-way storage variable](https://flamenco.blender.org/usage/variables/multi-platform/).
3. **Disable Shaman.** Most other Windows users seem to recommend this, and I ran without Shaman for nearly a year and it *works*. I just wanted to try tackling the root cause, which appears to be SMB. But I can't figure out why me - and other Windows users - can't get it to work, when [Sybren's old demonstration](https://youtu.be/O728EFaXuBk?si=w1hItkAN349gFfMl) appeared to work seamlessly.
Bottom line: has Windows or SMB changed the way Windows reparse points are interpreted over SMB? And what can be done with Shaman (and/or the documentation) do make this work again, if anything?

View File

@@ -3,4 +3,4 @@
3. create batch to launch the manager from windows using ssh to the linux machine
4. run batch to replace running the manager from windows
i still need to submit a bug report that highlights that the symlinks are not working on windows when the shared storage is on an SMB share, which is the entire point... sybren does it on his demo video, so idk how it broke.
* [X] i still need to submit a bug report that highlights that the symlinks are not working on windows when the shared storage is on an SMB share, which is the entire point... sybren does it on his demo video, so idk how it broke.