Fixed
LOADINGandBUSYare retryable server errors. A server restarting
with persistence answersLOADINGuntil its dataset is in memory, and one
running a script or a function pastbusy-reply-thresholdanswersBUSY.
Both codes fell intoRedisErrorKind::Other, soError::is_retryable
returnedfalseand a caller that relies on it took a normal restart for a
defect of its command. They now parse to the newRedisErrorKind::Loading
andRedisErrorKind::Busy, whichis_retryablereports as transient. The
server refuses the command without running it, so any command,INCR
included, can be replayed on them.BUSYGROUPandBUSYKEYare unchanged.- The release check accepts a variant added to
RedisErrorKind.
cargo semver-checksfailed the publication on
enum_no_repr_variant_discriminant_changed: insertingBusyandLoading
in alphabetical order shifts the implicit discriminant of the variants after
them. That discriminant is not observable --AskandMovedcarry fields,
so the enum cannot be cast withas-- but the lint does not look at fields.
It is now a warning, set inCargo.toml, so it is still printed but no
longer blocks a release.