dragonwell-project / dragonwell8

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

[Bug] eagerappcds 与transmittable-thread-local的 agent 无法兼容 #632

Open CodeWeaver13 opened 2 months ago

CodeWeaver13 commented 2 months ago

Description eagerappcds 在 trace 阶段正常,replay 阶段会出现Bootstrap loader class path中期望的 jar 顺序与实际顺序不一致的情况。

JDK version openjdk version "1.8.0_402" OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition 8.18.19) (build 1.8.0_402-b01) OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition 8.18.19) (build 25.402-b01, mixed mode)


java -server -javaagent:/transmittable-thread-local-2.13.0-SNAPSHOT.jar -XX:-OmitStackTraceInFastThrow -XX:+TraceClassPaths -Xquickstart:path=/root/alibaba.quickstart.sharedcache  -Xquickstart:verbose -Dzeusrpc-appkey=moqipobing.wanba.report -Dwb.appname=report -Dserver.port=80 -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Dmicroserver.host=0.0.0.0 -Dmicroserver.port=80 -Dlog4j.log.dir=80 -Dmicroserver.maxThreads=400 -Dmicroserver.minThreads=50 -Dmicroserver.queueCapacity=12000 -Dmicroserver.queueGrowBy=100 -Dfastjson.parser.safeMode=true -Dwb.env=develop -jar /tmp/test.jar
[classpath: /tmp/test.jar]
cache path is set from -Xquickstart:path=/root/alibaba.quickstart.sharedcache
Running as replayer
[Bootstrap loader class path=/jw/dragonwell-8.18.19/jre/lib/resources.jar:/jw/dragonwell-8.18.19/jre/lib/rt.jar:/jw/dragonwell-8.18.19/jre/lib/sunrsasign.jar:/jw/dragonwell-8.18.19/jre/lib/jsse.jar:/jw/dragonwell-8.18.19/jre/lib/jce.jar:/jw/dragonwell-8.18.19/jre/lib/charsets.jar:/jw/dragonwell-8.18.19/jre/lib/jfr.jar:/jw/dragonwell-8.18.19/jre/classes:/jw/dragonwell-8.18.19/jre/lib/amd64/serverless/serverless-adapter.jar:/transmittable-thread-local-2.13.0-SNAPSHOT.jar]
[type=BOOT Expecting -Dsun.boot.class.path=/jw/dragonwell-8.18.19/jre/lib/resources.jar:/jw/dragonwell-8.18.19/jre/lib/rt.jar:/jw/dragonwell-8.18.19/jre/lib/sunrsasign.jar:/jw/dragonwell-8.18.19/jre/lib/jsse.jar:/jw/dragonwell-8.18.19/jre/lib/jce.jar:/jw/dragonwell-8.18.19/jre/lib/charsets.jar:/jw/dragonwell-8.18.19/jre/lib/jfr.jar:/jw/dragonwell-8.18.19/jre/classes:/jw/dragonwell-8.18.19/jre/lib/amd64/serverless/serverless-adapter.jar]
[BOOT classpath mismatch, actual: -Dsun.boot.class.path=/jw/dragonwell-8.18.19/jre/lib/resources.jar:/jw/dragonwell-8.18.19/jre/lib/rt.jar:/jw/dragonwell-8.18.19/jre/lib/sunrsasign.jar:/jw/dragonwell-8.18.19/jre/lib/jsse.jar:/jw/dragonwell-8.18.19/jre/lib/jce.jar:/jw/dragonwell-8.18.19/jre/lib/charsets.jar:/jw/dragonwell-8.18.19/jre/lib/jfr.jar:/jw/dragonwell-8.18.19/jre/classes:/jw/dragonwell-8.18.19/jre/lib/amd64/serverless/serverless-adapter.jar:/transmittable-thread-local-2.13.0-SNAPSHOT.jar]
An error has occurred while processing the shared archive file.
shared class paths mismatch (hint: enable -XX:+TraceClassPaths to diagnose the failure)
Error occurred during initialization of VM
Unable to use shared archive.
CodeWeaver13 commented 2 months ago

对启动信息提取后发现 quickstart 对 ttl 无法正常生成shared_classpath_index


FIXME shared_classpath_index is wrong: com.alibaba.ttl.TransmittableThreadLocal 0
FIXME shared_classpath_index is wrong: com.alibaba.ttl.TransmittableThreadLocal 0
FIXME shared_classpath_index is wrong: sun.security.ec.SunEC -1
FIXME shared_classpath_index is wrong: sun.security.ec.SunEC -1
[Opened /jw/dragonwell-8.18.19/jre/lib/jsse.jar]
[Opened /jw/dragonwell-8.18.19/jre/lib/jce.jar]
FIXME shared_classpath_index is wrong: sun.security.ec.SunEC$1 -1
FIXME shared_classpath_index is wrong: sun.security.ec.SunECEntries -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.SunJCE -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.SunJCE -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.SunJCE$1 -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.AESCipher$General -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.AESCipher -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.SymmetricCipher -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.AESCrypt -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.AESConstants -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.CipherCore -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.FeedbackCipher -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.ElectronicCodeBook -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.Padding -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.CipherBlockChaining -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.CipherTextStealing -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.CounterMode -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.GaloisCounterMode -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.CipherFeedback -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.OutputFeedback -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.PCBC -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.PKCS5Padding -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.GCTR -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.GHASH -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.RangeUtil -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.Preconditions -1
FIXME shared_classpath_index is wrong: com.sun.crypto.provider.Preconditions$1 -1