{"record":{"id":"5887f5acc9897a8b","repo":"prestodb/presto","slug":"generic-internal-error-5887f5","errorCode":"GENERIC_INTERNAL_ERROR","errorMessage":"Failed to create spill sink","messagePattern":"Failed to create spill sink","errorType":"error_code","errorClass":"PrestoException","httpStatus":null,"severity":"error","filePath":"presto-main-base/src/main/java/com/facebook/presto/spiller/TempStorageSingleStreamSpiller.java","lineNumber":116,"sourceCode":"        checkState(!spillCipher.isPresent() || !spillCipher.get().isDestroyed(), \"spillCipher is already destroyed\");\n        this.spillCipher.ifPresent(cipher -> closer.register(cipher::destroy));\n\n        Session session = spillContext.getSession();\n        this.tempDataOperationContext = new TempDataOperationContext(\n                session.getSource(),\n                session.getQueryId().getId(),\n                session.getClientInfo(),\n                Optional.of(session.getClientTags()),\n                session.getIdentity());\n\n        this.maxBufferSizeInBytes = toIntExact(getTempStorageSpillerBufferSize(session).toBytes());\n\n        try {\n            dataSink = tempStorage.create(tempDataOperationContext);\n            memoryContext.setBytes(dataSink.getRetainedSizeInBytes());\n        }\n        catch (IOException e) {\n            throw new PrestoException(GENERIC_INTERNAL_ERROR, \"Failed to create spill sink\", e);\n        }\n    }\n\n    @Override\n    public ListenableFuture<?> spill(Iterator<Page> pageIterator)\n    {\n        requireNonNull(pageIterator, \"pageIterator is null\");\n        checkNoSpillInProgress();\n        spillInProgress = executor.submit(() -> writePages(pageIterator));\n        return spillInProgress;\n    }\n\n    @Override\n    public long getSpilledPagesInMemorySize()\n    {\n        return spilledPagesInMemorySize;\n    }\n","sourceCodeStart":98,"sourceCodeEnd":134,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-main-base/src/main/java/com/facebook/presto/spiller/TempStorageSingleStreamSpiller.java#L98-L134","documentation":"Runtime error from TempStorageSingleStreamSpiller: the underlying temp-storage engine failed to open a sink for spilling (e.g. the temp store is unavailable or its storage is full/failing). The spill subsystem cannot persist pages for this query, so the error surfaces to the query.","triggerScenarios":"Thrown at presto-main-base/src/main/java/com/facebook/presto/spiller/TempStorageSingleStreamSpiller.java:116 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the temp storage (e.g. temp-storage.data-manager-shard) locations are writable and have space","Check worker disk health and restart failing temp storage","Reduce query memory pressure (smaller partitions) to avoid spilling entirely"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}