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

Bump Quarkus to 3.15 and align its friends #4214

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

matzew
Copy link
Contributor

@matzew matzew commented Jan 14, 2025

Fixes #

Proposed Changes

  • Bump to Quarkus 3.15 and matching friends
  • Update API calls to breaking API (e.g. from vertx and micrometer)
  • provide newer version of com.squareup.okhttp3.mockwebserver and exclude old one from fabric8 mock-server, until it has newer version too (like otel)

Release Note


Docs

@knative-prow knative-prow bot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. area/data-plane size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jan 14, 2025
Copy link

knative-prow bot commented Jan 14, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: matzew

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@knative-prow knative-prow bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jan 14, 2025
@knative-prow knative-prow bot requested review from Cali0707 and creydr January 14, 2025 14:55
Copy link

codecov bot commented Jan 14, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 45.44%. Comparing base (e1e20b7) to head (2a1c44d).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #4214   +/-   ##
=======================================
  Coverage   45.44%   45.44%           
=======================================
  Files         270      270           
  Lines       19893    19893           
=======================================
  Hits         9041     9041           
  Misses      10133    10133           
  Partials      719      719           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@matzew
Copy link
Contributor Author

matzew commented Jan 14, 2025

Update: Jan 15: The below is fixed. Replaced the okhttp mockwebserver version from fabric8

[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.239 s -- in dev.knative.eventing.kafka.broker.core.file.FileWatcherTest
[INFO] 
[INFO] Results:
[INFO] 
[ERROR] Errors: 
[ERROR]   EventTypeCreatorImplTest » NoClassDefFound okhttp3/mockwebserver/Dispatcher
[ERROR]   EventTypeTest » NoClassDefFound okhttp3/mockwebserver/Dispatcher
[ERROR]   KubernetesAuthProviderTest » NoClassDefFound okhttp3/mockwebserver/Dispatcher

issues like this are that we have two different okhttp versions:

  • via opentelemetry-exporter-zipkin:
[INFO] |  +- io.opentelemetry:opentelemetry-exporter-zipkin:jar:1.39.0:compile
[INFO] |  |  +- io.zipkin.reporter2:zipkin-reporter:jar:3.4.0:compile
[INFO] |  |  |  \- io.zipkin.zipkin2:zipkin:jar:2.27.1:compile
[INFO] |  |  +- io.opentelemetry:opentelemetry-exporter-common:jar:1.39.0:runtime
[INFO] |  |  +- io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:1.39.0:runtime
[INFO] |  |  \- io.zipkin.reporter2:zipkin-sender-okhttp3:jar:3.4.0:runtime
[INFO] |  |     \- com.squareup.okhttp3:okhttp:jar:4.12.0:runtime
  • via kubernetes-server-mock:
[INFO] +- io.fabric8:kubernetes-server-mock:jar:6.13.4:test
[INFO] |  +- io.fabric8:mockwebserver:jar:6.13.4:test
[INFO] |  |  \- com.squareup.okhttp3:mockwebserver:jar:3.12.12:test

@@ -36,7 +36,8 @@
public class MetricsTest {

static {
BackendRegistries.setupBackend(new MicrometerMetricsOptions().setRegistryName(Metrics.METRICS_REGISTRY_NAME));
BackendRegistries.setupBackend(
new MicrometerMetricsOptions().setRegistryName(Metrics.METRICS_REGISTRY_NAME), null);
Copy link
Contributor Author

@matzew matzew Jan 14, 2025

Choose a reason for hiding this comment

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

hey @tsegismont 👋

Your API changed, based on what I saw for its impl, I am going w/ null as the second argument. (for all the occurrences, in our tests)

Copy link
Contributor

Choose a reason for hiding this comment

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

That should work

@matzew matzew changed the title WIP: Doing a version bump to 3.15 quarkus and friends Bump Quarkus to 3.15 and align its friends Jan 15, 2025
@knative-prow knative-prow bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 15, 2025
@@ -42,10 +42,10 @@
<spotless.plugin.version>2.38.0</spotless.plugin.version>

<!-- dependencies version -->
<vertx.version>4.5.7</vertx.version>
<vertx.version>4.5.11</vertx.version>
<cloudevents.sdk.version>4.0.0</cloudevents.sdk.version>
<micrometer.version>1.12.5</micrometer.version>
Copy link
Member

@pierDipi pierDipi Jan 15, 2025

Choose a reason for hiding this comment

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

I see the import change from

import io.micrometer.prometheus.PrometheusConfig;
import io.micrometer.prometheus.PrometheusMeterRegistry;

to

import io.micrometer.prometheusmetrics.PrometheusConfig;
import io.micrometer.prometheusmetrics.PrometheusMeterRegistry;

but the micrometer.version is not changing?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ah, yeah. The 1.33.5 is used here, but it comes via quarkus / vertx and their bom.

I guess we can remove the micrometer-bom import at the root pom.xml ?

For now I have changed it on the root pom, and updated the PR

@matzew
Copy link
Contributor Author

matzew commented Jan 16, 2025 via email

@matzew
Copy link
Contributor Author

matzew commented Jan 16, 2025

Taking a look at the issue

@matzew
Copy link
Contributor Author

matzew commented Jan 16, 2025

Exception in thread "main" java.lang.NoClassDefFoundError: io/micrometer/prometheus/PrometheusMeterRegistry
	at io.vertx.micrometer.backends.BackendRegistries.lambda$setupBackend$1(BackendRegistries.java:65)
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source)
	at io.vertx.micrometer.backends.BackendRegistries.setupBackend(BackendRegistries.java:62)
	at io.vertx.micrometer.MicrometerMetricsFactory.metrics(MicrometerMetricsFactory.java:87)
	at io.vertx.core.spi.VertxMetricsFactory.init(VertxMetricsFactory.java:50)
	at io.vertx.core.impl.VertxBuilder.initProviders(VertxBuilder.java:284)
	at io.vertx.core.impl.VertxBuilder.init(VertxBuilder.java:275)
	at io.vertx.core.Vertx$1.internalBuilder(Vertx.java:122)
	at io.vertx.core.Vertx$1.build(Vertx.java:126)
	at io.vertx.core.Vertx.vertx(Vertx.java:151)
	at dev.knative.eventing.kafka.broker.receiver.main.Main.start(Main.java:87)
	at dev.knative.eventing.kafka.broker.receiverloom.Main.main(Main.java:23)
Caused by: java.lang.ClassNotFoundException: io.micrometer.prometheus.PrometheusMeterRegistry
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	... 12 more

Looks like some inner of vertx-micrometer still using the "old" o.micrometer.prometheus APIs?

@matzew
Copy link
Contributor Author

matzew commented Jan 16, 2025

@tsegismont looks like the 4.5.11 version is still on an older micrometer version (1.12.12):
https://github.com/vert-x3/vertx-micrometer-metrics/blob/4.5.11/pom.xml#L41

While the quarkus-vertx from 3.15.x seems to pull in a newer version (`1.13.51)

[INFO]    +- io.quarkus:quarkus-vertx:jar:3.15.3:compile
[INFO]    |  +- io.quarkus:quarkus-arc:jar:3.15.3:compile
[INFO]    |  |  +- io.quarkus.arc:arc:jar:3.15.3:compile
[INFO]    |  |  |  +- jakarta.annotation:jakarta.annotation-api:jar:3.0.0:compile
[INFO]    |  |  |  \- jakarta.transaction:jakarta.transaction-api:jar:2.0.1:compile
[INFO]    |  |  +- io.quarkus:quarkus-core:jar:3.15.3:compile
[INFO]    |  |  |  +- jakarta.inject:jakarta.inject-api:jar:2.0.1:compile
[INFO]    |  |  |  +- io.smallrye.common:smallrye-common-os:jar:2.6.0:compile
[INFO]    |  |  |  +- io.quarkus:quarkus-ide-launcher:jar:3.15.3:compile
[INFO]    |  |  |  +- io.quarkus:quarkus-development-mode-spi:jar:3.15.3:compile
[INFO]    |  |  |  +- io.smallrye.config:smallrye-config:jar:3.9.1:compile
[INFO]    |  |  |  |  \- io.smallrye.config:smallrye-config-core:jar:3.9.1:compile
[INFO]    |  |  |  |     +- io.smallrye.common:smallrye-common-expression:jar:2.6.0:compile
[INFO]    |  |  |  |     |  \- io.smallrye.common:smallrye-common-function:jar:2.6.0:compile
[INFO]    |  |  |  |     +- io.smallrye.common:smallrye-common-classloader:jar:2.6.0:compile
[INFO]    |  |  |  |     \- io.smallrye.config:smallrye-config-common:jar:3.9.1:compile
[INFO]    |  |  |  +- org.jboss.logging:jboss-logging-annotations:jar:3.0.1.Final:compile
[INFO]    |  |  |  +- org.jboss.threads:jboss-threads:jar:3.6.1.Final:compile
[INFO]    |  |  |  +- org.wildfly.common:wildfly-common:jar:1.7.0.Final:compile
[INFO]    |  |  |  +- io.quarkus:quarkus-bootstrap-runner:jar:3.15.3:compile
[INFO]    |  |  |  |  +- io.quarkus:quarkus-classloader-commons:jar:3.15.3:compile
[INFO]    |  |  |  |  +- io.smallrye.common:smallrye-common-io:jar:2.6.0:compile
[INFO]    |  |  |  |  \- io.github.crac:org-crac:jar:0.1.3:compile
[INFO]    |  |  |  \- io.quarkus:quarkus-fs-util:jar:0.0.10:compile
[INFO]    |  |  \- org.eclipse.microprofile.context-propagation:microprofile-context-propagation-api:jar:1.3:compile
[INFO]    |  +- io.quarkus:quarkus-netty:jar:3.15.3:compile
[INFO]    |  |  +- io.netty:netty-codec:jar:4.1.115.Final:compile
[INFO]    |  |  +- io.netty:netty-codec-http:jar:4.1.115.Final:compile
[INFO]    |  |  +- io.netty:netty-codec-http2:jar:4.1.115.Final:compile
[INFO]    |  |  +- io.netty:netty-handler:jar:4.1.115.Final:compile
[INFO]    |  |  |  \- io.netty:netty-transport-native-unix-common:jar:4.1.115.Final:compile
[INFO]    |  |  +- jakarta.enterprise:jakarta.enterprise.cdi-api:jar:4.1.0:compile
[INFO]    |  |  |  +- jakarta.enterprise:jakarta.enterprise.lang-model:jar:4.1.0:compile
[INFO]    |  |  |  +- jakarta.el:jakarta.el-api:jar:5.0.1:compile
[INFO]    |  |  |  \- jakarta.interceptor:jakarta.interceptor-api:jar:2.2.0:compile
[INFO]    |  |  \- com.aayushatharva.brotli4j:brotli4j:jar:1.16.0:compile
[INFO]    |  |     +- com.aayushatharva.brotli4j:service:jar:1.16.0:compile
[INFO]    |  |     \- com.aayushatharva.brotli4j:native-linux-x86_64:jar:1.16.0:compile
[INFO]    |  +- io.netty:netty-codec-haproxy:jar:4.1.115.Final:compile
[INFO]    |  |  +- io.netty:netty-buffer:jar:4.1.115.Final:compile
[INFO]    |  |  \- io.netty:netty-transport:jar:4.1.115.Final:compile
[INFO]    |  +- io.smallrye.common:smallrye-common-annotation:jar:2.6.0:compile
[INFO]    |  +- io.smallrye.common:smallrye-common-vertx-context:jar:2.6.0:compile
[INFO]    |  |  \- io.smallrye.common:smallrye-common-constraint:jar:2.6.0:compile
[INFO]    |  +- io.quarkus:quarkus-mutiny:jar:3.15.3:compile
[INFO]    |  |  +- io.smallrye.reactive:mutiny:jar:2.6.2:compile
[INFO]    |  |  |  \- org.jctools:jctools-core:jar:4.0.5:compile
[INFO]    |  |  +- io.quarkus:quarkus-smallrye-context-propagation:jar:3.15.3:compile
[INFO]    |  |  |  \- io.smallrye:smallrye-context-propagation:jar:2.1.2:compile
[INFO]    |  |  |     +- org.eclipse.microprofile.config:microprofile-config-api:jar:3.1:compile
[INFO]    |  |  |     +- io.smallrye:smallrye-context-propagation-api:jar:2.1.2:compile
[INFO]    |  |  |     \- io.smallrye:smallrye-context-propagation-storage:jar:2.1.2:compile
[INFO]    |  |  \- io.smallrye.reactive:mutiny-smallrye-context-propagation:jar:2.6.2:compile
[INFO]    |  +- io.quarkus:quarkus-virtual-threads:jar:3.15.3:compile
[INFO]    |  +- io.quarkus:quarkus-vertx-latebound-mdc-provider:jar:3.15.3:compile
[INFO]    |  +- io.smallrye.reactive:smallrye-mutiny-vertx-core:jar:3.16.0:compile
[INFO]    |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-runtime:jar:3.16.0:compile
[INFO]    |  |  \- io.smallrye.reactive:vertx-mutiny-generator:jar:3.16.0:compile
[INFO]    |  |     \- io.vertx:vertx-codegen:jar:4.5.11:compile
[INFO]    |  \- io.smallrye:smallrye-fault-tolerance-vertx:jar:6.4.0:compile
[INFO]    +- io.smallrye.reactive:smallrye-mutiny-vertx-web-client:jar:3.16.0:compile
[INFO]    |  +- io.vertx:vertx-web-client:jar:4.5.11:compile
[INFO]    |  |  +- io.vertx:vertx-uri-template:jar:4.5.11:compile
[INFO]    |  |  +- io.vertx:vertx-web-common:jar:4.5.11:compile
[INFO]    |  |  \- io.vertx:vertx-auth-common:jar:4.5.11:compile
[INFO]    |  +- io.smallrye.reactive:smallrye-mutiny-vertx-auth-common:jar:3.16.0:compile
[INFO]    |  +- io.smallrye.reactive:smallrye-mutiny-vertx-web-common:jar:3.16.0:compile
[INFO]    |  \- io.smallrye.reactive:smallrye-mutiny-vertx-uri-template:jar:3.16.0:compile
[INFO]    +- io.vertx:vertx-micrometer-metrics:jar:4.5.11:compile
[INFO]    |  +- io.micrometer:micrometer-core:jar:1.13.5:compile
[INFO]    |  |  +- io.micrometer:micrometer-commons:jar:1.13.5:compile
[INFO]    |  |  +- io.micrometer:micrometer-observation:jar:1.13.5:compile
[INFO]    |  |  \- org.latencyutils:LatencyUtils:jar:2.0.3:runtime
[INFO]    |  +- org.hdrhistogram:HdrHistogram:jar:2.2.2:compile
[INFO]    |  \- io.vertx:vertx-core:jar:4.5.11:compile
[INFO]    |     +- io.netty:netty-common:jar:4.1.115.Final:compile
[INFO]    |     +- io.netty:netty-handler-proxy:jar:4.1.115.Final:compile
[INFO]    |     |  \- io.netty:netty-codec-socks:jar:4.1.115.Final:compile
[INFO]    |     +- io.netty:netty-resolver:jar:4.1.115.Final:compile
[INFO]    |     \- io.netty:netty-resolver-dns:jar:4.1.115.Final:compile
[INFO]    |        \- io.netty:netty-codec-dns:jar:4.1.115.Final:compile
[INFO]    +- io.vertx:vertx-opentelemetry:jar:4.5.11:compile
[INFO]    +- io.cloudevents:cloudevents-sql:jar:4.0.0:compile
[INFO]    |  +- io.cloudevents:cloudevents-api:jar:3.0.0:compile
[INFO]    |  \- org.antlr:antlr4-runtime:jar:4.9.2:compile
[INFO]    +- io.cloudevents:cloudevents-kafka:jar:4.0.0:compile
[INFO]    |  \- io.cloudevents:cloudevents-core:jar:4.0.0:compile
[INFO]    +- io.cloudevents:cloudevents-json-jackson:jar:4.0.0:compile
[INFO]    +- io.cloudevents:cloudevents-http-vertx:jar:4.0.0:compile
[INFO]    +- io.micrometer:micrometer-registry-prometheus:jar:1.13.5:compile
[INFO]    |  +- io.prometheus:prometheus-metrics-core:jar:1.2.1:compile
[INFO]    |  |  +- io.prometheus:prometheus-metrics-model:jar:1.2.1:compile
[INFO]    |  |  \- io.prometheus:prometheus-metrics-config:jar:1.2.1:compile
[INFO]    |  +- io.prometheus:prometheus-metrics-tracer-common:jar:1.2.1:compile
[INFO]    |  \- io.prometheus:prometheus-metrics-exposition-formats:jar:1.2.1:runtime
[INFO]    |     \- io.prometheus:prometheus-metrics-shaded-protobuf:jar:1.2.1:runtime

@tsegismont
Copy link
Contributor

That's right. Quarkus uses its own Tracer and Metrics extension.

In the Vert.x stack:

  • Vert.x 4 -> Micrometer 1.12
  • Vert.x 5 -> Micrometer 1.14

In Quarkus -> Micrometer 1.14 (is that correct @brunobat?)

@matzew
Copy link
Contributor Author

matzew commented Jan 16, 2025

In Quarkus -> Micrometer 1.14 (is that correct @brunobat?)

No, the 3.15.x is is using 1.13.5 -> https://github.com/quarkusio/quarkus/blob/3.15/bom/application/pom.xml#L40

@tsegismont
Copy link
Contributor

In Quarkus -> Micrometer 1.14 (is that correct @brunobat?)

No, the 3.15.x is is using 1.13.5 -> https://github.com/quarkusio/quarkus/blob/3.15/bom/application/pom.xml#L40

OK. But it's 1.13 that's a breaking change release.

@brunobat
Copy link

brunobat commented Jan 16, 2025

In Quarkus -> Micrometer 1.14 (is that correct @brunobat?)

Correct. On Quarkus 3.15, Micrometer 1.13.5 is used.
And that's a breaking change because they updated the prometheus client version from 0.x to 1.x. We use the new client but with legacy compatibility:
https://github.com/quarkusio/quarkus/blame/74db2f0bdba9225fe736e4af823aa4868ff9e684/extensions/micrometer-registry-prometheus/runtime/pom.xml#L35

@@ -35,6 +35,11 @@
<version>${project.version}</version>
</dependency>

<dependency>
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@brunobat @tsegismont this gets me locally around the ClassNotFoundException.

Let's see what the CI says 😅

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 think I could also exclude the other registry-prometheus JAR ...

@matzew
Copy link
Contributor Author

matzew commented Jan 16, 2025

@pierDipi on the kafka-broker-dispatcher's Statefulset, I am getting:

{"@timestamp":"2025-01-16T10:51:58.611Z","@version":"1","message":"Error while reading content of /etc/os-release","logger_name":"io.netty.util.internal.PlatformDependent","thread_name":"main","level":"DEBUG","level_value":10000,"stack_trace":"java.io.IOException: Maximum number of bytes read: 8192\n\tat io.netty.util.internal.BoundedInputStream.checkMaxBytesRead(BoundedInputStream.java:79)\n\tat io.netty.util.internal.BoundedInputStream.read(BoundedInputStream.java:58)\n\tat java.base/sun.nio.cs.StreamDecoder.readBytes(Unknown Source)\n\tat java.base/sun.nio.cs.StreamDecoder.implRead(Unknown Source)\n\tat java.base/sun.nio.cs.StreamDecoder.lockedRead(Unknown Source)\n\tat java.base/sun.nio.cs.StreamDecoder.read(Unknown Source)\n\tat java.base/java.io.InputStreamReader.read(Unknown Source)\n\tat java.base/java.io.BufferedReader.fill(Unknown Source)\n\tat java.base/java.io.BufferedReader.implReadLine(Unknown Source)\n\tat java.base/java.io.BufferedReader.readLine(Unknown Source)\n\tat java.base/java.io.BufferedReader.readLine(Unknown Source)\n\tat io.netty.util.internal.PlatformDependent$4.run(PlatformDependent.java:246)\n\tat io.netty.util.internal.PlatformDependent$4.run(PlatformDependent.java:235)\n\tat java.base/java.security.AccessController.doPrivileged(Unknown Source)\n\tat io.netty.util.internal.PlatformDependent.addFilesystemOsClassifiers(PlatformDependent.java:235)\n\tat io.netty.util.internal.PlatformDependent.<clinit>(PlatformDependent.java:226)\n\tat io.vertx.core.impl.Utils.<clinit>(Utils.java:30)\n\tat io.vertx.core.file.impl.FileCache.setupCacheDir(FileCache.java:52)\n\tat io.vertx.core.file.impl.FileCache.setupCache(FileCache.java:31)\n\tat io.vertx.core.file.impl.FileResolverImpl.<init>(FileResolverImpl.java:76)\n\tat io.vertx.core.impl.VertxBuilder.initFileResolver(VertxBuilder.java:338)\n\tat io.vertx.core.impl.VertxBuilder.init(VertxBuilder.java:278)\n\tat io.vertx.core.Vertx$1.internalBuilder(Vertx.java:122)\n\tat io.vertx.core.Vertx$1.build(Vertx.java:126)\n\tat io.vertx.core.Vertx.vertx(Vertx.java:151)\n\tat dev.knative.eventing.kafka.broker.dispatcher.main.Main.start(Main.java:111)\n\tat dev.knative.eventing.kafka.broker.dispatcherloom.Main.main(Main.java:23)\n"}

What I found interesting is that the other data-plane container (e.g. kafka-broker-receiver) the file indicates Ubuntu 24.04... but I was thinking we use RHEL: https://github.com/ knative-extensions/eventing-kafka-broker/blob/main/data-plane/pom.xml#L444

But actually, nope.. https://github.com/knative-extensions/eventing-kafka-broker/blob/main/data-plane/receiver-loom/pom.xml#L99

@knative-prow-robot knative-prow-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 16, 2025
@pierDipi
Copy link
Member

@matzew that's the base image

<image>docker.io/library/eclipse-temurin:21-jre</image>

<image>docker.io/library/eclipse-temurin:21-jre</image>

@matzew
Copy link
Contributor Author

matzew commented Jan 16, 2025

OK, regardless of the base image / container.

I have this on the dispatcher:

{"@timestamp":"2025-01-16T12:55:04.753Z","@version":"1","message":"Error while reading content of /etc/os-release","logger_name":"io.netty.util.internal.PlatformDependent","thread_name":"main","level":"DEBUG","level_value":10000,"stack_trace":"java.io.IOException: Maximum number of bytes read: 8192\n\tat io.netty.util.internal.BoundedInputStream.checkMaxBytesRead(BoundedInputStream.java:79)\n\tat io.netty.util.internal.BoundedInputStream.read(BoundedInputStream.java:58)\n\tat java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350)\n\tat java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393)\n\tat java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217)\n\tat java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171)\n\tat java.base/java.io.InputStreamReader.read(InputStreamReader.java:188)\n\tat java.base/java.io.BufferedReader.fill(BufferedReader.java:160)\n\tat java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370)\n\tat java.base/java.io.BufferedReader.readLine(BufferedReader.java:347)\n\tat java.base/java.io.BufferedReader.readLine(BufferedReader.java:436)\n\tat io.netty.util.internal.PlatformDependent$4.run(PlatformDependent.java:246)\n\tat io.netty.util.internal.PlatformDependent$4.run(PlatformDependent.java:235)\n\tat java.base/java.security.AccessController.doPrivileged(AccessController.java:319)\n\tat io.netty.util.internal.PlatformDependent.addFilesystemOsClassifiers(PlatformDependent.java:235)\n\tat io.netty.util.internal.PlatformDependent.<clinit>(PlatformDependent.java:226)\n\tat io.vertx.core.impl.Utils.<clinit>(Utils.java:30)\n\tat io.vertx.core.file.impl.FileCache.setupCacheDir(FileCache.java:52)\n\tat io.vertx.core.file.impl.FileCache.setupCache(FileCache.java:31)\n\tat io.vertx.core.file.impl.FileResolverImpl.<init>(FileResolverImpl.java:76)\n\tat io.vertx.core.impl.VertxBuilder.initFileResolver(VertxBuilder.java:338)\n\tat io.vertx.core.impl.VertxBuilder.init(VertxBuilder.java:278)\n\tat io.vertx.core.Vertx$1.internalBuilder(Vertx.java:122)\n\tat io.vertx.core.Vertx$1.build(Vertx.java:126)\n\tat io.vertx.core.Vertx.vertx(Vertx.java:151)\n\tat dev.knative.eventing.kafka.broker.dispatcher.main.Main.start(Main.java:111)\n\tat dev.knative.eventing.kafka.broker.dispatcherloom.Main.main(Main.java:23)\n"}
{"@timestamp":"2025-01-16T12:55:04.76Z","@version":"1","message":"-Dio.netty.leakDetection.level: simple","logger_name":"io.netty.util.ResourceLeakDetector","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.761Z","@version":"1","message":"-Dio.netty.leakDetection.targetRecords: 4","logger_name":"io.netty.util.ResourceLeakDetector","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.772Z","@version":"1","message":"-Dio.netty.eventLoopThreads: 4","logger_name":"io.netty.channel.MultithreadEventLoopGroup","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.777Z","@version":"1","message":"-Dio.netty.globalEventExecutor.quietPeriodSeconds: 1","logger_name":"io.netty.util.concurrent.GlobalEventExecutor","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.781Z","@version":"1","message":"-Dio.netty.threadLocalMap.stringBuilder.initialSize: 1024","logger_name":"io.netty.util.internal.InternalThreadLocalMap","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.781Z","@version":"1","message":"-Dio.netty.threadLocalMap.stringBuilder.maxSize: 4096","logger_name":"io.netty.util.internal.InternalThreadLocalMap","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.784Z","@version":"1","message":"-Dio.netty.noKeySetOptimization: false","logger_name":"io.netty.channel.nio.NioEventLoop","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.784Z","@version":"1","message":"-Dio.netty.selectorAutoRebuildThreshold: 512","logger_name":"io.netty.channel.nio.NioEventLoop","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.788Z","@version":"1","message":"org.jctools-core.MpscChunkedArrayQueue: available","logger_name":"io.netty.util.internal.PlatformDependent","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.793Z","@version":"1","message":"Default DNS servers: [/10.96.0.10:53] (sun.net.dns.ResolverConfiguration)","logger_name":"io.netty.resolver.dns.DefaultDnsServerAddressStreamProvider","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.801Z","@version":"1","message":"-Djava.net.preferIPv4Stack: false","logger_name":"io.netty.util.NetUtil","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.802Z","@version":"1","message":"-Djava.net.preferIPv6Addresses: false","logger_name":"io.netty.util.NetUtil","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.802Z","@version":"1","message":"Loopback interface: lo (lo, 0:0:0:0:0:0:0:1%lo)","logger_name":"io.netty.util.NetUtilInitializations","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.803Z","@version":"1","message":"/proc/sys/net/core/somaxconn: 4096","logger_name":"io.netty.util.NetUtil","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.803Z","@version":"1","message":"Default ResolvedAddressTypes: IPV4_ONLY","logger_name":"io.netty.resolver.dns.DnsNameResolver","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.803Z","@version":"1","message":"Localhost address: localhost/127.0.0.1","logger_name":"io.netty.resolver.dns.DnsNameResolver","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.803Z","@version":"1","message":"Windows hostname: null","logger_name":"io.netty.resolver.dns.DnsNameResolver","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.804Z","@version":"1","message":"Default search domains: [knative-eventing.svc.cluster.local, svc.cluster.local, cluster.local]","logger_name":"io.netty.resolver.dns.DnsNameResolver","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.804Z","@version":"1","message":"Default UnixResolverOptions{ndots=5, timeout=5, attempts=16}","logger_name":"io.netty.resolver.dns.DnsNameResolver","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.808Z","@version":"1","message":"-Dio.netty.hostsFileRefreshInterval: 0","logger_name":"io.netty.resolver.DefaultHostsFileEntriesResolver","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.866Z","@version":"1","message":"Trying to configure client from Kubernetes config...","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.868Z","@version":"1","message":"Did not find Kubernetes config at: [/home/default/.kube/config]. Ignoring.","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.868Z","@version":"1","message":"Trying to configure client from service account...","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.868Z","@version":"1","message":"Found service account host and port: 10.96.0.1:443","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.868Z","@version":"1","message":"Found service account ca cert at: [/var/run/secrets/kubernetes.io/serviceaccount/ca.crt}].","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.868Z","@version":"1","message":"Found service account token at: [/var/run/secrets/kubernetes.io/serviceaccount/token].","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.868Z","@version":"1","message":"Trying to configure client namespace from Kubernetes service account namespace path...","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.868Z","@version":"1","message":"Found service account namespace at: [/var/run/secrets/kubernetes.io/serviceaccount/namespace].","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.874Z","@version":"1","message":"Using httpclient io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientFactory factory","logger_name":"io.fabric8.kubernetes.client.utils.HttpClientUtils","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.957Z","@version":"1","message":"Trying to configure client from Kubernetes config...","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.958Z","@version":"1","message":"Did not find Kubernetes config at: [/home/default/.kube/config]. Ignoring.","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.958Z","@version":"1","message":"Trying to configure client from service account...","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.958Z","@version":"1","message":"Found service account host and port: 10.96.0.1:443","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.958Z","@version":"1","message":"Found service account ca cert at: [/var/run/secrets/kubernetes.io/serviceaccount/ca.crt}].","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.958Z","@version":"1","message":"Found service account token at: [/var/run/secrets/kubernetes.io/serviceaccount/token].","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.958Z","@version":"1","message":"Trying to configure client namespace from Kubernetes service account namespace path...","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.958Z","@version":"1","message":"Found service account namespace at: [/var/run/secrets/kubernetes.io/serviceaccount/namespace].","logger_name":"io.fabric8.kubernetes.client.Config","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.959Z","@version":"1","message":"Using httpclient io.fabric8.kubernetes.client.jdkhttp.JdkHttpClientFactory factory","logger_name":"io.fabric8.kubernetes.client.utils.HttpClientUtils","thread_name":"main","level":"DEBUG","level_value":10000}
{"@timestamp":"2025-01-16T12:55:04.974Z","@version":"1","message":"Consumer deployer started","logger_name":"dev.knative.eventing.kafka.broker.dispatcher.main.Main","thread_name":"main","level":"INFO","level_value":20000}
{"@timestamp":"2025-01-16T12:55:04.978Z","@version":"1","message":"Started watching /etc/contract-resources/data","logger_name":"dev.knative.eventing.kafka.broker.core.file.FileWatcher","thread_name":"contract-file-watcher","level":"INFO","level_value":20000}
{"@timestamp":"2025-01-16T12:55:05.038Z","@version":"1","message":"failed to parse from JSON","logger_name":"dev.knative.eventing.kafka.broker.core.eventbus.ContractPublisher","thread_name":"contract-file-watcher","level":"ERROR","level_value":40000,"stack_trace":"com.google.protobuf.InvalidProtocolBufferException: Expect message object but got: null\n\tat com.google.protobuf.util.JsonFormat$ParserImpl.mergeMessage(JsonFormat.java:1458)\n\tat com.google.protobuf.util.JsonFormat$ParserImpl.merge(JsonFormat.java:1435)\n\tat com.google.protobuf.util.JsonFormat$ParserImpl.merge(JsonFormat.java:1299)\n\tat com.google.protobuf.util.JsonFormat$Parser.merge(JsonFormat.java:463)\n\tat dev.knative.eventing.kafka.broker.core.eventbus.ContractPublisher.parseFromJson(ContractPublisher.java:98)\n\tat dev.knative.eventing.kafka.broker.core.eventbus.ContractPublisher.updateContract(ContractPublisher.java:74)\n\tat dev.knative.eventing.kafka.broker.dispatcher.main.Main.lambda$start$0(Main.java:156)\n\tat dev.knative.eventing.kafka.broker.core.file.FileWatcher.run(FileWatcher.java:125)\n\tat java.base/java.lang.Thread.run(Thread.java:1583)\n"}
{"@timestamp":"2025-01-16T12:55:21.391Z","@version":"1","message":"Running shutdown hook","logger_name":"dev.knative.eventing.kafka.broker.core.utils.Shutdown","thread_name":"Thread-4","level":"INFO","level_value":20000}
{"@timestamp":"2025-01-16T12:55:21.395Z","@version":"1","message":"Closing Vert.x","logger_name":"dev.knative.eventing.kafka.broker.core.utils.Shutdown","thread_name":"Thread-4","level":"INFO","level_value":20000}
{"@timestamp":"2025-01-16T12:55:21.413Z","@version":"1","message":"Set new contract contractGeneration=0","logger_name":"dev.knative.eventing.kafka.broker.core.reconciler.impl.ResourcesReconcilerMessageHandler","thread_name":"vert.x-eventloop-thread-0","level":"INFO","level_value":20000,"contractGeneration":0}
{"@timestamp":"2025-01-16T12:55:21.413Z","@version":"1","message":"Reconciling contract contractGeneration=0","logger_name":"dev.knative.eventing.kafka.broker.core.reconciler.impl.ResourcesReconcilerMessageHandler","thread_name":"vert.x-eventloop-thread-0","level":"INFO","level_value":20000,"contractGeneration":0}
{"@timestamp":"2025-01-16T12:55:21.414Z","@version":"1","message":"Reconcile egress diff diff=DiffResult{added=[], intersection=[], removed=[]} contractGeneration=0","logger_name":"dev.knative.eventing.kafka.broker.core.reconciler.impl.ResourcesReconcilerImpl","thread_name":"vert.x-eventloop-thread-0","level":"INFO","level_value":20000,"diff":{"added":[],"intersection":[],"removed":[]},"contractGeneration":0}
{"@timestamp":"2025-01-16T12:55:21.419Z","@version":"1","message":"Reconciled contract generation contractGeneration=0","logger_name":"dev.knative.eventing.kafka.broker.core.reconciler.impl.ResourcesReconcilerMessageHandler","thread_name":"vert.x-eventloop-thread-0","level":"INFO","level_value":20000,"contractGeneration":0}

indicating some error w/ the contract.

Does this ring a bell, @pierDipi ?

Update breaking (micrometer/vertx) API calls

Signed-off-by: Matthias Wessendorf <[email protected]>
@knative-prow-robot knative-prow-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 16, 2025
@matzew
Copy link
Contributor Author

matzew commented Jan 16, 2025

FYI netty/netty#14479

Copy link

knative-prow bot commented Jan 16, 2025

@matzew: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
channel-reconciler-tests-ssl_eventing-kafka-broker_main 2a1c44d link true /test channel-reconciler-tests-ssl
channel-integration-tests-sasl-ssl_eventing-kafka-broker_main 2a1c44d link true /test channel-integration-tests-sasl-ssl
reconciler-tests_eventing-kafka-broker_main 2a1c44d link true /test reconciler-tests
reconciler-tests-keda_eventing-kafka-broker_main 2a1c44d link true /test reconciler-tests-keda
reconciler-tests-namespaced-broker_eventing-kafka-broker_main 2a1c44d link true /test reconciler-tests-namespaced-broker
channel-reconciler-tests-sasl-ssl_eventing-kafka-broker_main 2a1c44d link true /test channel-reconciler-tests-sasl-ssl
channel-integration-tests-sasl-plain_eventing-kafka-broker_main 2a1c44d link true /test channel-integration-tests-sasl-plain
integration-tests_eventing-kafka-broker_main 2a1c44d link true /test integration-tests
channel-integration-tests-ssl_eventing-kafka-broker_main 2a1c44d link true /test channel-integration-tests-ssl
channel-reconciler-tests-sasl-plain_eventing-kafka-broker_main 2a1c44d link true /test channel-reconciler-tests-sasl-plain
upgrade-tests_eventing-kafka-broker_main 2a1c44d link true /test upgrade-tests

Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. area/data-plane size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants