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

Fix Dynamo crash after long idle #11537

Merged
merged 3 commits into from
Mar 23, 2021
Merged

Fix Dynamo crash after long idle #11537

merged 3 commits into from
Mar 23, 2021

Conversation

QilongTang
Copy link
Contributor

@QilongTang QilongTang commented Mar 9, 2021

Please Note:

  1. Before submitting the PR, please review How to Contribute to Dynamo
  2. Dynamo Team will meet 1x a month to review PRs found on Github (Issues will be handled separately)
  3. PRs will be reviewed from oldest to newest
  4. If a reviewed PR requires changes by the owner, the owner of the PR has 30 days to respond. If the PR has seen no activity by the next session, it will be either closed by the team or depending on its utility will be taken over by someone on the team
  5. PRs should use either Dynamo's default PR template or one of these other template options in order to be considered for review.
  6. PRs that do not have one of the Dynamo PR templates completely filled out with all declarations satisfied will not be reviewed by the Dynamo team.
  7. PRs made to the DynamoRevit repo will need to be cherry-picked into all the DynamoRevit Release branches that Dynamo supports. Contributors will be responsible for cherry-picking their reviewed commits to the other branches after a LGTM label is added to the PR.

Purpose

After long idle, Dynamo will lose geometry background preview and clicking on canvas will crash Dynamo. The reason is that certain cleanup code is related to workspace view unloaded event which could be triggered in cases where Dynamo idle for long.

The code in question are introduced as part of #2888.

The fix in this PR is to move clean up code for workspace in OnWorkspaceViewDataContextChanged because this should be enough to prevent memory leak.

Declarations

Check these if you believe they are true

  • The codebase is in a better state after this PR
  • Is documented according to the standards
  • The level of testing this PR includes is appropriate
  • User facing strings, if any, are extracted into *.resx files
  • All tests pass using the self-service CI.
  • Snapshot of UI changes, if any.
  • Changes to the API follow Semantic Versioning and are documented in the API Changes document.
  • This PR modifies some build requirements and the readme is updated

Reviewers

@DynamoDS/dynamo

FYIs

(FILL ME IN, Optional) Names of anyone else you wish to be notified of

@@ -92,9 +95,6 @@ public WorkspaceView()

DataContextChanged += OnWorkspaceViewDataContextChanged;

Loaded += OnWorkspaceViewLoaded;
Unloaded += OnWorkspaceViewUnloaded;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The OnWorkspaceViewDataContextChanged will be triggered in both cases so I do not see them as must have.

@QilongTang QilongTang marked this pull request as ready for review March 16, 2021 05:04
@QilongTang QilongTang requested review from zeusongit and mmisol March 18, 2021 14:18
@QilongTang QilongTang added this to the 2.11.0 milestone Mar 18, 2021
Copy link
Contributor

@zeusongit zeusongit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@QilongTang QilongTang merged commit 459e5aa into master Mar 23, 2021
@QilongTang QilongTang deleted the CrashAfterLongIdle branch March 23, 2021 15:19
QilongTang added a commit that referenced this pull request Mar 24, 2021
* Code Clean up

* Rename functions

* Clean Up
QilongTang added a commit that referenced this pull request Mar 25, 2021
* Fix Dynamo crash after long idle (#11537)

* Code Clean up

* Rename functions

* Clean Up

* Fix view xaml to build
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

Successfully merging this pull request may close these issues.

2 participants