Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade Smallrye Reactive Messaging to 3.8.0 #18972

Merged
merged 2 commits into from
Jul 30, 2021

Conversation

ozangunalp
Copy link
Contributor

Wire startup probe
Update documentation for health checks and record key propagation
Copy up-to-date configuration documentation from reactive messaging.


| *group.id* | A unique string that identifies the consumer group the application belongs to. If not set, a unique, generated id is used

Type: _string_ | false |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to figure out this sync issue, because everytime we sync from SmallRye, we lose this important piece of content:

| *group.id* | A unique string that identifies the consumer group the application belongs to.

If not set, defaults to the application name as set by the `quarkus.application.name` configuration property.

If that is not set either, a unique, generated id is used.
It is recommended to always define a `group.id`, the automatic generation is only a convenient feature for development.

Type: _string_ | false |

(We should actually update this to mention ${quarkus.uuid}, but first, we need to make sure we don't lose the text all the time.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested a "not-so-ugly" way of doing this. But it involves generating optional includes in the original SmallRye RM documentation. @Ladicek what do you think?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if it needs to be includes, maybe just AsciiDoc conditionals (ifdef, ifndef) would be enough?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think that neither include nor ifdef solves this issue. I don't think that we should add quarkus related content to the SmallRye RM repo.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I included the ${quarkus.uuid} to group.id property documentation.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well we already have Quarkus-specific stuff in RM documentation, so I would be fine with including more, but your call :-)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know I can hardly find any reference to Quarkus in RM repo. Maybe we can decide on this later?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure thing!

@Ladicek
Copy link
Contributor

Ladicek commented Jul 23, 2021

This looks OK to me. I didn't know we don't have the necessary infrastructure in place for @Startup probes. @xstefank could you please take a look at that? (Or who maintains the SmallRye Health extension in Quarkus?)

@quarkus-bot
Copy link

quarkus-bot bot commented Jul 23, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building f26cfb7

Status Name Step Test failures Logs Raw logs
JVM Tests - JDK 11 Build Test failures Logs Raw logs
JVM Tests - JDK 11 Windows Build ⚠️ Check → Logs Raw logs
JVM Tests - JDK 16 Build ⚠️ Check → Logs Raw logs

Full information is available in the Build summary check run.

⚠️ Errors occurred while downloading the Surefire reports. This report is incomplete.

Test Failures

⚙️ JVM Tests - JDK 11 #

📦 integration-tests/hibernate-reactive-panache

io.quarkus.it.panache.reactive.PanacheFunctionalityTest.testPanacheFunctionality line 49 - More details - Source on GitHub

java.net.SocketTimeoutException: Read timed out
	at java.base/java.net.SocketInputStream.socketRead0(Native Method)
	at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
	at java.base/java.net.SocketInputStream.read(SocketInputStream.java:168)
	at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)
	at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:161)
	at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:82)
	at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:276)
	at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
	at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
	at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
	at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeade...

📦 integration-tests/kubernetes/quarkus-standard-way

io.quarkus.it.kubernetes.KnativeWithHealthTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.smallrye.health.deployment.SmallRyeHealthProcessor#kubernetes threw an exception: java.lang.IllegalArgumentException: Build item class must be leaf (final) types: class io.quarkus.kubernetes.spi.KubernetesHealthStartupPathBuildItem
	at io.quarkus.builder.item.BuildItem.<init>(BuildItem.java:22)
	at io.quarkus.builder.item.SimpleBuildItem.<init>(SimpleBuildItem.java:10)
	at io.quarkus.kubernetes.spi.KubernetesHealthStartupPathBuildItem.<init>(KubernetesHealthStartupPathBuildItem.java:9)
	at io.quarkus.smallrye.health.deployment.SmallRyeHealthProcessor.kubernetes(SmallRyeHealthProcessor.java:344)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.Delegating...

io.quarkus.it.kubernetes.KubernetesInitContainersTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.smallrye.health.deployment.SmallRyeHealthProcessor#kubernetes threw an exception: java.lang.IllegalArgumentException: Build item class must be leaf (final) types: class io.quarkus.kubernetes.spi.KubernetesHealthStartupPathBuildItem
	at io.quarkus.builder.item.BuildItem.<init>(BuildItem.java:22)
	at io.quarkus.builder.item.SimpleBuildItem.<init>(SimpleBuildItem.java:10)
	at io.quarkus.kubernetes.spi.KubernetesHealthStartupPathBuildItem.<init>(KubernetesHealthStartupPathBuildItem.java:9)
	at io.quarkus.smallrye.health.deployment.SmallRyeHealthProcessor.kubernetes(SmallRyeHealthProcessor.java:344)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.Delegating...

io.quarkus.it.kubernetes.KubernetesWithHealthAndJibTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.smallrye.health.deployment.SmallRyeHealthProcessor#kubernetes threw an exception: java.lang.IllegalArgumentException: Build item class must be leaf (final) types: class io.quarkus.kubernetes.spi.KubernetesHealthStartupPathBuildItem
	at io.quarkus.builder.item.BuildItem.<init>(BuildItem.java:22)
	at io.quarkus.builder.item.SimpleBuildItem.<init>(SimpleBuildItem.java:10)
	at io.quarkus.kubernetes.spi.KubernetesHealthStartupPathBuildItem.<init>(KubernetesHealthStartupPathBuildItem.java:9)
	at io.quarkus.smallrye.health.deployment.SmallRyeHealthProcessor.kubernetes(SmallRyeHealthProcessor.java:344)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.Delegating...

