skywalking: vert.x plugin can not boot

Please answer these questions before submitting your issue.

  • Why do you submit this issue?
  • Question or discussion
  • [ x ] Bug
  • Requirement
  • Feature or performance improvement

Question

  • What do you want to know?

Bug

  • Which version of SkyWalking, OS and JRE? skywalking 6.6, OS debian 9 , jre openjdk version “11.0.6”

  • Which company or project?

  • What happen? If possible, provide a way for reproducing the error. e.g. demo application, component version. with vert.x 3.8.5, vertx httpclient and HttpServerResponse can’t start normally.

`ERROR 2020-04-05 15:15:09:096 main ConstructorInter : ConstructorInter failure. java.lang.ClassCastException: class io.vertx.core.net.impl.SocketAddressImpl cannot be cast to class java.lang.String (io.vertx.core.net.impl.SocketAddressImpl is in unnamed module of loader ‘app’; java.lang.String is in module java.base of loader ‘bootstrap’) at org.apache.skywalking.apm.plugin.vertx3.HttpClientRequestImplEndInterceptor.onConstruct(HttpClientRequestImplEndInterceptor.java:46) at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.ConstructorInter.intercept(ConstructorInter.java:65) at io.vertx.core.http.impl.HttpClientRequestImpl.<init>(HttpClientRequestImpl.java) at io.vertx.core.http.impl.HttpClientImpl.createRequest(HttpClientImpl.java:1108) at io.vertx.core.http.impl.HttpClientImpl.createRequest(HttpClientImpl.java:1074) at io.vertx.core.http.impl.HttpClientImpl.request(HttpClientImpl.java:606) at io.vertx.ext.web.client.impl.HttpContext.handlePrepareRequest(HttpContext.java:324) at io.vertx.ext.web.client.impl.HttpContext.execute(HttpContext.java:283) at io.vertx.ext.web.client.impl.HttpContext.next(HttpContext.java:270) at io.vertx.ext.web.client.impl.predicate.PredicateInterceptor.handle(PredicateInterceptor.java:69) at io.vertx.ext.web.client.impl.predicate.PredicateInterceptor.handle(PredicateInterceptor.java:32) at io.vertx.ext.web.client.impl.HttpContext.next(HttpContext.java:267) at io.vertx.ext.web.client.impl.HttpContext.fire(HttpContext.java:277) at io.vertx.ext.web.client.impl.HttpContext.prepareRequest(HttpContext.java:166) at io.vertx.ext.web.client.impl.HttpRequestImpl.send(HttpRequestImpl.java:331) at io.vertx.ext.web.client.impl.HttpRequestImpl.send(HttpRequestImpl.java:301) at org.lightink.reader.service.YueduSchedule.fetchShuyuan(YueduSchedule.kt:33) at org.lightink.reader.service.YueduSchedule.getBookSource(YueduSchedule.kt:25) at org.gosky.candlekeep.AppApplicationKt.main(AppApplication.kt:64)

ERROR 2020-04-05 15:15:09:192 main InstMethodsInter : class[class io.vertx.core.http.impl.HttpClientRequestImpl] before method[end] intercept failure java.lang.IllegalStateException: Exit span doesn’t include meaningful peer information. at org.apache.skywalking.apm.agent.core.context.TracingContext.inject(TracingContext.java:164) at org.apache.skywalking.apm.agent.core.context.TracingContext.inject(TracingContext.java:143) at org.apache.skywalking.apm.agent.core.context.ContextManager.createExitSpan(ContextManager.java:121) at org.apache.skywalking.apm.plugin.vertx3.HttpClientRequestImplEndInterceptor.beforeMethod(HttpClientRequestImplEndInterceptor.java:58) at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInter.intercept(InstMethodsInter.java:76) at io.vertx.core.http.impl.HttpClientRequestImpl.end(HttpClientRequestImpl.java) at io.vertx.ext.web.client.impl.HttpContext.handleSendRequest(HttpContext.java:489) at io.vertx.ext.web.client.impl.HttpContext.execute(HttpContext.java:286) at io.vertx.ext.web.client.impl.HttpContext.next(HttpContext.java:270) at io.vertx.ext.web.client.impl.predicate.PredicateInterceptor.handle(PredicateInterceptor.java:69) at io.vertx.ext.web.client.impl.predicate.PredicateInterceptor.handle(PredicateInterceptor.java:32) at io.vertx.ext.web.client.impl.HttpContext.next(HttpContext.java:267) at io.vertx.ext.web.client.impl.HttpContext.fire(HttpContext.java:277) at io.vertx.ext.web.client.impl.HttpContext.sendRequest(HttpContext.java:179) at io.vertx.ext.web.client.impl.HttpContext.handlePrepareRequest(HttpContext.java:356) at io.vertx.ext.web.client.impl.HttpContext.execute(HttpContext.java:283) at io.vertx.ext.web.client.impl.HttpContext.next(HttpContext.java:270) at io.vertx.ext.web.client.impl.predicate.PredicateInterceptor.handle(PredicateInterceptor.java:69) at io.vertx.ext.web.client.impl.predicate.PredicateInterceptor.handle(PredicateInterceptor.java:32) at io.vertx.ext.web.client.impl.HttpContext.next(HttpContext.java:267) at io.vertx.ext.web.client.impl.HttpContext.fire(HttpContext.java:277) at io.vertx.ext.web.client.impl.HttpContext.prepareRequest(HttpContext.java:166) at io.vertx.ext.web.client.impl.HttpRequestImpl.send(HttpRequestImpl.java:331) at io.vertx.ext.web.client.impl.HttpRequestImpl.send(HttpRequestImpl.java:301) at org.lightink.reader.service.YueduSchedule.fetchShuyuan(YueduSchedule.kt:33) at org.lightink.reader.service.YueduSchedule.getBookSource(YueduSchedule.kt:25) at org.gosky.candlekeep.AppApplicationKt.main(AppApplication.kt:64)`

vertx插件 与 vertx 3.8.5(当前最新正式版) 似乎不兼容的了.

目前skywalking的vertx 插件针对的vertx版本是多少呢?


Requirement or improvement

  • Please describe about your requirements or improvement suggestions.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 15 (10 by maintainers)

Most upvoted comments

I will work on moving the Vert.x scenarios and adding support for Vert.x 3.8.x this week.

@zohar-soul, I don’t think any of the plugins have documentation. What @wu-sheng said above is the best case for figuring out how the plugin works. The documentation for Apache SkyWalking is pretty good and for me to explain how the plugin works would mean to literally re-iterate what’s already documented in this project, given that it relies heavily on this project to work. The code for getting Vert.x to work with Apache SkyWalking is < 1000 LOC so the plugin support itself is not the complicated part. See: Plugin Development Guide

As for the deprecated methods, you should understand that the Vert.x plugin strives to work with the largest range of versions possible so there may be mentions of deprecated (and even removed) functionality within the plugin itself. With that being said, the code you posted is not actually present in the plugin but rather present in the plugin’s test code. Changing that test code wouldn’t fix your issue but actually might break the ability to test versions prior to 3.6.x. I’ll try to remove it but I imagine I’ll end up needing to write an additional test instead.

Because the transform needs some manual works. So, some have been done, some are not. 😁 The progress is tracked in #3583