Mock Version: 5.5 Mock Version: 5.5 Mock Version: 5.5 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/f41-build-50481665-6042607/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=201600uid=1000gid=425user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.ivayf4eh:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=False) Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.ivayf4eh:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '735b96c408ce4472bd66e7d3175c8270', '-D', '/var/lib/mock/f41-build-50481665-6042607/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.ivayf4eh:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', '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', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: aarch64 Building for target aarch64 setting SOURCE_DATE_EPOCH=1689811200 Wrote: /builddir/build/SRPMS/golang-github-google-trillian-1.4.2-2.fc41.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/f41-build-50481665-6042607/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=201600uid=1000gid=425user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.ivayf4eh:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueraiseExc=FalseprintOutput=False) Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.ivayf4eh:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '1731387aaf4447eab75623b1a5c0bd68', '-D', '/var/lib/mock/f41-build-50481665-6042607/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.ivayf4eh:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', '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', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: aarch64 Building for target aarch64 setting SOURCE_DATE_EPOCH=1689811200 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.L4Bj6D + 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 + rm -rf /builddir/build/BUILD/trillian-1.4.2-SPECPARTS + /usr/bin/mkdir -p /builddir/build/BUILD/trillian-1.4.2-SPECPARTS + /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 ++ find . -name '*.go' + sed -i 's|github.com/go-redis/redis|gopkg.in/redis.v6|' ./client/admin.go ./client/backoff/backoff.go ./client/backoff/backoff_test.go ./client/log_client.go ./client/log_client_test.go ./client/log_verifier.go ./client/log_verifier_test.go ./client/mutating_client_test.go ./client/rpcflags/rpcflags.go ./client/rpcflags/rpcflags_test.go ./cmd/createtree/main.go ./cmd/createtree/main_test.go ./cmd/deletetree/main.go ./cmd/flags.go ./cmd/flags_test.go ./cmd/internal/serverutil/main.go ./cmd/trillian_log_server/main.go ./cmd/trillian_log_signer/main.go ./cmd/updatetree/main.go ./cmd/updatetree/main_test.go ./crypto/keys/der/der.go ./crypto/keys/der/der_test.go ./crypto/keys/handlers.go ./crypto/keys/handlers_test.go ./crypto/keys/pem/pem.go ./crypto/keys/pem/pem_test.go ./crypto/keys/pkcs11/no_pkcs11.go ./crypto/keys/pkcs11/pkcs11.go ./crypto/keys/pkcs11/pkcs11_test.go ./crypto/keys/testonly/keys.go ./crypto/keyspb/keyspb.pb.go ./docs/merkletree/treetex/main.go ./docs/storage/commit_log/main.go ./docs/storage/commit_log/signer/fakedb.go ./docs/storage/commit_log/signer/signer.go ./docs/storage/commit_log/signer/signer_test.go ./docs/storage/commit_log/signer/types.go ./docs/storage/commit_log/simelection/election.go ./docs/storage/commit_log/simkafka/kafka.go ./docs/storage/commit_log/simkafka/kafka_test.go ./experimental/batchmap/batchmap.shims.go ./experimental/batchmap/cmd/build/mapdemo.go ./experimental/batchmap/cmd/verify/verify.go ./experimental/batchmap/tile.go ./experimental/batchmap/tmap.go ./experimental/batchmap/tmap_test.go ./extension/registry.go ./gen.go ./integration/admin/admin_integration_test.go ./integration/admin/doc.go ./integration/doc.go ./integration/format/format.go ./integration/format/nochange_test.go ./integration/log.go ./integration/log_integration_test.go ./integration/quota/doc.go ./integration/quota/quota_test.go ./integration/storagetest/loghelpers.go ./integration/storagetest/logtests.go ./integration/storagetest/testrunner.go ./integration/storagetest/treehelpers.go ./log/gen.go ./log/mock_operation.go ./log/operation_manager.go ./log/operation_manager_test.go ./log/sequencer.go ./log/sequencer_manager.go ./log/sequencer_manager_test.go ./log/sequencer_test.go ./merkle/compact/nodes.go ./merkle/compact/nodes_test.go ./merkle/compact/range.go ./merkle/compact/range_test.go ./merkle/coniks/coniks.go ./merkle/coniks/coniks_test.go ./merkle/doc.go ./merkle/hashers/tree_hasher.go ./merkle/log_proofs.go ./merkle/log_proofs_test.go ./merkle/logverifier/hash_chainer.go ./merkle/logverifier/log_verifier.go ./merkle/logverifier/log_verifier_test.go ./merkle/rfc6962/rfc6962.go ./merkle/rfc6962/rfc6962_test.go ./merkle/smt/hasher.go ./merkle/smt/hstar3.go ./merkle/smt/hstar3_test.go ./merkle/smt/layout.go ./merkle/smt/layout_test.go ./merkle/smt/node/id.go ./merkle/smt/node/id_test.go ./merkle/smt/nodes.go ./merkle/smt/nodes_test.go ./merkle/smt/tile.go ./merkle/smt/tile_test.go ./merkle/smt/tiles.go ./merkle/smt/tiles_test.go ./merkle/smt/writer.go ./merkle/smt/writer_test.go ./merkle/testonly/constants.go ./monitoring/buckets.go ./monitoring/buckets_test.go ./monitoring/inert.go ./monitoring/labels.go ./monitoring/metrics.go ./monitoring/metrics_test.go ./monitoring/opencensus/trace.go ./monitoring/prometheus/metrics.go ./monitoring/prometheus/metrics_test.go ./monitoring/rpc_stats_interceptor.go ./monitoring/rpc_stats_interceptor_test.go ./monitoring/testonly/delta.go ./monitoring/testonly/metrics.go ./monitoring/trace.go ./quota/cacheqm/cache.go ./quota/cacheqm/cache_test.go ./quota/doc.go ./quota/etcd/etcdqm/etcdqm.go ./quota/etcd/etcdqm/etcdqm_test.go ./quota/etcd/quota_provider.go ./quota/etcd/quotaapi/conversions.go ./quota/etcd/quotaapi/conversions_test.go ./quota/etcd/quotaapi/name.go ./quota/etcd/quotaapi/name_test.go ./quota/etcd/quotaapi/quota_server.go ./quota/etcd/quotaapi/quota_server_test.go ./quota/etcd/quotapb/doc.go ./quota/etcd/quotapb/gen.go ./quota/etcd/quotapb/quotapb.pb.go ./quota/etcd/quotapb/quotapb_grpc.pb.go ./quota/etcd/storage/quota_storage.go ./quota/etcd/storage/quota_storage_test.go ./quota/etcd/storagepb/gen.go ./quota/etcd/storagepb/storagepb.pb.go ./quota/gen.go ./quota/group_string.go ./quota/kind_string.go ./quota/metrics.go ./quota/mock_quota.go ./quota/mysqlqm/mysql_quota.go ./quota/mysqlqm/mysql_quota_test.go ./quota/mysqlqm/quota_provider.go ./quota/noop.go ./quota/noop_test.go ./quota/provider.go ./quota/provider_test.go ./quota/quota.go ./quota/quota_test.go ./quota/redis/redisqm/manager.go ./quota/redis/redistb/embed_redis.go ./quota/redis/redistb/gen.go ./quota/redis/redistb/redistb.go ./quota/redis/redistb/redistb_test.go ./quota/redis/redistb/update_token_bucket.gen.go ./server/admin/admin_server.go ./server/admin/admin_server_test.go ./server/admin/doc.go ./server/admin/tree_gc.go ./server/admin/tree_gc_test.go ./server/errors/doc.go ./server/errors/errors.go ./server/errors/errors_test.go ./server/interceptor/interceptor.go ./server/interceptor/interceptor_test.go ./server/log_rpc_server.go ./server/log_rpc_server_test.go ./server/proof_fetcher.go ./server/proof_fetcher_test.go ./server/validate.go ./storage/admin_helpers.go ./storage/admin_helpers_test.go ./storage/admin_storage.go ./storage/cache/gen.go ./storage/cache/layout.go ./storage/cache/layout_test.go ./storage/cache/log_tile.go ./storage/cache/mock_node_storage.go ./storage/cache/subtree_cache.go ./storage/cache/subtree_cache_test.go ./storage/cache/suffix.go ./storage/cache/suffix_test.go ./storage/cloudspanner/admin.go ./storage/cloudspanner/getdb_test.go ./storage/cloudspanner/log_storage.go ./storage/cloudspanner/log_storage_test.go ./storage/cloudspanner/sdl.go ./storage/cloudspanner/sdl_test.go ./storage/cloudspanner/spanner.sdl.go ./storage/cloudspanner/spannerpb/gen.go ./storage/cloudspanner/spannerpb/spanner.pb.go ./storage/cloudspanner/storage_provider.go ./storage/cloudspanner/tree_storage.go ./storage/gen.go ./storage/log_storage.go ./storage/memory/admin_storage.go ./storage/memory/doc.go ./storage/memory/log_storage.go ./storage/memory/provider.go ./storage/memory/provider_test.go ./storage/memory/tree_debug.go ./storage/memory/tree_storage.go ./storage/mock_storage.go ./storage/mysql/admin_storage.go ./storage/mysql/admin_storage_test.go ./storage/mysql/errors.go ./storage/mysql/log_storage.go ./storage/mysql/log_storage_test.go ./storage/mysql/provider.go ./storage/mysql/provider_test.go ./storage/mysql/queue.go ./storage/mysql/queue_batching.go ./storage/mysql/storage_test.go ./storage/mysql/tree_storage.go ./storage/provider.go ./storage/provider_test.go ./storage/sql.go ./storage/storagepb/gen.go ./storage/storagepb/storage.pb.go ./storage/testdb/testdb.go ./storage/testdb/testdb_test.go ./storage/testonly/admin_storage_tester.go ./storage/testonly/fake_node_reader.go ./storage/testonly/matchers.go ./storage/testonly/transaction.go ./storage/tree/node.go ./storage/tree_id.go ./storage/tree_id_test.go ./storage/tree_validation.go ./storage/tree_validation_test.go ./testonly/doc.go ./testonly/encoding.go ./testonly/errors.go ./testonly/flagsaver/flagsaver.go ./testonly/flagsaver/flagsaver_test.go ./testonly/hasher.go ./testonly/integration/etcd/etcd.go ./testonly/integration/logenv.go ./testonly/integration/port.go ./testonly/integration/registry.go ./testonly/keys.go ./testonly/marshalling.go ./testonly/matchers/atleast.go ./testonly/matchers/atleast_test.go ./testonly/matchers/proto.go ./testonly/matchers/proto_test.go ./testonly/mdm/mdm.go ./testonly/mdm/mdmtest/main.go ./testonly/mock_server.go ./testonly/paths.go ./testonly/setup/files.go ./testonly/setup/flags.go ./testonly/setup/tls.go ./testonly/signer.go ./testonly/tmock/mock_admin_server.go ./testonly/tmock/mock_log_server.go ./tools/tools.go ./trees/gen.go ./trees/optype_string.go ./trees/trees.go ./trees/trees_test.go ./trees/types.go ./trillian.pb.go ./trillian_admin_api.pb.go ./trillian_admin_api_grpc.pb.go ./trillian_log_api.pb.go ./trillian_log_api_grpc.pb.go ./types/internal/tls/tls.go ./types/logroot.go ./types/logroot_test.go ./util/clock/time.go ./util/clock/time_test.go ./util/clock/timer.go ./util/clock/timer_test.go ./util/clock/timesource.go ./util/clock/timesource_test.go ./util/election/runner.go ./util/election/runner_test.go ./util/election/tracker.go ./util/election/tracker_test.go ./util/election2/election.go ./util/election2/etcd/election.go ./util/election2/etcd/election_test.go ./util/election2/noop.go ./util/election2/testonly/decorator.go ./util/election2/testonly/election.go ./util/election2/testonly/election_test.go ./util/election2/testonly/tests.go ./util/process.go + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.9ngG8B + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.2 + GOPATH=/builddir/build/BUILD/trillian-1.4.2/_build:/usr/share/gocode + GO111MODULE=off + golist --imported --package-path github.com/google/trillian --template 'golang({{.}})\n' --with-tests --skip-self + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/golang-github-google-trillian-1.4.2-2.fc41.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 -br --noprep --noclean --target aarch64 --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'], chrootPath='/var/lib/mock/f41-build-50481665-6042607/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=201600uid=1000gid=425user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.ivayf4eh:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueraiseExc=FalseprintOutput=False) Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.ivayf4eh:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '8095c1c1768a450bbccd0d27ed0de791', '-D', '/var/lib/mock/f41-build-50481665-6042607/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.ivayf4eh:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -br --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', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: aarch64 Building for target aarch64 setting SOURCE_DATE_EPOCH=1689811200 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.o5pCbT + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.2 + GOPATH=/builddir/build/BUILD/trillian-1.4.2/_build:/usr/share/gocode + GO111MODULE=off + golist --imported --package-path github.com/google/trillian --template 'golang({{.}})\n' --with-tests --skip-self + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/golang-github-google-trillian-1.4.2-2.fc41.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 /builddir/build/SPECS/golang-github-google-trillian.spec'], chrootPath='/var/lib/mock/f41-build-50481665-6042607/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=201600uid=1000gid=425user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.ivayf4eh:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=False) Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.ivayf4eh:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '43ac170be4724e6cacb0f8b6afbaed22', '-D', '/var/lib/mock/f41-build-50481665-6042607/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.ivayf4eh:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target aarch64 /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', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: aarch64 Building for target aarch64 setting SOURCE_DATE_EPOCH=1689811200 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.TfvTsC + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.2 + GOPATH=/builddir/build/BUILD/trillian-1.4.2/_build:/usr/share/gocode + GO111MODULE=off + golist --imported --package-path github.com/google/trillian --template 'golang({{.}})\n' --with-tests --skip-self + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.jhT10p + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-2.fc41.aarch64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-2.fc41.aarch64 ++ dirname /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-2.fc41.aarch64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-2.fc41.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-2.fc41 -p /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-2.fc41.aarch64 -g /usr/share/gocode -r '.*example.*' Installing: github.com/google/trillian + IFS= +++ realpath -e --relative-base=. docs examples CONTRIBUTING.md AUTHORS CHANGELOG.md CONTRIBUTORS README.md +++ sort -u ++ listfiles_include='AUTHORS CHANGELOG.md CONTRIBUTING.md CONTRIBUTORS README.md docs examples' ++ echo 'AUTHORS CHANGELOG.md CONTRIBUTING.md CONTRIBUTORS README.md docs examples' + godocs='AUTHORS CHANGELOG.md CONTRIBUTING.md CONTRIBUTORS README.md docs examples' + [[ -n AUTHORS CHANGELOG.md CONTRIBUTING.md CONTRIBUTORS README.md docs examples ]] + IFS= + read -r f + echo %doc '"AUTHORS"' + IFS= + read -r f + echo %doc '"CHANGELOG.md"' + IFS= + read -r f + echo %doc '"CONTRIBUTING.md"' + IFS= + read -r f + echo %doc '"CONTRIBUTORS"' + IFS= + read -r f + echo %doc '"README.md"' + IFS= + read -r f + echo %doc '"docs"' + IFS= + read -r f + echo %doc '"examples"' + IFS= + read -r f + IFS= +++ realpath -e --relative-base=. LICENSE +++ sort -u ++ listfiles_include=LICENSE ++ echo LICENSE + golicenses=LICENSE + [[ -n LICENSE ]] + IFS= + read -r f + echo %license '"LICENSE"' + IFS= + read -r f + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/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/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j12 + /usr/lib/rpm/redhat/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.f28lsR + 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/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + 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-2.fc41 -p /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.2-2.fc41.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/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes '" testing: github.com/google/trillian github.com/google/trillian ? github.com/google/trillian [no test files] github.com/google/trillian/client 2024/04/23 14:07:16 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:07:16 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:07:16 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:07:16 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/client 0.016s github.com/google/trillian/client 2024/04/23 14:07:17 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:07:17 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:07:17 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:07:17 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/client 0.017s github.com/google/trillian/client/backoff PASS ok github.com/google/trillian/client/backoff 3.565s github.com/google/trillian/client/backoff PASS ok github.com/google/trillian/client/backoff 3.565s github.com/google/trillian/crypto/keys PASS ok github.com/google/trillian/crypto/keys 0.012s github.com/google/trillian/crypto/keys PASS ok github.com/google/trillian/crypto/keys 0.013s github.com/google/trillian/crypto/keys/der PASS ok github.com/google/trillian/crypto/keys/der 0.009s github.com/google/trillian/crypto/keys/der PASS ok github.com/google/trillian/crypto/keys/der 0.009s github.com/google/trillian/crypto/keys/pem PASS ok github.com/google/trillian/crypto/keys/pem 0.019s github.com/google/trillian/crypto/keys/pem PASS ok github.com/google/trillian/crypto/keys/pem 0.019s 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.006s github.com/google/trillian/docs/storage/commit_log/signer PASS ok github.com/google/trillian/docs/storage/commit_log/signer 0.006s 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.006s github.com/google/trillian/docs/storage/commit_log/simkafka PASS ok github.com/google/trillian/docs/storage/commit_log/simkafka 0.006s github.com/google/trillian/experimental/batchmap 2024/04/23 14:07:34 Executing pipeline with the direct runner. 2024/04/23 14:07:34 Pipeline: 2024/04/23 14:07:34 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/04/23 14:07:34 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/04/23 14:07:34 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[18] done 2024/04/23 14:07:34 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[13] done 2024/04/23 14:07:34 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[7] done 2024/04/23 14:07:34 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[2] done 2024/04/23 14:07:34 Executing pipeline with the direct runner. 2024/04/23 14:07:34 Pipeline: 2024/04/23 14:07:34 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/04/23 14:07:34 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/04/23 14:07:34 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[18] done 2024/04/23 14:07:34 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[13] done 2024/04/23 14:07:34 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[7] done 2024/04/23 14:07:34 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[2] done 2024/04/23 14:07:34 Executing pipeline with the direct runner. 2024/04/23 14:07:34 Pipeline: 2024/04/23 14:07:34 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/04/23 14:07:34 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/04/23 14:07:34 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[18] done 2024/04/23 14:07:34 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[13] done 2024/04/23 14:07:34 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[7] done 2024/04/23 14:07:34 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[2] done 2024/04/23 14:07:34 Executing pipeline with the direct runner. 2024/04/23 14:07:34 Pipeline: 2024/04/23 14:07:34 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/04/23 14:07:34 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/04/23 14:07:34 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[18] done 2024/04/23 14:07:34 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[13] done 2024/04/23 14:07:34 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[7] done 2024/04/23 14:07:34 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[2] done 2024/04/23 14:07:34 Executing pipeline with the direct runner. 2024/04/23 14:07:34 Pipeline: 2024/04/23 14:07:34 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/04/23 14:07:34 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/04/23 14:07:34 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[18] done 2024/04/23 14:07:34 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[13] done 2024/04/23 14:07:34 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[7] done 2024/04/23 14:07:34 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[2] done 2024/04/23 14:07:34 Executing pipeline with the direct runner. 2024/04/23 14:07:34 Pipeline: 2024/04/23 14:07:34 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/04/23 14:07:34 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/04/23 14:07:34 Executing pipeline with the direct runner. 2024/04/23 14:07:34 Pipeline: 2024/04/23 14:07:34 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/04/23 14:07:34 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/04/23 14:07:34 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[18] done 2024/04/23 14:07:34 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[13] done 2024/04/23 14:07:34 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[7] done 2024/04/23 14:07:34 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[2] done 2024/04/23 14:07:34 Executing pipeline with the direct runner. 2024/04/23 14:07:34 Pipeline: 2024/04/23 14:07:34 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/04/23 14:07:34 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/04/23 14:07:34 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[18] done 2024/04/23 14:07:34 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[13] done 2024/04/23 14:07:34 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[7] done 2024/04/23 14:07:34 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[2] done 2024/04/23 14:07:34 Executing pipeline with the direct runner. 2024/04/23 14:07:34 Pipeline: 2024/04/23 14:07:34 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/04/23 14:07:34 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/04/23 14:07:34 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[18] done 2024/04/23 14:07:34 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[13] done 2024/04/23 14:07:34 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[7] done 2024/04/23 14:07:34 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[2] done 2024/04/23 14:07:34 Executing pipeline with the direct runner. 2024/04/23 14:07:34 Pipeline: 2024/04/23 14:07:34 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/04/23 14:07:34 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/04/23 14:07:34 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[18] done 2024/04/23 14:07:34 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[13] done 2024/04/23 14:07:34 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[7] done 2024/04/23 14:07:34 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[2] done 2024/04/23 14:07:34 Executing pipeline with the direct runner. 2024/04/23 14:07:34 Pipeline: 2024/04/23 14:07:34 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/04/23 14:07:34 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/04/23 14:07:34 Executing pipeline with the direct runner. 2024/04/23 14:07:34 Pipeline: 2024/04/23 14:07:34 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/04/23 14:07:34 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/04/23 14:07:34 Executing pipeline with the direct runner. 2024/04/23 14:07:34 Pipeline: 2024/04/23 14:07:34 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/04/23 14:07:34 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/04/23 14:07:34 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[18] done 2024/04/23 14:07:34 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[13] done 2024/04/23 14:07:34 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[7] done 2024/04/23 14:07:34 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:34 wait[2] done 2024/04/23 14:07:34 Executing pipeline with the direct runner. 2024/04/23 14:07:34 Pipeline: 2024/04/23 14:07:34 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/04/23 14:07:34 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/04/23 14:07:35 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[18] done 2024/04/23 14:07:35 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[13] done 2024/04/23 14:07:35 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[7] done 2024/04/23 14:07:35 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[2] done PASS ok github.com/google/trillian/experimental/batchmap 0.518s github.com/google/trillian/experimental/batchmap 2024/04/23 14:07:35 Executing pipeline with the direct runner. 2024/04/23 14:07:35 Pipeline: 2024/04/23 14:07:35 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/04/23 14:07:35 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/04/23 14:07:35 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[18] done 2024/04/23 14:07:35 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[13] done 2024/04/23 14:07:35 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[7] done 2024/04/23 14:07:35 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[2] done 2024/04/23 14:07:35 Executing pipeline with the direct runner. 2024/04/23 14:07:35 Pipeline: 2024/04/23 14:07:35 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/04/23 14:07:35 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/04/23 14:07:35 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[18] done 2024/04/23 14:07:35 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[13] done 2024/04/23 14:07:35 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[7] done 2024/04/23 14:07:35 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[2] done 2024/04/23 14:07:35 Executing pipeline with the direct runner. 2024/04/23 14:07:35 Pipeline: 2024/04/23 14:07:35 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/04/23 14:07:35 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/04/23 14:07:35 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[18] done 2024/04/23 14:07:35 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[13] done 2024/04/23 14:07:35 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[7] done 2024/04/23 14:07:35 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[2] done 2024/04/23 14:07:35 Executing pipeline with the direct runner. 2024/04/23 14:07:35 Pipeline: 2024/04/23 14:07:35 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/04/23 14:07:35 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/04/23 14:07:35 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[18] done 2024/04/23 14:07:35 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[13] done 2024/04/23 14:07:35 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[7] done 2024/04/23 14:07:35 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[2] done 2024/04/23 14:07:35 Executing pipeline with the direct runner. 2024/04/23 14:07:35 Pipeline: 2024/04/23 14:07:35 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/04/23 14:07:35 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/04/23 14:07:35 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[18] done 2024/04/23 14:07:35 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[13] done 2024/04/23 14:07:35 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[7] done 2024/04/23 14:07:35 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[2] done 2024/04/23 14:07:35 Executing pipeline with the direct runner. 2024/04/23 14:07:35 Pipeline: 2024/04/23 14:07:35 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/04/23 14:07:35 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/04/23 14:07:35 Executing pipeline with the direct runner. 2024/04/23 14:07:35 Pipeline: 2024/04/23 14:07:35 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/04/23 14:07:35 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/04/23 14:07:35 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[18] done 2024/04/23 14:07:35 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[13] done 2024/04/23 14:07:35 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[7] done 2024/04/23 14:07:35 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[2] done 2024/04/23 14:07:35 Executing pipeline with the direct runner. 2024/04/23 14:07:35 Pipeline: 2024/04/23 14:07:35 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/04/23 14:07:35 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/04/23 14:07:35 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[18] done 2024/04/23 14:07:35 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[13] done 2024/04/23 14:07:35 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[7] done 2024/04/23 14:07:35 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[2] done 2024/04/23 14:07:35 Executing pipeline with the direct runner. 2024/04/23 14:07:35 Pipeline: 2024/04/23 14:07:35 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/04/23 14:07:35 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/04/23 14:07:35 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[18] done 2024/04/23 14:07:35 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[13] done 2024/04/23 14:07:35 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[7] done 2024/04/23 14:07:35 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[2] done 2024/04/23 14:07:35 Executing pipeline with the direct runner. 2024/04/23 14:07:35 Pipeline: 2024/04/23 14:07:35 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/04/23 14:07:35 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/04/23 14:07:35 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[18] done 2024/04/23 14:07:35 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[13] done 2024/04/23 14:07:35 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[7] done 2024/04/23 14:07:35 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:35 wait[2] done 2024/04/23 14:07:35 Executing pipeline with the direct runner. 2024/04/23 14:07:35 Pipeline: 2024/04/23 14:07:35 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/04/23 14:07:35 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/04/23 14:07:35 Executing pipeline with the direct runner. 2024/04/23 14:07:35 Pipeline: 2024/04/23 14:07:35 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/04/23 14:07:35 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/04/23 14:07:35 Executing pipeline with the direct runner. 2024/04/23 14:07:35 Pipeline: 2024/04/23 14:07:35 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/04/23 14:07:35 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/04/23 14:07:36 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:36 wait[18] done 2024/04/23 14:07:36 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:36 wait[13] done 2024/04/23 14:07:36 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:36 wait[7] done 2024/04/23 14:07:36 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:36 wait[2] done 2024/04/23 14:07:36 Executing pipeline with the direct runner. 2024/04/23 14:07:36 Pipeline: 2024/04/23 14:07:36 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/04/23 14:07:36 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/04/23 14:07:36 wait[18] unblocked w/ 1 [false] 2024/04/23 14:07:36 wait[18] done 2024/04/23 14:07:36 wait[13] unblocked w/ 1 [false] 2024/04/23 14:07:36 wait[13] done 2024/04/23 14:07:36 wait[7] unblocked w/ 1 [false] 2024/04/23 14:07:36 wait[7] done 2024/04/23 14:07:36 wait[2] unblocked w/ 1 [false] 2024/04/23 14:07:36 wait[2] done PASS ok github.com/google/trillian/experimental/batchmap 0.464s github.com/google/trillian/extension ? github.com/google/trillian/extension [no test files] github.com/google/trillian/integration 2024/04/23 14:07:37 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration 11.022s github.com/google/trillian/integration 2024/04/23 14:07:49 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration 10.983s github.com/google/trillian/integration/admin 2024/04/23 14:08:01 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:01 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:01 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:01 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:01 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:01 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:01 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:01 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:01 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/admin 0.017s github.com/google/trillian/integration/admin 2024/04/23 14:08:02 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:02 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:02 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:02 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:02 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:02 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:02 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:02 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2024/04/23 14:08:02 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/admin 0.018s github.com/google/trillian/integration/format PASS ok github.com/google/trillian/integration/format 1.002s github.com/google/trillian/integration/format PASS ok github.com/google/trillian/integration/format 1.012s github.com/google/trillian/integration/quota # github.com/google/trillian/testonly/integration/etcd ../../testonly/integration/etcd/etcd.go:89:36: e.Config().LCUrls undefined (type "go.etcd.io/etcd/server/v3/embed".Config has no field or method LCUrls) ../../testonly/integration/etcd/etcd.go:117:6: cfg.LCUrls undefined (type *"go.etcd.io/etcd/server/v3/embed".Config has no field or method LCUrls) ../../testonly/integration/etcd/etcd.go:118:6: cfg.ACUrls undefined (type *"go.etcd.io/etcd/server/v3/embed".Config has no field or method ACUrls) ../../testonly/integration/etcd/etcd.go:119:6: cfg.LPUrls undefined (type *"go.etcd.io/etcd/server/v3/embed".Config has no field or method LPUrls) ../../testonly/integration/etcd/etcd.go:120:6: cfg.APUrls undefined (type *"go.etcd.io/etcd/server/v3/embed".Config has no field or method APUrls) FAIL github.com/google/trillian/integration/quota [build failed] error: Bad exit status from /var/tmp/rpm-tmp.f28lsR (%check) Bad exit status from /var/tmp/rpm-tmp.f28lsR (%check) RPM build errors: Child return code was: 1 EXCEPTION: [Error('Command failed: \n # /usr/bin/systemd-nspawn -q -M 43ac170be4724e6cacb0f8b6afbaed22 -D /var/lib/mock/f41-build-50481665-6042607/root -a -u mockbuild --capability=cap_ipc_lock --bind=/tmp/mock-resolv.ivayf4eh:/etc/resolv.conf --bind=/dev/btrfs-control --bind=/dev/mapper/control --bind=/dev/fuse --bind=/dev/loop-control --bind=/dev/loop0 --bind=/dev/loop1 --bind=/dev/loop2 --bind=/dev/loop3 --bind=/dev/loop4 --bind=/dev/loop5 --bind=/dev/loop6 --bind=/dev/loop7 --bind=/dev/loop8 --bind=/dev/loop9 --bind=/dev/loop10 --bind=/dev/loop11 --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/builddir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin \'--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"\' \'--setenv=PS1= \\s-\\v\\$ \' --setenv=LANG=C.UTF-8 --resolv-conf=off bash --login -c \'/usr/bin/rpmbuild -ba --noprep --noclean --target aarch64 /builddir/build/SPECS/golang-github-google-trillian.spec\'\n', 1)] Traceback (most recent call last): File "/usr/lib/python3.12/site-packages/mockbuild/trace_decorator.py", line 93, in trace result = func(*args, **kw) ^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/mockbuild/util.py", line 612, in do_with_status raise exception.Error("Command failed: \n # %s\n%s" % (cmd_pretty(command, env), output), child.returncode) mockbuild.exception.Error: Command failed: # /usr/bin/systemd-nspawn -q -M 43ac170be4724e6cacb0f8b6afbaed22 -D /var/lib/mock/f41-build-50481665-6042607/root -a -u mockbuild --capability=cap_ipc_lock --bind=/tmp/mock-resolv.ivayf4eh:/etc/resolv.conf --bind=/dev/btrfs-control --bind=/dev/mapper/control --bind=/dev/fuse --bind=/dev/loop-control --bind=/dev/loop0 --bind=/dev/loop1 --bind=/dev/loop2 --bind=/dev/loop3 --bind=/dev/loop4 --bind=/dev/loop5 --bind=/dev/loop6 --bind=/dev/loop7 --bind=/dev/loop8 --bind=/dev/loop9 --bind=/dev/loop10 --bind=/dev/loop11 --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/builddir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin '--setenv=PROMPT_COMMAND=printf "\033]0;\007"' '--setenv=PS1= \s-\v\$ ' --setenv=LANG=C.UTF-8 --resolv-conf=off bash --login -c '/usr/bin/rpmbuild -ba --noprep --noclean --target aarch64 /builddir/build/SPECS/golang-github-google-trillian.spec'