Skip to content
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

_get_boottime_raw fails on old symbol tables, and the exception stops any further results #1361

Open
ikelos opened this issue Nov 21, 2024 · 0 comments
Assignees

Comments

@ikelos
Copy link
Member

ikelos commented Nov 21, 2024

Just so I don't forget, the new linux _get_boottime_raw handling stuff breaks with very old symbol tables (where the type of the timekeeper symbol is void). In that instance, vmlinux.has_symbol returns true, but get_object_from_symbol returns a void. The method also fires off an exception that brings the entire run to a halt (meaning no data at all, for want of a symbol table that can handle boottimes, one that used to work on the very same image). I think it should probably return None (requiring callers to check for that) and do its best to fail gracefully (or better, with a vollog.warning) if the symbol table doesn't have what it needs...

In my partial patch up I used not vmlinux.get_symbol("tk_core").type_name.endswith("!void") but I dunno how brittle that'll be? Ideally, I'd like to still get output, but I was trying to test something else, so I went to @Abyss-W4tcher 's repo (via a config file, which worked as expected, so that was nice) and got an improved symbol table for it, so haven't had time to circle back and actually get it working.

This is just a reminder to fix it up, am I ok assigning it to you @gcmoreira ? If not gimme a shout and I'll shift it, just want to make sure it gets fixed as we're intending to cut a release branch for all the plugins that got added last month soon...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants