Re: [druid-user] Guice exceptions while attempting use druid-moving-average-query extension

Most likely this is caused by a bug in the MovingAverageModule itself where the bindings are not being properly lazy.

That said, the coordinator/overlord do not participate in queries and therefore do not need the extension on the class path. You can work around the bug in the module by not including the extension on the classpath of the coordinator/overlord. But you should likely also raise a bug against the extension itself showing that it fails when included on non-querying nodes. The bindings should be lazy such that they only actually load things if the query machinery is loaded.

In your _common/common.runtime.properties file that you originally
shared, you have

druid.extensions.loadList=["druid-hdfs-storage",
"druid-kafka-indexing-service", "druid-datasketches",
"mysql-metadata-storage", "druid-moving-average-query"]

This file will be used by any and all of the processes to figure out
what to load. When "druid-moving-average-query" is included for the
coordinator-overlord, it is failing. So far, this is just repeating
what I think you've already said to make sure that we are on the same
page. Assuming that both of these are true, you can add the line

druid.extensions.loadList=["druid-hdfs-storage",
"druid-kafka-indexing-service", "druid-datasketches",
"mysql-metadata-storage"]

to your coordinator-overlord/runtime.properties file.

Essentially, by telling it to load all of the same things except that
one moving average, it *should* resolve the issue.

For filing a bug, yes, a GH issue is synonymous :slight_smile:

So, the extension needs to be on everything involved in querying,
which is not just the broker. That's why I would recommend the
strategy of putting the moving-average extension back into the common
properties. And then whack-a-mole it out of the properties for
anything that has problems starting up (which I expect to only be the
coordinator-overlord).

Hi Pierce -

So, if you load it only on the broker, the broker logs show it loading successfully, but then if you query /status on the broker, it doesn’t show it loaded?
Do you do this by having common.runtime.properties not include it, but then on the broker runtime.properties, the loadList has all entries plus druid-moving-average-query added?

Just found this, affecting 0.19 up - https://github.com/apache/druid/issues/10799
There’s a fix mentioned, but not in any releases yet. So you might want to try 0.18, and only load on broker, and see whether that works.