Mock Version: 4.1 Mock Version: 4.1 Mock Version: 4.1 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target aarch64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'], chrootPath='/var/lib/mock/dist-ocs23-epol9-build-281293-26949/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=981gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target aarch64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: aarch64 Building for target aarch64 Wrote: /builddir/build/SRPMS/golang-github-google-trillian-1.4.2-1.ocs23.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target aarch64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'], chrootPath='/var/lib/mock/dist-ocs23-epol9-build-281293-26949/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=981gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target aarch64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: aarch64 Building for target aarch64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.pjze0l + 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.5KWePU + 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.ocs23.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target aarch64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'], chrootPath='/var/lib/mock/dist-ocs23-epol9-build-281293-26949/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=981gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target aarch64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: aarch64 Building for target aarch64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.NMx5k1 + 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.PtlqRO + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64 ++ dirname /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64 + cd trillian-1.4.2 + cd /builddir/build/BUILD/trillian-1.4.2/_build/src/github.com/google/trillian + IFS= + gosupfiles= + mapfile -t gosupfilesA + go-rpm-integration install -i github.com/google/trillian -b /builddir/build/BUILD/trillian-1.4.2/_build/bin -s /builddir/build/BUILD/trillian-1.4.2/_build -o golang-github-google-trillian-devel.file-list -O /builddir/build/BUILD/trillian-1.4.2 -V 1.4.2-1.ocs23 -p /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64 -g /usr/share/gocode -r '.*example.*' Installing: github.com/google/trillian + IFS= +++ sort -u +++ realpath -e --relative-base=. docs examples CONTRIBUTING.md AUTHORS CHANGELOG.md CONTRIBUTORS README.md ++ 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= +++ sort -u +++ realpath -e --relative-base=. LICENSE ++ 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.NWpM8E + 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.ocs23 -p /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64 -g /usr/share/gocode -r '.*example.*' -d client/rpcflags -t cmd -d server -d storage/testdb -d util/election -d quota/redis/redistb -d crypto Testing in: /builddir/build/BUILD/trillian-1.4.2/_build/src PATH: /builddir/build/BUILD/trillian-1.4.2/_build/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin GOPATH: /builddir/build/BUILD/trillian-1.4.2/_build:/usr/share/gocode GO111MODULE: off command: go test -buildmode pie -compiler gc -ldflags " -X github.com/google/trillian/version=1.4.2 -extldflags '-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-ld -Wl,--build-id=sha1 '" testing: github.com/google/trillian github.com/google/trillian ? github.com/google/trillian [no test files] github.com/google/trillian/client 2024/09/12 10:22:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:22:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:22:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:22:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/client 0.013s github.com/google/trillian/client 2024/09/12 10:22:34 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:22:34 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:22:34 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:22:34 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/client 0.013s github.com/google/trillian/client/backoff PASS ok github.com/google/trillian/client/backoff 3.567s github.com/google/trillian/client/backoff PASS ok github.com/google/trillian/client/backoff 3.570s github.com/google/trillian/crypto/keys PASS ok github.com/google/trillian/crypto/keys 0.008s github.com/google/trillian/crypto/keys PASS ok github.com/google/trillian/crypto/keys 0.008s github.com/google/trillian/crypto/keys/der PASS ok github.com/google/trillian/crypto/keys/der 0.006s github.com/google/trillian/crypto/keys/der PASS ok github.com/google/trillian/crypto/keys/der 0.006s github.com/google/trillian/crypto/keys/pem PASS ok github.com/google/trillian/crypto/keys/pem 0.013s github.com/google/trillian/crypto/keys/pem PASS ok github.com/google/trillian/crypto/keys/pem 0.013s github.com/google/trillian/crypto/keys/pkcs11 ? github.com/google/trillian/crypto/keys/pkcs11 [no test files] github.com/google/trillian/crypto/keys/testonly ? github.com/google/trillian/crypto/keys/testonly [no test files] github.com/google/trillian/crypto/keyspb ? github.com/google/trillian/crypto/keyspb [no test files] github.com/google/trillian/docs/storage/commit_log/signer PASS ok github.com/google/trillian/docs/storage/commit_log/signer 0.004s github.com/google/trillian/docs/storage/commit_log/signer PASS ok github.com/google/trillian/docs/storage/commit_log/signer 0.005s 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.004s github.com/google/trillian/docs/storage/commit_log/simkafka PASS ok github.com/google/trillian/docs/storage/commit_log/simkafka 0.004s github.com/google/trillian/experimental/batchmap 2024/09/12 10:22:53 Executing pipeline with the direct runner. 2024/09/12 10:22:53 Pipeline: 2024/09/12 10:22:53 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/12 10:22:53 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/12 10:22:53 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[18] done 2024/09/12 10:22:53 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[13] done 2024/09/12 10:22:53 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[7] done 2024/09/12 10:22:53 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[2] done 2024/09/12 10:22:53 Executing pipeline with the direct runner. 2024/09/12 10:22:53 Pipeline: 2024/09/12 10:22:53 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/12 10:22:53 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/12 10:22:53 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[18] done 2024/09/12 10:22:53 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[13] done 2024/09/12 10:22:53 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[7] done 2024/09/12 10:22:53 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[2] done 2024/09/12 10:22:53 Executing pipeline with the direct runner. 2024/09/12 10:22:53 Pipeline: 2024/09/12 10:22:53 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/12 10:22:53 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/12 10:22:53 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[18] done 2024/09/12 10:22:53 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[13] done 2024/09/12 10:22:53 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[7] done 2024/09/12 10:22:53 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[2] done 2024/09/12 10:22:53 Executing pipeline with the direct runner. 2024/09/12 10:22:53 Pipeline: 2024/09/12 10:22:53 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/12 10:22:53 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/12 10:22:53 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[18] done 2024/09/12 10:22:53 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[13] done 2024/09/12 10:22:53 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[7] done 2024/09/12 10:22:53 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[2] done 2024/09/12 10:22:53 Executing pipeline with the direct runner. 2024/09/12 10:22:53 Pipeline: 2024/09/12 10:22:53 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/12 10:22:53 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/12 10:22:53 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[18] done 2024/09/12 10:22:53 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[13] done 2024/09/12 10:22:53 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[7] done 2024/09/12 10:22:53 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[2] done 2024/09/12 10:22:53 Executing pipeline with the direct runner. 2024/09/12 10:22:53 Pipeline: 2024/09/12 10:22:53 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/12 10:22:53 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/12 10:22:53 Executing pipeline with the direct runner. 2024/09/12 10:22:53 Pipeline: 2024/09/12 10:22:53 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/12 10:22:53 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/12 10:22:53 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[18] done 2024/09/12 10:22:53 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[13] done 2024/09/12 10:22:53 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[7] done 2024/09/12 10:22:53 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[2] done 2024/09/12 10:22:53 Executing pipeline with the direct runner. 2024/09/12 10:22:53 Pipeline: 2024/09/12 10:22:53 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/12 10:22:53 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/12 10:22:53 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[18] done 2024/09/12 10:22:53 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[13] done 2024/09/12 10:22:53 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[7] done 2024/09/12 10:22:53 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[2] done 2024/09/12 10:22:53 Executing pipeline with the direct runner. 2024/09/12 10:22:53 Pipeline: 2024/09/12 10:22:53 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/12 10:22:53 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/12 10:22:53 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[18] done 2024/09/12 10:22:53 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[13] done 2024/09/12 10:22:53 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[7] done 2024/09/12 10:22:53 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[2] done 2024/09/12 10:22:53 Executing pipeline with the direct runner. 2024/09/12 10:22:53 Pipeline: 2024/09/12 10:22:53 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/12 10:22:53 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/12 10:22:53 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[18] done 2024/09/12 10:22:53 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[13] done 2024/09/12 10:22:53 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[7] done 2024/09/12 10:22:53 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:53 wait[2] done 2024/09/12 10:22:53 Executing pipeline with the direct runner. 2024/09/12 10:22:53 Pipeline: 2024/09/12 10:22:53 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/12 10:22:53 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/12 10:22:53 Executing pipeline with the direct runner. 2024/09/12 10:22:53 Pipeline: 2024/09/12 10:22:53 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/12 10:22:53 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/12 10:22:54 Executing pipeline with the direct runner. 2024/09/12 10:22:54 Pipeline: 2024/09/12 10:22:54 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/12 10:22:54 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/12 10:22:54 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:54 wait[18] done 2024/09/12 10:22:54 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:54 wait[13] done 2024/09/12 10:22:54 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:54 wait[7] done 2024/09/12 10:22:54 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:54 wait[2] done 2024/09/12 10:22:54 Executing pipeline with the direct runner. 2024/09/12 10:22:54 Pipeline: 2024/09/12 10:22:54 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/12 10:22:54 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/12 10:22:54 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:54 wait[18] done 2024/09/12 10:22:54 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:54 wait[13] done 2024/09/12 10:22:54 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:54 wait[7] done 2024/09/12 10:22:54 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:54 wait[2] done PASS ok github.com/google/trillian/experimental/batchmap 0.481s github.com/google/trillian/experimental/batchmap 2024/09/12 10:22:55 Executing pipeline with the direct runner. 2024/09/12 10:22:55 Pipeline: 2024/09/12 10:22:55 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/12 10:22:55 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/12 10:22:55 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[18] done 2024/09/12 10:22:55 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[13] done 2024/09/12 10:22:55 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[7] done 2024/09/12 10:22:55 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[2] done 2024/09/12 10:22:55 Executing pipeline with the direct runner. 2024/09/12 10:22:55 Pipeline: 2024/09/12 10:22:55 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/12 10:22:55 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/12 10:22:55 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[18] done 2024/09/12 10:22:55 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[13] done 2024/09/12 10:22:55 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[7] done 2024/09/12 10:22:55 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[2] done 2024/09/12 10:22:55 Executing pipeline with the direct runner. 2024/09/12 10:22:55 Pipeline: 2024/09/12 10:22:55 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/12 10:22:55 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/12 10:22:55 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[18] done 2024/09/12 10:22:55 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[13] done 2024/09/12 10:22:55 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[7] done 2024/09/12 10:22:55 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[2] done 2024/09/12 10:22:55 Executing pipeline with the direct runner. 2024/09/12 10:22:55 Pipeline: 2024/09/12 10:22:55 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/12 10:22:55 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/12 10:22:55 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[18] done 2024/09/12 10:22:55 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[13] done 2024/09/12 10:22:55 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[7] done 2024/09/12 10:22:55 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[2] done 2024/09/12 10:22:55 Executing pipeline with the direct runner. 2024/09/12 10:22:55 Pipeline: 2024/09/12 10:22:55 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/12 10:22:55 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/12 10:22:55 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[18] done 2024/09/12 10:22:55 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[13] done 2024/09/12 10:22:55 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[7] done 2024/09/12 10:22:55 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[2] done 2024/09/12 10:22:55 Executing pipeline with the direct runner. 2024/09/12 10:22:55 Pipeline: 2024/09/12 10:22:55 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/12 10:22:55 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/12 10:22:55 Executing pipeline with the direct runner. 2024/09/12 10:22:55 Pipeline: 2024/09/12 10:22:55 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/12 10:22:55 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/12 10:22:55 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[18] done 2024/09/12 10:22:55 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[13] done 2024/09/12 10:22:55 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[7] done 2024/09/12 10:22:55 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[2] done 2024/09/12 10:22:55 Executing pipeline with the direct runner. 2024/09/12 10:22:55 Pipeline: 2024/09/12 10:22:55 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/12 10:22:55 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/12 10:22:55 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[18] done 2024/09/12 10:22:55 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[13] done 2024/09/12 10:22:55 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[7] done 2024/09/12 10:22:55 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[2] done 2024/09/12 10:22:55 Executing pipeline with the direct runner. 2024/09/12 10:22:55 Pipeline: 2024/09/12 10:22:55 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/12 10:22:55 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/12 10:22:55 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[18] done 2024/09/12 10:22:55 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[13] done 2024/09/12 10:22:55 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[7] done 2024/09/12 10:22:55 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[2] done 2024/09/12 10:22:55 Executing pipeline with the direct runner. 2024/09/12 10:22:55 Pipeline: 2024/09/12 10:22:55 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/12 10:22:55 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/12 10:22:55 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[18] done 2024/09/12 10:22:55 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[13] done 2024/09/12 10:22:55 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[7] done 2024/09/12 10:22:55 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[2] done 2024/09/12 10:22:55 Executing pipeline with the direct runner. 2024/09/12 10:22:55 Pipeline: 2024/09/12 10:22:55 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/12 10:22:55 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/12 10:22:55 Executing pipeline with the direct runner. 2024/09/12 10:22:55 Pipeline: 2024/09/12 10:22:55 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/12 10:22:55 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/12 10:22:55 Executing pipeline with the direct runner. 2024/09/12 10:22:55 Pipeline: 2024/09/12 10:22:55 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/12 10:22:55 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/12 10:22:55 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[18] done 2024/09/12 10:22:55 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[13] done 2024/09/12 10:22:55 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[7] done 2024/09/12 10:22:55 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[2] done 2024/09/12 10:22:55 Executing pipeline with the direct runner. 2024/09/12 10:22:55 Pipeline: 2024/09/12 10:22:55 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/12 10:22:55 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/12 10:22:55 wait[18] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[18] done 2024/09/12 10:22:55 wait[13] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[13] done 2024/09/12 10:22:55 wait[7] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[7] done 2024/09/12 10:22:55 wait[2] unblocked w/ 1 [false] 2024/09/12 10:22:55 wait[2] done PASS ok github.com/google/trillian/experimental/batchmap 0.489s github.com/google/trillian/extension ? github.com/google/trillian/extension [no test files] github.com/google/trillian/integration 2024/09/12 10:22:57 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration 11.228s github.com/google/trillian/integration 2024/09/12 10:23:09 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration 11.201s github.com/google/trillian/integration/admin 2024/09/12 10:23:21 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:21 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:21 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:21 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:21 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:21 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:21 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:21 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:21 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/admin 0.012s github.com/google/trillian/integration/admin 2024/09/12 10:23:22 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:22 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:22 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:22 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:22 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:22 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:22 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:22 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:22 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/admin 0.012s github.com/google/trillian/integration/format PASS ok github.com/google/trillian/integration/format 1.277s github.com/google/trillian/integration/format PASS ok github.com/google/trillian/integration/format 1.259s github.com/google/trillian/integration/quota 2024/09/12 10:23:39 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:39 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/quota 0.028s github.com/google/trillian/integration/quota 2024/09/12 10:23:40 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:23:40 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/quota 0.027s github.com/google/trillian/integration/storagetest ? github.com/google/trillian/integration/storagetest [no test files] github.com/google/trillian/log E0912 10:23:42.483184 761421 operation_manager.go:321] failed to perform operation: failed to list active log IDs: getactivelogs E0912 10:23:42.484226 761421 operation_manager.go:428] ExecutePass(145) failed: test error E0912 10:23:45.485491 761421 runner.go:119] 451: election.Await() failed: context canceled E0912 10:23:45.485998 761421 operation_manager.go:428] ExecutePass(145) failed: test error E0912 10:23:45.486255 761421 operation_manager.go:170] 98: failed to get log info: failedGetTree E0912 10:23:45.888662 761421 runner.go:144] 6: no longer the master! E0912 10:23:45.888697 761421 runner.go:119] 6: context canceled E0912 10:23:45.888743 761421 runner.go:144] 5: no longer the master! E0912 10:23:45.888751 761421 runner.go:119] 5: context canceled E0912 10:23:45.888760 761421 runner.go:144] 4: no longer the master! E0912 10:23:45.888780 761421 runner.go:119] 4: context canceled E0912 10:23:45.888793 761421 runner.go:144] 3: no longer the master! E0912 10:23:45.888804 761421 runner.go:119] 3: context canceled E0912 10:23:45.888815 761421 runner.go:144] 1: no longer the master! E0912 10:23:45.888822 761421 runner.go:119] 1: context canceled E0912 10:23:45.888933 761421 runner.go:144] 2: no longer the master! E0912 10:23:45.888955 761421 runner.go:119] 2: context canceled E0912 10:23:46.090228 761421 runner.go:144] 4: no longer the master! E0912 10:23:46.090259 761421 runner.go:119] 4: context canceled E0912 10:23:46.090299 761421 runner.go:119] 3: election.Await() failed: context canceled E0912 10:23:46.090307 761421 runner.go:144] 2: no longer the master! E0912 10:23:46.090327 761421 operation_manager.go:248] failed to create election for 4: injected failure E0912 10:23:46.090336 761421 operation_manager.go:248] failed to create election for 2: injected failure E0912 10:23:46.090334 761421 runner.go:119] 2: context canceled E0912 10:23:46.090314 761421 runner.go:119] 5: election.Await() failed: context canceled E0912 10:23:46.090338 761421 runner.go:144] 6: no longer the master! E0912 10:23:46.090377 761421 runner.go:119] 6: context canceled E0912 10:23:46.090316 761421 runner.go:119] 1: election.Await() failed: context canceled E0912 10:23:46.090368 761421 operation_manager.go:248] failed to create election for 3: injected failure E0912 10:23:46.090417 761421 operation_manager.go:248] failed to create election for 1: injected failure E0912 10:23:46.190684 761421 operation_manager.go:248] failed to create election for 6: injected failure E0912 10:23:46.190708 761421 operation_manager.go:248] failed to create election for 5: injected failure PASS ok github.com/google/trillian/log 3.827s github.com/google/trillian/log E0912 10:23:47.120100 764412 operation_manager.go:321] failed to perform operation: failed to list active log IDs: getactivelogs E0912 10:23:47.121175 764412 operation_manager.go:428] ExecutePass(145) failed: test error E0912 10:23:50.122547 764412 runner.go:119] 451: election.Await() failed: context canceled E0912 10:23:50.122980 764412 operation_manager.go:428] ExecutePass(145) failed: test error E0912 10:23:50.123238 764412 operation_manager.go:170] 98: failed to get log info: failedGetTree E0912 10:23:50.525701 764412 runner.go:144] 2: no longer the master! E0912 10:23:50.525735 764412 runner.go:119] 2: context canceled E0912 10:23:50.525778 764412 runner.go:144] 6: no longer the master! E0912 10:23:50.525792 764412 runner.go:144] 5: no longer the master! E0912 10:23:50.525797 764412 runner.go:119] 6: context canceled E0912 10:23:50.525806 764412 runner.go:144] 3: no longer the master! E0912 10:23:50.525799 764412 runner.go:119] 5: context canceled E0912 10:23:50.525819 764412 runner.go:144] 4: no longer the master! E0912 10:23:50.525814 764412 runner.go:119] 3: context canceled E0912 10:23:50.525825 764412 runner.go:119] 4: context canceled E0912 10:23:50.525783 764412 runner.go:144] 1: no longer the master! E0912 10:23:50.525841 764412 runner.go:119] 1: context canceled E0912 10:23:50.726933 764412 runner.go:119] 5: election.Await() failed: context canceled E0912 10:23:50.726954 764412 runner.go:144] 6: no longer the master! E0912 10:23:50.726966 764412 runner.go:144] 4: no longer the master! E0912 10:23:50.726969 764412 runner.go:119] 6: context canceled E0912 10:23:50.726976 764412 runner.go:119] 4: context canceled E0912 10:23:50.726941 764412 runner.go:119] 1: election.Await() failed: context canceled E0912 10:23:50.726998 764412 runner.go:119] 3: election.Await() failed: context canceled E0912 10:23:50.727018 764412 operation_manager.go:248] failed to create election for 1: injected failure E0912 10:23:50.727028 764412 runner.go:144] 2: no longer the master! E0912 10:23:50.727041 764412 runner.go:119] 2: context canceled E0912 10:23:50.727018 764412 operation_manager.go:248] failed to create election for 2: injected failure E0912 10:23:50.727018 764412 operation_manager.go:248] failed to create election for 4: injected failure E0912 10:23:50.727080 764412 operation_manager.go:248] failed to create election for 3: injected failure E0912 10:23:50.827422 764412 operation_manager.go:248] failed to create election for 6: injected failure E0912 10:23:50.827441 764412 operation_manager.go:248] failed to create election for 5: injected failure PASS ok github.com/google/trillian/log 3.829s github.com/google/trillian/merkle PASS ok github.com/google/trillian/merkle 0.017s github.com/google/trillian/merkle PASS ok github.com/google/trillian/merkle 0.016s github.com/google/trillian/merkle/compact PASS ok github.com/google/trillian/merkle/compact 0.460s github.com/google/trillian/merkle/compact PASS ok github.com/google/trillian/merkle/compact 0.438s github.com/google/trillian/merkle/coniks PASS ok github.com/google/trillian/merkle/coniks 0.008s github.com/google/trillian/merkle/coniks PASS ok github.com/google/trillian/merkle/coniks 0.009s 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 3.534s github.com/google/trillian/merkle/logverifier PASS ok github.com/google/trillian/merkle/logverifier 3.664s github.com/google/trillian/merkle/rfc6962 PASS ok github.com/google/trillian/merkle/rfc6962 0.004s github.com/google/trillian/merkle/rfc6962 PASS ok github.com/google/trillian/merkle/rfc6962 0.004s github.com/google/trillian/merkle/smt PASS ok github.com/google/trillian/merkle/smt 2.917s github.com/google/trillian/merkle/smt PASS ok github.com/google/trillian/merkle/smt 3.017s github.com/google/trillian/merkle/smt/node PASS ok github.com/google/trillian/merkle/smt/node 0.005s github.com/google/trillian/merkle/smt/node PASS ok github.com/google/trillian/merkle/smt/node 0.017s github.com/google/trillian/merkle/testonly ? github.com/google/trillian/merkle/testonly [no test files] github.com/google/trillian/monitoring E0912 10:24:15.942441 784032 inert.go:82] invalid label count 1; want 0 E0912 10:24:15.944057 784032 inert.go:82] invalid label count 1; want 0 E0912 10:24:15.944073 784032 inert.go:106] invalid label count 1; want 0 E0912 10:24:15.944159 784032 inert.go:82] invalid label count 2; want 1 E0912 10:24:15.944167 784032 inert.go:82] invalid label count 2; want 1 E0912 10:24:15.944222 784032 inert.go:106] invalid label count 2; want 1 E0912 10:24:15.944264 784032 inert.go:82] invalid label count 3; want 2 E0912 10:24:15.944271 784032 inert.go:82] invalid label count 3; want 2 E0912 10:24:15.944276 784032 inert.go:106] invalid label count 3; want 2 E0912 10:24:15.944336 784032 inert.go:82] invalid label count 1; want 0 E0912 10:24:15.944343 784032 inert.go:82] invalid label count 1; want 0 E0912 10:24:15.944348 784032 inert.go:82] invalid label count 1; want 0 E0912 10:24:15.944381 784032 inert.go:94] invalid label count 1; want 0 E0912 10:24:15.944388 784032 inert.go:106] invalid label count 1; want 0 E0912 10:24:15.944528 784032 inert.go:82] invalid label count 2; want 1 E0912 10:24:15.944537 784032 inert.go:82] invalid label count 2; want 1 E0912 10:24:15.944542 784032 inert.go:82] invalid label count 2; want 1 E0912 10:24:15.944547 784032 inert.go:94] invalid label count 2; want 1 E0912 10:24:15.944552 784032 inert.go:106] invalid label count 2; want 1 E0912 10:24:15.944582 784032 inert.go:82] invalid label count 3; want 2 E0912 10:24:15.944588 784032 inert.go:82] invalid label count 3; want 2 E0912 10:24:15.944594 784032 inert.go:82] invalid label count 3; want 2 E0912 10:24:15.944598 784032 inert.go:94] invalid label count 3; want 2 E0912 10:24:15.944603 784032 inert.go:106] invalid label count 3; want 2 E0912 10:24:15.944638 784032 inert.go:126] invalid label count 1; want 0 E0912 10:24:15.944644 784032 inert.go:126] invalid label count 1; want 0 E0912 10:24:15.944649 784032 inert.go:139] invalid label count 1; want 0 E0912 10:24:15.944676 784032 inert.go:126] invalid label count 2; want 1 E0912 10:24:15.944682 784032 inert.go:126] invalid label count 2; want 1 E0912 10:24:15.944687 784032 inert.go:139] invalid label count 2; want 1 E0912 10:24:15.944725 784032 inert.go:126] invalid label count 3; want 2 E0912 10:24:15.944731 784032 inert.go:126] invalid label count 3; want 2 E0912 10:24:15.944737 784032 inert.go:139] invalid label count 3; want 2 PASS ok github.com/google/trillian/monitoring 0.017s github.com/google/trillian/monitoring E0912 10:24:17.203391 788193 inert.go:82] invalid label count 1; want 0 E0912 10:24:17.204375 788193 inert.go:82] invalid label count 1; want 0 E0912 10:24:17.204392 788193 inert.go:106] invalid label count 1; want 0 E0912 10:24:17.204455 788193 inert.go:82] invalid label count 2; want 1 E0912 10:24:17.204463 788193 inert.go:82] invalid label count 2; want 1 E0912 10:24:17.204468 788193 inert.go:106] invalid label count 2; want 1 E0912 10:24:17.204518 788193 inert.go:82] invalid label count 3; want 2 E0912 10:24:17.204525 788193 inert.go:82] invalid label count 3; want 2 E0912 10:24:17.204530 788193 inert.go:106] invalid label count 3; want 2 E0912 10:24:17.204602 788193 inert.go:82] invalid label count 1; want 0 E0912 10:24:17.204609 788193 inert.go:82] invalid label count 1; want 0 E0912 10:24:17.204614 788193 inert.go:82] invalid label count 1; want 0 E0912 10:24:17.204644 788193 inert.go:94] invalid label count 1; want 0 E0912 10:24:17.204652 788193 inert.go:106] invalid label count 1; want 0 E0912 10:24:17.204685 788193 inert.go:82] invalid label count 2; want 1 E0912 10:24:17.204691 788193 inert.go:82] invalid label count 2; want 1 E0912 10:24:17.204696 788193 inert.go:82] invalid label count 2; want 1 E0912 10:24:17.204701 788193 inert.go:94] invalid label count 2; want 1 E0912 10:24:17.204706 788193 inert.go:106] invalid label count 2; want 1 E0912 10:24:17.204747 788193 inert.go:82] invalid label count 3; want 2 E0912 10:24:17.204753 788193 inert.go:82] invalid label count 3; want 2 E0912 10:24:17.204759 788193 inert.go:82] invalid label count 3; want 2 E0912 10:24:17.204764 788193 inert.go:94] invalid label count 3; want 2 E0912 10:24:17.204769 788193 inert.go:106] invalid label count 3; want 2 E0912 10:24:17.204824 788193 inert.go:126] invalid label count 1; want 0 E0912 10:24:17.204831 788193 inert.go:126] invalid label count 1; want 0 E0912 10:24:17.204841 788193 inert.go:139] invalid label count 1; want 0 E0912 10:24:17.204894 788193 inert.go:126] invalid label count 2; want 1 E0912 10:24:17.204901 788193 inert.go:126] invalid label count 2; want 1 E0912 10:24:17.204906 788193 inert.go:139] invalid label count 2; want 1 E0912 10:24:17.204940 788193 inert.go:126] invalid label count 3; want 2 E0912 10:24:17.204946 788193 inert.go:126] invalid label count 3; want 2 E0912 10:24:17.204951 788193 inert.go:139] invalid label count 3; want 2 PASS ok github.com/google/trillian/monitoring 0.017s github.com/google/trillian/monitoring/opencensus ? github.com/google/trillian/monitoring/opencensus [no test files] github.com/google/trillian/monitoring/prometheus E0912 10:24:26.302661 806476 metrics.go:140] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:26.303107 806476 metrics.go:126] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:26.303126 806476 metrics.go:154] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:26.303220 806476 metrics.go:140] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:26.303230 806476 metrics.go:126] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:26.303238 806476 metrics.go:154] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:26.303303 806476 metrics.go:140] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:26.303312 806476 metrics.go:126] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:26.303319 806476 metrics.go:154] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:26.303408 806476 metrics.go:214] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:26.303416 806476 metrics.go:186] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:26.303426 806476 metrics.go:200] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:26.303432 806476 metrics.go:228] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:26.303439 806476 metrics.go:242] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:26.303502 806476 metrics.go:214] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:26.303510 806476 metrics.go:186] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:26.303516 806476 metrics.go:200] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:26.303522 806476 metrics.go:228] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:26.303529 806476 metrics.go:242] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:26.303599 806476 metrics.go:214] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:26.303608 806476 metrics.go:186] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:26.303614 806476 metrics.go:200] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:26.303621 806476 metrics.go:228] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:26.303628 806476 metrics.go:242] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:26.303923 806476 metrics.go:274] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:26.303957 806476 metrics.go:274] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:26.303966 806476 metrics.go:288] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:26.304264 806476 metrics.go:274] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:26.304274 806476 metrics.go:274] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:26.304281 806476 metrics.go:288] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:26.304697 806476 metrics.go:274] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:26.304708 806476 metrics.go:274] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:26.304716 806476 metrics.go:288] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) PASS ok github.com/google/trillian/monitoring/prometheus 0.012s github.com/google/trillian/monitoring/prometheus E0912 10:24:27.142987 806635 metrics.go:140] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:27.143532 806635 metrics.go:126] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:27.143551 806635 metrics.go:154] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:27.143638 806635 metrics.go:140] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:27.143648 806635 metrics.go:126] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:27.143655 806635 metrics.go:154] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:27.143716 806635 metrics.go:140] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:27.143726 806635 metrics.go:126] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:27.143733 806635 metrics.go:154] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:27.143829 806635 metrics.go:214] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:27.143839 806635 metrics.go:186] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:27.143850 806635 metrics.go:200] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:27.143856 806635 metrics.go:228] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:27.143863 806635 metrics.go:242] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:27.143957 806635 metrics.go:214] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:27.143966 806635 metrics.go:186] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:27.143972 806635 metrics.go:200] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:27.143978 806635 metrics.go:228] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:27.143985 806635 metrics.go:242] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:27.144056 806635 metrics.go:214] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:27.144064 806635 metrics.go:186] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:27.144071 806635 metrics.go:200] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:27.144077 806635 metrics.go:228] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:27.144085 806635 metrics.go:242] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:27.144326 806635 metrics.go:274] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:27.144342 806635 metrics.go:274] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:27.144351 806635 metrics.go:288] got 1 ([bogus]) values for 0 labels ([]) E0912 10:24:27.144632 806635 metrics.go:274] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:27.144641 806635 metrics.go:274] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:27.144649 806635 metrics.go:288] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0912 10:24:27.145070 806635 metrics.go:274] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:27.145081 806635 metrics.go:274] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0912 10:24:27.145089 806635 metrics.go:288] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) PASS ok github.com/google/trillian/monitoring/prometheus 0.012s 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.008s github.com/google/trillian/quota PASS ok github.com/google/trillian/quota 0.008s github.com/google/trillian/quota/cacheqm PASS ok github.com/google/trillian/quota/cacheqm 0.014s github.com/google/trillian/quota/cacheqm PASS ok github.com/google/trillian/quota/cacheqm 0.013s 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-12T10:24:33.104+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:39859"]} {"level":"info","ts":"2024-09-12T10:24:33.104+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:45455"]} {"level":"info","ts":"2024-09-12T10:24:33.105+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-2009195824","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-2009195824/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:39859"],"listen-peer-urls":["http://127.0.0.1:39859"],"advertise-client-urls":["http://127.0.0.1:45455"],"listen-client-urls":["http://127.0.0.1:45455"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:39859","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-12T10:24:33.111+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-2009195824/member/snap/db","took":"5.063643ms"} {"level":"info","ts":"2024-09-12T10:24:33.118+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"90d1688d96e763f","cluster-id":"77887506a92f6036"} {"level":"info","ts":"2024-09-12T10:24:33.118+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"90d1688d96e763f switched to configuration voters=()"} {"level":"info","ts":"2024-09-12T10:24:33.118+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"90d1688d96e763f became follower at term 0"} {"level":"info","ts":"2024-09-12T10:24:33.118+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 90d1688d96e763f [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-12T10:24:33.118+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"90d1688d96e763f became follower at term 1"} {"level":"info","ts":"2024-09-12T10:24:33.118+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"90d1688d96e763f switched to configuration voters=(652202298057848383)"} {"level":"warn","ts":"2024-09-12T10:24:33.123+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-12T10:24:33.126+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-12T10:24:33.128+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-12T10:24:33.130+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"90d1688d96e763f","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-12T10:24:33.130+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"90d1688d96e763f","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-12T10:24:33.131+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"90d1688d96e763f switched to configuration voters=(652202298057848383)"} {"level":"info","ts":"2024-09-12T10:24:33.131+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"77887506a92f6036","local-member-id":"90d1688d96e763f","added-peer-id":"90d1688d96e763f","added-peer-peer-urls":["http://127.0.0.1:39859"]} {"level":"info","ts":"2024-09-12T10:24:33.132+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"90d1688d96e763f","initial-advertise-peer-urls":["http://127.0.0.1:39859"],"listen-peer-urls":["http://127.0.0.1:39859"],"advertise-client-urls":["http://127.0.0.1:45455"],"listen-client-urls":["http://127.0.0.1:45455"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-12T10:24:33.133+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:39859"} {"level":"info","ts":"2024-09-12T10:24:33.133+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:39859"} {"level":"info","ts":"2024-09-12T10:24:33.819+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"90d1688d96e763f is starting a new election at term 1"} {"level":"info","ts":"2024-09-12T10:24:33.819+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"90d1688d96e763f became pre-candidate at term 1"} {"level":"info","ts":"2024-09-12T10:24:33.819+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"90d1688d96e763f received MsgPreVoteResp from 90d1688d96e763f at term 1"} {"level":"info","ts":"2024-09-12T10:24:33.819+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"90d1688d96e763f became candidate at term 2"} {"level":"info","ts":"2024-09-12T10:24:33.819+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"90d1688d96e763f received MsgVoteResp from 90d1688d96e763f at term 2"} {"level":"info","ts":"2024-09-12T10:24:33.819+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"90d1688d96e763f became leader at term 2"} {"level":"info","ts":"2024-09-12T10:24:33.819+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 90d1688d96e763f elected leader 90d1688d96e763f at term 2"} {"level":"info","ts":"2024-09-12T10:24:33.819+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:24:33.821+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"77887506a92f6036","local-member-id":"90d1688d96e763f","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:24:33.821+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:24:33.821+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:24:33.821+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"90d1688d96e763f","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:45455]}","request-path":"/0/members/90d1688d96e763f/attributes","cluster-id":"77887506a92f6036","publish-timeout":"7s"} {"level":"info","ts":"2024-09-12T10:24:33.822+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-12T10:24:33.823+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:45455"} PASS {"level":"info","ts":"2024-09-12T10:24:33.897+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2009195824","advertise-peer-urls":["http://127.0.0.1:39859"],"advertise-client-urls":["http://127.0.0.1:45455"]} {"level":"info","ts":"2024-09-12T10:24:33.897+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"90d1688d96e763f","current-leader-member-id":"90d1688d96e763f"} {"level":"info","ts":"2024-09-12T10:24:33.900+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:39859"} {"level":"info","ts":"2024-09-12T10:24:33.900+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:39859"} {"level":"info","ts":"2024-09-12T10:24:33.900+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2009195824","advertise-peer-urls":["http://127.0.0.1:39859"],"advertise-client-urls":["http://127.0.0.1:45455"]} ok github.com/google/trillian/quota/etcd/etcdqm 0.824s github.com/google/trillian/quota/etcd/etcdqm {"level":"info","ts":"2024-09-12T10:24:35.515+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:33233"]} {"level":"info","ts":"2024-09-12T10:24:35.515+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:42613"]} {"level":"info","ts":"2024-09-12T10:24:35.515+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-2399759032","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-2399759032/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:33233"],"listen-peer-urls":["http://127.0.0.1:33233"],"advertise-client-urls":["http://127.0.0.1:42613"],"listen-client-urls":["http://127.0.0.1:42613"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:33233","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-12T10:24:35.528+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-2399759032/member/snap/db","took":"12.317269ms"} {"level":"info","ts":"2024-09-12T10:24:35.534+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"dec380e30cafa818","cluster-id":"1b0f100685401a7"} {"level":"info","ts":"2024-09-12T10:24:35.534+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"dec380e30cafa818 switched to configuration voters=()"} {"level":"info","ts":"2024-09-12T10:24:35.534+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"dec380e30cafa818 became follower at term 0"} {"level":"info","ts":"2024-09-12T10:24:35.534+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft dec380e30cafa818 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-12T10:24:35.534+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"dec380e30cafa818 became follower at term 1"} {"level":"info","ts":"2024-09-12T10:24:35.534+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"dec380e30cafa818 switched to configuration voters=(16051815209537349656)"} {"level":"warn","ts":"2024-09-12T10:24:35.539+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-12T10:24:35.541+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-12T10:24:35.543+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-12T10:24:35.545+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"dec380e30cafa818","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-12T10:24:35.545+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"dec380e30cafa818","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-12T10:24:35.546+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"dec380e30cafa818 switched to configuration voters=(16051815209537349656)"} {"level":"info","ts":"2024-09-12T10:24:35.547+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"1b0f100685401a7","local-member-id":"dec380e30cafa818","added-peer-id":"dec380e30cafa818","added-peer-peer-urls":["http://127.0.0.1:33233"]} {"level":"info","ts":"2024-09-12T10:24:35.548+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"dec380e30cafa818","initial-advertise-peer-urls":["http://127.0.0.1:33233"],"listen-peer-urls":["http://127.0.0.1:33233"],"advertise-client-urls":["http://127.0.0.1:42613"],"listen-client-urls":["http://127.0.0.1:42613"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-12T10:24:35.548+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:33233"} {"level":"info","ts":"2024-09-12T10:24:35.549+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:33233"} {"level":"info","ts":"2024-09-12T10:24:35.936+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"dec380e30cafa818 is starting a new election at term 1"} {"level":"info","ts":"2024-09-12T10:24:35.936+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"dec380e30cafa818 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-12T10:24:35.936+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"dec380e30cafa818 received MsgPreVoteResp from dec380e30cafa818 at term 1"} {"level":"info","ts":"2024-09-12T10:24:35.936+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"dec380e30cafa818 became candidate at term 2"} {"level":"info","ts":"2024-09-12T10:24:35.936+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"dec380e30cafa818 received MsgVoteResp from dec380e30cafa818 at term 2"} {"level":"info","ts":"2024-09-12T10:24:35.936+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"dec380e30cafa818 became leader at term 2"} {"level":"info","ts":"2024-09-12T10:24:35.936+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: dec380e30cafa818 elected leader dec380e30cafa818 at term 2"} {"level":"info","ts":"2024-09-12T10:24:35.938+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"dec380e30cafa818","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:42613]}","request-path":"/0/members/dec380e30cafa818/attributes","cluster-id":"1b0f100685401a7","publish-timeout":"7s"} {"level":"info","ts":"2024-09-12T10:24:35.939+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:24:35.939+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-12T10:24:35.939+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"1b0f100685401a7","local-member-id":"dec380e30cafa818","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:24:35.939+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:24:35.939+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:24:35.940+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:42613"} PASS {"level":"info","ts":"2024-09-12T10:24:36.055+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2399759032","advertise-peer-urls":["http://127.0.0.1:33233"],"advertise-client-urls":["http://127.0.0.1:42613"]} {"level":"info","ts":"2024-09-12T10:24:36.056+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"dec380e30cafa818","current-leader-member-id":"dec380e30cafa818"} {"level":"info","ts":"2024-09-12T10:24:36.068+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:33233"} {"level":"info","ts":"2024-09-12T10:24:36.068+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:33233"} {"level":"info","ts":"2024-09-12T10:24:36.068+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2399759032","advertise-peer-urls":["http://127.0.0.1:33233"],"advertise-client-urls":["http://127.0.0.1:42613"]} ok github.com/google/trillian/quota/etcd/etcdqm 0.586s github.com/google/trillian/quota/etcd/quotaapi {"level":"info","ts":"2024-09-12T10:24:38.369+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:46769"]} {"level":"info","ts":"2024-09-12T10:24:38.369+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:39413"]} {"level":"info","ts":"2024-09-12T10:24:38.369+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-2499178282","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-2499178282/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:46769"],"listen-peer-urls":["http://127.0.0.1:46769"],"advertise-client-urls":["http://127.0.0.1:39413"],"listen-client-urls":["http://127.0.0.1:39413"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:46769","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-12T10:24:38.440+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-2499178282/member/snap/db","took":"70.443644ms"} {"level":"info","ts":"2024-09-12T10:24:38.477+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"431e84912ebb1db0","cluster-id":"ecf94514c174b16a"} {"level":"info","ts":"2024-09-12T10:24:38.477+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"431e84912ebb1db0 switched to configuration voters=()"} {"level":"info","ts":"2024-09-12T10:24:38.477+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"431e84912ebb1db0 became follower at term 0"} {"level":"info","ts":"2024-09-12T10:24:38.477+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 431e84912ebb1db0 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-12T10:24:38.477+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"431e84912ebb1db0 became follower at term 1"} {"level":"info","ts":"2024-09-12T10:24:38.477+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"431e84912ebb1db0 switched to configuration voters=(4836448808931630512)"} {"level":"warn","ts":"2024-09-12T10:24:38.490+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-12T10:24:38.492+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-12T10:24:38.493+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-12T10:24:38.496+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"431e84912ebb1db0","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-12T10:24:38.497+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"431e84912ebb1db0","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-12T10:24:38.498+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"431e84912ebb1db0 switched to configuration voters=(4836448808931630512)"} {"level":"info","ts":"2024-09-12T10:24:38.499+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"ecf94514c174b16a","local-member-id":"431e84912ebb1db0","added-peer-id":"431e84912ebb1db0","added-peer-peer-urls":["http://127.0.0.1:46769"]} {"level":"info","ts":"2024-09-12T10:24:38.503+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"431e84912ebb1db0","initial-advertise-peer-urls":["http://127.0.0.1:46769"],"listen-peer-urls":["http://127.0.0.1:46769"],"advertise-client-urls":["http://127.0.0.1:39413"],"listen-client-urls":["http://127.0.0.1:39413"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-12T10:24:38.503+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:46769"} {"level":"info","ts":"2024-09-12T10:24:38.503+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:46769"} {"level":"info","ts":"2024-09-12T10:24:38.578+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"431e84912ebb1db0 is starting a new election at term 1"} {"level":"info","ts":"2024-09-12T10:24:38.578+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"431e84912ebb1db0 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-12T10:24:38.578+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"431e84912ebb1db0 received MsgPreVoteResp from 431e84912ebb1db0 at term 1"} {"level":"info","ts":"2024-09-12T10:24:38.578+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"431e84912ebb1db0 became candidate at term 2"} {"level":"info","ts":"2024-09-12T10:24:38.578+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"431e84912ebb1db0 received MsgVoteResp from 431e84912ebb1db0 at term 2"} {"level":"info","ts":"2024-09-12T10:24:38.578+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"431e84912ebb1db0 became leader at term 2"} {"level":"info","ts":"2024-09-12T10:24:38.578+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 431e84912ebb1db0 elected leader 431e84912ebb1db0 at term 2"} {"level":"info","ts":"2024-09-12T10:24:38.578+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:24:38.581+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"ecf94514c174b16a","local-member-id":"431e84912ebb1db0","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:24:38.581+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:24:38.581+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:24:38.581+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"431e84912ebb1db0","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:39413]}","request-path":"/0/members/431e84912ebb1db0/attributes","cluster-id":"ecf94514c174b16a","publish-timeout":"7s"} {"level":"info","ts":"2024-09-12T10:24:38.582+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-12T10:24:38.585+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:39413"} PASS {"level":"info","ts":"2024-09-12T10:24:59.244+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2499178282","advertise-peer-urls":["http://127.0.0.1:46769"],"advertise-client-urls":["http://127.0.0.1:39413"]} {"level":"info","ts":"2024-09-12T10:24:59.245+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"431e84912ebb1db0","current-leader-member-id":"431e84912ebb1db0"} {"level":"info","ts":"2024-09-12T10:24:59.251+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:46769"} {"level":"info","ts":"2024-09-12T10:24:59.252+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:46769"} {"level":"info","ts":"2024-09-12T10:24:59.252+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2499178282","advertise-peer-urls":["http://127.0.0.1:46769"],"advertise-client-urls":["http://127.0.0.1:39413"]} ok github.com/google/trillian/quota/etcd/quotaapi 20.929s github.com/google/trillian/quota/etcd/quotaapi {"level":"info","ts":"2024-09-12T10:25:01.610+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:44101"]} {"level":"info","ts":"2024-09-12T10:25:01.611+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:35611"]} {"level":"info","ts":"2024-09-12T10:25:01.611+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-2888784964","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-2888784964/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:44101"],"listen-peer-urls":["http://127.0.0.1:44101"],"advertise-client-urls":["http://127.0.0.1:35611"],"listen-client-urls":["http://127.0.0.1:35611"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:44101","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-12T10:25:01.629+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-2888784964/member/snap/db","took":"5.666777ms"} {"level":"info","ts":"2024-09-12T10:25:01.637+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"fe45a54575bff202","cluster-id":"20f4cb8194c05dac"} {"level":"info","ts":"2024-09-12T10:25:01.638+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"fe45a54575bff202 switched to configuration voters=()"} {"level":"info","ts":"2024-09-12T10:25:01.638+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"fe45a54575bff202 became follower at term 0"} {"level":"info","ts":"2024-09-12T10:25:01.638+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft fe45a54575bff202 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-12T10:25:01.638+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"fe45a54575bff202 became follower at term 1"} {"level":"info","ts":"2024-09-12T10:25:01.638+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"fe45a54575bff202 switched to configuration voters=(18322232376773571074)"} {"level":"warn","ts":"2024-09-12T10:25:01.649+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-12T10:25:01.662+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-12T10:25:01.664+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-12T10:25:01.666+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"fe45a54575bff202","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-12T10:25:01.667+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"fe45a54575bff202","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-12T10:25:01.667+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"fe45a54575bff202 switched to configuration voters=(18322232376773571074)"} {"level":"info","ts":"2024-09-12T10:25:01.667+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"20f4cb8194c05dac","local-member-id":"fe45a54575bff202","added-peer-id":"fe45a54575bff202","added-peer-peer-urls":["http://127.0.0.1:44101"]} {"level":"info","ts":"2024-09-12T10:25:01.669+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"fe45a54575bff202","initial-advertise-peer-urls":["http://127.0.0.1:44101"],"listen-peer-urls":["http://127.0.0.1:44101"],"advertise-client-urls":["http://127.0.0.1:35611"],"listen-client-urls":["http://127.0.0.1:35611"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-12T10:25:01.669+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:44101"} {"level":"info","ts":"2024-09-12T10:25:01.669+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:44101"} {"level":"info","ts":"2024-09-12T10:25:02.440+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"fe45a54575bff202 is starting a new election at term 1"} {"level":"info","ts":"2024-09-12T10:25:02.440+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"fe45a54575bff202 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-12T10:25:02.440+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"fe45a54575bff202 received MsgPreVoteResp from fe45a54575bff202 at term 1"} {"level":"info","ts":"2024-09-12T10:25:02.440+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"fe45a54575bff202 became candidate at term 2"} {"level":"info","ts":"2024-09-12T10:25:02.440+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"fe45a54575bff202 received MsgVoteResp from fe45a54575bff202 at term 2"} {"level":"info","ts":"2024-09-12T10:25:02.440+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"fe45a54575bff202 became leader at term 2"} {"level":"info","ts":"2024-09-12T10:25:02.441+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: fe45a54575bff202 elected leader fe45a54575bff202 at term 2"} {"level":"info","ts":"2024-09-12T10:25:02.441+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"fe45a54575bff202","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:35611]}","request-path":"/0/members/fe45a54575bff202/attributes","cluster-id":"20f4cb8194c05dac","publish-timeout":"7s"} {"level":"info","ts":"2024-09-12T10:25:02.441+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:25:02.441+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-12T10:25:02.443+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:35611"} {"level":"info","ts":"2024-09-12T10:25:02.444+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"20f4cb8194c05dac","local-member-id":"fe45a54575bff202","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:25:02.444+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:25:02.445+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} PASS {"level":"info","ts":"2024-09-12T10:25:19.221+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2888784964","advertise-peer-urls":["http://127.0.0.1:44101"],"advertise-client-urls":["http://127.0.0.1:35611"]} {"level":"info","ts":"2024-09-12T10:25:19.221+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"fe45a54575bff202","current-leader-member-id":"fe45a54575bff202"} {"level":"info","ts":"2024-09-12T10:25:19.224+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:44101"} {"level":"info","ts":"2024-09-12T10:25:19.224+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:44101"} {"level":"info","ts":"2024-09-12T10:25:19.224+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2888784964","advertise-peer-urls":["http://127.0.0.1:44101"],"advertise-client-urls":["http://127.0.0.1:35611"]} ok github.com/google/trillian/quota/etcd/quotaapi 17.663s 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-12T10:25:22.094+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:44021"]} {"level":"info","ts":"2024-09-12T10:25:22.094+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:35545"]} {"level":"info","ts":"2024-09-12T10:25:22.094+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-3170248012","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-3170248012/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:44021"],"listen-peer-urls":["http://127.0.0.1:44021"],"advertise-client-urls":["http://127.0.0.1:35545"],"listen-client-urls":["http://127.0.0.1:35545"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:44021","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-12T10:25:22.514+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-3170248012/member/snap/db","took":"419.65957ms"} {"level":"info","ts":"2024-09-12T10:25:22.905+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"2e131532282c31bf","cluster-id":"b10d895a38cf55ca"} {"level":"info","ts":"2024-09-12T10:25:22.905+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"2e131532282c31bf switched to configuration voters=()"} {"level":"info","ts":"2024-09-12T10:25:22.905+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"2e131532282c31bf became follower at term 0"} {"level":"info","ts":"2024-09-12T10:25:22.905+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 2e131532282c31bf [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-12T10:25:22.905+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"2e131532282c31bf became follower at term 1"} {"level":"info","ts":"2024-09-12T10:25:22.905+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"2e131532282c31bf switched to configuration voters=(3320020655468720575)"} {"level":"warn","ts":"2024-09-12T10:25:23.038+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-12T10:25:23.111+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-12T10:25:23.209+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-12T10:25:23.292+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"2e131532282c31bf","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-12T10:25:23.292+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"2e131532282c31bf","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-12T10:25:23.292+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"2e131532282c31bf switched to configuration voters=(3320020655468720575)"} {"level":"info","ts":"2024-09-12T10:25:23.293+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"b10d895a38cf55ca","local-member-id":"2e131532282c31bf","added-peer-id":"2e131532282c31bf","added-peer-peer-urls":["http://127.0.0.1:44021"]} {"level":"info","ts":"2024-09-12T10:25:23.294+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"2e131532282c31bf","initial-advertise-peer-urls":["http://127.0.0.1:44021"],"listen-peer-urls":["http://127.0.0.1:44021"],"advertise-client-urls":["http://127.0.0.1:35545"],"listen-client-urls":["http://127.0.0.1:35545"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-12T10:25:23.294+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:44021"} {"level":"info","ts":"2024-09-12T10:25:23.294+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:44021"} {"level":"info","ts":"2024-09-12T10:25:23.706+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"2e131532282c31bf is starting a new election at term 1"} {"level":"info","ts":"2024-09-12T10:25:23.706+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"2e131532282c31bf became pre-candidate at term 1"} {"level":"info","ts":"2024-09-12T10:25:23.706+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"2e131532282c31bf received MsgPreVoteResp from 2e131532282c31bf at term 1"} {"level":"info","ts":"2024-09-12T10:25:23.706+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"2e131532282c31bf became candidate at term 2"} {"level":"info","ts":"2024-09-12T10:25:23.706+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"2e131532282c31bf received MsgVoteResp from 2e131532282c31bf at term 2"} {"level":"info","ts":"2024-09-12T10:25:23.706+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"2e131532282c31bf became leader at term 2"} {"level":"info","ts":"2024-09-12T10:25:23.706+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 2e131532282c31bf elected leader 2e131532282c31bf at term 2"} {"level":"info","ts":"2024-09-12T10:25:23.706+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:25:23.706+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"2e131532282c31bf","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:35545]}","request-path":"/0/members/2e131532282c31bf/attributes","cluster-id":"b10d895a38cf55ca","publish-timeout":"7s"} {"level":"info","ts":"2024-09-12T10:25:23.706+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-12T10:25:23.708+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:35545"} {"level":"info","ts":"2024-09-12T10:25:23.740+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"b10d895a38cf55ca","local-member-id":"2e131532282c31bf","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:25:23.740+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:25:23.740+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"warn","ts":"2024-09-12T10:25:24.223+0800","caller":"etcdserver/util.go:166","msg":"apply request took too long","took":"265.80439ms","expected-duration":"100ms","prefix":"read-only txn ","request":"compare:<> success: > failure:<>","response":"responses: size:40"} {"level":"info","ts":"2024-09-12T10:25:24.223+0800","caller":"traceutil/trace.go:171","msg":"trace[956179351] transaction","detail":"{read_only:true; number_of_response:1; response_revision:7; }","duration":"340.680081ms","start":"2024-09-12T10:25:23.882+0800","end":"2024-09-12T10:25:24.223+0800","steps":["trace[956179351] 'agreement among raft nodes before linearized reading' (duration: 74.285298ms)","trace[956179351] 'compare' (duration: 265.698889ms)"],"step_count":2} {"level":"warn","ts":"2024-09-12T10:25:24.223+0800","caller":"v3rpc/interceptor.go:197","msg":"request stats","start time":"2024-09-12T10:25:23.882+0800","time spent":"340.753972ms","remote":"127.0.0.1:50146","response type":"/etcdserverpb.KV/Txn","request count":1,"request size":18,"response count":0,"response size":63,"request content":"compare:<> success: > failure:<>"} {"level":"info","ts":"2024-09-12T10:25:24.431+0800","caller":"traceutil/trace.go:171","msg":"trace[1651866477] transaction","detail":"{read_only:true; number_of_response:1; response_revision:8; }","duration":"160.921105ms","start":"2024-09-12T10:25:24.270+0800","end":"2024-09-12T10:25:24.431+0800","steps":["trace[1651866477] 'agreement among raft nodes before linearized reading' (duration: 72.279225ms)","trace[1651866477] 'compare' (duration: 88.55819ms)"],"step_count":2} {"level":"info","ts":"2024-09-12T10:25:24.707+0800","caller":"traceutil/trace.go:171","msg":"trace[839923326] linearizableReadLoop","detail":"{readStateIndex:17; appliedIndex:17; }","duration":"183.094167ms","start":"2024-09-12T10:25:24.524+0800","end":"2024-09-12T10:25:24.707+0800","steps":["trace[839923326] 'read index received' (duration: 183.079977ms)","trace[839923326] 'applied index is now lower than readState.Index' (duration: 6.31µs)"],"step_count":2} {"level":"info","ts":"2024-09-12T10:25:24.757+0800","caller":"traceutil/trace.go:171","msg":"trace[577090652] transaction","detail":"{read_only:true; number_of_response:1; response_revision:14; }","duration":"232.382415ms","start":"2024-09-12T10:25:24.524+0800","end":"2024-09-12T10:25:24.757+0800","steps":["trace[577090652] 'agreement among raft nodes before linearized reading' (duration: 183.188559ms)","trace[577090652] 'compare' (duration: 49.097276ms)"],"step_count":2} {"level":"warn","ts":"2024-09-12T10:25:25.078+0800","caller":"etcdserver/util.go:166","msg":"apply request took too long","took":"210.163212ms","expected-duration":"100ms","prefix":"read-only txn ","request":"compare:<> success: > failure:<>","response":"responses: size:167"} {"level":"info","ts":"2024-09-12T10:25:25.078+0800","caller":"traceutil/trace.go:171","msg":"trace[2107411165] transaction","detail":"{read_only:true; number_of_response:1; response_revision:16; }","duration":"282.654478ms","start":"2024-09-12T10:25:24.795+0800","end":"2024-09-12T10:25:25.078+0800","steps":["trace[2107411165] 'agreement among raft nodes before linearized reading' (duration: 72.387435ms)","trace[2107411165] 'compare' (duration: 210.046291ms)"],"step_count":2} {"level":"info","ts":"2024-09-12T10:25:25.345+0800","caller":"traceutil/trace.go:171","msg":"trace[526486131] linearizableReadLoop","detail":"{readStateIndex:23; appliedIndex:23; }","duration":"171.459552ms","start":"2024-09-12T10:25:25.173+0800","end":"2024-09-12T10:25:25.345+0800","steps":["trace[526486131] 'read index received' (duration: 171.447852ms)","trace[526486131] 'applied index is now lower than readState.Index' (duration: 10.23µs)"],"step_count":2} {"level":"info","ts":"2024-09-12T10:25:25.370+0800","caller":"traceutil/trace.go:171","msg":"trace[1504854661] transaction","detail":"{read_only:true; number_of_response:1; response_revision:20; }","duration":"197.286189ms","start":"2024-09-12T10:25:25.173+0800","end":"2024-09-12T10:25:25.370+0800","steps":["trace[1504854661] 'agreement among raft nodes before linearized reading' (duration: 171.546003ms)","trace[1504854661] 'compare' (duration: 25.647385ms)"],"step_count":2} {"level":"warn","ts":"2024-09-12T10:25:25.911+0800","caller":"etcdserver/util.go:166","msg":"apply request took too long","took":"434.194563ms","expected-duration":"100ms","prefix":"read-only txn ","request":"compare:<> success: > failure:<>","response":"responses: size:167"} {"level":"info","ts":"2024-09-12T10:25:25.911+0800","caller":"traceutil/trace.go:171","msg":"trace[1346408973] transaction","detail":"{read_only:true; number_of_response:1; response_revision:22; }","duration":"527.418002ms","start":"2024-09-12T10:25:25.383+0800","end":"2024-09-12T10:25:25.911+0800","steps":["trace[1346408973] 'agreement among raft nodes before linearized reading' (duration: 93.120459ms)","trace[1346408973] 'compare' (duration: 434.078632ms)"],"step_count":2} {"level":"warn","ts":"2024-09-12T10:25:25.911+0800","caller":"v3rpc/interceptor.go:197","msg":"request stats","start time":"2024-09-12T10:25:25.383+0800","time spent":"527.482163ms","remote":"127.0.0.1:50146","response type":"/etcdserverpb.KV/Txn","request count":1,"request size":18,"response count":0,"response size":190,"request content":"compare:<> success: > failure:<>"} {"level":"info","ts":"2024-09-12T10:25:26.256+0800","caller":"traceutil/trace.go:171","msg":"trace[1858762569] linearizableReadLoop","detail":"{readStateIndex:32; appliedIndex:32; }","duration":"106.509185ms","start":"2024-09-12T10:25:26.150+0800","end":"2024-09-12T10:25:26.256+0800","steps":["trace[1858762569] 'read index received' (duration: 106.502495ms)","trace[1858762569] 'applied index is now lower than readState.Index' (duration: 5.09µs)"],"step_count":2} {"level":"info","ts":"2024-09-12T10:25:26.272+0800","caller":"traceutil/trace.go:171","msg":"trace[620480036] transaction","detail":"{read_only:true; number_of_response:1; response_revision:29; }","duration":"122.613058ms","start":"2024-09-12T10:25:26.150+0800","end":"2024-09-12T10:25:26.272+0800","steps":["trace[620480036] 'agreement among raft nodes before linearized reading' (duration: 106.610015ms)","trace[620480036] 'compare' (duration: 15.906543ms)"],"step_count":2} PASS {"level":"info","ts":"2024-09-12T10:25:26.590+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3170248012","advertise-peer-urls":["http://127.0.0.1:44021"],"advertise-client-urls":["http://127.0.0.1:35545"]} {"level":"info","ts":"2024-09-12T10:25:26.591+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"2e131532282c31bf","current-leader-member-id":"2e131532282c31bf"} {"level":"info","ts":"2024-09-12T10:25:26.604+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:44021"} {"level":"info","ts":"2024-09-12T10:25:26.604+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:44021"} {"level":"info","ts":"2024-09-12T10:25:26.604+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3170248012","advertise-peer-urls":["http://127.0.0.1:44021"],"advertise-client-urls":["http://127.0.0.1:35545"]} ok github.com/google/trillian/quota/etcd/storage 4.547s github.com/google/trillian/quota/etcd/storage {"level":"info","ts":"2024-09-12T10:25:28.421+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:39575"]} {"level":"info","ts":"2024-09-12T10:25:28.422+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:33153"]} {"level":"info","ts":"2024-09-12T10:25:28.422+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-557546651","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-557546651/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:39575"],"listen-peer-urls":["http://127.0.0.1:39575"],"advertise-client-urls":["http://127.0.0.1:33153"],"listen-client-urls":["http://127.0.0.1:33153"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:39575","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-12T10:25:28.434+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-557546651/member/snap/db","took":"11.939846ms"} {"level":"info","ts":"2024-09-12T10:25:28.445+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"ecc1be9070d156a8","cluster-id":"9e88bb0c9927d817"} {"level":"info","ts":"2024-09-12T10:25:28.445+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ecc1be9070d156a8 switched to configuration voters=()"} {"level":"info","ts":"2024-09-12T10:25:28.446+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ecc1be9070d156a8 became follower at term 0"} {"level":"info","ts":"2024-09-12T10:25:28.446+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft ecc1be9070d156a8 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-12T10:25:28.446+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ecc1be9070d156a8 became follower at term 1"} {"level":"info","ts":"2024-09-12T10:25:28.446+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ecc1be9070d156a8 switched to configuration voters=(17060126391033484968)"} {"level":"warn","ts":"2024-09-12T10:25:28.456+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-12T10:25:28.461+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-12T10:25:28.463+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-12T10:25:28.465+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"ecc1be9070d156a8","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-12T10:25:28.465+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"ecc1be9070d156a8","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-12T10:25:28.466+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ecc1be9070d156a8 switched to configuration voters=(17060126391033484968)"} {"level":"info","ts":"2024-09-12T10:25:28.466+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"9e88bb0c9927d817","local-member-id":"ecc1be9070d156a8","added-peer-id":"ecc1be9070d156a8","added-peer-peer-urls":["http://127.0.0.1:39575"]} {"level":"info","ts":"2024-09-12T10:25:28.475+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"ecc1be9070d156a8","initial-advertise-peer-urls":["http://127.0.0.1:39575"],"listen-peer-urls":["http://127.0.0.1:39575"],"advertise-client-urls":["http://127.0.0.1:33153"],"listen-client-urls":["http://127.0.0.1:33153"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-12T10:25:28.475+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:39575"} {"level":"info","ts":"2024-09-12T10:25:28.475+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:39575"} {"level":"info","ts":"2024-09-12T10:25:29.047+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ecc1be9070d156a8 is starting a new election at term 1"} {"level":"info","ts":"2024-09-12T10:25:29.047+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ecc1be9070d156a8 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-12T10:25:29.047+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ecc1be9070d156a8 received MsgPreVoteResp from ecc1be9070d156a8 at term 1"} {"level":"info","ts":"2024-09-12T10:25:29.047+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ecc1be9070d156a8 became candidate at term 2"} {"level":"info","ts":"2024-09-12T10:25:29.047+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ecc1be9070d156a8 received MsgVoteResp from ecc1be9070d156a8 at term 2"} {"level":"info","ts":"2024-09-12T10:25:29.047+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"ecc1be9070d156a8 became leader at term 2"} {"level":"info","ts":"2024-09-12T10:25:29.047+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: ecc1be9070d156a8 elected leader ecc1be9070d156a8 at term 2"} {"level":"info","ts":"2024-09-12T10:25:29.047+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"ecc1be9070d156a8","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:33153]}","request-path":"/0/members/ecc1be9070d156a8/attributes","cluster-id":"9e88bb0c9927d817","publish-timeout":"7s"} {"level":"info","ts":"2024-09-12T10:25:29.048+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-12T10:25:29.049+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:33153"} {"level":"info","ts":"2024-09-12T10:25:29.050+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:25:29.051+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"9e88bb0c9927d817","local-member-id":"ecc1be9070d156a8","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:25:29.051+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:25:29.051+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} PASS {"level":"info","ts":"2024-09-12T10:25:29.380+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-557546651","advertise-peer-urls":["http://127.0.0.1:39575"],"advertise-client-urls":["http://127.0.0.1:33153"]} {"level":"info","ts":"2024-09-12T10:25:29.380+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"ecc1be9070d156a8","current-leader-member-id":"ecc1be9070d156a8"} {"level":"info","ts":"2024-09-12T10:25:29.383+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:39575"} {"level":"info","ts":"2024-09-12T10:25:29.383+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:39575"} {"level":"info","ts":"2024-09-12T10:25:29.383+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-557546651","advertise-peer-urls":["http://127.0.0.1:39575"],"advertise-client-urls":["http://127.0.0.1:33153"]} ok github.com/google/trillian/quota/etcd/storage 0.994s 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/12 10:25:30 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:25:30 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:25:30 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/quota/mysqlqm 0.015s github.com/google/trillian/quota/mysqlqm 2024/09/12 10:25:31 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:25:31 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/09/12 10:25:31 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/quota/mysqlqm 0.021s 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.016s github.com/google/trillian/server/admin PASS ok github.com/google/trillian/server/admin 0.014s github.com/google/trillian/server/errors PASS ok github.com/google/trillian/server/errors 0.006s github.com/google/trillian/server/errors PASS ok github.com/google/trillian/server/errors 0.009s github.com/google/trillian/server/interceptor PASS ok github.com/google/trillian/server/interceptor 1.016s github.com/google/trillian/server/interceptor PASS ok github.com/google/trillian/server/interceptor 1.017s github.com/google/trillian/storage PASS ok github.com/google/trillian/storage 0.015s github.com/google/trillian/storage PASS ok github.com/google/trillian/storage 0.009s github.com/google/trillian/storage/cache PASS ok github.com/google/trillian/storage/cache 0.055s github.com/google/trillian/storage/cache PASS ok github.com/google/trillian/storage/cache 0.047s github.com/google/trillian/storage/cloudspanner PASS ok github.com/google/trillian/storage/cloudspanner 4.136s github.com/google/trillian/storage/cloudspanner PASS ok github.com/google/trillian/storage/cloudspanner 3.642s 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.012s github.com/google/trillian/storage/memory PASS ok github.com/google/trillian/storage/memory 0.009s github.com/google/trillian/storage/mysql 2024/09/12 10:26:03 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused E0912 10:26:03.907254 835423 storage_test.go:297] MySQL not available, skipping all MySQL storage tests ok github.com/google/trillian/storage/mysql 0.013s github.com/google/trillian/storage/mysql 2024/09/12 10:26:04 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused E0912 10:26:04.851097 835718 storage_test.go:297] MySQL not available, skipping all MySQL storage tests ok github.com/google/trillian/storage/mysql 0.011s 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.004s github.com/google/trillian/testonly/flagsaver PASS ok github.com/google/trillian/testonly/flagsaver 0.004s 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.008s github.com/google/trillian/testonly/matchers PASS ok github.com/google/trillian/testonly/matchers 0.008s 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.012s github.com/google/trillian/trees PASS ok github.com/google/trillian/trees 0.014s github.com/google/trillian/types PASS ok github.com/google/trillian/types 0.008s github.com/google/trillian/types PASS ok github.com/google/trillian/types 0.008s 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.421s github.com/google/trillian/util/clock PASS ok github.com/google/trillian/util/clock 1.430s 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-12T10:26:20.292+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:32819"]} {"level":"info","ts":"2024-09-12T10:26:20.292+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:35449"]} {"level":"info","ts":"2024-09-12T10:26:20.292+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-315773664","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-315773664/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:32819"],"listen-peer-urls":["http://127.0.0.1:32819"],"advertise-client-urls":["http://127.0.0.1:35449"],"listen-client-urls":["http://127.0.0.1:35449"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:32819","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-12T10:26:20.301+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-315773664/member/snap/db","took":"9.231759ms"} {"level":"info","ts":"2024-09-12T10:26:20.308+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"915cfd79131ba691","cluster-id":"ba72b809acced1f4"} {"level":"info","ts":"2024-09-12T10:26:20.308+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"915cfd79131ba691 switched to configuration voters=()"} {"level":"info","ts":"2024-09-12T10:26:20.309+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"915cfd79131ba691 became follower at term 0"} {"level":"info","ts":"2024-09-12T10:26:20.309+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 915cfd79131ba691 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-12T10:26:20.309+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"915cfd79131ba691 became follower at term 1"} {"level":"info","ts":"2024-09-12T10:26:20.309+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"915cfd79131ba691 switched to configuration voters=(10474525529810380433)"} {"level":"warn","ts":"2024-09-12T10:26:20.314+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-12T10:26:20.316+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-12T10:26:20.318+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-12T10:26:20.321+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"915cfd79131ba691","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-12T10:26:20.321+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"915cfd79131ba691","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-12T10:26:20.322+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"915cfd79131ba691 switched to configuration voters=(10474525529810380433)"} {"level":"info","ts":"2024-09-12T10:26:20.322+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"ba72b809acced1f4","local-member-id":"915cfd79131ba691","added-peer-id":"915cfd79131ba691","added-peer-peer-urls":["http://127.0.0.1:32819"]} {"level":"info","ts":"2024-09-12T10:26:20.325+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:32819"} {"level":"info","ts":"2024-09-12T10:26:20.325+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:32819"} {"level":"info","ts":"2024-09-12T10:26:20.325+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"915cfd79131ba691","initial-advertise-peer-urls":["http://127.0.0.1:32819"],"listen-peer-urls":["http://127.0.0.1:32819"],"advertise-client-urls":["http://127.0.0.1:35449"],"listen-client-urls":["http://127.0.0.1:35449"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-12T10:26:20.910+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"915cfd79131ba691 is starting a new election at term 1"} {"level":"info","ts":"2024-09-12T10:26:20.910+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"915cfd79131ba691 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-12T10:26:20.910+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"915cfd79131ba691 received MsgPreVoteResp from 915cfd79131ba691 at term 1"} {"level":"info","ts":"2024-09-12T10:26:20.910+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"915cfd79131ba691 became candidate at term 2"} {"level":"info","ts":"2024-09-12T10:26:20.910+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"915cfd79131ba691 received MsgVoteResp from 915cfd79131ba691 at term 2"} {"level":"info","ts":"2024-09-12T10:26:20.910+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"915cfd79131ba691 became leader at term 2"} {"level":"info","ts":"2024-09-12T10:26:20.910+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 915cfd79131ba691 elected leader 915cfd79131ba691 at term 2"} {"level":"info","ts":"2024-09-12T10:26:20.911+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"915cfd79131ba691","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:35449]}","request-path":"/0/members/915cfd79131ba691/attributes","cluster-id":"ba72b809acced1f4","publish-timeout":"7s"} {"level":"info","ts":"2024-09-12T10:26:20.912+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:26:20.912+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-12T10:26:20.912+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"ba72b809acced1f4","local-member-id":"915cfd79131ba691","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:26:20.912+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:26:20.912+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:26:20.913+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:35449"} {"level":"info","ts":"2024-09-12T10:26:20.935+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-315773664","advertise-peer-urls":["http://127.0.0.1:32819"],"advertise-client-urls":["http://127.0.0.1:35449"]} {"level":"info","ts":"2024-09-12T10:26:20.936+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"915cfd79131ba691","current-leader-member-id":"915cfd79131ba691"} {"level":"info","ts":"2024-09-12T10:26:20.938+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:32819"} {"level":"info","ts":"2024-09-12T10:26:20.938+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:32819"} {"level":"info","ts":"2024-09-12T10:26:20.938+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-315773664","advertise-peer-urls":["http://127.0.0.1:32819"],"advertise-client-urls":["http://127.0.0.1:35449"]} {"level":"info","ts":"2024-09-12T10:26:20.939+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:36973"]} {"level":"info","ts":"2024-09-12T10:26:20.939+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:40959"]} {"level":"info","ts":"2024-09-12T10:26:20.939+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-2635378214","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-2635378214/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:36973"],"listen-peer-urls":["http://127.0.0.1:36973"],"advertise-client-urls":["http://127.0.0.1:40959"],"listen-client-urls":["http://127.0.0.1:40959"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:36973","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-12T10:26:20.948+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-2635378214/member/snap/db","took":"8.010572ms"} {"level":"info","ts":"2024-09-12T10:26:20.957+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"33cf7a43ad3f9214","cluster-id":"eeff2c91f64ea285"} {"level":"info","ts":"2024-09-12T10:26:20.957+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"33cf7a43ad3f9214 switched to configuration voters=()"} {"level":"info","ts":"2024-09-12T10:26:20.957+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"33cf7a43ad3f9214 became follower at term 0"} {"level":"info","ts":"2024-09-12T10:26:20.957+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 33cf7a43ad3f9214 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-12T10:26:20.957+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"33cf7a43ad3f9214 became follower at term 1"} {"level":"info","ts":"2024-09-12T10:26:20.957+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"33cf7a43ad3f9214 switched to configuration voters=(3733337047201452564)"} {"level":"warn","ts":"2024-09-12T10:26:20.964+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-12T10:26:20.967+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-12T10:26:20.971+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"33cf7a43ad3f9214","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-12T10:26:20.972+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:36973"} {"level":"info","ts":"2024-09-12T10:26:20.972+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:36973"} {"level":"info","ts":"2024-09-12T10:26:20.973+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"33cf7a43ad3f9214","initial-advertise-peer-urls":["http://127.0.0.1:36973"],"listen-peer-urls":["http://127.0.0.1:36973"],"advertise-client-urls":["http://127.0.0.1:40959"],"listen-client-urls":["http://127.0.0.1:40959"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-12T10:26:20.973+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"33cf7a43ad3f9214 switched to configuration voters=(3733337047201452564)"} {"level":"info","ts":"2024-09-12T10:26:20.973+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"33cf7a43ad3f9214","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-12T10:26:20.973+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"eeff2c91f64ea285","local-member-id":"33cf7a43ad3f9214","added-peer-id":"33cf7a43ad3f9214","added-peer-peer-urls":["http://127.0.0.1:36973"]} {"level":"info","ts":"2024-09-12T10:26:21.459+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"33cf7a43ad3f9214 is starting a new election at term 1"} {"level":"info","ts":"2024-09-12T10:26:21.459+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"33cf7a43ad3f9214 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-12T10:26:21.459+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"33cf7a43ad3f9214 received MsgPreVoteResp from 33cf7a43ad3f9214 at term 1"} {"level":"info","ts":"2024-09-12T10:26:21.459+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"33cf7a43ad3f9214 became candidate at term 2"} {"level":"info","ts":"2024-09-12T10:26:21.459+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"33cf7a43ad3f9214 received MsgVoteResp from 33cf7a43ad3f9214 at term 2"} {"level":"info","ts":"2024-09-12T10:26:21.459+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"33cf7a43ad3f9214 became leader at term 2"} {"level":"info","ts":"2024-09-12T10:26:21.459+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 33cf7a43ad3f9214 elected leader 33cf7a43ad3f9214 at term 2"} {"level":"info","ts":"2024-09-12T10:26:21.459+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:26:21.461+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"eeff2c91f64ea285","local-member-id":"33cf7a43ad3f9214","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:26:21.461+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:26:21.461+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"33cf7a43ad3f9214","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:40959]}","request-path":"/0/members/33cf7a43ad3f9214/attributes","cluster-id":"eeff2c91f64ea285","publish-timeout":"7s"} {"level":"info","ts":"2024-09-12T10:26:21.461+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-12T10:26:21.462+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:40959"} {"level":"info","ts":"2024-09-12T10:26:23.015+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2635378214","advertise-peer-urls":["http://127.0.0.1:36973"],"advertise-client-urls":["http://127.0.0.1:40959"]} {"level":"info","ts":"2024-09-12T10:26:23.015+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"33cf7a43ad3f9214","current-leader-member-id":"33cf7a43ad3f9214"} {"level":"info","ts":"2024-09-12T10:26:23.025+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:36973"} {"level":"info","ts":"2024-09-12T10:26:23.025+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:36973"} {"level":"info","ts":"2024-09-12T10:26:23.025+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2635378214","advertise-peer-urls":["http://127.0.0.1:36973"],"advertise-client-urls":["http://127.0.0.1:40959"]} PASS ok github.com/google/trillian/util/election2/etcd 2.764s github.com/google/trillian/util/election2/etcd {"level":"info","ts":"2024-09-12T10:26:24.640+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:43459"]} {"level":"info","ts":"2024-09-12T10:26:24.640+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:43977"]} {"level":"info","ts":"2024-09-12T10:26:24.640+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-1162874175","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-1162874175/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:43459"],"listen-peer-urls":["http://127.0.0.1:43459"],"advertise-client-urls":["http://127.0.0.1:43977"],"listen-client-urls":["http://127.0.0.1:43977"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:43459","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-12T10:26:24.645+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-1162874175/member/snap/db","took":"5.105513ms"} {"level":"info","ts":"2024-09-12T10:26:24.651+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"84df6ad9da2d07c9","cluster-id":"6e49b6e2bd5310dc"} {"level":"info","ts":"2024-09-12T10:26:24.651+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"84df6ad9da2d07c9 switched to configuration voters=()"} {"level":"info","ts":"2024-09-12T10:26:24.651+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"84df6ad9da2d07c9 became follower at term 0"} {"level":"info","ts":"2024-09-12T10:26:24.651+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 84df6ad9da2d07c9 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-12T10:26:24.651+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"84df6ad9da2d07c9 became follower at term 1"} {"level":"info","ts":"2024-09-12T10:26:24.651+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"84df6ad9da2d07c9 switched to configuration voters=(9574488816713795529)"} {"level":"warn","ts":"2024-09-12T10:26:24.656+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-12T10:26:24.658+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-12T10:26:24.660+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-12T10:26:24.661+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"84df6ad9da2d07c9","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-12T10:26:24.663+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"84df6ad9da2d07c9","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-12T10:26:24.663+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"84df6ad9da2d07c9 switched to configuration voters=(9574488816713795529)"} {"level":"info","ts":"2024-09-12T10:26:24.663+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"6e49b6e2bd5310dc","local-member-id":"84df6ad9da2d07c9","added-peer-id":"84df6ad9da2d07c9","added-peer-peer-urls":["http://127.0.0.1:43459"]} {"level":"info","ts":"2024-09-12T10:26:24.665+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"84df6ad9da2d07c9","initial-advertise-peer-urls":["http://127.0.0.1:43459"],"listen-peer-urls":["http://127.0.0.1:43459"],"advertise-client-urls":["http://127.0.0.1:43977"],"listen-client-urls":["http://127.0.0.1:43977"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-12T10:26:24.665+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:43459"} {"level":"info","ts":"2024-09-12T10:26:24.665+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:43459"} {"level":"info","ts":"2024-09-12T10:26:25.252+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"84df6ad9da2d07c9 is starting a new election at term 1"} {"level":"info","ts":"2024-09-12T10:26:25.252+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"84df6ad9da2d07c9 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-12T10:26:25.252+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"84df6ad9da2d07c9 received MsgPreVoteResp from 84df6ad9da2d07c9 at term 1"} {"level":"info","ts":"2024-09-12T10:26:25.252+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"84df6ad9da2d07c9 became candidate at term 2"} {"level":"info","ts":"2024-09-12T10:26:25.252+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"84df6ad9da2d07c9 received MsgVoteResp from 84df6ad9da2d07c9 at term 2"} {"level":"info","ts":"2024-09-12T10:26:25.252+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"84df6ad9da2d07c9 became leader at term 2"} {"level":"info","ts":"2024-09-12T10:26:25.252+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 84df6ad9da2d07c9 elected leader 84df6ad9da2d07c9 at term 2"} {"level":"info","ts":"2024-09-12T10:26:25.253+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"84df6ad9da2d07c9","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:43977]}","request-path":"/0/members/84df6ad9da2d07c9/attributes","cluster-id":"6e49b6e2bd5310dc","publish-timeout":"7s"} {"level":"info","ts":"2024-09-12T10:26:25.253+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-12T10:26:25.253+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:26:25.253+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"6e49b6e2bd5310dc","local-member-id":"84df6ad9da2d07c9","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:26:25.253+0800","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:26:25.254+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:26:25.254+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:43977"} {"level":"info","ts":"2024-09-12T10:26:25.273+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1162874175","advertise-peer-urls":["http://127.0.0.1:43459"],"advertise-client-urls":["http://127.0.0.1:43977"]} {"level":"info","ts":"2024-09-12T10:26:25.273+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"84df6ad9da2d07c9","current-leader-member-id":"84df6ad9da2d07c9"} {"level":"info","ts":"2024-09-12T10:26:25.276+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:43459"} {"level":"info","ts":"2024-09-12T10:26:25.276+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:43459"} {"level":"info","ts":"2024-09-12T10:26:25.276+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1162874175","advertise-peer-urls":["http://127.0.0.1:43459"],"advertise-client-urls":["http://127.0.0.1:43977"]} {"level":"info","ts":"2024-09-12T10:26:25.277+0800","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:45289"]} {"level":"info","ts":"2024-09-12T10:26:25.277+0800","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:40091"]} {"level":"info","ts":"2024-09-12T10:26:25.277+0800","caller":"embed/etcd.go:308","msg":"starting an etcd server","etcd-version":"3.5.4","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.21.7","go-os":"linux","go-arch":"arm64","max-cpu-set":8,"max-cpu-available":8,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-1886701986","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-1886701986/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:45289"],"listen-peer-urls":["http://127.0.0.1:45289"],"advertise-client-urls":["http://127.0.0.1:40091"],"listen-client-urls":["http://127.0.0.1:40091"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:45289","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-12T10:26:25.293+0800","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-1886701986/member/snap/db","took":"14.858146ms"} {"level":"info","ts":"2024-09-12T10:26:25.298+0800","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"14e0ca64dd0102f1","cluster-id":"80f151400a7f0277"} {"level":"info","ts":"2024-09-12T10:26:25.298+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"14e0ca64dd0102f1 switched to configuration voters=()"} {"level":"info","ts":"2024-09-12T10:26:25.298+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"14e0ca64dd0102f1 became follower at term 0"} {"level":"info","ts":"2024-09-12T10:26:25.298+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 14e0ca64dd0102f1 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2024-09-12T10:26:25.298+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"14e0ca64dd0102f1 became follower at term 1"} {"level":"info","ts":"2024-09-12T10:26:25.298+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"14e0ca64dd0102f1 switched to configuration voters=(1504424810095117041)"} {"level":"warn","ts":"2024-09-12T10:26:25.303+0800","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2024-09-12T10:26:25.311+0800","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2024-09-12T10:26:25.316+0800","caller":"etcdserver/server.go:851","msg":"starting etcd server","local-member-id":"14e0ca64dd0102f1","local-server-version":"3.5.4","cluster-version":"to_be_decided"} {"level":"info","ts":"2024-09-12T10:26:25.317+0800","caller":"embed/etcd.go:277","msg":"now serving peer/client/metrics","local-member-id":"14e0ca64dd0102f1","initial-advertise-peer-urls":["http://127.0.0.1:45289"],"listen-peer-urls":["http://127.0.0.1:45289"],"advertise-client-urls":["http://127.0.0.1:40091"],"listen-client-urls":["http://127.0.0.1:40091"],"listen-metrics-urls":[]} {"level":"info","ts":"2024-09-12T10:26:25.317+0800","caller":"etcdserver/server.go:736","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"14e0ca64dd0102f1","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2024-09-12T10:26:25.317+0800","caller":"embed/etcd.go:581","msg":"serving peer traffic","address":"127.0.0.1:45289"} {"level":"info","ts":"2024-09-12T10:26:25.317+0800","caller":"embed/etcd.go:553","msg":"cmux::serve","address":"127.0.0.1:45289"} {"level":"info","ts":"2024-09-12T10:26:25.317+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"14e0ca64dd0102f1 switched to configuration voters=(1504424810095117041)"} {"level":"info","ts":"2024-09-12T10:26:25.318+0800","caller":"membership/cluster.go:421","msg":"added member","cluster-id":"80f151400a7f0277","local-member-id":"14e0ca64dd0102f1","added-peer-id":"14e0ca64dd0102f1","added-peer-peer-urls":["http://127.0.0.1:45289"]} {"level":"info","ts":"2024-09-12T10:26:25.399+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"14e0ca64dd0102f1 is starting a new election at term 1"} {"level":"info","ts":"2024-09-12T10:26:25.399+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"14e0ca64dd0102f1 became pre-candidate at term 1"} {"level":"info","ts":"2024-09-12T10:26:25.399+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"14e0ca64dd0102f1 received MsgPreVoteResp from 14e0ca64dd0102f1 at term 1"} {"level":"info","ts":"2024-09-12T10:26:25.399+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"14e0ca64dd0102f1 became candidate at term 2"} {"level":"info","ts":"2024-09-12T10:26:25.399+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"14e0ca64dd0102f1 received MsgVoteResp from 14e0ca64dd0102f1 at term 2"} {"level":"info","ts":"2024-09-12T10:26:25.399+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"14e0ca64dd0102f1 became leader at term 2"} {"level":"info","ts":"2024-09-12T10:26:25.399+0800","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 14e0ca64dd0102f1 elected leader 14e0ca64dd0102f1 at term 2"} {"level":"info","ts":"2024-09-12T10:26:25.399+0800","caller":"etcdserver/server.go:2507","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:26:25.401+0800","caller":"membership/cluster.go:584","msg":"set initial cluster version","cluster-id":"80f151400a7f0277","local-member-id":"14e0ca64dd0102f1","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:26:25.401+0800","caller":"etcdserver/server.go:2531","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2024-09-12T10:26:25.401+0800","caller":"etcdserver/server.go:2042","msg":"published local member to cluster through raft","local-member-id":"14e0ca64dd0102f1","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:40091]}","request-path":"/0/members/14e0ca64dd0102f1/attributes","cluster-id":"80f151400a7f0277","publish-timeout":"7s"} {"level":"info","ts":"2024-09-12T10:26:25.401+0800","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2024-09-12T10:26:25.402+0800","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:40091"} {"level":"info","ts":"2024-09-12T10:26:26.968+0800","caller":"embed/etcd.go:368","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1886701986","advertise-peer-urls":["http://127.0.0.1:45289"],"advertise-client-urls":["http://127.0.0.1:40091"]} {"level":"info","ts":"2024-09-12T10:26:26.968+0800","caller":"etcdserver/server.go:1453","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"14e0ca64dd0102f1","current-leader-member-id":"14e0ca64dd0102f1"} {"level":"info","ts":"2024-09-12T10:26:26.976+0800","caller":"embed/etcd.go:563","msg":"stopping serving peer traffic","address":"127.0.0.1:45289"} {"level":"info","ts":"2024-09-12T10:26:26.976+0800","caller":"embed/etcd.go:568","msg":"stopped serving peer traffic","address":"127.0.0.1:45289"} {"level":"info","ts":"2024-09-12T10:26:26.976+0800","caller":"embed/etcd.go:370","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1886701986","advertise-peer-urls":["http://127.0.0.1:45289"],"advertise-client-urls":["http://127.0.0.1:40091"]} PASS ok github.com/google/trillian/util/election2/etcd 2.365s github.com/google/trillian/util/election2/testonly PASS ok github.com/google/trillian/util/election2/testonly 1.411s github.com/google/trillian/util/election2/testonly PASS ok github.com/google/trillian/util/election2/testonly 1.413s + RPM_EC=0 ++ jobs -p + exit 0 Processing files: golang-github-google-trillian-devel-1.4.2-1.ocs23.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.QwjP64 + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.2 + DOCDIR=/builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64/usr/share/doc/golang-github-google-trillian-devel + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64/usr/share/doc/golang-github-google-trillian-devel + cp -pr AUTHORS /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64/usr/share/doc/golang-github-google-trillian-devel + cp -pr CHANGELOG.md /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64/usr/share/doc/golang-github-google-trillian-devel + cp -pr CONTRIBUTING.md /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64/usr/share/doc/golang-github-google-trillian-devel + cp -pr CONTRIBUTORS /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64/usr/share/doc/golang-github-google-trillian-devel + cp -pr README.md /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64/usr/share/doc/golang-github-google-trillian-devel + cp -pr docs /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64/usr/share/doc/golang-github-google-trillian-devel + cp -pr examples /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64/usr/share/doc/golang-github-google-trillian-devel + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.fk3F5Y + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.2 + LICENSEDIR=/builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64/usr/share/licenses/golang-github-google-trillian-devel + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64/usr/share/licenses/golang-github-google-trillian-devel + cp -pr LICENSE /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-1.ocs23.aarch64/usr/share/licenses/golang-github-google-trillian-devel + RPM_EC=0 ++ jobs -p + exit 0 grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : Provides: golang(github.com/google/trillian) = 1.4.2-1.ocs23 golang(github.com/google/trillian/client) = 1.4.2-1.ocs23 golang(github.com/google/trillian/client/backoff) = 1.4.2-1.ocs23 golang(github.com/google/trillian/client/rpcflags) = 1.4.2-1.ocs23 golang(github.com/google/trillian/cmd) = 1.4.2-1.ocs23 golang(github.com/google/trillian/cmd/internal/serverutil) = 1.4.2-1.ocs23 golang(github.com/google/trillian/crypto/keys) = 1.4.2-1.ocs23 golang(github.com/google/trillian/crypto/keys/der) = 1.4.2-1.ocs23 golang(github.com/google/trillian/crypto/keys/pem) = 1.4.2-1.ocs23 golang(github.com/google/trillian/crypto/keys/pkcs11) = 1.4.2-1.ocs23 golang(github.com/google/trillian/crypto/keys/testonly) = 1.4.2-1.ocs23 golang(github.com/google/trillian/crypto/keyspb) = 1.4.2-1.ocs23 golang(github.com/google/trillian/docs/storage/commit_log/signer) = 1.4.2-1.ocs23 golang(github.com/google/trillian/docs/storage/commit_log/simelection) = 1.4.2-1.ocs23 golang(github.com/google/trillian/docs/storage/commit_log/simkafka) = 1.4.2-1.ocs23 golang(github.com/google/trillian/experimental/batchmap) = 1.4.2-1.ocs23 golang(github.com/google/trillian/extension) = 1.4.2-1.ocs23 golang(github.com/google/trillian/integration) = 1.4.2-1.ocs23 golang(github.com/google/trillian/integration/admin) = 1.4.2-1.ocs23 golang(github.com/google/trillian/integration/format) = 1.4.2-1.ocs23 golang(github.com/google/trillian/integration/quota) = 1.4.2-1.ocs23 golang(github.com/google/trillian/integration/storagetest) = 1.4.2-1.ocs23 golang(github.com/google/trillian/log) = 1.4.2-1.ocs23 golang(github.com/google/trillian/merkle) = 1.4.2-1.ocs23 golang(github.com/google/trillian/merkle/compact) = 1.4.2-1.ocs23 golang(github.com/google/trillian/merkle/coniks) = 1.4.2-1.ocs23 golang(github.com/google/trillian/merkle/hashers) = 1.4.2-1.ocs23 golang(github.com/google/trillian/merkle/logverifier) = 1.4.2-1.ocs23 golang(github.com/google/trillian/merkle/rfc6962) = 1.4.2-1.ocs23 golang(github.com/google/trillian/merkle/smt) = 1.4.2-1.ocs23 golang(github.com/google/trillian/merkle/smt/node) = 1.4.2-1.ocs23 golang(github.com/google/trillian/merkle/testonly) = 1.4.2-1.ocs23 golang(github.com/google/trillian/monitoring) = 1.4.2-1.ocs23 golang(github.com/google/trillian/monitoring/opencensus) = 1.4.2-1.ocs23 golang(github.com/google/trillian/monitoring/prometheus) = 1.4.2-1.ocs23 golang(github.com/google/trillian/monitoring/testonly) = 1.4.2-1.ocs23 golang(github.com/google/trillian/quota) = 1.4.2-1.ocs23 golang(github.com/google/trillian/quota/cacheqm) = 1.4.2-1.ocs23 golang(github.com/google/trillian/quota/etcd) = 1.4.2-1.ocs23 golang(github.com/google/trillian/quota/etcd/etcdqm) = 1.4.2-1.ocs23 golang(github.com/google/trillian/quota/etcd/quotaapi) = 1.4.2-1.ocs23 golang(github.com/google/trillian/quota/etcd/quotapb) = 1.4.2-1.ocs23 golang(github.com/google/trillian/quota/etcd/storage) = 1.4.2-1.ocs23 golang(github.com/google/trillian/quota/etcd/storagepb) = 1.4.2-1.ocs23 golang(github.com/google/trillian/quota/mysqlqm) = 1.4.2-1.ocs23 golang(github.com/google/trillian/quota/redis/redisqm) = 1.4.2-1.ocs23 golang(github.com/google/trillian/quota/redis/redistb) = 1.4.2-1.ocs23 golang(github.com/google/trillian/server) = 1.4.2-1.ocs23 golang(github.com/google/trillian/server/admin) = 1.4.2-1.ocs23 golang(github.com/google/trillian/server/errors) = 1.4.2-1.ocs23 golang(github.com/google/trillian/server/interceptor) = 1.4.2-1.ocs23 golang(github.com/google/trillian/storage) = 1.4.2-1.ocs23 golang(github.com/google/trillian/storage/cache) = 1.4.2-1.ocs23 golang(github.com/google/trillian/storage/cloudspanner) = 1.4.2-1.ocs23 golang(github.com/google/trillian/storage/cloudspanner/spannerpb) = 1.4.2-1.ocs23 golang(github.com/google/trillian/storage/memory) = 1.4.2-1.ocs23 golang(github.com/google/trillian/storage/mysql) = 1.4.2-1.ocs23 golang(github.com/google/trillian/storage/storagepb) = 1.4.2-1.ocs23 golang(github.com/google/trillian/storage/testdb) = 1.4.2-1.ocs23 golang(github.com/google/trillian/storage/testonly) = 1.4.2-1.ocs23 golang(github.com/google/trillian/storage/tree) = 1.4.2-1.ocs23 golang(github.com/google/trillian/testonly) = 1.4.2-1.ocs23 golang(github.com/google/trillian/testonly/flagsaver) = 1.4.2-1.ocs23 golang(github.com/google/trillian/testonly/integration) = 1.4.2-1.ocs23 golang(github.com/google/trillian/testonly/integration/etcd) = 1.4.2-1.ocs23 golang(github.com/google/trillian/testonly/matchers) = 1.4.2-1.ocs23 golang(github.com/google/trillian/testonly/mdm) = 1.4.2-1.ocs23 golang(github.com/google/trillian/testonly/setup) = 1.4.2-1.ocs23 golang(github.com/google/trillian/testonly/tmock) = 1.4.2-1.ocs23 golang(github.com/google/trillian/trees) = 1.4.2-1.ocs23 golang(github.com/google/trillian/types) = 1.4.2-1.ocs23 golang(github.com/google/trillian/types/internal/tls) = 1.4.2-1.ocs23 golang(github.com/google/trillian/util) = 1.4.2-1.ocs23 golang(github.com/google/trillian/util/clock) = 1.4.2-1.ocs23 golang(github.com/google/trillian/util/election) = 1.4.2-1.ocs23 golang(github.com/google/trillian/util/election2) = 1.4.2-1.ocs23 golang(github.com/google/trillian/util/election2/etcd) = 1.4.2-1.ocs23 golang(github.com/google/trillian/util/election2/testonly) = 1.4.2-1.ocs23 golang-github-google-trillian-devel = 1.4.2-1.ocs23 golang-ipath(github.com/google/trillian) = 1.4.2-1.ocs23 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.ocs23.aarch64 Wrote: /builddir/build/SRPMS/golang-github-google-trillian-1.4.2-1.ocs23.src.rpm Wrote: /builddir/build/RPMS/golang-github-google-trillian-devel-1.4.2-1.ocs23.noarch.rpm Child return code was: 0