{
  "ticket": "U39 #76",
  "status": "passed",
  "startedAt": "2026-10-30T16:05:33.182044+08:00",
  "input": "python3 labs/zookeeper/run.py",
  "exitCode": 0,
  "environment": {
    "os": "macOS-27.2-arm64-arm-64bit",
    "arch": "arm64",
    "jdk": "openjdk version \"17.0.19\" 2026-04-21 LTS",
    "maven": "Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)",
    "dependencies": {
      "org.apache.zookeeper:zookeeper": "3.9.6",
      "org.apache.zookeeper:zookeeper-jute": "3.9.6",
      "org.apache.yetus:audience-annotations": "0.12.0",
      "io.netty:netty-handler": "4.1.137.Final",
      "io.netty:netty-common": "4.1.137.Final",
      "io.netty:netty-resolver": "4.1.137.Final",
      "io.netty:netty-buffer": "4.1.137.Final",
      "io.netty:netty-transport": "4.1.137.Final",
      "io.netty:netty-transport-native-unix-common": "4.1.137.Final",
      "io.netty:netty-codec": "4.1.137.Final",
      "commons-io:commons-io": "2.17.0",
      "org.apache.curator:curator-test": "5.7.0",
      "io.dropwizard.metrics:metrics-core": "3.2.5",
      "org.xerial.snappy:snappy-java": "1.1.10.4",
      "com.google.guava:guava": "32.0.0-jre",
      "com.google.guava:failureaccess": "1.0.1",
      "com.google.guava:listenablefuture": "9999.0-empty-to-avoid-conflict-with-guava",
      "com.google.code.findbugs:jsr305": "3.0.2",
      "org.checkerframework:checker-qual": "3.33.0",
      "com.google.errorprone:error_prone_annotations": "2.18.0",
      "com.google.j2objc:j2objc-annotations": "2.8",
      "org.junit.jupiter:junit-jupiter": "6.0.3",
      "org.junit.jupiter:junit-jupiter-api": "6.0.3",
      "org.opentest4j:opentest4j": "1.3.0",
      "org.junit.platform:junit-platform-commons": "6.0.3",
      "org.apiguardian:apiguardian-api": "1.1.2",
      "org.jspecify:jspecify": "1.0.0",
      "org.junit.jupiter:junit-jupiter-params": "6.0.3",
      "org.junit.jupiter:junit-jupiter-engine": "6.0.3",
      "org.junit.platform:junit-platform-engine": "6.0.3",
      "org.slf4j:slf4j-api": "2.0.20",
      "org.slf4j:slf4j-simple": "2.0.20"
    }
  },
  "observed": [
    "U39 acl=PASS unauth=NOAUTH wrong=NOAUTH digest=READ",
    "U39 watch=PASS notifications=1 reread=v2",
    "U39 session=PASS reconnect=same local-expired-before-restart=true post-restart-ephemeral=deleted",
    "U39 quorum=PASS one-loss-write=majority recovered-node-read=recovered",
    "U39 cleanup=PASS tempRoot=removed"
  ],
  "results": [
    {
      "name": "jdk",
      "command": [
        "java",
        "-version"
      ],
      "exitCode": 0,
      "log": "<user-home>/.cache/software-engineering-study/java-depth-impl/u39/run-mr5288iv/jdk.log",
      "logSha256": "7ce878aa2d38e7df9ddaaf70dd520e1c390e733af50945cf6893b4bec080abc1"
    },
    {
      "name": "maven",
      "command": [
        "<user-home>/develop/maven-3.9.9/bin/mvn",
        "-version"
      ],
      "exitCode": 0,
      "log": "<user-home>/.cache/software-engineering-study/java-depth-impl/u39/run-mr5288iv/maven.log",
      "logSha256": "82718d99df276f04e045756fb5a0f299f0135ef7354edb93af581c7791d75e23"
    },
    {
      "name": "test",
      "command": [
        "<user-home>/develop/maven-3.9.9/bin/mvn",
        "-o",
        "-B",
        "-ntp",
        "-q",
        "-f",
        "<user-home>/Documents/面试/software-engineering-study/labs/zookeeper/pom.xml",
        "-Du39.temp.root=<user-home>/.cache/software-engineering-study/java-depth-impl/u39/run-mr5288iv/cluster-data",
        "clean",
        "test",
        "-DfailIfNoTests=true"
      ],
      "exitCode": 0,
      "log": "<user-home>/.cache/software-engineering-study/java-depth-impl/u39/run-mr5288iv/test.log",
      "logSha256": "5b61b1be6136b8f840069fe75d23773ff8a321d85a724d99c9d576f3f0a84add"
    },
    {
      "name": "dependencies",
      "command": [
        "<user-home>/develop/maven-3.9.9/bin/mvn",
        "-o",
        "-B",
        "-ntp",
        "-q",
        "-f",
        "<user-home>/Documents/面试/software-engineering-study/labs/zookeeper/pom.xml",
        "-Du39.temp.root=<user-home>/.cache/software-engineering-study/java-depth-impl/u39/run-mr5288iv/cluster-data",
        "dependency:list",
        "-DincludeScope=test",
        "-DappendOutput=false",
        "-DoutputFile=<user-home>/.cache/software-engineering-study/java-depth-impl/u39/run-mr5288iv/dependencies.txt"
      ],
      "exitCode": 0,
      "log": "<user-home>/.cache/software-engineering-study/java-depth-impl/u39/run-mr5288iv/dependencies.log",
      "logSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
    }
  ],
  "artifacts": {
    "pom.xml": "cce96c3b1898d47a146783b0366a9356c8ec6a3a8ada1a2389b19e7f9dd8eddc",
    "run.py": "0aa6978cdf22b214f062dfa1f6fe4e97d68a510ada377bd6cd60a9f52840be26",
    "README.md": "5541f692ceed18baf4f27a261adad9135f83d2ef4fa4c0b81816bb4a1a05b598",
    "src/test/java/study/zookeeper/ZooKeeperClusterTest.java": "6626584f3ec2d191961b470c3b9e3129cb80e0325d451675fe608b8ebd80d15d"
  },
  "cleanup": "Java 断言与 runner 均确认本次进程和专用 dataDir 已删除",
  "limits": [
    "真实 ZooKeeper 3.9.6 三投票节点运行在同一个 JDK 17 测试 JVM 和同一台主机",
    "服务仅绑定本机随机端口；未模拟跨主机网络分区、磁盘损坏、跨地域延迟或生产容量",
    "Curator TestingCluster 只负责测试进程生命周期，不把 Curator 配方行为冒充 ZooKeeper 原生契约"
  ],
  "logs": "<user-home>/.cache/software-engineering-study/java-depth-impl/u39/run-mr5288iv",
  "testCount": 5,
  "testReport": {
    "name": "study.zookeeper.ZooKeeperClusterTest",
    "tests": "5",
    "failures": "0",
    "errors": "0",
    "skipped": "0",
    "time": "18.15",
    "testNames": [
      "aclRejectsUnauthenticatedAndWrongDigest",
      "oneShotWatchRequiresReregistration",
      "disconnectedSessionCanReconnectAndLocalExpiryPrecedesServerCleanup",
      "majoritySurvivesOneServerLossAndRecovers",
      "refusesUnownedCleanupRoot"
    ]
  },
  "finishedAt": "2026-10-30T16:05:55.187890+08:00"
}
