Nagarjunanm commented on issue #18419:
URL: https://github.com/apache/druid/issues/18419#issuecomment-6570183963
I'd like to pick this up. I looked into it and found the cause, and it's
still the case on current master.
Since #17545 (Druid 32.0.0), the Overlord has a second resource class at
`/druid/indexer/v1/datasources` (`OverlordDataSourcesResource`). Jersey routes
a request to the root resource with the most specific matching path and doesn't
fall back to other classes, so
`/druid/indexer/v1/datasources/{datasource}/shutdownAllTasks` now goes to
`OverlordDataSourcesResource`. That class has no such method, so the request
returns 404 and `OverlordResource.shutdownTasksForDataSource` is never reached.
The unit tests call that method directly, which is why they still pass.
I reproduced it with Jersey 1.19.4 and the same path layout: 404 with both
classes registered, 200 without `OverlordDataSourcesResource`, and 200 once the
endpoint lives in `OverlordDataSourcesResource`.
My plan is to move the endpoint into `OverlordDataSourcesResource`, so the
documented URL works again, move its tests along with it, and add a test that
sends the request through Jersey, so a routing break like this gets caught next
time. @kfaraz, does that sound good to you?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]