mirror of
https://github.com/xcat2/confluent.git
synced 2026-09-11 20:16:27 +00:00
a513bfc04f
raw_command raises on any nonzero completion code, so the 0xCA and 0xC5 checks in get_sdr could not run: a bmc that will not return a whole record in one go, or whose reservation went stale, failed the sensor load outright instead of being retried. Read the code from the exception, which carries it. The back off also had a fixed point, size // 2 + 2 being 3 for a size of 3, so a bmc that kept refusing would have been asked the same question for ever. Give up when the request cannot get any smaller. A header read cannot go under 5 bytes either, since that is where the record length sits, so give up there rather than parse a reply too short to index. The stale reservation retry could not end on its own either: it cleared the id and left taking a new one to the top of the loop, which only reserves for a partial read. Take one where the code is handled.