{"record":{"id":"81f5ec2108d7f3d9","repo":"prestodb/presto","slug":"not-supported","errorCode":"NOT_SUPPORTED","errorMessage":"Accumulo does not support renaming tables to different namespaces (schemas)","messagePattern":"Accumulo does not support renaming tables to different namespaces \\(schemas\\)","errorType":"error_code","errorClass":"PrestoException","httpStatus":null,"severity":"warning","filePath":"presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloClient.java","lineNumber":470,"sourceCode":"\n            if (table.isIndexed()) {\n                String indexTableName = Indexer.getIndexTableName(tableName);\n                if (tableManager.exists(indexTableName)) {\n                    tableManager.deleteAccumuloTable(indexTableName);\n                }\n\n                String metricsTableName = Indexer.getMetricsTableName(tableName);\n                if (tableManager.exists(metricsTableName)) {\n                    tableManager.deleteAccumuloTable(metricsTableName);\n                }\n            }\n        }\n    }\n\n    public void renameTable(SchemaTableName oldName, SchemaTableName newName)\n    {\n        if (!oldName.getSchemaName().equals(newName.getSchemaName())) {\n            throw new PrestoException(NOT_SUPPORTED, \"Accumulo does not support renaming tables to different namespaces (schemas)\");\n        }\n\n        AccumuloTable oldTable = getTable(oldName);\n        if (oldTable == null) {\n            throw new TableNotFoundException(oldName);\n        }\n\n        AccumuloTable newTable = new AccumuloTable(\n                oldTable.getSchema(),\n                newName.getTableName(),\n                oldTable.getColumns(),\n                oldTable.getRowId(),\n                oldTable.isExternal(),\n                oldTable.getSerializerClassName(),\n                oldTable.getScanAuthorizations());\n\n        // Validate table existence\n        if (!tableManager.exists(oldTable.getFullTableName())) {","sourceCodeStart":452,"sourceCodeEnd":488,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloClient.java#L452-L488","documentation":"The same InitializingConfigurationManager placeholder also throws SERVER_STARTING_UP from match(SelectionCriteria): while the real resource group configuration is unavailable, no selector can match, so every query submission during initialization is rejected as transient.","triggerScenarios":"Query submission during coordinator startup/reload where InternalResourceGroupManager.match is invoked before the real ResourceGroupConfigurationManager is installed.","commonSituations":"Clients or orchestrators racing coordinator startup; failover tests hitting the coordinator the moment the port opens; heavy config backends making initialization slow enough to surface the window in normal operations.","solutions":["Retry query submission with backoff until initialization completes.","Gate submission on coordinator readiness signals rather than port availability.","Prefer a fast local resource-groups configuration file if the remote source is the bottleneck.","Check coordinator logs for errors in the config manager load — if it never completes, fix the underlying config loading failure."],"exampleFix":"// before\nResourceGroupId gid = manager.match(criteria).get().getResourceGroupId();\n// after\nOptional<SelectionContext<Void>> m = manager.match(criteria);\nif (!m.isPresent() && serverInitializing) {\n    retryWithBackoff(() -> manager.match(criteria));\n}","handlingStrategy":"retry","validationCode":"// wait for configuration manager to be installed\nwhile (!internalResourceGroupManager.isLoaded()) { // not InitializingConfigurationManager\n    Thread.sleep(1000);\n}","typeGuard":null,"tryCatchPattern":"try {\n    Optional<SelectionContext<Void>> match = manager.match(criteria);\n} catch (PrestoException e) {\n    if (e.getErrorCode().getName().contains(\"SERVER_STARTING_UP\")) {\n        retryWithBackoff(() -> manager.match(criteria));\n    } else {\n        throw e;\n    }\n}","preventionTips":["Delay query routing until the coordinator reports configuration loaded.","Use failover-aware clients that retry SERVER_STARTING_UP transparently.","Investigate config-source latency if the startup window is routinely hit."],"tags":["presto","resource-groups","startup","transient"],"backgroundTag":"server-still-initializing","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"}