gianm commented on PR #13156: URL: https://github.com/apache/druid/pull/13156#issuecomment-1294563901
> @gianm I was testing the MM-less patch on the msq work you did. I ran a test ingestion and the tasks just hang forever, after a bit of debugging here is what is happening, launch a controller with one worker: Thanks for the details! Looking into it I think the issue is that the SpecificTaskServiceLocator _is_ able to handle tasks with unknown location, but it does this by a logic branch involving `TaskLocation.unknown().equals(statusPlus.getLocation())`. Probably, this branch doesn't get used because the location has `null` host, yet `port` and `tlsPort` are set. So, it does not `equals` to `TaskLocation.unknown()`, and therefore we end up trying to treat it as valid in the service locator. Couple ways to fix it: - Avoid creating TaskLocations with `null` host and non-`-1` values for `port` and `tlsPort`. This may be happening in `K8sWorkItem` if `mainPod.getStatus().getPodIP()` is `null`. Do you think this is possible? To keep things coherent I suggest enforcing it in the TaskLocation constructor, which could throw an exception if host is `null` and `port` and `tlsPort` are anything other than `-1`. (This would ensure that `null` host always compares equal to `TaskLocation.unknown()`.) - Or, an alternate approach: in SpecificTaskServiceLocator, use `statusPlus.getLocation().getHost() == null` instead of comparing to `TaskLocation.unknown()`. (With this approach, note that there are a bunch of other places that use equality checks on `TaskLocation.unknown()`. They should be updated too.) I'm happy if we do one of these fixes as a follow-up to your patch. You don't need to do it as part of this initial PR. -- 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]
