Skip to content

DiskUsages with negative total or free space are unserialisable #48413

@DaveCTurner

Description

@DaveCTurner

Today DiskUsage uses writeVLong() to write its sizes in bytes, so serialising a negative size results in an IllegalStateException.

One possible source of negative sizes was if the DiskThresholdDecider subtracted more relocating shards than the free space of the disk, and this is being addressed in #48392. This was benign since we never serialised the resulting DiskUsage objects. However according to DiskUsageTests we can get negative sizes in other ways too. I'm not sure this is true in Elasticsearch today, but it warrants a more careful investigation. Maybe we can fix the tests and then add assertions that the sizes are always non-negative, or maybe we need to fix the serialisation to deal with negative sizes.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions