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]

Reply via email to