{"record":{"id":"6d44967a9037c2e7","repo":"apache/cassandra","slug":"entire-sstable-stream-throughput-outbound-is-too","errorCode":null,"errorMessage":"entire_sstable_stream_throughput_outbound: is too large; it should be less than 2147483647 in MiB/s","messagePattern":"entire_sstable_stream_throughput_outbound: is too large; it should be less than 2147483647 in MiB/s","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/config/DatabaseDescriptor.java","lineNumber":3206,"sourceCode":"    public static void setStreamThroughputOutboundMegabitsPerSec(int value)\n    {\n        conf.stream_throughput_outbound = DataRateSpec.LongBytesPerSecondBound.megabitsPerSecondInBytesPerSecond(value);\n    }\n\n    public static double getEntireSSTableStreamThroughputOutboundMebibytesPerSec()\n    {\n        return conf.entire_sstable_stream_throughput_outbound.toMebibytesPerSecond();\n    }\n\n    public static double getEntireSSTableStreamThroughputOutboundBytesPerSec()\n    {\n        return conf.entire_sstable_stream_throughput_outbound.toBytesPerSecond();\n    }\n\n    public static void setEntireSSTableStreamThroughputOutboundMebibytesPerSec(int value)\n    {\n        if (value == Integer.MAX_VALUE)\n            throw new IllegalArgumentException(\"entire_sstable_stream_throughput_outbound: \" + value +\n                                               \" is too large; it should be less than \" +\n                                               Integer.MAX_VALUE + \" in MiB/s\");\n\n        conf.entire_sstable_stream_throughput_outbound = new DataRateSpec.LongBytesPerSecondBound(value, MEBIBYTES_PER_SECOND);\n    }\n\n    public static int getInterDCStreamThroughputOutboundMegabitsPerSec()\n    {\n        return conf.inter_dc_stream_throughput_outbound.toMegabitsPerSecondAsInt();\n    }\n\n    public static double getInterDCStreamThroughputOutboundMegabitsPerSecAsDouble()\n    {\n        return conf.inter_dc_stream_throughput_outbound.toMegabitsPerSecond();\n    }\n\n    public static double getInterDCStreamThroughputOutboundMebibytesPerSec()\n    {","sourceCodeStart":3188,"sourceCodeEnd":3224,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/config/DatabaseDescriptor.java#L3188-L3224","documentation":"setEntireSSTableStreamThroughputOutboundMebibytesPerSec rejects exactly Integer.MAX_VALUE because that value is reserved as an internal sentinel in the DataRateSpec bound and would corrupt later unit conversions. Any other int is accepted.","triggerScenarios":"Calling DatabaseDescriptor.setEntireSSTableStreamThroughputOutboundMebibytesPerSec(Integer.MAX_VALUE), typically via nodetool/JMX with a max-int 'unlimited' sentinel.","commonSituations":"Operators attempting to disable entire-SSTable streaming throttling with the max int; tooling defaulting absent values to Integer.MAX_VALUE; test harnesses using sentinels.","solutions":["Pass a concrete MiB/s rate below Integer.MAX_VALUE.","Use the documented mechanism for disabling throttling instead of a sentinel.","Guard the call: reject value == Integer.MAX_VALUE before invoking."],"exampleFix":"// before\nDatabaseDescriptor.setEntireSSTableStreamThroughputOutboundMebibytesPerSec(Integer.MAX_VALUE);\n// after\nDatabaseDescriptor.setEntireSSTableStreamThroughputOutboundMebibytesPerSec(200);","handlingStrategy":"validation","validationCode":"if (value != Integer.MAX_VALUE) DatabaseDescriptor.setEntireSSTableStreamThroughputOutboundMebibytesPerSec(value); else throw new IllegalArgumentException(\"Integer.MAX_VALUE is reserved\");","typeGuard":"boolean isValidEntireSSTableStreamMib(int v) { return v != Integer.MAX_VALUE; }","tryCatchPattern":"try { DatabaseDescriptor.setEntireSSTableStreamThroughputOutboundMebibytesPerSec(v); } catch (IllegalArgumentException e) { log.error(\"Rejected entire_sstable stream throughput sentinel\", e); }","preventionTips":["Never use Integer.MAX_VALUE as 'unlimited'","Reject reserved sentinels in config-update tooling","Use concrete rates sized to your network"],"tags":["configuration","streaming","throughput"],"backgroundTag":"value-out-of-range","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}