quarkiverse / quarkus-artemis

Quarkus Artemis extensions
Apache License 2.0
12 stars 13 forks source link

Quarkus client won't connect to configured Artemis server #241

Closed dhoffer closed 1 year ago

dhoffer commented 1 year ago

We get this error trying to connect to our embedded Artemis server in a Quarkus app. It worked fine until 2.16.6 and we deleted our artemis working directory.

ERROR: Failed to start application (with profile [prod]) java.lang.IllegalStateException: Configuration : url is not set and devservices is activated. This is a bug. Please report it. at io.quarkus.artemis.core.runtime.ArtemisUtil.validateIntegrity(ArtemisUtil.java:30) at io.quarkus.artemis.jms.runtime.ArtemisJmsRecorder.getConnectionFactoryProducer(ArtemisJmsRecorder.java:33) at io.quarkus.deployment.steps.ArtemisJmsProcessor$configure1492597324.deploy_0(Unknown Source) at io.quarkus.deployment.steps.ArtemisJmsProcessor$configure1492597324.deploy(Unknown Source) at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source) at io.quarkus.runtime.Application.start(Application.java:101)

application.yml is: quarkus: devservices: enabled: false artemis: url: vm://0

The ArtemisJmsRecorder completely ignores the above configuration, it thinks the values are the opposite of the file.

Here are some of our dependencies: [INFO] +- io.quarkiverse.artemis:quarkus-artemis-jms:jar:2.1.1:compile [INFO] | +- io.quarkiverse.artemis:quarkus-artemis-core:jar:2.1.1:compile [INFO] | - org.apache.activemq:artemis-jms-client:jar:2.27.1:compile [INFO] | - jakarta.jms:jakarta.jms-api:jar:2.0.3:compile

INFO] +- org.apache.activemq:artemis-server:jar:2.27.1:compile [INFO] | +- org.apache.activemq:artemis-commons:jar:2.27.1:compile [INFO] | +- org.apache.activemq:artemis-selector:jar:2.27.1:compile [INFO] | +- org.apache.activemq:artemis-journal:jar:2.27.1:compile [INFO] | +- org.apache.activemq:artemis-core-client:jar:2.27.1:compile [INFO] | | +- org.jgroups:jgroups:jar:5.2.0.Final:compile [INFO] | | +- io.netty:netty-handler-proxy:jar:4.1.86.Final:compile [INFO] | | - io.netty:netty-codec-socks:jar:4.1.86.Final:compile [INFO] | +- org.apache.activemq:artemis-quorum-api:jar:2.27.1:compile [INFO] | +- org.apache.activemq:activemq-artemis-native:jar:2.0.0:compile [INFO] | +- org.jctools:jctools-core:jar:2.1.2:compile [INFO] | +- io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.86.Final:compile [INFO] | +- io.netty:netty-transport-native-kqueue:jar:osx-x86_64:4.1.86.Final:compile [INFO] | | - io.netty:netty-transport-classes-kqueue:jar:4.1.86.Final:compile [INFO] | +- org.apache.commons:commons-configuration2:jar:2.8.0:compile [INFO] | - io.micrometer:micrometer-core:jar:1.10.2:compile [INFO] | +- io.micrometer:micrometer-commons:jar:1.10.2:compile [INFO] | - io.micrometer:micrometer-observation:jar:1.10.2:compile [INFO] +- org.apache.activemq:artemis-amqp-protocol:jar:2.27.1:compile [INFO] | - org.apache.qpid:proton-j:jar:0.34.0:compile

turing85 commented 1 year ago

@dhoffer Thanks for raising an issue. Can you provide a reproducer?

turing85 commented 1 year ago

this could be related to this issue (quarkusio.zulipchat.com) which was fixed by commit b1ecd0b065bdc0f783b55581ea872aee38152db3 in quarkus. It seems that his fix hasn't made it down to any 2.x branch:

git branch -r --contains "b1ecd0b065bdc0f783b55581ea872aee38152db3" | cat
  fork/add-jms-spi-to-bom
  fork/feature/cleanup-codestarter-tests
  fork/feature/improve-csrf-documentation
  fork/feature/quiet-docker-command-for-determining-java-version
  fork/foo
  fork/main
  origin/3.0
  origin/3.1
  origin/3.2
  origin/HEAD -> origin/main
  origin/dependabot/maven/com.google.errorprone-error_prone_annotations-2.20.0
  origin/dependabot/maven/flyway.version-9.20.0
  origin/dependabot/maven/io.opentelemetry-opentelemetry-bom-1.27.0
  origin/dependabot/maven/kafka3.version-3.4.1
  origin/dependabot/maven/kafka3.version-3.5.0
  origin/dependabot/maven/org.checkerframework-checker-qual-3.35.0
  origin/dmlloyd-patch-1
  origin/main
  origin/revert-34339-rr-instance

Could you try prefixing the property with the dev-profile, i.e.:

quarkus:
  devservices:
    enabled: false
  artemis:
    url: vm://0
"%dev":
  quarkus
    artemis:
      url: vm://0

and see if this fixes the issue?

I'll see if i can get a cherry-pick of the commit to 2.13.x and 2.16.x.

turing85 commented 1 year ago

Backport-PRs in quarkus:

turing85 commented 1 year ago

I was able to reproduce the issue, see https://github.com/quarkusio/quarkus/pull/34495#issuecomment-1619123628

The problem is only partially on our end, we cannot fix it. Ideally, the aforementioned backports are merged; they should resolve the issue.

I was able to verify that prefixing the relevant values (quarkus.artemis.url, quarkus.artemis.username and quakrus.artemis.password) with the %prod-profile works around the issue.

turing85 commented 1 year ago

The problem should be fixed in quarkus 3.3.0. The fix will not be downstreamed to older versions. Therefore, I'll close the issue.