Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

Fix some SOS commands after SharedDomain removal #21401

Merged
merged 1 commit into from
Dec 7, 2018

Conversation

janvorli
Copy link
Member

@janvorli janvorli commented Dec 6, 2018

The recent removal of SharedDomain has broken some SOS commands, like
Name2EE, EEHeap or bpmd. There was a code that was enumerating domains and
obtaining some information on them. And the shared domain pointer from
DacpAppDomainStoreData was being included in the list of domains. As it
is NULL now, we have failed to get the information and the domain
iteration loop was exited prematurely.
I have removed all references to the shared domain from SOS to fix that.

@janvorli janvorli added this to the 3.0 milestone Dec 6, 2018
@janvorli janvorli self-assigned this Dec 6, 2018
Copy link
Member

@jkotas jkotas left a comment

Choose a reason for hiding this comment

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

Thanks for fixing this.

I am wondering whether it would be better to instead handle NULL sharedDomain gracefully = if we want the same SOS to be reusable for different runtime versions. Either way looks fine to me.

@mikem8361
Copy link
Member

Yes, any change to SOS now should work on older runtime versions. Otherwise, I can't port it to the new SOS in the diagnostics repo.

@janvorli
Copy link
Member Author

janvorli commented Dec 6, 2018

I was also considering that, but I was thinking that we've never had multiple domains, so this should work for any older version of coreclr. @mikem8361 is the diagnostics repo meant for desktop too?

@mikem8361
Copy link
Member

mikem8361 commented Dec 6, 2018 via email

The recent removal of SharedDomain has broken some SOS commands, like
Name2EE or bpmd. There was a code that was enumerating domains and
obtaining some information on them. And the shared domain pointer from
DacpAppDomainStoreData was being included in the list of domains. As it
is NULL now, we have failed to get the information and the domain
iteration loop was exited prematurely.
I have made SOS resilient to the possibility of missing shared domain.
On older runtimes, the shared domain is still being reported.
@janvorli
Copy link
Member Author

janvorli commented Dec 6, 2018

@jkotas, @mikem8361 I've replaced the change with one that keeps support for showing / enumerating shared domain on older runtimes where it is present and only ignore it on runtimes that have the shared domain removed.

@janvorli
Copy link
Member Author

janvorli commented Dec 6, 2018

@dotnet-bot test Windows_NT arm Cross Checked Innerloop Build and Test

@janvorli janvorli merged commit af46c51 into dotnet:master Dec 7, 2018
@janvorli janvorli deleted the fix-sos-shareddomain branch December 7, 2018 19:13
morganbr pushed a commit that referenced this pull request Dec 14, 2018
The recent removal of SharedDomain has broken some SOS commands, like
Name2EE or bpmd. There was a code that was enumerating domains and
obtaining some information on them. And the shared domain pointer from
DacpAppDomainStoreData was being included in the list of domains. As it
is NULL now, we have failed to get the information and the domain
iteration loop was exited prematurely.
I have made SOS resilient to the possibility of missing shared domain.
On older runtimes, the shared domain is still being reported.
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
The recent removal of SharedDomain has broken some SOS commands, like
Name2EE or bpmd. There was a code that was enumerating domains and
obtaining some information on them. And the shared domain pointer from
DacpAppDomainStoreData was being included in the list of domains. As it
is NULL now, we have failed to get the information and the domain
iteration loop was exited prematurely.
I have made SOS resilient to the possibility of missing shared domain.
On older runtimes, the shared domain is still being reported.

Commit migrated from dotnet/coreclr@af46c51
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
3 participants