dragonwell-project / dragonwell8

Alibaba Dragonwell8 JDK
http://dragonwell-jdk.io
GNU General Public License v2.0
4.21k stars 496 forks source link

[Bug] Enable Wisp2 causes java.lang.IncompatibleClassChangeError #317

Open TeslaCN opened 2 years ago

TeslaCN commented 2 years ago

Description A clear and concise description of what the bug is.

Steps to Reproduce Steps to reproduce the behavior:

  1. Prepare Apache ShardingSphere-Proxy 5.1.1
  2. Start ShardingSphere-Proxy with VM options '....' /home/wuweijie/.jdks/dragonwell-8.10.11/bin/java -XX:+UnlockExperimentalVMOptions -XX:+UseWisp2 -Dcom.alibaba.wisp.threadAsWisp.black=name:epollEventLoopGroup*
  3. See error

No error occurred after disabled wisp2.

I can't understand why the following line will occur this error.

image

Exception in thread "Connection-22-ThreadExecutor" java.lang.IncompatibleClassChangeError
        at org.opengauss.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:362)
        at org.opengauss.jdbc.PgStatement.executeInternal(PgStatement.java:453)
        at org.opengauss.jdbc.PgStatement.execute(PgStatement.java:377)
        at org.opengauss.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:149)
        at org.opengauss.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:138)
        at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
        at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
        at org.apache.shardingsphere.proxy.backend.communication.jdbc.executor.callback.impl.ProxyPreparedStatementExecutorCallback.execute(ProxyPreparedStatementExecutorCallback.java:41)
        at org.apache.shardingsphere.proxy.backend.communication.jdbc.executor.callback.ProxyJDBCExecutorCallback.executeSQL(ProxyJDBCExecutorCallback.java:73)
        at org.apache.shardingsphere.proxy.backend.communication.jdbc.executor.callback.ProxyJDBCExecutorCallback.executeSQL(ProxyJDBCExecutorCallback.java:66)
        at org.apache.shardingsphere.proxy.backend.communication.jdbc.executor.callback.ProxyJDBCExecutorCallback.executeSQL(ProxyJDBCExecutorCallback.java:44)
        at org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback.execute(JDBCExecutorCallback.java:85)
        at org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback.execute(JDBCExecutorCallback.java:64)
        at org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine.syncExecute(ExecutorEngine.java:101)
        at org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine.serialExecute(ExecutorEngine.java:87)
        at org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine.execute(ExecutorEngine.java:81)
        at org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutor.execute(JDBCExecutor.java:65)
        at org.apache.shardingsphere.proxy.backend.communication.jdbc.executor.ProxyJDBCExecutor.execute(ProxyJDBCExecutor.java:71)
        at org.apache.shardingsphere.proxy.backend.communication.ProxySQLExecutor.useDriverToExecute(ProxySQLExecutor.java:164)
        at org.apache.shardingsphere.proxy.backend.communication.ProxySQLExecutor.execute(ProxySQLExecutor.java:125)
        at org.apache.shardingsphere.proxy.backend.communication.ProxySQLExecutor.execute(ProxySQLExecutor.java:119)
        at org.apache.shardingsphere.proxy.backend.communication.jdbc.JDBCDatabaseCommunicationEngine.execute(JDBCDatabaseCommunicationEngine.java:138)
        at org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.JDBCPortal.bind(JDBCPortal.java:131)
        at org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.bind.PostgreSQLComBindExecutor.execute(PostgreSQLComBindExecutor.java:54)
        at org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.PostgreSQLAggregatedCommandExecutor.execute(PostgreSQLAggregatedCommandExecutor.java:41)
        at org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask.executeCommand(CommandExecutorTask.java:107)
        at org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask.run(CommandExecutorTask.java:77)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:855)
        at com.alibaba.wisp.engine.WispTask.runOutsideWisp(WispTask.java:299)
        at com.alibaba.wisp.engine.WispTask.runCommand(WispTask.java:274)
        at com.alibaba.wisp.engine.WispTask.access$100(WispTask.java:53)
        at com.alibaba.wisp.engine.WispTask$CacheableCoroutine.run(WispTask.java:241)
        at java.dyn.CoroutineBase.startInternal(CoroutineBase.java:62)

Expected behavior A clear and concise description of what you expected to happen.

No error occurs.

JDK version The output of java -version command

~ ᐅ .jdks/dragonwell-8.10.11/bin/java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (Alibaba Dragonwell 8.10.11) (build 1.8.0_322-b01)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell 8.10.11) (build 25.322-b01, mixed mode)

Execution environment

lusou-zhangquan commented 2 years ago

Seems to be associated with wisp feature, could you please take a look? @yuleil