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(ivy): restore global state after running refreshView #32521

Closed

Conversation

@AndrewKushnir
Copy link
Contributor

commented Sep 6, 2019

Prior to this commit, the previousOrParentTNode was set to null after performing all operations within refreshView function. It's causing problems in more complex scenarios, for example when change detection is triggered during DI (see test added as a part of this commit). As a result, global state might be corrupted. This commit captures current value of previousOrParentTNode and restores it after refreshView call.

This PR fixes FW-1548.

PR Type

What kind of change does this PR introduce?

  • Bugfix

Does this PR introduce a breaking change?

  • Yes
  • No
Prior to this commit, the `previousOrParentTNode` was set to null after performing all operations within `refreshView` function. It's causing problems in more complex scenarios, for example when change detection is triggered during DI (see test added as a part of this commit). As a result, global state might be corrupted. This commit captures current value of `previousOrParentTNode` and restores it after `refreshView` call.
@ngbot ngbot bot modified the milestone: needsTriage Sep 6, 2019
@googlebot googlebot added the cla: yes label Sep 6, 2019
@AndrewKushnir AndrewKushnir marked this pull request as ready for review Sep 7, 2019
@AndrewKushnir AndrewKushnir requested a review from angular/fw-core as a code owner Sep 7, 2019
Copy link
Member

left a comment

LGTM, although the global state and re-entrant change detection make me very nervous....

@AndrewKushnir

This comment has been minimized.

Copy link
Contributor Author

commented Sep 9, 2019

@kara
kara approved these changes Sep 10, 2019
Copy link
Contributor

left a comment

LGTM

@matsko matsko closed this in a1beba4 Sep 10, 2019
arnehoek added a commit to arnehoek/angular that referenced this pull request Sep 26, 2019
Prior to this commit, the `previousOrParentTNode` was set to null after performing all operations within `refreshView` function. It's causing problems in more complex scenarios, for example when change detection is triggered during DI (see test added as a part of this commit). As a result, global state might be corrupted. This commit captures current value of `previousOrParentTNode` and restores it after `refreshView` call.

PR Close angular#32521
@angular-automatic-lock-bot

This comment has been minimized.

Copy link

commented Oct 11, 2019

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Oct 11, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
4 participants
You can’t perform that action at this time.