-
Notifications
You must be signed in to change notification settings - Fork 139
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
"Failed to parse bmc-info" when the system does not provide "System Firmware Version" #57
Comments
I also noticed this a few days ago when trying out v1.3.0 for the first time. I initially thought it was just one extremely old SMC board, but it seems to occur on a wider range of systems than expected. |
Thanks for the report! This is certainly a bit problematic, I had not thought of this scenario. I will try to release a fixed version ASAP |
@dswarbrick FWIW, the boards for which bmc-info is not reporting a |
Released 1.3.1 - sorry it took so long! |
Just because we love IPMI so much... I have an old SMC host that does not seem to like running
The fact that Edit: Running
Versions of freeipmi tested: 1.6.3, 1.6.4. |
I discovered about another 40 more systems which now fail the In addition to the privilege level error in my previous comment, I've seen some fail with:
|
Oh my. Thanks for the detailed report. Give me a moment to figure out how to solve this mess somewhat gracefully... |
Any chance this could be resolved before debian bullseye freeze? I'd quite like to update the package there (which I co-maintain), but am hesitant to use 1.3.x versions, as they will require a bit of patching to work around some of the rough edges. |
Just wanted to provide a quick update: I had to take a break from maintenance for a while for private matters, sorry for letting this sit for so long. I am tackling this now, is before the hard freeze still sufficient, or is it already too late? |
@bitfehler So long as the diff isn't too huge, we can probably still get it into bullseye, since it's not a new package - it will just take a bit longer to transition. Give me a shout if you need any additional testing on a zoo of old(er) IPMI beasts. |
When the `bmc` collector was extended to attempt to collect the system firmware revision the resulting IPMI request broke on some older systems. This collector can be used as a fallback for these systems. For obvious reasons, the `bmc` and `bmc-device-id` collectors cannot be used at the same time, which is checked at config load time. This should finally fix #57.
@dswarbrick could you let me know if #65 seems like a reasonable solution that does not involve refactoring the heck out of the exporter? |
@bitfehler As I mentioned above, running My hack that that I ended up applying to our inhouse packages was to explicitly run |
The idea was that if you run into this issue, you just use the |
I agree that two IPMI roundtrips is not ideal, however it's not always feasible to know which devices are going to fail without the Part of the problem is the fact that ipmi_exporter treats the non-zero exit status of the bmc-info command as a completely failed command, despite the partially good output, as I wrote in #57 (comment). Maybe if it didn't treat that as a completely failed command, it could parse the useful output of that command, and assume that |
Hrm, that is a good point indeed, seems quite impractical.
I was hoping to avoid something like that, but it might actually be worth a try... |
This is a workaround for an issue described in #57. The bmc-info command might produce usable output minus the system firmware revision, but then choke on that. Try to recover in that scenario by attempting to parse the output even if the command failed. Since the system firmware revision is already optional, this should at least produce all other values. It is not pretty, but it avoids both folks having to change their configs as well a second round-trip, which can be quite expensive in IPMI.
@dswarbrick how do you feel about https://github.com/soundcloud/ipmi_exporter/tree/bitfehler/bmc-info-recover ? |
@bitfehler That looks pretty okay to me. |
Cool. Could I get you to give that a spin? I don't have any such hosts available that would trigger this path... |
Looks mostly fine, however it's going to be a bit noisy at
We're running most instances at |
Thanks for the feedback, I demoted the severity of that log to warning. It was misguided to log an error at that point anyways. Current master should work ok for you now. I'll push one more fix and then make another release, the changes will be rather small compared to the next release, so I hope that works for you to get it into Bullseye. |
Super, thanks for your perseverance on this one! |
On my Supermicro servers, I'm getting the following error with the bmc collector enabled:
As you can see the BMC on SMCI doesn't always provide a
System Firmware Version
- can we make this optional?The text was updated successfully, but these errors were encountered: