{"record":{"id":"5daf1825a368c3cd","repo":"sgl-project/sglang","slug":"l3-cleaner-low-watermark-must-be-lower-than-high-w","errorCode":null,"errorMessage":"L3 cleaner low_watermark must be lower than high_watermark (low_watermark={}, high_watermark={})","messagePattern":"L3 cleaner low_watermark must be lower than high_watermark \\(low_watermark=(.+?), high_watermark=(.+?)\\)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/mem_cache/storage/nixl/nixl_cleaner.py","lineNumber":112,"sourceCode":"        low_watermark: float = _DEFAULT_LOW_WATERMARK,\n        interval_sec: float = _DEFAULT_INTERVAL_SEC,\n        recheck_groups: int = _DEFAULT_RECHECK_GROUPS,\n        unlink_workers: Optional[int] = None,\n    ) -> None:\n        if isinstance(storage_dirs, str):\n            storage_dirs = [storage_dirs] if storage_dirs else []\n        self.storage_dirs = [path for path in storage_dirs if path]\n        self.tp_rank = tp_rank\n        self.high_watermark = high_watermark\n        self.low_watermark = low_watermark\n        self.interval_sec = interval_sec\n        self.recheck_groups = max(1, recheck_groups)\n        self.unlink_workers = unlink_workers or max(\n            8, 8 * max(len(self.storage_dirs), 1)\n        )\n\n        if self.low_watermark >= self.high_watermark:\n            raise ValueError(\n                \"L3 cleaner low_watermark must be lower than high_watermark \"\n                f\"(low_watermark={self.low_watermark}, \"\n                f\"high_watermark={self.high_watermark})\"\n            )\n\n        self._stop = threading.Event()\n        self._thread: Optional[threading.Thread] = None\n\n    def start(self) -> None:\n        \"\"\"Start the cleaner thread on TP rank 0.\"\"\"\n        if self.tp_rank != 0 or not self.storage_dirs:\n            return\n        if self._thread is not None and self._thread.is_alive():\n            return\n        self._thread = threading.Thread(\n            target=self._loop, name=\"hicache-l3-cleaner\", daemon=True\n        )\n        self._thread.start()","sourceCodeStart":94,"sourceCodeEnd":130,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/mem_cache/storage/nixl/nixl_cleaner.py#L94-L130","documentation":"Error \"L3 cleaner low_watermark must be lower than high_watermark (low_watermark={}, high_watermark={})\" thrown in sgl-project/sglang.","triggerScenarios":"Thrown at python/sglang/srt/mem_cache/storage/nixl/nixl_cleaner.py:112 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}