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

UsdSkel display crash when changing a primitive type to SkelRoot #1248

Closed
cameronwhite opened this issue Jun 17, 2020 · 2 comments
Closed

UsdSkel display crash when changing a primitive type to SkelRoot #1248

cameronwhite opened this issue Jun 17, 2020 · 2 comments

Comments

@cameronwhite
Copy link
Contributor

Description of Issue

This is a stripped down version of a crash we encountered with UsdSkel in Houdini, and can reproduce in usdview.
I think this is a separate issue from the one reported in #1228 - it doesn't require the skeleton prim to be displayed, and has a different stack trace when it crashes

Steps to Reproduce

  1. Extract usdskel_rebind.tar.gz and enter the folder
  2. Copy over the HumanFemale folder from the UsdSkel sample, which is too large to include as a Github attachment. This should be copied twice to HumanFemale_01 and HumanFemale_02 - referencing different USD files seems to be required to replicate the sequence of changes that caused the crash in Houdini.
  3. Run usdview usdskel_xform.usda
  4. In the interpreter, run
l = Sdf.Layer.FindOrOpen("usdskel_skelroot.usda")
usdviewApi.stage.GetRootLayer().TransferContent(l)
  1. This usually crashes immediately, but otherwise scrubbing the timeline should do the trick

System Information (OS, Hardware)

Ubuntu 18.04, gcc 7.5

Package Versions

USD 20.05 (https://github.com/sideeffects/USD/tree/dev_houdini18.5.197)

@jtran56
Copy link

jtran56 commented Jun 23, 2020

Filed as internal issue #USD-6168.

cameronwhite added a commit to sideeffects/USD that referenced this issue Nov 19, 2020
to remove skeletons that did not have any bindings to skinned prims.

This could lead to crashes later on from accessing expired prims.

UsdSkelImagingSkeletonAdapter::_RemovePrim() checks _skelBindingMap to
determine whether the provided path is the skeleton prim. This was
inconsistent with UsdSkelImagingSkeletonAdapter::ProcessPrimResync(),
which checks _skelDataCache via _GetSkelData(). If there aren't any
bindings, the skeleton is in _skelDataCache but not _skelBindingMap.

Fixes: PixarAnimationStudios#1228, PixarAnimationStudios#1248
cameronwhite added a commit to sideeffects/USD that referenced this issue Nov 25, 2020
to remove skeletons that did not have any bindings to skinned prims.

This could lead to crashes later on from accessing expired prims.

UsdSkelImagingSkeletonAdapter::_RemovePrim() checks _skelBindingMap to
determine whether the provided path is the skeleton prim. This was
inconsistent with UsdSkelImagingSkeletonAdapter::ProcessPrimResync(),
which checks _skelDataCache via _GetSkelData(). If there aren't any
bindings, the skeleton is in _skelDataCache but not _skelBindingMap.

Fixes: PixarAnimationStudios#1228, PixarAnimationStudios#1248
@sunyab sunyab added pending push Issue fix or pull request merged internally and pending push pending release Issue addressed in next release and removed pending push Issue fix or pull request merged internally and pending push labels Dec 8, 2020
@tallytalwar
Copy link
Contributor

Thanks, this was included in the 21.02 release.

@sunyab sunyab removed the pending release Issue addressed in next release label Feb 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants