-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Fix some SOS commands after SharedDomain removal #21401
Conversation
There was a problem hiding this 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.
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. |
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? |
Not we currently don’t and will not support the desktop runtime in the diagnostics repo.
|
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.
6125654
to
0f5d816
Compare
@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. |
@dotnet-bot test Windows_NT arm Cross Checked Innerloop Build and Test |
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.
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
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.