Mock Version: 4.1 Mock Version: 4.1 Mock Version: 4.1 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target aarch64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'], chrootPath='/var/lib/mock/dist-oc9-epol-build-103047-66130/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=991gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target aarch64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: aarch64 Building for target aarch64 Wrote: /builddir/build/SRPMS/golang-github-google-trillian-1.4.2-1.oc9.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target aarch64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'], chrootPath='/var/lib/mock/dist-oc9-epol-build-103047-66130/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=991gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target aarch64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: aarch64 Building for target aarch64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.2roAVm + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf trillian-1.4.2 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/trillian-1.4.2.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd trillian-1.4.2 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + rm -fr /builddir/build/BUILD/trillian-1.4.2/vendor + [[ ! -e /builddir/build/BUILD/trillian-1.4.2/_build/bin ]] + install -m 0755 -vd /builddir/build/BUILD/trillian-1.4.2/_build/bin install: creating directory '/builddir/build/BUILD/trillian-1.4.2/_build' install: creating directory '/builddir/build/BUILD/trillian-1.4.2/_build/bin' + export GOPATH=/builddir/build/BUILD/trillian-1.4.2/_build:/usr/share/gocode + GOPATH=/builddir/build/BUILD/trillian-1.4.2/_build:/usr/share/gocode + [[ ! -e /builddir/build/BUILD/trillian-1.4.2/_build/src/github.com/google/trillian ]] ++ dirname /builddir/build/BUILD/trillian-1.4.2/_build/src/github.com/google/trillian + install -m 0755 -vd /builddir/build/BUILD/trillian-1.4.2/_build/src/github.com/google install: creating directory '/builddir/build/BUILD/trillian-1.4.2/_build/src' install: creating directory '/builddir/build/BUILD/trillian-1.4.2/_build/src/github.com' install: creating directory '/builddir/build/BUILD/trillian-1.4.2/_build/src/github.com/google' + ln -fs /builddir/build/BUILD/trillian-1.4.2 /builddir/build/BUILD/trillian-1.4.2/_build/src/github.com/google/trillian + cd /builddir/build/BUILD/trillian-1.4.2/_build/src/github.com/google/trillian + tar -xzf /builddir/build/SOURCES/vendor.tar.gz + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.HYBn8Z + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.2 + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/golang-github-google-trillian-1.4.2-1.oc9.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target aarch64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'], chrootPath='/var/lib/mock/dist-oc9-epol-build-103047-66130/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=991gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target aarch64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: aarch64 Building for target aarch64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.kd00aI + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.2 + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.WpcJ1q + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64 ++ dirname /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64 + cd trillian-1.4.2 + cd /builddir/build/BUILD/trillian-1.4.2/_build/src/github.com/google/trillian + IFS= + gosupfiles= + mapfile -t gosupfilesA + go-rpm-integration install -i github.com/google/trillian -b /builddir/build/BUILD/trillian-1.4.2/_build/bin -s /builddir/build/BUILD/trillian-1.4.2/_build -o golang-github-google-trillian-devel.file-list -O /builddir/build/BUILD/trillian-1.4.2 -V 1.4.2-1.oc9 -p /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64 -g /usr/share/gocode -r '.*example.*' Installing: github.com/google/trillian + IFS= +++ realpath -e --relative-base=. docs examples CONTRIBUTING.md AUTHORS CHANGELOG.md CONTRIBUTORS README.md +++ sort -u ++ listfiles_include='AUTHORS CHANGELOG.md CONTRIBUTING.md CONTRIBUTORS README.md docs examples' ++ echo 'AUTHORS CHANGELOG.md CONTRIBUTING.md CONTRIBUTORS README.md docs examples' + godocs='AUTHORS CHANGELOG.md CONTRIBUTING.md CONTRIBUTORS README.md docs examples' + [[ -n AUTHORS CHANGELOG.md CONTRIBUTING.md CONTRIBUTORS README.md docs examples ]] + IFS= + read -r f + echo %doc '"AUTHORS"' + IFS= + read -r f + echo %doc '"CHANGELOG.md"' + IFS= + read -r f + echo %doc '"CONTRIBUTING.md"' + IFS= + read -r f + echo %doc '"CONTRIBUTORS"' + IFS= + read -r f + echo %doc '"README.md"' + IFS= + read -r f + echo %doc '"docs"' + IFS= + read -r f + echo %doc '"examples"' + IFS= + read -r f + IFS= +++ realpath -e --relative-base=. LICENSE +++ sort -u ++ listfiles_include=LICENSE ++ echo LICENSE + golicenses=LICENSE + [[ -n LICENSE ]] + IFS= + read -r f + echo %license '"LICENSE"' + IFS= + read -r f + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/OpenCloudOS/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip /usr/bin/strip + /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump + /usr/lib/rpm/OpenCloudOS/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/OpenCloudOS/brp-mangle-shebangs + /usr/lib/rpm/OpenCloudOS/brp-python-bytecompile '' 1 0 + /usr/lib/rpm/OpenCloudOS/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.iilxQz + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.2 + GO_LDFLAGS=' -X github.com/google/trillian/version=1.4.2' + GO_TEST_FLAGS='-buildmode pie -compiler gc' + GO_TEST_EXT_LD_FLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-ld -Wl,--build-id=sha1 ' + go-rpm-integration check -i github.com/google/trillian -b /builddir/build/BUILD/trillian-1.4.2/_build/bin -s /builddir/build/BUILD/trillian-1.4.2/_build -V 1.4.2-1.oc9 -p /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64 -g /usr/share/gocode -r '.*example.*' -d client/rpcflags -t cmd -d server -d storage/testdb -d util/election -d quota/redis/redistb -d crypto Testing in: /builddir/build/BUILD/trillian-1.4.2/_build/src PATH: /builddir/build/BUILD/trillian-1.4.2/_build/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin GOPATH: /builddir/build/BUILD/trillian-1.4.2/_build:/usr/share/gocode GO111MODULE: off command: go test -buildmode pie -compiler gc -ldflags " -X github.com/google/trillian/version=1.4.2 -extldflags '-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-ld -Wl,--build-id=sha1 '" testing: github.com/google/trillian github.com/google/trillian ? github.com/google/trillian [no test files] github.com/google/trillian/client 2024/09/21 00:42:25 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:42:25 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:42:25 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:42:25 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/client 0.008s github.com/google/trillian/client 2024/09/21 00:42:25 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:42:25 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:42:25 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:42:25 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/client 0.008s github.com/google/trillian/client/backoff PASS ok github.com/google/trillian/client/backoff 3.613s github.com/google/trillian/client/backoff PASS ok github.com/google/trillian/client/backoff 3.616s github.com/google/trillian/crypto/keys PASS ok github.com/google/trillian/crypto/keys 0.006s github.com/google/trillian/crypto/keys PASS ok github.com/google/trillian/crypto/keys 0.006s github.com/google/trillian/crypto/keys/der PASS ok github.com/google/trillian/crypto/keys/der 0.009s github.com/google/trillian/crypto/keys/der PASS ok github.com/google/trillian/crypto/keys/der 0.004s github.com/google/trillian/crypto/keys/pem PASS ok github.com/google/trillian/crypto/keys/pem 0.017s github.com/google/trillian/crypto/keys/pem PASS ok github.com/google/trillian/crypto/keys/pem 0.013s github.com/google/trillian/crypto/keys/pkcs11 ? github.com/google/trillian/crypto/keys/pkcs11 [no test files] github.com/google/trillian/crypto/keys/testonly ? github.com/google/trillian/crypto/keys/testonly [no test files] github.com/google/trillian/crypto/keyspb ? github.com/google/trillian/crypto/keyspb [no test files] github.com/google/trillian/docs/storage/commit_log/signer PASS ok github.com/google/trillian/docs/storage/commit_log/signer 0.003s github.com/google/trillian/docs/storage/commit_log/signer PASS ok github.com/google/trillian/docs/storage/commit_log/signer 0.003s github.com/google/trillian/docs/storage/commit_log/simelection ? github.com/google/trillian/docs/storage/commit_log/simelection [no test files] github.com/google/trillian/docs/storage/commit_log/simkafka PASS ok github.com/google/trillian/docs/storage/commit_log/simkafka 0.003s github.com/google/trillian/docs/storage/commit_log/simkafka PASS ok github.com/google/trillian/docs/storage/commit_log/simkafka 0.003s github.com/google/trillian/experimental/batchmap 2024/09/21 00:42:41 Executing pipeline with the direct runner. 2024/09/21 00:42:41 Pipeline: 2024/09/21 00:42:41 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: *batchmap.Tile/R[*batchmap.Tile] GLO} {8: string/string GLO} {9: int/int[varintz] GLO} {10: KV/KV GLO} {11: CoGBK/CoGBK GLO} {12: KV/KV GLO} {13: int/int[varintz] GLO} {14: []uint8/bytes GLO} {15: int/int[varintz] GLO} {16: []uint8/bytes GLO} {17: int/int[varintz] GLO} {18: int/int[varintz] GLO} {19: int/int[varintz] GLO} {20: []uint8/bytes GLO} {21: []uint8/bytes GLO} {22: string/string GLO} {23: []uint8/bytes GLO} {24: string/string GLO} {25: string/string GLO} {26: string/string GLO} {27: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): T <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] 8: ParDo [In(Main): *batchmap.Tile <- {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {8: string/string GLO}] 9: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {9: int/int[varintz] GLO}] 10: ParDo [In(Main): T <- {9: int/int[varintz] GLO}] -> [Out: KV -> {10: KV/KV GLO}] 11: CoGBK [In(Main): KV <- {10: KV/KV GLO}] -> [Out: CoGBK -> {11: CoGBK/CoGBK GLO}] 12: Combine [In(Main): int <- {11: CoGBK/CoGBK GLO}] -> [Out: KV -> {12: KV/KV GLO}] 13: ParDo [In(Main): KV <- {12: KV/KV GLO}] -> [Out: Y -> {13: int/int[varintz] GLO}] 14: Impulse [] -> [Out: []uint8 -> {14: []uint8/bytes GLO}] 15: ParDo [In(Main): []uint8 <- {14: []uint8/bytes GLO}] -> [Out: T -> {15: int/int[varintz] GLO}] 16: Impulse [] -> [Out: []uint8 -> {16: []uint8/bytes GLO}] 17: ParDo [In(Main): []uint8 <- {16: []uint8/bytes GLO} In(Iter): T <- {13: int/int[varintz] GLO} In(Iter): T <- {15: int/int[varintz] GLO}] -> [Out: T -> {17: int/int[varintz] GLO} Out: T -> {18: int/int[varintz] GLO} Out: T -> {19: int/int[varintz] GLO}] 18: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 19: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO} In(Iter): T <- {17: int/int[varintz] GLO} In(Iter): T <- {18: int/int[varintz] GLO} In(Iter): T <- {19: int/int[varintz] GLO}] -> [] 20: Impulse [] -> [Out: []uint8 -> {21: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {21: []uint8/bytes GLO}] -> [Out: T -> {22: string/string GLO}] 22: Impulse [] -> [Out: []uint8 -> {23: []uint8/bytes GLO}] 23: ParDo [In(Main): []uint8 <- {23: []uint8/bytes GLO} In(Iter): T <- {8: string/string GLO} In(Iter): T <- {22: string/string GLO}] -> [Out: T -> {24: string/string GLO} Out: T -> {25: string/string GLO} Out: T -> {26: string/string GLO}] 24: Impulse [] -> [Out: []uint8 -> {27: []uint8/bytes GLO}] 25: ParDo [In(Main): []uint8 <- {27: []uint8/bytes GLO} In(Iter): T <- {24: string/string GLO} In(Iter): T <- {25: string/string GLO} In(Iter): T <- {26: string/string GLO}] -> [] 2024/09/21 00:42:41 Plan[plan]: 34: Impulse[0] 36: Impulse[0] 37: Impulse[0] 38: Impulse[0] 40: Impulse[0] 41: Impulse[0] 42: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestCreate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: ParDo[batchmap.tileHashFn] Out:[27] 29: CoGBK. Out:28 30: Inject[0]. Out:29 31: ParDo[batchmap.leafShardFn] Out:[30] 32: ParDo[batchmap.entryToNodeHashFn] Out:[31] 33: ParDo[beam.createFn] Out:[32] 35: ParDo[beam.createFn] Out:[20] 39: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:41 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[18] done 2024/09/21 00:42:41 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[13] done 2024/09/21 00:42:41 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[7] done 2024/09/21 00:42:41 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[2] done 2024/09/21 00:42:41 Executing pipeline with the direct runner. 2024/09/21 00:42:41 Pipeline: 2024/09/21 00:42:41 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: *batchmap.Tile/R[*batchmap.Tile] GLO} {8: string/string GLO} {9: int/int[varintz] GLO} {10: KV/KV GLO} {11: CoGBK/CoGBK GLO} {12: KV/KV GLO} {13: int/int[varintz] GLO} {14: []uint8/bytes GLO} {15: int/int[varintz] GLO} {16: []uint8/bytes GLO} {17: int/int[varintz] GLO} {18: int/int[varintz] GLO} {19: int/int[varintz] GLO} {20: []uint8/bytes GLO} {21: []uint8/bytes GLO} {22: string/string GLO} {23: []uint8/bytes GLO} {24: string/string GLO} {25: string/string GLO} {26: string/string GLO} {27: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): T <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] 8: ParDo [In(Main): *batchmap.Tile <- {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {8: string/string GLO}] 9: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {9: int/int[varintz] GLO}] 10: ParDo [In(Main): T <- {9: int/int[varintz] GLO}] -> [Out: KV -> {10: KV/KV GLO}] 11: CoGBK [In(Main): KV <- {10: KV/KV GLO}] -> [Out: CoGBK -> {11: CoGBK/CoGBK GLO}] 12: Combine [In(Main): int <- {11: CoGBK/CoGBK GLO}] -> [Out: KV -> {12: KV/KV GLO}] 13: ParDo [In(Main): KV <- {12: KV/KV GLO}] -> [Out: Y -> {13: int/int[varintz] GLO}] 14: Impulse [] -> [Out: []uint8 -> {14: []uint8/bytes GLO}] 15: ParDo [In(Main): []uint8 <- {14: []uint8/bytes GLO}] -> [Out: T -> {15: int/int[varintz] GLO}] 16: Impulse [] -> [Out: []uint8 -> {16: []uint8/bytes GLO}] 17: ParDo [In(Main): []uint8 <- {16: []uint8/bytes GLO} In(Iter): T <- {13: int/int[varintz] GLO} In(Iter): T <- {15: int/int[varintz] GLO}] -> [Out: T -> {17: int/int[varintz] GLO} Out: T -> {18: int/int[varintz] GLO} Out: T -> {19: int/int[varintz] GLO}] 18: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 19: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO} In(Iter): T <- {17: int/int[varintz] GLO} In(Iter): T <- {18: int/int[varintz] GLO} In(Iter): T <- {19: int/int[varintz] GLO}] -> [] 20: Impulse [] -> [Out: []uint8 -> {21: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {21: []uint8/bytes GLO}] -> [Out: T -> {22: string/string GLO}] 22: Impulse [] -> [Out: []uint8 -> {23: []uint8/bytes GLO}] 23: ParDo [In(Main): []uint8 <- {23: []uint8/bytes GLO} In(Iter): T <- {8: string/string GLO} In(Iter): T <- {22: string/string GLO}] -> [Out: T -> {24: string/string GLO} Out: T -> {25: string/string GLO} Out: T -> {26: string/string GLO}] 24: Impulse [] -> [Out: []uint8 -> {27: []uint8/bytes GLO}] 25: ParDo [In(Main): []uint8 <- {27: []uint8/bytes GLO} In(Iter): T <- {24: string/string GLO} In(Iter): T <- {25: string/string GLO} In(Iter): T <- {26: string/string GLO}] -> [] 2024/09/21 00:42:41 Plan[plan]: 34: Impulse[0] 36: Impulse[0] 37: Impulse[0] 38: Impulse[0] 40: Impulse[0] 41: Impulse[0] 42: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestCreate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: ParDo[batchmap.tileHashFn] Out:[27] 29: CoGBK. Out:28 30: Inject[0]. Out:29 31: ParDo[batchmap.leafShardFn] Out:[30] 32: ParDo[batchmap.entryToNodeHashFn] Out:[31] 33: ParDo[beam.createFn] Out:[32] 35: ParDo[beam.createFn] Out:[20] 39: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:41 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[18] done 2024/09/21 00:42:41 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[13] done 2024/09/21 00:42:41 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[7] done 2024/09/21 00:42:41 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[2] done 2024/09/21 00:42:41 Executing pipeline with the direct runner. 2024/09/21 00:42:41 Pipeline: 2024/09/21 00:42:41 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: *batchmap.Tile/R[*batchmap.Tile] GLO} {12: *batchmap.Tile/R[*batchmap.Tile] GLO} {13: string/string GLO} {14: int/int[varintz] GLO} {15: KV/KV GLO} {16: CoGBK/CoGBK GLO} {17: KV/KV GLO} {18: int/int[varintz] GLO} {19: []uint8/bytes GLO} {20: int/int[varintz] GLO} {21: []uint8/bytes GLO} {22: int/int[varintz] GLO} {23: int/int[varintz] GLO} {24: int/int[varintz] GLO} {25: []uint8/bytes GLO} {26: []uint8/bytes GLO} {27: string/string GLO} {28: []uint8/bytes GLO} {29: string/string GLO} {30: string/string GLO} {31: string/string GLO} {32: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] 12: ParDo [In(Main): T <- {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {12: *batchmap.Tile/R[*batchmap.Tile] GLO}] 13: ParDo [In(Main): *batchmap.Tile <- {12: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {13: string/string GLO}] 14: ParDo [In(Main): *batchmap.Tile <- {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {14: int/int[varintz] GLO}] 15: ParDo [In(Main): T <- {14: int/int[varintz] GLO}] -> [Out: KV -> {15: KV/KV GLO}] 16: CoGBK [In(Main): KV <- {15: KV/KV GLO}] -> [Out: CoGBK -> {16: CoGBK/CoGBK GLO}] 17: Combine [In(Main): int <- {16: CoGBK/CoGBK GLO}] -> [Out: KV -> {17: KV/KV GLO}] 18: ParDo [In(Main): KV <- {17: KV/KV GLO}] -> [Out: Y -> {18: int/int[varintz] GLO}] 19: Impulse [] -> [Out: []uint8 -> {19: []uint8/bytes GLO}] 20: ParDo [In(Main): []uint8 <- {19: []uint8/bytes GLO}] -> [Out: T -> {20: int/int[varintz] GLO}] 21: Impulse [] -> [Out: []uint8 -> {21: []uint8/bytes GLO}] 22: ParDo [In(Main): []uint8 <- {21: []uint8/bytes GLO} In(Iter): T <- {18: int/int[varintz] GLO} In(Iter): T <- {20: int/int[varintz] GLO}] -> [Out: T -> {22: int/int[varintz] GLO} Out: T -> {23: int/int[varintz] GLO} Out: T -> {24: int/int[varintz] GLO}] 23: Impulse [] -> [Out: []uint8 -> {25: []uint8/bytes GLO}] 24: ParDo [In(Main): []uint8 <- {25: []uint8/bytes GLO} In(Iter): T <- {22: int/int[varintz] GLO} In(Iter): T <- {23: int/int[varintz] GLO} In(Iter): T <- {24: int/int[varintz] GLO}] -> [] 25: Impulse [] -> [Out: []uint8 -> {26: []uint8/bytes GLO}] 26: ParDo [In(Main): []uint8 <- {26: []uint8/bytes GLO}] -> [Out: T -> {27: string/string GLO}] 27: Impulse [] -> [Out: []uint8 -> {28: []uint8/bytes GLO}] 28: ParDo [In(Main): []uint8 <- {28: []uint8/bytes GLO} In(Iter): T <- {13: string/string GLO} In(Iter): T <- {27: string/string GLO}] -> [Out: T -> {29: string/string GLO} Out: T -> {30: string/string GLO} Out: T -> {31: string/string GLO}] 29: Impulse [] -> [Out: []uint8 -> {32: []uint8/bytes GLO}] 30: ParDo [In(Main): []uint8 <- {32: []uint8/bytes GLO} In(Iter): T <- {29: string/string GLO} In(Iter): T <- {30: string/string GLO} In(Iter): T <- {31: string/string GLO}] -> [] 2024/09/21 00:42:41 Plan[plan]: 41: Impulse[0] 43: Impulse[0] 44: Impulse[0] 45: Impulse[0] 47: Impulse[0] 48: Impulse[0] 49: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestCreate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: Flatten[2]. Out:Multiplex. Out:[11 26] 29: ParDo[batchmap.tileHashFn] Out:[28] 30: CoGBK. Out:29 31: Inject[0]. Out:30 32: ParDo[batchmap.leafShardFn] Out:[31] 33: ParDo[batchmap.tileToNodeHashFn] Out:[32] 34: Multiplex. Out:[33 28] 35: ParDo[batchmap.tileHashFn] Out:[34] 36: CoGBK. Out:35 37: Inject[0]. Out:36 38: ParDo[batchmap.leafShardFn] Out:[37] 39: ParDo[batchmap.entryToNodeHashFn] Out:[38] 40: ParDo[beam.createFn] Out:[39] 42: ParDo[beam.createFn] Out:[20] 46: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:41 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[18] done 2024/09/21 00:42:41 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[13] done 2024/09/21 00:42:41 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[7] done 2024/09/21 00:42:41 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[2] done 2024/09/21 00:42:41 Executing pipeline with the direct runner. 2024/09/21 00:42:41 Pipeline: 2024/09/21 00:42:41 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: *batchmap.Tile/R[*batchmap.Tile] GLO} {8: string/string GLO} {9: int/int[varintz] GLO} {10: KV/KV GLO} {11: CoGBK/CoGBK GLO} {12: KV/KV GLO} {13: int/int[varintz] GLO} {14: []uint8/bytes GLO} {15: int/int[varintz] GLO} {16: []uint8/bytes GLO} {17: int/int[varintz] GLO} {18: int/int[varintz] GLO} {19: int/int[varintz] GLO} {20: []uint8/bytes GLO} {21: []uint8/bytes GLO} {22: string/string GLO} {23: []uint8/bytes GLO} {24: string/string GLO} {25: string/string GLO} {26: string/string GLO} {27: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): T <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] 8: ParDo [In(Main): *batchmap.Tile <- {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {8: string/string GLO}] 9: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {9: int/int[varintz] GLO}] 10: ParDo [In(Main): T <- {9: int/int[varintz] GLO}] -> [Out: KV -> {10: KV/KV GLO}] 11: CoGBK [In(Main): KV <- {10: KV/KV GLO}] -> [Out: CoGBK -> {11: CoGBK/CoGBK GLO}] 12: Combine [In(Main): int <- {11: CoGBK/CoGBK GLO}] -> [Out: KV -> {12: KV/KV GLO}] 13: ParDo [In(Main): KV <- {12: KV/KV GLO}] -> [Out: Y -> {13: int/int[varintz] GLO}] 14: Impulse [] -> [Out: []uint8 -> {14: []uint8/bytes GLO}] 15: ParDo [In(Main): []uint8 <- {14: []uint8/bytes GLO}] -> [Out: T -> {15: int/int[varintz] GLO}] 16: Impulse [] -> [Out: []uint8 -> {16: []uint8/bytes GLO}] 17: ParDo [In(Main): []uint8 <- {16: []uint8/bytes GLO} In(Iter): T <- {13: int/int[varintz] GLO} In(Iter): T <- {15: int/int[varintz] GLO}] -> [Out: T -> {17: int/int[varintz] GLO} Out: T -> {18: int/int[varintz] GLO} Out: T -> {19: int/int[varintz] GLO}] 18: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 19: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO} In(Iter): T <- {17: int/int[varintz] GLO} In(Iter): T <- {18: int/int[varintz] GLO} In(Iter): T <- {19: int/int[varintz] GLO}] -> [] 20: Impulse [] -> [Out: []uint8 -> {21: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {21: []uint8/bytes GLO}] -> [Out: T -> {22: string/string GLO}] 22: Impulse [] -> [Out: []uint8 -> {23: []uint8/bytes GLO}] 23: ParDo [In(Main): []uint8 <- {23: []uint8/bytes GLO} In(Iter): T <- {8: string/string GLO} In(Iter): T <- {22: string/string GLO}] -> [Out: T -> {24: string/string GLO} Out: T -> {25: string/string GLO} Out: T -> {26: string/string GLO}] 24: Impulse [] -> [Out: []uint8 -> {27: []uint8/bytes GLO}] 25: ParDo [In(Main): []uint8 <- {27: []uint8/bytes GLO} In(Iter): T <- {24: string/string GLO} In(Iter): T <- {25: string/string GLO} In(Iter): T <- {26: string/string GLO}] -> [] 2024/09/21 00:42:41 Plan[plan]: 34: Impulse[0] 36: Impulse[0] 37: Impulse[0] 38: Impulse[0] 40: Impulse[0] 41: Impulse[0] 42: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestCreate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: ParDo[batchmap.tileHashFn] Out:[27] 29: CoGBK. Out:28 30: Inject[0]. Out:29 31: ParDo[batchmap.leafShardFn] Out:[30] 32: ParDo[batchmap.entryToNodeHashFn] Out:[31] 33: ParDo[beam.createFn] Out:[32] 35: ParDo[beam.createFn] Out:[20] 39: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:41 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[18] done 2024/09/21 00:42:41 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[13] done 2024/09/21 00:42:41 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[7] done 2024/09/21 00:42:41 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[2] done 2024/09/21 00:42:41 Executing pipeline with the direct runner. 2024/09/21 00:42:41 Pipeline: 2024/09/21 00:42:41 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: *batchmap.Tile/R[*batchmap.Tile] GLO} {12: *batchmap.Tile/R[*batchmap.Tile] GLO} {13: string/string GLO} {14: int/int[varintz] GLO} {15: KV/KV GLO} {16: CoGBK/CoGBK GLO} {17: KV/KV GLO} {18: int/int[varintz] GLO} {19: []uint8/bytes GLO} {20: int/int[varintz] GLO} {21: []uint8/bytes GLO} {22: int/int[varintz] GLO} {23: int/int[varintz] GLO} {24: int/int[varintz] GLO} {25: []uint8/bytes GLO} {26: []uint8/bytes GLO} {27: string/string GLO} {28: []uint8/bytes GLO} {29: string/string GLO} {30: string/string GLO} {31: string/string GLO} {32: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] 12: ParDo [In(Main): T <- {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {12: *batchmap.Tile/R[*batchmap.Tile] GLO}] 13: ParDo [In(Main): *batchmap.Tile <- {12: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {13: string/string GLO}] 14: ParDo [In(Main): *batchmap.Tile <- {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {14: int/int[varintz] GLO}] 15: ParDo [In(Main): T <- {14: int/int[varintz] GLO}] -> [Out: KV -> {15: KV/KV GLO}] 16: CoGBK [In(Main): KV <- {15: KV/KV GLO}] -> [Out: CoGBK -> {16: CoGBK/CoGBK GLO}] 17: Combine [In(Main): int <- {16: CoGBK/CoGBK GLO}] -> [Out: KV -> {17: KV/KV GLO}] 18: ParDo [In(Main): KV <- {17: KV/KV GLO}] -> [Out: Y -> {18: int/int[varintz] GLO}] 19: Impulse [] -> [Out: []uint8 -> {19: []uint8/bytes GLO}] 20: ParDo [In(Main): []uint8 <- {19: []uint8/bytes GLO}] -> [Out: T -> {20: int/int[varintz] GLO}] 21: Impulse [] -> [Out: []uint8 -> {21: []uint8/bytes GLO}] 22: ParDo [In(Main): []uint8 <- {21: []uint8/bytes GLO} In(Iter): T <- {18: int/int[varintz] GLO} In(Iter): T <- {20: int/int[varintz] GLO}] -> [Out: T -> {22: int/int[varintz] GLO} Out: T -> {23: int/int[varintz] GLO} Out: T -> {24: int/int[varintz] GLO}] 23: Impulse [] -> [Out: []uint8 -> {25: []uint8/bytes GLO}] 24: ParDo [In(Main): []uint8 <- {25: []uint8/bytes GLO} In(Iter): T <- {22: int/int[varintz] GLO} In(Iter): T <- {23: int/int[varintz] GLO} In(Iter): T <- {24: int/int[varintz] GLO}] -> [] 25: Impulse [] -> [Out: []uint8 -> {26: []uint8/bytes GLO}] 26: ParDo [In(Main): []uint8 <- {26: []uint8/bytes GLO}] -> [Out: T -> {27: string/string GLO}] 27: Impulse [] -> [Out: []uint8 -> {28: []uint8/bytes GLO}] 28: ParDo [In(Main): []uint8 <- {28: []uint8/bytes GLO} In(Iter): T <- {13: string/string GLO} In(Iter): T <- {27: string/string GLO}] -> [Out: T -> {29: string/string GLO} Out: T -> {30: string/string GLO} Out: T -> {31: string/string GLO}] 29: Impulse [] -> [Out: []uint8 -> {32: []uint8/bytes GLO}] 30: ParDo [In(Main): []uint8 <- {32: []uint8/bytes GLO} In(Iter): T <- {29: string/string GLO} In(Iter): T <- {30: string/string GLO} In(Iter): T <- {31: string/string GLO}] -> [] 2024/09/21 00:42:41 Plan[plan]: 41: Impulse[0] 43: Impulse[0] 44: Impulse[0] 45: Impulse[0] 47: Impulse[0] 48: Impulse[0] 49: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestCreate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: Flatten[2]. Out:Multiplex. Out:[11 26] 29: ParDo[batchmap.tileHashFn] Out:[28] 30: CoGBK. Out:29 31: Inject[0]. Out:30 32: ParDo[batchmap.leafShardFn] Out:[31] 33: ParDo[batchmap.tileToNodeHashFn] Out:[32] 34: Multiplex. Out:[33 28] 35: ParDo[batchmap.tileHashFn] Out:[34] 36: CoGBK. Out:35 37: Inject[0]. Out:36 38: ParDo[batchmap.leafShardFn] Out:[37] 39: ParDo[batchmap.entryToNodeHashFn] Out:[38] 40: ParDo[beam.createFn] Out:[39] 42: ParDo[beam.createFn] Out:[20] 46: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:41 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[18] done 2024/09/21 00:42:41 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[13] done 2024/09/21 00:42:41 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[7] done 2024/09/21 00:42:41 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[2] done 2024/09/21 00:42:41 Executing pipeline with the direct runner. 2024/09/21 00:42:41 Pipeline: 2024/09/21 00:42:41 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: *batchmap.Tile/R[*batchmap.Tile] GLO} {8: string/string GLO} {9: int/int[varintz] GLO} {10: KV/KV GLO} {11: CoGBK/CoGBK GLO} {12: KV/KV GLO} {13: int/int[varintz] GLO} {14: []uint8/bytes GLO} {15: int/int[varintz] GLO} {16: []uint8/bytes GLO} {17: int/int[varintz] GLO} {18: int/int[varintz] GLO} {19: int/int[varintz] GLO} {20: []uint8/bytes GLO} {21: []uint8/bytes GLO} {22: string/string GLO} {23: []uint8/bytes GLO} {24: string/string GLO} {25: string/string GLO} {26: string/string GLO} {27: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): T <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] 8: ParDo [In(Main): *batchmap.Tile <- {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {8: string/string GLO}] 9: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {9: int/int[varintz] GLO}] 10: ParDo [In(Main): T <- {9: int/int[varintz] GLO}] -> [Out: KV -> {10: KV/KV GLO}] 11: CoGBK [In(Main): KV <- {10: KV/KV GLO}] -> [Out: CoGBK -> {11: CoGBK/CoGBK GLO}] 12: Combine [In(Main): int <- {11: CoGBK/CoGBK GLO}] -> [Out: KV -> {12: KV/KV GLO}] 13: ParDo [In(Main): KV <- {12: KV/KV GLO}] -> [Out: Y -> {13: int/int[varintz] GLO}] 14: Impulse [] -> [Out: []uint8 -> {14: []uint8/bytes GLO}] 15: ParDo [In(Main): []uint8 <- {14: []uint8/bytes GLO}] -> [Out: T -> {15: int/int[varintz] GLO}] 16: Impulse [] -> [Out: []uint8 -> {16: []uint8/bytes GLO}] 17: ParDo [In(Main): []uint8 <- {16: []uint8/bytes GLO} In(Iter): T <- {13: int/int[varintz] GLO} In(Iter): T <- {15: int/int[varintz] GLO}] -> [Out: T -> {17: int/int[varintz] GLO} Out: T -> {18: int/int[varintz] GLO} Out: T -> {19: int/int[varintz] GLO}] 18: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 19: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO} In(Iter): T <- {17: int/int[varintz] GLO} In(Iter): T <- {18: int/int[varintz] GLO} In(Iter): T <- {19: int/int[varintz] GLO}] -> [] 20: Impulse [] -> [Out: []uint8 -> {21: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {21: []uint8/bytes GLO}] -> [Out: T -> {22: string/string GLO}] 22: Impulse [] -> [Out: []uint8 -> {23: []uint8/bytes GLO}] 23: ParDo [In(Main): []uint8 <- {23: []uint8/bytes GLO} In(Iter): T <- {8: string/string GLO} In(Iter): T <- {22: string/string GLO}] -> [Out: T -> {24: string/string GLO} Out: T -> {25: string/string GLO} Out: T -> {26: string/string GLO}] 24: Impulse [] -> [Out: []uint8 -> {27: []uint8/bytes GLO}] 25: ParDo [In(Main): []uint8 <- {27: []uint8/bytes GLO} In(Iter): T <- {24: string/string GLO} In(Iter): T <- {25: string/string GLO} In(Iter): T <- {26: string/string GLO}] -> [] 2024/09/21 00:42:41 Plan[plan]: 34: Impulse[0] 36: Impulse[0] 37: Impulse[0] 38: Impulse[0] 40: Impulse[0] 41: Impulse[0] 42: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestCreate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: ParDo[batchmap.tileHashFn] Out:[27] 29: CoGBK. Out:28 30: Inject[0]. Out:29 31: ParDo[batchmap.leafShardFn] Out:[30] 32: ParDo[batchmap.entryToNodeHashFn] Out:[31] 33: ParDo[beam.createFn] Out:[32] 35: ParDo[beam.createFn] Out:[20] 39: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:41 Executing pipeline with the direct runner. 2024/09/21 00:42:41 Pipeline: 2024/09/21 00:42:41 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: []uint8/bytes GLO} {8: *batchmap.Entry/R[*batchmap.Entry] GLO} {9: *batchmap.Tile/R[*batchmap.Tile] GLO} {10: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {11: KV<[]uint8,*batchmap.Tile>/KV GLO} {12: KV<[]uint8,batchmap.nodeHash>/KV GLO} {13: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {14: *batchmap.Tile/R[*batchmap.Tile] GLO} {15: *batchmap.Tile/R[*batchmap.Tile] GLO} {16: string/string GLO} {17: int/int[varintz] GLO} {18: KV/KV GLO} {19: CoGBK/CoGBK GLO} {20: KV/KV GLO} {21: int/int[varintz] GLO} {22: []uint8/bytes GLO} {23: int/int[varintz] GLO} {24: []uint8/bytes GLO} {25: int/int[varintz] GLO} {26: int/int[varintz] GLO} {27: int/int[varintz] GLO} {28: []uint8/bytes GLO} {29: []uint8/bytes GLO} {30: string/string GLO} {31: []uint8/bytes GLO} {32: string/string GLO} {33: string/string GLO} {34: string/string GLO} {35: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: Impulse [] -> [Out: []uint8 -> {7: []uint8/bytes GLO}] 8: ParDo [In(Main): []uint8 <- {7: []uint8/bytes GLO}] -> [Out: T -> {8: *batchmap.Entry/R[*batchmap.Entry] GLO}] 9: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {9: *batchmap.Tile/R[*batchmap.Tile] GLO}] 10: ParDo [In(Main): *batchmap.Entry <- {8: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {10: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 11: ParDo [In(Main): *batchmap.Tile <- {9: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {11: KV<[]uint8,*batchmap.Tile>/KV GLO}] 12: ParDo [In(Main): batchmap.nodeHash <- {10: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 13: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {11: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {13: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 14: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {13: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] 15: ParDo [In(Main): T <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {15: *batchmap.Tile/R[*batchmap.Tile] GLO}] 16: ParDo [In(Main): *batchmap.Tile <- {15: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {16: string/string GLO}] 17: ParDo [In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {17: int/int[varintz] GLO}] 18: ParDo [In(Main): T <- {17: int/int[varintz] GLO}] -> [Out: KV -> {18: KV/KV GLO}] 19: CoGBK [In(Main): KV <- {18: KV/KV GLO}] -> [Out: CoGBK -> {19: CoGBK/CoGBK GLO}] 20: Combine [In(Main): int <- {19: CoGBK/CoGBK GLO}] -> [Out: KV -> {20: KV/KV GLO}] 21: ParDo [In(Main): KV <- {20: KV/KV GLO}] -> [Out: Y -> {21: int/int[varintz] GLO}] 22: Impulse [] -> [Out: []uint8 -> {22: []uint8/bytes GLO}] 23: ParDo [In(Main): []uint8 <- {22: []uint8/bytes GLO}] -> [Out: T -> {23: int/int[varintz] GLO}] 24: Impulse [] -> [Out: []uint8 -> {24: []uint8/bytes GLO}] 25: ParDo [In(Main): []uint8 <- {24: []uint8/bytes GLO} In(Iter): T <- {21: int/int[varintz] GLO} In(Iter): T <- {23: int/int[varintz] GLO}] -> [Out: T -> {25: int/int[varintz] GLO} Out: T -> {26: int/int[varintz] GLO} Out: T -> {27: int/int[varintz] GLO}] 26: Impulse [] -> [Out: []uint8 -> {28: []uint8/bytes GLO}] 27: ParDo [In(Main): []uint8 <- {28: []uint8/bytes GLO} In(Iter): T <- {25: int/int[varintz] GLO} In(Iter): T <- {26: int/int[varintz] GLO} In(Iter): T <- {27: int/int[varintz] GLO}] -> [] 28: Impulse [] -> [Out: []uint8 -> {29: []uint8/bytes GLO}] 29: ParDo [In(Main): []uint8 <- {29: []uint8/bytes GLO}] -> [Out: T -> {30: string/string GLO}] 30: Impulse [] -> [Out: []uint8 -> {31: []uint8/bytes GLO}] 31: ParDo [In(Main): []uint8 <- {31: []uint8/bytes GLO} In(Iter): T <- {16: string/string GLO} In(Iter): T <- {30: string/string GLO}] -> [Out: T -> {32: string/string GLO} Out: T -> {33: string/string GLO} Out: T -> {34: string/string GLO}] 32: Impulse [] -> [Out: []uint8 -> {35: []uint8/bytes GLO}] 33: ParDo [In(Main): []uint8 <- {35: []uint8/bytes GLO} In(Iter): T <- {32: string/string GLO} In(Iter): T <- {33: string/string GLO} In(Iter): T <- {34: string/string GLO}] -> [] 2024/09/21 00:42:41 Plan[plan]: 41: Impulse[0] 45: Impulse[0] 47: Impulse[0] 48: Impulse[0] 49: Impulse[0] 51: Impulse[0] 52: Impulse[0] 53: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestUpdate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: ParDo[batchmap.tileUpdateFn] Out:[27] 29: CoGBK. Out:28 30: Flatten[2]. Out:CoGBK. Out:28 31: Inject[0]. Out:30 32: Inject[1]. Out:30 33: ParDo[batchmap.updateStratum.func1] Out:[31] 34: ParDo[beam.partitionFn] Out:[33] 35: ParDo[batchmap.tileHashFn] Out:[34] 36: CoGBK. Out:35 37: Inject[0]. Out:36 38: ParDo[batchmap.leafShardFn] Out:[37] 39: ParDo[batchmap.entryToNodeHashFn] Out:[38] 40: ParDo[beam.createFn] Out:[39] 42: ParDo[batchmap.leafShardFn] Out:[32] 43: ParDo[batchmap.entryToNodeHashFn] Out:[42] 44: ParDo[beam.createFn] Out:[43] 46: ParDo[beam.createFn] Out:[20] 50: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:41 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[18] done 2024/09/21 00:42:41 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[13] done 2024/09/21 00:42:41 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[7] done 2024/09/21 00:42:41 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[2] done 2024/09/21 00:42:41 Executing pipeline with the direct runner. 2024/09/21 00:42:41 Pipeline: 2024/09/21 00:42:41 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {12: KV<[]uint8,batchmap.nodeHash>/KV GLO} {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {14: *batchmap.Tile/R[*batchmap.Tile] GLO} {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {16: KV<[]uint8,batchmap.nodeHash>/KV GLO} {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {18: *batchmap.Tile/R[*batchmap.Tile] GLO} {19: *batchmap.Tile/R[*batchmap.Tile] GLO} {20: []uint8/bytes GLO} {21: *batchmap.Entry/R[*batchmap.Entry] GLO} {22: *batchmap.Tile/R[*batchmap.Tile] GLO} {23: *batchmap.Tile/R[*batchmap.Tile] GLO} {24: *batchmap.Tile/R[*batchmap.Tile] GLO} {25: *batchmap.Tile/R[*batchmap.Tile] GLO} {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {27: KV<[]uint8,*batchmap.Tile>/KV GLO} {28: KV<[]uint8,batchmap.nodeHash>/KV GLO} {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {30: *batchmap.Tile/R[*batchmap.Tile] GLO} {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {32: KV<[]uint8,*batchmap.Tile>/KV GLO} {33: KV<[]uint8,batchmap.nodeHash>/KV GLO} {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {35: *batchmap.Tile/R[*batchmap.Tile] GLO} {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {37: KV<[]uint8,*batchmap.Tile>/KV GLO} {38: KV<[]uint8,batchmap.nodeHash>/KV GLO} {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {40: *batchmap.Tile/R[*batchmap.Tile] GLO} {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {42: KV<[]uint8,*batchmap.Tile>/KV GLO} {43: KV<[]uint8,batchmap.nodeHash>/KV GLO} {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {45: *batchmap.Tile/R[*batchmap.Tile] GLO} {46: *batchmap.Tile/R[*batchmap.Tile] GLO} {47: *batchmap.Tile/R[*batchmap.Tile] GLO} {48: string/string GLO} {49: int/int[varintz] GLO} {50: KV/KV GLO} {51: CoGBK/CoGBK GLO} {52: KV/KV GLO} {53: int/int[varintz] GLO} {54: []uint8/bytes GLO} {55: int/int[varintz] GLO} {56: []uint8/bytes GLO} {57: int/int[varintz] GLO} {58: int/int[varintz] GLO} {59: int/int[varintz] GLO} {60: []uint8/bytes GLO} {61: []uint8/bytes GLO} {62: string/string GLO} {63: []uint8/bytes GLO} {64: string/string GLO} {65: string/string GLO} {66: string/string GLO} {67: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: ParDo [In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 12: ParDo [In(Main): batchmap.nodeHash <- {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 13: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 14: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] 15: ParDo [In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 16: ParDo [In(Main): batchmap.nodeHash <- {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 17: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 18: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] 19: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] 20: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO}] -> [Out: T -> {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] 22: ParDo [In(Main): *batchmap.Tile <- {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {22: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {23: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {24: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] 23: ParDo [In(Main): *batchmap.Entry <- {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 24: ParDo [In(Main): *batchmap.Tile <- {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {27: KV<[]uint8,*batchmap.Tile>/KV GLO}] 25: ParDo [In(Main): batchmap.nodeHash <- {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 26: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {27: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 27: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] 28: ParDo [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 29: ParDo [In(Main): *batchmap.Tile <- {24: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {32: KV<[]uint8,*batchmap.Tile>/KV GLO}] 30: ParDo [In(Main): batchmap.nodeHash <- {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 31: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {32: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 32: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] 33: ParDo [In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 34: ParDo [In(Main): *batchmap.Tile <- {23: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {37: KV<[]uint8,*batchmap.Tile>/KV GLO}] 35: ParDo [In(Main): batchmap.nodeHash <- {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 36: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {37: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 37: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] 38: ParDo [In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 39: ParDo [In(Main): *batchmap.Tile <- {22: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {42: KV<[]uint8,*batchmap.Tile>/KV GLO}] 40: ParDo [In(Main): batchmap.nodeHash <- {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 41: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {42: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 42: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] 43: Flatten [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] 44: ParDo [In(Main): T <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] 45: ParDo [In(Main): *batchmap.Tile <- {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {48: string/string GLO}] 46: ParDo [In(Main): *batchmap.Tile <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {49: int/int[varintz] GLO}] 47: ParDo [In(Main): T <- {49: int/int[varintz] GLO}] -> [Out: KV -> {50: KV/KV GLO}] 48: CoGBK [In(Main): KV <- {50: KV/KV GLO}] -> [Out: CoGBK -> {51: CoGBK/CoGBK GLO}] 49: Combine [In(Main): int <- {51: CoGBK/CoGBK GLO}] -> [Out: KV -> {52: KV/KV GLO}] 50: ParDo [In(Main): KV <- {52: KV/KV GLO}] -> [Out: Y -> {53: int/int[varintz] GLO}] 51: Impulse [] -> [Out: []uint8 -> {54: []uint8/bytes GLO}] 52: ParDo [In(Main): []uint8 <- {54: []uint8/bytes GLO}] -> [Out: T -> {55: int/int[varintz] GLO}] 53: Impulse [] -> [Out: []uint8 -> {56: []uint8/bytes GLO}] 54: ParDo [In(Main): []uint8 <- {56: []uint8/bytes GLO} In(Iter): T <- {53: int/int[varintz] GLO} In(Iter): T <- {55: int/int[varintz] GLO}] -> [Out: T -> {57: int/int[varintz] GLO} Out: T -> {58: int/int[varintz] GLO} Out: T -> {59: int/int[varintz] GLO}] 55: Impulse [] -> [Out: []uint8 -> {60: []uint8/bytes GLO}] 56: ParDo [In(Main): []uint8 <- {60: []uint8/bytes GLO} In(Iter): T <- {57: int/int[varintz] GLO} In(Iter): T <- {58: int/int[varintz] GLO} In(Iter): T <- {59: int/int[varintz] GLO}] -> [] 57: Impulse [] -> [Out: []uint8 -> {61: []uint8/bytes GLO}] 58: ParDo [In(Main): []uint8 <- {61: []uint8/bytes GLO}] -> [Out: T -> {62: string/string GLO}] 59: Impulse [] -> [Out: []uint8 -> {63: []uint8/bytes GLO}] 60: ParDo [In(Main): []uint8 <- {63: []uint8/bytes GLO} In(Iter): T <- {48: string/string GLO} In(Iter): T <- {62: string/string GLO}] -> [Out: T -> {64: string/string GLO} Out: T -> {65: string/string GLO} Out: T -> {66: string/string GLO}] 61: Impulse [] -> [Out: []uint8 -> {67: []uint8/bytes GLO}] 62: ParDo [In(Main): []uint8 <- {67: []uint8/bytes GLO} In(Iter): T <- {64: string/string GLO} In(Iter): T <- {65: string/string GLO} In(Iter): T <- {66: string/string GLO}] -> [] 2024/09/21 00:42:41 Plan[plan]: 88: Impulse[0] 92: Impulse[0] 94: Impulse[0] 95: Impulse[0] 96: Impulse[0] 98: Impulse[0] 99: Impulse[0] 100: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestUpdate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: Flatten[4]. Out:Multiplex. Out:[11 26] 29: ParDo[batchmap.tileUpdateFn] Out:[28] 30: CoGBK. Out:29 31: Flatten[2]. Out:CoGBK. Out:29 32: Inject[0]. Out:31 33: Inject[1]. Out:31 34: ParDo[batchmap.updateStratum.func1] Out:[32] 35: ParDo[batchmap.leafShardFn] Out:[33] 36: ParDo[batchmap.tileToNodeHashFn] Out:[35] 37: Multiplex. Out:[36 28] 38: ParDo[batchmap.tileUpdateFn] Out:[37] 39: CoGBK. Out:38 40: Flatten[2]. Out:CoGBK. Out:38 41: Inject[0]. Out:40 42: Inject[1]. Out:40 43: ParDo[batchmap.updateStratum.func1] Out:[41] 44: ParDo[batchmap.leafShardFn] Out:[42] 45: ParDo[batchmap.tileToNodeHashFn] Out:[44] 46: Multiplex. Out:[45 28] 47: ParDo[batchmap.tileUpdateFn] Out:[46] 48: CoGBK. Out:47 49: Flatten[2]. Out:CoGBK. Out:47 50: Inject[0]. Out:49 51: Inject[1]. Out:49 52: ParDo[batchmap.updateStratum.func1] Out:[50] 53: ParDo[batchmap.leafShardFn] Out:[51] 54: ParDo[batchmap.tileToNodeHashFn] Out:[53] 55: Multiplex. Out:[54 28] 56: ParDo[batchmap.tileUpdateFn] Out:[55] 57: CoGBK. Out:56 58: Flatten[2]. Out:CoGBK. Out:56 59: Inject[0]. Out:58 60: Inject[1]. Out:58 61: ParDo[batchmap.updateStratum.func1] Out:[59] 62: ParDo[beam.partitionFn] Out:[34 43 52 61] 63: Flatten[4]. Out:ParDo[beam.partitionFn] Out:[34 43 52 61] 64: ParDo[batchmap.tileHashFn] Out:[63] 65: CoGBK. Out:64 66: Inject[0]. Out:65 67: ParDo[batchmap.leafShardFn] Out:[66] 68: ParDo[batchmap.tileToNodeHashFn] Out:[67] 69: Multiplex. Out:[68 63] 70: ParDo[batchmap.tileHashFn] Out:[69] 71: CoGBK. Out:70 72: Inject[0]. Out:71 73: ParDo[batchmap.leafShardFn] Out:[72] 74: ParDo[batchmap.tileToNodeHashFn] Out:[73] 75: Multiplex. Out:[74 63] 76: ParDo[batchmap.tileHashFn] Out:[75] 77: CoGBK. Out:76 78: Inject[0]. Out:77 79: ParDo[batchmap.leafShardFn] Out:[78] 80: ParDo[batchmap.tileToNodeHashFn] Out:[79] 81: Multiplex. Out:[80 63] 82: ParDo[batchmap.tileHashFn] Out:[81] 83: CoGBK. Out:82 84: Inject[0]. Out:83 85: ParDo[batchmap.leafShardFn] Out:[84] 86: ParDo[batchmap.entryToNodeHashFn] Out:[85] 87: ParDo[beam.createFn] Out:[86] 89: ParDo[batchmap.leafShardFn] Out:[60] 90: ParDo[batchmap.entryToNodeHashFn] Out:[89] 91: ParDo[beam.createFn] Out:[90] 93: ParDo[beam.createFn] Out:[20] 97: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:41 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[18] done 2024/09/21 00:42:41 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[13] done 2024/09/21 00:42:41 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[7] done 2024/09/21 00:42:41 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[2] done 2024/09/21 00:42:41 Executing pipeline with the direct runner. 2024/09/21 00:42:41 Pipeline: 2024/09/21 00:42:41 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: []uint8/bytes GLO} {8: *batchmap.Entry/R[*batchmap.Entry] GLO} {9: *batchmap.Tile/R[*batchmap.Tile] GLO} {10: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {11: KV<[]uint8,*batchmap.Tile>/KV GLO} {12: KV<[]uint8,batchmap.nodeHash>/KV GLO} {13: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {14: *batchmap.Tile/R[*batchmap.Tile] GLO} {15: *batchmap.Tile/R[*batchmap.Tile] GLO} {16: string/string GLO} {17: int/int[varintz] GLO} {18: KV/KV GLO} {19: CoGBK/CoGBK GLO} {20: KV/KV GLO} {21: int/int[varintz] GLO} {22: []uint8/bytes GLO} {23: int/int[varintz] GLO} {24: []uint8/bytes GLO} {25: int/int[varintz] GLO} {26: int/int[varintz] GLO} {27: int/int[varintz] GLO} {28: []uint8/bytes GLO} {29: []uint8/bytes GLO} {30: string/string GLO} {31: []uint8/bytes GLO} {32: string/string GLO} {33: string/string GLO} {34: string/string GLO} {35: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: Impulse [] -> [Out: []uint8 -> {7: []uint8/bytes GLO}] 8: ParDo [In(Main): []uint8 <- {7: []uint8/bytes GLO}] -> [Out: T -> {8: *batchmap.Entry/R[*batchmap.Entry] GLO}] 9: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {9: *batchmap.Tile/R[*batchmap.Tile] GLO}] 10: ParDo [In(Main): *batchmap.Entry <- {8: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {10: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 11: ParDo [In(Main): *batchmap.Tile <- {9: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {11: KV<[]uint8,*batchmap.Tile>/KV GLO}] 12: ParDo [In(Main): batchmap.nodeHash <- {10: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 13: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {11: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {13: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 14: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {13: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] 15: ParDo [In(Main): T <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {15: *batchmap.Tile/R[*batchmap.Tile] GLO}] 16: ParDo [In(Main): *batchmap.Tile <- {15: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {16: string/string GLO}] 17: ParDo [In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {17: int/int[varintz] GLO}] 18: ParDo [In(Main): T <- {17: int/int[varintz] GLO}] -> [Out: KV -> {18: KV/KV GLO}] 19: CoGBK [In(Main): KV <- {18: KV/KV GLO}] -> [Out: CoGBK -> {19: CoGBK/CoGBK GLO}] 20: Combine [In(Main): int <- {19: CoGBK/CoGBK GLO}] -> [Out: KV -> {20: KV/KV GLO}] 21: ParDo [In(Main): KV <- {20: KV/KV GLO}] -> [Out: Y -> {21: int/int[varintz] GLO}] 22: Impulse [] -> [Out: []uint8 -> {22: []uint8/bytes GLO}] 23: ParDo [In(Main): []uint8 <- {22: []uint8/bytes GLO}] -> [Out: T -> {23: int/int[varintz] GLO}] 24: Impulse [] -> [Out: []uint8 -> {24: []uint8/bytes GLO}] 25: ParDo [In(Main): []uint8 <- {24: []uint8/bytes GLO} In(Iter): T <- {21: int/int[varintz] GLO} In(Iter): T <- {23: int/int[varintz] GLO}] -> [Out: T -> {25: int/int[varintz] GLO} Out: T -> {26: int/int[varintz] GLO} Out: T -> {27: int/int[varintz] GLO}] 26: Impulse [] -> [Out: []uint8 -> {28: []uint8/bytes GLO}] 27: ParDo [In(Main): []uint8 <- {28: []uint8/bytes GLO} In(Iter): T <- {25: int/int[varintz] GLO} In(Iter): T <- {26: int/int[varintz] GLO} In(Iter): T <- {27: int/int[varintz] GLO}] -> [] 28: Impulse [] -> [Out: []uint8 -> {29: []uint8/bytes GLO}] 29: ParDo [In(Main): []uint8 <- {29: []uint8/bytes GLO}] -> [Out: T -> {30: string/string GLO}] 30: Impulse [] -> [Out: []uint8 -> {31: []uint8/bytes GLO}] 31: ParDo [In(Main): []uint8 <- {31: []uint8/bytes GLO} In(Iter): T <- {16: string/string GLO} In(Iter): T <- {30: string/string GLO}] -> [Out: T -> {32: string/string GLO} Out: T -> {33: string/string GLO} Out: T -> {34: string/string GLO}] 32: Impulse [] -> [Out: []uint8 -> {35: []uint8/bytes GLO}] 33: ParDo [In(Main): []uint8 <- {35: []uint8/bytes GLO} In(Iter): T <- {32: string/string GLO} In(Iter): T <- {33: string/string GLO} In(Iter): T <- {34: string/string GLO}] -> [] 2024/09/21 00:42:41 Plan[plan]: 41: Impulse[0] 45: Impulse[0] 47: Impulse[0] 48: Impulse[0] 49: Impulse[0] 51: Impulse[0] 52: Impulse[0] 53: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestUpdate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: ParDo[batchmap.tileUpdateFn] Out:[27] 29: CoGBK. Out:28 30: Flatten[2]. Out:CoGBK. Out:28 31: Inject[0]. Out:30 32: Inject[1]. Out:30 33: ParDo[batchmap.updateStratum.func1] Out:[31] 34: ParDo[beam.partitionFn] Out:[33] 35: ParDo[batchmap.tileHashFn] Out:[34] 36: CoGBK. Out:35 37: Inject[0]. Out:36 38: ParDo[batchmap.leafShardFn] Out:[37] 39: ParDo[batchmap.entryToNodeHashFn] Out:[38] 40: ParDo[beam.createFn] Out:[39] 42: ParDo[batchmap.leafShardFn] Out:[32] 43: ParDo[batchmap.entryToNodeHashFn] Out:[42] 44: ParDo[beam.createFn] Out:[43] 46: ParDo[beam.createFn] Out:[20] 50: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:41 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[18] done 2024/09/21 00:42:41 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[13] done 2024/09/21 00:42:41 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[7] done 2024/09/21 00:42:41 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[2] done 2024/09/21 00:42:41 Executing pipeline with the direct runner. 2024/09/21 00:42:41 Pipeline: 2024/09/21 00:42:41 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {12: KV<[]uint8,batchmap.nodeHash>/KV GLO} {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {14: *batchmap.Tile/R[*batchmap.Tile] GLO} {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {16: KV<[]uint8,batchmap.nodeHash>/KV GLO} {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {18: *batchmap.Tile/R[*batchmap.Tile] GLO} {19: *batchmap.Tile/R[*batchmap.Tile] GLO} {20: []uint8/bytes GLO} {21: *batchmap.Entry/R[*batchmap.Entry] GLO} {22: *batchmap.Tile/R[*batchmap.Tile] GLO} {23: *batchmap.Tile/R[*batchmap.Tile] GLO} {24: *batchmap.Tile/R[*batchmap.Tile] GLO} {25: *batchmap.Tile/R[*batchmap.Tile] GLO} {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {27: KV<[]uint8,*batchmap.Tile>/KV GLO} {28: KV<[]uint8,batchmap.nodeHash>/KV GLO} {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {30: *batchmap.Tile/R[*batchmap.Tile] GLO} {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {32: KV<[]uint8,*batchmap.Tile>/KV GLO} {33: KV<[]uint8,batchmap.nodeHash>/KV GLO} {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {35: *batchmap.Tile/R[*batchmap.Tile] GLO} {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {37: KV<[]uint8,*batchmap.Tile>/KV GLO} {38: KV<[]uint8,batchmap.nodeHash>/KV GLO} {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {40: *batchmap.Tile/R[*batchmap.Tile] GLO} {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {42: KV<[]uint8,*batchmap.Tile>/KV GLO} {43: KV<[]uint8,batchmap.nodeHash>/KV GLO} {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {45: *batchmap.Tile/R[*batchmap.Tile] GLO} {46: *batchmap.Tile/R[*batchmap.Tile] GLO} {47: *batchmap.Tile/R[*batchmap.Tile] GLO} {48: string/string GLO} {49: int/int[varintz] GLO} {50: KV/KV GLO} {51: CoGBK/CoGBK GLO} {52: KV/KV GLO} {53: int/int[varintz] GLO} {54: []uint8/bytes GLO} {55: int/int[varintz] GLO} {56: []uint8/bytes GLO} {57: int/int[varintz] GLO} {58: int/int[varintz] GLO} {59: int/int[varintz] GLO} {60: []uint8/bytes GLO} {61: []uint8/bytes GLO} {62: string/string GLO} {63: []uint8/bytes GLO} {64: string/string GLO} {65: string/string GLO} {66: string/string GLO} {67: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: ParDo [In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 12: ParDo [In(Main): batchmap.nodeHash <- {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 13: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 14: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] 15: ParDo [In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 16: ParDo [In(Main): batchmap.nodeHash <- {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 17: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 18: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] 19: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] 20: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO}] -> [Out: T -> {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] 22: ParDo [In(Main): *batchmap.Tile <- {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {22: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {23: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {24: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] 23: ParDo [In(Main): *batchmap.Entry <- {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 24: ParDo [In(Main): *batchmap.Tile <- {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {27: KV<[]uint8,*batchmap.Tile>/KV GLO}] 25: ParDo [In(Main): batchmap.nodeHash <- {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 26: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {27: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 27: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] 28: ParDo [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 29: ParDo [In(Main): *batchmap.Tile <- {24: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {32: KV<[]uint8,*batchmap.Tile>/KV GLO}] 30: ParDo [In(Main): batchmap.nodeHash <- {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 31: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {32: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 32: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] 33: ParDo [In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 34: ParDo [In(Main): *batchmap.Tile <- {23: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {37: KV<[]uint8,*batchmap.Tile>/KV GLO}] 35: ParDo [In(Main): batchmap.nodeHash <- {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 36: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {37: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 37: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] 38: ParDo [In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 39: ParDo [In(Main): *batchmap.Tile <- {22: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {42: KV<[]uint8,*batchmap.Tile>/KV GLO}] 40: ParDo [In(Main): batchmap.nodeHash <- {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 41: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {42: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 42: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] 43: Flatten [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] 44: ParDo [In(Main): T <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] 45: ParDo [In(Main): *batchmap.Tile <- {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {48: string/string GLO}] 46: ParDo [In(Main): *batchmap.Tile <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {49: int/int[varintz] GLO}] 47: ParDo [In(Main): T <- {49: int/int[varintz] GLO}] -> [Out: KV -> {50: KV/KV GLO}] 48: CoGBK [In(Main): KV <- {50: KV/KV GLO}] -> [Out: CoGBK -> {51: CoGBK/CoGBK GLO}] 49: Combine [In(Main): int <- {51: CoGBK/CoGBK GLO}] -> [Out: KV -> {52: KV/KV GLO}] 50: ParDo [In(Main): KV <- {52: KV/KV GLO}] -> [Out: Y -> {53: int/int[varintz] GLO}] 51: Impulse [] -> [Out: []uint8 -> {54: []uint8/bytes GLO}] 52: ParDo [In(Main): []uint8 <- {54: []uint8/bytes GLO}] -> [Out: T -> {55: int/int[varintz] GLO}] 53: Impulse [] -> [Out: []uint8 -> {56: []uint8/bytes GLO}] 54: ParDo [In(Main): []uint8 <- {56: []uint8/bytes GLO} In(Iter): T <- {53: int/int[varintz] GLO} In(Iter): T <- {55: int/int[varintz] GLO}] -> [Out: T -> {57: int/int[varintz] GLO} Out: T -> {58: int/int[varintz] GLO} Out: T -> {59: int/int[varintz] GLO}] 55: Impulse [] -> [Out: []uint8 -> {60: []uint8/bytes GLO}] 56: ParDo [In(Main): []uint8 <- {60: []uint8/bytes GLO} In(Iter): T <- {57: int/int[varintz] GLO} In(Iter): T <- {58: int/int[varintz] GLO} In(Iter): T <- {59: int/int[varintz] GLO}] -> [] 57: Impulse [] -> [Out: []uint8 -> {61: []uint8/bytes GLO}] 58: ParDo [In(Main): []uint8 <- {61: []uint8/bytes GLO}] -> [Out: T -> {62: string/string GLO}] 59: Impulse [] -> [Out: []uint8 -> {63: []uint8/bytes GLO}] 60: ParDo [In(Main): []uint8 <- {63: []uint8/bytes GLO} In(Iter): T <- {48: string/string GLO} In(Iter): T <- {62: string/string GLO}] -> [Out: T -> {64: string/string GLO} Out: T -> {65: string/string GLO} Out: T -> {66: string/string GLO}] 61: Impulse [] -> [Out: []uint8 -> {67: []uint8/bytes GLO}] 62: ParDo [In(Main): []uint8 <- {67: []uint8/bytes GLO} In(Iter): T <- {64: string/string GLO} In(Iter): T <- {65: string/string GLO} In(Iter): T <- {66: string/string GLO}] -> [] 2024/09/21 00:42:41 Plan[plan]: 88: Impulse[0] 92: Impulse[0] 94: Impulse[0] 95: Impulse[0] 96: Impulse[0] 98: Impulse[0] 99: Impulse[0] 100: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestUpdate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: Flatten[4]. Out:Multiplex. Out:[11 26] 29: ParDo[batchmap.tileUpdateFn] Out:[28] 30: CoGBK. Out:29 31: Flatten[2]. Out:CoGBK. Out:29 32: Inject[0]. Out:31 33: Inject[1]. Out:31 34: ParDo[batchmap.updateStratum.func1] Out:[32] 35: ParDo[batchmap.leafShardFn] Out:[33] 36: ParDo[batchmap.tileToNodeHashFn] Out:[35] 37: Multiplex. Out:[36 28] 38: ParDo[batchmap.tileUpdateFn] Out:[37] 39: CoGBK. Out:38 40: Flatten[2]. Out:CoGBK. Out:38 41: Inject[0]. Out:40 42: Inject[1]. Out:40 43: ParDo[batchmap.updateStratum.func1] Out:[41] 44: ParDo[batchmap.leafShardFn] Out:[42] 45: ParDo[batchmap.tileToNodeHashFn] Out:[44] 46: Multiplex. Out:[45 28] 47: ParDo[batchmap.tileUpdateFn] Out:[46] 48: CoGBK. Out:47 49: Flatten[2]. Out:CoGBK. Out:47 50: Inject[0]. Out:49 51: Inject[1]. Out:49 52: ParDo[batchmap.updateStratum.func1] Out:[50] 53: ParDo[batchmap.leafShardFn] Out:[51] 54: ParDo[batchmap.tileToNodeHashFn] Out:[53] 55: Multiplex. Out:[54 28] 56: ParDo[batchmap.tileUpdateFn] Out:[55] 57: CoGBK. Out:56 58: Flatten[2]. Out:CoGBK. Out:56 59: Inject[0]. Out:58 60: Inject[1]. Out:58 61: ParDo[batchmap.updateStratum.func1] Out:[59] 62: ParDo[beam.partitionFn] Out:[34 43 52 61] 63: Flatten[4]. Out:ParDo[beam.partitionFn] Out:[34 43 52 61] 64: ParDo[batchmap.tileHashFn] Out:[63] 65: CoGBK. Out:64 66: Inject[0]. Out:65 67: ParDo[batchmap.leafShardFn] Out:[66] 68: ParDo[batchmap.tileToNodeHashFn] Out:[67] 69: Multiplex. Out:[68 63] 70: ParDo[batchmap.tileHashFn] Out:[69] 71: CoGBK. Out:70 72: Inject[0]. Out:71 73: ParDo[batchmap.leafShardFn] Out:[72] 74: ParDo[batchmap.tileToNodeHashFn] Out:[73] 75: Multiplex. Out:[74 63] 76: ParDo[batchmap.tileHashFn] Out:[75] 77: CoGBK. Out:76 78: Inject[0]. Out:77 79: ParDo[batchmap.leafShardFn] Out:[78] 80: ParDo[batchmap.tileToNodeHashFn] Out:[79] 81: Multiplex. Out:[80 63] 82: ParDo[batchmap.tileHashFn] Out:[81] 83: CoGBK. Out:82 84: Inject[0]. Out:83 85: ParDo[batchmap.leafShardFn] Out:[84] 86: ParDo[batchmap.entryToNodeHashFn] Out:[85] 87: ParDo[beam.createFn] Out:[86] 89: ParDo[batchmap.leafShardFn] Out:[60] 90: ParDo[batchmap.entryToNodeHashFn] Out:[89] 91: ParDo[beam.createFn] Out:[90] 93: ParDo[beam.createFn] Out:[20] 97: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:41 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[18] done 2024/09/21 00:42:41 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[13] done 2024/09/21 00:42:41 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[7] done 2024/09/21 00:42:41 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[2] done 2024/09/21 00:42:41 Executing pipeline with the direct runner. 2024/09/21 00:42:41 Pipeline: 2024/09/21 00:42:41 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {12: KV<[]uint8,batchmap.nodeHash>/KV GLO} {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {14: *batchmap.Tile/R[*batchmap.Tile] GLO} {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {16: KV<[]uint8,batchmap.nodeHash>/KV GLO} {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {18: *batchmap.Tile/R[*batchmap.Tile] GLO} {19: *batchmap.Tile/R[*batchmap.Tile] GLO} {20: []uint8/bytes GLO} {21: *batchmap.Entry/R[*batchmap.Entry] GLO} {22: *batchmap.Tile/R[*batchmap.Tile] GLO} {23: *batchmap.Tile/R[*batchmap.Tile] GLO} {24: *batchmap.Tile/R[*batchmap.Tile] GLO} {25: *batchmap.Tile/R[*batchmap.Tile] GLO} {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {27: KV<[]uint8,*batchmap.Tile>/KV GLO} {28: KV<[]uint8,batchmap.nodeHash>/KV GLO} {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {30: *batchmap.Tile/R[*batchmap.Tile] GLO} {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {32: KV<[]uint8,*batchmap.Tile>/KV GLO} {33: KV<[]uint8,batchmap.nodeHash>/KV GLO} {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {35: *batchmap.Tile/R[*batchmap.Tile] GLO} {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {37: KV<[]uint8,*batchmap.Tile>/KV GLO} {38: KV<[]uint8,batchmap.nodeHash>/KV GLO} {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {40: *batchmap.Tile/R[*batchmap.Tile] GLO} {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {42: KV<[]uint8,*batchmap.Tile>/KV GLO} {43: KV<[]uint8,batchmap.nodeHash>/KV GLO} {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {45: *batchmap.Tile/R[*batchmap.Tile] GLO} {46: *batchmap.Tile/R[*batchmap.Tile] GLO} {47: *batchmap.Tile/R[*batchmap.Tile] GLO} {48: string/string GLO} {49: int/int[varintz] GLO} {50: KV/KV GLO} {51: CoGBK/CoGBK GLO} {52: KV/KV GLO} {53: int/int[varintz] GLO} {54: []uint8/bytes GLO} {55: int/int[varintz] GLO} {56: []uint8/bytes GLO} {57: int/int[varintz] GLO} {58: int/int[varintz] GLO} {59: int/int[varintz] GLO} {60: []uint8/bytes GLO} {61: []uint8/bytes GLO} {62: string/string GLO} {63: []uint8/bytes GLO} {64: string/string GLO} {65: string/string GLO} {66: string/string GLO} {67: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: ParDo [In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 12: ParDo [In(Main): batchmap.nodeHash <- {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 13: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 14: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] 15: ParDo [In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 16: ParDo [In(Main): batchmap.nodeHash <- {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 17: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 18: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] 19: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] 20: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO}] -> [Out: T -> {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] 22: ParDo [In(Main): *batchmap.Tile <- {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {22: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {23: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {24: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] 23: ParDo [In(Main): *batchmap.Entry <- {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 24: ParDo [In(Main): *batchmap.Tile <- {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {27: KV<[]uint8,*batchmap.Tile>/KV GLO}] 25: ParDo [In(Main): batchmap.nodeHash <- {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 26: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {27: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 27: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] 28: ParDo [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 29: ParDo [In(Main): *batchmap.Tile <- {24: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {32: KV<[]uint8,*batchmap.Tile>/KV GLO}] 30: ParDo [In(Main): batchmap.nodeHash <- {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 31: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {32: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 32: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] 33: ParDo [In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 34: ParDo [In(Main): *batchmap.Tile <- {23: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {37: KV<[]uint8,*batchmap.Tile>/KV GLO}] 35: ParDo [In(Main): batchmap.nodeHash <- {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 36: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {37: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 37: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] 38: ParDo [In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 39: ParDo [In(Main): *batchmap.Tile <- {22: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {42: KV<[]uint8,*batchmap.Tile>/KV GLO}] 40: ParDo [In(Main): batchmap.nodeHash <- {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 41: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {42: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 42: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] 43: Flatten [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] 44: ParDo [In(Main): T <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] 45: ParDo [In(Main): *batchmap.Tile <- {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {48: string/string GLO}] 46: ParDo [In(Main): *batchmap.Tile <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {49: int/int[varintz] GLO}] 47: ParDo [In(Main): T <- {49: int/int[varintz] GLO}] -> [Out: KV -> {50: KV/KV GLO}] 48: CoGBK [In(Main): KV <- {50: KV/KV GLO}] -> [Out: CoGBK -> {51: CoGBK/CoGBK GLO}] 49: Combine [In(Main): int <- {51: CoGBK/CoGBK GLO}] -> [Out: KV -> {52: KV/KV GLO}] 50: ParDo [In(Main): KV <- {52: KV/KV GLO}] -> [Out: Y -> {53: int/int[varintz] GLO}] 51: Impulse [] -> [Out: []uint8 -> {54: []uint8/bytes GLO}] 52: ParDo [In(Main): []uint8 <- {54: []uint8/bytes GLO}] -> [Out: T -> {55: int/int[varintz] GLO}] 53: Impulse [] -> [Out: []uint8 -> {56: []uint8/bytes GLO}] 54: ParDo [In(Main): []uint8 <- {56: []uint8/bytes GLO} In(Iter): T <- {53: int/int[varintz] GLO} In(Iter): T <- {55: int/int[varintz] GLO}] -> [Out: T -> {57: int/int[varintz] GLO} Out: T -> {58: int/int[varintz] GLO} Out: T -> {59: int/int[varintz] GLO}] 55: Impulse [] -> [Out: []uint8 -> {60: []uint8/bytes GLO}] 56: ParDo [In(Main): []uint8 <- {60: []uint8/bytes GLO} In(Iter): T <- {57: int/int[varintz] GLO} In(Iter): T <- {58: int/int[varintz] GLO} In(Iter): T <- {59: int/int[varintz] GLO}] -> [] 57: Impulse [] -> [Out: []uint8 -> {61: []uint8/bytes GLO}] 58: ParDo [In(Main): []uint8 <- {61: []uint8/bytes GLO}] -> [Out: T -> {62: string/string GLO}] 59: Impulse [] -> [Out: []uint8 -> {63: []uint8/bytes GLO}] 60: ParDo [In(Main): []uint8 <- {63: []uint8/bytes GLO} In(Iter): T <- {48: string/string GLO} In(Iter): T <- {62: string/string GLO}] -> [Out: T -> {64: string/string GLO} Out: T -> {65: string/string GLO} Out: T -> {66: string/string GLO}] 61: Impulse [] -> [Out: []uint8 -> {67: []uint8/bytes GLO}] 62: ParDo [In(Main): []uint8 <- {67: []uint8/bytes GLO} In(Iter): T <- {64: string/string GLO} In(Iter): T <- {65: string/string GLO} In(Iter): T <- {66: string/string GLO}] -> [] 2024/09/21 00:42:41 Plan[plan]: 88: Impulse[0] 92: Impulse[0] 94: Impulse[0] 95: Impulse[0] 96: Impulse[0] 98: Impulse[0] 99: Impulse[0] 100: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestUpdate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: Flatten[4]. Out:Multiplex. Out:[11 26] 29: ParDo[batchmap.tileUpdateFn] Out:[28] 30: CoGBK. Out:29 31: Flatten[2]. Out:CoGBK. Out:29 32: Inject[0]. Out:31 33: Inject[1]. Out:31 34: ParDo[batchmap.updateStratum.func1] Out:[32] 35: ParDo[batchmap.leafShardFn] Out:[33] 36: ParDo[batchmap.tileToNodeHashFn] Out:[35] 37: Multiplex. Out:[36 28] 38: ParDo[batchmap.tileUpdateFn] Out:[37] 39: CoGBK. Out:38 40: Flatten[2]. Out:CoGBK. Out:38 41: Inject[0]. Out:40 42: Inject[1]. Out:40 43: ParDo[batchmap.updateStratum.func1] Out:[41] 44: ParDo[batchmap.leafShardFn] Out:[42] 45: ParDo[batchmap.tileToNodeHashFn] Out:[44] 46: Multiplex. Out:[45 28] 47: ParDo[batchmap.tileUpdateFn] Out:[46] 48: CoGBK. Out:47 49: Flatten[2]. Out:CoGBK. Out:47 50: Inject[0]. Out:49 51: Inject[1]. Out:49 52: ParDo[batchmap.updateStratum.func1] Out:[50] 53: ParDo[batchmap.leafShardFn] Out:[51] 54: ParDo[batchmap.tileToNodeHashFn] Out:[53] 55: Multiplex. Out:[54 28] 56: ParDo[batchmap.tileUpdateFn] Out:[55] 57: CoGBK. Out:56 58: Flatten[2]. Out:CoGBK. Out:56 59: Inject[0]. Out:58 60: Inject[1]. Out:58 61: ParDo[batchmap.updateStratum.func1] Out:[59] 62: ParDo[beam.partitionFn] Out:[34 43 52 61] 63: Flatten[4]. Out:ParDo[beam.partitionFn] Out:[34 43 52 61] 64: ParDo[batchmap.tileHashFn] Out:[63] 65: CoGBK. Out:64 66: Inject[0]. Out:65 67: ParDo[batchmap.leafShardFn] Out:[66] 68: ParDo[batchmap.tileToNodeHashFn] Out:[67] 69: Multiplex. Out:[68 63] 70: ParDo[batchmap.tileHashFn] Out:[69] 71: CoGBK. Out:70 72: Inject[0]. Out:71 73: ParDo[batchmap.leafShardFn] Out:[72] 74: ParDo[batchmap.tileToNodeHashFn] Out:[73] 75: Multiplex. Out:[74 63] 76: ParDo[batchmap.tileHashFn] Out:[75] 77: CoGBK. Out:76 78: Inject[0]. Out:77 79: ParDo[batchmap.leafShardFn] Out:[78] 80: ParDo[batchmap.tileToNodeHashFn] Out:[79] 81: Multiplex. Out:[80 63] 82: ParDo[batchmap.tileHashFn] Out:[81] 83: CoGBK. Out:82 84: Inject[0]. Out:83 85: ParDo[batchmap.leafShardFn] Out:[84] 86: ParDo[batchmap.entryToNodeHashFn] Out:[85] 87: ParDo[beam.createFn] Out:[86] 89: ParDo[batchmap.leafShardFn] Out:[60] 90: ParDo[batchmap.entryToNodeHashFn] Out:[89] 91: ParDo[beam.createFn] Out:[90] 93: ParDo[beam.createFn] Out:[20] 97: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:41 Executing pipeline with the direct runner. 2024/09/21 00:42:41 Pipeline: 2024/09/21 00:42:41 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: *batchmap.Tile/R[*batchmap.Tile] GLO} {12: *batchmap.Tile/R[*batchmap.Tile] GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] 12: ParDo [In(Main): T <- {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {12: *batchmap.Tile/R[*batchmap.Tile] GLO}] 13: ParDo [In(Main): X <- {12: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [] 2024/09/21 00:42:41 Plan[plan]: 16: Impulse[0] 1: ParDo[passert.failFn] Out:[] 2: ParDo[filter.filterFn] Out:[1] 3: Flatten[2]. Out:ParDo[filter.filterFn] Out:[1] 4: ParDo[batchmap.tileHashFn] Out:[3] 5: CoGBK. Out:4 6: Inject[0]. Out:5 7: ParDo[batchmap.leafShardFn] Out:[6] 8: ParDo[batchmap.tileToNodeHashFn] Out:[7] 9: Multiplex. Out:[8 3] 10: ParDo[batchmap.tileHashFn] Out:[9] 11: CoGBK. Out:10 12: Inject[0]. Out:11 13: ParDo[batchmap.leafShardFn] Out:[12] 14: ParDo[batchmap.entryToNodeHashFn] Out:[13] 15: ParDo[beam.createFn] Out:[14] 2024/09/21 00:42:41 Executing pipeline with the direct runner. 2024/09/21 00:42:41 Pipeline: 2024/09/21 00:42:41 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {12: KV<[]uint8,batchmap.nodeHash>/KV GLO} {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {14: *batchmap.Tile/R[*batchmap.Tile] GLO} {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {16: KV<[]uint8,batchmap.nodeHash>/KV GLO} {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {18: *batchmap.Tile/R[*batchmap.Tile] GLO} {19: *batchmap.Tile/R[*batchmap.Tile] GLO} {20: *batchmap.Tile/R[*batchmap.Tile] GLO} {21: string/string GLO} {22: int/int[varintz] GLO} {23: KV/KV GLO} {24: CoGBK/CoGBK GLO} {25: KV/KV GLO} {26: int/int[varintz] GLO} {27: []uint8/bytes GLO} {28: int/int[varintz] GLO} {29: []uint8/bytes GLO} {30: int/int[varintz] GLO} {31: int/int[varintz] GLO} {32: int/int[varintz] GLO} {33: []uint8/bytes GLO} {34: []uint8/bytes GLO} {35: string/string GLO} {36: []uint8/bytes GLO} {37: string/string GLO} {38: string/string GLO} {39: string/string GLO} {40: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: ParDo [In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 12: ParDo [In(Main): batchmap.nodeHash <- {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 13: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 14: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] 15: ParDo [In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 16: ParDo [In(Main): batchmap.nodeHash <- {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 17: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 18: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] 19: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] 20: ParDo [In(Main): T <- {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {20: *batchmap.Tile/R[*batchmap.Tile] GLO}] 21: ParDo [In(Main): *batchmap.Tile <- {20: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {21: string/string GLO}] 22: ParDo [In(Main): *batchmap.Tile <- {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {22: int/int[varintz] GLO}] 23: ParDo [In(Main): T <- {22: int/int[varintz] GLO}] -> [Out: KV -> {23: KV/KV GLO}] 24: CoGBK [In(Main): KV <- {23: KV/KV GLO}] -> [Out: CoGBK -> {24: CoGBK/CoGBK GLO}] 25: Combine [In(Main): int <- {24: CoGBK/CoGBK GLO}] -> [Out: KV -> {25: KV/KV GLO}] 26: ParDo [In(Main): KV <- {25: KV/KV GLO}] -> [Out: Y -> {26: int/int[varintz] GLO}] 27: Impulse [] -> [Out: []uint8 -> {27: []uint8/bytes GLO}] 28: ParDo [In(Main): []uint8 <- {27: []uint8/bytes GLO}] -> [Out: T -> {28: int/int[varintz] GLO}] 29: Impulse [] -> [Out: []uint8 -> {29: []uint8/bytes GLO}] 30: ParDo [In(Main): []uint8 <- {29: []uint8/bytes GLO} In(Iter): T <- {26: int/int[varintz] GLO} In(Iter): T <- {28: int/int[varintz] GLO}] -> [Out: T -> {30: int/int[varintz] GLO} Out: T -> {31: int/int[varintz] GLO} Out: T -> {32: int/int[varintz] GLO}] 31: Impulse [] -> [Out: []uint8 -> {33: []uint8/bytes GLO}] 32: ParDo [In(Main): []uint8 <- {33: []uint8/bytes GLO} In(Iter): T <- {30: int/int[varintz] GLO} In(Iter): T <- {31: int/int[varintz] GLO} In(Iter): T <- {32: int/int[varintz] GLO}] -> [] 33: Impulse [] -> [Out: []uint8 -> {34: []uint8/bytes GLO}] 34: ParDo [In(Main): []uint8 <- {34: []uint8/bytes GLO}] -> [Out: T -> {35: string/string GLO}] 35: Impulse [] -> [Out: []uint8 -> {36: []uint8/bytes GLO}] 36: ParDo [In(Main): []uint8 <- {36: []uint8/bytes GLO} In(Iter): T <- {21: string/string GLO} In(Iter): T <- {35: string/string GLO}] -> [Out: T -> {37: string/string GLO} Out: T -> {38: string/string GLO} Out: T -> {39: string/string GLO}] 37: Impulse [] -> [Out: []uint8 -> {40: []uint8/bytes GLO}] 38: ParDo [In(Main): []uint8 <- {40: []uint8/bytes GLO} In(Iter): T <- {37: string/string GLO} In(Iter): T <- {38: string/string GLO} In(Iter): T <- {39: string/string GLO}] -> [] 2024/09/21 00:42:41 Plan[plan]: 53: Impulse[0] 55: Impulse[0] 56: Impulse[0] 57: Impulse[0] 59: Impulse[0] 60: Impulse[0] 61: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestGoldenCreate.func2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: Flatten[4]. Out:Multiplex. Out:[11 26] 29: ParDo[batchmap.tileHashFn] Out:[28] 30: CoGBK. Out:29 31: Inject[0]. Out:30 32: ParDo[batchmap.leafShardFn] Out:[31] 33: ParDo[batchmap.tileToNodeHashFn] Out:[32] 34: Multiplex. Out:[33 28] 35: ParDo[batchmap.tileHashFn] Out:[34] 36: CoGBK. Out:35 37: Inject[0]. Out:36 38: ParDo[batchmap.leafShardFn] Out:[37] 39: ParDo[batchmap.tileToNodeHashFn] Out:[38] 40: Multiplex. Out:[39 28] 41: ParDo[batchmap.tileHashFn] Out:[40] 42: CoGBK. Out:41 43: Inject[0]. Out:42 44: ParDo[batchmap.leafShardFn] Out:[43] 45: ParDo[batchmap.tileToNodeHashFn] Out:[44] 46: Multiplex. Out:[45 28] 47: ParDo[batchmap.tileHashFn] Out:[46] 48: CoGBK. Out:47 49: Inject[0]. Out:48 50: ParDo[batchmap.leafShardFn] Out:[49] 51: ParDo[batchmap.entryToNodeHashFn] Out:[50] 52: ParDo[beam.createFn] Out:[51] 54: ParDo[beam.createFn] Out:[20] 58: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:41 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[18] done 2024/09/21 00:42:41 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[13] done 2024/09/21 00:42:41 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[7] done 2024/09/21 00:42:41 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[2] done 2024/09/21 00:42:41 Executing pipeline with the direct runner. 2024/09/21 00:42:41 Pipeline: 2024/09/21 00:42:41 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {12: KV<[]uint8,batchmap.nodeHash>/KV GLO} {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {14: *batchmap.Tile/R[*batchmap.Tile] GLO} {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {16: KV<[]uint8,batchmap.nodeHash>/KV GLO} {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {18: *batchmap.Tile/R[*batchmap.Tile] GLO} {19: *batchmap.Tile/R[*batchmap.Tile] GLO} {20: []uint8/bytes GLO} {21: *batchmap.Entry/R[*batchmap.Entry] GLO} {22: *batchmap.Tile/R[*batchmap.Tile] GLO} {23: *batchmap.Tile/R[*batchmap.Tile] GLO} {24: *batchmap.Tile/R[*batchmap.Tile] GLO} {25: *batchmap.Tile/R[*batchmap.Tile] GLO} {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {27: KV<[]uint8,*batchmap.Tile>/KV GLO} {28: KV<[]uint8,batchmap.nodeHash>/KV GLO} {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {30: *batchmap.Tile/R[*batchmap.Tile] GLO} {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {32: KV<[]uint8,*batchmap.Tile>/KV GLO} {33: KV<[]uint8,batchmap.nodeHash>/KV GLO} {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {35: *batchmap.Tile/R[*batchmap.Tile] GLO} {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {37: KV<[]uint8,*batchmap.Tile>/KV GLO} {38: KV<[]uint8,batchmap.nodeHash>/KV GLO} {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {40: *batchmap.Tile/R[*batchmap.Tile] GLO} {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {42: KV<[]uint8,*batchmap.Tile>/KV GLO} {43: KV<[]uint8,batchmap.nodeHash>/KV GLO} {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {45: *batchmap.Tile/R[*batchmap.Tile] GLO} {46: *batchmap.Tile/R[*batchmap.Tile] GLO} {47: *batchmap.Tile/R[*batchmap.Tile] GLO} {48: string/string GLO} {49: int/int[varintz] GLO} {50: KV/KV GLO} {51: CoGBK/CoGBK GLO} {52: KV/KV GLO} {53: int/int[varintz] GLO} {54: []uint8/bytes GLO} {55: int/int[varintz] GLO} {56: []uint8/bytes GLO} {57: int/int[varintz] GLO} {58: int/int[varintz] GLO} {59: int/int[varintz] GLO} {60: []uint8/bytes GLO} {61: []uint8/bytes GLO} {62: string/string GLO} {63: []uint8/bytes GLO} {64: string/string GLO} {65: string/string GLO} {66: string/string GLO} {67: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: ParDo [In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 12: ParDo [In(Main): batchmap.nodeHash <- {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 13: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 14: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] 15: ParDo [In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 16: ParDo [In(Main): batchmap.nodeHash <- {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 17: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 18: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] 19: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] 20: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO}] -> [Out: T -> {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] 22: ParDo [In(Main): *batchmap.Tile <- {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {22: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {23: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {24: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] 23: ParDo [In(Main): *batchmap.Entry <- {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 24: ParDo [In(Main): *batchmap.Tile <- {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {27: KV<[]uint8,*batchmap.Tile>/KV GLO}] 25: ParDo [In(Main): batchmap.nodeHash <- {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 26: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {27: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 27: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] 28: ParDo [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 29: ParDo [In(Main): *batchmap.Tile <- {24: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {32: KV<[]uint8,*batchmap.Tile>/KV GLO}] 30: ParDo [In(Main): batchmap.nodeHash <- {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 31: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {32: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 32: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] 33: ParDo [In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 34: ParDo [In(Main): *batchmap.Tile <- {23: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {37: KV<[]uint8,*batchmap.Tile>/KV GLO}] 35: ParDo [In(Main): batchmap.nodeHash <- {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 36: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {37: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 37: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] 38: ParDo [In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 39: ParDo [In(Main): *batchmap.Tile <- {22: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {42: KV<[]uint8,*batchmap.Tile>/KV GLO}] 40: ParDo [In(Main): batchmap.nodeHash <- {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 41: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {42: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 42: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] 43: Flatten [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] 44: ParDo [In(Main): T <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] 45: ParDo [In(Main): *batchmap.Tile <- {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {48: string/string GLO}] 46: ParDo [In(Main): *batchmap.Tile <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {49: int/int[varintz] GLO}] 47: ParDo [In(Main): T <- {49: int/int[varintz] GLO}] -> [Out: KV -> {50: KV/KV GLO}] 48: CoGBK [In(Main): KV <- {50: KV/KV GLO}] -> [Out: CoGBK -> {51: CoGBK/CoGBK GLO}] 49: Combine [In(Main): int <- {51: CoGBK/CoGBK GLO}] -> [Out: KV -> {52: KV/KV GLO}] 50: ParDo [In(Main): KV <- {52: KV/KV GLO}] -> [Out: Y -> {53: int/int[varintz] GLO}] 51: Impulse [] -> [Out: []uint8 -> {54: []uint8/bytes GLO}] 52: ParDo [In(Main): []uint8 <- {54: []uint8/bytes GLO}] -> [Out: T -> {55: int/int[varintz] GLO}] 53: Impulse [] -> [Out: []uint8 -> {56: []uint8/bytes GLO}] 54: ParDo [In(Main): []uint8 <- {56: []uint8/bytes GLO} In(Iter): T <- {53: int/int[varintz] GLO} In(Iter): T <- {55: int/int[varintz] GLO}] -> [Out: T -> {57: int/int[varintz] GLO} Out: T -> {58: int/int[varintz] GLO} Out: T -> {59: int/int[varintz] GLO}] 55: Impulse [] -> [Out: []uint8 -> {60: []uint8/bytes GLO}] 56: ParDo [In(Main): []uint8 <- {60: []uint8/bytes GLO} In(Iter): T <- {57: int/int[varintz] GLO} In(Iter): T <- {58: int/int[varintz] GLO} In(Iter): T <- {59: int/int[varintz] GLO}] -> [] 57: Impulse [] -> [Out: []uint8 -> {61: []uint8/bytes GLO}] 58: ParDo [In(Main): []uint8 <- {61: []uint8/bytes GLO}] -> [Out: T -> {62: string/string GLO}] 59: Impulse [] -> [Out: []uint8 -> {63: []uint8/bytes GLO}] 60: ParDo [In(Main): []uint8 <- {63: []uint8/bytes GLO} In(Iter): T <- {48: string/string GLO} In(Iter): T <- {62: string/string GLO}] -> [Out: T -> {64: string/string GLO} Out: T -> {65: string/string GLO} Out: T -> {66: string/string GLO}] 61: Impulse [] -> [Out: []uint8 -> {67: []uint8/bytes GLO}] 62: ParDo [In(Main): []uint8 <- {67: []uint8/bytes GLO} In(Iter): T <- {64: string/string GLO} In(Iter): T <- {65: string/string GLO} In(Iter): T <- {66: string/string GLO}] -> [] 2024/09/21 00:42:41 Plan[plan]: 88: Impulse[0] 92: Impulse[0] 94: Impulse[0] 95: Impulse[0] 96: Impulse[0] 98: Impulse[0] 99: Impulse[0] 100: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestGoldenUpdate.func2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: Flatten[4]. Out:Multiplex. Out:[11 26] 29: ParDo[batchmap.tileUpdateFn] Out:[28] 30: CoGBK. Out:29 31: Flatten[2]. Out:CoGBK. Out:29 32: Inject[0]. Out:31 33: Inject[1]. Out:31 34: ParDo[batchmap.updateStratum.func1] Out:[32] 35: ParDo[batchmap.leafShardFn] Out:[33] 36: ParDo[batchmap.tileToNodeHashFn] Out:[35] 37: Multiplex. Out:[36 28] 38: ParDo[batchmap.tileUpdateFn] Out:[37] 39: CoGBK. Out:38 40: Flatten[2]. Out:CoGBK. Out:38 41: Inject[0]. Out:40 42: Inject[1]. Out:40 43: ParDo[batchmap.updateStratum.func1] Out:[41] 44: ParDo[batchmap.leafShardFn] Out:[42] 45: ParDo[batchmap.tileToNodeHashFn] Out:[44] 46: Multiplex. Out:[45 28] 47: ParDo[batchmap.tileUpdateFn] Out:[46] 48: CoGBK. Out:47 49: Flatten[2]. Out:CoGBK. Out:47 50: Inject[0]. Out:49 51: Inject[1]. Out:49 52: ParDo[batchmap.updateStratum.func1] Out:[50] 53: ParDo[batchmap.leafShardFn] Out:[51] 54: ParDo[batchmap.tileToNodeHashFn] Out:[53] 55: Multiplex. Out:[54 28] 56: ParDo[batchmap.tileUpdateFn] Out:[55] 57: CoGBK. Out:56 58: Flatten[2]. Out:CoGBK. Out:56 59: Inject[0]. Out:58 60: Inject[1]. Out:58 61: ParDo[batchmap.updateStratum.func1] Out:[59] 62: ParDo[beam.partitionFn] Out:[34 43 52 61] 63: Flatten[4]. Out:ParDo[beam.partitionFn] Out:[34 43 52 61] 64: ParDo[batchmap.tileHashFn] Out:[63] 65: CoGBK. Out:64 66: Inject[0]. Out:65 67: ParDo[batchmap.leafShardFn] Out:[66] 68: ParDo[batchmap.tileToNodeHashFn] Out:[67] 69: Multiplex. Out:[68 63] 70: ParDo[batchmap.tileHashFn] Out:[69] 71: CoGBK. Out:70 72: Inject[0]. Out:71 73: ParDo[batchmap.leafShardFn] Out:[72] 74: ParDo[batchmap.tileToNodeHashFn] Out:[73] 75: Multiplex. Out:[74 63] 76: ParDo[batchmap.tileHashFn] Out:[75] 77: CoGBK. Out:76 78: Inject[0]. Out:77 79: ParDo[batchmap.leafShardFn] Out:[78] 80: ParDo[batchmap.tileToNodeHashFn] Out:[79] 81: Multiplex. Out:[80 63] 82: ParDo[batchmap.tileHashFn] Out:[81] 83: CoGBK. Out:82 84: Inject[0]. Out:83 85: ParDo[batchmap.leafShardFn] Out:[84] 86: ParDo[batchmap.entryToNodeHashFn] Out:[85] 87: ParDo[beam.createFn] Out:[86] 89: ParDo[batchmap.leafShardFn] Out:[60] 90: ParDo[batchmap.entryToNodeHashFn] Out:[89] 91: ParDo[beam.createFn] Out:[90] 93: ParDo[beam.createFn] Out:[20] 97: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:41 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[18] done 2024/09/21 00:42:41 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[13] done 2024/09/21 00:42:41 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[7] done 2024/09/21 00:42:41 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:41 wait[2] done PASS ok github.com/google/trillian/experimental/batchmap 0.378s github.com/google/trillian/experimental/batchmap 2024/09/21 00:42:42 Executing pipeline with the direct runner. 2024/09/21 00:42:42 Pipeline: 2024/09/21 00:42:42 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: *batchmap.Tile/R[*batchmap.Tile] GLO} {8: string/string GLO} {9: int/int[varintz] GLO} {10: KV/KV GLO} {11: CoGBK/CoGBK GLO} {12: KV/KV GLO} {13: int/int[varintz] GLO} {14: []uint8/bytes GLO} {15: int/int[varintz] GLO} {16: []uint8/bytes GLO} {17: int/int[varintz] GLO} {18: int/int[varintz] GLO} {19: int/int[varintz] GLO} {20: []uint8/bytes GLO} {21: []uint8/bytes GLO} {22: string/string GLO} {23: []uint8/bytes GLO} {24: string/string GLO} {25: string/string GLO} {26: string/string GLO} {27: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): T <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] 8: ParDo [In(Main): *batchmap.Tile <- {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {8: string/string GLO}] 9: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {9: int/int[varintz] GLO}] 10: ParDo [In(Main): T <- {9: int/int[varintz] GLO}] -> [Out: KV -> {10: KV/KV GLO}] 11: CoGBK [In(Main): KV <- {10: KV/KV GLO}] -> [Out: CoGBK -> {11: CoGBK/CoGBK GLO}] 12: Combine [In(Main): int <- {11: CoGBK/CoGBK GLO}] -> [Out: KV -> {12: KV/KV GLO}] 13: ParDo [In(Main): KV <- {12: KV/KV GLO}] -> [Out: Y -> {13: int/int[varintz] GLO}] 14: Impulse [] -> [Out: []uint8 -> {14: []uint8/bytes GLO}] 15: ParDo [In(Main): []uint8 <- {14: []uint8/bytes GLO}] -> [Out: T -> {15: int/int[varintz] GLO}] 16: Impulse [] -> [Out: []uint8 -> {16: []uint8/bytes GLO}] 17: ParDo [In(Main): []uint8 <- {16: []uint8/bytes GLO} In(Iter): T <- {13: int/int[varintz] GLO} In(Iter): T <- {15: int/int[varintz] GLO}] -> [Out: T -> {17: int/int[varintz] GLO} Out: T -> {18: int/int[varintz] GLO} Out: T -> {19: int/int[varintz] GLO}] 18: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 19: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO} In(Iter): T <- {17: int/int[varintz] GLO} In(Iter): T <- {18: int/int[varintz] GLO} In(Iter): T <- {19: int/int[varintz] GLO}] -> [] 20: Impulse [] -> [Out: []uint8 -> {21: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {21: []uint8/bytes GLO}] -> [Out: T -> {22: string/string GLO}] 22: Impulse [] -> [Out: []uint8 -> {23: []uint8/bytes GLO}] 23: ParDo [In(Main): []uint8 <- {23: []uint8/bytes GLO} In(Iter): T <- {8: string/string GLO} In(Iter): T <- {22: string/string GLO}] -> [Out: T -> {24: string/string GLO} Out: T -> {25: string/string GLO} Out: T -> {26: string/string GLO}] 24: Impulse [] -> [Out: []uint8 -> {27: []uint8/bytes GLO}] 25: ParDo [In(Main): []uint8 <- {27: []uint8/bytes GLO} In(Iter): T <- {24: string/string GLO} In(Iter): T <- {25: string/string GLO} In(Iter): T <- {26: string/string GLO}] -> [] 2024/09/21 00:42:42 Plan[plan]: 34: Impulse[0] 36: Impulse[0] 37: Impulse[0] 38: Impulse[0] 40: Impulse[0] 41: Impulse[0] 42: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestCreate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: ParDo[batchmap.tileHashFn] Out:[27] 29: CoGBK. Out:28 30: Inject[0]. Out:29 31: ParDo[batchmap.leafShardFn] Out:[30] 32: ParDo[batchmap.entryToNodeHashFn] Out:[31] 33: ParDo[beam.createFn] Out:[32] 35: ParDo[beam.createFn] Out:[20] 39: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:42 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[18] done 2024/09/21 00:42:42 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[13] done 2024/09/21 00:42:42 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[7] done 2024/09/21 00:42:42 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[2] done 2024/09/21 00:42:42 Executing pipeline with the direct runner. 2024/09/21 00:42:42 Pipeline: 2024/09/21 00:42:42 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: *batchmap.Tile/R[*batchmap.Tile] GLO} {8: string/string GLO} {9: int/int[varintz] GLO} {10: KV/KV GLO} {11: CoGBK/CoGBK GLO} {12: KV/KV GLO} {13: int/int[varintz] GLO} {14: []uint8/bytes GLO} {15: int/int[varintz] GLO} {16: []uint8/bytes GLO} {17: int/int[varintz] GLO} {18: int/int[varintz] GLO} {19: int/int[varintz] GLO} {20: []uint8/bytes GLO} {21: []uint8/bytes GLO} {22: string/string GLO} {23: []uint8/bytes GLO} {24: string/string GLO} {25: string/string GLO} {26: string/string GLO} {27: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): T <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] 8: ParDo [In(Main): *batchmap.Tile <- {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {8: string/string GLO}] 9: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {9: int/int[varintz] GLO}] 10: ParDo [In(Main): T <- {9: int/int[varintz] GLO}] -> [Out: KV -> {10: KV/KV GLO}] 11: CoGBK [In(Main): KV <- {10: KV/KV GLO}] -> [Out: CoGBK -> {11: CoGBK/CoGBK GLO}] 12: Combine [In(Main): int <- {11: CoGBK/CoGBK GLO}] -> [Out: KV -> {12: KV/KV GLO}] 13: ParDo [In(Main): KV <- {12: KV/KV GLO}] -> [Out: Y -> {13: int/int[varintz] GLO}] 14: Impulse [] -> [Out: []uint8 -> {14: []uint8/bytes GLO}] 15: ParDo [In(Main): []uint8 <- {14: []uint8/bytes GLO}] -> [Out: T -> {15: int/int[varintz] GLO}] 16: Impulse [] -> [Out: []uint8 -> {16: []uint8/bytes GLO}] 17: ParDo [In(Main): []uint8 <- {16: []uint8/bytes GLO} In(Iter): T <- {13: int/int[varintz] GLO} In(Iter): T <- {15: int/int[varintz] GLO}] -> [Out: T -> {17: int/int[varintz] GLO} Out: T -> {18: int/int[varintz] GLO} Out: T -> {19: int/int[varintz] GLO}] 18: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 19: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO} In(Iter): T <- {17: int/int[varintz] GLO} In(Iter): T <- {18: int/int[varintz] GLO} In(Iter): T <- {19: int/int[varintz] GLO}] -> [] 20: Impulse [] -> [Out: []uint8 -> {21: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {21: []uint8/bytes GLO}] -> [Out: T -> {22: string/string GLO}] 22: Impulse [] -> [Out: []uint8 -> {23: []uint8/bytes GLO}] 23: ParDo [In(Main): []uint8 <- {23: []uint8/bytes GLO} In(Iter): T <- {8: string/string GLO} In(Iter): T <- {22: string/string GLO}] -> [Out: T -> {24: string/string GLO} Out: T -> {25: string/string GLO} Out: T -> {26: string/string GLO}] 24: Impulse [] -> [Out: []uint8 -> {27: []uint8/bytes GLO}] 25: ParDo [In(Main): []uint8 <- {27: []uint8/bytes GLO} In(Iter): T <- {24: string/string GLO} In(Iter): T <- {25: string/string GLO} In(Iter): T <- {26: string/string GLO}] -> [] 2024/09/21 00:42:42 Plan[plan]: 34: Impulse[0] 36: Impulse[0] 37: Impulse[0] 38: Impulse[0] 40: Impulse[0] 41: Impulse[0] 42: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestCreate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: ParDo[batchmap.tileHashFn] Out:[27] 29: CoGBK. Out:28 30: Inject[0]. Out:29 31: ParDo[batchmap.leafShardFn] Out:[30] 32: ParDo[batchmap.entryToNodeHashFn] Out:[31] 33: ParDo[beam.createFn] Out:[32] 35: ParDo[beam.createFn] Out:[20] 39: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:42 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[18] done 2024/09/21 00:42:42 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[13] done 2024/09/21 00:42:42 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[7] done 2024/09/21 00:42:42 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[2] done 2024/09/21 00:42:42 Executing pipeline with the direct runner. 2024/09/21 00:42:42 Pipeline: 2024/09/21 00:42:42 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: *batchmap.Tile/R[*batchmap.Tile] GLO} {12: *batchmap.Tile/R[*batchmap.Tile] GLO} {13: string/string GLO} {14: int/int[varintz] GLO} {15: KV/KV GLO} {16: CoGBK/CoGBK GLO} {17: KV/KV GLO} {18: int/int[varintz] GLO} {19: []uint8/bytes GLO} {20: int/int[varintz] GLO} {21: []uint8/bytes GLO} {22: int/int[varintz] GLO} {23: int/int[varintz] GLO} {24: int/int[varintz] GLO} {25: []uint8/bytes GLO} {26: []uint8/bytes GLO} {27: string/string GLO} {28: []uint8/bytes GLO} {29: string/string GLO} {30: string/string GLO} {31: string/string GLO} {32: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] 12: ParDo [In(Main): T <- {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {12: *batchmap.Tile/R[*batchmap.Tile] GLO}] 13: ParDo [In(Main): *batchmap.Tile <- {12: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {13: string/string GLO}] 14: ParDo [In(Main): *batchmap.Tile <- {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {14: int/int[varintz] GLO}] 15: ParDo [In(Main): T <- {14: int/int[varintz] GLO}] -> [Out: KV -> {15: KV/KV GLO}] 16: CoGBK [In(Main): KV <- {15: KV/KV GLO}] -> [Out: CoGBK -> {16: CoGBK/CoGBK GLO}] 17: Combine [In(Main): int <- {16: CoGBK/CoGBK GLO}] -> [Out: KV -> {17: KV/KV GLO}] 18: ParDo [In(Main): KV <- {17: KV/KV GLO}] -> [Out: Y -> {18: int/int[varintz] GLO}] 19: Impulse [] -> [Out: []uint8 -> {19: []uint8/bytes GLO}] 20: ParDo [In(Main): []uint8 <- {19: []uint8/bytes GLO}] -> [Out: T -> {20: int/int[varintz] GLO}] 21: Impulse [] -> [Out: []uint8 -> {21: []uint8/bytes GLO}] 22: ParDo [In(Main): []uint8 <- {21: []uint8/bytes GLO} In(Iter): T <- {18: int/int[varintz] GLO} In(Iter): T <- {20: int/int[varintz] GLO}] -> [Out: T -> {22: int/int[varintz] GLO} Out: T -> {23: int/int[varintz] GLO} Out: T -> {24: int/int[varintz] GLO}] 23: Impulse [] -> [Out: []uint8 -> {25: []uint8/bytes GLO}] 24: ParDo [In(Main): []uint8 <- {25: []uint8/bytes GLO} In(Iter): T <- {22: int/int[varintz] GLO} In(Iter): T <- {23: int/int[varintz] GLO} In(Iter): T <- {24: int/int[varintz] GLO}] -> [] 25: Impulse [] -> [Out: []uint8 -> {26: []uint8/bytes GLO}] 26: ParDo [In(Main): []uint8 <- {26: []uint8/bytes GLO}] -> [Out: T -> {27: string/string GLO}] 27: Impulse [] -> [Out: []uint8 -> {28: []uint8/bytes GLO}] 28: ParDo [In(Main): []uint8 <- {28: []uint8/bytes GLO} In(Iter): T <- {13: string/string GLO} In(Iter): T <- {27: string/string GLO}] -> [Out: T -> {29: string/string GLO} Out: T -> {30: string/string GLO} Out: T -> {31: string/string GLO}] 29: Impulse [] -> [Out: []uint8 -> {32: []uint8/bytes GLO}] 30: ParDo [In(Main): []uint8 <- {32: []uint8/bytes GLO} In(Iter): T <- {29: string/string GLO} In(Iter): T <- {30: string/string GLO} In(Iter): T <- {31: string/string GLO}] -> [] 2024/09/21 00:42:42 Plan[plan]: 41: Impulse[0] 43: Impulse[0] 44: Impulse[0] 45: Impulse[0] 47: Impulse[0] 48: Impulse[0] 49: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestCreate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: Flatten[2]. Out:Multiplex. Out:[11 26] 29: ParDo[batchmap.tileHashFn] Out:[28] 30: CoGBK. Out:29 31: Inject[0]. Out:30 32: ParDo[batchmap.leafShardFn] Out:[31] 33: ParDo[batchmap.tileToNodeHashFn] Out:[32] 34: Multiplex. Out:[33 28] 35: ParDo[batchmap.tileHashFn] Out:[34] 36: CoGBK. Out:35 37: Inject[0]. Out:36 38: ParDo[batchmap.leafShardFn] Out:[37] 39: ParDo[batchmap.entryToNodeHashFn] Out:[38] 40: ParDo[beam.createFn] Out:[39] 42: ParDo[beam.createFn] Out:[20] 46: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:42 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[18] done 2024/09/21 00:42:42 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[13] done 2024/09/21 00:42:42 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[7] done 2024/09/21 00:42:42 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[2] done 2024/09/21 00:42:42 Executing pipeline with the direct runner. 2024/09/21 00:42:42 Pipeline: 2024/09/21 00:42:42 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: *batchmap.Tile/R[*batchmap.Tile] GLO} {8: string/string GLO} {9: int/int[varintz] GLO} {10: KV/KV GLO} {11: CoGBK/CoGBK GLO} {12: KV/KV GLO} {13: int/int[varintz] GLO} {14: []uint8/bytes GLO} {15: int/int[varintz] GLO} {16: []uint8/bytes GLO} {17: int/int[varintz] GLO} {18: int/int[varintz] GLO} {19: int/int[varintz] GLO} {20: []uint8/bytes GLO} {21: []uint8/bytes GLO} {22: string/string GLO} {23: []uint8/bytes GLO} {24: string/string GLO} {25: string/string GLO} {26: string/string GLO} {27: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): T <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] 8: ParDo [In(Main): *batchmap.Tile <- {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {8: string/string GLO}] 9: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {9: int/int[varintz] GLO}] 10: ParDo [In(Main): T <- {9: int/int[varintz] GLO}] -> [Out: KV -> {10: KV/KV GLO}] 11: CoGBK [In(Main): KV <- {10: KV/KV GLO}] -> [Out: CoGBK -> {11: CoGBK/CoGBK GLO}] 12: Combine [In(Main): int <- {11: CoGBK/CoGBK GLO}] -> [Out: KV -> {12: KV/KV GLO}] 13: ParDo [In(Main): KV <- {12: KV/KV GLO}] -> [Out: Y -> {13: int/int[varintz] GLO}] 14: Impulse [] -> [Out: []uint8 -> {14: []uint8/bytes GLO}] 15: ParDo [In(Main): []uint8 <- {14: []uint8/bytes GLO}] -> [Out: T -> {15: int/int[varintz] GLO}] 16: Impulse [] -> [Out: []uint8 -> {16: []uint8/bytes GLO}] 17: ParDo [In(Main): []uint8 <- {16: []uint8/bytes GLO} In(Iter): T <- {13: int/int[varintz] GLO} In(Iter): T <- {15: int/int[varintz] GLO}] -> [Out: T -> {17: int/int[varintz] GLO} Out: T -> {18: int/int[varintz] GLO} Out: T -> {19: int/int[varintz] GLO}] 18: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 19: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO} In(Iter): T <- {17: int/int[varintz] GLO} In(Iter): T <- {18: int/int[varintz] GLO} In(Iter): T <- {19: int/int[varintz] GLO}] -> [] 20: Impulse [] -> [Out: []uint8 -> {21: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {21: []uint8/bytes GLO}] -> [Out: T -> {22: string/string GLO}] 22: Impulse [] -> [Out: []uint8 -> {23: []uint8/bytes GLO}] 23: ParDo [In(Main): []uint8 <- {23: []uint8/bytes GLO} In(Iter): T <- {8: string/string GLO} In(Iter): T <- {22: string/string GLO}] -> [Out: T -> {24: string/string GLO} Out: T -> {25: string/string GLO} Out: T -> {26: string/string GLO}] 24: Impulse [] -> [Out: []uint8 -> {27: []uint8/bytes GLO}] 25: ParDo [In(Main): []uint8 <- {27: []uint8/bytes GLO} In(Iter): T <- {24: string/string GLO} In(Iter): T <- {25: string/string GLO} In(Iter): T <- {26: string/string GLO}] -> [] 2024/09/21 00:42:42 Plan[plan]: 34: Impulse[0] 36: Impulse[0] 37: Impulse[0] 38: Impulse[0] 40: Impulse[0] 41: Impulse[0] 42: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestCreate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: ParDo[batchmap.tileHashFn] Out:[27] 29: CoGBK. Out:28 30: Inject[0]. Out:29 31: ParDo[batchmap.leafShardFn] Out:[30] 32: ParDo[batchmap.entryToNodeHashFn] Out:[31] 33: ParDo[beam.createFn] Out:[32] 35: ParDo[beam.createFn] Out:[20] 39: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:42 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[18] done 2024/09/21 00:42:42 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[13] done 2024/09/21 00:42:42 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[7] done 2024/09/21 00:42:42 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[2] done 2024/09/21 00:42:42 Executing pipeline with the direct runner. 2024/09/21 00:42:42 Pipeline: 2024/09/21 00:42:42 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: *batchmap.Tile/R[*batchmap.Tile] GLO} {12: *batchmap.Tile/R[*batchmap.Tile] GLO} {13: string/string GLO} {14: int/int[varintz] GLO} {15: KV/KV GLO} {16: CoGBK/CoGBK GLO} {17: KV/KV GLO} {18: int/int[varintz] GLO} {19: []uint8/bytes GLO} {20: int/int[varintz] GLO} {21: []uint8/bytes GLO} {22: int/int[varintz] GLO} {23: int/int[varintz] GLO} {24: int/int[varintz] GLO} {25: []uint8/bytes GLO} {26: []uint8/bytes GLO} {27: string/string GLO} {28: []uint8/bytes GLO} {29: string/string GLO} {30: string/string GLO} {31: string/string GLO} {32: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] 12: ParDo [In(Main): T <- {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {12: *batchmap.Tile/R[*batchmap.Tile] GLO}] 13: ParDo [In(Main): *batchmap.Tile <- {12: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {13: string/string GLO}] 14: ParDo [In(Main): *batchmap.Tile <- {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {14: int/int[varintz] GLO}] 15: ParDo [In(Main): T <- {14: int/int[varintz] GLO}] -> [Out: KV -> {15: KV/KV GLO}] 16: CoGBK [In(Main): KV <- {15: KV/KV GLO}] -> [Out: CoGBK -> {16: CoGBK/CoGBK GLO}] 17: Combine [In(Main): int <- {16: CoGBK/CoGBK GLO}] -> [Out: KV -> {17: KV/KV GLO}] 18: ParDo [In(Main): KV <- {17: KV/KV GLO}] -> [Out: Y -> {18: int/int[varintz] GLO}] 19: Impulse [] -> [Out: []uint8 -> {19: []uint8/bytes GLO}] 20: ParDo [In(Main): []uint8 <- {19: []uint8/bytes GLO}] -> [Out: T -> {20: int/int[varintz] GLO}] 21: Impulse [] -> [Out: []uint8 -> {21: []uint8/bytes GLO}] 22: ParDo [In(Main): []uint8 <- {21: []uint8/bytes GLO} In(Iter): T <- {18: int/int[varintz] GLO} In(Iter): T <- {20: int/int[varintz] GLO}] -> [Out: T -> {22: int/int[varintz] GLO} Out: T -> {23: int/int[varintz] GLO} Out: T -> {24: int/int[varintz] GLO}] 23: Impulse [] -> [Out: []uint8 -> {25: []uint8/bytes GLO}] 24: ParDo [In(Main): []uint8 <- {25: []uint8/bytes GLO} In(Iter): T <- {22: int/int[varintz] GLO} In(Iter): T <- {23: int/int[varintz] GLO} In(Iter): T <- {24: int/int[varintz] GLO}] -> [] 25: Impulse [] -> [Out: []uint8 -> {26: []uint8/bytes GLO}] 26: ParDo [In(Main): []uint8 <- {26: []uint8/bytes GLO}] -> [Out: T -> {27: string/string GLO}] 27: Impulse [] -> [Out: []uint8 -> {28: []uint8/bytes GLO}] 28: ParDo [In(Main): []uint8 <- {28: []uint8/bytes GLO} In(Iter): T <- {13: string/string GLO} In(Iter): T <- {27: string/string GLO}] -> [Out: T -> {29: string/string GLO} Out: T -> {30: string/string GLO} Out: T -> {31: string/string GLO}] 29: Impulse [] -> [Out: []uint8 -> {32: []uint8/bytes GLO}] 30: ParDo [In(Main): []uint8 <- {32: []uint8/bytes GLO} In(Iter): T <- {29: string/string GLO} In(Iter): T <- {30: string/string GLO} In(Iter): T <- {31: string/string GLO}] -> [] 2024/09/21 00:42:42 Plan[plan]: 41: Impulse[0] 43: Impulse[0] 44: Impulse[0] 45: Impulse[0] 47: Impulse[0] 48: Impulse[0] 49: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestCreate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: Flatten[2]. Out:Multiplex. Out:[11 26] 29: ParDo[batchmap.tileHashFn] Out:[28] 30: CoGBK. Out:29 31: Inject[0]. Out:30 32: ParDo[batchmap.leafShardFn] Out:[31] 33: ParDo[batchmap.tileToNodeHashFn] Out:[32] 34: Multiplex. Out:[33 28] 35: ParDo[batchmap.tileHashFn] Out:[34] 36: CoGBK. Out:35 37: Inject[0]. Out:36 38: ParDo[batchmap.leafShardFn] Out:[37] 39: ParDo[batchmap.entryToNodeHashFn] Out:[38] 40: ParDo[beam.createFn] Out:[39] 42: ParDo[beam.createFn] Out:[20] 46: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:42 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[18] done 2024/09/21 00:42:42 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[13] done 2024/09/21 00:42:42 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[7] done 2024/09/21 00:42:42 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[2] done 2024/09/21 00:42:42 Executing pipeline with the direct runner. 2024/09/21 00:42:42 Pipeline: 2024/09/21 00:42:42 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: *batchmap.Tile/R[*batchmap.Tile] GLO} {8: string/string GLO} {9: int/int[varintz] GLO} {10: KV/KV GLO} {11: CoGBK/CoGBK GLO} {12: KV/KV GLO} {13: int/int[varintz] GLO} {14: []uint8/bytes GLO} {15: int/int[varintz] GLO} {16: []uint8/bytes GLO} {17: int/int[varintz] GLO} {18: int/int[varintz] GLO} {19: int/int[varintz] GLO} {20: []uint8/bytes GLO} {21: []uint8/bytes GLO} {22: string/string GLO} {23: []uint8/bytes GLO} {24: string/string GLO} {25: string/string GLO} {26: string/string GLO} {27: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): T <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] 8: ParDo [In(Main): *batchmap.Tile <- {7: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {8: string/string GLO}] 9: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {9: int/int[varintz] GLO}] 10: ParDo [In(Main): T <- {9: int/int[varintz] GLO}] -> [Out: KV -> {10: KV/KV GLO}] 11: CoGBK [In(Main): KV <- {10: KV/KV GLO}] -> [Out: CoGBK -> {11: CoGBK/CoGBK GLO}] 12: Combine [In(Main): int <- {11: CoGBK/CoGBK GLO}] -> [Out: KV -> {12: KV/KV GLO}] 13: ParDo [In(Main): KV <- {12: KV/KV GLO}] -> [Out: Y -> {13: int/int[varintz] GLO}] 14: Impulse [] -> [Out: []uint8 -> {14: []uint8/bytes GLO}] 15: ParDo [In(Main): []uint8 <- {14: []uint8/bytes GLO}] -> [Out: T -> {15: int/int[varintz] GLO}] 16: Impulse [] -> [Out: []uint8 -> {16: []uint8/bytes GLO}] 17: ParDo [In(Main): []uint8 <- {16: []uint8/bytes GLO} In(Iter): T <- {13: int/int[varintz] GLO} In(Iter): T <- {15: int/int[varintz] GLO}] -> [Out: T -> {17: int/int[varintz] GLO} Out: T -> {18: int/int[varintz] GLO} Out: T -> {19: int/int[varintz] GLO}] 18: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 19: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO} In(Iter): T <- {17: int/int[varintz] GLO} In(Iter): T <- {18: int/int[varintz] GLO} In(Iter): T <- {19: int/int[varintz] GLO}] -> [] 20: Impulse [] -> [Out: []uint8 -> {21: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {21: []uint8/bytes GLO}] -> [Out: T -> {22: string/string GLO}] 22: Impulse [] -> [Out: []uint8 -> {23: []uint8/bytes GLO}] 23: ParDo [In(Main): []uint8 <- {23: []uint8/bytes GLO} In(Iter): T <- {8: string/string GLO} In(Iter): T <- {22: string/string GLO}] -> [Out: T -> {24: string/string GLO} Out: T -> {25: string/string GLO} Out: T -> {26: string/string GLO}] 24: Impulse [] -> [Out: []uint8 -> {27: []uint8/bytes GLO}] 25: ParDo [In(Main): []uint8 <- {27: []uint8/bytes GLO} In(Iter): T <- {24: string/string GLO} In(Iter): T <- {25: string/string GLO} In(Iter): T <- {26: string/string GLO}] -> [] 2024/09/21 00:42:42 Plan[plan]: 34: Impulse[0] 36: Impulse[0] 37: Impulse[0] 38: Impulse[0] 40: Impulse[0] 41: Impulse[0] 42: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestCreate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: ParDo[batchmap.tileHashFn] Out:[27] 29: CoGBK. Out:28 30: Inject[0]. Out:29 31: ParDo[batchmap.leafShardFn] Out:[30] 32: ParDo[batchmap.entryToNodeHashFn] Out:[31] 33: ParDo[beam.createFn] Out:[32] 35: ParDo[beam.createFn] Out:[20] 39: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:42 Executing pipeline with the direct runner. 2024/09/21 00:42:42 Pipeline: 2024/09/21 00:42:42 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: []uint8/bytes GLO} {8: *batchmap.Entry/R[*batchmap.Entry] GLO} {9: *batchmap.Tile/R[*batchmap.Tile] GLO} {10: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {11: KV<[]uint8,*batchmap.Tile>/KV GLO} {12: KV<[]uint8,batchmap.nodeHash>/KV GLO} {13: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {14: *batchmap.Tile/R[*batchmap.Tile] GLO} {15: *batchmap.Tile/R[*batchmap.Tile] GLO} {16: string/string GLO} {17: int/int[varintz] GLO} {18: KV/KV GLO} {19: CoGBK/CoGBK GLO} {20: KV/KV GLO} {21: int/int[varintz] GLO} {22: []uint8/bytes GLO} {23: int/int[varintz] GLO} {24: []uint8/bytes GLO} {25: int/int[varintz] GLO} {26: int/int[varintz] GLO} {27: int/int[varintz] GLO} {28: []uint8/bytes GLO} {29: []uint8/bytes GLO} {30: string/string GLO} {31: []uint8/bytes GLO} {32: string/string GLO} {33: string/string GLO} {34: string/string GLO} {35: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: Impulse [] -> [Out: []uint8 -> {7: []uint8/bytes GLO}] 8: ParDo [In(Main): []uint8 <- {7: []uint8/bytes GLO}] -> [Out: T -> {8: *batchmap.Entry/R[*batchmap.Entry] GLO}] 9: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {9: *batchmap.Tile/R[*batchmap.Tile] GLO}] 10: ParDo [In(Main): *batchmap.Entry <- {8: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {10: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 11: ParDo [In(Main): *batchmap.Tile <- {9: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {11: KV<[]uint8,*batchmap.Tile>/KV GLO}] 12: ParDo [In(Main): batchmap.nodeHash <- {10: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 13: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {11: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {13: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 14: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {13: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] 15: ParDo [In(Main): T <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {15: *batchmap.Tile/R[*batchmap.Tile] GLO}] 16: ParDo [In(Main): *batchmap.Tile <- {15: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {16: string/string GLO}] 17: ParDo [In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {17: int/int[varintz] GLO}] 18: ParDo [In(Main): T <- {17: int/int[varintz] GLO}] -> [Out: KV -> {18: KV/KV GLO}] 19: CoGBK [In(Main): KV <- {18: KV/KV GLO}] -> [Out: CoGBK -> {19: CoGBK/CoGBK GLO}] 20: Combine [In(Main): int <- {19: CoGBK/CoGBK GLO}] -> [Out: KV -> {20: KV/KV GLO}] 21: ParDo [In(Main): KV <- {20: KV/KV GLO}] -> [Out: Y -> {21: int/int[varintz] GLO}] 22: Impulse [] -> [Out: []uint8 -> {22: []uint8/bytes GLO}] 23: ParDo [In(Main): []uint8 <- {22: []uint8/bytes GLO}] -> [Out: T -> {23: int/int[varintz] GLO}] 24: Impulse [] -> [Out: []uint8 -> {24: []uint8/bytes GLO}] 25: ParDo [In(Main): []uint8 <- {24: []uint8/bytes GLO} In(Iter): T <- {21: int/int[varintz] GLO} In(Iter): T <- {23: int/int[varintz] GLO}] -> [Out: T -> {25: int/int[varintz] GLO} Out: T -> {26: int/int[varintz] GLO} Out: T -> {27: int/int[varintz] GLO}] 26: Impulse [] -> [Out: []uint8 -> {28: []uint8/bytes GLO}] 27: ParDo [In(Main): []uint8 <- {28: []uint8/bytes GLO} In(Iter): T <- {25: int/int[varintz] GLO} In(Iter): T <- {26: int/int[varintz] GLO} In(Iter): T <- {27: int/int[varintz] GLO}] -> [] 28: Impulse [] -> [Out: []uint8 -> {29: []uint8/bytes GLO}] 29: ParDo [In(Main): []uint8 <- {29: []uint8/bytes GLO}] -> [Out: T -> {30: string/string GLO}] 30: Impulse [] -> [Out: []uint8 -> {31: []uint8/bytes GLO}] 31: ParDo [In(Main): []uint8 <- {31: []uint8/bytes GLO} In(Iter): T <- {16: string/string GLO} In(Iter): T <- {30: string/string GLO}] -> [Out: T -> {32: string/string GLO} Out: T -> {33: string/string GLO} Out: T -> {34: string/string GLO}] 32: Impulse [] -> [Out: []uint8 -> {35: []uint8/bytes GLO}] 33: ParDo [In(Main): []uint8 <- {35: []uint8/bytes GLO} In(Iter): T <- {32: string/string GLO} In(Iter): T <- {33: string/string GLO} In(Iter): T <- {34: string/string GLO}] -> [] 2024/09/21 00:42:42 Plan[plan]: 41: Impulse[0] 45: Impulse[0] 47: Impulse[0] 48: Impulse[0] 49: Impulse[0] 51: Impulse[0] 52: Impulse[0] 53: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestUpdate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: ParDo[batchmap.tileUpdateFn] Out:[27] 29: CoGBK. Out:28 30: Flatten[2]. Out:CoGBK. Out:28 31: Inject[0]. Out:30 32: Inject[1]. Out:30 33: ParDo[batchmap.updateStratum.func1] Out:[31] 34: ParDo[beam.partitionFn] Out:[33] 35: ParDo[batchmap.tileHashFn] Out:[34] 36: CoGBK. Out:35 37: Inject[0]. Out:36 38: ParDo[batchmap.leafShardFn] Out:[37] 39: ParDo[batchmap.entryToNodeHashFn] Out:[38] 40: ParDo[beam.createFn] Out:[39] 42: ParDo[batchmap.leafShardFn] Out:[32] 43: ParDo[batchmap.entryToNodeHashFn] Out:[42] 44: ParDo[beam.createFn] Out:[43] 46: ParDo[beam.createFn] Out:[20] 50: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:42 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[18] done 2024/09/21 00:42:42 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[13] done 2024/09/21 00:42:42 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[7] done 2024/09/21 00:42:42 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[2] done 2024/09/21 00:42:42 Executing pipeline with the direct runner. 2024/09/21 00:42:42 Pipeline: 2024/09/21 00:42:42 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {12: KV<[]uint8,batchmap.nodeHash>/KV GLO} {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {14: *batchmap.Tile/R[*batchmap.Tile] GLO} {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {16: KV<[]uint8,batchmap.nodeHash>/KV GLO} {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {18: *batchmap.Tile/R[*batchmap.Tile] GLO} {19: *batchmap.Tile/R[*batchmap.Tile] GLO} {20: []uint8/bytes GLO} {21: *batchmap.Entry/R[*batchmap.Entry] GLO} {22: *batchmap.Tile/R[*batchmap.Tile] GLO} {23: *batchmap.Tile/R[*batchmap.Tile] GLO} {24: *batchmap.Tile/R[*batchmap.Tile] GLO} {25: *batchmap.Tile/R[*batchmap.Tile] GLO} {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {27: KV<[]uint8,*batchmap.Tile>/KV GLO} {28: KV<[]uint8,batchmap.nodeHash>/KV GLO} {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {30: *batchmap.Tile/R[*batchmap.Tile] GLO} {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {32: KV<[]uint8,*batchmap.Tile>/KV GLO} {33: KV<[]uint8,batchmap.nodeHash>/KV GLO} {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {35: *batchmap.Tile/R[*batchmap.Tile] GLO} {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {37: KV<[]uint8,*batchmap.Tile>/KV GLO} {38: KV<[]uint8,batchmap.nodeHash>/KV GLO} {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {40: *batchmap.Tile/R[*batchmap.Tile] GLO} {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {42: KV<[]uint8,*batchmap.Tile>/KV GLO} {43: KV<[]uint8,batchmap.nodeHash>/KV GLO} {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {45: *batchmap.Tile/R[*batchmap.Tile] GLO} {46: *batchmap.Tile/R[*batchmap.Tile] GLO} {47: *batchmap.Tile/R[*batchmap.Tile] GLO} {48: string/string GLO} {49: int/int[varintz] GLO} {50: KV/KV GLO} {51: CoGBK/CoGBK GLO} {52: KV/KV GLO} {53: int/int[varintz] GLO} {54: []uint8/bytes GLO} {55: int/int[varintz] GLO} {56: []uint8/bytes GLO} {57: int/int[varintz] GLO} {58: int/int[varintz] GLO} {59: int/int[varintz] GLO} {60: []uint8/bytes GLO} {61: []uint8/bytes GLO} {62: string/string GLO} {63: []uint8/bytes GLO} {64: string/string GLO} {65: string/string GLO} {66: string/string GLO} {67: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: ParDo [In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 12: ParDo [In(Main): batchmap.nodeHash <- {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 13: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 14: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] 15: ParDo [In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 16: ParDo [In(Main): batchmap.nodeHash <- {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 17: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 18: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] 19: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] 20: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO}] -> [Out: T -> {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] 22: ParDo [In(Main): *batchmap.Tile <- {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {22: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {23: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {24: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] 23: ParDo [In(Main): *batchmap.Entry <- {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 24: ParDo [In(Main): *batchmap.Tile <- {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {27: KV<[]uint8,*batchmap.Tile>/KV GLO}] 25: ParDo [In(Main): batchmap.nodeHash <- {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 26: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {27: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 27: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] 28: ParDo [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 29: ParDo [In(Main): *batchmap.Tile <- {24: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {32: KV<[]uint8,*batchmap.Tile>/KV GLO}] 30: ParDo [In(Main): batchmap.nodeHash <- {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 31: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {32: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 32: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] 33: ParDo [In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 34: ParDo [In(Main): *batchmap.Tile <- {23: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {37: KV<[]uint8,*batchmap.Tile>/KV GLO}] 35: ParDo [In(Main): batchmap.nodeHash <- {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 36: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {37: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 37: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] 38: ParDo [In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 39: ParDo [In(Main): *batchmap.Tile <- {22: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {42: KV<[]uint8,*batchmap.Tile>/KV GLO}] 40: ParDo [In(Main): batchmap.nodeHash <- {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 41: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {42: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 42: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] 43: Flatten [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] 44: ParDo [In(Main): T <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] 45: ParDo [In(Main): *batchmap.Tile <- {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {48: string/string GLO}] 46: ParDo [In(Main): *batchmap.Tile <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {49: int/int[varintz] GLO}] 47: ParDo [In(Main): T <- {49: int/int[varintz] GLO}] -> [Out: KV -> {50: KV/KV GLO}] 48: CoGBK [In(Main): KV <- {50: KV/KV GLO}] -> [Out: CoGBK -> {51: CoGBK/CoGBK GLO}] 49: Combine [In(Main): int <- {51: CoGBK/CoGBK GLO}] -> [Out: KV -> {52: KV/KV GLO}] 50: ParDo [In(Main): KV <- {52: KV/KV GLO}] -> [Out: Y -> {53: int/int[varintz] GLO}] 51: Impulse [] -> [Out: []uint8 -> {54: []uint8/bytes GLO}] 52: ParDo [In(Main): []uint8 <- {54: []uint8/bytes GLO}] -> [Out: T -> {55: int/int[varintz] GLO}] 53: Impulse [] -> [Out: []uint8 -> {56: []uint8/bytes GLO}] 54: ParDo [In(Main): []uint8 <- {56: []uint8/bytes GLO} In(Iter): T <- {53: int/int[varintz] GLO} In(Iter): T <- {55: int/int[varintz] GLO}] -> [Out: T -> {57: int/int[varintz] GLO} Out: T -> {58: int/int[varintz] GLO} Out: T -> {59: int/int[varintz] GLO}] 55: Impulse [] -> [Out: []uint8 -> {60: []uint8/bytes GLO}] 56: ParDo [In(Main): []uint8 <- {60: []uint8/bytes GLO} In(Iter): T <- {57: int/int[varintz] GLO} In(Iter): T <- {58: int/int[varintz] GLO} In(Iter): T <- {59: int/int[varintz] GLO}] -> [] 57: Impulse [] -> [Out: []uint8 -> {61: []uint8/bytes GLO}] 58: ParDo [In(Main): []uint8 <- {61: []uint8/bytes GLO}] -> [Out: T -> {62: string/string GLO}] 59: Impulse [] -> [Out: []uint8 -> {63: []uint8/bytes GLO}] 60: ParDo [In(Main): []uint8 <- {63: []uint8/bytes GLO} In(Iter): T <- {48: string/string GLO} In(Iter): T <- {62: string/string GLO}] -> [Out: T -> {64: string/string GLO} Out: T -> {65: string/string GLO} Out: T -> {66: string/string GLO}] 61: Impulse [] -> [Out: []uint8 -> {67: []uint8/bytes GLO}] 62: ParDo [In(Main): []uint8 <- {67: []uint8/bytes GLO} In(Iter): T <- {64: string/string GLO} In(Iter): T <- {65: string/string GLO} In(Iter): T <- {66: string/string GLO}] -> [] 2024/09/21 00:42:42 Plan[plan]: 88: Impulse[0] 92: Impulse[0] 94: Impulse[0] 95: Impulse[0] 96: Impulse[0] 98: Impulse[0] 99: Impulse[0] 100: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestUpdate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: Flatten[4]. Out:Multiplex. Out:[11 26] 29: ParDo[batchmap.tileUpdateFn] Out:[28] 30: CoGBK. Out:29 31: Flatten[2]. Out:CoGBK. Out:29 32: Inject[0]. Out:31 33: Inject[1]. Out:31 34: ParDo[batchmap.updateStratum.func1] Out:[32] 35: ParDo[batchmap.leafShardFn] Out:[33] 36: ParDo[batchmap.tileToNodeHashFn] Out:[35] 37: Multiplex. Out:[36 28] 38: ParDo[batchmap.tileUpdateFn] Out:[37] 39: CoGBK. Out:38 40: Flatten[2]. Out:CoGBK. Out:38 41: Inject[0]. Out:40 42: Inject[1]. Out:40 43: ParDo[batchmap.updateStratum.func1] Out:[41] 44: ParDo[batchmap.leafShardFn] Out:[42] 45: ParDo[batchmap.tileToNodeHashFn] Out:[44] 46: Multiplex. Out:[45 28] 47: ParDo[batchmap.tileUpdateFn] Out:[46] 48: CoGBK. Out:47 49: Flatten[2]. Out:CoGBK. Out:47 50: Inject[0]. Out:49 51: Inject[1]. Out:49 52: ParDo[batchmap.updateStratum.func1] Out:[50] 53: ParDo[batchmap.leafShardFn] Out:[51] 54: ParDo[batchmap.tileToNodeHashFn] Out:[53] 55: Multiplex. Out:[54 28] 56: ParDo[batchmap.tileUpdateFn] Out:[55] 57: CoGBK. Out:56 58: Flatten[2]. Out:CoGBK. Out:56 59: Inject[0]. Out:58 60: Inject[1]. Out:58 61: ParDo[batchmap.updateStratum.func1] Out:[59] 62: ParDo[beam.partitionFn] Out:[34 43 52 61] 63: Flatten[4]. Out:ParDo[beam.partitionFn] Out:[34 43 52 61] 64: ParDo[batchmap.tileHashFn] Out:[63] 65: CoGBK. Out:64 66: Inject[0]. Out:65 67: ParDo[batchmap.leafShardFn] Out:[66] 68: ParDo[batchmap.tileToNodeHashFn] Out:[67] 69: Multiplex. Out:[68 63] 70: ParDo[batchmap.tileHashFn] Out:[69] 71: CoGBK. Out:70 72: Inject[0]. Out:71 73: ParDo[batchmap.leafShardFn] Out:[72] 74: ParDo[batchmap.tileToNodeHashFn] Out:[73] 75: Multiplex. Out:[74 63] 76: ParDo[batchmap.tileHashFn] Out:[75] 77: CoGBK. Out:76 78: Inject[0]. Out:77 79: ParDo[batchmap.leafShardFn] Out:[78] 80: ParDo[batchmap.tileToNodeHashFn] Out:[79] 81: Multiplex. Out:[80 63] 82: ParDo[batchmap.tileHashFn] Out:[81] 83: CoGBK. Out:82 84: Inject[0]. Out:83 85: ParDo[batchmap.leafShardFn] Out:[84] 86: ParDo[batchmap.entryToNodeHashFn] Out:[85] 87: ParDo[beam.createFn] Out:[86] 89: ParDo[batchmap.leafShardFn] Out:[60] 90: ParDo[batchmap.entryToNodeHashFn] Out:[89] 91: ParDo[beam.createFn] Out:[90] 93: ParDo[beam.createFn] Out:[20] 97: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:42 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[18] done 2024/09/21 00:42:42 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[13] done 2024/09/21 00:42:42 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[7] done 2024/09/21 00:42:42 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[2] done 2024/09/21 00:42:42 Executing pipeline with the direct runner. 2024/09/21 00:42:42 Pipeline: 2024/09/21 00:42:42 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: []uint8/bytes GLO} {8: *batchmap.Entry/R[*batchmap.Entry] GLO} {9: *batchmap.Tile/R[*batchmap.Tile] GLO} {10: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {11: KV<[]uint8,*batchmap.Tile>/KV GLO} {12: KV<[]uint8,batchmap.nodeHash>/KV GLO} {13: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {14: *batchmap.Tile/R[*batchmap.Tile] GLO} {15: *batchmap.Tile/R[*batchmap.Tile] GLO} {16: string/string GLO} {17: int/int[varintz] GLO} {18: KV/KV GLO} {19: CoGBK/CoGBK GLO} {20: KV/KV GLO} {21: int/int[varintz] GLO} {22: []uint8/bytes GLO} {23: int/int[varintz] GLO} {24: []uint8/bytes GLO} {25: int/int[varintz] GLO} {26: int/int[varintz] GLO} {27: int/int[varintz] GLO} {28: []uint8/bytes GLO} {29: []uint8/bytes GLO} {30: string/string GLO} {31: []uint8/bytes GLO} {32: string/string GLO} {33: string/string GLO} {34: string/string GLO} {35: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: Impulse [] -> [Out: []uint8 -> {7: []uint8/bytes GLO}] 8: ParDo [In(Main): []uint8 <- {7: []uint8/bytes GLO}] -> [Out: T -> {8: *batchmap.Entry/R[*batchmap.Entry] GLO}] 9: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {9: *batchmap.Tile/R[*batchmap.Tile] GLO}] 10: ParDo [In(Main): *batchmap.Entry <- {8: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {10: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 11: ParDo [In(Main): *batchmap.Tile <- {9: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {11: KV<[]uint8,*batchmap.Tile>/KV GLO}] 12: ParDo [In(Main): batchmap.nodeHash <- {10: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 13: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {11: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {13: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 14: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {13: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] 15: ParDo [In(Main): T <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {15: *batchmap.Tile/R[*batchmap.Tile] GLO}] 16: ParDo [In(Main): *batchmap.Tile <- {15: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {16: string/string GLO}] 17: ParDo [In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {17: int/int[varintz] GLO}] 18: ParDo [In(Main): T <- {17: int/int[varintz] GLO}] -> [Out: KV -> {18: KV/KV GLO}] 19: CoGBK [In(Main): KV <- {18: KV/KV GLO}] -> [Out: CoGBK -> {19: CoGBK/CoGBK GLO}] 20: Combine [In(Main): int <- {19: CoGBK/CoGBK GLO}] -> [Out: KV -> {20: KV/KV GLO}] 21: ParDo [In(Main): KV <- {20: KV/KV GLO}] -> [Out: Y -> {21: int/int[varintz] GLO}] 22: Impulse [] -> [Out: []uint8 -> {22: []uint8/bytes GLO}] 23: ParDo [In(Main): []uint8 <- {22: []uint8/bytes GLO}] -> [Out: T -> {23: int/int[varintz] GLO}] 24: Impulse [] -> [Out: []uint8 -> {24: []uint8/bytes GLO}] 25: ParDo [In(Main): []uint8 <- {24: []uint8/bytes GLO} In(Iter): T <- {21: int/int[varintz] GLO} In(Iter): T <- {23: int/int[varintz] GLO}] -> [Out: T -> {25: int/int[varintz] GLO} Out: T -> {26: int/int[varintz] GLO} Out: T -> {27: int/int[varintz] GLO}] 26: Impulse [] -> [Out: []uint8 -> {28: []uint8/bytes GLO}] 27: ParDo [In(Main): []uint8 <- {28: []uint8/bytes GLO} In(Iter): T <- {25: int/int[varintz] GLO} In(Iter): T <- {26: int/int[varintz] GLO} In(Iter): T <- {27: int/int[varintz] GLO}] -> [] 28: Impulse [] -> [Out: []uint8 -> {29: []uint8/bytes GLO}] 29: ParDo [In(Main): []uint8 <- {29: []uint8/bytes GLO}] -> [Out: T -> {30: string/string GLO}] 30: Impulse [] -> [Out: []uint8 -> {31: []uint8/bytes GLO}] 31: ParDo [In(Main): []uint8 <- {31: []uint8/bytes GLO} In(Iter): T <- {16: string/string GLO} In(Iter): T <- {30: string/string GLO}] -> [Out: T -> {32: string/string GLO} Out: T -> {33: string/string GLO} Out: T -> {34: string/string GLO}] 32: Impulse [] -> [Out: []uint8 -> {35: []uint8/bytes GLO}] 33: ParDo [In(Main): []uint8 <- {35: []uint8/bytes GLO} In(Iter): T <- {32: string/string GLO} In(Iter): T <- {33: string/string GLO} In(Iter): T <- {34: string/string GLO}] -> [] 2024/09/21 00:42:42 Plan[plan]: 41: Impulse[0] 45: Impulse[0] 47: Impulse[0] 48: Impulse[0] 49: Impulse[0] 51: Impulse[0] 52: Impulse[0] 53: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestUpdate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: ParDo[batchmap.tileUpdateFn] Out:[27] 29: CoGBK. Out:28 30: Flatten[2]. Out:CoGBK. Out:28 31: Inject[0]. Out:30 32: Inject[1]. Out:30 33: ParDo[batchmap.updateStratum.func1] Out:[31] 34: ParDo[beam.partitionFn] Out:[33] 35: ParDo[batchmap.tileHashFn] Out:[34] 36: CoGBK. Out:35 37: Inject[0]. Out:36 38: ParDo[batchmap.leafShardFn] Out:[37] 39: ParDo[batchmap.entryToNodeHashFn] Out:[38] 40: ParDo[beam.createFn] Out:[39] 42: ParDo[batchmap.leafShardFn] Out:[32] 43: ParDo[batchmap.entryToNodeHashFn] Out:[42] 44: ParDo[beam.createFn] Out:[43] 46: ParDo[beam.createFn] Out:[20] 50: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:42 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[18] done 2024/09/21 00:42:42 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[13] done 2024/09/21 00:42:42 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[7] done 2024/09/21 00:42:42 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[2] done 2024/09/21 00:42:42 Executing pipeline with the direct runner. 2024/09/21 00:42:42 Pipeline: 2024/09/21 00:42:42 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {12: KV<[]uint8,batchmap.nodeHash>/KV GLO} {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {14: *batchmap.Tile/R[*batchmap.Tile] GLO} {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {16: KV<[]uint8,batchmap.nodeHash>/KV GLO} {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {18: *batchmap.Tile/R[*batchmap.Tile] GLO} {19: *batchmap.Tile/R[*batchmap.Tile] GLO} {20: []uint8/bytes GLO} {21: *batchmap.Entry/R[*batchmap.Entry] GLO} {22: *batchmap.Tile/R[*batchmap.Tile] GLO} {23: *batchmap.Tile/R[*batchmap.Tile] GLO} {24: *batchmap.Tile/R[*batchmap.Tile] GLO} {25: *batchmap.Tile/R[*batchmap.Tile] GLO} {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {27: KV<[]uint8,*batchmap.Tile>/KV GLO} {28: KV<[]uint8,batchmap.nodeHash>/KV GLO} {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {30: *batchmap.Tile/R[*batchmap.Tile] GLO} {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {32: KV<[]uint8,*batchmap.Tile>/KV GLO} {33: KV<[]uint8,batchmap.nodeHash>/KV GLO} {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {35: *batchmap.Tile/R[*batchmap.Tile] GLO} {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {37: KV<[]uint8,*batchmap.Tile>/KV GLO} {38: KV<[]uint8,batchmap.nodeHash>/KV GLO} {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {40: *batchmap.Tile/R[*batchmap.Tile] GLO} {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {42: KV<[]uint8,*batchmap.Tile>/KV GLO} {43: KV<[]uint8,batchmap.nodeHash>/KV GLO} {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {45: *batchmap.Tile/R[*batchmap.Tile] GLO} {46: *batchmap.Tile/R[*batchmap.Tile] GLO} {47: *batchmap.Tile/R[*batchmap.Tile] GLO} {48: string/string GLO} {49: int/int[varintz] GLO} {50: KV/KV GLO} {51: CoGBK/CoGBK GLO} {52: KV/KV GLO} {53: int/int[varintz] GLO} {54: []uint8/bytes GLO} {55: int/int[varintz] GLO} {56: []uint8/bytes GLO} {57: int/int[varintz] GLO} {58: int/int[varintz] GLO} {59: int/int[varintz] GLO} {60: []uint8/bytes GLO} {61: []uint8/bytes GLO} {62: string/string GLO} {63: []uint8/bytes GLO} {64: string/string GLO} {65: string/string GLO} {66: string/string GLO} {67: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: ParDo [In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 12: ParDo [In(Main): batchmap.nodeHash <- {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 13: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 14: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] 15: ParDo [In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 16: ParDo [In(Main): batchmap.nodeHash <- {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 17: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 18: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] 19: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] 20: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO}] -> [Out: T -> {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] 22: ParDo [In(Main): *batchmap.Tile <- {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {22: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {23: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {24: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] 23: ParDo [In(Main): *batchmap.Entry <- {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 24: ParDo [In(Main): *batchmap.Tile <- {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {27: KV<[]uint8,*batchmap.Tile>/KV GLO}] 25: ParDo [In(Main): batchmap.nodeHash <- {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 26: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {27: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 27: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] 28: ParDo [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 29: ParDo [In(Main): *batchmap.Tile <- {24: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {32: KV<[]uint8,*batchmap.Tile>/KV GLO}] 30: ParDo [In(Main): batchmap.nodeHash <- {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 31: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {32: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 32: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] 33: ParDo [In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 34: ParDo [In(Main): *batchmap.Tile <- {23: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {37: KV<[]uint8,*batchmap.Tile>/KV GLO}] 35: ParDo [In(Main): batchmap.nodeHash <- {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 36: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {37: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 37: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] 38: ParDo [In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 39: ParDo [In(Main): *batchmap.Tile <- {22: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {42: KV<[]uint8,*batchmap.Tile>/KV GLO}] 40: ParDo [In(Main): batchmap.nodeHash <- {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 41: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {42: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 42: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] 43: Flatten [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] 44: ParDo [In(Main): T <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] 45: ParDo [In(Main): *batchmap.Tile <- {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {48: string/string GLO}] 46: ParDo [In(Main): *batchmap.Tile <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {49: int/int[varintz] GLO}] 47: ParDo [In(Main): T <- {49: int/int[varintz] GLO}] -> [Out: KV -> {50: KV/KV GLO}] 48: CoGBK [In(Main): KV <- {50: KV/KV GLO}] -> [Out: CoGBK -> {51: CoGBK/CoGBK GLO}] 49: Combine [In(Main): int <- {51: CoGBK/CoGBK GLO}] -> [Out: KV -> {52: KV/KV GLO}] 50: ParDo [In(Main): KV <- {52: KV/KV GLO}] -> [Out: Y -> {53: int/int[varintz] GLO}] 51: Impulse [] -> [Out: []uint8 -> {54: []uint8/bytes GLO}] 52: ParDo [In(Main): []uint8 <- {54: []uint8/bytes GLO}] -> [Out: T -> {55: int/int[varintz] GLO}] 53: Impulse [] -> [Out: []uint8 -> {56: []uint8/bytes GLO}] 54: ParDo [In(Main): []uint8 <- {56: []uint8/bytes GLO} In(Iter): T <- {53: int/int[varintz] GLO} In(Iter): T <- {55: int/int[varintz] GLO}] -> [Out: T -> {57: int/int[varintz] GLO} Out: T -> {58: int/int[varintz] GLO} Out: T -> {59: int/int[varintz] GLO}] 55: Impulse [] -> [Out: []uint8 -> {60: []uint8/bytes GLO}] 56: ParDo [In(Main): []uint8 <- {60: []uint8/bytes GLO} In(Iter): T <- {57: int/int[varintz] GLO} In(Iter): T <- {58: int/int[varintz] GLO} In(Iter): T <- {59: int/int[varintz] GLO}] -> [] 57: Impulse [] -> [Out: []uint8 -> {61: []uint8/bytes GLO}] 58: ParDo [In(Main): []uint8 <- {61: []uint8/bytes GLO}] -> [Out: T -> {62: string/string GLO}] 59: Impulse [] -> [Out: []uint8 -> {63: []uint8/bytes GLO}] 60: ParDo [In(Main): []uint8 <- {63: []uint8/bytes GLO} In(Iter): T <- {48: string/string GLO} In(Iter): T <- {62: string/string GLO}] -> [Out: T -> {64: string/string GLO} Out: T -> {65: string/string GLO} Out: T -> {66: string/string GLO}] 61: Impulse [] -> [Out: []uint8 -> {67: []uint8/bytes GLO}] 62: ParDo [In(Main): []uint8 <- {67: []uint8/bytes GLO} In(Iter): T <- {64: string/string GLO} In(Iter): T <- {65: string/string GLO} In(Iter): T <- {66: string/string GLO}] -> [] 2024/09/21 00:42:42 Plan[plan]: 88: Impulse[0] 92: Impulse[0] 94: Impulse[0] 95: Impulse[0] 96: Impulse[0] 98: Impulse[0] 99: Impulse[0] 100: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestUpdate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: Flatten[4]. Out:Multiplex. Out:[11 26] 29: ParDo[batchmap.tileUpdateFn] Out:[28] 30: CoGBK. Out:29 31: Flatten[2]. Out:CoGBK. Out:29 32: Inject[0]. Out:31 33: Inject[1]. Out:31 34: ParDo[batchmap.updateStratum.func1] Out:[32] 35: ParDo[batchmap.leafShardFn] Out:[33] 36: ParDo[batchmap.tileToNodeHashFn] Out:[35] 37: Multiplex. Out:[36 28] 38: ParDo[batchmap.tileUpdateFn] Out:[37] 39: CoGBK. Out:38 40: Flatten[2]. Out:CoGBK. Out:38 41: Inject[0]. Out:40 42: Inject[1]. Out:40 43: ParDo[batchmap.updateStratum.func1] Out:[41] 44: ParDo[batchmap.leafShardFn] Out:[42] 45: ParDo[batchmap.tileToNodeHashFn] Out:[44] 46: Multiplex. Out:[45 28] 47: ParDo[batchmap.tileUpdateFn] Out:[46] 48: CoGBK. Out:47 49: Flatten[2]. Out:CoGBK. Out:47 50: Inject[0]. Out:49 51: Inject[1]. Out:49 52: ParDo[batchmap.updateStratum.func1] Out:[50] 53: ParDo[batchmap.leafShardFn] Out:[51] 54: ParDo[batchmap.tileToNodeHashFn] Out:[53] 55: Multiplex. Out:[54 28] 56: ParDo[batchmap.tileUpdateFn] Out:[55] 57: CoGBK. Out:56 58: Flatten[2]. Out:CoGBK. Out:56 59: Inject[0]. Out:58 60: Inject[1]. Out:58 61: ParDo[batchmap.updateStratum.func1] Out:[59] 62: ParDo[beam.partitionFn] Out:[34 43 52 61] 63: Flatten[4]. Out:ParDo[beam.partitionFn] Out:[34 43 52 61] 64: ParDo[batchmap.tileHashFn] Out:[63] 65: CoGBK. Out:64 66: Inject[0]. Out:65 67: ParDo[batchmap.leafShardFn] Out:[66] 68: ParDo[batchmap.tileToNodeHashFn] Out:[67] 69: Multiplex. Out:[68 63] 70: ParDo[batchmap.tileHashFn] Out:[69] 71: CoGBK. Out:70 72: Inject[0]. Out:71 73: ParDo[batchmap.leafShardFn] Out:[72] 74: ParDo[batchmap.tileToNodeHashFn] Out:[73] 75: Multiplex. Out:[74 63] 76: ParDo[batchmap.tileHashFn] Out:[75] 77: CoGBK. Out:76 78: Inject[0]. Out:77 79: ParDo[batchmap.leafShardFn] Out:[78] 80: ParDo[batchmap.tileToNodeHashFn] Out:[79] 81: Multiplex. Out:[80 63] 82: ParDo[batchmap.tileHashFn] Out:[81] 83: CoGBK. Out:82 84: Inject[0]. Out:83 85: ParDo[batchmap.leafShardFn] Out:[84] 86: ParDo[batchmap.entryToNodeHashFn] Out:[85] 87: ParDo[beam.createFn] Out:[86] 89: ParDo[batchmap.leafShardFn] Out:[60] 90: ParDo[batchmap.entryToNodeHashFn] Out:[89] 91: ParDo[beam.createFn] Out:[90] 93: ParDo[beam.createFn] Out:[20] 97: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:42 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[18] done 2024/09/21 00:42:42 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[13] done 2024/09/21 00:42:42 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[7] done 2024/09/21 00:42:42 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[2] done 2024/09/21 00:42:42 Executing pipeline with the direct runner. 2024/09/21 00:42:42 Pipeline: 2024/09/21 00:42:42 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {12: KV<[]uint8,batchmap.nodeHash>/KV GLO} {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {14: *batchmap.Tile/R[*batchmap.Tile] GLO} {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {16: KV<[]uint8,batchmap.nodeHash>/KV GLO} {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {18: *batchmap.Tile/R[*batchmap.Tile] GLO} {19: *batchmap.Tile/R[*batchmap.Tile] GLO} {20: []uint8/bytes GLO} {21: *batchmap.Entry/R[*batchmap.Entry] GLO} {22: *batchmap.Tile/R[*batchmap.Tile] GLO} {23: *batchmap.Tile/R[*batchmap.Tile] GLO} {24: *batchmap.Tile/R[*batchmap.Tile] GLO} {25: *batchmap.Tile/R[*batchmap.Tile] GLO} {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {27: KV<[]uint8,*batchmap.Tile>/KV GLO} {28: KV<[]uint8,batchmap.nodeHash>/KV GLO} {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {30: *batchmap.Tile/R[*batchmap.Tile] GLO} {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {32: KV<[]uint8,*batchmap.Tile>/KV GLO} {33: KV<[]uint8,batchmap.nodeHash>/KV GLO} {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {35: *batchmap.Tile/R[*batchmap.Tile] GLO} {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {37: KV<[]uint8,*batchmap.Tile>/KV GLO} {38: KV<[]uint8,batchmap.nodeHash>/KV GLO} {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {40: *batchmap.Tile/R[*batchmap.Tile] GLO} {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {42: KV<[]uint8,*batchmap.Tile>/KV GLO} {43: KV<[]uint8,batchmap.nodeHash>/KV GLO} {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {45: *batchmap.Tile/R[*batchmap.Tile] GLO} {46: *batchmap.Tile/R[*batchmap.Tile] GLO} {47: *batchmap.Tile/R[*batchmap.Tile] GLO} {48: string/string GLO} {49: int/int[varintz] GLO} {50: KV/KV GLO} {51: CoGBK/CoGBK GLO} {52: KV/KV GLO} {53: int/int[varintz] GLO} {54: []uint8/bytes GLO} {55: int/int[varintz] GLO} {56: []uint8/bytes GLO} {57: int/int[varintz] GLO} {58: int/int[varintz] GLO} {59: int/int[varintz] GLO} {60: []uint8/bytes GLO} {61: []uint8/bytes GLO} {62: string/string GLO} {63: []uint8/bytes GLO} {64: string/string GLO} {65: string/string GLO} {66: string/string GLO} {67: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: ParDo [In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 12: ParDo [In(Main): batchmap.nodeHash <- {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 13: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 14: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] 15: ParDo [In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 16: ParDo [In(Main): batchmap.nodeHash <- {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 17: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 18: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] 19: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] 20: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO}] -> [Out: T -> {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] 22: ParDo [In(Main): *batchmap.Tile <- {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {22: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {23: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {24: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] 23: ParDo [In(Main): *batchmap.Entry <- {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 24: ParDo [In(Main): *batchmap.Tile <- {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {27: KV<[]uint8,*batchmap.Tile>/KV GLO}] 25: ParDo [In(Main): batchmap.nodeHash <- {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 26: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {27: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 27: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] 28: ParDo [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 29: ParDo [In(Main): *batchmap.Tile <- {24: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {32: KV<[]uint8,*batchmap.Tile>/KV GLO}] 30: ParDo [In(Main): batchmap.nodeHash <- {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 31: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {32: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 32: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] 33: ParDo [In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 34: ParDo [In(Main): *batchmap.Tile <- {23: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {37: KV<[]uint8,*batchmap.Tile>/KV GLO}] 35: ParDo [In(Main): batchmap.nodeHash <- {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 36: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {37: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 37: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] 38: ParDo [In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 39: ParDo [In(Main): *batchmap.Tile <- {22: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {42: KV<[]uint8,*batchmap.Tile>/KV GLO}] 40: ParDo [In(Main): batchmap.nodeHash <- {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 41: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {42: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 42: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] 43: Flatten [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] 44: ParDo [In(Main): T <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] 45: ParDo [In(Main): *batchmap.Tile <- {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {48: string/string GLO}] 46: ParDo [In(Main): *batchmap.Tile <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {49: int/int[varintz] GLO}] 47: ParDo [In(Main): T <- {49: int/int[varintz] GLO}] -> [Out: KV -> {50: KV/KV GLO}] 48: CoGBK [In(Main): KV <- {50: KV/KV GLO}] -> [Out: CoGBK -> {51: CoGBK/CoGBK GLO}] 49: Combine [In(Main): int <- {51: CoGBK/CoGBK GLO}] -> [Out: KV -> {52: KV/KV GLO}] 50: ParDo [In(Main): KV <- {52: KV/KV GLO}] -> [Out: Y -> {53: int/int[varintz] GLO}] 51: Impulse [] -> [Out: []uint8 -> {54: []uint8/bytes GLO}] 52: ParDo [In(Main): []uint8 <- {54: []uint8/bytes GLO}] -> [Out: T -> {55: int/int[varintz] GLO}] 53: Impulse [] -> [Out: []uint8 -> {56: []uint8/bytes GLO}] 54: ParDo [In(Main): []uint8 <- {56: []uint8/bytes GLO} In(Iter): T <- {53: int/int[varintz] GLO} In(Iter): T <- {55: int/int[varintz] GLO}] -> [Out: T -> {57: int/int[varintz] GLO} Out: T -> {58: int/int[varintz] GLO} Out: T -> {59: int/int[varintz] GLO}] 55: Impulse [] -> [Out: []uint8 -> {60: []uint8/bytes GLO}] 56: ParDo [In(Main): []uint8 <- {60: []uint8/bytes GLO} In(Iter): T <- {57: int/int[varintz] GLO} In(Iter): T <- {58: int/int[varintz] GLO} In(Iter): T <- {59: int/int[varintz] GLO}] -> [] 57: Impulse [] -> [Out: []uint8 -> {61: []uint8/bytes GLO}] 58: ParDo [In(Main): []uint8 <- {61: []uint8/bytes GLO}] -> [Out: T -> {62: string/string GLO}] 59: Impulse [] -> [Out: []uint8 -> {63: []uint8/bytes GLO}] 60: ParDo [In(Main): []uint8 <- {63: []uint8/bytes GLO} In(Iter): T <- {48: string/string GLO} In(Iter): T <- {62: string/string GLO}] -> [Out: T -> {64: string/string GLO} Out: T -> {65: string/string GLO} Out: T -> {66: string/string GLO}] 61: Impulse [] -> [Out: []uint8 -> {67: []uint8/bytes GLO}] 62: ParDo [In(Main): []uint8 <- {67: []uint8/bytes GLO} In(Iter): T <- {64: string/string GLO} In(Iter): T <- {65: string/string GLO} In(Iter): T <- {66: string/string GLO}] -> [] 2024/09/21 00:42:42 Plan[plan]: 88: Impulse[0] 92: Impulse[0] 94: Impulse[0] 95: Impulse[0] 96: Impulse[0] 98: Impulse[0] 99: Impulse[0] 100: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestUpdate.func1.2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: Flatten[4]. Out:Multiplex. Out:[11 26] 29: ParDo[batchmap.tileUpdateFn] Out:[28] 30: CoGBK. Out:29 31: Flatten[2]. Out:CoGBK. Out:29 32: Inject[0]. Out:31 33: Inject[1]. Out:31 34: ParDo[batchmap.updateStratum.func1] Out:[32] 35: ParDo[batchmap.leafShardFn] Out:[33] 36: ParDo[batchmap.tileToNodeHashFn] Out:[35] 37: Multiplex. Out:[36 28] 38: ParDo[batchmap.tileUpdateFn] Out:[37] 39: CoGBK. Out:38 40: Flatten[2]. Out:CoGBK. Out:38 41: Inject[0]. Out:40 42: Inject[1]. Out:40 43: ParDo[batchmap.updateStratum.func1] Out:[41] 44: ParDo[batchmap.leafShardFn] Out:[42] 45: ParDo[batchmap.tileToNodeHashFn] Out:[44] 46: Multiplex. Out:[45 28] 47: ParDo[batchmap.tileUpdateFn] Out:[46] 48: CoGBK. Out:47 49: Flatten[2]. Out:CoGBK. Out:47 50: Inject[0]. Out:49 51: Inject[1]. Out:49 52: ParDo[batchmap.updateStratum.func1] Out:[50] 53: ParDo[batchmap.leafShardFn] Out:[51] 54: ParDo[batchmap.tileToNodeHashFn] Out:[53] 55: Multiplex. Out:[54 28] 56: ParDo[batchmap.tileUpdateFn] Out:[55] 57: CoGBK. Out:56 58: Flatten[2]. Out:CoGBK. Out:56 59: Inject[0]. Out:58 60: Inject[1]. Out:58 61: ParDo[batchmap.updateStratum.func1] Out:[59] 62: ParDo[beam.partitionFn] Out:[34 43 52 61] 63: Flatten[4]. Out:ParDo[beam.partitionFn] Out:[34 43 52 61] 64: ParDo[batchmap.tileHashFn] Out:[63] 65: CoGBK. Out:64 66: Inject[0]. Out:65 67: ParDo[batchmap.leafShardFn] Out:[66] 68: ParDo[batchmap.tileToNodeHashFn] Out:[67] 69: Multiplex. Out:[68 63] 70: ParDo[batchmap.tileHashFn] Out:[69] 71: CoGBK. Out:70 72: Inject[0]. Out:71 73: ParDo[batchmap.leafShardFn] Out:[72] 74: ParDo[batchmap.tileToNodeHashFn] Out:[73] 75: Multiplex. Out:[74 63] 76: ParDo[batchmap.tileHashFn] Out:[75] 77: CoGBK. Out:76 78: Inject[0]. Out:77 79: ParDo[batchmap.leafShardFn] Out:[78] 80: ParDo[batchmap.tileToNodeHashFn] Out:[79] 81: Multiplex. Out:[80 63] 82: ParDo[batchmap.tileHashFn] Out:[81] 83: CoGBK. Out:82 84: Inject[0]. Out:83 85: ParDo[batchmap.leafShardFn] Out:[84] 86: ParDo[batchmap.entryToNodeHashFn] Out:[85] 87: ParDo[beam.createFn] Out:[86] 89: ParDo[batchmap.leafShardFn] Out:[60] 90: ParDo[batchmap.entryToNodeHashFn] Out:[89] 91: ParDo[beam.createFn] Out:[90] 93: ParDo[beam.createFn] Out:[20] 97: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:42 Executing pipeline with the direct runner. 2024/09/21 00:42:42 Pipeline: 2024/09/21 00:42:42 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: *batchmap.Tile/R[*batchmap.Tile] GLO} {12: *batchmap.Tile/R[*batchmap.Tile] GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] 12: ParDo [In(Main): T <- {11: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {12: *batchmap.Tile/R[*batchmap.Tile] GLO}] 13: ParDo [In(Main): X <- {12: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [] 2024/09/21 00:42:42 Plan[plan]: 16: Impulse[0] 1: ParDo[passert.failFn] Out:[] 2: ParDo[filter.filterFn] Out:[1] 3: Flatten[2]. Out:ParDo[filter.filterFn] Out:[1] 4: ParDo[batchmap.tileHashFn] Out:[3] 5: CoGBK. Out:4 6: Inject[0]. Out:5 7: ParDo[batchmap.leafShardFn] Out:[6] 8: ParDo[batchmap.tileToNodeHashFn] Out:[7] 9: Multiplex. Out:[8 3] 10: ParDo[batchmap.tileHashFn] Out:[9] 11: CoGBK. Out:10 12: Inject[0]. Out:11 13: ParDo[batchmap.leafShardFn] Out:[12] 14: ParDo[batchmap.entryToNodeHashFn] Out:[13] 15: ParDo[beam.createFn] Out:[14] 2024/09/21 00:42:42 Executing pipeline with the direct runner. 2024/09/21 00:42:42 Pipeline: 2024/09/21 00:42:42 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {12: KV<[]uint8,batchmap.nodeHash>/KV GLO} {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {14: *batchmap.Tile/R[*batchmap.Tile] GLO} {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {16: KV<[]uint8,batchmap.nodeHash>/KV GLO} {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {18: *batchmap.Tile/R[*batchmap.Tile] GLO} {19: *batchmap.Tile/R[*batchmap.Tile] GLO} {20: *batchmap.Tile/R[*batchmap.Tile] GLO} {21: string/string GLO} {22: int/int[varintz] GLO} {23: KV/KV GLO} {24: CoGBK/CoGBK GLO} {25: KV/KV GLO} {26: int/int[varintz] GLO} {27: []uint8/bytes GLO} {28: int/int[varintz] GLO} {29: []uint8/bytes GLO} {30: int/int[varintz] GLO} {31: int/int[varintz] GLO} {32: int/int[varintz] GLO} {33: []uint8/bytes GLO} {34: []uint8/bytes GLO} {35: string/string GLO} {36: []uint8/bytes GLO} {37: string/string GLO} {38: string/string GLO} {39: string/string GLO} {40: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: ParDo [In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 12: ParDo [In(Main): batchmap.nodeHash <- {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 13: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 14: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] 15: ParDo [In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 16: ParDo [In(Main): batchmap.nodeHash <- {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 17: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 18: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] 19: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] 20: ParDo [In(Main): T <- {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {20: *batchmap.Tile/R[*batchmap.Tile] GLO}] 21: ParDo [In(Main): *batchmap.Tile <- {20: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {21: string/string GLO}] 22: ParDo [In(Main): *batchmap.Tile <- {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {22: int/int[varintz] GLO}] 23: ParDo [In(Main): T <- {22: int/int[varintz] GLO}] -> [Out: KV -> {23: KV/KV GLO}] 24: CoGBK [In(Main): KV <- {23: KV/KV GLO}] -> [Out: CoGBK -> {24: CoGBK/CoGBK GLO}] 25: Combine [In(Main): int <- {24: CoGBK/CoGBK GLO}] -> [Out: KV -> {25: KV/KV GLO}] 26: ParDo [In(Main): KV <- {25: KV/KV GLO}] -> [Out: Y -> {26: int/int[varintz] GLO}] 27: Impulse [] -> [Out: []uint8 -> {27: []uint8/bytes GLO}] 28: ParDo [In(Main): []uint8 <- {27: []uint8/bytes GLO}] -> [Out: T -> {28: int/int[varintz] GLO}] 29: Impulse [] -> [Out: []uint8 -> {29: []uint8/bytes GLO}] 30: ParDo [In(Main): []uint8 <- {29: []uint8/bytes GLO} In(Iter): T <- {26: int/int[varintz] GLO} In(Iter): T <- {28: int/int[varintz] GLO}] -> [Out: T -> {30: int/int[varintz] GLO} Out: T -> {31: int/int[varintz] GLO} Out: T -> {32: int/int[varintz] GLO}] 31: Impulse [] -> [Out: []uint8 -> {33: []uint8/bytes GLO}] 32: ParDo [In(Main): []uint8 <- {33: []uint8/bytes GLO} In(Iter): T <- {30: int/int[varintz] GLO} In(Iter): T <- {31: int/int[varintz] GLO} In(Iter): T <- {32: int/int[varintz] GLO}] -> [] 33: Impulse [] -> [Out: []uint8 -> {34: []uint8/bytes GLO}] 34: ParDo [In(Main): []uint8 <- {34: []uint8/bytes GLO}] -> [Out: T -> {35: string/string GLO}] 35: Impulse [] -> [Out: []uint8 -> {36: []uint8/bytes GLO}] 36: ParDo [In(Main): []uint8 <- {36: []uint8/bytes GLO} In(Iter): T <- {21: string/string GLO} In(Iter): T <- {35: string/string GLO}] -> [Out: T -> {37: string/string GLO} Out: T -> {38: string/string GLO} Out: T -> {39: string/string GLO}] 37: Impulse [] -> [Out: []uint8 -> {40: []uint8/bytes GLO}] 38: ParDo [In(Main): []uint8 <- {40: []uint8/bytes GLO} In(Iter): T <- {37: string/string GLO} In(Iter): T <- {38: string/string GLO} In(Iter): T <- {39: string/string GLO}] -> [] 2024/09/21 00:42:42 Plan[plan]: 53: Impulse[0] 55: Impulse[0] 56: Impulse[0] 57: Impulse[0] 59: Impulse[0] 60: Impulse[0] 61: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestGoldenCreate.func2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: Flatten[4]. Out:Multiplex. Out:[11 26] 29: ParDo[batchmap.tileHashFn] Out:[28] 30: CoGBK. Out:29 31: Inject[0]. Out:30 32: ParDo[batchmap.leafShardFn] Out:[31] 33: ParDo[batchmap.tileToNodeHashFn] Out:[32] 34: Multiplex. Out:[33 28] 35: ParDo[batchmap.tileHashFn] Out:[34] 36: CoGBK. Out:35 37: Inject[0]. Out:36 38: ParDo[batchmap.leafShardFn] Out:[37] 39: ParDo[batchmap.tileToNodeHashFn] Out:[38] 40: Multiplex. Out:[39 28] 41: ParDo[batchmap.tileHashFn] Out:[40] 42: CoGBK. Out:41 43: Inject[0]. Out:42 44: ParDo[batchmap.leafShardFn] Out:[43] 45: ParDo[batchmap.tileToNodeHashFn] Out:[44] 46: Multiplex. Out:[45 28] 47: ParDo[batchmap.tileHashFn] Out:[46] 48: CoGBK. Out:47 49: Inject[0]. Out:48 50: ParDo[batchmap.leafShardFn] Out:[49] 51: ParDo[batchmap.entryToNodeHashFn] Out:[50] 52: ParDo[beam.createFn] Out:[51] 54: ParDo[beam.createFn] Out:[20] 58: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:42 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[18] done 2024/09/21 00:42:42 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[13] done 2024/09/21 00:42:42 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[7] done 2024/09/21 00:42:42 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[2] done 2024/09/21 00:42:42 Executing pipeline with the direct runner. 2024/09/21 00:42:42 Pipeline: 2024/09/21 00:42:42 Nodes: {1: []uint8/bytes GLO} {2: *batchmap.Entry/R[*batchmap.Entry] GLO} {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {4: KV<[]uint8,batchmap.nodeHash>/KV GLO} {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {6: *batchmap.Tile/R[*batchmap.Tile] GLO} {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {8: KV<[]uint8,batchmap.nodeHash>/KV GLO} {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {10: *batchmap.Tile/R[*batchmap.Tile] GLO} {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {12: KV<[]uint8,batchmap.nodeHash>/KV GLO} {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {14: *batchmap.Tile/R[*batchmap.Tile] GLO} {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {16: KV<[]uint8,batchmap.nodeHash>/KV GLO} {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO} {18: *batchmap.Tile/R[*batchmap.Tile] GLO} {19: *batchmap.Tile/R[*batchmap.Tile] GLO} {20: []uint8/bytes GLO} {21: *batchmap.Entry/R[*batchmap.Entry] GLO} {22: *batchmap.Tile/R[*batchmap.Tile] GLO} {23: *batchmap.Tile/R[*batchmap.Tile] GLO} {24: *batchmap.Tile/R[*batchmap.Tile] GLO} {25: *batchmap.Tile/R[*batchmap.Tile] GLO} {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {27: KV<[]uint8,*batchmap.Tile>/KV GLO} {28: KV<[]uint8,batchmap.nodeHash>/KV GLO} {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {30: *batchmap.Tile/R[*batchmap.Tile] GLO} {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {32: KV<[]uint8,*batchmap.Tile>/KV GLO} {33: KV<[]uint8,batchmap.nodeHash>/KV GLO} {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {35: *batchmap.Tile/R[*batchmap.Tile] GLO} {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {37: KV<[]uint8,*batchmap.Tile>/KV GLO} {38: KV<[]uint8,batchmap.nodeHash>/KV GLO} {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {40: *batchmap.Tile/R[*batchmap.Tile] GLO} {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO} {42: KV<[]uint8,*batchmap.Tile>/KV GLO} {43: KV<[]uint8,batchmap.nodeHash>/KV GLO} {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO} {45: *batchmap.Tile/R[*batchmap.Tile] GLO} {46: *batchmap.Tile/R[*batchmap.Tile] GLO} {47: *batchmap.Tile/R[*batchmap.Tile] GLO} {48: string/string GLO} {49: int/int[varintz] GLO} {50: KV/KV GLO} {51: CoGBK/CoGBK GLO} {52: KV/KV GLO} {53: int/int[varintz] GLO} {54: []uint8/bytes GLO} {55: int/int[varintz] GLO} {56: []uint8/bytes GLO} {57: int/int[varintz] GLO} {58: int/int[varintz] GLO} {59: int/int[varintz] GLO} {60: []uint8/bytes GLO} {61: []uint8/bytes GLO} {62: string/string GLO} {63: []uint8/bytes GLO} {64: string/string GLO} {65: string/string GLO} {66: string/string GLO} {67: []uint8/bytes GLO} Edges: 1: Impulse [] -> [Out: []uint8 -> {1: []uint8/bytes GLO}] 2: ParDo [In(Main): []uint8 <- {1: []uint8/bytes GLO}] -> [Out: T -> {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] 3: ParDo [In(Main): *batchmap.Entry <- {2: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 4: ParDo [In(Main): batchmap.nodeHash <- {3: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 5: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {4: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 6: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {5: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] 7: ParDo [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 8: ParDo [In(Main): batchmap.nodeHash <- {7: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 9: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {8: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 10: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {9: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] 11: ParDo [In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 12: ParDo [In(Main): batchmap.nodeHash <- {11: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 13: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {12: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 14: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {13: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] 15: ParDo [In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 16: ParDo [In(Main): batchmap.nodeHash <- {15: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 17: CoGBK [In(Main): KV<[]uint8,batchmap.nodeHash> <- {16: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,batchmap.nodeHash> -> {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] 18: ParDo [In(Main): CoGBK<[]uint8,batchmap.nodeHash> <- {17: CoGBK<[]uint8,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] 19: Flatten [In(Main): *batchmap.Tile <- {6: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {10: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {14: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {18: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] 20: Impulse [] -> [Out: []uint8 -> {20: []uint8/bytes GLO}] 21: ParDo [In(Main): []uint8 <- {20: []uint8/bytes GLO}] -> [Out: T -> {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] 22: ParDo [In(Main): *batchmap.Tile <- {19: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {22: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {23: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {24: *batchmap.Tile/R[*batchmap.Tile] GLO} Out: *batchmap.Tile -> {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] 23: ParDo [In(Main): *batchmap.Entry <- {21: *batchmap.Entry/R[*batchmap.Entry] GLO}] -> [Out: batchmap.nodeHash -> {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 24: ParDo [In(Main): *batchmap.Tile <- {25: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {27: KV<[]uint8,*batchmap.Tile>/KV GLO}] 25: ParDo [In(Main): batchmap.nodeHash <- {26: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 26: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {27: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {28: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 27: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {29: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] 28: ParDo [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 29: ParDo [In(Main): *batchmap.Tile <- {24: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {32: KV<[]uint8,*batchmap.Tile>/KV GLO}] 30: ParDo [In(Main): batchmap.nodeHash <- {31: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 31: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {32: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {33: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 32: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {34: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] 33: ParDo [In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 34: ParDo [In(Main): *batchmap.Tile <- {23: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {37: KV<[]uint8,*batchmap.Tile>/KV GLO}] 35: ParDo [In(Main): batchmap.nodeHash <- {36: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 36: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {37: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {38: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 37: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {39: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] 38: ParDo [In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: batchmap.nodeHash -> {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] 39: ParDo [In(Main): *batchmap.Tile <- {22: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: KV<[]uint8,*batchmap.Tile> -> {42: KV<[]uint8,*batchmap.Tile>/KV GLO}] 40: ParDo [In(Main): batchmap.nodeHash <- {41: batchmap.nodeHash/R[batchmap.nodeHash] GLO}] -> [Out: KV<[]uint8,batchmap.nodeHash> -> {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] 41: CoGBK [In(Main): KV<[]uint8,*batchmap.Tile> <- {42: KV<[]uint8,*batchmap.Tile>/KV GLO} In(Main): KV<[]uint8,batchmap.nodeHash> <- {43: KV<[]uint8,batchmap.nodeHash>/KV GLO}] -> [Out: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> -> {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] 42: ParDo [In(Main): CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash> <- {44: CoGBK<[]uint8,*batchmap.Tile,batchmap.nodeHash>/CoGBK GLO}] -> [Out: *batchmap.Tile -> {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] 43: Flatten [In(Main): *batchmap.Tile <- {30: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {35: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {40: *batchmap.Tile/R[*batchmap.Tile] GLO} In(Main): *batchmap.Tile <- {45: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: *batchmap.Tile -> {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] 44: ParDo [In(Main): T <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: T -> {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] 45: ParDo [In(Main): *batchmap.Tile <- {47: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: string -> {48: string/string GLO}] 46: ParDo [In(Main): *batchmap.Tile <- {46: *batchmap.Tile/R[*batchmap.Tile] GLO}] -> [Out: int -> {49: int/int[varintz] GLO}] 47: ParDo [In(Main): T <- {49: int/int[varintz] GLO}] -> [Out: KV -> {50: KV/KV GLO}] 48: CoGBK [In(Main): KV <- {50: KV/KV GLO}] -> [Out: CoGBK -> {51: CoGBK/CoGBK GLO}] 49: Combine [In(Main): int <- {51: CoGBK/CoGBK GLO}] -> [Out: KV -> {52: KV/KV GLO}] 50: ParDo [In(Main): KV <- {52: KV/KV GLO}] -> [Out: Y -> {53: int/int[varintz] GLO}] 51: Impulse [] -> [Out: []uint8 -> {54: []uint8/bytes GLO}] 52: ParDo [In(Main): []uint8 <- {54: []uint8/bytes GLO}] -> [Out: T -> {55: int/int[varintz] GLO}] 53: Impulse [] -> [Out: []uint8 -> {56: []uint8/bytes GLO}] 54: ParDo [In(Main): []uint8 <- {56: []uint8/bytes GLO} In(Iter): T <- {53: int/int[varintz] GLO} In(Iter): T <- {55: int/int[varintz] GLO}] -> [Out: T -> {57: int/int[varintz] GLO} Out: T -> {58: int/int[varintz] GLO} Out: T -> {59: int/int[varintz] GLO}] 55: Impulse [] -> [Out: []uint8 -> {60: []uint8/bytes GLO}] 56: ParDo [In(Main): []uint8 <- {60: []uint8/bytes GLO} In(Iter): T <- {57: int/int[varintz] GLO} In(Iter): T <- {58: int/int[varintz] GLO} In(Iter): T <- {59: int/int[varintz] GLO}] -> [] 57: Impulse [] -> [Out: []uint8 -> {61: []uint8/bytes GLO}] 58: ParDo [In(Main): []uint8 <- {61: []uint8/bytes GLO}] -> [Out: T -> {62: string/string GLO}] 59: Impulse [] -> [Out: []uint8 -> {63: []uint8/bytes GLO}] 60: ParDo [In(Main): []uint8 <- {63: []uint8/bytes GLO} In(Iter): T <- {48: string/string GLO} In(Iter): T <- {62: string/string GLO}] -> [Out: T -> {64: string/string GLO} Out: T -> {65: string/string GLO} Out: T -> {66: string/string GLO}] 61: Impulse [] -> [Out: []uint8 -> {67: []uint8/bytes GLO}] 62: ParDo [In(Main): []uint8 <- {67: []uint8/bytes GLO} In(Iter): T <- {64: string/string GLO} In(Iter): T <- {65: string/string GLO} In(Iter): T <- {66: string/string GLO}] -> [] 2024/09/21 00:42:42 Plan[plan]: 88: Impulse[0] 92: Impulse[0] 94: Impulse[0] 95: Impulse[0] 96: Impulse[0] 98: Impulse[0] 99: Impulse[0] 100: Impulse[0] 1: ParDo[passert.failIfBadEntries] Out:[] 2: wait[3] Out:1 3: buffer[3]. wait:2 Out:1 4: buffer[4]. wait:2 Out:1 5: buffer[5]. wait:2 Out:1 6: ParDo[passert.diffFn] Out:[3 4 5] 7: wait[2] Out:6 8: buffer[8]. wait:7 Out:6 9: buffer[9]. wait:7 Out:6 10: ParDo[batchmap.TestGoldenUpdate.func2] Out:[8] 11: ParDo[filter.filterFn] Out:[10] 12: ParDo[passert.failIfBadEntries] Out:[] 13: wait[3] Out:12 14: buffer[14]. wait:13 Out:12 15: buffer[15]. wait:13 Out:12 16: buffer[16]. wait:13 Out:12 17: ParDo[passert.diffFn] Out:[14 15 16] 18: wait[2] Out:17 19: buffer[19]. wait:18 Out:17 20: buffer[20]. wait:18 Out:17 21: ParDo[beam.dropKeyFn] Out:[19] 22: Combine[stats.sumIntFn] Keyed:false Out:21 23: CoGBK. Out:22 24: Inject[0]. Out:23 25: ParDo[beam.addFixedKeyFn] Out:[24] 26: ParDo[batchmap.assertTileCount.func1] Out:[25] 27: Multiplex. Out:[11 26] 28: Flatten[4]. Out:Multiplex. Out:[11 26] 29: ParDo[batchmap.tileUpdateFn] Out:[28] 30: CoGBK. Out:29 31: Flatten[2]. Out:CoGBK. Out:29 32: Inject[0]. Out:31 33: Inject[1]. Out:31 34: ParDo[batchmap.updateStratum.func1] Out:[32] 35: ParDo[batchmap.leafShardFn] Out:[33] 36: ParDo[batchmap.tileToNodeHashFn] Out:[35] 37: Multiplex. Out:[36 28] 38: ParDo[batchmap.tileUpdateFn] Out:[37] 39: CoGBK. Out:38 40: Flatten[2]. Out:CoGBK. Out:38 41: Inject[0]. Out:40 42: Inject[1]. Out:40 43: ParDo[batchmap.updateStratum.func1] Out:[41] 44: ParDo[batchmap.leafShardFn] Out:[42] 45: ParDo[batchmap.tileToNodeHashFn] Out:[44] 46: Multiplex. Out:[45 28] 47: ParDo[batchmap.tileUpdateFn] Out:[46] 48: CoGBK. Out:47 49: Flatten[2]. Out:CoGBK. Out:47 50: Inject[0]. Out:49 51: Inject[1]. Out:49 52: ParDo[batchmap.updateStratum.func1] Out:[50] 53: ParDo[batchmap.leafShardFn] Out:[51] 54: ParDo[batchmap.tileToNodeHashFn] Out:[53] 55: Multiplex. Out:[54 28] 56: ParDo[batchmap.tileUpdateFn] Out:[55] 57: CoGBK. Out:56 58: Flatten[2]. Out:CoGBK. Out:56 59: Inject[0]. Out:58 60: Inject[1]. Out:58 61: ParDo[batchmap.updateStratum.func1] Out:[59] 62: ParDo[beam.partitionFn] Out:[34 43 52 61] 63: Flatten[4]. Out:ParDo[beam.partitionFn] Out:[34 43 52 61] 64: ParDo[batchmap.tileHashFn] Out:[63] 65: CoGBK. Out:64 66: Inject[0]. Out:65 67: ParDo[batchmap.leafShardFn] Out:[66] 68: ParDo[batchmap.tileToNodeHashFn] Out:[67] 69: Multiplex. Out:[68 63] 70: ParDo[batchmap.tileHashFn] Out:[69] 71: CoGBK. Out:70 72: Inject[0]. Out:71 73: ParDo[batchmap.leafShardFn] Out:[72] 74: ParDo[batchmap.tileToNodeHashFn] Out:[73] 75: Multiplex. Out:[74 63] 76: ParDo[batchmap.tileHashFn] Out:[75] 77: CoGBK. Out:76 78: Inject[0]. Out:77 79: ParDo[batchmap.leafShardFn] Out:[78] 80: ParDo[batchmap.tileToNodeHashFn] Out:[79] 81: Multiplex. Out:[80 63] 82: ParDo[batchmap.tileHashFn] Out:[81] 83: CoGBK. Out:82 84: Inject[0]. Out:83 85: ParDo[batchmap.leafShardFn] Out:[84] 86: ParDo[batchmap.entryToNodeHashFn] Out:[85] 87: ParDo[beam.createFn] Out:[86] 89: ParDo[batchmap.leafShardFn] Out:[60] 90: ParDo[batchmap.entryToNodeHashFn] Out:[89] 91: ParDo[beam.createFn] Out:[90] 93: ParDo[beam.createFn] Out:[20] 97: ParDo[beam.createFn] Out:[9] 2024/09/21 00:42:42 wait[18] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[18] done 2024/09/21 00:42:42 wait[13] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[13] done 2024/09/21 00:42:42 wait[7] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[7] done 2024/09/21 00:42:42 wait[2] unblocked w/ 1 [false] 2024/09/21 00:42:42 wait[2] done PASS ok github.com/google/trillian/experimental/batchmap 0.360s github.com/google/trillian/extension ? github.com/google/trillian/extension [no test files] github.com/google/trillian/integration 2024/09/21 00:42:43 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration 10.700s github.com/google/trillian/integration 2024/09/21 00:42:55 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration 10.709s github.com/google/trillian/integration/admin 2024/09/21 00:43:06 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:06 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:06 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:06 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:06 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:06 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:06 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:06 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:06 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/admin 0.008s github.com/google/trillian/integration/admin 2024/09/21 00:43:07 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:07 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:07 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:07 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:07 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:07 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:07 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:07 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:07 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/admin 0.008s github.com/google/trillian/integration/format PASS ok github.com/google/trillian/integration/format 0.915s github.com/google/trillian/integration/format PASS ok github.com/google/trillian/integration/format 0.897s github.com/google/trillian/integration/quota 2024/09/21 00:43:19 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:19 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/quota 0.018s github.com/google/trillian/integration/quota 2024/09/21 00:43:20 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:43:20 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/quota 0.018s github.com/google/trillian/integration/storagetest ? github.com/google/trillian/integration/storagetest [no test files] github.com/google/trillian/log E0921 00:43:21.200580 3336565 operation_manager.go:321] failed to perform operation: failed to list active log IDs: getactivelogs E0921 00:43:21.201154 3336565 operation_manager.go:428] ExecutePass(145) failed: test error E0921 00:43:24.201942 3336565 runner.go:119] 451: election.Await() failed: context canceled E0921 00:43:24.202240 3336565 operation_manager.go:428] ExecutePass(145) failed: test error E0921 00:43:24.202390 3336565 operation_manager.go:170] 98: failed to get log info: failedGetTree E0921 00:43:24.615979 3336565 runner.go:144] 6: no longer the master! E0921 00:43:24.615995 3336565 runner.go:144] 4: no longer the master! E0921 00:43:24.616010 3336565 runner.go:119] 6: context canceled E0921 00:43:24.616018 3336565 runner.go:119] 4: context canceled E0921 00:43:24.616029 3336565 runner.go:144] 5: no longer the master! E0921 00:43:24.616036 3336565 runner.go:119] 5: context canceled E0921 00:43:24.616045 3336565 runner.go:144] 1: no longer the master! E0921 00:43:24.616049 3336565 runner.go:144] 3: no longer the master! E0921 00:43:24.616057 3336565 runner.go:144] 2: no longer the master! E0921 00:43:24.616069 3336565 runner.go:119] 2: context canceled E0921 00:43:24.616050 3336565 runner.go:119] 1: context canceled E0921 00:43:24.616058 3336565 runner.go:119] 3: context canceled E0921 00:43:24.819672 3336565 runner.go:119] 3: election.Await() failed: context canceled E0921 00:43:24.819686 3336565 runner.go:144] 4: no longer the master! E0921 00:43:24.819694 3336565 runner.go:119] 1: election.Await() failed: context canceled E0921 00:43:24.819696 3336565 runner.go:119] 4: context canceled E0921 00:43:24.819698 3336565 runner.go:144] 2: no longer the master! E0921 00:43:24.819714 3336565 runner.go:119] 2: context canceled E0921 00:43:24.819687 3336565 runner.go:144] 6: no longer the master! E0921 00:43:24.819728 3336565 operation_manager.go:248] failed to create election for 1: injected failure E0921 00:43:24.819741 3336565 runner.go:119] 6: context canceled E0921 00:43:24.819755 3336565 operation_manager.go:248] failed to create election for 4: injected failure E0921 00:43:24.819767 3336565 operation_manager.go:248] failed to create election for 2: injected failure E0921 00:43:24.819679 3336565 runner.go:119] 5: election.Await() failed: context canceled E0921 00:43:24.819778 3336565 operation_manager.go:248] failed to create election for 3: injected failure E0921 00:43:24.923120 3336565 operation_manager.go:248] failed to create election for 6: injected failure E0921 00:43:24.923123 3336565 operation_manager.go:248] failed to create election for 5: injected failure PASS ok github.com/google/trillian/log 3.837s github.com/google/trillian/log E0921 00:43:25.523303 3336765 operation_manager.go:321] failed to perform operation: failed to list active log IDs: getactivelogs E0921 00:43:25.523936 3336765 operation_manager.go:428] ExecutePass(145) failed: test error E0921 00:43:27.527905 3336765 runner.go:119] 451: election.Await() failed: context canceled E0921 00:43:27.528182 3336765 operation_manager.go:428] ExecutePass(145) failed: test error E0921 00:43:27.528347 3336765 operation_manager.go:170] 98: failed to get log info: failedGetTree E0921 00:43:27.941649 3336765 runner.go:144] 5: no longer the master! E0921 00:43:27.941672 3336765 runner.go:119] 5: context canceled E0921 00:43:27.941698 3336765 runner.go:144] 4: no longer the master! E0921 00:43:27.941705 3336765 runner.go:119] 4: context canceled E0921 00:43:27.941719 3336765 runner.go:144] 6: no longer the master! E0921 00:43:27.941724 3336765 runner.go:119] 6: context canceled E0921 00:43:27.941736 3336765 runner.go:144] 1: no longer the master! E0921 00:43:27.941738 3336765 runner.go:144] 3: no longer the master! E0921 00:43:27.941748 3336765 runner.go:144] 2: no longer the master! E0921 00:43:27.941758 3336765 runner.go:119] 3: context canceled E0921 00:43:27.941763 3336765 runner.go:119] 2: context canceled E0921 00:43:27.941742 3336765 runner.go:119] 1: context canceled E0921 00:43:28.148636 3336765 runner.go:119] 3: election.Await() failed: context canceled E0921 00:43:28.148653 3336765 runner.go:144] 4: no longer the master! E0921 00:43:28.148662 3336765 runner.go:144] 6: no longer the master! E0921 00:43:28.148662 3336765 runner.go:119] 4: context canceled E0921 00:43:28.148670 3336765 runner.go:144] 2: no longer the master! E0921 00:43:28.148676 3336765 runner.go:119] 2: context canceled E0921 00:43:28.148644 3336765 runner.go:119] 5: election.Await() failed: context canceled E0921 00:43:28.148698 3336765 runner.go:119] 1: election.Await() failed: context canceled E0921 00:43:28.148702 3336765 operation_manager.go:248] failed to create election for 1: injected failure E0921 00:43:28.148670 3336765 runner.go:119] 6: context canceled E0921 00:43:28.148709 3336765 operation_manager.go:248] failed to create election for 2: injected failure E0921 00:43:28.148709 3336765 operation_manager.go:248] failed to create election for 4: injected failure E0921 00:43:28.148713 3336765 operation_manager.go:248] failed to create election for 3: injected failure E0921 00:43:28.251953 3336765 operation_manager.go:248] failed to create election for 6: injected failure E0921 00:43:28.251965 3336765 operation_manager.go:248] failed to create election for 5: injected failure PASS ok github.com/google/trillian/log 2.843s github.com/google/trillian/merkle PASS ok github.com/google/trillian/merkle 0.009s github.com/google/trillian/merkle PASS ok github.com/google/trillian/merkle 0.009s github.com/google/trillian/merkle/compact PASS ok github.com/google/trillian/merkle/compact 0.321s github.com/google/trillian/merkle/compact PASS ok github.com/google/trillian/merkle/compact 0.310s github.com/google/trillian/merkle/coniks PASS ok github.com/google/trillian/merkle/coniks 0.006s github.com/google/trillian/merkle/coniks PASS ok github.com/google/trillian/merkle/coniks 0.006s github.com/google/trillian/merkle/hashers ? github.com/google/trillian/merkle/hashers [no test files] github.com/google/trillian/merkle/logverifier PASS ok github.com/google/trillian/merkle/logverifier 2.367s github.com/google/trillian/merkle/logverifier PASS ok github.com/google/trillian/merkle/logverifier 2.380s github.com/google/trillian/merkle/rfc6962 PASS ok github.com/google/trillian/merkle/rfc6962 0.014s github.com/google/trillian/merkle/rfc6962 PASS ok github.com/google/trillian/merkle/rfc6962 0.002s github.com/google/trillian/merkle/smt PASS ok github.com/google/trillian/merkle/smt 1.964s github.com/google/trillian/merkle/smt PASS ok github.com/google/trillian/merkle/smt 2.020s github.com/google/trillian/merkle/smt/node PASS ok github.com/google/trillian/merkle/smt/node 0.003s github.com/google/trillian/merkle/smt/node PASS ok github.com/google/trillian/merkle/smt/node 0.003s github.com/google/trillian/merkle/testonly ? github.com/google/trillian/merkle/testonly [no test files] github.com/google/trillian/monitoring E0921 00:43:43.344970 3339362 inert.go:82] invalid label count 1; want 0 E0921 00:43:43.345218 3339362 inert.go:82] invalid label count 1; want 0 E0921 00:43:43.345223 3339362 inert.go:106] invalid label count 1; want 0 E0921 00:43:43.345255 3339362 inert.go:82] invalid label count 2; want 1 E0921 00:43:43.345259 3339362 inert.go:82] invalid label count 2; want 1 E0921 00:43:43.345262 3339362 inert.go:106] invalid label count 2; want 1 E0921 00:43:43.345282 3339362 inert.go:82] invalid label count 3; want 2 E0921 00:43:43.345285 3339362 inert.go:82] invalid label count 3; want 2 E0921 00:43:43.345288 3339362 inert.go:106] invalid label count 3; want 2 E0921 00:43:43.345321 3339362 inert.go:82] invalid label count 1; want 0 E0921 00:43:43.345324 3339362 inert.go:82] invalid label count 1; want 0 E0921 00:43:43.345327 3339362 inert.go:82] invalid label count 1; want 0 E0921 00:43:43.345334 3339362 inert.go:94] invalid label count 1; want 0 E0921 00:43:43.345337 3339362 inert.go:106] invalid label count 1; want 0 E0921 00:43:43.345356 3339362 inert.go:82] invalid label count 2; want 1 E0921 00:43:43.345359 3339362 inert.go:82] invalid label count 2; want 1 E0921 00:43:43.345362 3339362 inert.go:82] invalid label count 2; want 1 E0921 00:43:43.345364 3339362 inert.go:94] invalid label count 2; want 1 E0921 00:43:43.345367 3339362 inert.go:106] invalid label count 2; want 1 E0921 00:43:43.345386 3339362 inert.go:82] invalid label count 3; want 2 E0921 00:43:43.345389 3339362 inert.go:82] invalid label count 3; want 2 E0921 00:43:43.345392 3339362 inert.go:82] invalid label count 3; want 2 E0921 00:43:43.345394 3339362 inert.go:94] invalid label count 3; want 2 E0921 00:43:43.345397 3339362 inert.go:106] invalid label count 3; want 2 E0921 00:43:43.345428 3339362 inert.go:126] invalid label count 1; want 0 E0921 00:43:43.345431 3339362 inert.go:126] invalid label count 1; want 0 E0921 00:43:43.345435 3339362 inert.go:139] invalid label count 1; want 0 E0921 00:43:43.345453 3339362 inert.go:126] invalid label count 2; want 1 E0921 00:43:43.345456 3339362 inert.go:126] invalid label count 2; want 1 E0921 00:43:43.345459 3339362 inert.go:139] invalid label count 2; want 1 E0921 00:43:43.345479 3339362 inert.go:126] invalid label count 3; want 2 E0921 00:43:43.345482 3339362 inert.go:126] invalid label count 3; want 2 E0921 00:43:43.345485 3339362 inert.go:139] invalid label count 3; want 2 PASS ok github.com/google/trillian/monitoring 0.006s github.com/google/trillian/monitoring E0921 00:43:43.811398 3339494 inert.go:82] invalid label count 1; want 0 E0921 00:43:43.811683 3339494 inert.go:82] invalid label count 1; want 0 E0921 00:43:43.811689 3339494 inert.go:106] invalid label count 1; want 0 E0921 00:43:43.811723 3339494 inert.go:82] invalid label count 2; want 1 E0921 00:43:43.811727 3339494 inert.go:82] invalid label count 2; want 1 E0921 00:43:43.811730 3339494 inert.go:106] invalid label count 2; want 1 E0921 00:43:43.811750 3339494 inert.go:82] invalid label count 3; want 2 E0921 00:43:43.811754 3339494 inert.go:82] invalid label count 3; want 2 E0921 00:43:43.811756 3339494 inert.go:106] invalid label count 3; want 2 E0921 00:43:43.811789 3339494 inert.go:82] invalid label count 1; want 0 E0921 00:43:43.811793 3339494 inert.go:82] invalid label count 1; want 0 E0921 00:43:43.811795 3339494 inert.go:82] invalid label count 1; want 0 E0921 00:43:43.811799 3339494 inert.go:94] invalid label count 1; want 0 E0921 00:43:43.811802 3339494 inert.go:106] invalid label count 1; want 0 E0921 00:43:43.811821 3339494 inert.go:82] invalid label count 2; want 1 E0921 00:43:43.811824 3339494 inert.go:82] invalid label count 2; want 1 E0921 00:43:43.811827 3339494 inert.go:82] invalid label count 2; want 1 E0921 00:43:43.811830 3339494 inert.go:94] invalid label count 2; want 1 E0921 00:43:43.811832 3339494 inert.go:106] invalid label count 2; want 1 E0921 00:43:43.811851 3339494 inert.go:82] invalid label count 3; want 2 E0921 00:43:43.811854 3339494 inert.go:82] invalid label count 3; want 2 E0921 00:43:43.811857 3339494 inert.go:82] invalid label count 3; want 2 E0921 00:43:43.811860 3339494 inert.go:94] invalid label count 3; want 2 E0921 00:43:43.811862 3339494 inert.go:106] invalid label count 3; want 2 E0921 00:43:43.811893 3339494 inert.go:126] invalid label count 1; want 0 E0921 00:43:43.811896 3339494 inert.go:126] invalid label count 1; want 0 E0921 00:43:43.811899 3339494 inert.go:139] invalid label count 1; want 0 E0921 00:43:43.811918 3339494 inert.go:126] invalid label count 2; want 1 E0921 00:43:43.811921 3339494 inert.go:126] invalid label count 2; want 1 E0921 00:43:43.811924 3339494 inert.go:139] invalid label count 2; want 1 E0921 00:43:43.811945 3339494 inert.go:126] invalid label count 3; want 2 E0921 00:43:43.811948 3339494 inert.go:126] invalid label count 3; want 2 E0921 00:43:43.811951 3339494 inert.go:139] invalid label count 3; want 2 PASS ok github.com/google/trillian/monitoring 0.007s github.com/google/trillian/monitoring/opencensus ? github.com/google/trillian/monitoring/opencensus [no test files] github.com/google/trillian/monitoring/prometheus E0921 00:43:47.915816 3341247 metrics.go:140] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:47.916055 3341247 metrics.go:126] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:47.916060 3341247 metrics.go:154] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:47.916115 3341247 metrics.go:140] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:47.916119 3341247 metrics.go:126] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:47.916123 3341247 metrics.go:154] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:47.916158 3341247 metrics.go:140] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:47.916162 3341247 metrics.go:126] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:47.916166 3341247 metrics.go:154] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:47.916210 3341247 metrics.go:214] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:47.916214 3341247 metrics.go:186] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:47.916217 3341247 metrics.go:200] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:47.916220 3341247 metrics.go:228] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:47.916224 3341247 metrics.go:242] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:47.916255 3341247 metrics.go:214] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:47.916259 3341247 metrics.go:186] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:47.916262 3341247 metrics.go:200] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:47.916265 3341247 metrics.go:228] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:47.916269 3341247 metrics.go:242] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:47.916304 3341247 metrics.go:214] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:47.916308 3341247 metrics.go:186] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:47.916312 3341247 metrics.go:200] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:47.916315 3341247 metrics.go:228] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:47.916319 3341247 metrics.go:242] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:47.916435 3341247 metrics.go:274] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:47.916442 3341247 metrics.go:274] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:47.916447 3341247 metrics.go:288] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:47.916579 3341247 metrics.go:274] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:47.916583 3341247 metrics.go:274] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:47.916587 3341247 metrics.go:288] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:47.916787 3341247 metrics.go:274] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:47.916792 3341247 metrics.go:274] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:47.916796 3341247 metrics.go:288] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) PASS ok github.com/google/trillian/monitoring/prometheus 0.007s github.com/google/trillian/monitoring/prometheus E0921 00:43:48.387590 3341387 metrics.go:140] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:48.387873 3341387 metrics.go:126] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:48.387878 3341387 metrics.go:154] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:48.387929 3341387 metrics.go:140] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:48.387933 3341387 metrics.go:126] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:48.387937 3341387 metrics.go:154] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:48.387973 3341387 metrics.go:140] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:48.387977 3341387 metrics.go:126] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:48.387982 3341387 metrics.go:154] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:48.388028 3341387 metrics.go:214] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:48.388032 3341387 metrics.go:186] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:48.388035 3341387 metrics.go:200] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:48.388038 3341387 metrics.go:228] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:48.388042 3341387 metrics.go:242] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:48.388073 3341387 metrics.go:214] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:48.388077 3341387 metrics.go:186] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:48.388081 3341387 metrics.go:200] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:48.388084 3341387 metrics.go:228] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:48.388088 3341387 metrics.go:242] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:48.388122 3341387 metrics.go:214] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:48.388126 3341387 metrics.go:186] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:48.388130 3341387 metrics.go:200] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:48.388133 3341387 metrics.go:228] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:48.388137 3341387 metrics.go:242] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:48.388259 3341387 metrics.go:274] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:48.388264 3341387 metrics.go:274] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:48.388270 3341387 metrics.go:288] got 1 ([bogus]) values for 0 labels ([]) E0921 00:43:48.388397 3341387 metrics.go:274] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:48.388401 3341387 metrics.go:274] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:48.388406 3341387 metrics.go:288] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:43:48.388586 3341387 metrics.go:274] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:48.388591 3341387 metrics.go:274] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:43:48.388595 3341387 metrics.go:288] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) PASS ok github.com/google/trillian/monitoring/prometheus 0.007s github.com/google/trillian/monitoring/testonly ? github.com/google/trillian/monitoring/testonly [no test files] github.com/google/trillian/quota PASS ok github.com/google/trillian/quota 0.005s github.com/google/trillian/quota PASS ok github.com/google/trillian/quota 0.005s github.com/google/trillian/quota/cacheqm PASS ok github.com/google/trillian/quota/cacheqm 0.007s github.com/google/trillian/quota/cacheqm PASS ok github.com/google/trillian/quota/cacheqm 0.007s github.com/google/trillian/quota/etcd ? github.com/google/trillian/quota/etcd [no test files] github.com/google/trillian/quota/etcd/etcdqm {"level":"info","ts":"2024-09-21T00:43:51.649+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:42451"]} {"level":"info","ts":"2024-09-21T00:43:51.649+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:45999"]} {"level":"info","ts":"2024-09-21T00:43:51.649+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-1079854265","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-1079854265/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:42451"],"listen-peer-urls":["http://127.0.0.1:42451"],"advertise-client-urls":["http://127.0.0.1:45999"],"listen-client-urls":["http://127.0.0.1:45999"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:42451","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2024-09-21T00:43:51.655+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-1079854265/member/snap/db","took":"5.442459ms"} {"level":"info","ts":"2024-09-21T00:43:51.659+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"f25798c2baeedc8b","cluster-id":"85341b2265ec8e5"} {"level":"info","ts":"2024-09-21T00:43:51.659+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f25798c2baeedc8b switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:43:51.659+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f25798c2baeedc8b became follower at term 0"} {"level":"info","ts":"2024-09-21T00:43:51.659+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft f25798c2baeedc8b [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:43:51.659+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f25798c2baeedc8b became follower at term 1"} {"level":"info","ts":"2024-09-21T00:43:51.659+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f25798c2baeedc8b switched to configuration voters=(17462594042279681163)"} {"level":"warn","ts":"2024-09-21T00:43:51.662+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:43:51.664+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:43:51.666+0800","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2024-09-21T00:43:51.668+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"f25798c2baeedc8b","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:43:51.668+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"f25798c2baeedc8b","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:43:51.668+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f25798c2baeedc8b switched to configuration voters=(17462594042279681163)"} {"level":"info","ts":"2024-09-21T00:43:51.668+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"85341b2265ec8e5","local-member-id":"f25798c2baeedc8b","added-peer-id":"f25798c2baeedc8b","added-peer-peer-urls":["http://127.0.0.1:42451"]} {"level":"info","ts":"2024-09-21T00:43:51.669+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"f25798c2baeedc8b","initial-advertise-peer-urls":["http://127.0.0.1:42451"],"listen-peer-urls":["http://127.0.0.1:42451"],"advertise-client-urls":["http://127.0.0.1:45999"],"listen-client-urls":["http://127.0.0.1:45999"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:43:51.669+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:42451"} {"level":"info","ts":"2024-09-21T00:43:51.669+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:42451"} {"level":"info","ts":"2024-09-21T00:43:52.362+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f25798c2baeedc8b is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:43:52.362+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f25798c2baeedc8b became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:43:52.362+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f25798c2baeedc8b received MsgPreVoteResp from f25798c2baeedc8b at term 1"} {"level":"info","ts":"2024-09-21T00:43:52.362+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f25798c2baeedc8b became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:43:52.362+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f25798c2baeedc8b received MsgVoteResp from f25798c2baeedc8b at term 2"} {"level":"info","ts":"2024-09-21T00:43:52.362+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f25798c2baeedc8b became leader at term 2"} {"level":"info","ts":"2024-09-21T00:43:52.362+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: f25798c2baeedc8b elected leader f25798c2baeedc8b at term 2"} {"level":"info","ts":"2024-09-21T00:43:52.362+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:43:52.363+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"85341b2265ec8e5","local-member-id":"f25798c2baeedc8b","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:43:52.363+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:43:52.363+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:43:52.363+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:43:52.363+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"f25798c2baeedc8b","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:45999]}","request-path":"/0/members/f25798c2baeedc8b/attributes","cluster-id":"85341b2265ec8e5","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:43:52.364+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:45999"} PASS {"level":"info","ts":"2024-09-21T00:43:52.406+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1079854265","advertise-peer-urls":["http://127.0.0.1:42451"],"advertise-client-urls":["http://127.0.0.1:45999"]} {"level":"info","ts":"2024-09-21T00:43:52.406+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"f25798c2baeedc8b","current-leader-member-id":"f25798c2baeedc8b"} {"level":"info","ts":"2024-09-21T00:43:52.408+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:42451"} {"level":"info","ts":"2024-09-21T00:43:52.408+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:42451"} {"level":"info","ts":"2024-09-21T00:43:52.408+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1079854265","advertise-peer-urls":["http://127.0.0.1:42451"],"advertise-client-urls":["http://127.0.0.1:45999"]} ok github.com/google/trillian/quota/etcd/etcdqm 0.776s github.com/google/trillian/quota/etcd/etcdqm {"level":"info","ts":"2024-09-21T00:43:53.333+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:41169"]} {"level":"info","ts":"2024-09-21T00:43:53.333+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:40869"]} {"level":"info","ts":"2024-09-21T00:43:53.333+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-1051440463","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-1051440463/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:41169"],"listen-peer-urls":["http://127.0.0.1:41169"],"advertise-client-urls":["http://127.0.0.1:40869"],"listen-client-urls":["http://127.0.0.1:40869"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:41169","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2024-09-21T00:43:53.340+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-1051440463/member/snap/db","took":"6.640624ms"} {"level":"info","ts":"2024-09-21T00:43:53.343+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"5e1af7186a06d015","cluster-id":"aafd3b190ccc1fc"} {"level":"info","ts":"2024-09-21T00:43:53.343+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"5e1af7186a06d015 switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:43:53.344+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"5e1af7186a06d015 became follower at term 0"} {"level":"info","ts":"2024-09-21T00:43:53.344+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 5e1af7186a06d015 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:43:53.344+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"5e1af7186a06d015 became follower at term 1"} {"level":"info","ts":"2024-09-21T00:43:53.344+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"5e1af7186a06d015 switched to configuration voters=(6781003873189810197)"} {"level":"warn","ts":"2024-09-21T00:43:53.346+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:43:53.349+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:43:53.350+0800","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2024-09-21T00:43:53.352+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"5e1af7186a06d015","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:43:53.352+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"5e1af7186a06d015","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:43:53.352+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"5e1af7186a06d015 switched to configuration voters=(6781003873189810197)"} {"level":"info","ts":"2024-09-21T00:43:53.352+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"aafd3b190ccc1fc","local-member-id":"5e1af7186a06d015","added-peer-id":"5e1af7186a06d015","added-peer-peer-urls":["http://127.0.0.1:41169"]} {"level":"info","ts":"2024-09-21T00:43:53.353+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"5e1af7186a06d015","initial-advertise-peer-urls":["http://127.0.0.1:41169"],"listen-peer-urls":["http://127.0.0.1:41169"],"advertise-client-urls":["http://127.0.0.1:40869"],"listen-client-urls":["http://127.0.0.1:40869"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:43:53.353+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:41169"} {"level":"info","ts":"2024-09-21T00:43:53.353+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:41169"} {"level":"info","ts":"2024-09-21T00:43:53.848+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"5e1af7186a06d015 is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:43:53.848+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"5e1af7186a06d015 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:43:53.848+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"5e1af7186a06d015 received MsgPreVoteResp from 5e1af7186a06d015 at term 1"} {"level":"info","ts":"2024-09-21T00:43:53.848+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"5e1af7186a06d015 became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:43:53.848+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"5e1af7186a06d015 received MsgVoteResp from 5e1af7186a06d015 at term 2"} {"level":"info","ts":"2024-09-21T00:43:53.848+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"5e1af7186a06d015 became leader at term 2"} {"level":"info","ts":"2024-09-21T00:43:53.848+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 5e1af7186a06d015 elected leader 5e1af7186a06d015 at term 2"} {"level":"info","ts":"2024-09-21T00:43:53.848+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"5e1af7186a06d015","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:40869]}","request-path":"/0/members/5e1af7186a06d015/attributes","cluster-id":"aafd3b190ccc1fc","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:43:53.848+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:43:53.848+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:43:53.849+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:40869"} {"level":"info","ts":"2024-09-21T00:43:53.849+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"aafd3b190ccc1fc","local-member-id":"5e1af7186a06d015","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:43:53.849+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:43:53.849+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} PASS {"level":"info","ts":"2024-09-21T00:43:53.889+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1051440463","advertise-peer-urls":["http://127.0.0.1:41169"],"advertise-client-urls":["http://127.0.0.1:40869"]} {"level":"info","ts":"2024-09-21T00:43:53.890+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"5e1af7186a06d015","current-leader-member-id":"5e1af7186a06d015"} {"level":"info","ts":"2024-09-21T00:43:53.892+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:41169"} {"level":"info","ts":"2024-09-21T00:43:53.892+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:41169"} {"level":"info","ts":"2024-09-21T00:43:53.892+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1051440463","advertise-peer-urls":["http://127.0.0.1:41169"],"advertise-client-urls":["http://127.0.0.1:40869"]} ok github.com/google/trillian/quota/etcd/etcdqm 0.576s github.com/google/trillian/quota/etcd/quotaapi {"level":"info","ts":"2024-09-21T00:43:54.979+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:43613"]} {"level":"info","ts":"2024-09-21T00:43:54.979+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:44581"]} {"level":"info","ts":"2024-09-21T00:43:54.980+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-884579361","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-884579361/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:43613"],"listen-peer-urls":["http://127.0.0.1:43613"],"advertise-client-urls":["http://127.0.0.1:44581"],"listen-client-urls":["http://127.0.0.1:44581"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:43613","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2024-09-21T00:43:54.982+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-884579361/member/snap/db","took":"2.063488ms"} {"level":"info","ts":"2024-09-21T00:43:54.985+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"ac600a1b029b7a7","cluster-id":"fff126ef1ed572d7"} {"level":"info","ts":"2024-09-21T00:43:54.985+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ac600a1b029b7a7 switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:43:54.985+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ac600a1b029b7a7 became follower at term 0"} {"level":"info","ts":"2024-09-21T00:43:54.985+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft ac600a1b029b7a7 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:43:54.985+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ac600a1b029b7a7 became follower at term 1"} {"level":"info","ts":"2024-09-21T00:43:54.985+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ac600a1b029b7a7 switched to configuration voters=(776308680213247911)"} {"level":"warn","ts":"2024-09-21T00:43:54.988+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:43:54.990+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:43:54.991+0800","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2024-09-21T00:43:54.993+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"ac600a1b029b7a7","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:43:54.993+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"ac600a1b029b7a7","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:43:54.993+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ac600a1b029b7a7 switched to configuration voters=(776308680213247911)"} {"level":"info","ts":"2024-09-21T00:43:54.993+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"fff126ef1ed572d7","local-member-id":"ac600a1b029b7a7","added-peer-id":"ac600a1b029b7a7","added-peer-peer-urls":["http://127.0.0.1:43613"]} {"level":"info","ts":"2024-09-21T00:43:54.995+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:43613"} {"level":"info","ts":"2024-09-21T00:43:54.995+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:43613"} {"level":"info","ts":"2024-09-21T00:43:54.995+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"ac600a1b029b7a7","initial-advertise-peer-urls":["http://127.0.0.1:43613"],"listen-peer-urls":["http://127.0.0.1:43613"],"advertise-client-urls":["http://127.0.0.1:44581"],"listen-client-urls":["http://127.0.0.1:44581"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:43:55.785+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ac600a1b029b7a7 is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:43:55.785+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ac600a1b029b7a7 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:43:55.785+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ac600a1b029b7a7 received MsgPreVoteResp from ac600a1b029b7a7 at term 1"} {"level":"info","ts":"2024-09-21T00:43:55.785+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ac600a1b029b7a7 became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:43:55.785+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ac600a1b029b7a7 received MsgVoteResp from ac600a1b029b7a7 at term 2"} {"level":"info","ts":"2024-09-21T00:43:55.785+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ac600a1b029b7a7 became leader at term 2"} {"level":"info","ts":"2024-09-21T00:43:55.785+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: ac600a1b029b7a7 elected leader ac600a1b029b7a7 at term 2"} {"level":"info","ts":"2024-09-21T00:43:55.786+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:43:55.786+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"fff126ef1ed572d7","local-member-id":"ac600a1b029b7a7","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:43:55.786+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:43:55.786+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:43:55.786+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:43:55.786+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"ac600a1b029b7a7","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:44581]}","request-path":"/0/members/ac600a1b029b7a7/attributes","cluster-id":"fff126ef1ed572d7","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:43:55.787+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:44581"} PASS {"level":"info","ts":"2024-09-21T00:44:01.183+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-884579361","advertise-peer-urls":["http://127.0.0.1:43613"],"advertise-client-urls":["http://127.0.0.1:44581"]} {"level":"info","ts":"2024-09-21T00:44:01.183+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"ac600a1b029b7a7","current-leader-member-id":"ac600a1b029b7a7"} {"level":"info","ts":"2024-09-21T00:44:01.185+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:43613"} {"level":"info","ts":"2024-09-21T00:44:01.185+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:43613"} {"level":"info","ts":"2024-09-21T00:44:01.185+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-884579361","advertise-peer-urls":["http://127.0.0.1:43613"],"advertise-client-urls":["http://127.0.0.1:44581"]} ok github.com/google/trillian/quota/etcd/quotaapi 6.225s github.com/google/trillian/quota/etcd/quotaapi {"level":"info","ts":"2024-09-21T00:44:02.112+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:41657"]} {"level":"info","ts":"2024-09-21T00:44:02.112+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:43003"]} {"level":"info","ts":"2024-09-21T00:44:02.112+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-3485351859","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-3485351859/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:41657"],"listen-peer-urls":["http://127.0.0.1:41657"],"advertise-client-urls":["http://127.0.0.1:43003"],"listen-client-urls":["http://127.0.0.1:43003"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:41657","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2024-09-21T00:44:02.116+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-3485351859/member/snap/db","took":"3.644173ms"} {"level":"info","ts":"2024-09-21T00:44:02.119+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"c2bb1ee399bd4fee","cluster-id":"8dd6d5cf8278df4f"} {"level":"info","ts":"2024-09-21T00:44:02.119+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c2bb1ee399bd4fee switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:44:02.119+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c2bb1ee399bd4fee became follower at term 0"} {"level":"info","ts":"2024-09-21T00:44:02.119+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft c2bb1ee399bd4fee [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:44:02.119+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c2bb1ee399bd4fee became follower at term 1"} {"level":"info","ts":"2024-09-21T00:44:02.119+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c2bb1ee399bd4fee switched to configuration voters=(14031843026888642542)"} {"level":"warn","ts":"2024-09-21T00:44:02.122+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:44:02.124+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:44:02.125+0800","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2024-09-21T00:44:02.126+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"c2bb1ee399bd4fee","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:44:02.126+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"c2bb1ee399bd4fee","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:44:02.127+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c2bb1ee399bd4fee switched to configuration voters=(14031843026888642542)"} {"level":"info","ts":"2024-09-21T00:44:02.127+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"8dd6d5cf8278df4f","local-member-id":"c2bb1ee399bd4fee","added-peer-id":"c2bb1ee399bd4fee","added-peer-peer-urls":["http://127.0.0.1:41657"]} {"level":"info","ts":"2024-09-21T00:44:02.128+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"c2bb1ee399bd4fee","initial-advertise-peer-urls":["http://127.0.0.1:41657"],"listen-peer-urls":["http://127.0.0.1:41657"],"advertise-client-urls":["http://127.0.0.1:43003"],"listen-client-urls":["http://127.0.0.1:43003"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:44:02.128+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:41657"} {"level":"info","ts":"2024-09-21T00:44:02.128+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:41657"} {"level":"info","ts":"2024-09-21T00:44:02.522+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c2bb1ee399bd4fee is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:44:02.522+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c2bb1ee399bd4fee became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:44:02.523+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c2bb1ee399bd4fee received MsgPreVoteResp from c2bb1ee399bd4fee at term 1"} {"level":"info","ts":"2024-09-21T00:44:02.523+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c2bb1ee399bd4fee became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:44:02.523+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c2bb1ee399bd4fee received MsgVoteResp from c2bb1ee399bd4fee at term 2"} {"level":"info","ts":"2024-09-21T00:44:02.523+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c2bb1ee399bd4fee became leader at term 2"} {"level":"info","ts":"2024-09-21T00:44:02.523+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: c2bb1ee399bd4fee elected leader c2bb1ee399bd4fee at term 2"} {"level":"info","ts":"2024-09-21T00:44:02.523+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"c2bb1ee399bd4fee","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:43003]}","request-path":"/0/members/c2bb1ee399bd4fee/attributes","cluster-id":"8dd6d5cf8278df4f","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:44:02.523+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:44:02.523+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:02.523+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"8dd6d5cf8278df4f","local-member-id":"c2bb1ee399bd4fee","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:02.523+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:02.523+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:02.523+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:43003"} PASS {"level":"info","ts":"2024-09-21T00:44:07.668+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3485351859","advertise-peer-urls":["http://127.0.0.1:41657"],"advertise-client-urls":["http://127.0.0.1:43003"]} {"level":"info","ts":"2024-09-21T00:44:07.668+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"c2bb1ee399bd4fee","current-leader-member-id":"c2bb1ee399bd4fee"} {"level":"info","ts":"2024-09-21T00:44:07.671+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:41657"} {"level":"info","ts":"2024-09-21T00:44:07.671+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:41657"} {"level":"info","ts":"2024-09-21T00:44:07.671+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3485351859","advertise-peer-urls":["http://127.0.0.1:41657"],"advertise-client-urls":["http://127.0.0.1:43003"]} ok github.com/google/trillian/quota/etcd/quotaapi 5.577s github.com/google/trillian/quota/etcd/quotapb ? github.com/google/trillian/quota/etcd/quotapb [no test files] github.com/google/trillian/quota/etcd/storage {"level":"info","ts":"2024-09-21T00:44:08.874+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:46633"]} {"level":"info","ts":"2024-09-21T00:44:08.874+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:35527"]} {"level":"info","ts":"2024-09-21T00:44:08.874+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-3201358501","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-3201358501/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:46633"],"listen-peer-urls":["http://127.0.0.1:46633"],"advertise-client-urls":["http://127.0.0.1:35527"],"listen-client-urls":["http://127.0.0.1:35527"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:46633","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2024-09-21T00:44:10.034+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-3201358501/member/snap/db","took":"1.15938075s"} {"level":"info","ts":"2024-09-21T00:44:11.397+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"670e85d57f5f49d3","cluster-id":"c0083d10b3e43f7a"} {"level":"info","ts":"2024-09-21T00:44:11.397+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"670e85d57f5f49d3 switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:44:11.397+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"670e85d57f5f49d3 became follower at term 0"} {"level":"info","ts":"2024-09-21T00:44:11.397+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 670e85d57f5f49d3 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:44:11.397+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"670e85d57f5f49d3 became follower at term 1"} {"level":"info","ts":"2024-09-21T00:44:11.397+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"670e85d57f5f49d3 switched to configuration voters=(7426019987592006099)"} {"level":"warn","ts":"2024-09-21T00:44:12.718+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:44:13.361+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:44:13.536+0800","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2024-09-21T00:44:13.592+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"670e85d57f5f49d3","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:44:13.593+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"670e85d57f5f49d3","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:44:13.593+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"670e85d57f5f49d3 switched to configuration voters=(7426019987592006099)"} {"level":"info","ts":"2024-09-21T00:44:13.593+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"c0083d10b3e43f7a","local-member-id":"670e85d57f5f49d3","added-peer-id":"670e85d57f5f49d3","added-peer-peer-urls":["http://127.0.0.1:46633"]} {"level":"info","ts":"2024-09-21T00:44:13.594+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"670e85d57f5f49d3","initial-advertise-peer-urls":["http://127.0.0.1:46633"],"listen-peer-urls":["http://127.0.0.1:46633"],"advertise-client-urls":["http://127.0.0.1:35527"],"listen-client-urls":["http://127.0.0.1:35527"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:44:13.594+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"670e85d57f5f49d3 is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:44:13.594+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:46633"} {"level":"info","ts":"2024-09-21T00:44:13.594+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:46633"} {"level":"info","ts":"2024-09-21T00:44:13.594+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"670e85d57f5f49d3 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:44:13.594+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"670e85d57f5f49d3 received MsgPreVoteResp from 670e85d57f5f49d3 at term 1"} {"level":"info","ts":"2024-09-21T00:44:13.594+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"670e85d57f5f49d3 became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:44:13.594+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"670e85d57f5f49d3 received MsgVoteResp from 670e85d57f5f49d3 at term 2"} {"level":"info","ts":"2024-09-21T00:44:13.594+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"670e85d57f5f49d3 became leader at term 2"} {"level":"info","ts":"2024-09-21T00:44:13.594+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 670e85d57f5f49d3 elected leader 670e85d57f5f49d3 at term 2"} {"level":"info","ts":"2024-09-21T00:44:13.595+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"670e85d57f5f49d3","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:35527]}","request-path":"/0/members/670e85d57f5f49d3/attributes","cluster-id":"c0083d10b3e43f7a","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:44:13.595+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:44:13.595+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:13.596+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:35527"} {"level":"info","ts":"2024-09-21T00:44:13.614+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"c0083d10b3e43f7a","local-member-id":"670e85d57f5f49d3","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:13.614+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:13.614+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} PASS {"level":"info","ts":"2024-09-21T00:44:13.793+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3201358501","advertise-peer-urls":["http://127.0.0.1:46633"],"advertise-client-urls":["http://127.0.0.1:35527"]} {"level":"info","ts":"2024-09-21T00:44:13.794+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"670e85d57f5f49d3","current-leader-member-id":"670e85d57f5f49d3"} {"level":"info","ts":"2024-09-21T00:44:13.796+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:46633"} {"level":"info","ts":"2024-09-21T00:44:13.796+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:46633"} {"level":"info","ts":"2024-09-21T00:44:13.796+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3201358501","advertise-peer-urls":["http://127.0.0.1:46633"],"advertise-client-urls":["http://127.0.0.1:35527"]} ok github.com/google/trillian/quota/etcd/storage 4.940s github.com/google/trillian/quota/etcd/storage {"level":"info","ts":"2024-09-21T00:44:14.743+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:45031"]} {"level":"info","ts":"2024-09-21T00:44:14.744+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:42301"]} {"level":"info","ts":"2024-09-21T00:44:14.744+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-3561777200","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-3561777200/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:45031"],"listen-peer-urls":["http://127.0.0.1:45031"],"advertise-client-urls":["http://127.0.0.1:42301"],"listen-client-urls":["http://127.0.0.1:42301"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:45031","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2024-09-21T00:44:14.748+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-3561777200/member/snap/db","took":"4.046335ms"} {"level":"info","ts":"2024-09-21T00:44:14.751+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"7633bc668d4fd153","cluster-id":"3e62d9a526d0b1d7"} {"level":"info","ts":"2024-09-21T00:44:14.751+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"7633bc668d4fd153 switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:44:14.751+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"7633bc668d4fd153 became follower at term 0"} {"level":"info","ts":"2024-09-21T00:44:14.751+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 7633bc668d4fd153 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:44:14.751+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"7633bc668d4fd153 became follower at term 1"} {"level":"info","ts":"2024-09-21T00:44:14.751+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"7633bc668d4fd153 switched to configuration voters=(8517358468931244371)"} {"level":"warn","ts":"2024-09-21T00:44:14.755+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:44:14.757+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:44:14.759+0800","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2024-09-21T00:44:14.760+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"7633bc668d4fd153","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:44:14.760+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"7633bc668d4fd153","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:44:14.761+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"7633bc668d4fd153 switched to configuration voters=(8517358468931244371)"} {"level":"info","ts":"2024-09-21T00:44:14.761+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"3e62d9a526d0b1d7","local-member-id":"7633bc668d4fd153","added-peer-id":"7633bc668d4fd153","added-peer-peer-urls":["http://127.0.0.1:45031"]} {"level":"info","ts":"2024-09-21T00:44:14.762+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:45031"} {"level":"info","ts":"2024-09-21T00:44:14.762+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"7633bc668d4fd153","initial-advertise-peer-urls":["http://127.0.0.1:45031"],"listen-peer-urls":["http://127.0.0.1:45031"],"advertise-client-urls":["http://127.0.0.1:42301"],"listen-client-urls":["http://127.0.0.1:42301"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:44:14.762+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:45031"} {"level":"info","ts":"2024-09-21T00:44:15.055+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"7633bc668d4fd153 is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:44:15.055+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"7633bc668d4fd153 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:44:15.055+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"7633bc668d4fd153 received MsgPreVoteResp from 7633bc668d4fd153 at term 1"} {"level":"info","ts":"2024-09-21T00:44:15.055+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"7633bc668d4fd153 became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:44:15.055+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"7633bc668d4fd153 received MsgVoteResp from 7633bc668d4fd153 at term 2"} {"level":"info","ts":"2024-09-21T00:44:15.055+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"7633bc668d4fd153 became leader at term 2"} {"level":"info","ts":"2024-09-21T00:44:15.055+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 7633bc668d4fd153 elected leader 7633bc668d4fd153 at term 2"} {"level":"info","ts":"2024-09-21T00:44:15.055+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:15.056+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"3e62d9a526d0b1d7","local-member-id":"7633bc668d4fd153","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:15.056+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:15.056+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:15.056+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"7633bc668d4fd153","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:42301]}","request-path":"/0/members/7633bc668d4fd153/attributes","cluster-id":"3e62d9a526d0b1d7","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:44:15.056+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:44:15.057+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:42301"} PASS {"level":"info","ts":"2024-09-21T00:44:15.196+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3561777200","advertise-peer-urls":["http://127.0.0.1:45031"],"advertise-client-urls":["http://127.0.0.1:42301"]} {"level":"info","ts":"2024-09-21T00:44:15.196+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"7633bc668d4fd153","current-leader-member-id":"7633bc668d4fd153"} {"level":"info","ts":"2024-09-21T00:44:15.198+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:45031"} {"level":"info","ts":"2024-09-21T00:44:15.198+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:45031"} {"level":"info","ts":"2024-09-21T00:44:15.198+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3561777200","advertise-peer-urls":["http://127.0.0.1:45031"],"advertise-client-urls":["http://127.0.0.1:42301"]} ok github.com/google/trillian/quota/etcd/storage 0.472s github.com/google/trillian/quota/etcd/storagepb ? github.com/google/trillian/quota/etcd/storagepb [no test files] github.com/google/trillian/quota/mysqlqm 2024/09/21 00:44:15 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:44:15 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:44:15 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/quota/mysqlqm 0.007s github.com/google/trillian/quota/mysqlqm 2024/09/21 00:44:16 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:44:16 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:44:16 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/quota/mysqlqm 0.007s github.com/google/trillian/quota/redis/redisqm ? github.com/google/trillian/quota/redis/redisqm [no test files] github.com/google/trillian/server/admin PASS ok github.com/google/trillian/server/admin 0.009s github.com/google/trillian/server/admin PASS ok github.com/google/trillian/server/admin 0.009s github.com/google/trillian/server/errors PASS ok github.com/google/trillian/server/errors 0.003s github.com/google/trillian/server/errors PASS ok github.com/google/trillian/server/errors 0.003s github.com/google/trillian/server/interceptor PASS ok github.com/google/trillian/server/interceptor 1.013s github.com/google/trillian/server/interceptor PASS ok github.com/google/trillian/server/interceptor 1.013s github.com/google/trillian/storage PASS ok github.com/google/trillian/storage 0.006s github.com/google/trillian/storage PASS ok github.com/google/trillian/storage 0.006s github.com/google/trillian/storage/cache PASS ok github.com/google/trillian/storage/cache 0.028s github.com/google/trillian/storage/cache PASS ok github.com/google/trillian/storage/cache 0.029s github.com/google/trillian/storage/cloudspanner PASS ok github.com/google/trillian/storage/cloudspanner 3.622s github.com/google/trillian/storage/cloudspanner PASS ok github.com/google/trillian/storage/cloudspanner 3.407s github.com/google/trillian/storage/cloudspanner/spannerpb ? github.com/google/trillian/storage/cloudspanner/spannerpb [no test files] github.com/google/trillian/storage/memory PASS ok github.com/google/trillian/storage/memory 0.006s github.com/google/trillian/storage/memory PASS ok github.com/google/trillian/storage/memory 0.006s github.com/google/trillian/storage/mysql 2024/09/21 00:44:35 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused E0921 00:44:35.849847 3347077 storage_test.go:297] MySQL not available, skipping all MySQL storage tests ok github.com/google/trillian/storage/mysql 0.007s github.com/google/trillian/storage/mysql 2024/09/21 00:44:36 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused E0921 00:44:36.344959 3347231 storage_test.go:297] MySQL not available, skipping all MySQL storage tests ok github.com/google/trillian/storage/mysql 0.007s github.com/google/trillian/storage/storagepb ? github.com/google/trillian/storage/storagepb [no test files] github.com/google/trillian/storage/testonly ? github.com/google/trillian/storage/testonly [no test files] github.com/google/trillian/storage/tree ? github.com/google/trillian/storage/tree [no test files] github.com/google/trillian/testonly ? github.com/google/trillian/testonly [no test files] github.com/google/trillian/testonly/flagsaver PASS ok github.com/google/trillian/testonly/flagsaver 0.002s github.com/google/trillian/testonly/flagsaver PASS ok github.com/google/trillian/testonly/flagsaver 0.002s github.com/google/trillian/testonly/integration ? github.com/google/trillian/testonly/integration [no test files] github.com/google/trillian/testonly/integration/etcd ? github.com/google/trillian/testonly/integration/etcd [no test files] github.com/google/trillian/testonly/matchers PASS ok github.com/google/trillian/testonly/matchers 0.006s github.com/google/trillian/testonly/matchers PASS ok github.com/google/trillian/testonly/matchers 0.005s github.com/google/trillian/testonly/mdm ? github.com/google/trillian/testonly/mdm [no test files] github.com/google/trillian/testonly/setup ? github.com/google/trillian/testonly/setup [no test files] github.com/google/trillian/testonly/tmock ? github.com/google/trillian/testonly/tmock [no test files] github.com/google/trillian/trees PASS ok github.com/google/trillian/trees 0.007s github.com/google/trillian/trees PASS ok github.com/google/trillian/trees 0.007s github.com/google/trillian/types PASS ok github.com/google/trillian/types 0.029s github.com/google/trillian/types PASS ok github.com/google/trillian/types 0.005s github.com/google/trillian/types/internal/tls ? github.com/google/trillian/types/internal/tls [no test files] github.com/google/trillian/util ? github.com/google/trillian/util [no test files] github.com/google/trillian/util/clock PASS ok github.com/google/trillian/util/clock 1.743s github.com/google/trillian/util/clock PASS ok github.com/google/trillian/util/clock 1.749s github.com/google/trillian/util/election2 ? github.com/google/trillian/util/election2 [no test files] github.com/google/trillian/util/election2/etcd {"level":"info","ts":"2024-09-21T00:44:45.547+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:44361"]} {"level":"info","ts":"2024-09-21T00:44:45.547+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:42729"]} {"level":"info","ts":"2024-09-21T00:44:45.547+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-3595321803","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-3595321803/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:44361"],"listen-peer-urls":["http://127.0.0.1:44361"],"advertise-client-urls":["http://127.0.0.1:42729"],"listen-client-urls":["http://127.0.0.1:42729"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:44361","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2024-09-21T00:44:45.553+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-3595321803/member/snap/db","took":"5.873981ms"} {"level":"info","ts":"2024-09-21T00:44:45.558+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"c7e2a3fa8e2c68b","cluster-id":"c5886de72a7306f8"} {"level":"info","ts":"2024-09-21T00:44:45.558+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c7e2a3fa8e2c68b switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:44:45.558+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c7e2a3fa8e2c68b became follower at term 0"} {"level":"info","ts":"2024-09-21T00:44:45.558+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft c7e2a3fa8e2c68b [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:44:45.558+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c7e2a3fa8e2c68b became follower at term 1"} {"level":"info","ts":"2024-09-21T00:44:45.558+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c7e2a3fa8e2c68b switched to configuration voters=(900203428425418379)"} {"level":"warn","ts":"2024-09-21T00:44:45.562+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:44:45.563+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:44:45.565+0800","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2024-09-21T00:44:45.566+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"c7e2a3fa8e2c68b","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:44:45.566+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"c7e2a3fa8e2c68b","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:44:45.567+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c7e2a3fa8e2c68b switched to configuration voters=(900203428425418379)"} {"level":"info","ts":"2024-09-21T00:44:45.567+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"c5886de72a7306f8","local-member-id":"c7e2a3fa8e2c68b","added-peer-id":"c7e2a3fa8e2c68b","added-peer-peer-urls":["http://127.0.0.1:44361"]} {"level":"info","ts":"2024-09-21T00:44:45.568+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:44361"} {"level":"info","ts":"2024-09-21T00:44:45.568+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"c7e2a3fa8e2c68b","initial-advertise-peer-urls":["http://127.0.0.1:44361"],"listen-peer-urls":["http://127.0.0.1:44361"],"advertise-client-urls":["http://127.0.0.1:42729"],"listen-client-urls":["http://127.0.0.1:42729"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:44:45.568+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:44361"} {"level":"info","ts":"2024-09-21T00:44:46.361+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c7e2a3fa8e2c68b is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:44:46.361+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c7e2a3fa8e2c68b became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:44:46.361+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c7e2a3fa8e2c68b received MsgPreVoteResp from c7e2a3fa8e2c68b at term 1"} {"level":"info","ts":"2024-09-21T00:44:46.361+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c7e2a3fa8e2c68b became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:44:46.361+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c7e2a3fa8e2c68b received MsgVoteResp from c7e2a3fa8e2c68b at term 2"} {"level":"info","ts":"2024-09-21T00:44:46.361+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c7e2a3fa8e2c68b became leader at term 2"} {"level":"info","ts":"2024-09-21T00:44:46.361+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: c7e2a3fa8e2c68b elected leader c7e2a3fa8e2c68b at term 2"} {"level":"info","ts":"2024-09-21T00:44:46.361+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:46.362+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"c5886de72a7306f8","local-member-id":"c7e2a3fa8e2c68b","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:46.362+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:46.362+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:46.362+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"c7e2a3fa8e2c68b","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:42729]}","request-path":"/0/members/c7e2a3fa8e2c68b/attributes","cluster-id":"c5886de72a7306f8","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:44:46.362+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:44:46.363+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:42729"} {"level":"info","ts":"2024-09-21T00:44:46.370+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3595321803","advertise-peer-urls":["http://127.0.0.1:44361"],"advertise-client-urls":["http://127.0.0.1:42729"]} {"level":"info","ts":"2024-09-21T00:44:46.370+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"c7e2a3fa8e2c68b","current-leader-member-id":"c7e2a3fa8e2c68b"} {"level":"info","ts":"2024-09-21T00:44:46.372+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:44361"} {"level":"info","ts":"2024-09-21T00:44:46.372+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:44361"} {"level":"info","ts":"2024-09-21T00:44:46.372+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3595321803","advertise-peer-urls":["http://127.0.0.1:44361"],"advertise-client-urls":["http://127.0.0.1:42729"]} {"level":"info","ts":"2024-09-21T00:44:46.372+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:40645"]} {"level":"info","ts":"2024-09-21T00:44:46.373+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:41601"]} {"level":"info","ts":"2024-09-21T00:44:46.373+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-694614511","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-694614511/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:40645"],"listen-peer-urls":["http://127.0.0.1:40645"],"advertise-client-urls":["http://127.0.0.1:41601"],"listen-client-urls":["http://127.0.0.1:41601"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:40645","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2024-09-21T00:44:46.376+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-694614511/member/snap/db","took":"3.388732ms"} {"level":"info","ts":"2024-09-21T00:44:46.379+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"eb435f4e055e2000","cluster-id":"417751175014c4b3"} {"level":"info","ts":"2024-09-21T00:44:46.379+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"eb435f4e055e2000 switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:44:46.379+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"eb435f4e055e2000 became follower at term 0"} {"level":"info","ts":"2024-09-21T00:44:46.379+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft eb435f4e055e2000 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:44:46.379+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"eb435f4e055e2000 became follower at term 1"} {"level":"info","ts":"2024-09-21T00:44:46.379+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"eb435f4e055e2000 switched to configuration voters=(16952498211054821376)"} {"level":"warn","ts":"2024-09-21T00:44:46.382+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:44:46.384+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:44:46.388+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"eb435f4e055e2000","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:44:46.389+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"eb435f4e055e2000","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:44:46.389+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"eb435f4e055e2000 switched to configuration voters=(16952498211054821376)"} {"level":"info","ts":"2024-09-21T00:44:46.389+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"417751175014c4b3","local-member-id":"eb435f4e055e2000","added-peer-id":"eb435f4e055e2000","added-peer-peer-urls":["http://127.0.0.1:40645"]} {"level":"info","ts":"2024-09-21T00:44:46.389+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:40645"} {"level":"info","ts":"2024-09-21T00:44:46.389+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:40645"} {"level":"info","ts":"2024-09-21T00:44:46.389+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"eb435f4e055e2000","initial-advertise-peer-urls":["http://127.0.0.1:40645"],"listen-peer-urls":["http://127.0.0.1:40645"],"advertise-client-urls":["http://127.0.0.1:41601"],"listen-client-urls":["http://127.0.0.1:41601"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:44:47.183+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"eb435f4e055e2000 is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:44:47.183+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"eb435f4e055e2000 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:44:47.183+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"eb435f4e055e2000 received MsgPreVoteResp from eb435f4e055e2000 at term 1"} {"level":"info","ts":"2024-09-21T00:44:47.183+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"eb435f4e055e2000 became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:44:47.183+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"eb435f4e055e2000 received MsgVoteResp from eb435f4e055e2000 at term 2"} {"level":"info","ts":"2024-09-21T00:44:47.183+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"eb435f4e055e2000 became leader at term 2"} {"level":"info","ts":"2024-09-21T00:44:47.183+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: eb435f4e055e2000 elected leader eb435f4e055e2000 at term 2"} {"level":"info","ts":"2024-09-21T00:44:47.183+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:47.184+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"417751175014c4b3","local-member-id":"eb435f4e055e2000","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:47.184+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:47.184+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"eb435f4e055e2000","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:41601]}","request-path":"/0/members/eb435f4e055e2000/attributes","cluster-id":"417751175014c4b3","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:44:47.184+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:44:47.184+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:41601"} {"level":"info","ts":"2024-09-21T00:44:48.684+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-694614511","advertise-peer-urls":["http://127.0.0.1:40645"],"advertise-client-urls":["http://127.0.0.1:41601"]} {"level":"info","ts":"2024-09-21T00:44:48.685+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"eb435f4e055e2000","current-leader-member-id":"eb435f4e055e2000"} {"level":"info","ts":"2024-09-21T00:44:48.687+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:40645"} {"level":"info","ts":"2024-09-21T00:44:48.688+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:40645"} {"level":"info","ts":"2024-09-21T00:44:48.688+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-694614511","advertise-peer-urls":["http://127.0.0.1:40645"],"advertise-client-urls":["http://127.0.0.1:41601"]} PASS ok github.com/google/trillian/util/election2/etcd 3.157s github.com/google/trillian/util/election2/etcd {"level":"info","ts":"2024-09-21T00:44:49.549+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:45323"]} {"level":"info","ts":"2024-09-21T00:44:49.549+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:46667"]} {"level":"info","ts":"2024-09-21T00:44:49.549+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-2367305766","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-2367305766/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:45323"],"listen-peer-urls":["http://127.0.0.1:45323"],"advertise-client-urls":["http://127.0.0.1:46667"],"listen-client-urls":["http://127.0.0.1:46667"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:45323","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2024-09-21T00:44:49.556+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-2367305766/member/snap/db","took":"6.669064ms"} {"level":"info","ts":"2024-09-21T00:44:49.560+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"f43cbcb6a04e827","cluster-id":"6337298192c41849"} {"level":"info","ts":"2024-09-21T00:44:49.560+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f43cbcb6a04e827 switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:44:49.560+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f43cbcb6a04e827 became follower at term 0"} {"level":"info","ts":"2024-09-21T00:44:49.560+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft f43cbcb6a04e827 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:44:49.560+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f43cbcb6a04e827 became follower at term 1"} {"level":"info","ts":"2024-09-21T00:44:49.560+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f43cbcb6a04e827 switched to configuration voters=(1099946808526039079)"} {"level":"warn","ts":"2024-09-21T00:44:49.563+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:44:49.566+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:44:49.567+0800","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2024-09-21T00:44:49.569+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"f43cbcb6a04e827","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:44:49.569+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"f43cbcb6a04e827","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:44:49.569+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f43cbcb6a04e827 switched to configuration voters=(1099946808526039079)"} {"level":"info","ts":"2024-09-21T00:44:49.569+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"6337298192c41849","local-member-id":"f43cbcb6a04e827","added-peer-id":"f43cbcb6a04e827","added-peer-peer-urls":["http://127.0.0.1:45323"]} {"level":"info","ts":"2024-09-21T00:44:49.570+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:45323"} {"level":"info","ts":"2024-09-21T00:44:49.570+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:45323"} {"level":"info","ts":"2024-09-21T00:44:49.570+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"f43cbcb6a04e827","initial-advertise-peer-urls":["http://127.0.0.1:45323"],"listen-peer-urls":["http://127.0.0.1:45323"],"advertise-client-urls":["http://127.0.0.1:46667"],"listen-client-urls":["http://127.0.0.1:46667"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:44:49.661+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f43cbcb6a04e827 is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:44:49.661+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f43cbcb6a04e827 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:44:49.661+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f43cbcb6a04e827 received MsgPreVoteResp from f43cbcb6a04e827 at term 1"} {"level":"info","ts":"2024-09-21T00:44:49.661+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f43cbcb6a04e827 became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:44:49.661+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f43cbcb6a04e827 received MsgVoteResp from f43cbcb6a04e827 at term 2"} {"level":"info","ts":"2024-09-21T00:44:49.661+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f43cbcb6a04e827 became leader at term 2"} {"level":"info","ts":"2024-09-21T00:44:49.661+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: f43cbcb6a04e827 elected leader f43cbcb6a04e827 at term 2"} {"level":"info","ts":"2024-09-21T00:44:49.661+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:49.662+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"6337298192c41849","local-member-id":"f43cbcb6a04e827","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:49.662+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:49.662+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:49.662+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"f43cbcb6a04e827","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:46667]}","request-path":"/0/members/f43cbcb6a04e827/attributes","cluster-id":"6337298192c41849","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:44:49.662+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:44:49.663+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:46667"} {"level":"info","ts":"2024-09-21T00:44:49.671+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2367305766","advertise-peer-urls":["http://127.0.0.1:45323"],"advertise-client-urls":["http://127.0.0.1:46667"]} {"level":"info","ts":"2024-09-21T00:44:49.671+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"f43cbcb6a04e827","current-leader-member-id":"f43cbcb6a04e827"} {"level":"info","ts":"2024-09-21T00:44:49.673+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:45323"} {"level":"info","ts":"2024-09-21T00:44:49.673+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:45323"} {"level":"info","ts":"2024-09-21T00:44:49.673+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2367305766","advertise-peer-urls":["http://127.0.0.1:45323"],"advertise-client-urls":["http://127.0.0.1:46667"]} {"level":"info","ts":"2024-09-21T00:44:49.674+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:38877"]} {"level":"info","ts":"2024-09-21T00:44:49.674+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:34949"]} {"level":"info","ts":"2024-09-21T00:44:49.674+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-1701647498","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-1701647498/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:38877"],"listen-peer-urls":["http://127.0.0.1:38877"],"advertise-client-urls":["http://127.0.0.1:34949"],"listen-client-urls":["http://127.0.0.1:34949"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:38877","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2024-09-21T00:44:49.677+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-1701647498/member/snap/db","took":"3.110811ms"} {"level":"info","ts":"2024-09-21T00:44:49.680+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"1e009b26bdb65ad4","cluster-id":"72fc9ecf1b9bb234"} {"level":"info","ts":"2024-09-21T00:44:49.680+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"1e009b26bdb65ad4 switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:44:49.680+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"1e009b26bdb65ad4 became follower at term 0"} {"level":"info","ts":"2024-09-21T00:44:49.680+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 1e009b26bdb65ad4 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:44:49.680+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"1e009b26bdb65ad4 became follower at term 1"} {"level":"info","ts":"2024-09-21T00:44:49.680+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"1e009b26bdb65ad4 switched to configuration voters=(2161898411831745236)"} {"level":"warn","ts":"2024-09-21T00:44:49.683+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:44:49.685+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:44:49.688+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"1e009b26bdb65ad4","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:44:49.688+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"1e009b26bdb65ad4","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:44:49.688+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"1e009b26bdb65ad4 switched to configuration voters=(2161898411831745236)"} {"level":"info","ts":"2024-09-21T00:44:49.688+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"72fc9ecf1b9bb234","local-member-id":"1e009b26bdb65ad4","added-peer-id":"1e009b26bdb65ad4","added-peer-peer-urls":["http://127.0.0.1:38877"]} {"level":"info","ts":"2024-09-21T00:44:49.689+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:38877"} {"level":"info","ts":"2024-09-21T00:44:49.689+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:38877"} {"level":"info","ts":"2024-09-21T00:44:49.689+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"1e009b26bdb65ad4","initial-advertise-peer-urls":["http://127.0.0.1:38877"],"listen-peer-urls":["http://127.0.0.1:38877"],"advertise-client-urls":["http://127.0.0.1:34949"],"listen-client-urls":["http://127.0.0.1:34949"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:44:49.883+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"1e009b26bdb65ad4 is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:44:49.883+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"1e009b26bdb65ad4 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:44:49.883+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"1e009b26bdb65ad4 received MsgPreVoteResp from 1e009b26bdb65ad4 at term 1"} {"level":"info","ts":"2024-09-21T00:44:49.883+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"1e009b26bdb65ad4 became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:44:49.883+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"1e009b26bdb65ad4 received MsgVoteResp from 1e009b26bdb65ad4 at term 2"} {"level":"info","ts":"2024-09-21T00:44:49.883+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"1e009b26bdb65ad4 became leader at term 2"} {"level":"info","ts":"2024-09-21T00:44:49.883+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 1e009b26bdb65ad4 elected leader 1e009b26bdb65ad4 at term 2"} {"level":"info","ts":"2024-09-21T00:44:49.883+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:49.884+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"72fc9ecf1b9bb234","local-member-id":"1e009b26bdb65ad4","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:49.884+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:44:49.884+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"1e009b26bdb65ad4","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:34949]}","request-path":"/0/members/1e009b26bdb65ad4/attributes","cluster-id":"72fc9ecf1b9bb234","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:44:49.884+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:44:49.884+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:34949"} {"level":"info","ts":"2024-09-21T00:44:51.371+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1701647498","advertise-peer-urls":["http://127.0.0.1:38877"],"advertise-client-urls":["http://127.0.0.1:34949"]} {"level":"info","ts":"2024-09-21T00:44:51.371+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"1e009b26bdb65ad4","current-leader-member-id":"1e009b26bdb65ad4"} {"level":"info","ts":"2024-09-21T00:44:51.373+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:38877"} {"level":"info","ts":"2024-09-21T00:44:51.373+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:38877"} {"level":"info","ts":"2024-09-21T00:44:51.373+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1701647498","advertise-peer-urls":["http://127.0.0.1:38877"],"advertise-client-urls":["http://127.0.0.1:34949"]} PASS ok github.com/google/trillian/util/election2/etcd 1.840s github.com/google/trillian/util/election2/testonly PASS ok github.com/google/trillian/util/election2/testonly 1.448s github.com/google/trillian/util/election2/testonly PASS ok github.com/google/trillian/util/election2/testonly 1.448s + RPM_EC=0 ++ jobs -p + exit 0 Processing files: golang-github-google-trillian-devel-1.4.2-1.oc9.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.OYt6OZ + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.2 + DOCDIR=/builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64/usr/share/doc/golang-github-google-trillian-devel + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64/usr/share/doc/golang-github-google-trillian-devel + cp -pr AUTHORS /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64/usr/share/doc/golang-github-google-trillian-devel + cp -pr CHANGELOG.md /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64/usr/share/doc/golang-github-google-trillian-devel + cp -pr CONTRIBUTING.md /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64/usr/share/doc/golang-github-google-trillian-devel + cp -pr CONTRIBUTORS /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64/usr/share/doc/golang-github-google-trillian-devel + cp -pr README.md /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64/usr/share/doc/golang-github-google-trillian-devel + cp -pr docs /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64/usr/share/doc/golang-github-google-trillian-devel + cp -pr examples /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64/usr/share/doc/golang-github-google-trillian-devel + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.KMUkw7 + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.2 + LICENSEDIR=/builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64/usr/share/licenses/golang-github-google-trillian-devel + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64/usr/share/licenses/golang-github-google-trillian-devel + cp -pr LICENSE /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64/usr/share/licenses/golang-github-google-trillian-devel + RPM_EC=0 ++ jobs -p + exit 0 grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : Provides: golang(github.com/google/trillian) = 1.4.2-1.oc9 golang(github.com/google/trillian/client) = 1.4.2-1.oc9 golang(github.com/google/trillian/client/backoff) = 1.4.2-1.oc9 golang(github.com/google/trillian/client/rpcflags) = 1.4.2-1.oc9 golang(github.com/google/trillian/cmd) = 1.4.2-1.oc9 golang(github.com/google/trillian/cmd/internal/serverutil) = 1.4.2-1.oc9 golang(github.com/google/trillian/crypto/keys) = 1.4.2-1.oc9 golang(github.com/google/trillian/crypto/keys/der) = 1.4.2-1.oc9 golang(github.com/google/trillian/crypto/keys/pem) = 1.4.2-1.oc9 golang(github.com/google/trillian/crypto/keys/pkcs11) = 1.4.2-1.oc9 golang(github.com/google/trillian/crypto/keys/testonly) = 1.4.2-1.oc9 golang(github.com/google/trillian/crypto/keyspb) = 1.4.2-1.oc9 golang(github.com/google/trillian/docs/storage/commit_log/signer) = 1.4.2-1.oc9 golang(github.com/google/trillian/docs/storage/commit_log/simelection) = 1.4.2-1.oc9 golang(github.com/google/trillian/docs/storage/commit_log/simkafka) = 1.4.2-1.oc9 golang(github.com/google/trillian/experimental/batchmap) = 1.4.2-1.oc9 golang(github.com/google/trillian/extension) = 1.4.2-1.oc9 golang(github.com/google/trillian/integration) = 1.4.2-1.oc9 golang(github.com/google/trillian/integration/admin) = 1.4.2-1.oc9 golang(github.com/google/trillian/integration/format) = 1.4.2-1.oc9 golang(github.com/google/trillian/integration/quota) = 1.4.2-1.oc9 golang(github.com/google/trillian/integration/storagetest) = 1.4.2-1.oc9 golang(github.com/google/trillian/log) = 1.4.2-1.oc9 golang(github.com/google/trillian/merkle) = 1.4.2-1.oc9 golang(github.com/google/trillian/merkle/compact) = 1.4.2-1.oc9 golang(github.com/google/trillian/merkle/coniks) = 1.4.2-1.oc9 golang(github.com/google/trillian/merkle/hashers) = 1.4.2-1.oc9 golang(github.com/google/trillian/merkle/logverifier) = 1.4.2-1.oc9 golang(github.com/google/trillian/merkle/rfc6962) = 1.4.2-1.oc9 golang(github.com/google/trillian/merkle/smt) = 1.4.2-1.oc9 golang(github.com/google/trillian/merkle/smt/node) = 1.4.2-1.oc9 golang(github.com/google/trillian/merkle/testonly) = 1.4.2-1.oc9 golang(github.com/google/trillian/monitoring) = 1.4.2-1.oc9 golang(github.com/google/trillian/monitoring/opencensus) = 1.4.2-1.oc9 golang(github.com/google/trillian/monitoring/prometheus) = 1.4.2-1.oc9 golang(github.com/google/trillian/monitoring/testonly) = 1.4.2-1.oc9 golang(github.com/google/trillian/quota) = 1.4.2-1.oc9 golang(github.com/google/trillian/quota/cacheqm) = 1.4.2-1.oc9 golang(github.com/google/trillian/quota/etcd) = 1.4.2-1.oc9 golang(github.com/google/trillian/quota/etcd/etcdqm) = 1.4.2-1.oc9 golang(github.com/google/trillian/quota/etcd/quotaapi) = 1.4.2-1.oc9 golang(github.com/google/trillian/quota/etcd/quotapb) = 1.4.2-1.oc9 golang(github.com/google/trillian/quota/etcd/storage) = 1.4.2-1.oc9 golang(github.com/google/trillian/quota/etcd/storagepb) = 1.4.2-1.oc9 golang(github.com/google/trillian/quota/mysqlqm) = 1.4.2-1.oc9 golang(github.com/google/trillian/quota/redis/redisqm) = 1.4.2-1.oc9 golang(github.com/google/trillian/quota/redis/redistb) = 1.4.2-1.oc9 golang(github.com/google/trillian/server) = 1.4.2-1.oc9 golang(github.com/google/trillian/server/admin) = 1.4.2-1.oc9 golang(github.com/google/trillian/server/errors) = 1.4.2-1.oc9 golang(github.com/google/trillian/server/interceptor) = 1.4.2-1.oc9 golang(github.com/google/trillian/storage) = 1.4.2-1.oc9 golang(github.com/google/trillian/storage/cache) = 1.4.2-1.oc9 golang(github.com/google/trillian/storage/cloudspanner) = 1.4.2-1.oc9 golang(github.com/google/trillian/storage/cloudspanner/spannerpb) = 1.4.2-1.oc9 golang(github.com/google/trillian/storage/memory) = 1.4.2-1.oc9 golang(github.com/google/trillian/storage/mysql) = 1.4.2-1.oc9 golang(github.com/google/trillian/storage/storagepb) = 1.4.2-1.oc9 golang(github.com/google/trillian/storage/testdb) = 1.4.2-1.oc9 golang(github.com/google/trillian/storage/testonly) = 1.4.2-1.oc9 golang(github.com/google/trillian/storage/tree) = 1.4.2-1.oc9 golang(github.com/google/trillian/testonly) = 1.4.2-1.oc9 golang(github.com/google/trillian/testonly/flagsaver) = 1.4.2-1.oc9 golang(github.com/google/trillian/testonly/integration) = 1.4.2-1.oc9 golang(github.com/google/trillian/testonly/integration/etcd) = 1.4.2-1.oc9 golang(github.com/google/trillian/testonly/matchers) = 1.4.2-1.oc9 golang(github.com/google/trillian/testonly/mdm) = 1.4.2-1.oc9 golang(github.com/google/trillian/testonly/setup) = 1.4.2-1.oc9 golang(github.com/google/trillian/testonly/tmock) = 1.4.2-1.oc9 golang(github.com/google/trillian/trees) = 1.4.2-1.oc9 golang(github.com/google/trillian/types) = 1.4.2-1.oc9 golang(github.com/google/trillian/types/internal/tls) = 1.4.2-1.oc9 golang(github.com/google/trillian/util) = 1.4.2-1.oc9 golang(github.com/google/trillian/util/clock) = 1.4.2-1.oc9 golang(github.com/google/trillian/util/election) = 1.4.2-1.oc9 golang(github.com/google/trillian/util/election2) = 1.4.2-1.oc9 golang(github.com/google/trillian/util/election2/etcd) = 1.4.2-1.oc9 golang(github.com/google/trillian/util/election2/testonly) = 1.4.2-1.oc9 golang-github-google-trillian-devel = 1.4.2-1.oc9 golang-ipath(github.com/google/trillian) = 1.4.2-1.oc9 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: go-filesystem golang(bitbucket.org/creachadair/shell) golang(cloud.google.com/go/spanner) golang(cloud.google.com/go/spanner/spansql) golang(contrib.go.opencensus.io/exporter/stackdriver) golang(github.com/apache/beam/sdks/v2/go/pkg/beam) golang(github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime) golang(github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec) golang(github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/graphx/schema) golang(github.com/apache/beam/sdks/v2/go/pkg/beam/core/util/reflectx) golang(github.com/apache/beam/sdks/v2/go/pkg/beam/io/filesystem/local) golang(github.com/apache/beam/sdks/v2/go/pkg/beam/x/beamx) golang(github.com/go-redis/redis) golang(github.com/go-sql-driver/mysql) golang(github.com/golang/glog) golang(github.com/golang/mock/gomock) golang(github.com/google/btree) golang(github.com/google/go-cmp/cmp) golang(github.com/grpc-ecosystem/go-grpc-middleware) golang(github.com/prometheus/client_golang/prometheus) golang(github.com/prometheus/client_golang/prometheus/promhttp) golang(github.com/prometheus/client_model/go) golang(github.com/transparency-dev/merkle) golang(github.com/transparency-dev/merkle/compact) golang(github.com/transparency-dev/merkle/proof) golang(github.com/transparency-dev/merkle/rfc6962) golang(github.com/transparency-dev/merkle/testonly) golang(go.etcd.io/etcd/client/v3) golang(go.etcd.io/etcd/client/v3/concurrency) golang(go.etcd.io/etcd/client/v3/naming/endpoints) golang(go.etcd.io/etcd/server/v3/embed) golang(go.opencensus.io/plugin/ocgrpc) golang(go.opencensus.io/plugin/ochttp) golang(go.opencensus.io/stats/view) golang(go.opencensus.io/trace) golang(golang.org/x/crypto/ed25519) golang(golang.org/x/sync/errgroup) golang(golang.org/x/sync/semaphore) golang(golang.org/x/sys/unix) golang(google.golang.org/api/option) golang(google.golang.org/genproto/googleapis/api/annotations) golang(google.golang.org/genproto/googleapis/rpc/status) golang(google.golang.org/genproto/protobuf/field_mask) golang(google.golang.org/grpc) golang(google.golang.org/grpc/codes) golang(google.golang.org/grpc/credentials) golang(google.golang.org/grpc/credentials/insecure) golang(google.golang.org/grpc/reflection) golang(google.golang.org/grpc/status) golang(google.golang.org/protobuf/encoding/prototext) golang(google.golang.org/protobuf/proto) golang(google.golang.org/protobuf/reflect/protoreflect) golang(google.golang.org/protobuf/reflect/protoregistry) golang(google.golang.org/protobuf/runtime/protoimpl) golang(google.golang.org/protobuf/testing/protocmp) golang(google.golang.org/protobuf/types/known/anypb) golang(google.golang.org/protobuf/types/known/durationpb) golang(google.golang.org/protobuf/types/known/emptypb) golang(google.golang.org/protobuf/types/known/fieldmaskpb) golang(google.golang.org/protobuf/types/known/timestamppb) Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.aarch64 Wrote: /builddir/build/SRPMS/golang-github-google-trillian-1.4.2-1.oc9.src.rpm Wrote: /builddir/build/RPMS/golang-github-google-trillian-devel-1.4.2-1.oc9.noarch.rpm Child return code was: 0