aws-deadline / deadline-cloud-for-cinema-4d

AWS Deadline Cloud for Cinema 4D
Apache License 2.0
8 stars 9 forks source link

Bug: LongPathsEnabled on Windows seems to be ignored, and results in read/write failure when paths > 256 chars. #84

Open andymanaws opened 1 day ago

andymanaws commented 1 day ago

Expected Behaviour

By enabling LongPathsEnabled on Windows you can utilise assets, and render outputs, that have >256 chars.

But renders via Deadline Cloud seem to throw errors regard file lengths exceeding 256 chars.

Current Behaviour

Job attachments assets will result in an error when syncing:

"your file path is longer than what Windows allow."

Output images fail to write in job attachments:

"Found 0 files (Output directory C:\ProgramData\Amazon\OpenJD\session-0fac1829f3cf4e848c2c18f474f8987e8oe..."

Reproduction Steps

Ensure Windows is configured correctly: https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/The-Windows-10-default-path-length-limitation-MAX-PATH-is-256-characters.html

Use a texture that has a lot of characters - e.g. include

bobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbobbob

Set the output location to a folder which has >256 chars.

Render from the app - it works. Render from Deadline - it fails.

Code Snippet

N/A

karthikbekalp commented 18 hours ago

Hmm, I believe there was a fix explicitly to notify customers when long paths are not enabled in https://github.com/aws-deadline/deadline-cloud/pull/403/files. @AlexTranAmz do you have any ideas why this could happen even if an instance is configured properly?

karthikbekalp commented 16 hours ago

Discussed with @AlexTranAmz, looks like we need to enable the long paths in the registry as well as add UNC paths (add \?\ to the start of the path instead of C:\ or D:).