Mock Version: 3.0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target s390x --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'], chrootPath='/var/lib/mock/fedora-rawhide-s390x-1657235942.726094/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=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.cqlngogd:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--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=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.cqlngogd:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--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', 'd6da5d925a004e4b835e7c2d9c74b3ba', '-D', '/var/lib/mock/fedora-rawhide-s390x-1657235942.726094/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.cqlngogd:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--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 --target s390x --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: s390x Building for target s390x setting SOURCE_DATE_EPOCH=1642636800 Wrote: /builddir/build/SRPMS/golang-github-google-trillian-1.4.0-3.fc37.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target s390x --nodeps /builddir/build/SPECS/golang-github-google-trillian.spec'], chrootPath='/var/lib/mock/fedora-rawhide-s390x-1657235942.726094/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=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.cqlngogd:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--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=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.cqlngogd:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--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', '0a0c05480d684425bff872531b031d86', '-D', '/var/lib/mock/fedora-rawhide-s390x-1657235942.726094/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.cqlngogd:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--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 -bb --target s390x --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: s390x Building for target s390x setting SOURCE_DATE_EPOCH=1642636800 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.8CZjwp + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf trillian-1.4.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/trillian-1.4.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd trillian-1.4.0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + rm -fr /builddir/build/BUILD/trillian-1.4.0/vendor + [[ ! -e /builddir/build/BUILD/trillian-1.4.0/_build/bin ]] + install -m 0755 -vd /builddir/build/BUILD/trillian-1.4.0/_build/bin install: creating directory '/builddir/build/BUILD/trillian-1.4.0/_build' install: creating directory '/builddir/build/BUILD/trillian-1.4.0/_build/bin' + export GOPATH=/builddir/build/BUILD/trillian-1.4.0/_build:/usr/share/gocode + GOPATH=/builddir/build/BUILD/trillian-1.4.0/_build:/usr/share/gocode + [[ ! -e /builddir/build/BUILD/trillian-1.4.0/_build/src/github.com/google/trillian ]] ++ dirname /builddir/build/BUILD/trillian-1.4.0/_build/src/github.com/google/trillian + install -m 0755 -vd /builddir/build/BUILD/trillian-1.4.0/_build/src/github.com/google install: creating directory '/builddir/build/BUILD/trillian-1.4.0/_build/src' install: creating directory '/builddir/build/BUILD/trillian-1.4.0/_build/src/github.com' install: creating directory '/builddir/build/BUILD/trillian-1.4.0/_build/src/github.com/google' + ln -fs /builddir/build/BUILD/trillian-1.4.0 /builddir/build/BUILD/trillian-1.4.0/_build/src/github.com/google/trillian + cd /builddir/build/BUILD/trillian-1.4.0/_build/src/github.com/google/trillian ++ find . -name '*.go' + sed -i 's|github.com/go-redis/redis|gopkg.in/redis.v6|' ./util/process.go ./util/election2/testonly/tests.go ./util/election2/testonly/election_test.go ./util/election2/testonly/election.go ./util/election2/testonly/decorator.go ./util/election2/noop.go ./util/election2/etcd/election_test.go ./util/election2/etcd/election.go ./util/election2/election.go ./util/election/tracker_test.go ./util/election/tracker.go ./util/election/runner_test.go ./util/election/runner.go ./util/clock/timesource_test.go ./util/clock/timesource.go ./util/clock/timer_test.go ./util/clock/timer.go ./util/clock/time_test.go ./util/clock/time.go ./types/logroot_test.go ./types/logroot.go ./trillian_log_api_grpc.pb.go ./trillian_log_api.pb.go ./trillian_admin_api_grpc.pb.go ./trillian_admin_api.pb.go ./trillian.pb.go ./trees/types.go ./trees/trees_test.go ./trees/trees.go ./trees/optype_string.go ./trees/gen.go ./tools/tools.go ./testonly/tmock/mock_log_server.go ./testonly/tmock/mock_admin_server.go ./testonly/signer.go ./testonly/setup/tls.go ./testonly/setup/flags.go ./testonly/setup/files.go ./testonly/paths.go ./testonly/mock_server.go ./testonly/mdm/mdmtest/main.go ./testonly/mdm/mdm.go ./testonly/matchers/proto_test.go ./testonly/matchers/proto.go ./testonly/matchers/atleast_test.go ./testonly/matchers/atleast.go ./testonly/marshalling.go ./testonly/keys.go ./testonly/integration/registry.go ./testonly/integration/port.go ./testonly/integration/logenv.go ./testonly/integration/etcd/etcd.go ./testonly/hasher.go ./testonly/flagsaver/flagsaver_test.go ./testonly/flagsaver/flagsaver.go ./testonly/errors.go ./testonly/encoding.go ./testonly/doc.go ./storage/tree_validation_test.go ./storage/tree_validation.go ./storage/tree_id_test.go ./storage/tree_id.go ./storage/tree/node.go ./storage/tools/hasher/main.go ./storage/tools/dump_tree/nochange_test.go ./storage/tools/dump_tree/main.go ./storage/tools/dump_tree/dumplib.go ./storage/testonly/transaction.go ./storage/testonly/matchers.go ./storage/testonly/fake_node_reader.go ./storage/testonly/admin_storage_tester.go ./storage/testdb/testdb_test.go ./storage/testdb/testdb.go ./storage/storagepb/storage.pb.go ./storage/storagepb/gen.go ./storage/sql.go ./storage/provider_test.go ./storage/provider.go ./storage/mysql/tree_storage.go ./storage/mysql/storage_test.go ./storage/mysql/queue_batching.go ./storage/mysql/queue.go ./storage/mysql/provider_test.go ./storage/mysql/provider.go ./storage/mysql/log_storage_test.go ./storage/mysql/log_storage.go ./storage/mysql/errors.go ./storage/mysql/admin_storage_test.go ./storage/mysql/admin_storage.go ./storage/mock_storage.go ./storage/memory/tree_storage.go ./storage/memory/tree_debug.go ./storage/memory/provider_test.go ./storage/memory/provider.go ./storage/memory/log_storage.go ./storage/memory/doc.go ./storage/memory/admin_storage.go ./storage/log_storage.go ./storage/gen.go ./storage/cloudspanner/tree_storage.go ./storage/cloudspanner/storage_provider.go ./storage/cloudspanner/spannerpb/spanner.pb.go ./storage/cloudspanner/spannerpb/gen.go ./storage/cloudspanner/spanner.sdl.go ./storage/cloudspanner/sdl_test.go ./storage/cloudspanner/sdl.go ./storage/cloudspanner/log_storage_test.go ./storage/cloudspanner/log_storage.go ./storage/cloudspanner/getdb_test.go ./storage/cloudspanner/admin.go ./storage/cache/suffix_test.go ./storage/cache/suffix.go ./storage/cache/subtree_cache_test.go ./storage/cache/subtree_cache.go ./storage/cache/mock_node_storage.go ./storage/cache/log_tile.go ./storage/cache/layout_test.go ./storage/cache/layout.go ./storage/cache/gen.go ./storage/admin_storage.go ./storage/admin_helpers_test.go ./storage/admin_helpers.go ./server/validate.go ./server/proof_fetcher_test.go ./server/proof_fetcher.go ./server/log_rpc_server_test.go ./server/log_rpc_server.go ./server/interceptor/interceptor_test.go ./server/interceptor/interceptor.go ./server/errors/errors_test.go ./server/errors/errors.go ./server/errors/doc.go ./server/admin/tree_gc_test.go ./server/admin/tree_gc.go ./server/admin/doc.go ./server/admin/admin_server_test.go ./server/admin/admin_server.go ./quota/redis/redistb/update_token_bucket.gen.go ./quota/redis/redistb/redistb_test.go ./quota/redis/redistb/redistb.go ./quota/redis/redistb/gen.go ./quota/redis/redistb/embed_redis.go ./quota/redis/redisqm/manager.go ./quota/quota_test.go ./quota/quota.go ./quota/provider_test.go ./quota/provider.go ./quota/noop_test.go ./quota/noop.go ./quota/mysqlqm/quota_provider.go ./quota/mysqlqm/mysql_quota_test.go ./quota/mysqlqm/mysql_quota.go ./quota/mock_quota.go ./quota/metrics.go ./quota/kind_string.go ./quota/group_string.go ./quota/gen.go ./quota/etcd/storagepb/storagepb.pb.go ./quota/etcd/storagepb/gen.go ./quota/etcd/storage/quota_storage_test.go ./quota/etcd/storage/quota_storage.go ./quota/etcd/quotapb/quotapb_grpc.pb.go ./quota/etcd/quotapb/quotapb.pb.go ./quota/etcd/quotapb/gen.go ./quota/etcd/quotapb/doc.go ./quota/etcd/quotaapi/quota_server_test.go ./quota/etcd/quotaapi/quota_server.go ./quota/etcd/quotaapi/name_test.go ./quota/etcd/quotaapi/name.go ./quota/etcd/quotaapi/conversions_test.go ./quota/etcd/quotaapi/conversions.go ./quota/etcd/quota_provider.go ./quota/etcd/etcdqm/etcdqm_test.go ./quota/etcd/etcdqm/etcdqm.go ./quota/doc.go ./quota/cacheqm/cache_test.go ./quota/cacheqm/cache.go ./monitoring/trace.go ./monitoring/testonly/metrics.go ./monitoring/testonly/delta.go ./monitoring/rpc_stats_interceptor_test.go ./monitoring/rpc_stats_interceptor.go ./monitoring/prometheus/metrics_test.go ./monitoring/prometheus/metrics.go ./monitoring/opencensus/trace.go ./monitoring/metrics_test.go ./monitoring/metrics.go ./monitoring/labels.go ./monitoring/inert.go ./monitoring/buckets_test.go ./monitoring/buckets.go ./merkle/testonly/constants.go ./merkle/smt/writer_test.go ./merkle/smt/writer.go ./merkle/smt/tiles_test.go ./merkle/smt/tiles.go ./merkle/smt/tile_test.go ./merkle/smt/tile.go ./merkle/smt/nodes_test.go ./merkle/smt/nodes.go ./merkle/smt/node/id_test.go ./merkle/smt/node/id.go ./merkle/smt/layout_test.go ./merkle/smt/layout.go ./merkle/smt/hstar3_test.go ./merkle/smt/hstar3.go ./merkle/smt/hasher.go ./merkle/rfc6962/rfc6962_test.go ./merkle/rfc6962/rfc6962.go ./merkle/logverifier/log_verifier_test.go ./merkle/logverifier/log_verifier.go ./merkle/logverifier/hash_chainer.go ./merkle/log_proofs_test.go ./merkle/log_proofs.go ./merkle/hashers/tree_hasher.go ./merkle/doc.go ./merkle/coniks/coniks_test.go ./merkle/coniks/coniks.go ./merkle/compact/range_test.go ./merkle/compact/range.go ./merkle/compact/nodes_test.go ./merkle/compact/nodes.go ./log/sequencer_test.go ./log/sequencer_manager_test.go ./log/sequencer_manager.go ./log/sequencer.go ./log/operation_manager_test.go ./log/operation_manager.go ./log/mock_operation.go ./log/gen.go ./internal/merkle/inmemory/merkle_tree_test.go ./internal/merkle/inmemory/merkle_tree.go ./integration/storagetest/treehelpers.go ./integration/storagetest/testrunner.go ./integration/storagetest/logtests.go ./integration/storagetest/loghelpers.go ./integration/quota/quota_test.go ./integration/quota/doc.go ./integration/log_integration_test.go ./integration/log.go ./integration/doc.go ./integration/admin/doc.go ./integration/admin/admin_integration_test.go ./gen.go ./extension/registry.go ./experimental/batchmap/tmap_test.go ./experimental/batchmap/tmap.go ./experimental/batchmap/tile.go ./experimental/batchmap/cmd/verify/verify.go ./experimental/batchmap/cmd/build/mapdemo.go ./experimental/batchmap/batchmap.shims.go ./docs/storage/commit_log/simkafka/kafka_test.go ./docs/storage/commit_log/simkafka/kafka.go ./docs/storage/commit_log/simelection/election.go ./docs/storage/commit_log/signer/types.go ./docs/storage/commit_log/signer/signer_test.go ./docs/storage/commit_log/signer/signer.go ./docs/storage/commit_log/signer/fakedb.go ./docs/storage/commit_log/main.go ./docs/merkletree/treetex/main.go ./crypto/keyspb/keyspb.pb.go ./crypto/keys/testonly/keys.go ./crypto/keys/pkcs11/pkcs11_test.go ./crypto/keys/pkcs11/pkcs11.go ./crypto/keys/pkcs11/no_pkcs11.go ./crypto/keys/pem/pem_test.go ./crypto/keys/pem/pem.go ./crypto/keys/handlers_test.go ./crypto/keys/handlers.go ./crypto/keys/der/der_test.go ./crypto/keys/der/der.go ./cmd/updatetree/main_test.go ./cmd/updatetree/main.go ./cmd/trillian_log_signer/main.go ./cmd/trillian_log_server/main.go ./cmd/internal/serverutil/main.go ./cmd/flags_test.go ./cmd/flags.go ./cmd/deletetree/main.go ./cmd/createtree/main_test.go ./cmd/createtree/main.go ./client/timeout/timeout.go ./client/rpcflags/rpcflags_test.go ./client/rpcflags/rpcflags.go ./client/mutating_client_test.go ./client/log_verifier_test.go ./client/log_verifier.go ./client/log_client_test.go ./client/log_client.go ./client/backoff/backoff_test.go ./client/backoff/backoff.go ./client/admin.go ++ find . -name '*.go' + sed -i 's|github.com/apache/beam/sdks|github.com/apache/beam/sdks/v2|' ./gen.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 ./util/process.go ./util/election2/election.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/election2/etcd/election.go ./util/election2/etcd/election_test.go ./util/election/runner.go ./util/election/runner_test.go ./util/election/tracker.go ./util/election/tracker_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 ./types/logroot.go ./types/logroot_test.go ./trees/gen.go ./trees/optype_string.go ./trees/trees.go ./trees/trees_test.go ./trees/types.go ./tools/tools.go ./testonly/doc.go ./testonly/encoding.go ./testonly/errors.go ./testonly/hasher.go ./testonly/keys.go ./testonly/marshalling.go ./testonly/mock_server.go ./testonly/paths.go ./testonly/signer.go ./testonly/tmock/mock_admin_server.go ./testonly/tmock/mock_log_server.go ./testonly/setup/files.go ./testonly/setup/flags.go ./testonly/setup/tls.go ./testonly/mdm/mdm.go ./testonly/mdm/mdmtest/main.go ./testonly/matchers/atleast.go ./testonly/matchers/atleast_test.go ./testonly/matchers/proto.go ./testonly/matchers/proto_test.go ./testonly/integration/logenv.go ./testonly/integration/port.go ./testonly/integration/registry.go ./testonly/integration/etcd/etcd.go ./testonly/flagsaver/flagsaver.go ./testonly/flagsaver/flagsaver_test.go ./storage/admin_helpers.go ./storage/admin_helpers_test.go ./storage/admin_storage.go ./storage/gen.go ./storage/log_storage.go ./storage/mock_storage.go ./storage/provider.go ./storage/provider_test.go ./storage/sql.go ./storage/tree_id.go ./storage/tree_id_test.go ./storage/tree_validation.go ./storage/tree_validation_test.go ./storage/tree/node.go ./storage/tools/hasher/main.go ./storage/tools/dump_tree/dumplib.go ./storage/tools/dump_tree/main.go ./storage/tools/dump_tree/nochange_test.go ./storage/testonly/admin_storage_tester.go ./storage/testonly/fake_node_reader.go ./storage/testonly/matchers.go ./storage/testonly/transaction.go ./storage/testdb/testdb.go ./storage/testdb/testdb_test.go ./storage/storagepb/gen.go ./storage/storagepb/storage.pb.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/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/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/storage_provider.go ./storage/cloudspanner/tree_storage.go ./storage/cloudspanner/spannerpb/gen.go ./storage/cloudspanner/spannerpb/spanner.pb.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 ./server/log_rpc_server.go ./server/log_rpc_server_test.go ./server/proof_fetcher.go ./server/proof_fetcher_test.go ./server/validate.go ./server/interceptor/interceptor.go ./server/interceptor/interceptor_test.go ./server/errors/doc.go ./server/errors/errors.go ./server/errors/errors_test.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 ./quota/doc.go ./quota/gen.go ./quota/group_string.go ./quota/kind_string.go ./quota/metrics.go ./quota/mock_quota.go ./quota/noop.go ./quota/noop_test.go ./quota/provider.go ./quota/provider_test.go ./quota/quota.go ./quota/quota_test.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 ./quota/redis/redisqm/manager.go ./quota/mysqlqm/mysql_quota.go ./quota/mysqlqm/mysql_quota_test.go ./quota/mysqlqm/quota_provider.go ./quota/etcd/quota_provider.go ./quota/etcd/storagepb/gen.go ./quota/etcd/storagepb/storagepb.pb.go ./quota/etcd/storage/quota_storage.go ./quota/etcd/storage/quota_storage_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/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/etcdqm/etcdqm.go ./quota/etcd/etcdqm/etcdqm_test.go ./quota/cacheqm/cache.go ./quota/cacheqm/cache_test.go ./monitoring/buckets.go ./monitoring/buckets_test.go ./monitoring/inert.go ./monitoring/labels.go ./monitoring/metrics.go ./monitoring/metrics_test.go ./monitoring/rpc_stats_interceptor.go ./monitoring/rpc_stats_interceptor_test.go ./monitoring/trace.go ./monitoring/testonly/delta.go ./monitoring/testonly/metrics.go ./monitoring/prometheus/metrics.go ./monitoring/prometheus/metrics_test.go ./monitoring/opencensus/trace.go ./merkle/doc.go ./merkle/log_proofs.go ./merkle/log_proofs_test.go ./merkle/testonly/constants.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/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/smt/node/id.go ./merkle/smt/node/id_test.go ./merkle/rfc6962/rfc6962.go ./merkle/rfc6962/rfc6962_test.go ./merkle/logverifier/hash_chainer.go ./merkle/logverifier/log_verifier.go ./merkle/logverifier/log_verifier_test.go ./merkle/hashers/tree_hasher.go ./merkle/coniks/coniks.go ./merkle/coniks/coniks_test.go ./merkle/compact/nodes.go ./merkle/compact/nodes_test.go ./merkle/compact/range.go ./merkle/compact/range_test.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 ./internal/merkle/inmemory/merkle_tree.go ./internal/merkle/inmemory/merkle_tree_test.go ./integration/doc.go ./integration/log.go ./integration/log_integration_test.go ./integration/storagetest/loghelpers.go ./integration/storagetest/logtests.go ./integration/storagetest/testrunner.go ./integration/storagetest/treehelpers.go ./integration/quota/doc.go ./integration/quota/quota_test.go ./integration/admin/admin_integration_test.go ./integration/admin/doc.go ./extension/registry.go ./experimental/batchmap/batchmap.shims.go ./experimental/batchmap/tile.go ./experimental/batchmap/tmap.go ./experimental/batchmap/tmap_test.go ./experimental/batchmap/cmd/verify/verify.go ./experimental/batchmap/cmd/build/mapdemo.go ./docs/storage/commit_log/main.go ./docs/storage/commit_log/simkafka/kafka.go ./docs/storage/commit_log/simkafka/kafka_test.go ./docs/storage/commit_log/simelection/election.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/merkletree/treetex/main.go ./crypto/keyspb/keyspb.pb.go ./crypto/keys/handlers.go ./crypto/keys/handlers_test.go ./crypto/keys/testonly/keys.go ./crypto/keys/pkcs11/no_pkcs11.go ./crypto/keys/pkcs11/pkcs11.go ./crypto/keys/pkcs11/pkcs11_test.go ./crypto/keys/pem/pem.go ./crypto/keys/pem/pem_test.go ./crypto/keys/der/der.go ./crypto/keys/der/der_test.go ./cmd/flags.go ./cmd/flags_test.go ./cmd/updatetree/main.go ./cmd/updatetree/main_test.go ./cmd/trillian_log_signer/main.go ./cmd/trillian_log_server/main.go ./cmd/internal/serverutil/main.go ./cmd/deletetree/main.go ./cmd/createtree/main.go ./cmd/createtree/main_test.go ./client/admin.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/timeout/timeout.go ./client/rpcflags/rpcflags.go ./client/rpcflags/rpcflags_test.go ./client/backoff/backoff.go ./client/backoff/backoff_test.go + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.kdzN34 + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x '!=' / ']' + rm -rf /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x ++ dirname /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x + cd trillian-1.4.0 + cd /builddir/build/BUILD/trillian-1.4.0/_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.0/_build/bin -s /builddir/build/BUILD/trillian-1.4.0/_build -o golang-github-google-trillian-devel.file-list -O /builddir/build/BUILD/trillian-1.4.0 -V 1.4.0-3.fc37 -p /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x -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 + /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 + /usr/lib/rpm/redhat/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.N4P9q4 + umask 022 + cd /builddir/build/BUILD + '[' -f /usr/lib/rpm/generate-rpm-note.sh ']' + /usr/lib/rpm/generate-rpm-note.sh golang-github-google-trillian 1.4.0-3.fc37 s390x + cd trillian-1.4.0 + LDFLAGS=' -X github.com/google/trillian/version=1.4.0' + 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 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-dT,/builddir/build/BUILD/trillian-1.4.0/.package_note-golang-github-google-trillian-1.4.0-3.fc37.s390x.ld ' + go-rpm-integration check -i github.com/google/trillian -b /builddir/build/BUILD/trillian-1.4.0/_build/bin -s /builddir/build/BUILD/trillian-1.4.0/_build -V 1.4.0-3.fc37 -p /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x -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.0/_build/src PATH: /builddir/build/BUILD/trillian-1.4.0/_build/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin GOPATH: /builddir/build/BUILD/trillian-1.4.0/_build:/usr/share/gocode GO111MODULE: off command: go test -buildmode pie -compiler gc -ldflags " -X github.com/google/trillian/version=1.4.0 -extldflags '-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-dT,/builddir/build/BUILD/trillian-1.4.0/.package_note-golang-github-google-trillian-1.4.0-3.fc37.s390x.ld '" testing: github.com/google/trillian github.com/google/trillian ? github.com/google/trillian [no test files] github.com/google/trillian/client 2022/07/07 23:26:45 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:26:45 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:26:45 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:26:45 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/client 0.006s github.com/google/trillian/client 2022/07/07 23:26:46 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:26:46 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:26:46 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:26:46 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/client 0.007s github.com/google/trillian/client/backoff PASS ok github.com/google/trillian/client/backoff 3.558s github.com/google/trillian/client/backoff PASS ok github.com/google/trillian/client/backoff 3.557s github.com/google/trillian/client/timeout ? github.com/google/trillian/client/timeout [no test files] github.com/google/trillian/crypto/keys PASS ok github.com/google/trillian/crypto/keys 0.024s github.com/google/trillian/crypto/keys PASS ok github.com/google/trillian/crypto/keys 0.023s github.com/google/trillian/crypto/keys/der PASS ok github.com/google/trillian/crypto/keys/der 0.023s github.com/google/trillian/crypto/keys/pem PASS ok github.com/google/trillian/crypto/keys/pem 0.029s github.com/google/trillian/crypto/keys/pkcs11 ? github.com/google/trillian/crypto/keys/pkcs11 [no test files] github.com/google/trillian/crypto/keys/testonly ? github.com/google/trillian/crypto/keys/testonly [no test files] github.com/google/trillian/crypto/keyspb ? github.com/google/trillian/crypto/keyspb [no test files] github.com/google/trillian/docs/storage/commit_log/signer PASS ok github.com/google/trillian/docs/storage/commit_log/signer 0.002s github.com/google/trillian/docs/storage/commit_log/signer PASS ok github.com/google/trillian/docs/storage/commit_log/signer 0.002s github.com/google/trillian/docs/storage/commit_log/simelection ? github.com/google/trillian/docs/storage/commit_log/simelection [no test files] github.com/google/trillian/docs/storage/commit_log/simkafka PASS ok github.com/google/trillian/docs/storage/commit_log/simkafka 0.002s github.com/google/trillian/docs/storage/commit_log/simkafka PASS ok github.com/google/trillian/docs/storage/commit_log/simkafka 0.002s github.com/google/trillian/experimental/batchmap 2022/07/07 23:27:06 Executing pipeline with the direct runner. 2022/07/07 23:27:06 Pipeline: 2022/07/07 23:27:06 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}] -> [] 2022/07/07 23:27:06 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] 2022/07/07 23:27:06 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[18] done 2022/07/07 23:27:06 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[13] done 2022/07/07 23:27:06 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[7] done 2022/07/07 23:27:06 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[2] done 2022/07/07 23:27:06 Executing pipeline with the direct runner. 2022/07/07 23:27:06 Pipeline: 2022/07/07 23:27:06 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}] -> [] 2022/07/07 23:27:06 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] 2022/07/07 23:27:06 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[18] done 2022/07/07 23:27:06 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[13] done 2022/07/07 23:27:06 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[7] done 2022/07/07 23:27:06 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[2] done 2022/07/07 23:27:06 Executing pipeline with the direct runner. 2022/07/07 23:27:06 Pipeline: 2022/07/07 23:27:06 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}] -> [] 2022/07/07 23:27:06 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] 2022/07/07 23:27:06 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[18] done 2022/07/07 23:27:06 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[13] done 2022/07/07 23:27:06 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[7] done 2022/07/07 23:27:06 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[2] done 2022/07/07 23:27:06 Executing pipeline with the direct runner. 2022/07/07 23:27:06 Pipeline: 2022/07/07 23:27:06 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}] -> [] 2022/07/07 23:27:06 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] 2022/07/07 23:27:06 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[18] done 2022/07/07 23:27:06 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[13] done 2022/07/07 23:27:06 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[7] done 2022/07/07 23:27:06 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[2] done 2022/07/07 23:27:06 Executing pipeline with the direct runner. 2022/07/07 23:27:06 Pipeline: 2022/07/07 23:27:06 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}] -> [] 2022/07/07 23:27:06 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] 2022/07/07 23:27:06 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[18] done 2022/07/07 23:27:06 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[13] done 2022/07/07 23:27:06 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[7] done 2022/07/07 23:27:06 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[2] done 2022/07/07 23:27:06 Executing pipeline with the direct runner. 2022/07/07 23:27:06 Pipeline: 2022/07/07 23:27:06 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}] -> [] 2022/07/07 23:27:06 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] 2022/07/07 23:27:06 Executing pipeline with the direct runner. 2022/07/07 23:27:06 Pipeline: 2022/07/07 23:27:06 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}] -> [] 2022/07/07 23:27:06 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] 2022/07/07 23:27:06 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[18] done 2022/07/07 23:27:06 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[13] done 2022/07/07 23:27:06 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[7] done 2022/07/07 23:27:06 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[2] done 2022/07/07 23:27:06 Executing pipeline with the direct runner. 2022/07/07 23:27:06 Pipeline: 2022/07/07 23:27:06 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}] -> [] 2022/07/07 23:27:06 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] 2022/07/07 23:27:06 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[18] done 2022/07/07 23:27:06 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[13] done 2022/07/07 23:27:06 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[7] done 2022/07/07 23:27:06 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[2] done 2022/07/07 23:27:06 Executing pipeline with the direct runner. 2022/07/07 23:27:06 Pipeline: 2022/07/07 23:27:06 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}] -> [] 2022/07/07 23:27:06 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] 2022/07/07 23:27:06 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[18] done 2022/07/07 23:27:06 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[13] done 2022/07/07 23:27:06 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[7] done 2022/07/07 23:27:06 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[2] done 2022/07/07 23:27:06 Executing pipeline with the direct runner. 2022/07/07 23:27:06 Pipeline: 2022/07/07 23:27:06 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}] -> [] 2022/07/07 23:27:06 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] 2022/07/07 23:27:06 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[18] done 2022/07/07 23:27:06 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[13] done 2022/07/07 23:27:06 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[7] done 2022/07/07 23:27:06 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[2] done 2022/07/07 23:27:06 Executing pipeline with the direct runner. 2022/07/07 23:27:06 Pipeline: 2022/07/07 23:27:06 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}] -> [] 2022/07/07 23:27:06 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] 2022/07/07 23:27:06 Executing pipeline with the direct runner. 2022/07/07 23:27:06 Pipeline: 2022/07/07 23:27:06 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}] -> [] 2022/07/07 23:27:06 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] 2022/07/07 23:27:06 Executing pipeline with the direct runner. 2022/07/07 23:27:06 Pipeline: 2022/07/07 23:27:06 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}] -> [] 2022/07/07 23:27:06 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] 2022/07/07 23:27:06 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[18] done 2022/07/07 23:27:06 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[13] done 2022/07/07 23:27:06 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[7] done 2022/07/07 23:27:06 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:06 wait[2] done 2022/07/07 23:27:06 Executing pipeline with the direct runner. 2022/07/07 23:27:06 Pipeline: 2022/07/07 23:27:06 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}] -> [] 2022/07/07 23:27:06 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] 2022/07/07 23:27:07 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:07 wait[18] done 2022/07/07 23:27:07 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:07 wait[13] done 2022/07/07 23:27:07 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:07 wait[7] done 2022/07/07 23:27:07 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:07 wait[2] done PASS ok github.com/google/trillian/experimental/batchmap 0.465s github.com/google/trillian/experimental/batchmap 2022/07/07 23:27:07 Executing pipeline with the direct runner. 2022/07/07 23:27:07 Pipeline: 2022/07/07 23:27:08 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}] -> [] 2022/07/07 23:27:08 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] 2022/07/07 23:27:08 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[18] done 2022/07/07 23:27:08 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[13] done 2022/07/07 23:27:08 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[7] done 2022/07/07 23:27:08 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[2] done 2022/07/07 23:27:08 Executing pipeline with the direct runner. 2022/07/07 23:27:08 Pipeline: 2022/07/07 23:27:08 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}] -> [] 2022/07/07 23:27:08 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] 2022/07/07 23:27:08 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[18] done 2022/07/07 23:27:08 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[13] done 2022/07/07 23:27:08 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[7] done 2022/07/07 23:27:08 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[2] done 2022/07/07 23:27:08 Executing pipeline with the direct runner. 2022/07/07 23:27:08 Pipeline: 2022/07/07 23:27:08 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}] -> [] 2022/07/07 23:27:08 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] 2022/07/07 23:27:08 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[18] done 2022/07/07 23:27:08 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[13] done 2022/07/07 23:27:08 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[7] done 2022/07/07 23:27:08 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[2] done 2022/07/07 23:27:08 Executing pipeline with the direct runner. 2022/07/07 23:27:08 Pipeline: 2022/07/07 23:27:08 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}] -> [] 2022/07/07 23:27:08 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] 2022/07/07 23:27:08 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[18] done 2022/07/07 23:27:08 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[13] done 2022/07/07 23:27:08 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[7] done 2022/07/07 23:27:08 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[2] done 2022/07/07 23:27:08 Executing pipeline with the direct runner. 2022/07/07 23:27:08 Pipeline: 2022/07/07 23:27:08 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}] -> [] 2022/07/07 23:27:08 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] 2022/07/07 23:27:08 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[18] done 2022/07/07 23:27:08 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[13] done 2022/07/07 23:27:08 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[7] done 2022/07/07 23:27:08 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[2] done 2022/07/07 23:27:08 Executing pipeline with the direct runner. 2022/07/07 23:27:08 Pipeline: 2022/07/07 23:27:08 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}] -> [] 2022/07/07 23:27:08 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] 2022/07/07 23:27:08 Executing pipeline with the direct runner. 2022/07/07 23:27:08 Pipeline: 2022/07/07 23:27:08 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}] -> [] 2022/07/07 23:27:08 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] 2022/07/07 23:27:08 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[18] done 2022/07/07 23:27:08 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[13] done 2022/07/07 23:27:08 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[7] done 2022/07/07 23:27:08 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[2] done 2022/07/07 23:27:08 Executing pipeline with the direct runner. 2022/07/07 23:27:08 Pipeline: 2022/07/07 23:27:08 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}] -> [] 2022/07/07 23:27:08 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] 2022/07/07 23:27:08 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[18] done 2022/07/07 23:27:08 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[13] done 2022/07/07 23:27:08 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[7] done 2022/07/07 23:27:08 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[2] done 2022/07/07 23:27:08 Executing pipeline with the direct runner. 2022/07/07 23:27:08 Pipeline: 2022/07/07 23:27:08 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}] -> [] 2022/07/07 23:27:08 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] 2022/07/07 23:27:08 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[18] done 2022/07/07 23:27:08 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[13] done 2022/07/07 23:27:08 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[7] done 2022/07/07 23:27:08 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[2] done 2022/07/07 23:27:08 Executing pipeline with the direct runner. 2022/07/07 23:27:08 Pipeline: 2022/07/07 23:27:08 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}] -> [] 2022/07/07 23:27:08 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] 2022/07/07 23:27:08 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[18] done 2022/07/07 23:27:08 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[13] done 2022/07/07 23:27:08 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[7] done 2022/07/07 23:27:08 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[2] done 2022/07/07 23:27:08 Executing pipeline with the direct runner. 2022/07/07 23:27:08 Pipeline: 2022/07/07 23:27:08 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}] -> [] 2022/07/07 23:27:08 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] 2022/07/07 23:27:08 Executing pipeline with the direct runner. 2022/07/07 23:27:08 Pipeline: 2022/07/07 23:27:08 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}] -> [] 2022/07/07 23:27:08 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] 2022/07/07 23:27:08 Executing pipeline with the direct runner. 2022/07/07 23:27:08 Pipeline: 2022/07/07 23:27:08 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}] -> [] 2022/07/07 23:27:08 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] 2022/07/07 23:27:08 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[18] done 2022/07/07 23:27:08 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[13] done 2022/07/07 23:27:08 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[7] done 2022/07/07 23:27:08 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[2] done 2022/07/07 23:27:08 Executing pipeline with the direct runner. 2022/07/07 23:27:08 Pipeline: 2022/07/07 23:27:08 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}] -> [] 2022/07/07 23:27:08 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] 2022/07/07 23:27:08 wait[18] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[18] done 2022/07/07 23:27:08 wait[13] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[13] done 2022/07/07 23:27:08 wait[7] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[7] done 2022/07/07 23:27:08 wait[2] unblocked w/ 1 [false] 2022/07/07 23:27:08 wait[2] done PASS ok github.com/google/trillian/experimental/batchmap 0.456s github.com/google/trillian/extension ? github.com/google/trillian/extension [no test files] github.com/google/trillian/integration 2022/07/07 23:27:09 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration 10.620s github.com/google/trillian/integration 2022/07/07 23:27:21 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration 10.634s github.com/google/trillian/integration/admin 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/admin 0.006s github.com/google/trillian/integration/admin 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:33 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/admin 0.006s github.com/google/trillian/integration/quota 2022/07/07 23:27:57 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:57 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/quota 0.017s github.com/google/trillian/integration/quota 2022/07/07 23:27:58 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:27:58 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/integration/quota 0.016s github.com/google/trillian/integration/storagetest ? github.com/google/trillian/integration/storagetest [no test files] github.com/google/trillian/internal/merkle/inmemory PASS ok github.com/google/trillian/internal/merkle/inmemory 0.351s github.com/google/trillian/internal/merkle/inmemory PASS ok github.com/google/trillian/internal/merkle/inmemory 0.351s github.com/google/trillian/log E0707 23:28:01.798810 11977 operation_manager.go:321] failed to perform operation: failed to list active log IDs: getactivelogs E0707 23:28:01.799590 11977 operation_manager.go:428] ExecutePass(145) failed: test error E0707 23:28:03.801097 11977 runner.go:119] 451: election.Await() failed: context canceled E0707 23:28:03.801976 11977 operation_manager.go:428] ExecutePass(145) failed: test error E0707 23:28:03.802236 11977 operation_manager.go:170] 98: failed to get log info: failedGetTree E0707 23:28:04.204252 11977 runner.go:144] 4: no longer the master! E0707 23:28:04.204408 11977 runner.go:119] 4: context canceled E0707 23:28:04.204420 11977 runner.go:144] 5: no longer the master! E0707 23:28:04.204502 11977 runner.go:119] 5: context canceled E0707 23:28:04.204643 11977 runner.go:144] 2: no longer the master! E0707 23:28:04.204717 11977 runner.go:144] 6: no longer the master! E0707 23:28:04.204722 11977 runner.go:119] 6: context canceled E0707 23:28:04.204718 11977 runner.go:119] 2: context canceled E0707 23:28:04.204857 11977 runner.go:144] 1: no longer the master! E0707 23:28:04.205012 11977 runner.go:119] 1: context canceled E0707 23:28:04.204864 11977 runner.go:144] 3: no longer the master! E0707 23:28:04.205178 11977 runner.go:119] 3: context canceled E0707 23:28:04.406419 11977 runner.go:144] 6: no longer the master! E0707 23:28:04.406427 11977 runner.go:119] 6: context canceled E0707 23:28:04.406438 11977 runner.go:119] 3: election.Await() failed: context canceled E0707 23:28:04.406567 11977 runner.go:119] 1: election.Await() failed: context canceled E0707 23:28:04.406577 11977 runner.go:144] 2: no longer the master! E0707 23:28:04.406581 11977 runner.go:119] 2: context canceled E0707 23:28:04.406769 11977 runner.go:144] 4: no longer the master! E0707 23:28:04.406774 11977 runner.go:119] 4: context canceled E0707 23:28:04.406886 11977 runner.go:119] 5: election.Await() failed: context canceled E0707 23:28:04.407000 11977 operation_manager.go:248] failed to create election for 1: injected failure E0707 23:28:04.407002 11977 operation_manager.go:248] failed to create election for 4: injected failure E0707 23:28:04.407154 11977 operation_manager.go:248] failed to create election for 3: injected failure E0707 23:28:04.407011 11977 operation_manager.go:248] failed to create election for 2: injected failure E0707 23:28:04.507487 11977 operation_manager.go:248] failed to create election for 6: injected failure E0707 23:28:04.507488 11977 operation_manager.go:248] failed to create election for 5: injected failure PASS ok github.com/google/trillian/log 2.818s github.com/google/trillian/log E0707 23:28:05.397848 12044 operation_manager.go:321] failed to perform operation: failed to list active log IDs: getactivelogs E0707 23:28:05.398661 12044 operation_manager.go:428] ExecutePass(145) failed: test error E0707 23:28:08.399789 12044 runner.go:119] 451: election.Await() failed: context canceled E0707 23:28:08.400124 12044 operation_manager.go:428] ExecutePass(145) failed: test error E0707 23:28:08.400617 12044 operation_manager.go:170] 98: failed to get log info: failedGetTree E0707 23:28:08.802375 12044 runner.go:144] 4: no longer the master! E0707 23:28:08.802603 12044 runner.go:119] 4: context canceled E0707 23:28:08.802409 12044 runner.go:144] 5: no longer the master! E0707 23:28:08.802749 12044 runner.go:119] 5: context canceled E0707 23:28:08.802413 12044 runner.go:144] 6: no longer the master! E0707 23:28:08.802760 12044 runner.go:119] 6: context canceled E0707 23:28:08.802418 12044 runner.go:144] 1: no longer the master! E0707 23:28:08.802767 12044 runner.go:119] 1: context canceled E0707 23:28:08.802422 12044 runner.go:144] 2: no longer the master! E0707 23:28:08.802775 12044 runner.go:119] 2: context canceled E0707 23:28:08.802426 12044 runner.go:144] 3: no longer the master! E0707 23:28:08.802782 12044 runner.go:119] 3: context canceled E0707 23:28:09.003804 12044 operation_manager.go:248] failed to create election for 4: injected failure E0707 23:28:09.003816 12044 runner.go:144] 4: no longer the master! E0707 23:28:09.003821 12044 runner.go:119] 4: context canceled E0707 23:28:09.003830 12044 runner.go:119] 5: election.Await() failed: context canceled E0707 23:28:09.004102 12044 runner.go:119] 3: election.Await() failed: context canceled E0707 23:28:09.004192 12044 runner.go:119] 1: election.Await() failed: context canceled E0707 23:28:09.004198 12044 runner.go:144] 6: no longer the master! E0707 23:28:09.004346 12044 operation_manager.go:248] failed to create election for 1: injected failure E0707 23:28:09.004348 12044 runner.go:119] 6: context canceled E0707 23:28:09.004497 12044 operation_manager.go:248] failed to create election for 3: injected failure E0707 23:28:09.004504 12044 runner.go:144] 2: no longer the master! E0707 23:28:09.004354 12044 operation_manager.go:248] failed to create election for 2: injected failure E0707 23:28:09.004730 12044 runner.go:119] 2: context canceled E0707 23:28:09.103885 12044 operation_manager.go:248] failed to create election for 6: injected failure E0707 23:28:09.103889 12044 operation_manager.go:248] failed to create election for 5: injected failure PASS ok github.com/google/trillian/log 3.816s github.com/google/trillian/merkle PASS ok github.com/google/trillian/merkle 0.009s github.com/google/trillian/merkle PASS ok github.com/google/trillian/merkle 0.009s github.com/google/trillian/merkle/compact PASS ok github.com/google/trillian/merkle/compact 0.373s github.com/google/trillian/merkle/compact PASS ok github.com/google/trillian/merkle/compact 0.379s github.com/google/trillian/merkle/coniks PASS ok github.com/google/trillian/merkle/coniks 0.004s github.com/google/trillian/merkle/coniks PASS ok github.com/google/trillian/merkle/coniks 0.004s github.com/google/trillian/merkle/hashers ? github.com/google/trillian/merkle/hashers [no test files] github.com/google/trillian/merkle/logverifier PASS ok github.com/google/trillian/merkle/logverifier 2.714s github.com/google/trillian/merkle/logverifier PASS ok github.com/google/trillian/merkle/logverifier 2.710s github.com/google/trillian/merkle/rfc6962 PASS ok github.com/google/trillian/merkle/rfc6962 0.002s github.com/google/trillian/merkle/rfc6962 PASS ok github.com/google/trillian/merkle/rfc6962 0.002s github.com/google/trillian/merkle/smt PASS ok github.com/google/trillian/merkle/smt 2.855s github.com/google/trillian/merkle/smt PASS ok github.com/google/trillian/merkle/smt 3.654s github.com/google/trillian/merkle/smt/node PASS ok github.com/google/trillian/merkle/smt/node 0.003s github.com/google/trillian/merkle/smt/node PASS ok github.com/google/trillian/merkle/smt/node 0.002s github.com/google/trillian/merkle/testonly ? github.com/google/trillian/merkle/testonly [no test files] github.com/google/trillian/monitoring E0707 23:28:30.874345 13204 inert.go:82] invalid label count 1; want 0 E0707 23:28:30.874867 13204 inert.go:82] invalid label count 1; want 0 E0707 23:28:30.874956 13204 inert.go:106] invalid label count 1; want 0 E0707 23:28:30.875063 13204 inert.go:82] invalid label count 2; want 1 E0707 23:28:30.875149 13204 inert.go:82] invalid label count 2; want 1 E0707 23:28:30.875226 13204 inert.go:106] invalid label count 2; want 1 E0707 23:28:30.875320 13204 inert.go:82] invalid label count 3; want 2 E0707 23:28:30.875400 13204 inert.go:82] invalid label count 3; want 2 E0707 23:28:30.875477 13204 inert.go:106] invalid label count 3; want 2 E0707 23:28:30.875582 13204 inert.go:82] invalid label count 1; want 0 E0707 23:28:30.875664 13204 inert.go:82] invalid label count 1; want 0 E0707 23:28:30.875741 13204 inert.go:82] invalid label count 1; want 0 E0707 23:28:30.875815 13204 inert.go:94] invalid label count 1; want 0 E0707 23:28:30.875888 13204 inert.go:106] invalid label count 1; want 0 E0707 23:28:30.875977 13204 inert.go:82] invalid label count 2; want 1 E0707 23:28:30.876053 13204 inert.go:82] invalid label count 2; want 1 E0707 23:28:30.876130 13204 inert.go:82] invalid label count 2; want 1 E0707 23:28:30.876204 13204 inert.go:94] invalid label count 2; want 1 E0707 23:28:30.876280 13204 inert.go:106] invalid label count 2; want 1 E0707 23:28:30.876366 13204 inert.go:82] invalid label count 3; want 2 E0707 23:28:30.876444 13204 inert.go:82] invalid label count 3; want 2 E0707 23:28:30.876518 13204 inert.go:82] invalid label count 3; want 2 E0707 23:28:30.876591 13204 inert.go:94] invalid label count 3; want 2 E0707 23:28:30.876663 13204 inert.go:106] invalid label count 3; want 2 E0707 23:28:30.876767 13204 inert.go:126] invalid label count 1; want 0 E0707 23:28:30.876844 13204 inert.go:126] invalid label count 1; want 0 E0707 23:28:30.876917 13204 inert.go:139] invalid label count 1; want 0 E0707 23:28:30.877005 13204 inert.go:126] invalid label count 2; want 1 E0707 23:28:30.877078 13204 inert.go:126] invalid label count 2; want 1 E0707 23:28:30.877153 13204 inert.go:139] invalid label count 2; want 1 E0707 23:28:30.877243 13204 inert.go:126] invalid label count 3; want 2 E0707 23:28:30.877318 13204 inert.go:126] invalid label count 3; want 2 E0707 23:28:30.877391 13204 inert.go:139] invalid label count 3; want 2 PASS ok github.com/google/trillian/monitoring 0.007s github.com/google/trillian/monitoring/opencensus ? github.com/google/trillian/monitoring/opencensus [no test files] github.com/google/trillian/monitoring/prometheus E0707 23:28:42.119825 14497 metrics.go:136] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.120400 14497 metrics.go:122] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.120491 14497 metrics.go:150] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.120595 14497 metrics.go:136] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.120675 14497 metrics.go:122] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.120748 14497 metrics.go:150] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.120858 14497 metrics.go:136] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.120933 14497 metrics.go:122] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.121006 14497 metrics.go:150] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.121111 14497 metrics.go:210] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.121202 14497 metrics.go:182] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.121283 14497 metrics.go:196] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.121353 14497 metrics.go:224] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.121422 14497 metrics.go:238] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.121516 14497 metrics.go:210] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.121595 14497 metrics.go:182] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.121665 14497 metrics.go:196] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.121736 14497 metrics.go:224] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.121805 14497 metrics.go:238] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.121906 14497 metrics.go:210] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.121982 14497 metrics.go:182] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.122057 14497 metrics.go:196] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.122128 14497 metrics.go:224] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.122199 14497 metrics.go:238] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.122391 14497 metrics.go:270] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.122498 14497 metrics.go:270] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.122580 14497 metrics.go:284] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.122805 14497 metrics.go:270] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.122885 14497 metrics.go:270] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.122957 14497 metrics.go:284] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.123237 14497 metrics.go:270] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.123316 14497 metrics.go:270] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.123387 14497 metrics.go:284] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) PASS ok github.com/google/trillian/monitoring/prometheus 0.008s github.com/google/trillian/monitoring/prometheus E0707 23:28:42.874788 14566 metrics.go:136] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.875387 14566 metrics.go:122] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.875478 14566 metrics.go:150] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.875587 14566 metrics.go:136] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.875667 14566 metrics.go:122] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.875742 14566 metrics.go:150] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.875845 14566 metrics.go:136] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.875928 14566 metrics.go:122] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.876001 14566 metrics.go:150] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.876107 14566 metrics.go:210] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.876186 14566 metrics.go:182] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.876259 14566 metrics.go:196] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.876329 14566 metrics.go:224] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.876400 14566 metrics.go:238] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.876503 14566 metrics.go:210] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.876581 14566 metrics.go:182] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.876651 14566 metrics.go:196] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.876720 14566 metrics.go:224] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.876790 14566 metrics.go:238] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.876911 14566 metrics.go:210] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.876991 14566 metrics.go:182] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.877062 14566 metrics.go:196] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.877132 14566 metrics.go:224] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.877201 14566 metrics.go:238] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.877392 14566 metrics.go:270] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.877469 14566 metrics.go:270] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.877541 14566 metrics.go:284] got 1 ([bogus]) values for 0 labels ([]) E0707 23:28:42.877757 14566 metrics.go:270] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.877834 14566 metrics.go:270] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.877905 14566 metrics.go:284] got 2 ([val1 bogus]) values for 1 labels ([key1]) E0707 23:28:42.878196 14566 metrics.go:270] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.878273 14566 metrics.go:270] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) E0707 23:28:42.878345 14566 metrics.go:284] got 3 ([val1 val2 bogus]) values for 2 labels ([key1 key2]) PASS ok github.com/google/trillian/monitoring/prometheus 0.008s github.com/google/trillian/monitoring/testonly ? github.com/google/trillian/monitoring/testonly [no test files] github.com/google/trillian/quota PASS ok github.com/google/trillian/quota 0.003s github.com/google/trillian/quota PASS ok github.com/google/trillian/quota 0.004s github.com/google/trillian/quota/cacheqm PASS ok github.com/google/trillian/quota/cacheqm 0.005s github.com/google/trillian/quota/cacheqm PASS ok github.com/google/trillian/quota/cacheqm 0.006s github.com/google/trillian/quota/etcd ? github.com/google/trillian/quota/etcd [no test files] github.com/google/trillian/quota/etcd/etcdqm {"level":"info","ts":"2022-07-07T23:28:48.132Z","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:44129"]} {"level":"info","ts":"2022-07-07T23:28:48.132Z","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:35981"]} {"level":"info","ts":"2022-07-07T23:28:48.132Z","caller":"embed/etcd.go:307","msg":"starting an etcd server","etcd-version":"3.5.0","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.18.3","go-os":"linux","go-arch":"s390x","max-cpu-set":2,"max-cpu-available":2,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-2698482604","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-2698482604/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:44129"],"listen-peer-urls":["http://127.0.0.1:44129"],"advertise-client-urls":["http://127.0.0.1:35981"],"listen-client-urls":["http://127.0.0.1:35981"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:44129","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2022-07-07T23:28:48.133Z","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-2698482604/member/snap/db","took":"73.299µs"} {"level":"info","ts":"2022-07-07T23:28:48.139Z","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"b8b13d10821ec79e","cluster-id":"6688ae8c6afd56db"} {"level":"info","ts":"2022-07-07T23:28:48.139Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"b8b13d10821ec79e switched to configuration voters=()"} {"level":"info","ts":"2022-07-07T23:28:48.140Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"b8b13d10821ec79e became follower at term 0"} {"level":"info","ts":"2022-07-07T23:28:48.140Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft b8b13d10821ec79e [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2022-07-07T23:28:48.140Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"b8b13d10821ec79e became follower at term 1"} {"level":"info","ts":"2022-07-07T23:28:48.140Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"b8b13d10821ec79e switched to configuration voters=(13308485514968352670)"} {"level":"warn","ts":"2022-07-07T23:28:48.140Z","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2022-07-07T23:28:48.147Z","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2022-07-07T23:28:48.147Z","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2022-07-07T23:28:48.147Z","caller":"etcdserver/server.go:843","msg":"starting etcd server","local-member-id":"b8b13d10821ec79e","local-server-version":"3.5.0","cluster-version":"to_be_decided"} {"level":"info","ts":"2022-07-07T23:28:48.147Z","caller":"etcdserver/server.go:728","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"b8b13d10821ec79e","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2022-07-07T23:28:48.148Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"b8b13d10821ec79e switched to configuration voters=(13308485514968352670)"} {"level":"info","ts":"2022-07-07T23:28:48.148Z","caller":"membership/cluster.go:393","msg":"added member","cluster-id":"6688ae8c6afd56db","local-member-id":"b8b13d10821ec79e","added-peer-id":"b8b13d10821ec79e","added-peer-peer-urls":["http://127.0.0.1:44129"]} {"level":"info","ts":"2022-07-07T23:28:48.149Z","caller":"embed/etcd.go:580","msg":"serving peer traffic","address":"127.0.0.1:44129"} {"level":"info","ts":"2022-07-07T23:28:48.149Z","caller":"embed/etcd.go:552","msg":"cmux::serve","address":"127.0.0.1:44129"} {"level":"info","ts":"2022-07-07T23:28:48.149Z","caller":"embed/etcd.go:276","msg":"now serving peer/client/metrics","local-member-id":"b8b13d10821ec79e","initial-advertise-peer-urls":["http://127.0.0.1:44129"],"listen-peer-urls":["http://127.0.0.1:44129"],"advertise-client-urls":["http://127.0.0.1:35981"],"listen-client-urls":["http://127.0.0.1:35981"],"listen-metrics-urls":[]} {"level":"info","ts":"2022-07-07T23:28:48.641Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"b8b13d10821ec79e is starting a new election at term 1"} {"level":"info","ts":"2022-07-07T23:28:48.641Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"b8b13d10821ec79e became pre-candidate at term 1"} {"level":"info","ts":"2022-07-07T23:28:48.641Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"b8b13d10821ec79e received MsgPreVoteResp from b8b13d10821ec79e at term 1"} {"level":"info","ts":"2022-07-07T23:28:48.641Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"b8b13d10821ec79e became candidate at term 2"} {"level":"info","ts":"2022-07-07T23:28:48.641Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"b8b13d10821ec79e received MsgVoteResp from b8b13d10821ec79e at term 2"} {"level":"info","ts":"2022-07-07T23:28:48.641Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"b8b13d10821ec79e became leader at term 2"} {"level":"info","ts":"2022-07-07T23:28:48.641Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: b8b13d10821ec79e elected leader b8b13d10821ec79e at term 2"} {"level":"info","ts":"2022-07-07T23:28:48.642Z","caller":"etcdserver/server.go:2027","msg":"published local member to cluster through raft","local-member-id":"b8b13d10821ec79e","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:35981]}","request-path":"/0/members/b8b13d10821ec79e/attributes","cluster-id":"6688ae8c6afd56db","publish-timeout":"7s"} {"level":"info","ts":"2022-07-07T23:28:48.642Z","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2022-07-07T23:28:48.642Z","caller":"etcdserver/server.go:2476","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:28:48.642Z","caller":"membership/cluster.go:531","msg":"set initial cluster version","cluster-id":"6688ae8c6afd56db","local-member-id":"b8b13d10821ec79e","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:28:48.642Z","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:28:48.642Z","caller":"etcdserver/server.go:2500","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:28:48.643Z","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:35981"} PASS {"level":"info","ts":"2022-07-07T23:28:48.663Z","caller":"embed/etcd.go:367","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2698482604","advertise-peer-urls":["http://127.0.0.1:44129"],"advertise-client-urls":["http://127.0.0.1:35981"]} {"level":"info","ts":"2022-07-07T23:28:48.665Z","caller":"etcdserver/server.go:1438","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"b8b13d10821ec79e","current-leader-member-id":"b8b13d10821ec79e"} {"level":"info","ts":"2022-07-07T23:28:48.670Z","caller":"embed/etcd.go:562","msg":"stopping serving peer traffic","address":"127.0.0.1:44129"} {"level":"info","ts":"2022-07-07T23:28:48.671Z","caller":"embed/etcd.go:567","msg":"stopped serving peer traffic","address":"127.0.0.1:44129"} {"level":"info","ts":"2022-07-07T23:28:48.671Z","caller":"embed/etcd.go:369","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2698482604","advertise-peer-urls":["http://127.0.0.1:44129"],"advertise-client-urls":["http://127.0.0.1:35981"]} ok github.com/google/trillian/quota/etcd/etcdqm 0.562s github.com/google/trillian/quota/etcd/etcdqm {"level":"info","ts":"2022-07-07T23:28:50.311Z","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:41599"]} {"level":"info","ts":"2022-07-07T23:28:50.311Z","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:43747"]} {"level":"info","ts":"2022-07-07T23:28:50.311Z","caller":"embed/etcd.go:307","msg":"starting an etcd server","etcd-version":"3.5.0","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.18.3","go-os":"linux","go-arch":"s390x","max-cpu-set":2,"max-cpu-available":2,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-1854991659","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-1854991659/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:41599"],"listen-peer-urls":["http://127.0.0.1:41599"],"advertise-client-urls":["http://127.0.0.1:43747"],"listen-client-urls":["http://127.0.0.1:43747"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:41599","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2022-07-07T23:28:50.312Z","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-1854991659/member/snap/db","took":"88.252µs"} {"level":"info","ts":"2022-07-07T23:28:50.324Z","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"35b0f80b5ca14504","cluster-id":"264a7730442ab668"} {"level":"info","ts":"2022-07-07T23:28:50.324Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"35b0f80b5ca14504 switched to configuration voters=()"} {"level":"info","ts":"2022-07-07T23:28:50.324Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"35b0f80b5ca14504 became follower at term 0"} {"level":"info","ts":"2022-07-07T23:28:50.324Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 35b0f80b5ca14504 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2022-07-07T23:28:50.324Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"35b0f80b5ca14504 became follower at term 1"} {"level":"info","ts":"2022-07-07T23:28:50.324Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"35b0f80b5ca14504 switched to configuration voters=(3868864807593657604)"} {"level":"warn","ts":"2022-07-07T23:28:50.324Z","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2022-07-07T23:28:50.325Z","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2022-07-07T23:28:50.325Z","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2022-07-07T23:28:50.325Z","caller":"etcdserver/server.go:843","msg":"starting etcd server","local-member-id":"35b0f80b5ca14504","local-server-version":"3.5.0","cluster-version":"to_be_decided"} {"level":"info","ts":"2022-07-07T23:28:50.325Z","caller":"etcdserver/server.go:728","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"35b0f80b5ca14504","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2022-07-07T23:28:50.326Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"35b0f80b5ca14504 switched to configuration voters=(3868864807593657604)"} {"level":"info","ts":"2022-07-07T23:28:50.326Z","caller":"membership/cluster.go:393","msg":"added member","cluster-id":"264a7730442ab668","local-member-id":"35b0f80b5ca14504","added-peer-id":"35b0f80b5ca14504","added-peer-peer-urls":["http://127.0.0.1:41599"]} {"level":"info","ts":"2022-07-07T23:28:50.328Z","caller":"embed/etcd.go:580","msg":"serving peer traffic","address":"127.0.0.1:41599"} {"level":"info","ts":"2022-07-07T23:28:50.328Z","caller":"embed/etcd.go:552","msg":"cmux::serve","address":"127.0.0.1:41599"} {"level":"info","ts":"2022-07-07T23:28:50.328Z","caller":"embed/etcd.go:276","msg":"now serving peer/client/metrics","local-member-id":"35b0f80b5ca14504","initial-advertise-peer-urls":["http://127.0.0.1:41599"],"listen-peer-urls":["http://127.0.0.1:41599"],"advertise-client-urls":["http://127.0.0.1:43747"],"listen-client-urls":["http://127.0.0.1:43747"],"listen-metrics-urls":[]} {"level":"info","ts":"2022-07-07T23:28:51.024Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"35b0f80b5ca14504 is starting a new election at term 1"} {"level":"info","ts":"2022-07-07T23:28:51.024Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"35b0f80b5ca14504 became pre-candidate at term 1"} {"level":"info","ts":"2022-07-07T23:28:51.024Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"35b0f80b5ca14504 received MsgPreVoteResp from 35b0f80b5ca14504 at term 1"} {"level":"info","ts":"2022-07-07T23:28:51.024Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"35b0f80b5ca14504 became candidate at term 2"} {"level":"info","ts":"2022-07-07T23:28:51.024Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"35b0f80b5ca14504 received MsgVoteResp from 35b0f80b5ca14504 at term 2"} {"level":"info","ts":"2022-07-07T23:28:51.024Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"35b0f80b5ca14504 became leader at term 2"} {"level":"info","ts":"2022-07-07T23:28:51.024Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 35b0f80b5ca14504 elected leader 35b0f80b5ca14504 at term 2"} {"level":"info","ts":"2022-07-07T23:28:51.025Z","caller":"etcdserver/server.go:2476","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:28:51.026Z","caller":"membership/cluster.go:531","msg":"set initial cluster version","cluster-id":"264a7730442ab668","local-member-id":"35b0f80b5ca14504","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:28:51.026Z","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:28:51.026Z","caller":"etcdserver/server.go:2500","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:28:51.026Z","caller":"etcdserver/server.go:2027","msg":"published local member to cluster through raft","local-member-id":"35b0f80b5ca14504","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:43747]}","request-path":"/0/members/35b0f80b5ca14504/attributes","cluster-id":"264a7730442ab668","publish-timeout":"7s"} {"level":"info","ts":"2022-07-07T23:28:51.026Z","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2022-07-07T23:28:51.029Z","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:43747"} PASS {"level":"info","ts":"2022-07-07T23:28:51.051Z","caller":"embed/etcd.go:367","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1854991659","advertise-peer-urls":["http://127.0.0.1:41599"],"advertise-client-urls":["http://127.0.0.1:43747"]} {"level":"info","ts":"2022-07-07T23:28:51.053Z","caller":"etcdserver/server.go:1438","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"35b0f80b5ca14504","current-leader-member-id":"35b0f80b5ca14504"} {"level":"info","ts":"2022-07-07T23:28:51.059Z","caller":"embed/etcd.go:562","msg":"stopping serving peer traffic","address":"127.0.0.1:41599"} {"level":"info","ts":"2022-07-07T23:28:51.060Z","caller":"embed/etcd.go:567","msg":"stopped serving peer traffic","address":"127.0.0.1:41599"} {"level":"info","ts":"2022-07-07T23:28:51.060Z","caller":"embed/etcd.go:369","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1854991659","advertise-peer-urls":["http://127.0.0.1:41599"],"advertise-client-urls":["http://127.0.0.1:43747"]} ok github.com/google/trillian/quota/etcd/etcdqm 0.770s github.com/google/trillian/quota/etcd/quotaapi {"level":"info","ts":"2022-07-07T23:28:53.025Z","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:41503"]} {"level":"info","ts":"2022-07-07T23:28:53.025Z","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:39223"]} {"level":"info","ts":"2022-07-07T23:28:53.025Z","caller":"embed/etcd.go:307","msg":"starting an etcd server","etcd-version":"3.5.0","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.18.3","go-os":"linux","go-arch":"s390x","max-cpu-set":2,"max-cpu-available":2,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-1541090875","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-1541090875/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:41503"],"listen-peer-urls":["http://127.0.0.1:41503"],"advertise-client-urls":["http://127.0.0.1:39223"],"listen-client-urls":["http://127.0.0.1:39223"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:41503","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2022-07-07T23:28:53.026Z","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-1541090875/member/snap/db","took":"77.762µs"} {"level":"info","ts":"2022-07-07T23:28:53.038Z","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"4a293ff8a627c87b","cluster-id":"3749e6d8d695abc2"} {"level":"info","ts":"2022-07-07T23:28:53.038Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"4a293ff8a627c87b switched to configuration voters=()"} {"level":"info","ts":"2022-07-07T23:28:53.038Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"4a293ff8a627c87b became follower at term 0"} {"level":"info","ts":"2022-07-07T23:28:53.038Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 4a293ff8a627c87b [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2022-07-07T23:28:53.038Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"4a293ff8a627c87b became follower at term 1"} {"level":"info","ts":"2022-07-07T23:28:53.038Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"4a293ff8a627c87b switched to configuration voters=(5343872770023868539)"} {"level":"warn","ts":"2022-07-07T23:28:53.038Z","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2022-07-07T23:28:53.039Z","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2022-07-07T23:28:53.039Z","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2022-07-07T23:28:53.039Z","caller":"etcdserver/server.go:843","msg":"starting etcd server","local-member-id":"4a293ff8a627c87b","local-server-version":"3.5.0","cluster-version":"to_be_decided"} {"level":"info","ts":"2022-07-07T23:28:53.040Z","caller":"etcdserver/server.go:728","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"4a293ff8a627c87b","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2022-07-07T23:28:53.040Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"4a293ff8a627c87b switched to configuration voters=(5343872770023868539)"} {"level":"info","ts":"2022-07-07T23:28:53.041Z","caller":"membership/cluster.go:393","msg":"added member","cluster-id":"3749e6d8d695abc2","local-member-id":"4a293ff8a627c87b","added-peer-id":"4a293ff8a627c87b","added-peer-peer-urls":["http://127.0.0.1:41503"]} {"level":"info","ts":"2022-07-07T23:28:53.045Z","caller":"embed/etcd.go:276","msg":"now serving peer/client/metrics","local-member-id":"4a293ff8a627c87b","initial-advertise-peer-urls":["http://127.0.0.1:41503"],"listen-peer-urls":["http://127.0.0.1:41503"],"advertise-client-urls":["http://127.0.0.1:39223"],"listen-client-urls":["http://127.0.0.1:39223"],"listen-metrics-urls":[]} {"level":"info","ts":"2022-07-07T23:28:53.045Z","caller":"embed/etcd.go:580","msg":"serving peer traffic","address":"127.0.0.1:41503"} {"level":"info","ts":"2022-07-07T23:28:53.045Z","caller":"embed/etcd.go:552","msg":"cmux::serve","address":"127.0.0.1:41503"} {"level":"info","ts":"2022-07-07T23:28:54.039Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"4a293ff8a627c87b is starting a new election at term 1"} {"level":"info","ts":"2022-07-07T23:28:54.039Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"4a293ff8a627c87b became pre-candidate at term 1"} {"level":"info","ts":"2022-07-07T23:28:54.039Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"4a293ff8a627c87b received MsgPreVoteResp from 4a293ff8a627c87b at term 1"} {"level":"info","ts":"2022-07-07T23:28:54.039Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"4a293ff8a627c87b became candidate at term 2"} {"level":"info","ts":"2022-07-07T23:28:54.039Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"4a293ff8a627c87b received MsgVoteResp from 4a293ff8a627c87b at term 2"} {"level":"info","ts":"2022-07-07T23:28:54.039Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"4a293ff8a627c87b became leader at term 2"} {"level":"info","ts":"2022-07-07T23:28:54.039Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 4a293ff8a627c87b elected leader 4a293ff8a627c87b at term 2"} {"level":"info","ts":"2022-07-07T23:28:54.039Z","caller":"etcdserver/server.go:2027","msg":"published local member to cluster through raft","local-member-id":"4a293ff8a627c87b","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:39223]}","request-path":"/0/members/4a293ff8a627c87b/attributes","cluster-id":"3749e6d8d695abc2","publish-timeout":"7s"} {"level":"info","ts":"2022-07-07T23:28:54.040Z","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2022-07-07T23:28:54.040Z","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:39223"} {"level":"info","ts":"2022-07-07T23:28:54.041Z","caller":"etcdserver/server.go:2476","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:28:54.041Z","caller":"membership/cluster.go:531","msg":"set initial cluster version","cluster-id":"3749e6d8d695abc2","local-member-id":"4a293ff8a627c87b","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:28:54.041Z","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:28:54.041Z","caller":"etcdserver/server.go:2500","msg":"cluster version is updated","cluster-version":"3.5"} PASS {"level":"info","ts":"2022-07-07T23:28:58.114Z","caller":"embed/etcd.go:367","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1541090875","advertise-peer-urls":["http://127.0.0.1:41503"],"advertise-client-urls":["http://127.0.0.1:39223"]} {"level":"info","ts":"2022-07-07T23:28:58.116Z","caller":"etcdserver/server.go:1438","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"4a293ff8a627c87b","current-leader-member-id":"4a293ff8a627c87b"} {"level":"info","ts":"2022-07-07T23:28:58.122Z","caller":"embed/etcd.go:562","msg":"stopping serving peer traffic","address":"127.0.0.1:41503"} {"level":"info","ts":"2022-07-07T23:28:58.125Z","caller":"embed/etcd.go:567","msg":"stopped serving peer traffic","address":"127.0.0.1:41503"} {"level":"info","ts":"2022-07-07T23:28:58.125Z","caller":"embed/etcd.go:369","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1541090875","advertise-peer-urls":["http://127.0.0.1:41503"],"advertise-client-urls":["http://127.0.0.1:39223"]} ok github.com/google/trillian/quota/etcd/quotaapi 5.124s github.com/google/trillian/quota/etcd/quotaapi {"level":"info","ts":"2022-07-07T23:28:59.728Z","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:34657"]} {"level":"info","ts":"2022-07-07T23:28:59.728Z","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:46031"]} {"level":"info","ts":"2022-07-07T23:28:59.728Z","caller":"embed/etcd.go:307","msg":"starting an etcd server","etcd-version":"3.5.0","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.18.3","go-os":"linux","go-arch":"s390x","max-cpu-set":2,"max-cpu-available":2,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-3845619095","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-3845619095/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:34657"],"listen-peer-urls":["http://127.0.0.1:34657"],"advertise-client-urls":["http://127.0.0.1:46031"],"listen-client-urls":["http://127.0.0.1:46031"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:34657","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2022-07-07T23:28:59.729Z","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-3845619095/member/snap/db","took":"78.191µs"} {"level":"info","ts":"2022-07-07T23:28:59.740Z","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"d593f4a909a99522","cluster-id":"988dc0e50e540c67"} {"level":"info","ts":"2022-07-07T23:28:59.740Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"d593f4a909a99522 switched to configuration voters=()"} {"level":"info","ts":"2022-07-07T23:28:59.740Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"d593f4a909a99522 became follower at term 0"} {"level":"info","ts":"2022-07-07T23:28:59.740Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft d593f4a909a99522 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2022-07-07T23:28:59.740Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"d593f4a909a99522 became follower at term 1"} {"level":"info","ts":"2022-07-07T23:28:59.740Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"d593f4a909a99522 switched to configuration voters=(15389913358503875874)"} {"level":"warn","ts":"2022-07-07T23:28:59.740Z","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2022-07-07T23:28:59.746Z","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2022-07-07T23:28:59.747Z","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2022-07-07T23:28:59.747Z","caller":"etcdserver/server.go:843","msg":"starting etcd server","local-member-id":"d593f4a909a99522","local-server-version":"3.5.0","cluster-version":"to_be_decided"} {"level":"info","ts":"2022-07-07T23:28:59.747Z","caller":"etcdserver/server.go:728","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"d593f4a909a99522","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2022-07-07T23:28:59.747Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"d593f4a909a99522 switched to configuration voters=(15389913358503875874)"} {"level":"info","ts":"2022-07-07T23:28:59.747Z","caller":"membership/cluster.go:393","msg":"added member","cluster-id":"988dc0e50e540c67","local-member-id":"d593f4a909a99522","added-peer-id":"d593f4a909a99522","added-peer-peer-urls":["http://127.0.0.1:34657"]} {"level":"info","ts":"2022-07-07T23:28:59.750Z","caller":"embed/etcd.go:276","msg":"now serving peer/client/metrics","local-member-id":"d593f4a909a99522","initial-advertise-peer-urls":["http://127.0.0.1:34657"],"listen-peer-urls":["http://127.0.0.1:34657"],"advertise-client-urls":["http://127.0.0.1:46031"],"listen-client-urls":["http://127.0.0.1:46031"],"listen-metrics-urls":[]} {"level":"info","ts":"2022-07-07T23:28:59.750Z","caller":"embed/etcd.go:580","msg":"serving peer traffic","address":"127.0.0.1:34657"} {"level":"info","ts":"2022-07-07T23:28:59.750Z","caller":"embed/etcd.go:552","msg":"cmux::serve","address":"127.0.0.1:34657"} {"level":"info","ts":"2022-07-07T23:29:00.040Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"d593f4a909a99522 is starting a new election at term 1"} {"level":"info","ts":"2022-07-07T23:29:00.041Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"d593f4a909a99522 became pre-candidate at term 1"} {"level":"info","ts":"2022-07-07T23:29:00.041Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"d593f4a909a99522 received MsgPreVoteResp from d593f4a909a99522 at term 1"} {"level":"info","ts":"2022-07-07T23:29:00.041Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"d593f4a909a99522 became candidate at term 2"} {"level":"info","ts":"2022-07-07T23:29:00.041Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"d593f4a909a99522 received MsgVoteResp from d593f4a909a99522 at term 2"} {"level":"info","ts":"2022-07-07T23:29:00.041Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"d593f4a909a99522 became leader at term 2"} {"level":"info","ts":"2022-07-07T23:29:00.041Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: d593f4a909a99522 elected leader d593f4a909a99522 at term 2"} {"level":"info","ts":"2022-07-07T23:29:00.041Z","caller":"etcdserver/server.go:2027","msg":"published local member to cluster through raft","local-member-id":"d593f4a909a99522","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:46031]}","request-path":"/0/members/d593f4a909a99522/attributes","cluster-id":"988dc0e50e540c67","publish-timeout":"7s"} {"level":"info","ts":"2022-07-07T23:29:00.041Z","caller":"etcdserver/server.go:2476","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:00.041Z","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2022-07-07T23:29:00.042Z","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:46031"} {"level":"info","ts":"2022-07-07T23:29:00.042Z","caller":"membership/cluster.go:531","msg":"set initial cluster version","cluster-id":"988dc0e50e540c67","local-member-id":"d593f4a909a99522","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:00.042Z","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:00.042Z","caller":"etcdserver/server.go:2500","msg":"cluster version is updated","cluster-version":"3.5"} PASS {"level":"info","ts":"2022-07-07T23:29:04.122Z","caller":"embed/etcd.go:367","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3845619095","advertise-peer-urls":["http://127.0.0.1:34657"],"advertise-client-urls":["http://127.0.0.1:46031"]} {"level":"info","ts":"2022-07-07T23:29:04.123Z","caller":"etcdserver/server.go:1438","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"d593f4a909a99522","current-leader-member-id":"d593f4a909a99522"} {"level":"info","ts":"2022-07-07T23:29:04.130Z","caller":"embed/etcd.go:562","msg":"stopping serving peer traffic","address":"127.0.0.1:34657"} {"level":"info","ts":"2022-07-07T23:29:04.132Z","caller":"embed/etcd.go:567","msg":"stopped serving peer traffic","address":"127.0.0.1:34657"} {"level":"info","ts":"2022-07-07T23:29:04.132Z","caller":"embed/etcd.go:369","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3845619095","advertise-peer-urls":["http://127.0.0.1:34657"],"advertise-client-urls":["http://127.0.0.1:46031"]} ok github.com/google/trillian/quota/etcd/quotaapi 4.427s github.com/google/trillian/quota/etcd/quotapb ? github.com/google/trillian/quota/etcd/quotapb [no test files] github.com/google/trillian/quota/etcd/storage {"level":"info","ts":"2022-07-07T23:29:06.101Z","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:32921"]} {"level":"info","ts":"2022-07-07T23:29:06.102Z","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:39309"]} {"level":"info","ts":"2022-07-07T23:29:06.102Z","caller":"embed/etcd.go:307","msg":"starting an etcd server","etcd-version":"3.5.0","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.18.3","go-os":"linux","go-arch":"s390x","max-cpu-set":2,"max-cpu-available":2,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-3405083674","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-3405083674/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:32921"],"listen-peer-urls":["http://127.0.0.1:32921"],"advertise-client-urls":["http://127.0.0.1:39309"],"listen-client-urls":["http://127.0.0.1:39309"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:32921","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2022-07-07T23:29:06.102Z","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-3405083674/member/snap/db","took":"60.051µs"} {"level":"info","ts":"2022-07-07T23:29:06.108Z","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"10276daf7c301ff6","cluster-id":"5f554ab00a944af9"} {"level":"info","ts":"2022-07-07T23:29:06.109Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"10276daf7c301ff6 switched to configuration voters=()"} {"level":"info","ts":"2022-07-07T23:29:06.109Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"10276daf7c301ff6 became follower at term 0"} {"level":"info","ts":"2022-07-07T23:29:06.109Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 10276daf7c301ff6 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2022-07-07T23:29:06.109Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"10276daf7c301ff6 became follower at term 1"} {"level":"info","ts":"2022-07-07T23:29:06.109Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"10276daf7c301ff6 switched to configuration voters=(1164019629168795638)"} {"level":"warn","ts":"2022-07-07T23:29:06.109Z","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2022-07-07T23:29:06.112Z","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2022-07-07T23:29:06.112Z","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2022-07-07T23:29:06.112Z","caller":"etcdserver/server.go:843","msg":"starting etcd server","local-member-id":"10276daf7c301ff6","local-server-version":"3.5.0","cluster-version":"to_be_decided"} {"level":"info","ts":"2022-07-07T23:29:06.112Z","caller":"etcdserver/server.go:728","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"10276daf7c301ff6","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2022-07-07T23:29:06.112Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"10276daf7c301ff6 switched to configuration voters=(1164019629168795638)"} {"level":"info","ts":"2022-07-07T23:29:06.113Z","caller":"membership/cluster.go:393","msg":"added member","cluster-id":"5f554ab00a944af9","local-member-id":"10276daf7c301ff6","added-peer-id":"10276daf7c301ff6","added-peer-peer-urls":["http://127.0.0.1:32921"]} {"level":"info","ts":"2022-07-07T23:29:06.115Z","caller":"embed/etcd.go:580","msg":"serving peer traffic","address":"127.0.0.1:32921"} {"level":"info","ts":"2022-07-07T23:29:06.115Z","caller":"embed/etcd.go:552","msg":"cmux::serve","address":"127.0.0.1:32921"} {"level":"info","ts":"2022-07-07T23:29:06.115Z","caller":"embed/etcd.go:276","msg":"now serving peer/client/metrics","local-member-id":"10276daf7c301ff6","initial-advertise-peer-urls":["http://127.0.0.1:32921"],"listen-peer-urls":["http://127.0.0.1:32921"],"advertise-client-urls":["http://127.0.0.1:39309"],"listen-client-urls":["http://127.0.0.1:39309"],"listen-metrics-urls":[]} {"level":"info","ts":"2022-07-07T23:29:06.509Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"10276daf7c301ff6 is starting a new election at term 1"} {"level":"info","ts":"2022-07-07T23:29:06.510Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"10276daf7c301ff6 became pre-candidate at term 1"} {"level":"info","ts":"2022-07-07T23:29:06.510Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"10276daf7c301ff6 received MsgPreVoteResp from 10276daf7c301ff6 at term 1"} {"level":"info","ts":"2022-07-07T23:29:06.510Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"10276daf7c301ff6 became candidate at term 2"} {"level":"info","ts":"2022-07-07T23:29:06.510Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"10276daf7c301ff6 received MsgVoteResp from 10276daf7c301ff6 at term 2"} {"level":"info","ts":"2022-07-07T23:29:06.510Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"10276daf7c301ff6 became leader at term 2"} {"level":"info","ts":"2022-07-07T23:29:06.510Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 10276daf7c301ff6 elected leader 10276daf7c301ff6 at term 2"} {"level":"info","ts":"2022-07-07T23:29:06.510Z","caller":"etcdserver/server.go:2027","msg":"published local member to cluster through raft","local-member-id":"10276daf7c301ff6","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:39309]}","request-path":"/0/members/10276daf7c301ff6/attributes","cluster-id":"5f554ab00a944af9","publish-timeout":"7s"} {"level":"info","ts":"2022-07-07T23:29:06.510Z","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2022-07-07T23:29:06.510Z","caller":"etcdserver/server.go:2476","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:06.511Z","caller":"membership/cluster.go:531","msg":"set initial cluster version","cluster-id":"5f554ab00a944af9","local-member-id":"10276daf7c301ff6","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:06.512Z","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:06.512Z","caller":"etcdserver/server.go:2500","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:06.512Z","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:39309"} PASS {"level":"info","ts":"2022-07-07T23:29:06.587Z","caller":"embed/etcd.go:367","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3405083674","advertise-peer-urls":["http://127.0.0.1:32921"],"advertise-client-urls":["http://127.0.0.1:39309"]} {"level":"info","ts":"2022-07-07T23:29:06.589Z","caller":"etcdserver/server.go:1438","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"10276daf7c301ff6","current-leader-member-id":"10276daf7c301ff6"} {"level":"info","ts":"2022-07-07T23:29:06.594Z","caller":"embed/etcd.go:562","msg":"stopping serving peer traffic","address":"127.0.0.1:32921"} {"level":"info","ts":"2022-07-07T23:29:06.595Z","caller":"embed/etcd.go:567","msg":"stopped serving peer traffic","address":"127.0.0.1:32921"} {"level":"info","ts":"2022-07-07T23:29:06.595Z","caller":"embed/etcd.go:369","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3405083674","advertise-peer-urls":["http://127.0.0.1:32921"],"advertise-client-urls":["http://127.0.0.1:39309"]} ok github.com/google/trillian/quota/etcd/storage 0.519s github.com/google/trillian/quota/etcd/storage {"level":"info","ts":"2022-07-07T23:29:08.204Z","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:33951"]} {"level":"info","ts":"2022-07-07T23:29:08.204Z","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:38561"]} {"level":"info","ts":"2022-07-07T23:29:08.205Z","caller":"embed/etcd.go:307","msg":"starting an etcd server","etcd-version":"3.5.0","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.18.3","go-os":"linux","go-arch":"s390x","max-cpu-set":2,"max-cpu-available":2,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-3424999538","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-3424999538/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:33951"],"listen-peer-urls":["http://127.0.0.1:33951"],"advertise-client-urls":["http://127.0.0.1:38561"],"listen-client-urls":["http://127.0.0.1:38561"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:33951","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2022-07-07T23:29:08.205Z","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-3424999538/member/snap/db","took":"77.053µs"} {"level":"info","ts":"2022-07-07T23:29:08.217Z","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"c67f8c7a3b207b4e","cluster-id":"efce6bc0b1468ae3"} {"level":"info","ts":"2022-07-07T23:29:08.217Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c67f8c7a3b207b4e switched to configuration voters=()"} {"level":"info","ts":"2022-07-07T23:29:08.217Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c67f8c7a3b207b4e became follower at term 0"} {"level":"info","ts":"2022-07-07T23:29:08.217Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft c67f8c7a3b207b4e [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2022-07-07T23:29:08.217Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c67f8c7a3b207b4e became follower at term 1"} {"level":"info","ts":"2022-07-07T23:29:08.217Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c67f8c7a3b207b4e switched to configuration voters=(14303305398157867854)"} {"level":"warn","ts":"2022-07-07T23:29:08.217Z","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2022-07-07T23:29:08.218Z","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2022-07-07T23:29:08.218Z","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2022-07-07T23:29:08.218Z","caller":"etcdserver/server.go:843","msg":"starting etcd server","local-member-id":"c67f8c7a3b207b4e","local-server-version":"3.5.0","cluster-version":"to_be_decided"} {"level":"info","ts":"2022-07-07T23:29:08.218Z","caller":"etcdserver/server.go:728","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"c67f8c7a3b207b4e","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2022-07-07T23:29:08.219Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c67f8c7a3b207b4e switched to configuration voters=(14303305398157867854)"} {"level":"info","ts":"2022-07-07T23:29:08.219Z","caller":"membership/cluster.go:393","msg":"added member","cluster-id":"efce6bc0b1468ae3","local-member-id":"c67f8c7a3b207b4e","added-peer-id":"c67f8c7a3b207b4e","added-peer-peer-urls":["http://127.0.0.1:33951"]} {"level":"info","ts":"2022-07-07T23:29:08.220Z","caller":"embed/etcd.go:276","msg":"now serving peer/client/metrics","local-member-id":"c67f8c7a3b207b4e","initial-advertise-peer-urls":["http://127.0.0.1:33951"],"listen-peer-urls":["http://127.0.0.1:33951"],"advertise-client-urls":["http://127.0.0.1:38561"],"listen-client-urls":["http://127.0.0.1:38561"],"listen-metrics-urls":[]} {"level":"info","ts":"2022-07-07T23:29:08.221Z","caller":"embed/etcd.go:580","msg":"serving peer traffic","address":"127.0.0.1:33951"} {"level":"info","ts":"2022-07-07T23:29:08.221Z","caller":"embed/etcd.go:552","msg":"cmux::serve","address":"127.0.0.1:33951"} {"level":"info","ts":"2022-07-07T23:29:08.317Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c67f8c7a3b207b4e is starting a new election at term 1"} {"level":"info","ts":"2022-07-07T23:29:08.317Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c67f8c7a3b207b4e became pre-candidate at term 1"} {"level":"info","ts":"2022-07-07T23:29:08.317Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c67f8c7a3b207b4e received MsgPreVoteResp from c67f8c7a3b207b4e at term 1"} {"level":"info","ts":"2022-07-07T23:29:08.317Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c67f8c7a3b207b4e became candidate at term 2"} {"level":"info","ts":"2022-07-07T23:29:08.318Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c67f8c7a3b207b4e received MsgVoteResp from c67f8c7a3b207b4e at term 2"} {"level":"info","ts":"2022-07-07T23:29:08.318Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"c67f8c7a3b207b4e became leader at term 2"} {"level":"info","ts":"2022-07-07T23:29:08.318Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: c67f8c7a3b207b4e elected leader c67f8c7a3b207b4e at term 2"} {"level":"info","ts":"2022-07-07T23:29:08.318Z","caller":"etcdserver/server.go:2476","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:08.319Z","caller":"membership/cluster.go:531","msg":"set initial cluster version","cluster-id":"efce6bc0b1468ae3","local-member-id":"c67f8c7a3b207b4e","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:08.319Z","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:08.319Z","caller":"etcdserver/server.go:2500","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:08.319Z","caller":"etcdserver/server.go:2027","msg":"published local member to cluster through raft","local-member-id":"c67f8c7a3b207b4e","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:38561]}","request-path":"/0/members/c67f8c7a3b207b4e/attributes","cluster-id":"efce6bc0b1468ae3","publish-timeout":"7s"} {"level":"info","ts":"2022-07-07T23:29:08.320Z","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2022-07-07T23:29:08.321Z","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:38561"} PASS {"level":"info","ts":"2022-07-07T23:29:08.392Z","caller":"embed/etcd.go:367","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3424999538","advertise-peer-urls":["http://127.0.0.1:33951"],"advertise-client-urls":["http://127.0.0.1:38561"]} {"level":"info","ts":"2022-07-07T23:29:08.394Z","caller":"etcdserver/server.go:1438","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"c67f8c7a3b207b4e","current-leader-member-id":"c67f8c7a3b207b4e"} {"level":"info","ts":"2022-07-07T23:29:08.399Z","caller":"embed/etcd.go:562","msg":"stopping serving peer traffic","address":"127.0.0.1:33951"} {"level":"info","ts":"2022-07-07T23:29:08.400Z","caller":"embed/etcd.go:567","msg":"stopped serving peer traffic","address":"127.0.0.1:33951"} {"level":"info","ts":"2022-07-07T23:29:08.400Z","caller":"embed/etcd.go:369","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-3424999538","advertise-peer-urls":["http://127.0.0.1:33951"],"advertise-client-urls":["http://127.0.0.1:38561"]} ok github.com/google/trillian/quota/etcd/storage 0.216s github.com/google/trillian/quota/etcd/storagepb ? github.com/google/trillian/quota/etcd/storagepb [no test files] github.com/google/trillian/quota/mysqlqm 2022/07/07 23:29:09 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:29:09 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused 2022/07/07 23:29:09 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused PASS ok github.com/google/trillian/quota/mysqlqm 0.005s github.com/google/trillian/quota/redis/redisqm ? github.com/google/trillian/quota/redis/redisqm [no test files] github.com/google/trillian/server/admin PASS ok github.com/google/trillian/server/admin 0.007s github.com/google/trillian/server/admin PASS ok github.com/google/trillian/server/admin 0.007s github.com/google/trillian/server/errors PASS ok github.com/google/trillian/server/errors 0.002s github.com/google/trillian/server/errors PASS ok github.com/google/trillian/server/errors 0.002s github.com/google/trillian/server/interceptor PASS ok github.com/google/trillian/server/interceptor 1.009s github.com/google/trillian/server/interceptor PASS ok github.com/google/trillian/server/interceptor 1.008s github.com/google/trillian/storage PASS ok github.com/google/trillian/storage 0.004s github.com/google/trillian/storage PASS ok github.com/google/trillian/storage 0.004s github.com/google/trillian/storage/cache PASS ok github.com/google/trillian/storage/cache 0.036s github.com/google/trillian/storage/cache PASS ok github.com/google/trillian/storage/cache 0.036s github.com/google/trillian/storage/cloudspanner PASS ok github.com/google/trillian/storage/cloudspanner 3.923s github.com/google/trillian/storage/cloudspanner PASS ok github.com/google/trillian/storage/cloudspanner 4.938s github.com/google/trillian/storage/cloudspanner/spannerpb ? github.com/google/trillian/storage/cloudspanner/spannerpb [no test files] github.com/google/trillian/storage/memory PASS ok github.com/google/trillian/storage/memory 0.004s github.com/google/trillian/storage/memory PASS ok github.com/google/trillian/storage/memory 0.004s github.com/google/trillian/storage/mysql 2022/07/07 23:29:37 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused E0707 23:29:37.956772 16993 storage_test.go:299] MySQL not available, skipping all MySQL storage tests ok github.com/google/trillian/storage/mysql 0.005s github.com/google/trillian/storage/mysql 2022/07/07 23:29:38 db.Ping(): dial tcp 127.0.0.1:3306: connect: connection refused E0707 23:29:38.782003 17061 storage_test.go:299] MySQL not available, skipping all MySQL storage tests ok github.com/google/trillian/storage/mysql 0.005s github.com/google/trillian/storage/storagepb ? github.com/google/trillian/storage/storagepb [no test files] github.com/google/trillian/storage/testonly ? github.com/google/trillian/storage/testonly [no test files] github.com/google/trillian/storage/tools/dump_tree PASS ok github.com/google/trillian/storage/tools/dump_tree 1.231s github.com/google/trillian/storage/tree ? github.com/google/trillian/storage/tree [no test files] github.com/google/trillian/testonly ? github.com/google/trillian/testonly [no test files] github.com/google/trillian/testonly/flagsaver PASS ok github.com/google/trillian/testonly/flagsaver 0.002s github.com/google/trillian/testonly/flagsaver PASS ok github.com/google/trillian/testonly/flagsaver 0.002s github.com/google/trillian/testonly/integration ? github.com/google/trillian/testonly/integration [no test files] github.com/google/trillian/testonly/integration/etcd ? github.com/google/trillian/testonly/integration/etcd [no test files] github.com/google/trillian/testonly/matchers PASS ok github.com/google/trillian/testonly/matchers 0.003s github.com/google/trillian/testonly/matchers PASS ok github.com/google/trillian/testonly/matchers 0.003s github.com/google/trillian/testonly/mdm ? github.com/google/trillian/testonly/mdm [no test files] github.com/google/trillian/testonly/setup ? github.com/google/trillian/testonly/setup [no test files] github.com/google/trillian/testonly/tmock ? github.com/google/trillian/testonly/tmock [no test files] github.com/google/trillian/trees PASS ok github.com/google/trillian/trees 0.006s github.com/google/trillian/trees PASS ok github.com/google/trillian/trees 0.006s github.com/google/trillian/types PASS ok github.com/google/trillian/types 0.003s github.com/google/trillian/types PASS ok github.com/google/trillian/types 0.003s github.com/google/trillian/util ? github.com/google/trillian/util [no test files] github.com/google/trillian/util/clock PASS ok github.com/google/trillian/util/clock 1.387s github.com/google/trillian/util/clock PASS ok github.com/google/trillian/util/clock 1.387s github.com/google/trillian/util/election2 ? github.com/google/trillian/util/election2 [no test files] github.com/google/trillian/util/election2/etcd {"level":"info","ts":"2022-07-07T23:29:52.733Z","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:34501"]} {"level":"info","ts":"2022-07-07T23:29:52.734Z","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:33581"]} {"level":"info","ts":"2022-07-07T23:29:52.734Z","caller":"embed/etcd.go:307","msg":"starting an etcd server","etcd-version":"3.5.0","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.18.3","go-os":"linux","go-arch":"s390x","max-cpu-set":2,"max-cpu-available":2,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-2389629784","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-2389629784/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:34501"],"listen-peer-urls":["http://127.0.0.1:34501"],"advertise-client-urls":["http://127.0.0.1:33581"],"listen-client-urls":["http://127.0.0.1:33581"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:34501","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2022-07-07T23:29:52.734Z","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-2389629784/member/snap/db","took":"60.856µs"} {"level":"info","ts":"2022-07-07T23:29:52.740Z","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"af6bf39bf1de4509","cluster-id":"a9e3b244fa63703a"} {"level":"info","ts":"2022-07-07T23:29:52.740Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"af6bf39bf1de4509 switched to configuration voters=()"} {"level":"info","ts":"2022-07-07T23:29:52.740Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"af6bf39bf1de4509 became follower at term 0"} {"level":"info","ts":"2022-07-07T23:29:52.740Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft af6bf39bf1de4509 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2022-07-07T23:29:52.740Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"af6bf39bf1de4509 became follower at term 1"} {"level":"info","ts":"2022-07-07T23:29:52.740Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"af6bf39bf1de4509 switched to configuration voters=(12640464630248785161)"} {"level":"warn","ts":"2022-07-07T23:29:52.740Z","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2022-07-07T23:29:52.747Z","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2022-07-07T23:29:52.747Z","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2022-07-07T23:29:52.747Z","caller":"etcdserver/server.go:843","msg":"starting etcd server","local-member-id":"af6bf39bf1de4509","local-server-version":"3.5.0","cluster-version":"to_be_decided"} {"level":"info","ts":"2022-07-07T23:29:52.747Z","caller":"etcdserver/server.go:728","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"af6bf39bf1de4509","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2022-07-07T23:29:52.747Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"af6bf39bf1de4509 switched to configuration voters=(12640464630248785161)"} {"level":"info","ts":"2022-07-07T23:29:52.748Z","caller":"membership/cluster.go:393","msg":"added member","cluster-id":"a9e3b244fa63703a","local-member-id":"af6bf39bf1de4509","added-peer-id":"af6bf39bf1de4509","added-peer-peer-urls":["http://127.0.0.1:34501"]} {"level":"info","ts":"2022-07-07T23:29:52.749Z","caller":"embed/etcd.go:276","msg":"now serving peer/client/metrics","local-member-id":"af6bf39bf1de4509","initial-advertise-peer-urls":["http://127.0.0.1:34501"],"listen-peer-urls":["http://127.0.0.1:34501"],"advertise-client-urls":["http://127.0.0.1:33581"],"listen-client-urls":["http://127.0.0.1:33581"],"listen-metrics-urls":[]} {"level":"info","ts":"2022-07-07T23:29:52.749Z","caller":"embed/etcd.go:580","msg":"serving peer traffic","address":"127.0.0.1:34501"} {"level":"info","ts":"2022-07-07T23:29:52.749Z","caller":"embed/etcd.go:552","msg":"cmux::serve","address":"127.0.0.1:34501"} {"level":"info","ts":"2022-07-07T23:29:53.141Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"af6bf39bf1de4509 is starting a new election at term 1"} {"level":"info","ts":"2022-07-07T23:29:53.141Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"af6bf39bf1de4509 became pre-candidate at term 1"} {"level":"info","ts":"2022-07-07T23:29:53.141Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"af6bf39bf1de4509 received MsgPreVoteResp from af6bf39bf1de4509 at term 1"} {"level":"info","ts":"2022-07-07T23:29:53.142Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"af6bf39bf1de4509 became candidate at term 2"} {"level":"info","ts":"2022-07-07T23:29:53.142Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"af6bf39bf1de4509 received MsgVoteResp from af6bf39bf1de4509 at term 2"} {"level":"info","ts":"2022-07-07T23:29:53.142Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"af6bf39bf1de4509 became leader at term 2"} {"level":"info","ts":"2022-07-07T23:29:53.142Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: af6bf39bf1de4509 elected leader af6bf39bf1de4509 at term 2"} {"level":"info","ts":"2022-07-07T23:29:53.142Z","caller":"etcdserver/server.go:2027","msg":"published local member to cluster through raft","local-member-id":"af6bf39bf1de4509","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:33581]}","request-path":"/0/members/af6bf39bf1de4509/attributes","cluster-id":"a9e3b244fa63703a","publish-timeout":"7s"} {"level":"info","ts":"2022-07-07T23:29:53.142Z","caller":"etcdserver/server.go:2476","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:53.142Z","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2022-07-07T23:29:53.143Z","caller":"membership/cluster.go:531","msg":"set initial cluster version","cluster-id":"a9e3b244fa63703a","local-member-id":"af6bf39bf1de4509","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:53.143Z","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:53.143Z","caller":"etcdserver/server.go:2500","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:53.143Z","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:33581"} {"level":"info","ts":"2022-07-07T23:29:53.147Z","caller":"embed/etcd.go:367","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2389629784","advertise-peer-urls":["http://127.0.0.1:34501"],"advertise-client-urls":["http://127.0.0.1:33581"]} {"level":"info","ts":"2022-07-07T23:29:53.149Z","caller":"etcdserver/server.go:1438","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"af6bf39bf1de4509","current-leader-member-id":"af6bf39bf1de4509"} {"level":"info","ts":"2022-07-07T23:29:53.154Z","caller":"embed/etcd.go:562","msg":"stopping serving peer traffic","address":"127.0.0.1:34501"} {"level":"info","ts":"2022-07-07T23:29:53.155Z","caller":"embed/etcd.go:567","msg":"stopped serving peer traffic","address":"127.0.0.1:34501"} {"level":"info","ts":"2022-07-07T23:29:53.155Z","caller":"embed/etcd.go:369","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2389629784","advertise-peer-urls":["http://127.0.0.1:34501"],"advertise-client-urls":["http://127.0.0.1:33581"]} {"level":"info","ts":"2022-07-07T23:29:53.161Z","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:37871"]} {"level":"info","ts":"2022-07-07T23:29:53.161Z","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:36945"]} {"level":"info","ts":"2022-07-07T23:29:53.162Z","caller":"embed/etcd.go:307","msg":"starting an etcd server","etcd-version":"3.5.0","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.18.3","go-os":"linux","go-arch":"s390x","max-cpu-set":2,"max-cpu-available":2,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-2856720315","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-2856720315/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:37871"],"listen-peer-urls":["http://127.0.0.1:37871"],"advertise-client-urls":["http://127.0.0.1:36945"],"listen-client-urls":["http://127.0.0.1:36945"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:37871","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2022-07-07T23:29:53.162Z","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-2856720315/member/snap/db","took":"61.522µs"} {"level":"info","ts":"2022-07-07T23:29:53.169Z","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"31ada370d58e5eae","cluster-id":"5ff1f94227293e94"} {"level":"info","ts":"2022-07-07T23:29:53.169Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"31ada370d58e5eae switched to configuration voters=()"} {"level":"info","ts":"2022-07-07T23:29:53.169Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"31ada370d58e5eae became follower at term 0"} {"level":"info","ts":"2022-07-07T23:29:53.169Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 31ada370d58e5eae [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2022-07-07T23:29:53.169Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"31ada370d58e5eae became follower at term 1"} {"level":"info","ts":"2022-07-07T23:29:53.170Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"31ada370d58e5eae switched to configuration voters=(3579696983843954350)"} {"level":"warn","ts":"2022-07-07T23:29:53.170Z","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2022-07-07T23:29:53.170Z","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2022-07-07T23:29:53.170Z","caller":"etcdserver/server.go:843","msg":"starting etcd server","local-member-id":"31ada370d58e5eae","local-server-version":"3.5.0","cluster-version":"to_be_decided"} {"level":"info","ts":"2022-07-07T23:29:53.171Z","caller":"etcdserver/server.go:728","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"31ada370d58e5eae","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2022-07-07T23:29:53.171Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"31ada370d58e5eae switched to configuration voters=(3579696983843954350)"} {"level":"info","ts":"2022-07-07T23:29:53.171Z","caller":"membership/cluster.go:393","msg":"added member","cluster-id":"5ff1f94227293e94","local-member-id":"31ada370d58e5eae","added-peer-id":"31ada370d58e5eae","added-peer-peer-urls":["http://127.0.0.1:37871"]} {"level":"info","ts":"2022-07-07T23:29:53.172Z","caller":"embed/etcd.go:580","msg":"serving peer traffic","address":"127.0.0.1:37871"} {"level":"info","ts":"2022-07-07T23:29:53.172Z","caller":"embed/etcd.go:552","msg":"cmux::serve","address":"127.0.0.1:37871"} {"level":"info","ts":"2022-07-07T23:29:53.172Z","caller":"embed/etcd.go:276","msg":"now serving peer/client/metrics","local-member-id":"31ada370d58e5eae","initial-advertise-peer-urls":["http://127.0.0.1:37871"],"listen-peer-urls":["http://127.0.0.1:37871"],"advertise-client-urls":["http://127.0.0.1:36945"],"listen-client-urls":["http://127.0.0.1:36945"],"listen-metrics-urls":[]} {"level":"info","ts":"2022-07-07T23:29:53.571Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"31ada370d58e5eae is starting a new election at term 1"} {"level":"info","ts":"2022-07-07T23:29:53.571Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"31ada370d58e5eae became pre-candidate at term 1"} {"level":"info","ts":"2022-07-07T23:29:53.571Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"31ada370d58e5eae received MsgPreVoteResp from 31ada370d58e5eae at term 1"} {"level":"info","ts":"2022-07-07T23:29:53.571Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"31ada370d58e5eae became candidate at term 2"} {"level":"info","ts":"2022-07-07T23:29:53.571Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"31ada370d58e5eae received MsgVoteResp from 31ada370d58e5eae at term 2"} {"level":"info","ts":"2022-07-07T23:29:53.571Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"31ada370d58e5eae became leader at term 2"} {"level":"info","ts":"2022-07-07T23:29:53.572Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 31ada370d58e5eae elected leader 31ada370d58e5eae at term 2"} {"level":"info","ts":"2022-07-07T23:29:53.572Z","caller":"etcdserver/server.go:2027","msg":"published local member to cluster through raft","local-member-id":"31ada370d58e5eae","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:36945]}","request-path":"/0/members/31ada370d58e5eae/attributes","cluster-id":"5ff1f94227293e94","publish-timeout":"7s"} {"level":"info","ts":"2022-07-07T23:29:53.572Z","caller":"etcdserver/server.go:2476","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:53.572Z","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2022-07-07T23:29:53.572Z","caller":"membership/cluster.go:531","msg":"set initial cluster version","cluster-id":"5ff1f94227293e94","local-member-id":"31ada370d58e5eae","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:53.572Z","caller":"etcdserver/server.go:2500","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:53.573Z","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:36945"} {"level":"info","ts":"2022-07-07T23:29:55.003Z","caller":"embed/etcd.go:367","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2856720315","advertise-peer-urls":["http://127.0.0.1:37871"],"advertise-client-urls":["http://127.0.0.1:36945"]} {"level":"info","ts":"2022-07-07T23:29:55.005Z","caller":"etcdserver/server.go:1438","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"31ada370d58e5eae","current-leader-member-id":"31ada370d58e5eae"} {"level":"info","ts":"2022-07-07T23:29:55.011Z","caller":"embed/etcd.go:562","msg":"stopping serving peer traffic","address":"127.0.0.1:37871"} {"level":"info","ts":"2022-07-07T23:29:55.012Z","caller":"embed/etcd.go:567","msg":"stopped serving peer traffic","address":"127.0.0.1:37871"} {"level":"info","ts":"2022-07-07T23:29:55.012Z","caller":"embed/etcd.go:369","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2856720315","advertise-peer-urls":["http://127.0.0.1:37871"],"advertise-client-urls":["http://127.0.0.1:36945"]} PASS ok github.com/google/trillian/util/election2/etcd 2.299s github.com/google/trillian/util/election2/etcd {"level":"info","ts":"2022-07-07T23:29:56.571Z","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:35711"]} {"level":"info","ts":"2022-07-07T23:29:56.571Z","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:34945"]} {"level":"info","ts":"2022-07-07T23:29:56.571Z","caller":"embed/etcd.go:307","msg":"starting an etcd server","etcd-version":"3.5.0","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.18.3","go-os":"linux","go-arch":"s390x","max-cpu-set":2,"max-cpu-available":2,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-1701617317","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-1701617317/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:35711"],"listen-peer-urls":["http://127.0.0.1:35711"],"advertise-client-urls":["http://127.0.0.1:34945"],"listen-client-urls":["http://127.0.0.1:34945"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:35711","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2022-07-07T23:29:56.571Z","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-1701617317/member/snap/db","took":"70.706µs"} {"level":"info","ts":"2022-07-07T23:29:56.584Z","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"8de5539bebf80121","cluster-id":"da12004b79b766b"} {"level":"info","ts":"2022-07-07T23:29:56.584Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"8de5539bebf80121 switched to configuration voters=()"} {"level":"info","ts":"2022-07-07T23:29:56.584Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"8de5539bebf80121 became follower at term 0"} {"level":"info","ts":"2022-07-07T23:29:56.584Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft 8de5539bebf80121 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2022-07-07T23:29:56.584Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"8de5539bebf80121 became follower at term 1"} {"level":"info","ts":"2022-07-07T23:29:56.584Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"8de5539bebf80121 switched to configuration voters=(10224670458158514465)"} {"level":"warn","ts":"2022-07-07T23:29:56.584Z","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2022-07-07T23:29:56.586Z","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2022-07-07T23:29:56.587Z","caller":"etcdserver/quota.go:94","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"} {"level":"info","ts":"2022-07-07T23:29:56.587Z","caller":"etcdserver/server.go:843","msg":"starting etcd server","local-member-id":"8de5539bebf80121","local-server-version":"3.5.0","cluster-version":"to_be_decided"} {"level":"info","ts":"2022-07-07T23:29:56.587Z","caller":"etcdserver/server.go:728","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"8de5539bebf80121","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2022-07-07T23:29:56.587Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"8de5539bebf80121 switched to configuration voters=(10224670458158514465)"} {"level":"info","ts":"2022-07-07T23:29:56.587Z","caller":"membership/cluster.go:393","msg":"added member","cluster-id":"da12004b79b766b","local-member-id":"8de5539bebf80121","added-peer-id":"8de5539bebf80121","added-peer-peer-urls":["http://127.0.0.1:35711"]} {"level":"info","ts":"2022-07-07T23:29:56.589Z","caller":"embed/etcd.go:580","msg":"serving peer traffic","address":"127.0.0.1:35711"} {"level":"info","ts":"2022-07-07T23:29:56.589Z","caller":"embed/etcd.go:552","msg":"cmux::serve","address":"127.0.0.1:35711"} {"level":"info","ts":"2022-07-07T23:29:56.589Z","caller":"embed/etcd.go:276","msg":"now serving peer/client/metrics","local-member-id":"8de5539bebf80121","initial-advertise-peer-urls":["http://127.0.0.1:35711"],"listen-peer-urls":["http://127.0.0.1:35711"],"advertise-client-urls":["http://127.0.0.1:34945"],"listen-client-urls":["http://127.0.0.1:34945"],"listen-metrics-urls":[]} {"level":"info","ts":"2022-07-07T23:29:56.785Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"8de5539bebf80121 is starting a new election at term 1"} {"level":"info","ts":"2022-07-07T23:29:56.785Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"8de5539bebf80121 became pre-candidate at term 1"} {"level":"info","ts":"2022-07-07T23:29:56.785Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"8de5539bebf80121 received MsgPreVoteResp from 8de5539bebf80121 at term 1"} {"level":"info","ts":"2022-07-07T23:29:56.785Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"8de5539bebf80121 became candidate at term 2"} {"level":"info","ts":"2022-07-07T23:29:56.786Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"8de5539bebf80121 received MsgVoteResp from 8de5539bebf80121 at term 2"} {"level":"info","ts":"2022-07-07T23:29:56.786Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"8de5539bebf80121 became leader at term 2"} {"level":"info","ts":"2022-07-07T23:29:56.786Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: 8de5539bebf80121 elected leader 8de5539bebf80121 at term 2"} {"level":"info","ts":"2022-07-07T23:29:56.786Z","caller":"etcdserver/server.go:2027","msg":"published local member to cluster through raft","local-member-id":"8de5539bebf80121","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:34945]}","request-path":"/0/members/8de5539bebf80121/attributes","cluster-id":"da12004b79b766b","publish-timeout":"7s"} {"level":"info","ts":"2022-07-07T23:29:56.786Z","caller":"etcdserver/server.go:2476","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:56.787Z","caller":"membership/cluster.go:531","msg":"set initial cluster version","cluster-id":"da12004b79b766b","local-member-id":"8de5539bebf80121","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:56.787Z","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:56.787Z","caller":"etcdserver/server.go:2500","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:56.787Z","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2022-07-07T23:29:56.787Z","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:34945"} {"level":"info","ts":"2022-07-07T23:29:56.793Z","caller":"embed/etcd.go:367","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1701617317","advertise-peer-urls":["http://127.0.0.1:35711"],"advertise-client-urls":["http://127.0.0.1:34945"]} {"level":"info","ts":"2022-07-07T23:29:56.794Z","caller":"etcdserver/server.go:1438","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"8de5539bebf80121","current-leader-member-id":"8de5539bebf80121"} {"level":"info","ts":"2022-07-07T23:29:56.799Z","caller":"embed/etcd.go:562","msg":"stopping serving peer traffic","address":"127.0.0.1:35711"} {"level":"info","ts":"2022-07-07T23:29:56.800Z","caller":"embed/etcd.go:567","msg":"stopped serving peer traffic","address":"127.0.0.1:35711"} {"level":"info","ts":"2022-07-07T23:29:56.800Z","caller":"embed/etcd.go:369","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-1701617317","advertise-peer-urls":["http://127.0.0.1:35711"],"advertise-client-urls":["http://127.0.0.1:34945"]} {"level":"info","ts":"2022-07-07T23:29:56.805Z","caller":"embed/etcd.go:131","msg":"configuring peer listeners","listen-peer-urls":["http://127.0.0.1:35991"]} {"level":"info","ts":"2022-07-07T23:29:56.806Z","caller":"embed/etcd.go:139","msg":"configuring client listeners","listen-client-urls":["http://127.0.0.1:35663"]} {"level":"info","ts":"2022-07-07T23:29:56.806Z","caller":"embed/etcd.go:307","msg":"starting an etcd server","etcd-version":"3.5.0","git-sha":"Not provided (use ./build instead of go build)","go-version":"go1.18.3","go-os":"linux","go-arch":"s390x","max-cpu-set":2,"max-cpu-available":2,"member-initialized":false,"name":"default","data-dir":"/tmp/etcdquota-test-2949631354","wal-dir":"","wal-dir-dedicated":"","member-dir":"/tmp/etcdquota-test-2949631354/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":100000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://127.0.0.1:35991"],"listen-peer-urls":["http://127.0.0.1:35991"],"advertise-client-urls":["http://127.0.0.1:35663"],"listen-client-urls":["http://127.0.0.1:35663"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"default=http://127.0.0.1:35991","initial-cluster-state":"new","initial-cluster-token":"etcd-cluster","quota-size-bytes":2147483648,"pre-vote":true,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":"","downgrade-check-interval":"5s"} {"level":"info","ts":"2022-07-07T23:29:56.806Z","caller":"etcdserver/backend.go:81","msg":"opened backend db","path":"/tmp/etcdquota-test-2949631354/member/snap/db","took":"62.468µs"} {"level":"info","ts":"2022-07-07T23:29:56.812Z","caller":"etcdserver/raft.go:448","msg":"starting local member","local-member-id":"cafb2941070dca5e","cluster-id":"1f9322acd129f888"} {"level":"info","ts":"2022-07-07T23:29:56.813Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cafb2941070dca5e switched to configuration voters=()"} {"level":"info","ts":"2022-07-07T23:29:56.813Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cafb2941070dca5e became follower at term 0"} {"level":"info","ts":"2022-07-07T23:29:56.813Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"newRaft cafb2941070dca5e [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"} {"level":"info","ts":"2022-07-07T23:29:56.813Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cafb2941070dca5e became follower at term 1"} {"level":"info","ts":"2022-07-07T23:29:56.813Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cafb2941070dca5e switched to configuration voters=(14626329574083775070)"} {"level":"warn","ts":"2022-07-07T23:29:56.814Z","caller":"auth/store.go:1220","msg":"simple token is not cryptographically signed"} {"level":"info","ts":"2022-07-07T23:29:56.814Z","caller":"mvcc/kvstore.go:415","msg":"kvstore restored","current-rev":1} {"level":"info","ts":"2022-07-07T23:29:56.814Z","caller":"etcdserver/server.go:843","msg":"starting etcd server","local-member-id":"cafb2941070dca5e","local-server-version":"3.5.0","cluster-version":"to_be_decided"} {"level":"info","ts":"2022-07-07T23:29:56.815Z","caller":"embed/etcd.go:276","msg":"now serving peer/client/metrics","local-member-id":"cafb2941070dca5e","initial-advertise-peer-urls":["http://127.0.0.1:35991"],"listen-peer-urls":["http://127.0.0.1:35991"],"advertise-client-urls":["http://127.0.0.1:35663"],"listen-client-urls":["http://127.0.0.1:35663"],"listen-metrics-urls":[]} {"level":"info","ts":"2022-07-07T23:29:56.815Z","caller":"etcdserver/server.go:728","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"cafb2941070dca5e","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"} {"level":"info","ts":"2022-07-07T23:29:56.815Z","caller":"embed/etcd.go:580","msg":"serving peer traffic","address":"127.0.0.1:35991"} {"level":"info","ts":"2022-07-07T23:29:56.815Z","caller":"embed/etcd.go:552","msg":"cmux::serve","address":"127.0.0.1:35991"} {"level":"info","ts":"2022-07-07T23:29:56.816Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cafb2941070dca5e switched to configuration voters=(14626329574083775070)"} {"level":"info","ts":"2022-07-07T23:29:56.816Z","caller":"membership/cluster.go:393","msg":"added member","cluster-id":"1f9322acd129f888","local-member-id":"cafb2941070dca5e","added-peer-id":"cafb2941070dca5e","added-peer-peer-urls":["http://127.0.0.1:35991"]} {"level":"info","ts":"2022-07-07T23:29:57.314Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cafb2941070dca5e is starting a new election at term 1"} {"level":"info","ts":"2022-07-07T23:29:57.314Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cafb2941070dca5e became pre-candidate at term 1"} {"level":"info","ts":"2022-07-07T23:29:57.314Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cafb2941070dca5e received MsgPreVoteResp from cafb2941070dca5e at term 1"} {"level":"info","ts":"2022-07-07T23:29:57.314Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cafb2941070dca5e became candidate at term 2"} {"level":"info","ts":"2022-07-07T23:29:57.314Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cafb2941070dca5e received MsgVoteResp from cafb2941070dca5e at term 2"} {"level":"info","ts":"2022-07-07T23:29:57.315Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"cafb2941070dca5e became leader at term 2"} {"level":"info","ts":"2022-07-07T23:29:57.315Z","logger":"raft","caller":"etcdserver/zap_raft.go:77","msg":"raft.node: cafb2941070dca5e elected leader cafb2941070dca5e at term 2"} {"level":"info","ts":"2022-07-07T23:29:57.315Z","caller":"etcdserver/server.go:2027","msg":"published local member to cluster through raft","local-member-id":"cafb2941070dca5e","local-member-attributes":"{Name:default ClientURLs:[http://127.0.0.1:35663]}","request-path":"/0/members/cafb2941070dca5e/attributes","cluster-id":"1f9322acd129f888","publish-timeout":"7s"} {"level":"info","ts":"2022-07-07T23:29:57.316Z","caller":"etcdserver/server.go:2476","msg":"setting up initial cluster version using v2 API","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:57.316Z","caller":"embed/serve.go:98","msg":"ready to serve client requests"} {"level":"info","ts":"2022-07-07T23:29:57.316Z","caller":"membership/cluster.go:531","msg":"set initial cluster version","cluster-id":"1f9322acd129f888","local-member-id":"cafb2941070dca5e","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:57.316Z","caller":"etcdserver/server.go:2500","msg":"cluster version is updated","cluster-version":"3.5"} {"level":"info","ts":"2022-07-07T23:29:57.317Z","caller":"embed/serve.go:140","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"127.0.0.1:35663"} {"level":"warn","ts":"2022-07-07T23:29:57.932Z","logger":"etcd-client","caller":"v3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"etcd-endpoints://0xc00057fdc0/#initially=[http://127.0.0.1:35663]","attempt":0,"error":"rpc error: code = Canceled desc = context canceled"} {"level":"info","ts":"2022-07-07T23:29:58.747Z","caller":"embed/etcd.go:367","msg":"closing etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2949631354","advertise-peer-urls":["http://127.0.0.1:35991"],"advertise-client-urls":["http://127.0.0.1:35663"]} {"level":"info","ts":"2022-07-07T23:29:58.748Z","caller":"etcdserver/server.go:1438","msg":"skipped leadership transfer for single voting member cluster","local-member-id":"cafb2941070dca5e","current-leader-member-id":"cafb2941070dca5e"} {"level":"info","ts":"2022-07-07T23:29:58.754Z","caller":"embed/etcd.go:562","msg":"stopping serving peer traffic","address":"127.0.0.1:35991"} {"level":"info","ts":"2022-07-07T23:29:58.755Z","caller":"embed/etcd.go:567","msg":"stopped serving peer traffic","address":"127.0.0.1:35991"} {"level":"info","ts":"2022-07-07T23:29:58.755Z","caller":"embed/etcd.go:369","msg":"closed etcd server","name":"default","data-dir":"/tmp/etcdquota-test-2949631354","advertise-peer-urls":["http://127.0.0.1:35991"],"advertise-client-urls":["http://127.0.0.1:35663"]} PASS ok github.com/google/trillian/util/election2/etcd 2.205s github.com/google/trillian/util/election2/testonly PASS ok github.com/google/trillian/util/election2/testonly 1.406s + RPM_EC=0 ++ jobs -p + exit 0 Processing files: golang-github-google-trillian-devel-1.4.0-3.fc37.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.EH5Wtu + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.0 + DOCDIR=/builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x/usr/share/doc/golang-github-google-trillian-devel + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x/usr/share/doc/golang-github-google-trillian-devel + cp -pr AUTHORS /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x/usr/share/doc/golang-github-google-trillian-devel + cp -pr CHANGELOG.md /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x/usr/share/doc/golang-github-google-trillian-devel + cp -pr CONTRIBUTING.md /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x/usr/share/doc/golang-github-google-trillian-devel + cp -pr CONTRIBUTORS /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x/usr/share/doc/golang-github-google-trillian-devel + cp -pr README.md /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x/usr/share/doc/golang-github-google-trillian-devel + cp -pr docs /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x/usr/share/doc/golang-github-google-trillian-devel + cp -pr examples /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x/usr/share/doc/golang-github-google-trillian-devel + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.z3emoo + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.0 + LICENSEDIR=/builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x/usr/share/licenses/golang-github-google-trillian-devel + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x/usr/share/licenses/golang-github-google-trillian-devel + cp -pr LICENSE /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x/usr/share/licenses/golang-github-google-trillian-devel + RPM_EC=0 ++ jobs -p + exit 0 Provides: golang(github.com/google/trillian) = 1.4.0-3.fc37 golang(github.com/google/trillian/client) = 1.4.0-3.fc37 golang(github.com/google/trillian/client/backoff) = 1.4.0-3.fc37 golang(github.com/google/trillian/client/rpcflags) = 1.4.0-3.fc37 golang(github.com/google/trillian/client/timeout) = 1.4.0-3.fc37 golang(github.com/google/trillian/cmd) = 1.4.0-3.fc37 golang(github.com/google/trillian/cmd/internal/serverutil) = 1.4.0-3.fc37 golang(github.com/google/trillian/crypto/keys) = 1.4.0-3.fc37 golang(github.com/google/trillian/crypto/keys/der) = 1.4.0-3.fc37 golang(github.com/google/trillian/crypto/keys/pem) = 1.4.0-3.fc37 golang(github.com/google/trillian/crypto/keys/pkcs11) = 1.4.0-3.fc37 golang(github.com/google/trillian/crypto/keys/testonly) = 1.4.0-3.fc37 golang(github.com/google/trillian/crypto/keyspb) = 1.4.0-3.fc37 golang(github.com/google/trillian/docs/storage/commit_log/signer) = 1.4.0-3.fc37 golang(github.com/google/trillian/docs/storage/commit_log/simelection) = 1.4.0-3.fc37 golang(github.com/google/trillian/docs/storage/commit_log/simkafka) = 1.4.0-3.fc37 golang(github.com/google/trillian/experimental/batchmap) = 1.4.0-3.fc37 golang(github.com/google/trillian/extension) = 1.4.0-3.fc37 golang(github.com/google/trillian/integration) = 1.4.0-3.fc37 golang(github.com/google/trillian/integration/admin) = 1.4.0-3.fc37 golang(github.com/google/trillian/integration/quota) = 1.4.0-3.fc37 golang(github.com/google/trillian/integration/storagetest) = 1.4.0-3.fc37 golang(github.com/google/trillian/internal/merkle/inmemory) = 1.4.0-3.fc37 golang(github.com/google/trillian/log) = 1.4.0-3.fc37 golang(github.com/google/trillian/merkle) = 1.4.0-3.fc37 golang(github.com/google/trillian/merkle/compact) = 1.4.0-3.fc37 golang(github.com/google/trillian/merkle/coniks) = 1.4.0-3.fc37 golang(github.com/google/trillian/merkle/hashers) = 1.4.0-3.fc37 golang(github.com/google/trillian/merkle/logverifier) = 1.4.0-3.fc37 golang(github.com/google/trillian/merkle/rfc6962) = 1.4.0-3.fc37 golang(github.com/google/trillian/merkle/smt) = 1.4.0-3.fc37 golang(github.com/google/trillian/merkle/smt/node) = 1.4.0-3.fc37 golang(github.com/google/trillian/merkle/testonly) = 1.4.0-3.fc37 golang(github.com/google/trillian/monitoring) = 1.4.0-3.fc37 golang(github.com/google/trillian/monitoring/opencensus) = 1.4.0-3.fc37 golang(github.com/google/trillian/monitoring/prometheus) = 1.4.0-3.fc37 golang(github.com/google/trillian/monitoring/testonly) = 1.4.0-3.fc37 golang(github.com/google/trillian/quota) = 1.4.0-3.fc37 golang(github.com/google/trillian/quota/cacheqm) = 1.4.0-3.fc37 golang(github.com/google/trillian/quota/etcd) = 1.4.0-3.fc37 golang(github.com/google/trillian/quota/etcd/etcdqm) = 1.4.0-3.fc37 golang(github.com/google/trillian/quota/etcd/quotaapi) = 1.4.0-3.fc37 golang(github.com/google/trillian/quota/etcd/quotapb) = 1.4.0-3.fc37 golang(github.com/google/trillian/quota/etcd/storage) = 1.4.0-3.fc37 golang(github.com/google/trillian/quota/etcd/storagepb) = 1.4.0-3.fc37 golang(github.com/google/trillian/quota/mysqlqm) = 1.4.0-3.fc37 golang(github.com/google/trillian/quota/redis/redisqm) = 1.4.0-3.fc37 golang(github.com/google/trillian/quota/redis/redistb) = 1.4.0-3.fc37 golang(github.com/google/trillian/server) = 1.4.0-3.fc37 golang(github.com/google/trillian/server/admin) = 1.4.0-3.fc37 golang(github.com/google/trillian/server/errors) = 1.4.0-3.fc37 golang(github.com/google/trillian/server/interceptor) = 1.4.0-3.fc37 golang(github.com/google/trillian/storage) = 1.4.0-3.fc37 golang(github.com/google/trillian/storage/cache) = 1.4.0-3.fc37 golang(github.com/google/trillian/storage/cloudspanner) = 1.4.0-3.fc37 golang(github.com/google/trillian/storage/cloudspanner/spannerpb) = 1.4.0-3.fc37 golang(github.com/google/trillian/storage/memory) = 1.4.0-3.fc37 golang(github.com/google/trillian/storage/mysql) = 1.4.0-3.fc37 golang(github.com/google/trillian/storage/storagepb) = 1.4.0-3.fc37 golang(github.com/google/trillian/storage/testdb) = 1.4.0-3.fc37 golang(github.com/google/trillian/storage/testonly) = 1.4.0-3.fc37 golang(github.com/google/trillian/storage/tree) = 1.4.0-3.fc37 golang(github.com/google/trillian/testonly) = 1.4.0-3.fc37 golang(github.com/google/trillian/testonly/flagsaver) = 1.4.0-3.fc37 golang(github.com/google/trillian/testonly/integration) = 1.4.0-3.fc37 golang(github.com/google/trillian/testonly/integration/etcd) = 1.4.0-3.fc37 golang(github.com/google/trillian/testonly/matchers) = 1.4.0-3.fc37 golang(github.com/google/trillian/testonly/mdm) = 1.4.0-3.fc37 golang(github.com/google/trillian/testonly/setup) = 1.4.0-3.fc37 golang(github.com/google/trillian/testonly/tmock) = 1.4.0-3.fc37 golang(github.com/google/trillian/trees) = 1.4.0-3.fc37 golang(github.com/google/trillian/types) = 1.4.0-3.fc37 golang(github.com/google/trillian/util) = 1.4.0-3.fc37 golang(github.com/google/trillian/util/clock) = 1.4.0-3.fc37 golang(github.com/google/trillian/util/election) = 1.4.0-3.fc37 golang(github.com/google/trillian/util/election2) = 1.4.0-3.fc37 golang(github.com/google/trillian/util/election2/etcd) = 1.4.0-3.fc37 golang(github.com/google/trillian/util/election2/testonly) = 1.4.0-3.fc37 golang-github-google-trillian-devel = 1.4.0-3.fc37 golang-ipath(github.com/google/trillian) = 1.4.0-3.fc37 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: go-filesystem golang(bitbucket.org/creachadair/shell) golang(cloud.google.com/go/spanner) golang(cloud.google.com/go/spanner/spansql) golang(contrib.go.opencensus.io/exporter/stackdriver) golang(github.com/apache/beam/sdks/v2/go/pkg/beam) golang(github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime) golang(github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec) golang(github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/graphx/schema) golang(github.com/apache/beam/sdks/v2/go/pkg/beam/core/util/reflectx) golang(github.com/apache/beam/sdks/v2/go/pkg/beam/io/filesystem/local) golang(github.com/apache/beam/sdks/v2/go/pkg/beam/x/beamx) golang(github.com/go-sql-driver/mysql) golang(github.com/golang/glog) golang(github.com/golang/mock/gomock) golang(github.com/golang/protobuf/ptypes/any) golang(github.com/golang/protobuf/ptypes/duration) golang(github.com/golang/protobuf/ptypes/empty) golang(github.com/golang/protobuf/ptypes/timestamp) golang(github.com/google/btree) golang(github.com/google/certificate-transparency-go/tls) golang(github.com/google/go-cmp/cmp) golang(github.com/grpc-ecosystem/go-grpc-middleware) golang(github.com/prometheus/client_golang/prometheus) golang(github.com/prometheus/client_golang/prometheus/promhttp) golang(github.com/prometheus/client_model/go) golang(go.etcd.io/etcd/client/v3) golang(go.etcd.io/etcd/client/v3/concurrency) golang(go.etcd.io/etcd/client/v3/naming/endpoints) golang(go.etcd.io/etcd/server/v3/embed) golang(go.opencensus.io/plugin/ocgrpc) golang(go.opencensus.io/plugin/ochttp) golang(go.opencensus.io/stats/view) golang(go.opencensus.io/trace) golang(golang.org/x/crypto/ed25519) golang(golang.org/x/sync/errgroup) golang(golang.org/x/sync/semaphore) golang(golang.org/x/sys/unix) golang(google.golang.org/api/option) golang(google.golang.org/genproto/googleapis/api/annotations) golang(google.golang.org/genproto/googleapis/rpc/status) golang(google.golang.org/genproto/protobuf/field_mask) golang(google.golang.org/grpc) golang(google.golang.org/grpc/codes) golang(google.golang.org/grpc/credentials) golang(google.golang.org/grpc/reflection) golang(google.golang.org/grpc/status) golang(google.golang.org/protobuf/encoding/prototext) golang(google.golang.org/protobuf/proto) golang(google.golang.org/protobuf/reflect/protoreflect) golang(google.golang.org/protobuf/reflect/protoregistry) golang(google.golang.org/protobuf/runtime/protoimpl) golang(google.golang.org/protobuf/testing/protocmp) golang(google.golang.org/protobuf/types/known/anypb) golang(google.golang.org/protobuf/types/known/durationpb) golang(google.golang.org/protobuf/types/known/emptypb) golang(google.golang.org/protobuf/types/known/timestamppb) golang(gopkg.in/redis.v6) Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x Wrote: /builddir/build/RPMS/golang-github-google-trillian-devel-1.4.0-3.fc37.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.nXojrn + umask 022 + cd /builddir/build/BUILD + cd trillian-1.4.0 + /usr/bin/rm -rf /builddir/build/BUILDROOT/golang-github-google-trillian-1.4.0-3.fc37.s390x + RPM_EC=0 ++ jobs -p + exit 0 Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.4HXyi0 + umask 022 + cd /builddir/build/BUILD + rm -rf trillian-1.4.0 trillian-1.4.0.gemspec + RPM_EC=0 ++ jobs -p + exit 0 Child return code was: 0