rustfs/rustfs · error

varint overflow

Error message

varint overflow

What it means

Error "varint overflow" thrown in rustfs/rustfs.

Source

Thrown at crates/rio-v2/src/s2_index.rs:347

        unsigned >>= 7;
    }
    out.push(unsigned as u8);
}

fn read_varint(bytes: &[u8]) -> io::Result<(i64, usize)> {
    let (unsigned, used) = read_uvarint(bytes)?;
    let value = ((unsigned >> 1) as i64) ^ (-((unsigned & 1) as i64));
    Ok((value, used))
}

fn read_uvarint(bytes: &[u8]) -> io::Result<(u64, usize)> {
    let mut value = 0_u64;
    let mut shift = 0_u32;

    for (idx, byte) in bytes.iter().copied().enumerate() {
        if byte < 0x80 {
            if idx > 9 || (idx == 9 && byte > 1) {
                return Err(io::Error::new(io::ErrorKind::InvalidData, "varint overflow"));
            }
            return Ok((value | ((byte as u64) << shift), idx + 1));
        }

        value |= ((byte & 0x7f) as u64) << shift;
        shift += 7;
    }

    Err(io::Error::new(io::ErrorKind::UnexpectedEof, "unexpected EOF while reading varint"))
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn signed_varint_matches_go_binary_varint_examples() {
        let cases = [

View on GitHub (pinned to 9e6e02ea09)

When it happens

Trigger: Thrown at crates/rio-v2/src/s2_index.rs:347 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of rustfs/rustfs@9e6e02ea09 (2026-08-16). Data as JSON: /api/errors/4f3a667f9358f37c. Report an issue: GitHub.