Comments (6)
Strangely, this problem goes away when I compile/run with the snapshot containing the above reference PR for reactor-kafka.
Feel free to close this if you don't think it warrants investigation.
from blockhound.
Ah - thanks; understood; since the constructor is now called on the other thread (with my r-k PR), we're good.
Closing this.
from blockhound.
@garyrussell AppInfoParser
has this code:
static {
Properties props = new Properties();
try (InputStream resourceStream = AppInfoParser.class.getResourceAsStream("/kafka/kafka-version.properties")) {
props.load(resourceStream);
} catch (Exception e) {
log.warn("Error while loading kafka-version.properties: {}", e.getMessage());
}
VERSION = props.getProperty("version", DEFAULT_VALUE).trim();
COMMIT_ID = props.getProperty("commitId", DEFAULT_VALUE).trim();
}
it is indeed blocking, so BlockHound barks and the classloading fails (as the static blocks are executed at the classloading time)
from blockhound.
Hi @garyrussell . Looks like the issue has been occured again in recent versions.
2023-02-14 14:57:56,239 [,] ERROR [ ws-user-client] o.a.k.c.u.KafkaThread : Uncaught exception in thread 'kafka-producer-network-thread | ws-user-client':
java.lang.NoClassDefFoundError: Could not initialize class org.apache.kafka.common.utils.AppInfoParser
at org.apache.kafka.common.requests.ApiVersionsRequest$Builder.<clinit>(ApiVersionsRequest.java:37)
at org.apache.kafka.clients.NetworkClient.handleConnections(NetworkClient.java:950)
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:571)
at org.apache.kafka.clients.NetworkClientUtils.awaitReady(NetworkClientUtils.java:73)
at org.apache.kafka.clients.producer.internals.Sender.awaitNodeReady(Sender.java:526)
at org.apache.kafka.clients.producer.internals.Sender.maybeSendAndPollTransactionalRequest(Sender.java:447)
at org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:316)
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:243)
at java.base/java.lang.Thread.run(Thread.java:829)
Do we have any workaround?
from blockhound.
@Abdulkhakimov Try calling AppInfoParser.getVersion()
on the main thread before starting any reactive workloads; that should initialize the static.
from blockhound.
@garyrussell It all worked without any barking from BlockHound. Very grateful for the help!
from blockhound.
Related Issues (20)
- `java.nio.channels.FileChannel` related operations are not detected as blocking
- BlockHoundIntegration.compareTo doesn't allow integrations loaded via SPI to control ordering based on initial position in stream. HOT 3
- build a skip or disable feature for individual tests HOT 2
- BlockHound does not support java 18
- Blockhound turn off and on for junit platform HOT 2
- Thread.sleep not detected HOT 2
- ClassCircularityError when using the agent with Tomcat HOT 7
- BlockHoundTestExecutionListener could not be instantiated (JDK 17) HOT 3
- unnamed module @45312be2 HOT 8
- Candidates to be included as default allowances
- Blockhound failing with new version of micrometer HOT 24
- Error using java 17 & infinispan starter HOT 4
- [Byte Buddy] ERROR reactor.core.publisher.ContextPropagation [jdk.internal.loader.ClassLoaders$AppClassLoader@266474c2, unnamed module @6c9f5c0d, Thread[mythread-1,5,main], loaded=false] HOT 5
- Bootstrap loading
- Using JDK 18 or greater makes the JVM log an issue while loading `Unsafe.park` HOT 1
- BlockHound does not flag Thread.sleep(long, int) since JDK 21 HOT 2
- Detect Synchronized Methods HOT 1
- IllegalMonitorStateException in ThreadPoolExecutor with Redisson Integration HOT 7
- Java 22 Support HOT 11
- Blockhound + Opentelemetry agent fail on install HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blockhound.