io.quarkus.it.kubernetes.KubernetesWithHealthTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.smallrye.health.deployment.SmallRyeHealthProcessor#kubernetes threw an exception: java.lang.IllegalArgumentException: Build item class must be leaf (final) types: class io.quarkus.kubernetes.spi.KubernetesHealthStartupPathBuildItem
	at io.quarkus.builder.item.BuildItem.<init>(BuildItem.java:22)
	at io.quarkus.builder.item.SimpleBuildItem.<init>(SimpleBuildItem.java:10)
	at io.quarkus.kubernetes.spi.KubernetesHealthStartupPathBuildItem.<init>(KubernetesHealthStartupPathBuildItem.java:9)
	at io.quarkus.smallrye.health.deployment.SmallRyeHealthProcessor.kubernetes(SmallRyeHealthProcessor.java:344)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.Delegating...

io.quarkus.it.kubernetes.KubernetesWithRootAndHealthTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.smallrye.health.deployment.SmallRyeHealthProcessor#kubernetes threw an exception: java.lang.IllegalArgumentException: Build item class must be leaf (final) types: class io.quarkus.kubernetes.spi.KubernetesHealthStartupPathBuildItem
	at io.quarkus.builder.item.BuildItem.<init>(BuildItem.java:22)
	at io.quarkus.builder.item.SimpleBuildItem.<init>(SimpleBuildItem.java:10)
	at io.quarkus.kubernetes.spi.KubernetesHealthStartupPathBuildItem.<init>(KubernetesHealthStartupPathBuildItem.java:9)
	at io.quarkus.smallrye.health.deployment.SmallRyeHealthProcessor.kubernetes(SmallRyeHealthProcessor.java:344)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.Delegating...

io.quarkus.it.kubernetes.OpenshiftWithHealthTest. - More details - Source on GitHub

java.lang.RuntimeException: 
java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
	[error]: Build step io.quarkus.smallrye.health.deployment.SmallRyeHealthProcessor#kubernetes threw an exception: java.lang.IllegalArgumentException: Build item class must be leaf (final) types: class io.quarkus.kubernetes.spi.KubernetesHealthStartupPathBuildItem
	at io.quarkus.builder.item.BuildItem.<init>(BuildItem.java:22)
	at io.quarkus.builder.item.SimpleBuildItem.<init>(SimpleBuildItem.java:10)
	at io.quarkus.kubernetes.spi.KubernetesHealthStartupPathBuildItem.<init>(KubernetesHealthStartupPathBuildItem.java:9)
	at io.quarkus.smallrye.health.deployment.SmallRyeHealthProcessor.kubernetes(SmallRyeHealthProcessor.java:344)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.Delegating...

@ozangunalp ozangunalp force-pushed the startup_probe_smallrye_rm_3.8.0 branch from f26cfb7 to f840d17 Compare July 26, 2021 12:33
@ozangunalp
Copy link
Contributor Author

@xstefank can you take a look at this for the @Startup probes I added ?

Copy link
Contributor

@xstefank xstefank left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, LGTM. It seems that I missed the stuff that Quarkus does on top of the spec integration when I was doing the update so thanks for this.


It is recommended to always define a `group.id`, the automatic generation is only a convenient feature for development.

Type: _string_ | false |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So originally, we had

| *group.id* | A unique string that identifies the consumer group the application belongs to.

If not set, defaults to the application name as set by the `quarkus.application.name` configuration property.

If that is not set either, a unique, generated id is used.
It is recommended to always define a `group.id`, the automatic generation is only a convenient feature for development.

Type: _string_ | false |

What we have now is a little hard to understand (the mention of automatic generation without previous explanation is strange, and the sentence about quarkus.uuid interrupts the reading flow IMHO).

I'd add the quarkus.uuid stuff at the end, resulting in something like:

| *group.id* | A unique string that identifies the consumer group the application belongs to.

If not set, defaults to the application name as set by the `quarkus.application.name` configuration property.

If that is not set either, a unique, generated id is used.

It is recommended to always define a `group.id`, the automatic generation is only a convenient feature for development.
You can explicitly ask for automatically generated unique id by setting this property to `${quarkus.uuid}`.

Type: _string_ | false |

@Ladicek
Copy link
Contributor

Ladicek commented Jul 29, 2021

I wouldn't be nitpicking now, except I see this needs to be rebased anyway, so I thought it won't hurt :-)

@ozangunalp
Copy link
Contributor Author

I know, I was waiting for your final word :)

…cumentation

Update health check doc for readiness and startup

Add record key propagation.
@ozangunalp ozangunalp force-pushed the startup_probe_smallrye_rm_3.8.0 branch from f840d17 to bbe8e4e Compare July 29, 2021 13:45
@Ladicek
Copy link
Contributor

Ladicek commented Jul 29, 2021

OK :-) Sorry it took me so long!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants