{"record":{"id":"0d9e897fa1d4a303","repo":"apache/cassandra","slug":"entire-sstable-inter-dc-stream-throughput-outbound","errorCode":null,"errorMessage":"entire_sstable_inter_dc_stream_throughput_outbound: is too large; it should be less than 2147483647 in MiB/s","messagePattern":"entire_sstable_inter_dc_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":3271,"sourceCode":"    public static void setInterDCStreamThroughputOutboundMegabitsPerSec(int value)\n    {\n        conf.inter_dc_stream_throughput_outbound = DataRateSpec.LongBytesPerSecondBound.megabitsPerSecondInBytesPerSecond(value);\n    }\n\n    public static double getEntireSSTableInterDCStreamThroughputOutboundBytesPerSec()\n    {\n        return conf.entire_sstable_inter_dc_stream_throughput_outbound.toBytesPerSecond();\n    }\n\n    public static double getEntireSSTableInterDCStreamThroughputOutboundMebibytesPerSec()\n    {\n        return conf.entire_sstable_inter_dc_stream_throughput_outbound.toMebibytesPerSecond();\n    }\n\n    public static void setEntireSSTableInterDCStreamThroughputOutboundMebibytesPerSec(int value)\n    {\n        if (value == Integer.MAX_VALUE)\n            throw new IllegalArgumentException(\"entire_sstable_inter_dc_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_inter_dc_stream_throughput_outbound = new DataRateSpec.LongBytesPerSecondBound(value, MEBIBYTES_PER_SECOND);\n    }\n\n    /**\n     * Checks if the local system data must be stored in a specific location which supports redundancy.\n     *\n     * @return {@code true} if the local system keyspaces data must be stored in a different location,\n     * {@code false} otherwise.\n     */\n    public static boolean useSpecificLocationForLocalSystemData()\n    {\n        return conf.local_system_data_file_directory != null;\n    }\n\n    /**","sourceCodeStart":3253,"sourceCodeEnd":3289,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/config/DatabaseDescriptor.java#L3253-L3289","documentation":"setEntireSSTableInterDCStreamThroughputOutboundMebibytesPerSec rejects exactly Integer.MAX_VALUE, which is reserved as an internal sentinel in the DataRateSpec bound. Storing it would break subsequent unit conversions, so it is refused with IllegalArgumentException.","triggerScenarios":"Calling DatabaseDescriptor.setEntireSSTableInterDCStreamThroughputOutboundMebibytesPerSec(Integer.MAX_VALUE), e.g. via JMX/nodetool with a max-int 'unlimited' value.","commonSituations":"Operators trying to remove inter-DC entire-SSTable throttling with a sentinel; tools defaulting missing settings to Integer.MAX_VALUE; test code using max-int placeholders.","solutions":["Pass a concrete MiB/s rate below Integer.MAX_VALUE.","Use Cassandra's documented way to disable throttling rather than a sentinel.","Guard the call site against the exact sentinel value."],"exampleFix":"// before\nDatabaseDescriptor.setEntireSSTableInterDCStreamThroughputOutboundMebibytesPerSec(Integer.MAX_VALUE);\n// after\nDatabaseDescriptor.setEntireSSTableInterDCStreamThroughputOutboundMebibytesPerSec(100);","handlingStrategy":"validation","validationCode":"if (value != Integer.MAX_VALUE) DatabaseDescriptor.setEntireSSTableInterDCStreamThroughputOutboundMebibytesPerSec(value); else throw new IllegalArgumentException(\"Integer.MAX_VALUE is reserved\");","typeGuard":"boolean isValidEntireSSTableInterDCMib(int v) { return v != Integer.MAX_VALUE; }","tryCatchPattern":"try { DatabaseDescriptor.setEntireSSTableInterDCStreamThroughputOutboundMebibytesPerSec(v); } catch (IllegalArgumentException e) { log.error(\"Rejected entire_sstable inter-DC throughput sentinel\", e); }","preventionTips":["Do not pass Integer.MAX_VALUE sentinels","Gate config-update automation with explicit range checks","Use documented mechanisms for disabling throttling"],"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"}