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 x86_64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'], chrootPath='/var/lib/mock/dist-oc9-epol-build-103048-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 x86_64 --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: x86_64 Building for target x86_64 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 x86_64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'], chrootPath='/var/lib/mock/dist-oc9-epol-build-103048-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 x86_64 --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: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.oeOFob + 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.9jsFym + 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 x86_64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'], chrootPath='/var/lib/mock/dist-oc9-epol-build-103048-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 x86_64 --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: x86_64 Building for target x86_64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.d54Nb7 + 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.xYa4S7 + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.x86_64 ++ dirname /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.x86_64 + 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.x86_64 -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.ZXg172 + 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.x86_64 -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:40:08 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:08 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:08 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:08 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/client 0.006s github.com/google/trillian/client 2024/09/21 00:40:09 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:09 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:09 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:09 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/client 0.006s github.com/google/trillian/client/backoff PASS ok github.com/google/trillian/client/backoff 3.559s github.com/google/trillian/client/backoff PASS ok github.com/google/trillian/client/backoff 3.558s github.com/google/trillian/crypto/keys PASS ok github.com/google/trillian/crypto/keys 0.003s github.com/google/trillian/crypto/keys PASS ok github.com/google/trillian/crypto/keys 0.003s github.com/google/trillian/crypto/keys/der PASS ok github.com/google/trillian/crypto/keys/der 0.003s github.com/google/trillian/crypto/keys/der PASS ok github.com/google/trillian/crypto/keys/der 0.003s github.com/google/trillian/crypto/keys/pem PASS ok github.com/google/trillian/crypto/keys/pem 0.007s github.com/google/trillian/crypto/keys/pem PASS ok github.com/google/trillian/crypto/keys/pem 0.006s 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.002s github.com/google/trillian/docs/storage/commit_log/signer PASS ok github.com/google/trillian/docs/storage/commit_log/signer 0.002s 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.002s github.com/google/trillian/docs/storage/commit_log/simkafka PASS ok github.com/google/trillian/docs/storage/commit_log/simkafka 0.002s github.com/google/trillian/experimental/batchmap 2024/09/21 00:40:23 Executing pipeline with the direct runner. 2024/09/21 00:40:23 Pipeline: 2024/09/21 00:40:23 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:40:23 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:40:23 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[18] done 2024/09/21 00:40:23 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[13] done 2024/09/21 00:40:23 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[7] done 2024/09/21 00:40:23 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[2] done 2024/09/21 00:40:23 Executing pipeline with the direct runner. 2024/09/21 00:40:23 Pipeline: 2024/09/21 00:40:23 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:40:23 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:40:23 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[18] done 2024/09/21 00:40:23 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[13] done 2024/09/21 00:40:23 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[7] done 2024/09/21 00:40:23 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[2] done 2024/09/21 00:40:23 Executing pipeline with the direct runner. 2024/09/21 00:40:23 Pipeline: 2024/09/21 00:40:23 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:40:23 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:40:23 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[18] done 2024/09/21 00:40:23 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[13] done 2024/09/21 00:40:23 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[7] done 2024/09/21 00:40:23 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[2] done 2024/09/21 00:40:23 Executing pipeline with the direct runner. 2024/09/21 00:40:23 Pipeline: 2024/09/21 00:40:23 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:40:23 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:40:23 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[18] done 2024/09/21 00:40:23 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[13] done 2024/09/21 00:40:23 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[7] done 2024/09/21 00:40:23 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[2] done 2024/09/21 00:40:23 Executing pipeline with the direct runner. 2024/09/21 00:40:23 Pipeline: 2024/09/21 00:40:23 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:40:23 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:40:23 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[18] done 2024/09/21 00:40:23 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[13] done 2024/09/21 00:40:23 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[7] done 2024/09/21 00:40:23 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[2] done 2024/09/21 00:40:23 Executing pipeline with the direct runner. 2024/09/21 00:40:23 Pipeline: 2024/09/21 00:40:23 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:40:23 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:40:23 Executing pipeline with the direct runner. 2024/09/21 00:40:23 Pipeline: 2024/09/21 00:40:23 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:40:23 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:40:23 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[18] done 2024/09/21 00:40:23 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[13] done 2024/09/21 00:40:23 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[7] done 2024/09/21 00:40:23 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[2] done 2024/09/21 00:40:23 Executing pipeline with the direct runner. 2024/09/21 00:40:23 Pipeline: 2024/09/21 00:40:23 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:40:23 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:40:23 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[18] done 2024/09/21 00:40:23 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[13] done 2024/09/21 00:40:23 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[7] done 2024/09/21 00:40:23 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[2] done 2024/09/21 00:40:23 Executing pipeline with the direct runner. 2024/09/21 00:40:23 Pipeline: 2024/09/21 00:40:23 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:40:23 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:40:23 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[18] done 2024/09/21 00:40:23 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[13] done 2024/09/21 00:40:23 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[7] done 2024/09/21 00:40:23 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:23 wait[2] done 2024/09/21 00:40:23 Executing pipeline with the direct runner. 2024/09/21 00:40:23 Pipeline: 2024/09/21 00:40:23 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:40:24 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:40:24 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[18] done 2024/09/21 00:40:24 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[13] done 2024/09/21 00:40:24 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[7] done 2024/09/21 00:40:24 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[2] done 2024/09/21 00:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[18] done 2024/09/21 00:40:24 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[13] done 2024/09/21 00:40:24 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[7] done 2024/09/21 00:40:24 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[2] done 2024/09/21 00:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[18] done 2024/09/21 00:40:24 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[13] done 2024/09/21 00:40:24 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[7] done 2024/09/21 00:40:24 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[2] done PASS ok github.com/google/trillian/experimental/batchmap 0.319s github.com/google/trillian/experimental/batchmap 2024/09/21 00:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[18] done 2024/09/21 00:40:24 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[13] done 2024/09/21 00:40:24 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[7] done 2024/09/21 00:40:24 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[2] done 2024/09/21 00:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[18] done 2024/09/21 00:40:24 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[13] done 2024/09/21 00:40:24 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[7] done 2024/09/21 00:40:24 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[2] done 2024/09/21 00:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[18] done 2024/09/21 00:40:24 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[13] done 2024/09/21 00:40:24 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[7] done 2024/09/21 00:40:24 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[2] done 2024/09/21 00:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[18] done 2024/09/21 00:40:24 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[13] done 2024/09/21 00:40:24 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[7] done 2024/09/21 00:40:24 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[2] done 2024/09/21 00:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[18] done 2024/09/21 00:40:24 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[13] done 2024/09/21 00:40:24 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[7] done 2024/09/21 00:40:24 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[2] done 2024/09/21 00:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[18] done 2024/09/21 00:40:24 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[13] done 2024/09/21 00:40:24 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[7] done 2024/09/21 00:40:24 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[2] done 2024/09/21 00:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[18] done 2024/09/21 00:40:24 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[13] done 2024/09/21 00:40:24 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[7] done 2024/09/21 00:40:24 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[2] done 2024/09/21 00:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[18] done 2024/09/21 00:40:24 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[13] done 2024/09/21 00:40:24 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[7] done 2024/09/21 00:40:24 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[2] done 2024/09/21 00:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[18] done 2024/09/21 00:40:24 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[13] done 2024/09/21 00:40:24 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[7] done 2024/09/21 00:40:24 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:24 wait[2] done 2024/09/21 00:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:24 Executing pipeline with the direct runner. 2024/09/21 00:40:24 Pipeline: 2024/09/21 00:40:24 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:40:24 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:40:25 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:25 wait[18] done 2024/09/21 00:40:25 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:25 wait[13] done 2024/09/21 00:40:25 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:25 wait[7] done 2024/09/21 00:40:25 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:25 wait[2] done 2024/09/21 00:40:25 Executing pipeline with the direct runner. 2024/09/21 00:40:25 Pipeline: 2024/09/21 00:40:25 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:40:25 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:40:25 wait[18] unblocked w/ 1 [false] 2024/09/21 00:40:25 wait[18] done 2024/09/21 00:40:25 wait[13] unblocked w/ 1 [false] 2024/09/21 00:40:25 wait[13] done 2024/09/21 00:40:25 wait[7] unblocked w/ 1 [false] 2024/09/21 00:40:25 wait[7] done 2024/09/21 00:40:25 wait[2] unblocked w/ 1 [false] 2024/09/21 00:40:25 wait[2] done PASS ok github.com/google/trillian/experimental/batchmap 0.330s github.com/google/trillian/extension ? github.com/google/trillian/extension [no test files] github.com/google/trillian/integration 2024/09/21 00:40:26 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration 10.682s github.com/google/trillian/integration 2024/09/21 00:40:37 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration 10.680s github.com/google/trillian/integration/admin 2024/09/21 00:40:48 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:48 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:48 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:48 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:48 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:48 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:48 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:48 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:48 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/admin 0.007s github.com/google/trillian/integration/admin 2024/09/21 00:40:49 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:49 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:49 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:49 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:49 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:49 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:49 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:49 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:49 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/admin 0.006s github.com/google/trillian/integration/format PASS ok github.com/google/trillian/integration/format 0.969s github.com/google/trillian/integration/format PASS ok github.com/google/trillian/integration/format 0.905s github.com/google/trillian/integration/quota 2024/09/21 00:40:57 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:57 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/quota 0.015s github.com/google/trillian/integration/quota 2024/09/21 00:40:58 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:40:58 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/quota 0.016s github.com/google/trillian/integration/storagetest ? github.com/google/trillian/integration/storagetest [no test files] github.com/google/trillian/log E0921 00:40:59.208733 3151791 operation_manager.go:321] failed to perform operation: failed to list active log IDs: getactivelogs E0921 00:40:59.209260 3151791 operation_manager.go:428] ExecutePass(145) failed: test error E0921 00:41:01.210073 3151791 runner.go:119] 451: election.Await() failed: context canceled E0921 00:41:01.210411 3151791 operation_manager.go:428] ExecutePass(145) failed: test error E0921 00:41:01.210644 3151791 operation_manager.go:170] 98: failed to get log info: failedGetTree E0921 00:41:01.612538 3151791 runner.go:144] 2: no longer the master! E0921 00:41:01.612555 3151791 runner.go:119] 2: context canceled E0921 00:41:01.612559 3151791 runner.go:144] 4: no longer the master! E0921 00:41:01.612577 3151791 runner.go:144] 5: no longer the master! E0921 00:41:01.612582 3151791 runner.go:144] 6: no longer the master! E0921 00:41:01.612586 3151791 runner.go:119] 5: context canceled E0921 00:41:01.612588 3151791 runner.go:144] 3: no longer the master! E0921 00:41:01.612591 3151791 runner.go:144] 1: no longer the master! E0921 00:41:01.612595 3151791 runner.go:119] 3: context canceled E0921 00:41:01.612598 3151791 runner.go:119] 1: context canceled E0921 00:41:01.612578 3151791 runner.go:119] 4: context canceled E0921 00:41:01.612587 3151791 runner.go:119] 6: context canceled E0921 00:41:01.814273 3151791 runner.go:144] 2: no longer the master! E0921 00:41:01.814287 3151791 runner.go:119] 2: context canceled E0921 00:41:01.814293 3151791 runner.go:144] 6: no longer the master! E0921 00:41:01.814304 3151791 runner.go:119] 6: context canceled E0921 00:41:01.814305 3151791 operation_manager.go:248] failed to create election for 3: injected failure E0921 00:41:01.814315 3151791 runner.go:144] 4: no longer the master! E0921 00:41:01.814322 3151791 runner.go:119] 4: context canceled E0921 00:41:01.814325 3151791 operation_manager.go:248] failed to create election for 1: injected failure E0921 00:41:01.814329 3151791 operation_manager.go:248] failed to create election for 2: injected failure E0921 00:41:01.814340 3151791 runner.go:119] 5: election.Await() failed: context canceled E0921 00:41:01.814310 3151791 runner.go:119] 1: election.Await() failed: context canceled E0921 00:41:01.814349 3151791 runner.go:119] 3: election.Await() failed: context canceled E0921 00:41:01.814351 3151791 operation_manager.go:248] failed to create election for 4: injected failure E0921 00:41:01.914571 3151791 operation_manager.go:248] failed to create election for 6: injected failure E0921 00:41:01.914587 3151791 operation_manager.go:248] failed to create election for 5: injected failure PASS ok github.com/google/trillian/log 2.817s github.com/google/trillian/log E0921 00:41:02.464384 3152287 operation_manager.go:321] failed to perform operation: failed to list active log IDs: getactivelogs E0921 00:41:02.464957 3152287 operation_manager.go:428] ExecutePass(145) failed: test error E0921 00:41:05.465771 3152287 runner.go:119] 451: election.Await() failed: context canceled E0921 00:41:05.466022 3152287 operation_manager.go:428] ExecutePass(145) failed: test error E0921 00:41:05.466157 3152287 operation_manager.go:170] 98: failed to get log info: failedGetTree E0921 00:41:05.867790 3152287 runner.go:144] 3: no longer the master! E0921 00:41:05.867805 3152287 runner.go:119] 3: context canceled E0921 00:41:05.867825 3152287 runner.go:144] 5: no longer the master! E0921 00:41:05.867828 3152287 runner.go:119] 5: context canceled E0921 00:41:05.867834 3152287 runner.go:144] 4: no longer the master! E0921 00:41:05.867832 3152287 runner.go:144] 1: no longer the master! E0921 00:41:05.867856 3152287 runner.go:119] 1: context canceled E0921 00:41:05.867839 3152287 runner.go:119] 4: context canceled E0921 00:41:05.867877 3152287 runner.go:144] 2: no longer the master! E0921 00:41:05.867888 3152287 runner.go:119] 2: context canceled E0921 00:41:05.868247 3152287 runner.go:144] 6: no longer the master! E0921 00:41:05.868261 3152287 runner.go:119] 6: context canceled E0921 00:41:06.069533 3152287 runner.go:119] 3: election.Await() failed: context canceled E0921 00:41:06.069560 3152287 runner.go:119] 5: election.Await() failed: context canceled E0921 00:41:06.069562 3152287 runner.go:144] 2: no longer the master! E0921 00:41:06.069566 3152287 runner.go:144] 6: no longer the master! E0921 00:41:06.069578 3152287 runner.go:119] 2: context canceled E0921 00:41:06.069580 3152287 runner.go:119] 6: context canceled E0921 00:41:06.069543 3152287 runner.go:119] 1: election.Await() failed: context canceled E0921 00:41:06.069545 3152287 runner.go:144] 4: no longer the master! E0921 00:41:06.069600 3152287 runner.go:119] 4: context canceled E0921 00:41:06.069602 3152287 operation_manager.go:248] failed to create election for 1: injected failure E0921 00:41:06.069630 3152287 operation_manager.go:248] failed to create election for 4: injected failure E0921 00:41:06.069642 3152287 operation_manager.go:248] failed to create election for 2: injected failure E0921 00:41:06.069652 3152287 operation_manager.go:248] failed to create election for 3: injected failure E0921 00:41:06.169932 3152287 operation_manager.go:248] failed to create election for 6: injected failure E0921 00:41:06.169948 3152287 operation_manager.go:248] failed to create election for 5: injected failure PASS ok github.com/google/trillian/log 3.816s github.com/google/trillian/merkle PASS ok github.com/google/trillian/merkle 0.010s github.com/google/trillian/merkle PASS ok github.com/google/trillian/merkle 0.010s github.com/google/trillian/merkle/compact PASS ok github.com/google/trillian/merkle/compact 0.369s github.com/google/trillian/merkle/compact PASS ok github.com/google/trillian/merkle/compact 0.318s github.com/google/trillian/merkle/coniks PASS ok github.com/google/trillian/merkle/coniks 0.005s github.com/google/trillian/merkle/coniks PASS ok github.com/google/trillian/merkle/coniks 0.005s 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.200s github.com/google/trillian/merkle/logverifier PASS ok github.com/google/trillian/merkle/logverifier 2.399s github.com/google/trillian/merkle/rfc6962 PASS ok github.com/google/trillian/merkle/rfc6962 0.002s 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.514s github.com/google/trillian/merkle/smt PASS ok github.com/google/trillian/merkle/smt 1.344s 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:41:20.086912 3166704 inert.go:82] invalid label count 1; want 0 E0921 00:41:20.087151 3166704 inert.go:82] invalid label count 1; want 0 E0921 00:41:20.087154 3166704 inert.go:106] invalid label count 1; want 0 E0921 00:41:20.087190 3166704 inert.go:82] invalid label count 2; want 1 E0921 00:41:20.087193 3166704 inert.go:82] invalid label count 2; want 1 E0921 00:41:20.087196 3166704 inert.go:106] invalid label count 2; want 1 E0921 00:41:20.087215 3166704 inert.go:82] invalid label count 3; want 2 E0921 00:41:20.087218 3166704 inert.go:82] invalid label count 3; want 2 E0921 00:41:20.087220 3166704 inert.go:106] invalid label count 3; want 2 E0921 00:41:20.087254 3166704 inert.go:82] invalid label count 1; want 0 E0921 00:41:20.087256 3166704 inert.go:82] invalid label count 1; want 0 E0921 00:41:20.087266 3166704 inert.go:82] invalid label count 1; want 0 E0921 00:41:20.087274 3166704 inert.go:94] invalid label count 1; want 0 E0921 00:41:20.087277 3166704 inert.go:106] invalid label count 1; want 0 E0921 00:41:20.087294 3166704 inert.go:82] invalid label count 2; want 1 E0921 00:41:20.087297 3166704 inert.go:82] invalid label count 2; want 1 E0921 00:41:20.087299 3166704 inert.go:82] invalid label count 2; want 1 E0921 00:41:20.087302 3166704 inert.go:94] invalid label count 2; want 1 E0921 00:41:20.087304 3166704 inert.go:106] invalid label count 2; want 1 E0921 00:41:20.087321 3166704 inert.go:82] invalid label count 3; want 2 E0921 00:41:20.087324 3166704 inert.go:82] invalid label count 3; want 2 E0921 00:41:20.087326 3166704 inert.go:82] invalid label count 3; want 2 E0921 00:41:20.087328 3166704 inert.go:94] invalid label count 3; want 2 E0921 00:41:20.087331 3166704 inert.go:106] invalid label count 3; want 2 E0921 00:41:20.087359 3166704 inert.go:126] invalid label count 1; want 0 E0921 00:41:20.087362 3166704 inert.go:126] invalid label count 1; want 0 E0921 00:41:20.087364 3166704 inert.go:139] invalid label count 1; want 0 E0921 00:41:20.087382 3166704 inert.go:126] invalid label count 2; want 1 E0921 00:41:20.087385 3166704 inert.go:126] invalid label count 2; want 1 E0921 00:41:20.087387 3166704 inert.go:139] invalid label count 2; want 1 E0921 00:41:20.087404 3166704 inert.go:126] invalid label count 3; want 2 E0921 00:41:20.087407 3166704 inert.go:126] invalid label count 3; want 2 E0921 00:41:20.087409 3166704 inert.go:139] invalid label count 3; want 2 PASS ok github.com/google/trillian/monitoring 0.005s github.com/google/trillian/monitoring E0921 00:41:20.510426 3167019 inert.go:82] invalid label count 1; want 0 E0921 00:41:20.510901 3167019 inert.go:82] invalid label count 1; want 0 E0921 00:41:20.510912 3167019 inert.go:106] invalid label count 1; want 0 E0921 00:41:20.510936 3167019 inert.go:82] invalid label count 2; want 1 E0921 00:41:20.510939 3167019 inert.go:82] invalid label count 2; want 1 E0921 00:41:20.510941 3167019 inert.go:106] invalid label count 2; want 1 E0921 00:41:20.510958 3167019 inert.go:82] invalid label count 3; want 2 E0921 00:41:20.510961 3167019 inert.go:82] invalid label count 3; want 2 E0921 00:41:20.510964 3167019 inert.go:106] invalid label count 3; want 2 E0921 00:41:20.510995 3167019 inert.go:82] invalid label count 1; want 0 E0921 00:41:20.510998 3167019 inert.go:82] invalid label count 1; want 0 E0921 00:41:20.511001 3167019 inert.go:82] invalid label count 1; want 0 E0921 00:41:20.511008 3167019 inert.go:94] invalid label count 1; want 0 E0921 00:41:20.511011 3167019 inert.go:106] invalid label count 1; want 0 E0921 00:41:20.511027 3167019 inert.go:82] invalid label count 2; want 1 E0921 00:41:20.511030 3167019 inert.go:82] invalid label count 2; want 1 E0921 00:41:20.511033 3167019 inert.go:82] invalid label count 2; want 1 E0921 00:41:20.511035 3167019 inert.go:94] invalid label count 2; want 1 E0921 00:41:20.511038 3167019 inert.go:106] invalid label count 2; want 1 E0921 00:41:20.511058 3167019 inert.go:82] invalid label count 3; want 2 E0921 00:41:20.511060 3167019 inert.go:82] invalid label count 3; want 2 E0921 00:41:20.511063 3167019 inert.go:82] invalid label count 3; want 2 E0921 00:41:20.511065 3167019 inert.go:94] invalid label count 3; want 2 E0921 00:41:20.511068 3167019 inert.go:106] invalid label count 3; want 2 E0921 00:41:20.511100 3167019 inert.go:126] invalid label count 1; want 0 E0921 00:41:20.511103 3167019 inert.go:126] invalid label count 1; want 0 E0921 00:41:20.511105 3167019 inert.go:139] invalid label count 1; want 0 E0921 00:41:20.511123 3167019 inert.go:126] invalid label count 2; want 1 E0921 00:41:20.511125 3167019 inert.go:126] invalid label count 2; want 1 E0921 00:41:20.511128 3167019 inert.go:139] invalid label count 2; want 1 E0921 00:41:20.511145 3167019 inert.go:126] invalid label count 3; want 2 E0921 00:41:20.511148 3167019 inert.go:126] invalid label count 3; want 2 E0921 00:41:20.511150 3167019 inert.go:139] invalid label count 3; want 2 PASS ok github.com/google/trillian/monitoring 0.005s github.com/google/trillian/monitoring/opencensus ? github.com/google/trillian/monitoring/opencensus [no test files] github.com/google/trillian/monitoring/prometheus E0921 00:41:23.634299 3169766 metrics.go:140] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:23.634631 3169766 metrics.go:126] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:23.634671 3169766 metrics.go:154] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:23.634715 3169766 metrics.go:140] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:23.634719 3169766 metrics.go:126] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:23.634722 3169766 metrics.go:154] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:23.634750 3169766 metrics.go:140] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:23.634753 3169766 metrics.go:126] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:23.634757 3169766 metrics.go:154] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:23.634829 3169766 metrics.go:214] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:23.634833 3169766 metrics.go:186] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:23.634836 3169766 metrics.go:200] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:23.634865 3169766 metrics.go:228] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:23.634868 3169766 metrics.go:242] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:23.634897 3169766 metrics.go:214] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:23.634900 3169766 metrics.go:186] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:23.634903 3169766 metrics.go:200] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:23.634906 3169766 metrics.go:228] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:23.634909 3169766 metrics.go:242] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:23.634960 3169766 metrics.go:214] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:23.634964 3169766 metrics.go:186] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:23.634967 3169766 metrics.go:200] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:23.634970 3169766 metrics.go:228] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:23.634974 3169766 metrics.go:242] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:23.635152 3169766 metrics.go:274] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:23.635161 3169766 metrics.go:274] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:23.635166 3169766 metrics.go:288] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:23.635413 3169766 metrics.go:274] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:23.635419 3169766 metrics.go:274] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:23.635423 3169766 metrics.go:288] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:23.635658 3169766 metrics.go:274] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:23.635663 3169766 metrics.go:274] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:23.635689 3169766 metrics.go:288] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) PASS ok github.com/google/trillian/monitoring/prometheus 0.008s github.com/google/trillian/monitoring/prometheus E0921 00:41:24.087143 3170055 metrics.go:140] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:24.087415 3170055 metrics.go:126] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:24.087419 3170055 metrics.go:154] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:24.087466 3170055 metrics.go:140] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:24.087470 3170055 metrics.go:126] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:24.087474 3170055 metrics.go:154] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:24.087501 3170055 metrics.go:140] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:24.087505 3170055 metrics.go:126] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:24.087509 3170055 metrics.go:154] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:24.087552 3170055 metrics.go:214] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:24.087556 3170055 metrics.go:186] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:24.087558 3170055 metrics.go:200] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:24.087561 3170055 metrics.go:228] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:24.087565 3170055 metrics.go:242] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:24.087591 3170055 metrics.go:214] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:24.087595 3170055 metrics.go:186] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:24.087598 3170055 metrics.go:200] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:24.087601 3170055 metrics.go:228] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:24.087604 3170055 metrics.go:242] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:24.087633 3170055 metrics.go:214] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:24.087637 3170055 metrics.go:186] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:24.087640 3170055 metrics.go:200] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:24.087644 3170055 metrics.go:228] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:24.087647 3170055 metrics.go:242] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:24.087778 3170055 metrics.go:274] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:24.087783 3170055 metrics.go:274] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:24.087787 3170055 metrics.go:288] got 1 ([bogus]) values for 0 labels ([]) E0921 00:41:24.087909 3170055 metrics.go:274] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:24.087913 3170055 metrics.go:274] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:24.087917 3170055 metrics.go:288] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0921 00:41:24.088305 3170055 metrics.go:274] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:24.088310 3170055 metrics.go:274] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0921 00:41:24.088314 3170055 metrics.go:288] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) PASS ok github.com/google/trillian/monitoring/prometheus 0.006s 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.004s github.com/google/trillian/quota PASS ok github.com/google/trillian/quota 0.003s github.com/google/trillian/quota/cacheqm PASS ok github.com/google/trillian/quota/cacheqm 0.006s github.com/google/trillian/quota/cacheqm PASS ok github.com/google/trillian/quota/cacheqm 0.005s 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:41:27.449+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:35791"]} {"level":"info","ts":"2024-09-21T00:41:27.449+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:39495"]} {"level":"info","ts":"2024-09-21T00:41:27.449+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":"amd64","max-cpu-set":32,"max-cpu-available":32,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-3755448238","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-3755448238/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:35791"],"listen-peer-urls":["http://127.0.0.1:35791"],"advertise-client-urls":["http://127.0.0.1:39495"],"listen-client-urls":["http://127.0.0.1:39495"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:35791","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:41:27.459+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-3755448238/member/snap/db","took":"9.79022ms"} {"level":"info","ts":"2024-09-21T00:41:27.463+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"21e06b90156a8d9d","cluster-id":"b5117cc45a7bf7af"} {"level":"info","ts":"2024-09-21T00:41:27.463+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"21e06b90156a8d9d switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:41:27.463+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"21e06b90156a8d9d became follower at term 0"} {"level":"info","ts":"2024-09-21T00:41:27.463+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 21e06b90156a8d9d [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:41:27.463+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"21e06b90156a8d9d became follower at term 1"} {"level":"info","ts":"2024-09-21T00:41:27.463+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"21e06b90156a8d9d switched to configuration voters=(2441069264613576093)"} {"level":"warn","ts":"2024-09-21T00:41:27.467+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:41:27.469+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:41:27.471+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:41:27.472+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"21e06b90156a8d9d","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:41:27.472+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"21e06b90156a8d9d","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:41:27.472+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"21e06b90156a8d9d switched to configuration voters=(2441069264613576093)"} {"level":"info","ts":"2024-09-21T00:41:27.472+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"b5117cc45a7bf7af","local-member-id":"21e06b90156a8d9d","added-peer-id":"21e06b90156a8d9d","added-peer-peer-urls":["http://127.0.0.1:35791"]} {"level":"info","ts":"2024-09-21T00:41:27.473+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"21e06b90156a8d9d","initial-advertise-peer-urls":["http://127.0.0.1:35791"],"listen-peer-urls":["http://127.0.0.1:35791"],"advertise-client-urls":["http://127.0.0.1:39495"],"listen-client-urls":["http://127.0.0.1:39495"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:41:27.473+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:35791"} {"level":"info","ts":"2024-09-21T00:41:27.473+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:35791"} {"level":"info","ts":"2024-09-21T00:41:27.864+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"21e06b90156a8d9d is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:41:27.864+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"21e06b90156a8d9d became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:41:27.864+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"21e06b90156a8d9d received MsgPreVoteResp from 21e06b90156a8d9d at term 1"} {"level":"info","ts":"2024-09-21T00:41:27.864+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"21e06b90156a8d9d became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:41:27.864+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"21e06b90156a8d9d received MsgVoteResp from 21e06b90156a8d9d at term 2"} {"level":"info","ts":"2024-09-21T00:41:27.864+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"21e06b90156a8d9d became leader at term 2"} {"level":"info","ts":"2024-09-21T00:41:27.864+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 21e06b90156a8d9d elected leader 21e06b90156a8d9d at term 2"} {"level":"info","ts":"2024-09-21T00:41:27.865+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"21e06b90156a8d9d","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:39495]}","request-path":"/0/members/21e06b90156a8d9d/attributes","cluster-id":"b5117cc45a7bf7af","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:41:27.865+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:41:27.865+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:41:27.865+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:39495"} {"level":"info","ts":"2024-09-21T00:41:27.865+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"b5117cc45a7bf7af","local-member-id":"21e06b90156a8d9d","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:27.865+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:27.865+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} PASS {"level":"info","ts":"2024-09-21T00:41:27.909+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3755448238","advertise-peer-urls":["http://127.0.0.1:35791"],"advertise-client-urls":["http://127.0.0.1:39495"]} {"level":"info","ts":"2024-09-21T00:41:27.909+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"21e06b90156a8d9d","current-leader-member-id":"21e06b90156a8d9d"} {"level":"info","ts":"2024-09-21T00:41:27.911+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:35791"} {"level":"info","ts":"2024-09-21T00:41:27.911+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:35791"} {"level":"info","ts":"2024-09-21T00:41:27.911+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3755448238","advertise-peer-urls":["http://127.0.0.1:35791"],"advertise-client-urls":["http://127.0.0.1:39495"]} ok github.com/google/trillian/quota/etcd/etcdqm 0.479s github.com/google/trillian/quota/etcd/etcdqm {"level":"info","ts":"2024-09-21T00:41:28.748+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:37065"]} {"level":"info","ts":"2024-09-21T00:41:28.748+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:35737"]} {"level":"info","ts":"2024-09-21T00:41:28.748+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":"amd64","max-cpu-set":32,"max-cpu-available":32,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-1538235091","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-1538235091/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:37065"],"listen-peer-urls":["http://127.0.0.1:37065"],"advertise-client-urls":["http://127.0.0.1:35737"],"listen-client-urls":["http://127.0.0.1:35737"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:37065","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:41:28.755+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-1538235091/member/snap/db","took":"6.330011ms"} {"level":"info","ts":"2024-09-21T00:41:28.760+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"f45ab8ae8a015e39","cluster-id":"3a480877a58386f9"} {"level":"info","ts":"2024-09-21T00:41:28.760+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f45ab8ae8a015e39 switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:41:28.760+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f45ab8ae8a015e39 became follower at term 0"} {"level":"info","ts":"2024-09-21T00:41:28.760+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft f45ab8ae8a015e39 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:41:28.760+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f45ab8ae8a015e39 became follower at term 1"} {"level":"info","ts":"2024-09-21T00:41:28.760+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f45ab8ae8a015e39 switched to configuration voters=(17607588752937541177)"} {"level":"warn","ts":"2024-09-21T00:41:28.764+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:41:28.767+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:41:28.769+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:41:28.770+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"f45ab8ae8a015e39","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:41:28.770+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"f45ab8ae8a015e39","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:41:28.770+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f45ab8ae8a015e39 switched to configuration voters=(17607588752937541177)"} {"level":"info","ts":"2024-09-21T00:41:28.770+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"3a480877a58386f9","local-member-id":"f45ab8ae8a015e39","added-peer-id":"f45ab8ae8a015e39","added-peer-peer-urls":["http://127.0.0.1:37065"]} {"level":"info","ts":"2024-09-21T00:41:28.771+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"f45ab8ae8a015e39","initial-advertise-peer-urls":["http://127.0.0.1:37065"],"listen-peer-urls":["http://127.0.0.1:37065"],"advertise-client-urls":["http://127.0.0.1:35737"],"listen-client-urls":["http://127.0.0.1:35737"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:41:28.771+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:37065"} {"level":"info","ts":"2024-09-21T00:41:28.771+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:37065"} {"level":"info","ts":"2024-09-21T00:41:29.062+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f45ab8ae8a015e39 is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:41:29.062+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f45ab8ae8a015e39 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:41:29.062+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f45ab8ae8a015e39 received MsgPreVoteResp from f45ab8ae8a015e39 at term 1"} {"level":"info","ts":"2024-09-21T00:41:29.062+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f45ab8ae8a015e39 became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:41:29.062+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f45ab8ae8a015e39 received MsgVoteResp from f45ab8ae8a015e39 at term 2"} {"level":"info","ts":"2024-09-21T00:41:29.062+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"f45ab8ae8a015e39 became leader at term 2"} {"level":"info","ts":"2024-09-21T00:41:29.062+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: f45ab8ae8a015e39 elected leader f45ab8ae8a015e39 at term 2"} {"level":"info","ts":"2024-09-21T00:41:29.062+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:41:29.065+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"3a480877a58386f9","local-member-id":"f45ab8ae8a015e39","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:29.065+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:29.065+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:29.065+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:41:29.065+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"f45ab8ae8a015e39","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:35737]}","request-path":"/0/members/f45ab8ae8a015e39/attributes","cluster-id":"3a480877a58386f9","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:41:29.066+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:35737"} PASS {"level":"info","ts":"2024-09-21T00:41:29.119+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1538235091","advertise-peer-urls":["http://127.0.0.1:37065"],"advertise-client-urls":["http://127.0.0.1:35737"]} {"level":"info","ts":"2024-09-21T00:41:29.119+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"f45ab8ae8a015e39","current-leader-member-id":"f45ab8ae8a015e39"} {"level":"info","ts":"2024-09-21T00:41:29.122+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:37065"} {"level":"info","ts":"2024-09-21T00:41:29.122+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:37065"} {"level":"info","ts":"2024-09-21T00:41:29.122+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1538235091","advertise-peer-urls":["http://127.0.0.1:37065"],"advertise-client-urls":["http://127.0.0.1:35737"]} ok github.com/google/trillian/quota/etcd/etcdqm 0.389s github.com/google/trillian/quota/etcd/quotaapi {"level":"info","ts":"2024-09-21T00:41:30.206+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:35067"]} {"level":"info","ts":"2024-09-21T00:41:30.207+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:33757"]} {"level":"info","ts":"2024-09-21T00:41:30.207+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":"amd64","max-cpu-set":32,"max-cpu-available":32,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-398771853","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-398771853/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:35067"],"listen-peer-urls":["http://127.0.0.1:35067"],"advertise-client-urls":["http://127.0.0.1:33757"],"listen-client-urls":["http://127.0.0.1:33757"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:35067","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:41:30.210+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-398771853/member/snap/db","took":"3.238603ms"} {"level":"info","ts":"2024-09-21T00:41:30.214+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"86164f974e82a2c7","cluster-id":"ba468e4b725299da"} {"level":"info","ts":"2024-09-21T00:41:30.214+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"86164f974e82a2c7 switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:41:30.214+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"86164f974e82a2c7 became follower at term 0"} {"level":"info","ts":"2024-09-21T00:41:30.214+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 86164f974e82a2c7 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:41:30.214+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"86164f974e82a2c7 became follower at term 1"} {"level":"info","ts":"2024-09-21T00:41:30.214+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"86164f974e82a2c7 switched to configuration voters=(9661997561845818055)"} {"level":"warn","ts":"2024-09-21T00:41:30.225+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:41:30.229+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:41:30.231+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:41:30.232+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"86164f974e82a2c7","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:41:30.232+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"86164f974e82a2c7","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:41:30.232+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"86164f974e82a2c7 switched to configuration voters=(9661997561845818055)"} {"level":"info","ts":"2024-09-21T00:41:30.232+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"ba468e4b725299da","local-member-id":"86164f974e82a2c7","added-peer-id":"86164f974e82a2c7","added-peer-peer-urls":["http://127.0.0.1:35067"]} {"level":"info","ts":"2024-09-21T00:41:30.233+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"86164f974e82a2c7","initial-advertise-peer-urls":["http://127.0.0.1:35067"],"listen-peer-urls":["http://127.0.0.1:35067"],"advertise-client-urls":["http://127.0.0.1:33757"],"listen-client-urls":["http://127.0.0.1:33757"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:41:30.233+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:35067"} {"level":"info","ts":"2024-09-21T00:41:30.234+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:35067"} {"level":"info","ts":"2024-09-21T00:41:31.016+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"86164f974e82a2c7 is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:41:31.016+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"86164f974e82a2c7 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:41:31.016+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"86164f974e82a2c7 received MsgPreVoteResp from 86164f974e82a2c7 at term 1"} {"level":"info","ts":"2024-09-21T00:41:31.016+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"86164f974e82a2c7 became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:41:31.016+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"86164f974e82a2c7 received MsgVoteResp from 86164f974e82a2c7 at term 2"} {"level":"info","ts":"2024-09-21T00:41:31.016+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"86164f974e82a2c7 became leader at term 2"} {"level":"info","ts":"2024-09-21T00:41:31.016+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 86164f974e82a2c7 elected leader 86164f974e82a2c7 at term 2"} {"level":"info","ts":"2024-09-21T00:41:31.016+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"86164f974e82a2c7","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:33757]}","request-path":"/0/members/86164f974e82a2c7/attributes","cluster-id":"ba468e4b725299da","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:41:31.016+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:41:31.016+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:41:31.017+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"ba468e4b725299da","local-member-id":"86164f974e82a2c7","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:31.017+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:31.017+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:31.017+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:33757"} PASS {"level":"info","ts":"2024-09-21T00:41:37.768+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-398771853","advertise-peer-urls":["http://127.0.0.1:35067"],"advertise-client-urls":["http://127.0.0.1:33757"]} {"level":"info","ts":"2024-09-21T00:41:37.768+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"86164f974e82a2c7","current-leader-member-id":"86164f974e82a2c7"} {"level":"info","ts":"2024-09-21T00:41:37.772+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:35067"} {"level":"info","ts":"2024-09-21T00:41:37.772+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:35067"} {"level":"info","ts":"2024-09-21T00:41:37.772+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-398771853","advertise-peer-urls":["http://127.0.0.1:35067"],"advertise-client-urls":["http://127.0.0.1:33757"]} ok github.com/google/trillian/quota/etcd/quotaapi 7.593s github.com/google/trillian/quota/etcd/quotaapi {"level":"info","ts":"2024-09-21T00:41:38.746+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:34077"]} {"level":"info","ts":"2024-09-21T00:41:38.746+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:40813"]} {"level":"info","ts":"2024-09-21T00:41:38.746+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":"amd64","max-cpu-set":32,"max-cpu-available":32,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-2351109170","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-2351109170/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:34077"],"listen-peer-urls":["http://127.0.0.1:34077"],"advertise-client-urls":["http://127.0.0.1:40813"],"listen-client-urls":["http://127.0.0.1:40813"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:34077","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:41:38.757+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-2351109170/member/snap/db","took":"2.896381ms"} {"level":"info","ts":"2024-09-21T00:41:38.763+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"60bc87ba656f977b","cluster-id":"abd30276ccba3ed5"} {"level":"info","ts":"2024-09-21T00:41:38.763+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"60bc87ba656f977b switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:41:38.763+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"60bc87ba656f977b became follower at term 0"} {"level":"info","ts":"2024-09-21T00:41:38.763+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 60bc87ba656f977b [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:41:38.763+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"60bc87ba656f977b became follower at term 1"} {"level":"info","ts":"2024-09-21T00:41:38.763+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"60bc87ba656f977b switched to configuration voters=(6970595557898164091)"} {"level":"warn","ts":"2024-09-21T00:41:38.766+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:41:38.767+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:41:38.768+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:41:38.769+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"60bc87ba656f977b","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:41:38.769+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"60bc87ba656f977b","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:41:38.770+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"60bc87ba656f977b switched to configuration voters=(6970595557898164091)"} {"level":"info","ts":"2024-09-21T00:41:38.770+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"abd30276ccba3ed5","local-member-id":"60bc87ba656f977b","added-peer-id":"60bc87ba656f977b","added-peer-peer-urls":["http://127.0.0.1:34077"]} {"level":"info","ts":"2024-09-21T00:41:38.771+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:34077"} {"level":"info","ts":"2024-09-21T00:41:38.771+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"60bc87ba656f977b","initial-advertise-peer-urls":["http://127.0.0.1:34077"],"listen-peer-urls":["http://127.0.0.1:34077"],"advertise-client-urls":["http://127.0.0.1:40813"],"listen-client-urls":["http://127.0.0.1:40813"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:41:38.772+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:34077"} {"level":"info","ts":"2024-09-21T00:41:39.163+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"60bc87ba656f977b is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:41:39.163+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"60bc87ba656f977b became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:41:39.163+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"60bc87ba656f977b received MsgPreVoteResp from 60bc87ba656f977b at term 1"} {"level":"info","ts":"2024-09-21T00:41:39.163+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"60bc87ba656f977b became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:41:39.163+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"60bc87ba656f977b received MsgVoteResp from 60bc87ba656f977b at term 2"} {"level":"info","ts":"2024-09-21T00:41:39.163+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"60bc87ba656f977b became leader at term 2"} {"level":"info","ts":"2024-09-21T00:41:39.163+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 60bc87ba656f977b elected leader 60bc87ba656f977b at term 2"} {"level":"info","ts":"2024-09-21T00:41:39.164+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:41:39.164+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"abd30276ccba3ed5","local-member-id":"60bc87ba656f977b","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:39.164+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:39.164+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:39.164+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"60bc87ba656f977b","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:40813]}","request-path":"/0/members/60bc87ba656f977b/attributes","cluster-id":"abd30276ccba3ed5","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:41:39.164+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:41:39.165+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:40813"} PASS {"level":"info","ts":"2024-09-21T00:41:46.943+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2351109170","advertise-peer-urls":["http://127.0.0.1:34077"],"advertise-client-urls":["http://127.0.0.1:40813"]} {"level":"info","ts":"2024-09-21T00:41:46.943+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"60bc87ba656f977b","current-leader-member-id":"60bc87ba656f977b"} {"level":"info","ts":"2024-09-21T00:41:46.946+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:34077"} {"level":"info","ts":"2024-09-21T00:41:46.946+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:34077"} {"level":"info","ts":"2024-09-21T00:41:46.946+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2351109170","advertise-peer-urls":["http://127.0.0.1:34077"],"advertise-client-urls":["http://127.0.0.1:40813"]} ok github.com/google/trillian/quota/etcd/quotaapi 8.222s 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:41:48.467+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:37959"]} {"level":"info","ts":"2024-09-21T00:41:48.467+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:43761"]} {"level":"info","ts":"2024-09-21T00:41:48.467+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":"amd64","max-cpu-set":32,"max-cpu-available":32,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-599779080","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-599779080/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:37959"],"listen-peer-urls":["http://127.0.0.1:37959"],"advertise-client-urls":["http://127.0.0.1:43761"],"listen-client-urls":["http://127.0.0.1:43761"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:37959","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:41:48.474+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-599779080/member/snap/db","took":"6.916392ms"} {"level":"info","ts":"2024-09-21T00:41:48.495+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"6e62c161464be29d","cluster-id":"f11e8728987978fc"} {"level":"info","ts":"2024-09-21T00:41:48.495+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6e62c161464be29d switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:41:48.495+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6e62c161464be29d became follower at term 0"} {"level":"info","ts":"2024-09-21T00:41:48.495+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 6e62c161464be29d [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:41:48.495+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6e62c161464be29d became follower at term 1"} {"level":"info","ts":"2024-09-21T00:41:48.495+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6e62c161464be29d switched to configuration voters=(7954132515425084061)"} {"level":"warn","ts":"2024-09-21T00:41:48.500+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:41:48.501+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:41:48.503+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:41:48.504+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"6e62c161464be29d","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:41:48.504+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"6e62c161464be29d","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:41:48.504+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6e62c161464be29d switched to configuration voters=(7954132515425084061)"} {"level":"info","ts":"2024-09-21T00:41:48.504+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"f11e8728987978fc","local-member-id":"6e62c161464be29d","added-peer-id":"6e62c161464be29d","added-peer-peer-urls":["http://127.0.0.1:37959"]} {"level":"info","ts":"2024-09-21T00:41:48.505+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"6e62c161464be29d","initial-advertise-peer-urls":["http://127.0.0.1:37959"],"listen-peer-urls":["http://127.0.0.1:37959"],"advertise-client-urls":["http://127.0.0.1:43761"],"listen-client-urls":["http://127.0.0.1:43761"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:41:48.505+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:37959"} {"level":"info","ts":"2024-09-21T00:41:48.505+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:37959"} {"level":"info","ts":"2024-09-21T00:41:48.996+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6e62c161464be29d is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:41:48.996+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6e62c161464be29d became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:41:48.996+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6e62c161464be29d received MsgPreVoteResp from 6e62c161464be29d at term 1"} {"level":"info","ts":"2024-09-21T00:41:48.996+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6e62c161464be29d became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:41:48.996+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6e62c161464be29d received MsgVoteResp from 6e62c161464be29d at term 2"} {"level":"info","ts":"2024-09-21T00:41:48.996+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6e62c161464be29d became leader at term 2"} {"level":"info","ts":"2024-09-21T00:41:48.996+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 6e62c161464be29d elected leader 6e62c161464be29d at term 2"} {"level":"info","ts":"2024-09-21T00:41:48.996+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:41:49.023+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"f11e8728987978fc","local-member-id":"6e62c161464be29d","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:49.023+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:49.023+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:49.023+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"6e62c161464be29d","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:43761]}","request-path":"/0/members/6e62c161464be29d/attributes","cluster-id":"f11e8728987978fc","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:41:49.023+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:41:49.024+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:43761"} PASS {"level":"info","ts":"2024-09-21T00:41:49.260+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-599779080","advertise-peer-urls":["http://127.0.0.1:37959"],"advertise-client-urls":["http://127.0.0.1:43761"]} {"level":"info","ts":"2024-09-21T00:41:49.260+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"6e62c161464be29d","current-leader-member-id":"6e62c161464be29d"} {"level":"info","ts":"2024-09-21T00:41:49.274+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:37959"} {"level":"info","ts":"2024-09-21T00:41:49.274+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:37959"} {"level":"info","ts":"2024-09-21T00:41:49.274+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-599779080","advertise-peer-urls":["http://127.0.0.1:37959"],"advertise-client-urls":["http://127.0.0.1:43761"]} ok github.com/google/trillian/quota/etcd/storage 0.824s github.com/google/trillian/quota/etcd/storage {"level":"info","ts":"2024-09-21T00:41:50.163+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:46667"]} {"level":"info","ts":"2024-09-21T00:41:50.163+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:43595"]} {"level":"info","ts":"2024-09-21T00:41:50.163+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":"amd64","max-cpu-set":32,"max-cpu-available":32,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-2466134082","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-2466134082/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:46667"],"listen-peer-urls":["http://127.0.0.1:46667"],"advertise-client-urls":["http://127.0.0.1:43595"],"listen-client-urls":["http://127.0.0.1:43595"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:46667","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:41:50.171+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-2466134082/member/snap/db","took":"7.883148ms"} {"level":"info","ts":"2024-09-21T00:41:50.177+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"38d8058652fa267c","cluster-id":"6ff8b47c54fb2912"} {"level":"info","ts":"2024-09-21T00:41:50.177+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"38d8058652fa267c switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:41:50.177+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"38d8058652fa267c became follower at term 0"} {"level":"info","ts":"2024-09-21T00:41:50.177+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 38d8058652fa267c [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:41:50.177+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"38d8058652fa267c became follower at term 1"} {"level":"info","ts":"2024-09-21T00:41:50.177+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"38d8058652fa267c switched to configuration voters=(4096029935569348220)"} {"level":"warn","ts":"2024-09-21T00:41:50.181+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:41:50.183+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:41:50.185+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:41:50.186+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"38d8058652fa267c","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:41:50.186+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"38d8058652fa267c","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:41:50.186+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"38d8058652fa267c switched to configuration voters=(4096029935569348220)"} {"level":"info","ts":"2024-09-21T00:41:50.187+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"6ff8b47c54fb2912","local-member-id":"38d8058652fa267c","added-peer-id":"38d8058652fa267c","added-peer-peer-urls":["http://127.0.0.1:46667"]} {"level":"info","ts":"2024-09-21T00:41:50.187+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"38d8058652fa267c","initial-advertise-peer-urls":["http://127.0.0.1:46667"],"listen-peer-urls":["http://127.0.0.1:46667"],"advertise-client-urls":["http://127.0.0.1:43595"],"listen-client-urls":["http://127.0.0.1:43595"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:41:50.187+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:46667"} {"level":"info","ts":"2024-09-21T00:41:50.188+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:46667"} {"level":"info","ts":"2024-09-21T00:41:50.977+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"38d8058652fa267c is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:41:50.977+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"38d8058652fa267c became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:41:50.977+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"38d8058652fa267c received MsgPreVoteResp from 38d8058652fa267c at term 1"} {"level":"info","ts":"2024-09-21T00:41:50.977+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"38d8058652fa267c became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:41:50.977+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"38d8058652fa267c received MsgVoteResp from 38d8058652fa267c at term 2"} {"level":"info","ts":"2024-09-21T00:41:50.977+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"38d8058652fa267c became leader at term 2"} {"level":"info","ts":"2024-09-21T00:41:50.977+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 38d8058652fa267c elected leader 38d8058652fa267c at term 2"} {"level":"info","ts":"2024-09-21T00:41:50.978+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"38d8058652fa267c","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:43595]}","request-path":"/0/members/38d8058652fa267c/attributes","cluster-id":"6ff8b47c54fb2912","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:41:50.978+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:41:50.978+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:41:50.978+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"6ff8b47c54fb2912","local-member-id":"38d8058652fa267c","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:50.978+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:50.978+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:41:50.979+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:43595"} PASS {"level":"info","ts":"2024-09-21T00:41:51.157+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2466134082","advertise-peer-urls":["http://127.0.0.1:46667"],"advertise-client-urls":["http://127.0.0.1:43595"]} {"level":"info","ts":"2024-09-21T00:41:51.157+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"38d8058652fa267c","current-leader-member-id":"38d8058652fa267c"} {"level":"info","ts":"2024-09-21T00:41:51.166+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:46667"} {"level":"info","ts":"2024-09-21T00:41:51.166+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:46667"} {"level":"info","ts":"2024-09-21T00:41:51.166+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2466134082","advertise-peer-urls":["http://127.0.0.1:46667"],"advertise-client-urls":["http://127.0.0.1:43595"]} ok github.com/google/trillian/quota/etcd/storage 1.021s 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:41:51 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:41:51 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:41:51 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/quota/mysqlqm 0.005s github.com/google/trillian/quota/mysqlqm 2024/09/21 00:41:52 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:41:52 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/21 00:41:52 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/quota/mysqlqm 0.006s 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.007s github.com/google/trillian/server/admin PASS ok github.com/google/trillian/server/admin 0.007s 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.009s github.com/google/trillian/storage PASS ok github.com/google/trillian/storage 0.005s github.com/google/trillian/storage PASS ok github.com/google/trillian/storage 0.004s github.com/google/trillian/storage/cache PASS ok github.com/google/trillian/storage/cache 0.030s github.com/google/trillian/storage/cache PASS ok github.com/google/trillian/storage/cache 0.030s github.com/google/trillian/storage/cloudspanner PASS ok github.com/google/trillian/storage/cloudspanner 3.507s github.com/google/trillian/storage/cloudspanner PASS ok github.com/google/trillian/storage/cloudspanner 3.278s 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.004s github.com/google/trillian/storage/memory PASS ok github.com/google/trillian/storage/memory 0.005s github.com/google/trillian/storage/mysql 2024/09/21 00:42:13 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused E0921 00:42:13.434767 3181637 storage_test.go:297] MySQL not available, skipping all MySQL storage tests ok github.com/google/trillian/storage/mysql 0.025s github.com/google/trillian/storage/mysql 2024/09/21 00:42:14 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused E0921 00:42:14.307593 3181931 storage_test.go:297] MySQL not available, skipping all MySQL storage tests ok github.com/google/trillian/storage/mysql 0.008s 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.004s github.com/google/trillian/testonly/matchers PASS ok github.com/google/trillian/testonly/matchers 0.004s 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.005s github.com/google/trillian/trees PASS ok github.com/google/trillian/trees 0.005s github.com/google/trillian/types PASS ok github.com/google/trillian/types 0.004s github.com/google/trillian/types PASS ok github.com/google/trillian/types 0.003s 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.391s github.com/google/trillian/util/clock PASS ok github.com/google/trillian/util/clock 1.391s 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:42:27.951+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:46327"]} {"level":"info","ts":"2024-09-21T00:42:27.951+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:45341"]} {"level":"info","ts":"2024-09-21T00:42:27.952+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":"amd64","max-cpu-set":32,"max-cpu-available":32,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-4140576659","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-4140576659/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:46327"],"listen-peer-urls":["http://127.0.0.1:46327"],"advertise-client-urls":["http://127.0.0.1:45341"],"listen-client-urls":["http://127.0.0.1:45341"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:46327","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:42:28.000+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-4140576659/member/snap/db","took":"47.949411ms"} {"level":"info","ts":"2024-09-21T00:42:28.109+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"6944c9d0a00a0ef1","cluster-id":"5d78671118cf4a8f"} {"level":"info","ts":"2024-09-21T00:42:28.109+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6944c9d0a00a0ef1 switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:42:28.109+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6944c9d0a00a0ef1 became follower at term 0"} {"level":"info","ts":"2024-09-21T00:42:28.109+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 6944c9d0a00a0ef1 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:42:28.109+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6944c9d0a00a0ef1 became follower at term 1"} {"level":"info","ts":"2024-09-21T00:42:28.109+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6944c9d0a00a0ef1 switched to configuration voters=(7585409570274152177)"} {"level":"warn","ts":"2024-09-21T00:42:28.210+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:42:28.249+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:42:28.317+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:42:28.346+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"6944c9d0a00a0ef1","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:42:28.346+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"6944c9d0a00a0ef1","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:42:28.347+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6944c9d0a00a0ef1 switched to configuration voters=(7585409570274152177)"} {"level":"info","ts":"2024-09-21T00:42:28.348+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"5d78671118cf4a8f","local-member-id":"6944c9d0a00a0ef1","added-peer-id":"6944c9d0a00a0ef1","added-peer-peer-urls":["http://127.0.0.1:46327"]} {"level":"info","ts":"2024-09-21T00:42:28.349+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"6944c9d0a00a0ef1","initial-advertise-peer-urls":["http://127.0.0.1:46327"],"listen-peer-urls":["http://127.0.0.1:46327"],"advertise-client-urls":["http://127.0.0.1:45341"],"listen-client-urls":["http://127.0.0.1:45341"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:42:28.349+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:46327"} {"level":"info","ts":"2024-09-21T00:42:28.349+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:46327"} {"level":"info","ts":"2024-09-21T00:42:28.428+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6944c9d0a00a0ef1 is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:42:28.428+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6944c9d0a00a0ef1 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:42:28.428+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6944c9d0a00a0ef1 received MsgPreVoteResp from 6944c9d0a00a0ef1 at term 1"} {"level":"info","ts":"2024-09-21T00:42:28.428+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6944c9d0a00a0ef1 became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:42:28.428+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6944c9d0a00a0ef1 received MsgVoteResp from 6944c9d0a00a0ef1 at term 2"} {"level":"info","ts":"2024-09-21T00:42:28.428+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"6944c9d0a00a0ef1 became leader at term 2"} {"level":"info","ts":"2024-09-21T00:42:28.428+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 6944c9d0a00a0ef1 elected leader 6944c9d0a00a0ef1 at term 2"} {"level":"info","ts":"2024-09-21T00:42:28.428+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:42:28.453+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"5d78671118cf4a8f","local-member-id":"6944c9d0a00a0ef1","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:42:28.453+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:42:28.453+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:42:28.453+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"6944c9d0a00a0ef1","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:45341]}","request-path":"/0/members/6944c9d0a00a0ef1/attributes","cluster-id":"5d78671118cf4a8f","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:42:28.453+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:42:28.454+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:45341"} {"level":"info","ts":"2024-09-21T00:42:28.698+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-4140576659","advertise-peer-urls":["http://127.0.0.1:46327"],"advertise-client-urls":["http://127.0.0.1:45341"]} {"level":"info","ts":"2024-09-21T00:42:28.698+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"6944c9d0a00a0ef1","current-leader-member-id":"6944c9d0a00a0ef1"} {"level":"info","ts":"2024-09-21T00:42:28.706+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:46327"} {"level":"info","ts":"2024-09-21T00:42:28.706+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:46327"} {"level":"info","ts":"2024-09-21T00:42:28.706+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-4140576659","advertise-peer-urls":["http://127.0.0.1:46327"],"advertise-client-urls":["http://127.0.0.1:45341"]} {"level":"info","ts":"2024-09-21T00:42:28.707+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:42393"]} {"level":"info","ts":"2024-09-21T00:42:28.708+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:41035"]} {"level":"info","ts":"2024-09-21T00:42:28.708+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":"amd64","max-cpu-set":32,"max-cpu-available":32,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-3113563371","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-3113563371/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:42393"],"listen-peer-urls":["http://127.0.0.1:42393"],"advertise-client-urls":["http://127.0.0.1:41035"],"listen-client-urls":["http://127.0.0.1:41035"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:42393","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:42:28.810+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-3113563371/member/snap/db","took":"102.677154ms"} {"level":"info","ts":"2024-09-21T00:42:28.878+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"3502151cfd7fcc27","cluster-id":"361e29cbe8f0139d"} {"level":"info","ts":"2024-09-21T00:42:28.879+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"3502151cfd7fcc27 switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:42:28.879+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"3502151cfd7fcc27 became follower at term 0"} {"level":"info","ts":"2024-09-21T00:42:28.879+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 3502151cfd7fcc27 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:42:28.879+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"3502151cfd7fcc27 became follower at term 1"} {"level":"info","ts":"2024-09-21T00:42:28.879+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"3502151cfd7fcc27 switched to configuration voters=(3819638648219880487)"} {"level":"warn","ts":"2024-09-21T00:42:28.976+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:42:28.979+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:42:29.046+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"3502151cfd7fcc27","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:42:29.046+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"3502151cfd7fcc27","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:42:29.047+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"3502151cfd7fcc27 switched to configuration voters=(3819638648219880487)"} {"level":"info","ts":"2024-09-21T00:42:29.047+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"361e29cbe8f0139d","local-member-id":"3502151cfd7fcc27","added-peer-id":"3502151cfd7fcc27","added-peer-peer-urls":["http://127.0.0.1:42393"]} {"level":"info","ts":"2024-09-21T00:42:29.047+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"3502151cfd7fcc27","initial-advertise-peer-urls":["http://127.0.0.1:42393"],"listen-peer-urls":["http://127.0.0.1:42393"],"advertise-client-urls":["http://127.0.0.1:41035"],"listen-client-urls":["http://127.0.0.1:41035"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:42:29.047+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:42393"} {"level":"info","ts":"2024-09-21T00:42:29.047+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:42393"} {"level":"info","ts":"2024-09-21T00:42:29.123+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"3502151cfd7fcc27 is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:42:29.123+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"3502151cfd7fcc27 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:42:29.123+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"3502151cfd7fcc27 received MsgPreVoteResp from 3502151cfd7fcc27 at term 1"} {"level":"info","ts":"2024-09-21T00:42:29.123+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"3502151cfd7fcc27 became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:42:29.123+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"3502151cfd7fcc27 received MsgVoteResp from 3502151cfd7fcc27 at term 2"} {"level":"info","ts":"2024-09-21T00:42:29.123+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"3502151cfd7fcc27 became leader at term 2"} {"level":"info","ts":"2024-09-21T00:42:29.123+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 3502151cfd7fcc27 elected leader 3502151cfd7fcc27 at term 2"} {"level":"info","ts":"2024-09-21T00:42:29.123+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:42:29.130+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"361e29cbe8f0139d","local-member-id":"3502151cfd7fcc27","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:42:29.130+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:42:29.130+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"3502151cfd7fcc27","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:41035]}","request-path":"/0/members/3502151cfd7fcc27/attributes","cluster-id":"361e29cbe8f0139d","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:42:29.130+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:42:29.131+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:41035"} {"level":"warn","ts":"2024-09-21T00:42:30.378+0800","caller":"etcdserver/util.go:166","msg":"apply request took too long","took":"192.459245ms","expected-duration":"100ms","prefix":"","request":"header: txn: success:> failure:<>>","response":"size:14"} {"level":"info","ts":"2024-09-21T00:42:30.378+0800","caller":"traceutil/trace.go:171","msg":"trace[1281530939] transaction","detail":"{read_only:false; response_revision:14; number_of_response:1; }","duration":"192.882731ms","start":"2024-09-21T00:42:30.185+0800","end":"2024-09-21T00:42:30.378+0800","steps":["trace[1281530939] 'compare' (duration: 192.39222ms)"],"step_count":1} {"level":"info","ts":"2024-09-21T00:42:31.572+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3113563371","advertise-peer-urls":["http://127.0.0.1:42393"],"advertise-client-urls":["http://127.0.0.1:41035"]} {"level":"info","ts":"2024-09-21T00:42:31.572+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"3502151cfd7fcc27","current-leader-member-id":"3502151cfd7fcc27"} {"level":"info","ts":"2024-09-21T00:42:31.577+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:42393"} {"level":"info","ts":"2024-09-21T00:42:31.577+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:42393"} {"level":"info","ts":"2024-09-21T00:42:31.577+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3113563371","advertise-peer-urls":["http://127.0.0.1:42393"],"advertise-client-urls":["http://127.0.0.1:41035"]} PASS ok github.com/google/trillian/util/election2/etcd 3.642s github.com/google/trillian/util/election2/etcd {"level":"info","ts":"2024-09-21T00:42:32.362+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:38297"]} {"level":"info","ts":"2024-09-21T00:42:32.362+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:37511"]} {"level":"info","ts":"2024-09-21T00:42:32.362+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":"amd64","max-cpu-set":32,"max-cpu-available":32,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-2531114362","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-2531114362/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:38297"],"listen-peer-urls":["http://127.0.0.1:38297"],"advertise-client-urls":["http://127.0.0.1:37511"],"listen-client-urls":["http://127.0.0.1:37511"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:38297","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:42:32.367+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-2531114362/member/snap/db","took":"4.521112ms"} {"level":"info","ts":"2024-09-21T00:42:32.375+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"42fe4495fac801fa","cluster-id":"e66d645bacf82118"} {"level":"info","ts":"2024-09-21T00:42:32.376+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"42fe4495fac801fa switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:42:32.376+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"42fe4495fac801fa became follower at term 0"} {"level":"info","ts":"2024-09-21T00:42:32.376+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 42fe4495fac801fa [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:42:32.376+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"42fe4495fac801fa became follower at term 1"} {"level":"info","ts":"2024-09-21T00:42:32.376+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"42fe4495fac801fa switched to configuration voters=(4827371261535977978)"} {"level":"warn","ts":"2024-09-21T00:42:32.383+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:42:32.385+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:42:32.387+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:42:32.388+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"42fe4495fac801fa","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:42:32.388+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"42fe4495fac801fa","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:42:32.388+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"42fe4495fac801fa switched to configuration voters=(4827371261535977978)"} {"level":"info","ts":"2024-09-21T00:42:32.388+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"e66d645bacf82118","local-member-id":"42fe4495fac801fa","added-peer-id":"42fe4495fac801fa","added-peer-peer-urls":["http://127.0.0.1:38297"]} {"level":"info","ts":"2024-09-21T00:42:32.389+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"42fe4495fac801fa","initial-advertise-peer-urls":["http://127.0.0.1:38297"],"listen-peer-urls":["http://127.0.0.1:38297"],"advertise-client-urls":["http://127.0.0.1:37511"],"listen-client-urls":["http://127.0.0.1:37511"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:42:32.389+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:38297"} {"level":"info","ts":"2024-09-21T00:42:32.389+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:38297"} {"level":"info","ts":"2024-09-21T00:42:32.776+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"42fe4495fac801fa is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:42:32.776+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"42fe4495fac801fa became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:42:32.776+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"42fe4495fac801fa received MsgPreVoteResp from 42fe4495fac801fa at term 1"} {"level":"info","ts":"2024-09-21T00:42:32.776+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"42fe4495fac801fa became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:42:32.776+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"42fe4495fac801fa received MsgVoteResp from 42fe4495fac801fa at term 2"} {"level":"info","ts":"2024-09-21T00:42:32.776+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"42fe4495fac801fa became leader at term 2"} {"level":"info","ts":"2024-09-21T00:42:32.776+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 42fe4495fac801fa elected leader 42fe4495fac801fa at term 2"} {"level":"info","ts":"2024-09-21T00:42:32.776+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"42fe4495fac801fa","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:37511]}","request-path":"/0/members/42fe4495fac801fa/attributes","cluster-id":"e66d645bacf82118","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:42:32.776+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:42:32.776+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:42:32.777+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:37511"} {"level":"info","ts":"2024-09-21T00:42:32.777+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"e66d645bacf82118","local-member-id":"42fe4495fac801fa","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:42:32.777+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:42:32.777+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:42:32.784+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2531114362","advertise-peer-urls":["http://127.0.0.1:38297"],"advertise-client-urls":["http://127.0.0.1:37511"]} {"level":"info","ts":"2024-09-21T00:42:32.784+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"42fe4495fac801fa","current-leader-member-id":"42fe4495fac801fa"} {"level":"info","ts":"2024-09-21T00:42:32.786+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:38297"} {"level":"info","ts":"2024-09-21T00:42:32.786+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:38297"} {"level":"info","ts":"2024-09-21T00:42:32.786+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2531114362","advertise-peer-urls":["http://127.0.0.1:38297"],"advertise-client-urls":["http://127.0.0.1:37511"]} {"level":"info","ts":"2024-09-21T00:42:32.787+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:36959"]} {"level":"info","ts":"2024-09-21T00:42:32.787+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:33593"]} {"level":"info","ts":"2024-09-21T00:42:32.787+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":"amd64","max-cpu-set":32,"max-cpu-available":32,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-3853184543","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-3853184543/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:36959"],"listen-peer-urls":["http://127.0.0.1:36959"],"advertise-client-urls":["http://127.0.0.1:33593"],"listen-client-urls":["http://127.0.0.1:33593"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:36959","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:42:32.793+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-3853184543/member/snap/db","took":"6.192502ms"} {"level":"info","ts":"2024-09-21T00:42:32.802+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"cbe0e3ec9272717a","cluster-id":"69bcd26a144ed6f7"} {"level":"info","ts":"2024-09-21T00:42:32.802+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cbe0e3ec9272717a switched to configuration voters=()"} {"level":"info","ts":"2024-09-21T00:42:32.802+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cbe0e3ec9272717a became follower at term 0"} {"level":"info","ts":"2024-09-21T00:42:32.802+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft cbe0e3ec9272717a [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-21T00:42:32.802+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cbe0e3ec9272717a became follower at term 1"} {"level":"info","ts":"2024-09-21T00:42:32.802+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cbe0e3ec9272717a switched to configuration voters=(14690992589691318650)"} {"level":"warn","ts":"2024-09-21T00:42:32.806+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-21T00:42:32.808+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-21T00:42:32.810+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"cbe0e3ec9272717a","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-21T00:42:32.810+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"cbe0e3ec9272717a","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-21T00:42:32.810+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cbe0e3ec9272717a switched to configuration voters=(14690992589691318650)"} {"level":"info","ts":"2024-09-21T00:42:32.810+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"69bcd26a144ed6f7","local-member-id":"cbe0e3ec9272717a","added-peer-id":"cbe0e3ec9272717a","added-peer-peer-urls":["http://127.0.0.1:36959"]} {"level":"info","ts":"2024-09-21T00:42:32.811+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:36959"} {"level":"info","ts":"2024-09-21T00:42:32.811+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"cbe0e3ec9272717a","initial-advertise-peer-urls":["http://127.0.0.1:36959"],"listen-peer-urls":["http://127.0.0.1:36959"],"advertise-client-urls":["http://127.0.0.1:33593"],"listen-client-urls":["http://127.0.0.1:33593"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-21T00:42:32.811+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:36959"} {"level":"info","ts":"2024-09-21T00:42:33.303+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cbe0e3ec9272717a is starting a new election at term 1"} {"level":"info","ts":"2024-09-21T00:42:33.303+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cbe0e3ec9272717a became pre-candidate at term 1"} {"level":"info","ts":"2024-09-21T00:42:33.303+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cbe0e3ec9272717a received MsgPreVoteResp from cbe0e3ec9272717a at term 1"} {"level":"info","ts":"2024-09-21T00:42:33.303+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cbe0e3ec9272717a became candidate at term 2"} {"level":"info","ts":"2024-09-21T00:42:33.303+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cbe0e3ec9272717a received MsgVoteResp from cbe0e3ec9272717a at term 2"} {"level":"info","ts":"2024-09-21T00:42:33.303+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cbe0e3ec9272717a became leader at term 2"} {"level":"info","ts":"2024-09-21T00:42:33.303+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: cbe0e3ec9272717a elected leader cbe0e3ec9272717a at term 2"} {"level":"info","ts":"2024-09-21T00:42:33.303+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:42:33.304+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"69bcd26a144ed6f7","local-member-id":"cbe0e3ec9272717a","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:42:33.304+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-21T00:42:33.304+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"cbe0e3ec9272717a","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:33593]}","request-path":"/0/members/cbe0e3ec9272717a/attributes","cluster-id":"69bcd26a144ed6f7","publish-timeout":"7s"} {"level":"info","ts":"2024-09-21T00:42:33.304+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-21T00:42:33.304+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:33593"} {"level":"info","ts":"2024-09-21T00:42:34.781+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3853184543","advertise-peer-urls":["http://127.0.0.1:36959"],"advertise-client-urls":["http://127.0.0.1:33593"]} {"level":"info","ts":"2024-09-21T00:42:34.781+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"cbe0e3ec9272717a","current-leader-member-id":"cbe0e3ec9272717a"} {"level":"info","ts":"2024-09-21T00:42:34.786+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:36959"} {"level":"info","ts":"2024-09-21T00:42:34.786+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:36959"} {"level":"info","ts":"2024-09-21T00:42:34.786+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3853184543","advertise-peer-urls":["http://127.0.0.1:36959"],"advertise-client-urls":["http://127.0.0.1:33593"]} PASS ok github.com/google/trillian/util/election2/etcd 2.441s github.com/google/trillian/util/election2/testonly PASS ok github.com/google/trillian/util/election2/testonly 1.407s github.com/google/trillian/util/election2/testonly PASS ok github.com/google/trillian/util/election2/testonly 1.407s + 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.tgeEzv + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.2 + DOCDIR=/builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.x86_64/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.x86_64/usr/share/doc/golang-github-google-trillian-devel + cp -pr AUTHORS /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.x86_64/usr/share/doc/golang-github-google-trillian-devel + cp -pr CHANGELOG.md /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.x86_64/usr/share/doc/golang-github-google-trillian-devel + cp -pr CONTRIBUTING.md /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.x86_64/usr/share/doc/golang-github-google-trillian-devel + cp -pr CONTRIBUTORS /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.x86_64/usr/share/doc/golang-github-google-trillian-devel + cp -pr README.md /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.x86_64/usr/share/doc/golang-github-google-trillian-devel + cp -pr docs /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.x86_64/usr/share/doc/golang-github-google-trillian-devel + cp -pr examples /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.x86_64/usr/share/doc/golang-github-google-trillian-devel + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.9ezKQX + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.2 + LICENSEDIR=/builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.x86_64/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.x86_64/usr/share/licenses/golang-github-google-trillian-devel + cp -pr LICENSE /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.oc9.x86_64/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.x86_64 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