-
Notifications
You must be signed in to change notification settings - Fork 973
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
Improves stellar-core-debug-info script and adds docs #4553
base: master
Are you sure you want to change the base?
Conversation
9323c23
to
e1afb24
Compare
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.
Very nice improvements. I added one question about docker and one non-blocking idea.
scripts/stellar-core-debug-info
Outdated
result = subprocess.run( | ||
["systemctl", "cat", service_name], | ||
stdout=subprocess.PIPE, | ||
stderr=subprocess.PIPE, | ||
text=True | ||
) |
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.
💡 subprocess.check_output
might allow you to reduce code needed to handle errors
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.
Done
scripts/stellar-core-debug-info
Outdated
try: | ||
# Use systemctl to retrieve the service file content | ||
result = subprocess.run( | ||
["systemctl", "cat", service_name], |
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.
❓ it would be worth testing this inside docker too. We use /usr/bin/stellar-core
as entrypoint so systemd will not be running inside docker containers.
Perhaps this needs to be handled separately?
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.
Added a function to see if we're running in docker and used the docker default paths if we are.
ac28092
to
0f7fe88
Compare
Here is the console log from running this on my mac.
|
Hmm this looks like an issue with your core build. Can you run Wrt os_info, that's only supported on linux. This is fine, as the script is intended for production environments. Finally, I don't think gathering sqllite info worked because you fed the script a bad path via the |
My config file didn't have the db and buckets path, I will add them. For now, |
I think the script is working as intended then. I'm not sure why your core image is throwing and still reporting version info, but it's definitely failing, and the correct behavior script wise is probably to just give up on processing any sort of output if the stellar-core invocation is returning a non zero exit code. In this particular instance it looks like we could still parse output on failure, but I don't think that can be generalized. Is this build the current master? This might be a mac specific issue, the |
The malloc error was because I had asan enabled. The error went away with core build without |
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! Thanks for fixing.
Description
Resolves #4545
This PR updates documentation regarding the
stellar-core-debug-info
.Additionally, while helping people debug nodes, the script was difficult to use and had many default values specific only to SDF infrastructure. I've updated the script to be easier to use. Specifically, it requires an output directory argument, and creates the directory automatically if it does not exist. The script also automatically detects the stellar-core executable path and config via the
stellar-core.service
file. Finally, I've added additional error checking aroundoffline-info
and better path resolution, which previously was buggy.Checklist
clang-format
v8.0.0 (viamake format
or the Visual Studio extension)