apache / apache/druid

Shut down all tasks for a datasource does not work and fails with 404 while task exists and is running

Open
#18,419 2 comments 1 reaction 0 assignees View on GitHub
Uncategorized problem report
Dominant language
Java
Stars
14.1k
Forks
3.8k
Avg merge
2d 58m
Merged PRs (30d)
233

Description

The following API: /druid/indexer/v1/datasources/{datasource}/shutdownAllTasks
does not work anymore and always throws a 404 .
### Affected Version

The Druid version where the problem was encountered:
apache-druid-32.0.0

### Description

Please include as much detailed information about the problem as possible.
- Cluster size:
Druid in clustered mode, but this issue is not specific to cluster mode
- Configurations in use
```
{
"druid.zk.service.sessionTimeoutMs": "600000",
"druid.auth.basic.common.maxSyncRetries": "100",
"java.specification.version": "17",
"druid.storage.zip": "true",
"druid.server.https.certAlias": "druid_server",
"sun.jnu.encoding": "UTF-8",
"druid.tlsPort": "9088",
"log4j.shutdownHookEnabled": "true",
"druid.global.http.numConnections": "80",
"sun.arch.data.model": "64",
"druid.escalator.authorizerName": "druidBasicAuthorizer",
"druid.extensions.loadList": "[\"druid-basic-security\", \"druid-kafka-indexing-service\", \"druid-datasketches\", \"druid-multi-stage-query\", \"simple-client-sslcontext\", \"mysql-metadata-storage\"]",
"java.vendor.url": "https://www.redhat.com/",
"druid.router.coordinatorServiceName": "druid/coordinator",
"druid.server.http.defaultQueryTimeout": "180000",
"sun.boot.library.path": "/usr/lib/jvm/java-17-openjdk-17.0.15.0.6-2.el8.x86_64/lib",
"sun.java.command": "org.apache.druid.cli.Main server router",
"druid.metadata.mysql.ssl.useSSL": "true",
"jdk.debug": "release",
"druid.auth.authenticatorChain": "[\"druidBasicAuthenticator\"]",
"druid.zk.paths.base": "/druid",
"java.specification.vendor": "Oracle Corporation",
"java.version.date": "2025-04-15",
"java.home": "/usr/lib/jvm/java-17-openjdk-17.0.15.0.6-2.el8.x86_64",
"file.separator": "/",
"druid.selectors.indexing.serviceName": "druid/overlord",
"java.vm.compressedOopsMode": "32-bit",
"druid.metadata.storage.type": "mysql",
"line.separator": "\n",
"druid.router.http.readTimeout": "PT15M",
"java.vm.specification.vendor": "Oracle Corporation",
"java.specification.name": "Java Platform API Specification",
"druid.router.defaultBrokerServiceName": "druid/broker",
"druid.enablePlaintextPort": "false",
"druid.query.groupBy.maxOnDiskStorage": "3000000000",
"sun.management.compiler": "HotSpot 64-Bit Tiered Compilers",
"druid.escalator.type": "basic",
"java.runtime.version": "17.0.15+6-LTS",
"druid.zk.service.host": "XXXX:2181,XXXX:2181,XXXX:2181",
"file.encoding": "UTF-8",
"druid.sql.planner.useGroupingSetForExactDistinct": "true",
"druid.router.managementProxy.enabled": "true",
"druid.metadata.mysql.ssl.verifyServerCertificate": "true",
"druid.auth.basic.common.maxRandomDelay": "30000",
"java.vendor.version": "(Red_Hat-17.0.15.0.6-1)",
"druid.startup.logging.logProperties": "true",
"java.io.tmpdir": "XXXX",
"druid.sql.enable": "true",
"druid.auth.basic.common.pollingPeriod": "60000",
"java.version": "17.0.15",
"druid.server.http.maxResponseHeaderSize": "16384",
"java.vm.specification.name": "Java Virtual Machine Specification",
"druid.node.type": "router",
"druid.server.http.connection.timeout": "300",
"druid.enableTlsPort": "true",
"druid.auth.authenticator.druidBasicAuthenticator.skipOnFailure": "false",
"native.encoding": "UTF-8",
"druid.auth.authenticator.druidBasicAuthenticator.type": "basic",
"java.library.path": "/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib",
"java.vendor": "Red Hat, Inc.",
"druid.emitter": "noop",
"java.specification.maintenance.version": "1",
"druid.auth.basic.common.cacheDirectory": "XXXX",
"sun.io.unicode.encoding": "UnicodeLittle",
"druid.storage.type": "local",
"druid.expressions.useStrictBooleans": "true",
"druid.zk.service.connectionTimeoutMs": "30000",
"druid.monitoring.monitors": "[\"org.apache.druid.java.util.metrics.JvmMonitor\", \"org.apache.druid.server.metrics.ServiceStatusMonitor\"]",
"druid.indexing.doubleStorage": "double",
"druid.router.http.numConnections": "50",
"druid.auth.authorizer.druidBasicAuthorizer.type": "basic",
"java.vm.vendor": "Red Hat, Inc.",
"user.timezone": "UTC",
"druid.client.https.protocol": "TLSv1.2",
"os.name": "Linux",
"java.vm.specification.version": "17",
"sun.java.launcher": "SUN_STANDARD",
"user.country": "US",
"druid.auth.authenticator.druidBasicAuthenticator.credentialsValidator.type": "metadata",
"sun.cpu.endian": "little",
"user.home": "XXXX",
"user.language": "en",
"druid.global.http.numMaxThreads": "50",
"druid.service": "druid/router",
"druid.selectors.coordinator.serviceName": "druid/coordinator",
"druid.metadata.storage.connector.connectURI": "jdbc:mysql://XXXX:3306/druid",
"druid.log.path": "XXXX",
"druid.indexer.logs.directory": "/home/druid/remote/indexing-logs",
"druid.client.https.trustStoreType": "jks",
"druid.storage.storageDirectory": "/home/druid/remote/deep_store",
"druid.global.http.clientConnectTimeout": "30000",
"druid.metadata.storage.connector.user": "XXXX",
"druid.indexer.logs.type": "file",
"druid.host": "XXXX",
"log4j2.is.webapp": "false",
"path.separator": ":",
"os.version": "4.18.0-305.el8.x86_64",
"druid.lookup.enableLookupSyncOnStartup": "false",
"java.runtime.name": "OpenJDK Runtime Environment",
"druid.client.https.trustStorePath": "/etc/pki/java/cacerts",
"java.vm.name": "OpenJDK 64-Bit Server VM",
"druid.auth.authenticator.druidBasicAuthenticator.authorizerName": "druidBasicAuthorizer",
"druid.global.http.sslHandshakeTimeout": "PT30S",
"java.vendor.url.bug": "https://access.redhat.com/support/cases/",
"log4j.shutdownCallbackRegistry": "org.apache.druid.common.config.Log4jShutdown",
"druid.router.http.numMaxThreads": "100",
"druid.emitter.logging.logLevel": "info",
"druid.msq.intermediate.storage.cleaner.delaySeconds": "43200",
"user.dir": "/home/XXXX/druid/apache-druid-32.0.0",
"os.arch": "amd64",
"druid.msq.intermediate.storage.cleaner.enabled": "true",
"druid.auth.authorizers": "[\"druidBasicAuthorizer\"]",
"druid.global.http.unusedConnectionTimeout": "PT10M",
"java.util.logging.manager": "org.apache.logging.log4j.jul.LogManager",
"druid.server.http.numThreads": "100",
"druid.escalator.internalClientUsername": "druid_system",
"java.vm.info": "mixed mode, sharing",
"java.vm.version": "17.0.15+6-LTS",
"java.class.version": "61.0",
"druid.server.hiddenProperties": "[\"druid.metadata.storage.connector.password\", \"password\", \"key\", \"token\", \"pwd\"]"
}
```
- Steps to reproduce the problem:
1. Create Datasource with ingestion task of type index_kafka
```
curl "https://XXXX:9088/druid/indexer/v1/runningTasks" -u 'XXXX:XXXX' | jq '.[] | select(.dataSource == "system_temp")'

{
"id": "index_kafka_system_temp_aa6862686f5e476_apnnlmlb",
"groupId": "index_kafka_system_temp",
"type": "index_kafka",
"createdTime": "2025-08-20T10:58:45.727Z",
"queueInsertionTime": "2025-08-20T10:58:45.730Z",
"statusCode": "RUNNING",
"status": "RUNNING",
"runnerStatusCode": "RUNNING",
"duration": -1,
"location": {
"host": "XXXX",
"port": -1,
"tlsPort": 8292
},
"dataSource": "system_temp",
"errorMsg": null
}
```
2. Try to use shutdown all task api to shutdown task:
```
curl https://XXXX:9088/druid/indexer/v1/datasources/system_temp/shutdownAllTasks -u 'XXXX:XXXX' -o /dev/null -s -w "%{http_code}\n"
404
```

- The error message or stack traces encountered. Providing more context, such as nearby log messages or even entire logs, can be helpful.:
< HTTP/1.1 404 Not Found>
coordinator-overlord.log
2025-08-20T13:20:06,119 INFO [KafkaSupervisor-system_temp] org.apache.druid.indexing.seekablestream.supervisor.SeekableStreamSupervisor - [system_temp] supervisor is running.
2025-08-20T13:20:07,087 INFO [KafkaSupervisor-system_temp] org.apache.druid.indexing.seekablestream.supervisor.SeekableStreamSupervisor - [system_temp] supervisor is running.
2025-08-20T13:20:08,207 INFO [KafkaSupervisor-system_temp] org.apache.druid.indexing.seekablestream.supervisor.SeekableStreamSupervisor - [system_temp] supervisor is running.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the documented curl request to /druid/indexer/v1/datasources/{datasource}/shutdownAllTasks, then trace the Druid API entry point for datasource task shutdown and compare it with the runningTasks response. Use the coordinator-overlord.log messages and the index_kafka task example to understand the failing path. Done means the endpoint no longer returns 404 and shuts down the running datasource task.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.