IBM J9 error
See original GitHub issueHi
SkyWalking gets reports from users in J9 VM. I am not familiar with that. Based on the logs, https://github.com/apache/skywalking/issues/2652#issuecomment-492062199. SkyWalking ProtectiveShieldMatcher prints the logs, such as this
WARN 2019-05-14 10:58:35:839 main ProtectiveShieldMatcher : Byte-buddy occurs exception when match type.
java.lang.IllegalStateException: Cannot resolve type description for java.util.Properties
at org.apache.skywalking.apm.dependencies.net.bytebuddy.pool.TypePool$Resolution$Illegal.resolve(TypePool.java:159)
at org.apache.skywalking.apm.dependencies.net.bytebuddy.pool.TypePool$Default$WithLazyResolution$LazyTypeDescription.delegate(TypePool.java:1407)
at org.apache.skywalking.apm.dependencies.net.bytebuddy.description.type.TypeDescription$AbstractBase$OfSimpleType$WithDelegation.getSuperClass(TypeDescription.java:8024)
at org.apache.skywalking.apm.dependencies.net.bytebuddy.description.type.TypeDescription$Generic$OfNonGenericType.getSuperClass(TypeDescription.java:3619)
at org.apache.skywalking.apm.dependencies.net.bytebuddy.description.type.TypeDefinition$SuperClassIterator.next(TypeDefinition.java:314)
at org.apache.skywalking.apm.dependencies.net.bytebuddy.description.type.TypeDefinition$SuperClassIterator.next(TypeDefinition.java:281)
at org.apache.skywalking.apm.dependencies.net.bytebuddy.matcher.HasSuperTypeMatcher.matches(HasSuperTypeMatcher.java:53)
at org.apache.skywalking.apm.dependencies.net.bytebuddy.matcher.HasSuperTypeMatcher.matches(HasSuperTypeMatcher.java:31)
at org.apache.skywalking.apm.dependencies.net.bytebuddy.matcher.ElementMatcher$Junction$Conjunction.matches(ElementMatcher.java:122)
at org.apache.skywalking.apm.dependencies.net.bytebuddy.matcher.ElementMatcher$Junction$Disjunction.matches(ElementMatcher.java:160)
at org.apache.skywalking.apm.dependencies.net.bytebuddy.matcher.ElementMatcher$Junction$Disjunction.matches(ElementMatcher.java:160)
at org.apache.skywalking.apm.dependencies.net.bytebuddy.matcher.ElementMatcher$Junction$Disjunction.matches(ElementMatcher.java:160)
at org.apache.skywalking.apm.dependencies.net.bytebuddy.matcher.ElementMatcher$Junction$Disjunction.matches(ElementMatcher.java:160)
I tried to add some ignore rules for these classes, https://github.com/apache/skywalking/compare/j9-compatible , but look like doesn’t work.
ProtectiveShieldMatcher is following our former discussion, it should just simply print the logs and return false as a fail-safe.
/**
* In some cases, some frameworks and libraries use some binary codes tech too. From the community feedback, some of
* them have compatible issues with byte-buddy core, which trigger "Can't resolve type description" exception.
*
* So I build this protective shield by a nested matcher. When the origin matcher(s) can't resolve the type, the
* SkyWalking agent ignores this types.
*
* Notice: this ignore mechanism may miss some instrumentations, but at most cases, it's same. If missing happens,
* please pay attention to the WARNING logs.
*
* @author wu-sheng
*/
public class ProtectiveShieldMatcher<T> extends ElementMatcher.Junction.AbstractBase<T> {
private static final ILog logger = LogManager.getLogger(ProtectiveShieldMatcher.class);
private final ElementMatcher<? super T> matcher;
public ProtectiveShieldMatcher(ElementMatcher<? super T> matcher) {
this.matcher = matcher;
}
public boolean matches(T target) {
try {
return this.matcher.matches(target);
} catch (Throwable t) {
logger.warn(t, "Byte-buddy occurs exception when match type.");
return false;
}
}
}
But this time, it is JVM related classes or eclipse osgi related. does J9VM have some protection mechanism? How should I change the codes?
Issue Analytics
- State:
- Created 4 years ago
- Reactions:2
- Comments:45 (11 by maintainers)
Top Results From Across the Web
J9 issues and limitations - IBM
This behavior occurs on 31-bit and 64-bit environments. To avoid this problem, run the Java virtual machine with the -Xrs:sync option. This option...
Read more >javaagent" with the IBM JVM (J9) causes an assertion failure
When running with debug with IBM Rational Application Developer's JRE a "Fatal error: processing of -javaagent failed" error occurs. Symptom.
Read more >J9VM messages - IBM
The JVM has found an error when parsing the environment variable IBM_JAVA_OPTIONS. This problem can be caused by syntax errors such as unmatched...
Read more >Remove J9 args when using a non IBM Java Virtual Machine
Cause. The Java Virtual Machine configured for SCM is not an IBM J9 Virtual Machine. J9 is a Java Vistual Machine developed by...
Read more >Troubleshooting OpenJ9 and IBM J9 JVMs
The problem is that if a system dump is requested while a garbage collection is running, this normally means that the system dump...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

Also, I noticed the following log
Is the osgi class define mechanism causing some conflicts?
Good to know, thanks for the update!