-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Ability to request stackwalk per EventPipe session #84077
Ability to request stackwalk per EventPipe session #84077
Conversation
There are couple of places that need further work, for instance I'd appreciate some general feedback in the meantime and any help with making the build work locally. Thanks! |
@ezsilmar thanks for submitting this PR! Were you able to workaround the local build issues? If yes, is the PR ready for review or would it be OK to change it to "draft" while more work is being done? It looks like this PR was submitted to collect some early feedback. @lateralusX do you have any feedback to share for the changes in this pull request? |
@ezsilmar thanks for the contribution! Overall I think it looks reasonable and inline with how we extended the collect command with additional parameters in the past. What could be argued is when we add a new collect command, maybe its time to use a key/value pair for session properties so we can extend without adding new commands going forward. The new collect3 command would then pretty much carry session parameters array (key/value pairs) and provider config array and we encode all the current values into key/value pairs, CircleBufferSize, SerializationFormat, RundownRequested, StacksRequested. Parsing of this should be straight forward, as well as error handling when getting unrecognized parameters, values etc. Parameters should be optional and backed by reasonable default values. @noahfalk any thoughts on that? Since we add a new command I think we should consider simplifying the extendibility, since these changes needs to bubble all the way up to the tools to be useful. Tools like dotnet-trace could then pass additional properties using known key/value pairs that make sense to change for a session, like this new stackwalk option or what ever option we might come up with in the future that is session specific. |
@lateralusX, @tommcdon, thanks for your comments! I think it's indeed worth it to pass session properties as key/value pairs, that would also make the client API cleaner. I'm busy with something else at work at the moment, but I should be able to come back to this PR next week. I don't know if the build issues were resolved, I'll ping here as soon as I try. Feel free to move the PR to draft if you need. |
Hi, just wanted to say my local build issue is resolved. I then ran into #34649 but Regarding the PR, I'll try to do the following:
Also I'm going to be on vacation next week. We should probably put the change in draft until I make it compile. Thanks again for your comments! |
@lateralusX @noahfalk @davmason please take a look |
@lateralusX @noahfalk @davmason - friendly ping |
The approach described in #84077 (comment) seems to be inline with discussions in this PR and straightforward to implement. Next step would be to adjust this PR along those lines and we can do another round of reviews once that is done. |
@ezsilmar do you plan to make the suggested code changes to the PR? Otherwise would you mind changing it to 'draft' mode? |
@tommcdon I plan to work on it in July. I put it to draft for now and I'll re-open when it's ready for review. |
Draft Pull Request was automatically closed for 30 days of inactivity. Please let us know if you'd like to reopen it. |
Co-authored-by: Johan Lorensson <[email protected]>
I took a look at the PR, it looks good to me. I don't have anything to add that Noah or Johan haven't already pointed out. |
@noahfalk @lateralusX there has been a lot of discussion and feedback on this PR. Is everything addressed or do we have a crisp list of outstanding work needed to merge it? |
@tommcdon there were some minor comments left. I plan to address them next week when I’m back from vacation. This change indeed took much more time than I anticipated but I think it’s really close to be merged :) |
As far as I know everything was addressed, except I think we still need testing and docs: https://github.com/dotnet/runtime/pull/84077/files#r1303870907 |
Once the last comments have been addressed and CI is green this is ready to go. |
Hi @ezsilmar - thanks for the diagnostics repo PR! Are there any other work items left or is this PR ready? |
Hi @tommcdon, it’s ready for review! There are two minor unresolved discussions above where I need your inputs but everything else was addressed. The CI is failing but I think it’s unrelated, we should try to re-run it. I’ll update the PR to the tip of the main branch on Monday if it doesn’t converge. |
@lateralusX would you mind taking a look and providing additional feedback?
Sounds good! |
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.
LGTM! Thank you so much for this contribution!
@lateralusX it didn't merge after your approval, should we ping other team members? Thanks! |
|
Acknowledging by merging 👍 |
Server-side part of dotnet/diagnostics#3696
I'm not sure about the interaction between
DOTNET_EventPipeEnableStackwalk
and the flag in the IPC. Currently the env variable overwrites the behavior requested by the IPC, so if the stackwalk is disabled application-wide it can't be enabled from the outside.Also I could not build the change locally due to dotnet/msbuild#8532 even though it was merged 3 weeks ago (I'm on the tip of the main branch in dotnet/runtime and executed
git clean -xfd
). What should I do to get the msbuild changes?