{
  "ticket": "U38 #75 SAGA",
  "status": "passed",
  "startedAt": "2026-10-30T14:10:16.106812+08:00",
  "exitCode": 0,
  "artifactSha256": {
    "labs/seata-saga/run.py": "20ca197b39dce6e92da36546eed9b68dbacdd9d934401a2e0dd22b46565cd9c0",
    "labs/seata-saga/pom.xml": "3a9a83b5a6b5184af7a182446c01fd1e6c3658f4d354ade68f2cba5b11751243",
    "labs/seata-saga/README.md": "dc1d30bafc2afe62f33c902c55152fd99ac9503ed61d18b535e29f44916e9ad1",
    "labs/seata-saga/src/test/java/study/saga/ExpectedFailure.java": "76c5e04b727dcf4171fff3c46b33130127ba1c15ce4d37b1f3ba501c7c9ccd06",
    "labs/seata-saga/src/test/java/study/saga/InventoryService.java": "22a558f21701e060fe6146ac1dbdd20545984e40de87c29d846c07f6d690108b",
    "labs/seata-saga/src/test/java/study/saga/SagaFixture.java": "dd856b9a9f571d0cfc86b01ab4f4d113aa184545b57bfae6f65a8d9b37f15a1a",
    "labs/seata-saga/src/test/java/study/saga/SagaLabTest.java": "2204349a42fb9061f965530cc8e8db9c59e2823a8dd6cd593849c2a7a969414d",
    "labs/seata-saga/src/test/resources/file.conf": "9bed8af54eef4e435a2694c865ff61a4d08a3ad322ee2ac67a14a7cb68ee1f36",
    "labs/seata-saga/src/test/resources/registry.conf": "15b78d12a2a140d09327413d72e68e5dc8a26c885272351072ea96dcf144c597",
    "labs/seata-saga/src/test/resources/saga/statelang/u38-saga.json": "1af24b93ea85e05ca6d298982a8afd1de9f40f63284760a9f78f8e4bdf1ba4a9",
    "labs/seata-saga/src/test/resources/saga-context.xml": "4bb564b2af9f0ef0810da1e65cc5f2eff1b4ee6deb479463255041d4853b9aed",
    "labs/seata-saga/src/test/resources/sql/saga-mysql.sql": "b22be743004427ac13c9125e4bd2c8939ec92ccf337d2fdb5690359a0f39d48d",
    "labs/seata-saga/src/test/resources/sql/seata-server-mysql.sql": "8ddb7d0294e703de7f07e988e6951f96d30413fefa77028ae6112640631922c7",
    "labs/seata/loopback/LoopbackAgent.java": "e721d75a39eaf22c531b4824a462ccdb5d7feb45816999cc1bdb6878041c95e0",
    "labs/seata/loopback/build.py": "49636551e294a40717809dcf63e920b814f473008331e609868746a298b6da51",
    "labs/seata/loopback/build.sh": "30326f8ca2439ad5a8791a532c3a30a1ae5bf58d180262b48a96b06b77801795"
  },
  "commands": [
    {
      "stage": "offline-test-compile",
      "exitCode": 0,
      "tail": "Picked up JAVA_TOOL_OPTIONS: -Xms32m -Xmx192m -XX:ActiveProcessorCount=2 -Dio.netty.eventLoopThreads=2\n[INFO] Scanning for projects...\n[INFO] \n[INFO] ---------------------< study.seata:seata-saga-lab >---------------------\n[INFO] Building seata-saga-lab u38\n[INFO]   from pom.xml\n[INFO] --------------------------------[ jar ]---------------------------------\n[INFO] \n[INFO] --- resources:3.2.0:resources (default-resources) @ seata-saga-lab ---\n[INFO] Using 'UTF-8' encoding to copy filtered resources.\n[INFO] Using 'UTF-8' encoding to copy filtered properties files.\n[INFO] skip non existing resourceDirectory <local-path>\n[INFO] skip non existing resourceDirectory <local-path>\n[INFO] \n[INFO] --- compiler:3.10.1:compile (default-compile) @ seata-saga-lab ---\n[INFO] No sources to compile\n[INFO] \n[INFO] --- resources:3.2.0:testResources (default-testResources) @ seata-saga-lab ---\n[INFO] Using 'UTF-8' encoding to copy filtered resources.\n[INFO] Using 'UTF-8' encoding to copy filtered properties files.\n[INFO] Copying 6 resources\n[INFO] \n[INFO] --- compiler:3.10.1:testCompile (default-testCompile) @ seata-saga-lab ---\n[INFO] Nothing to compile - all classes are up to date\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time:  0.451 s\n[INFO] Finished at: 2026-10-30T14:10:17+08:00\n[INFO] ------------------------------------------------------------------------\n"
    },
    {
      "stage": "offline-dependency-tree",
      "exitCode": 0,
      "tail": "Picked up JAVA_TOOL_OPTIONS: -Xms32m -Xmx192m -XX:ActiveProcessorCount=2 -Dio.netty.eventLoopThreads=2\n[INFO] Scanning for projects...\n[INFO] \n[INFO] ---------------------< study.seata:seata-saga-lab >---------------------\n[INFO] Building seata-saga-lab u38\n[INFO]   from pom.xml\n[INFO] --------------------------------[ jar ]---------------------------------\n[INFO] \n[INFO] --- dependency:3.3.0:tree (default-cli) @ seata-saga-lab ---\n[INFO] Wrote dependency tree to: <temporary-path>\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time:  0.719 s\n[INFO] Finished at: 2026-10-30T14:10:18+08:00\n[INFO] ------------------------------------------------------------------------\n"
    },
    {
      "stage": "test",
      "exitCode": 0,
      "tail": "EBUG org.apache.seata.config.FileConfiguration - Could not found property transport.minServerPoolSize, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property client.rm.asyncCommitBufferLimit, try to use default value instead. exception:No configuration setting found for key 'client.rm.asyncCommitBufferLimit'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.threadFactory.clientSelectorThreadPrefix, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.maxTaskQueueSize, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property client.rm.applicationDataLimit, try to use default value instead. exception:No configuration setting found for key 'client.rm.applicationDataLimit'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.maxServerPoolSize, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.server, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property accesskey, try to use default value instead. exception:No configuration setting found for key 'accesskey'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property client.rm.applicationDataLimitCheck, try to use default value instead. exception:No configuration setting found for key 'client.rm.applicationDataLimitCheck'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.enableClientBatchSendRequest, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property client.rm.reportSuccessEnable, try to use default value instead. exception:No configuration setting found for key 'client.rm.reportSuccessEnable'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property client.tm.commitRetryCount, try to use default value instead. exception:No configuration setting found for key 'client.tm.commitRetryCount'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.httpPoolKeepAliveTime, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.rpcTmRequestTimeout, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.maxHttpPoolSize, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.enableTmClientChannelCheckFailFast, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.346 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.threadFactory.shareBossWorker, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.347 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.threadFactory.workerThreadPrefix, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.347 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.keepAliveTime, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.347 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.type, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.347 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.serialization, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.347 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.heartbeat, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.347 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property client.rm.sagaCompensatePersistModeUpdate, try to use default value instead. exception:No configuration setting found for key 'client.rm.sagaCompensatePersistModeUpdate'\n14:10:32.347 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property txServiceGroup, try to use default value instead. exception:No configuration setting found for key 'txServiceGroup'\n14:10:32.347 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property client.rm.sagaBranchRegisterEnable, try to use default value instead. exception:No configuration setting found for key 'client.rm.sagaBranchRegisterEnable'\n14:10:32.347 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.enableTcServerBatchSendResponse, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.347 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.compressor, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.347 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.rpcRmRequestTimeout, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.347 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.threadFactory.workerThreadSize, try to use default value instead. exception:No configuration setting found for key 'transport'\n14:10:32.347 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property applicationId, try to use default value instead. exception:No configuration setting found for key 'applicationId'\n14:10:32.347 [configOperate_2_1_2] DEBUG org.apache.seata.config.FileConfiguration - Could not found property transport.threadFactory.bossThreadPrefix, try to use default value instead. exception:No configuration setting found for key 'transport'\n[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 12.567 s - in study.saga.SagaLabTest\n[INFO] \n[INFO] Results:\n[INFO] \n[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0\n[INFO] \n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time:  13.623 s\n[INFO] Finished at: 2026-10-30T14:10:33+08:00\n[INFO] ------------------------------------------------------------------------\n"
    }
  ],
  "observed": [
    "U38_SAGA normal=PASS",
    "U38_SAGA compensationFailure=PASS",
    "U38_SAGA manualRecovery=PASS"
  ],
  "limits": [
    "固定 2.5.0 的 TC 单机进程；agent 仅将监听改为回环",
    "同一 JVM 手动 compensate 并从数据库 reload，不证明跨进程自动恢复",
    "sagaBranchRegisterEnable=false；不证明已向 TC 注册 SAGA 分支",
    "正常/失败/恢复为有界合成业务与本机 MySQL，不代表生产或跨机器结果"
  ],
  "runtimeJars": {
    "seataJarsSha256": {
      "target/seata-server.jar": "1eee5700a5651ca6bedb4b36a3c10287244488d6cb0dbb00c60c17fd026c945a",
      "lib/seata-core-2.5.0.jar": "6000b0640a4c0a74614b5e2bd785e1a45a91793af98c93e9307ce05b8f1b1d40",
      "lib/asm-6.0.jar": "dd8971c74a4e697899a8e95caae4ea8760ea6c486dc6b97b1795e75760420461"
    },
    "mysqlDriverSha256": "0353648eaa1c91e0f4020c959abf756bc866ffd583df22ae6b6f6e0cbd43eb44",
    "limits": "仅校验列出 JAR 和驱动，未认证完整发行包其他文件"
  },
  "mysqlVersion": "8.4.7",
  "jdk": "Picked up JAVA_TOOL_OPTIONS: -Xms32m -Xmx192m -XX:ActiveProcessorCount=2 -Dio.netty.eventLoopThreads=2\nopenjdk version \"21.0.11\" 2026-04-21 LTS\nOpenJDK Runtime Environment (build 21.0.11+11-LTS)\nOpenJDK 64-Bit Server VM (build 21.0.11+11-LTS, mixed mode, sharing)",
  "resolvedDependencies": {
    "org.apache.seata:seata-saga-spring": "2.5.0",
    "org.apache.seata:seata-saga-engine": "2.5.0",
    "org.apache.seata:seata-saga-statelang": "2.5.0",
    "org.apache.seata:seata-saga-engine-store": "2.5.0",
    "org.apache.seata:seata-saga-processctrl": "2.5.0",
    "org.apache.seata:seata-tm": "2.5.0",
    "org.apache.seata:seata-saga-rm": "2.5.0",
    "org.apache.seata:seata-core": "2.5.0",
    "org.apache.seata:seata-discovery-core": "2.5.0",
    "org.apache.seata:seata-config-core": "2.5.0",
    "org.apache.seata:seata-rm": "2.5.0",
    "org.springframework:spring-context": "5.3.31",
    "org.apache.seata:seata-common": "2.5.0",
    "org.apache.seata:seata-all": "2.5.0",
    "com.mysql:mysql-connector-j": "9.7.0",
    "com.fasterxml.jackson.core:jackson-databind": "2.13.5"
  },
  "testNames": [
    "failedCompensationRemainsVisibleThenManualRetryRestores",
    "normalPathPersistsBusinessAndState"
  ],
  "surefireSha256": "86378a20a5204a38237fef4e8cb72e9823ba629f19e75d9a7c6d453f213bb6b2",
  "listener": "已用 lsof 核验实验 TC PID 仅在 127.0.0.1:18091 监听",
  "cleanup": "已核验本次数据库及临时目录清理，TC 端口空闲",
  "finishedAt": "2026-10-30T14:10:33.180874+08:00"
}
