-
Notifications
You must be signed in to change notification settings - Fork 5k
JetBrains dotMemory and dotTrace fail on 3.0 preview #11672
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
Comments
This looks like it may be the result of some interop call. Assigning the interop label until something proves otherwise. |
If possible, could you please add a link to the to the JetBrains support issue or tag the JetBrains engineers looking into this? My guess is that this is likely side-effect of one of the AppDomain-related cleanups (cc @janvorli). |
The error says "the shared domain have to be detected there. The shared domain was removed from the runtime in dotnet/coreclr#21031. If JetBrains calls ClrDataAccess::GetAppDomainStoreData from DAC and expects the DacpAppDomainStoreData.sharedDomain to be non-NULL, it can be causing the issue. |
My guess is that the profiler calls |
Thanks for the info. I've updated the ticket with the info and link to this thread. |
Hi there, I'm took a look in JB memory profiler sources. It's too complicated to debug the issue without repro case (our test team can't reproduce it now). However, I gathered following information. The exception appears during
@Wraith2 Could you please send to [email protected] the repro case? It's very importnat for fixing. |
Just working on putting the replication together now, will upload to the ticket as soon as I can. It's CoreRun specific at the moment because that's the only thing pulling in the latest clr bits, the preview runtime publicly available doesn't have the changes that cause the issue. It will affect very few people unless they're on nightly builds and those people know what they've getting into. file uploaded with readme, it's just called replication.zip (I expected a random filename but it just stayed the same) |
Can reference the dotnet myget in NuGet.config https://dotnet.myget.org/F/dotnet-core/api/v3/index.json and add the latest runtime to the .csproj via e.g.
Goes funny when capturing a snapshot in dotMemory |
Install latest 3.0.x runtime sdk https://github.com/dotnet/core-sdk and/or latest runtime https://github.com/dotnet/core-setup#daily-builds You'll want to reference the version number of the latest runtime (currently 3.0.0-preview-27217-02) Then this project will repo it https://aoa.blob.core.windows.net/aspnet/dotMemory.zip |
Public issue is here: https://youtrack.jetbrains.com/issue/PROF-790 |
Hi, I'm a member of JetBrains memory profiler team. We've reproduced this issue in our environment. Profiling works properly if run application via dotnet.exe 3.0.27122.1 but it fails if run via dotnet.exe 3.0.27214.1. We are debugging it now and you can follow the ticket in our bug tracker. |
The issue appears after commit It surprised me a lot. Could you please tell me how can I collect static app domain variables in this case? |
@ww898 Thanks for looking into this. Could you please explain why you mean by "static app domain variables"? Which profiler API are you calling that does not return the expected result anymore? |
@jkotas Our profiler collect values of static variables for application domain by Our implementation requires detection that the module is in shared domain because we want to support static variables collection (normal domains only) for CLR v2 where Now there is no more shared domain as I understand, isn't it. I need to redesign domain subsystem if it's true. |
Correct, there is no shared domain in CoreCLR. Do you think it would be useful to change CoreCLR to return fake extra domain from |
Surely clean design. I'm writing the fix. |
Fix is ready. We need time to test it on all frameworks. |
@ww898 Any ETA? Will it be in the next EAP? |
@davidfowl The fix is in 2019 EAP1 now. |
what is EAP? |
Early Access Program (prerelease) |
Where do I find that? I keep finding the Version: 2018.3.1 EAP |
@davidfowl 2019 EAP1 will be available not earlier than February 2019. |
😞 I can wait I guess, I'm using dotTrace timeline mode to look at memory allocations for now. |
@Anna-Guseva any word? |
FYI latest 2019.1 EAP has 3.0 support |
I've reported this as an issue through JetBrains support because it looks like an internal assumption in their software which is no longer true in 3.0. I realised it might be a good idea to post here in case it isn't.
When attempting to do a cpu or memory profile against CoreRun with one of the tools in the title the run will fail attempting to use the profiling api with the error in the screenshot below:

I interpret this to be a request for a specific type in the runtime and that the failure is unexpected and unhandled. My assumption is that the type is no longer named as expected or no longer present because of changed to internal structures (probably to do with unloadable assemblies).
The text was updated successfully, but these errors were encountered: