{"record":{"id":"ea257d045f6b5c09","repo":"2noise/ChatTTS","slug":"double-free-block-is-already-freed","errorCode":null,"errorMessage":"Double free! {block} is already freed.","messagePattern":"Double free! (.+?) is already freed\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"ChatTTS/model/velocity/block_manager.py","lineNumber":49,"sourceCode":"\n        # Initialize the free blocks.\n        self.free_blocks: BlockTable = []\n        for i in range(num_blocks):\n            block = PhysicalTokenBlock(\n                device=device, block_number=i, block_size=block_size\n            )\n            self.free_blocks.append(block)\n\n    def allocate(self) -> PhysicalTokenBlock:\n        if not self.free_blocks:\n            raise ValueError(\"Out of memory! No free blocks are available.\")\n        block = self.free_blocks.pop()\n        block.ref_count = 1\n        return block\n\n    def free(self, block: PhysicalTokenBlock) -> None:\n        if block.ref_count == 0:\n            raise ValueError(f\"Double free! {block} is already freed.\")\n        block.ref_count -= 1\n        if block.ref_count == 0:\n            self.free_blocks.append(block)\n\n    def get_num_free_blocks(self) -> int:\n        return len(self.free_blocks)\n\n\nclass AllocStatus(enum.Enum):\n    \"\"\"Result for BlockSpaceManager.can_allocate\n\n    1. Ok: seq_group can be allocated now.\n    2. Later: seq_group cannot be allocated.\n      The capacity of allocator is larger than seq_group required.\n    3. Never: seq_group can never be allocated.\n      The seq_group is too large to allocated in GPU.\n    \"\"\"\n","sourceCodeStart":31,"sourceCodeEnd":67,"githubUrl":"https://github.com/2noise/ChatTTS/blob/77b89ee281cd479f5b1a787ada330dc975ca1f2a/ChatTTS/model/velocity/block_manager.py#L31-L67","documentation":"Error \"Double free! {block} is already freed.\" thrown in 2noise/ChatTTS.","triggerScenarios":"Thrown at ChatTTS/model/velocity/block_manager.py:49 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":"77b89ee281cd479f5b1a787ada330dc975ca1f2a","analyzedAt":"2026-08-26T17:48:24.233Z","schemaVersion":2},"datasetVersion":"2026-08-26T21:11:00.512Z"}