Page MenuHome

Fix T93442: Crash when proxy building is cancelled
ClosedPublic

Authored by Richard Antalik (ISS) on Nov 29 2021, 3:37 PM.

Details

Summary

If strip is removed while proxy is built, this causes crash when
building is finished. This happens because proxy anims are freed in
SEQ_proxy_rebuild_finish()

Iterate over available strips and check if original strip still exists
by comparing SessionUUID.

Diff Detail

Repository
rB Blender
Branch
T93442 (branched from master)
Build Status
Buildable 19088
Build 19088: arc lint + arc unit

Event Timeline

Richard Antalik (ISS) requested review of this revision.Nov 29 2021, 3:37 PM
Richard Antalik (ISS) created this revision.
Sergey Sharybin (sergey) requested changes to this revision.Nov 29 2021, 4:09 PM

This is not 100% safe solution as another strip with same pointer could be allocated

That's why why have Sequence.runtime.session_uuid. Those session UUIDs will be matched for original and its evaluated strip, but will not be re-used by original strip.

This revision now requires changes to proceed.Nov 29 2021, 4:09 PM

Forgot to ask, is this a regression since 2.93?

Forgot to ask, is this a regression since 2.93?

Don't think so. 2.93.0 build from bot is not crashing, but I double checked with debugger and it does crash. Original code is very old.

This is not 100% safe solution as another strip with same pointer could be allocated

That's why why have Sequence.runtime.session_uuid. Those session UUIDs will be matched for original and its evaluated strip, but will not be re-used by original strip.

I will have to double check that UUID is not changed when strip is duplicated, but this is good idea to use it.

I will have to double check that UUID is not changed when strip is duplicated, but this is good idea to use it.

Dupliucation as Shift-D will change session UUID, that's for sure and that is expected.
Duplication used for dependency graph's copy-on-write preserves session UUID.

  • Use SessionUUID to check if strip exists
Richard Antalik (ISS) edited the summary of this revision. (Show Details)Nov 30 2021, 9:45 AM
This revision is now accepted and ready to land.Nov 30 2021, 9:56 AM