PixarAnimationStudios / OpenUSD

Universal Scene Description
http://www.openusd.org
Other
6.04k stars 1.2k forks source link

Creating large usdz files produces invalid files without error #3098

Open ShaddyDC opened 4 months ago

ShaddyDC commented 4 months ago

Description of Issue

Trying to create a usdz file from a large usd folder with UsdUtilsCreateNewUsdzPackage creates an invalid file. Opening it gives this error, both in omniverse and usdview. image

The file is not a valid zip file anymore either. We suspect that the issue is that the file size is over the 32 bit limit and the ZIP64 extension is not supported, which is fine, but it would be nice if we then received an error code. Actually being able to create those large archives would be even better, of course.

I can provide some concrete reproduction files, but given the file size we're talking about and the suspected cause, I figured it's probably not worth it. I can also give a concrete code snippet to reproduce if needed.

Steps to Reproduce

  1. Create a large, valid folder that can be turned into an usdz archive
  2. Call UsdUtilsCreateNewUsdzPackage(path, outPath) on the folder, which will return true
  3. Ensure the created usdz is over 4 GB. If not, go back to step 1
  4. Try to open the created usdz file with usdview or unzip, both of which fail

System Information (OS, Hardware)

Replicated both on debian-bookworm in docker and on NixOS 24.05.20240515.33d1e75.

Package Versions

23.05, 23.11

Build Flags

    "-DPXR_BUILD_ALEMBIC_PLUGIN=ON"
    "-DPXR_BUILD_DRACO_PLUGIN=ON"
    "-DPXR_BUILD_EMBREE_PLUGIN=ON"
    "-DPXR_BUILD_EXAMPLES=OFF"
    "-DPXR_BUILD_IMAGING=ON"
    "-DPXR_BUILD_MONOLITHIC=ON"
    "-DPXR_BUILD_TESTS=OFF"
    "-DPXR_BUILD_TUTORIALS=OFF"
    "-DPXR_BUILD_USD_IMAGING=ON"
    "-DPXR_BUILD_DOCUMENTATION=OFF"
    "-DPXR_BUILD_PYTHON_DOCUMENTATION=OFF"
    "-DPXR_BUILD_USDVIEW=OFF"
    "-DPXR_BUILD_USD_TOOLS=OFF"
    "-DPXR_ENABLE_MATERIALX_SUPPORT=OFF"
    "-DPXR_ENABLE_OSL_SUPPORT=OFF"
jesschimein commented 4 months ago

Filed as internal issue #USD-9711