Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FCP & QNAP SMB v3 corrupting libraries upon duplicating projects. #250

Open
nick314 opened this issue Sep 13, 2023 · 2 comments
Open

FCP & QNAP SMB v3 corrupting libraries upon duplicating projects. #250

nick314 opened this issue Sep 13, 2023 · 2 comments

Comments

@nick314
Copy link

nick314 commented Sep 13, 2023

Apple Feedback Assistant ID: MISSING

Using the latest FCP, although this issue has been going on for some time and with previous versions. The library and media is located on a QNAP server (10GbE connection - 800Write/1050Read performance) via SMB 3.
Final Cut Pro-2023-09-13-155901.ips.zip

Almost every time I duplicate a project within an event, I get a corrupt library, especially when I try to rename the project. Sometimes duplicating works, but after working for a couple of minutes, library corrupts itself, and duplicate no longer works unless I manually go to the library contents and delete the corrupt project folder and restart.

This happened with previous versions of FCP and the same QNAP so it's not linked to this version only, but I've been working on davinci for a while, and hadn't noticed lately how often the issue happens with FCP.

The media I'm working with is Sony A7SIII, but the crashes I get after returning the project from Davinci, so the media is essentially Apple ProRes 422 HQ. May have something to do with XML roundtripping but I doubt it since I've stumbled onto this issue with other projects that didn't have round tripping. Could be SMB related (though no disconnection issues occur), but I have not tested this with moving the project locally and trying to see if the issue pops up as well. I have tried creating a new library and adding the media and keywords there, but the same thing happens. I have a crash log from today, but the software doesn't really crash, so I don't know what relevant info can be found inside.

SPECS:

  • MacBook Pro M2 Max 64 GB / 2 TB.
  • macOS Ventura 13.5.2
  • Final Cut Pro 10.6.8
@nick314
Copy link
Author

nick314 commented Sep 15, 2023

I have now tested the library locally on the laptop and it seems to work. So the issue remains over SMB v3 and 10GBe connections where FCP corrupts libraries upon duplicating and renaming projects that are located over this type of network.

@joema4
Copy link

joema4 commented Oct 21, 2023

I have limited experience using FCP files on a QNAP server, but Apple says if using FCP files on a Linux-based NAS using SMB, that server should be using Samba 4.3.4 or later configured with modules for Apple compatibility:
https://support.apple.com/en-us/HT207128

I briefly ran the fs_usage command in terminal against the FCP process when I was duplicating a project. It showed a lot of specialized I/O calls on the library that are designed to prevent data corruption, e.g, guarded_pwrite_np, guarded_close_np,
guarded_open_np, guarded_close_np. I don't know how those are redirected to SMB then on the server from SMB to local I/O calls.

I don't know what kind of I/O tracing options exist on QNAP, but one logical approach is do the equivalent of fs_usage on the server during FCP project duplication, while the MacOS client is also being logged by fs_usage. That way you can do a time-correlated study of the I/O operations.

Re the library corruption, one question is whether that is at the database structural level or at the application level. The integrity of each SQLite database in each event and project within the library can be checked using PRAGMA INTEGRITY_CHECK in each database, using any SQLite query tool. The one I use is SQLPro for SQLite: https://www.sqlitepro.com

If it's not damaged at the database structural level (IOW index b-trees), the damage is at the application layer, IOW the logical contents of the tables. There is the undocumented FCP menu OPT+Clip>Verify & Repair Project, but I definitely wouldn't use that without a backup.

It would be interesting to use SQLPro and export a CSV version of the project database before the duplication attempt, then export a CSV version afterward (both original and duplicate) and compare those using a diff tool such as Beyond Compare or BBEdit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants