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

ofbiz框架agent报错 #555

Closed
yeshm opened this issue Oct 27, 2017 · 12 comments
Closed

ofbiz框架agent报错 #555

yeshm opened this issue Oct 27, 2017 · 12 comments
Assignees
Labels
agent Language agent related. bug Something isn't working and you are sure it's a bug!
Milestone

Comments

@yeshm
Copy link

yeshm commented Oct 27, 2017

Please answer these questions before submitting your issue.

What version of sky-walking are you using?

v3.2.3

What version of your OS?

CentOS Linux release 7.4.1708 (Core)

What version of your JRE?

Java(TM) SE Runtime Environment (build 1.8.0_60-b27)

What company or project?

https://github.com/yeshm/mini-ofbiz

What did you do?

If possible, provide a way for reproducing the error. e.g. demo application, component version.

下载项目代码 https://github.com/yeshm/mini-ofbiz

方式一:
修改 tools/startofbiz.sh 在倒数第二行加 VMARGS="$VMARGS -javaagent:/*/skywalking-agent.jar"

在命令行,mini-ofbiz主目录下,运行
1.载入demo数据: ant load-demo
2.启动服务: sh ofbizd.sh start

方式二:
修改 build.xml 在<target name="start">节点添加<jvmarg value="-javaagent:/*/skywalking-agent.jar"/>

在命令行,mini-ofbiz主目录下,运行
1.载入demo数据: ant load-demo
2.启动服务: ant start

访问, 示例程序:localhost:8080/example, 管理工具:localhost:8080/webtools,用户名:admin,密码:ofbiz。

登录后打开会员列表就报错

ERROR 2017-11-06 13:50:02 SkyWalkingAgent : Failed to enhance class org.miniofbiz.common.CommonEvents
java.lang.IllegalStateException: Cannot resolve type description for org.ofbiz.service.engine.GroovyBaseScript
at org.skywalking.apm.dependencies.net.bytebuddy.pool.TypePool$Resolution$Illegal.resolve(TypePool.java:134)
at org.skywalking.apm.dependencies.net.bytebuddy.pool.TypePool$Default$WithLazyResolution$LazyTypeDescription.delegate(TypePool.java:1257)
at org.skywalking.apm.dependencies.net.bytebuddy.description.type.TypeDescription$AbstractBase$OfSimpleType$WithDelegation.getSuperClass(TypeDescription.java:6976)
at org.skywalking.apm.dependencies.net.bytebuddy.description.type.TypeDescription$Generic$OfNonGenericType.getSuperClass(TypeDescription.java:3328)
at org.skywalking.apm.dependencies.net.bytebuddy.description.type.TypeDefinition$SuperClassIterator.next(TypeDefinition.java:277)
at org.skywalking.apm.dependencies.net.bytebuddy.description.type.TypeDefinition$SuperClassIterator.next(TypeDefinition.java:248)
at org.skywalking.apm.dependencies.net.bytebuddy.matcher.HasSuperTypeMatcher.matches(HasSuperTypeMatcher.java:35)
at org.skywalking.apm.dependencies.net.bytebuddy.matcher.HasSuperTypeMatcher.matches(HasSuperTypeMatcher.java:15)
at org.skywalking.apm.dependencies.net.bytebuddy.matcher.ElementMatcher$Junction$Conjunction.matches(ElementMatcher.java:101)
at org.skywalking.apm.dependencies.net.bytebuddy.matcher.ElementMatcher$Junction$Disjunction.matches(ElementMatcher.java:137)
at org.skywalking.apm.dependencies.net.bytebuddy.matcher.ElementMatcher$Junction$Disjunction.matches(ElementMatcher.java:137)
at org.skywalking.apm.dependencies.net.bytebuddy.matcher.ElementMatcher$Junction$Disjunction.matches(ElementMatcher.java:137)
at org.skywalking.apm.dependencies.net.bytebuddy.matcher.ElementMatcher$Junction$Disjunction.matches(ElementMatcher.java:137)
at org.skywalking.apm.dependencies.net.bytebuddy.matcher.ElementMatcher$Junction$Disjunction.matches(ElementMatcher.java:137)
at org.skywalking.apm.dependencies.net.bytebuddy.matcher.ElementMatcher$Junction$Disjunction.matches(ElementMatcher.java:137)
at org.skywalking.apm.dependencies.net.bytebuddy.matcher.ElementMatcher$Junction$Disjunction.matches(ElementMatcher.java:137)
at org.skywalking.apm.dependencies.net.bytebuddy.matcher.ElementMatcher$Junction$Disjunction.matches(ElementMatcher.java:137)
at org.skywalking.apm.dependencies.net.bytebuddy.agent.builder.AgentBuilder$RawMatcher$ForElementMatchers.matches(AgentBuilder.java:1210)
at org.skywalking.apm.dependencies.net.bytebuddy.agent.builder.AgentBuilder$Default$Transformation$Simple.matches(AgentBuilder.java:8771)
at org.skywalking.apm.dependencies.net.bytebuddy.agent.builder.AgentBuilder$Default$Transformation$Simple.resolve(AgentBuilder.java:8782)
at org.skywalking.apm.dependencies.net.bytebuddy.agent.builder.AgentBuilder$Default$Transformation$Compound.resolve(AgentBuilder.java:9019)
at org.skywalking.apm.dependencies.net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.resolve(AgentBuilder.java:9339)
at org.skywalking.apm.dependencies.net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.doTransform(AgentBuilder.java:9306)
at org.skywalking.apm.dependencies.net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:9269)
at org.skywalking.apm.dependencies.net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.access$1300(AgentBuilder.java:9047)
at org.skywalking.apm.dependencies.net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$LegacyVmDispatcher.run(AgentBuilder.java:9625)
at org.skywalking.apm.dependencies.net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$LegacyVmDispatcher.run(AgentBuilder.java:9575)
at java.security.AccessController.doPrivileged(Native Method)
at org.skywalking.apm.dependencies.net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:9194)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at groovy.lang.GroovyClassLoader.access$400(GroovyClassLoader.java:63)
at groovy.lang.GroovyClassLoader$ClassCollector.createClass(GroovyClassLoader.java:500)
at groovy.lang.GroovyClassLoader$ClassCollector.onClassNode(GroovyClassLoader.java:517)
at groovy.lang.GroovyClassLoader$ClassCollector.call(GroovyClassLoader.java:521)
at org.codehaus.groovy.control.CompilationUnit$16.call(CompilationUnit.java:822)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1055)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:591)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:254)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:212)
at org.ofbiz.base.util.GroovyUtil.parseClass(GroovyUtil.java:153)
at org.ofbiz.base.util.GroovyUtil.getScriptClassFromLocation(GroovyUtil.java:125)
at org.ofbiz.webapp.event.GroovyEventHandler.invoke(GroovyEventHandler.java:115)
at org.ofbiz.webapp.control.RequestHandler.runEvent(RequestHandler.java:696)
at org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:421)
at org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:575)
at org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:211)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:317)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke$original$jhZMzH4d(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardWrapperValve.invoke$original$jhZMzH4d$accessor$347o6jgE(StandardWrapperValve.java)
at org.apache.catalina.core.StandardWrapperValve$auxiliary$T3hFwPAr.call(Unknown Source)
at org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInter.intercept(InstMethodsInter.java:92)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

@wu-sheng wu-sheng added the bug Something isn't working and you are sure it's a bug! label Oct 27, 2017
@wu-sheng
Copy link
Member

wu-sheng commented Nov 4, 2017

@yeshm 我周一去验证一下这个问题。你能把你的错误堆栈贴的更完整一点么?

@wu-sheng
Copy link
Member

wu-sheng commented Nov 5, 2017

  1. 已修改tools/startofbiz.sh
    image

  2. 运行ant start启动
    image

并没有发现加入探针参数,探针日志也确实没有信息。@yeshm 请帮我检查一下,哪里设置的有问题?

@yeshm
Copy link
Author

yeshm commented Nov 6, 2017

@wu-sheng 不好意思,我的描述有错。
修改tools/startofbiz.sh后,请使用 sh ofbizd.sh start 启动。

@wu-sheng
Copy link
Member

wu-sheng commented Nov 6, 2017

@yeshm 我在公司的机器是windows的,bat应该如何启动?我修改的startofbiz.bat文件
image

@yeshm
Copy link
Author

yeshm commented Nov 6, 2017

@wu-sheng 已补充完整报错堆栈

@wu-sheng
Copy link
Member

wu-sheng commented Nov 6, 2017

我使用最新的开发版本,发现此异常,

     [java] Warning: Error registering driver names: [org.postgresql.Driver]
     [java] Caused By: java.lang.ClassNotFoundException: org.postgresql.Driver
     [java] com.p6spy.engine.spy.P6DriverNotFoundError: Error registering driver names: [org.postgresql.Driver]
     [java] Caused By: java.lang.ClassNotFoundException: org.postgresql.Driver
     [java]     at com.p6spy.engine.spy.P6ModuleManager.loadDriversExplicitly(P6ModuleManager.java:220)
     [java]     at com.p6spy.engine.spy.P6ModuleManager.<init>(P6ModuleManager.java:130)
     [java]     at com.p6spy.engine.spy.P6ModuleManager.initMe(P6ModuleManager.java:73)
     [java]     at com.p6spy.engine.spy.P6ModuleManager.<clinit>(P6ModuleManager.java:61)
     [java]     at com.p6spy.engine.spy.P6Core.initialize(P6Core.java:54)
     [java]     at com.p6spy.engine.spy.P6SpyDriver.<init>(P6SpyDriver.java:61)
     [java]     at com.p6spy.engine.spy.P6SpyDriver.<clinit>(P6SpyDriver.java:40)
     [java]     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
     [java]     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
     [java]     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
     [java]     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
     [java]     at java.lang.Class.newInstance(Class.java:442)
     [java]     at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
     [java]     at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
     [java]     at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
     [java]     at java.sql.DriverManager$2.run(DriverManager.java:603)
     [java]     at java.sql.DriverManager$2.run(DriverManager.java:583)
     [java]     at java.security.AccessController.doPrivileged(Native Method)
     [java]     at java.sql.DriverManager.loadInitialDrivers(DriverManager.java:583)
     [java]     at java.sql.DriverManager.<clinit>(DriverManager.java:101)
     [java]     at org.apache.derby.jdbc.EmbeddedDriver.boot(Unknown Source)
     [java]     at org.apache.derby.jdbc.EmbeddedDriver.<clinit>(Unknown Source)
     [java]     at java.lang.Class.forName0(Native Method)
     [java]     at java.lang.Class.forName(Class.java:348)
     [java]     at org.ofbiz.entity.connection.DBCPConnectionFactory.getConnection(DBCPConnectionFactory.java:87)
     [java]     at org.ofbiz.entity.jdbc.ConnectionFactory.getManagedConnection(ConnectionFactory.java:121)
     [java]     at org.ofbiz.geronimo.GeronimoTransactionFactory.getConnection(GeronimoTransactionFactory.java:83)
     [java]     at org.ofbiz.entity.transaction.TransactionFactory.getConnection(TransactionFactory.java:82)
     [java]     at org.ofbiz.entity.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:97)
     [java]     at org.ofbiz.entity.jdbc.DatabaseUtil.getConnection(DatabaseUtil.java:135)
     [java]     at org.ofbiz.entity.jdbc.DatabaseUtil.getConnectionLogged(DatabaseUtil.java:155)
     [java]     at org.ofbiz.entity.jdbc.DatabaseUtil.getTableNames(DatabaseUtil.java:977)
     [java]     at org.ofbiz.entity.jdbc.DatabaseUtil.checkDb(DatabaseUtil.java:189)
     [java]     at org.ofbiz.entity.jdbc.DatabaseUtil.checkDb(DatabaseUtil.java:178)
     [java]     at org.ofbiz.entity.datasource.GenericDAO.checkDb(GenericDAO.java:1235)
     [java]     at org.ofbiz.entity.datasource.GenericHelperDAO.checkDataSource(GenericHelperDAO.java:200)
     [java]     at org.ofbiz.entity.GenericDelegator.initializeOneGenericHelper(GenericDelegator.java:286)
     [java]     at org.ofbiz.entity.GenericDelegator.access$000(GenericDelegator.java:87)
     [java]     at org.ofbiz.entity.GenericDelegator$1.call(GenericDelegator.java:297)
     [java]     at org.ofbiz.entity.GenericDelegator$1.call(GenericDelegator.java:295)
     [java]     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
     [java]     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
     [java]     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
     [java]     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
     [java]     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
     [java]     at java.lang.Thread.run(Thread.java:748)
     [java] java.lang.NoClassDefFoundError: Could not initialize class com.p6spy.engine.spy.P6ModuleManager
     [java]     at com.p6spy.engine.spy.P6Core.initialize(P6Core.java:54)
     [java]     at com.p6spy.engine.spy.P6SpyDriver.<init>(P6SpyDriver.java:61)
     [java]     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
     [java]     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
     [java]     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
     [java]     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
     [java]     at java.lang.Class.newInstance(Class.java:442)
     [java]     at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
     [java]     at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
     [java]     at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
     [java]     at java.sql.DriverManager$2.run(DriverManager.java:603)
     [java]     at java.sql.DriverManager$2.run(DriverManager.java:583)
     [java]     at java.security.AccessController.doPrivileged(Native Method)
     [java]     at java.sql.DriverManager.loadInitialDrivers(DriverManager.java:583)
     [java]     at java.sql.DriverManager.<clinit>(DriverManager.java:101)
     [java]     at org.apache.derby.jdbc.EmbeddedDriver.boot(Unknown Source)
     [java]     at org.apache.derby.jdbc.EmbeddedDriver.<clinit>(Unknown Source)
     [java]     at java.lang.Class.forName0(Native Method)
     [java]     at java.lang.Class.forName(Class.java:348)
     [java]     at org.ofbiz.entity.connection.DBCPConnectionFactory.getConnection(DBCPConnectionFactory.java:87)
     [java]     at org.ofbiz.entity.jdbc.ConnectionFactory.getManagedConnection(ConnectionFactory.java:121)
     [java]     at org.ofbiz.geronimo.GeronimoTransactionFactory.getConnection(GeronimoTransactionFactory.java:83)
     [java]     at org.ofbiz.entity.transaction.TransactionFactory.getConnection(TransactionFactory.java:82)
     [java]     at org.ofbiz.entity.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:97)
     [java]     at org.ofbiz.entity.jdbc.DatabaseUtil.getConnection(DatabaseUtil.java:135)
     [java]     at org.ofbiz.entity.jdbc.DatabaseUtil.getConnectionLogged(DatabaseUtil.java:155)
     [java]     at org.ofbiz.entity.jdbc.DatabaseUtil.getTableNames(DatabaseUtil.java:977)
     [java]     at org.ofbiz.entity.jdbc.DatabaseUtil.checkDb(DatabaseUtil.java:189)
     [java]     at org.ofbiz.entity.jdbc.DatabaseUtil.checkDb(DatabaseUtil.java:178)
     [java]     at org.ofbiz.entity.datasource.GenericDAO.checkDb(GenericDAO.java:1235)
     [java]     at org.ofbiz.entity.datasource.GenericHelperDAO.checkDataSource(GenericHelperDAO.java:200)
     [java]     at org.ofbiz.entity.GenericDelegator.initializeOneGenericHelper(GenericDelegator.java:286)
     [java]     at org.ofbiz.entity.GenericDelegator.access$000(GenericDelegator.java:87)
     [java]     at org.ofbiz.entity.GenericDelegator$1.call(GenericDelegator.java:297)
     [java]     at org.ofbiz.entity.GenericDelegator$1.call(GenericDelegator.java:295)
     [java]     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
     [java]     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
     [java]     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
     [java]     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
     [java]     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
     [java]     at java.lang.Thread.run(Thread.java:748)

你是在使用postgre数据库么?默认?

@wu-sheng
Copy link
Member

wu-sheng commented Nov 6, 2017

@yeshm 我在登陆页面,输入用户名和密码后,跳转到:https://localhost:8443/example/control/login;jsessionid=234521E171C0C812F705E7085FAB8ED3.jvm1

被chrome浏览器拦截,这里使用了https协议。

@yeshm
Copy link
Author

yeshm commented Nov 6, 2017

@wu-sheng
org.postgresql.Driver报错应该是引入p6spy,然后p6spy启动的时候去加载驱动的问题。不影响后面使用。
更新代码,暂时不使用p6spy了。

@yeshm
Copy link
Author

yeshm commented Nov 6, 2017

@wu-sheng 劳烦更新下代码,暂不使用https。

@wu-sheng
Copy link
Member

@yeshm I update the codes, and reproduce the error.

I have post the issue to byte-buddy(@raphw) for some clues, let's see what happened.

@yeshm
Copy link
Author

yeshm commented Nov 13, 2017

@wu-sheng Thanks!

@wu-sheng
Copy link
Member

@yeshm #706 helps to solve this by skipping the can't resolved type.

@wu-sheng wu-sheng added the agent Language agent related. label Feb 8, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
agent Language agent related. bug Something isn't working and you are sure it's a bug!
Projects
None yet
Development

No branches or pull requests

3 participants