You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by "Valentyn Tymofieiev (JIRA)" <ji...@apache.org> on 2018/10/10 19:37:00 UTC

[jira] [Updated] (BEAM-5692) Potential deadlock in Python Portable Runner causing

     [ https://issues.apache.org/jira/browse/BEAM-5692?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Valentyn Tymofieiev updated BEAM-5692:
--------------------------------------
    Summary: Potential deadlock in Python Portable Runner causing   (was: Potential deadlock in Python Portable Runner)

> Potential deadlock in Python Portable Runner causing 
> -----------------------------------------------------
>
>                 Key: BEAM-5692
>                 URL: https://issues.apache.org/jira/browse/BEAM-5692
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-py-core
>            Reporter: Valentyn Tymofieiev
>            Assignee: Robert Bradshaw
>            Priority: Major
>
> A flake in apache_beam.runners.portability.portable_runner_test.PortableRunnerTest.test_pardo_state_only was observed as a part of a precommit suite, under Python 3 environment. I was not able to reproduce the flake in 1000 runs locally, under the same conditions. 
> 08:54:35 ======================================================================
> 08:54:35 ERROR: test_pardo_state_only (apache_beam.runners.portability.portable_runner_test.PortableRunnerTest)
> 08:54:35 ----------------------------------------------------------------------
> 08:54:35 Traceback (most recent call last):
> 08:54:35   File "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Commit@2/src/sdks/python/apache_beam/runners/portability/fn_api_runner_test.py", line 265, in test_pardo_state_only
> 08:54:35     equal_to(expected))
> 08:54:35   File "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Commit@2/src/sdks/python/apache_beam/pipeline.py", line 423, in __exit__
> 08:54:35     self.run().wait_until_finish()
> 08:54:35   File "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Commit@2/src/sdks/python/apache_beam/runners/portability/portable_runner.py", line 242, in wait_until_finish
> 08:54:35     beam_job_api_pb2.GetJobStateRequest(job_id=self._job_id)):
> 08:54:35   File "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Commit@2/src/sdks/python/target/.tox/py3/lib/python3.5/site-packages/grpc/_channel.py", line 363, in __next__
> 08:54:35     return self._next()
> 08:54:35   File "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Commit@2/src/sdks/python/target/.tox/py3/lib/python3.5/site-packages/grpc/_channel.py", line 348, in _next
> 08:54:35     self._state.condition.wait()
> 08:54:35   File "/usr/lib/python3.5/threading.py", line 293, in wait
> 08:54:35     waiter.acquire()
> 08:54:35   File "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Commit@2/src/sdks/python/apache_beam/runners/portability/portable_runner_test.py", line 68, in handler
> 08:54:35     raise BaseException(msg)
> 08:54:35 BaseException: Timed out after 30 seconds.
> 08:54:35 -------------------- >> begin captured stdout << ---------------------
> 08:54:35 ==================== Timed out after 30 seconds. ====================
> 08:54:35 
> 08:54:35 # Thread: <Thread(Thread-1315, started daemon 140696953263872)>
> 08:54:35 
> 08:54:35 # Thread: <Thread(Thread-1190, started daemon 140697171392256)>
> 08:54:35 
> 08:54:35 # Thread: <_MainThread(MainThread, started 140697509672704)>
> 08:54:35 
> 08:54:35 # Thread: <Thread(Thread-1188, started daemon 140697213339392)>
> 08:54:35 
> 08:54:35 # Thread: <Thread(Thread-1181, started daemon 140696677795584)>
> 08:54:35 
> 08:54:35 # Thread: <Thread(Thread-1186, started daemon 140697037158144)>
> 08:54:35 
> 08:54:35 --------------------- >> end captured stdout << ----------------------
> 08:54:35 -------------------- >> begin captured logging << --------------------
> 08:54:35 root: WARNING: Could not find a Python SDK docker image.
> 08:54:35 root: DEBUG: Got Prepare request.
> 08:54:35 root: DEBUG: Prepared job 'job' as 'job-181a484e-da4a-44e0-9b9e-46613934bf21'
> 08:54:35 root: DEBUG: Runing job 'job-181a484e-da4a-44e0-9b9e-46613934bf21'
> 08:54:35 root: INFO: ==================== <function FnApiRunner.create_stages.<locals>.annotate_downstream_side_inputs at 0x7ff6a5dc88c8> ====================
> 08:54:35 root: DEBUG: Stages: ['ref_AppliedPTransform_Create/Read_3\n  Create/Read:beam:transform:read:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_ParDo(AddIndex)_4\n  ParDo(AddIndex):urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Create/Read_7\n  assert_that/Create/Read:beam:transform:read:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8\n  assert_that/WindowInto(WindowIntoFn):beam:transform:window_into:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/ToVoidKey_9\n  assert_that/ToVoidKey:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/pair_with_0_11\n  assert_that/Group/pair_with_0:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/pair_with_1_12\n  assert_that/Group/pair_with_1:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/Flatten_13\n  assert_that/Group/Flatten:beam:transform:flatten:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/GroupByKey_14\n  assert_that/Group/GroupByKey:beam:transform:group_by_key:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/Map(_merge_tagged_vals_under_key)_18\n  assert_that/Group/Map(_merge_tagged_vals_under_key):urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Unkey_19\n  assert_that/Unkey:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Match_20\n  assert_that/Match:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ']
> 08:54:35 root: INFO: ==================== <function FnApiRunner.create_stages.<locals>.fix_side_input_pcoll_coders at 0x7ff6a5dc8048> ====================
> 08:54:35 root: DEBUG: Stages: ['ref_AppliedPTransform_Create/Read_3\n  Create/Read:beam:transform:read:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_ParDo(AddIndex)_4\n  ParDo(AddIndex):urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Create/Read_7\n  assert_that/Create/Read:beam:transform:read:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8\n  assert_that/WindowInto(WindowIntoFn):beam:transform:window_into:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/ToVoidKey_9\n  assert_that/ToVoidKey:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/pair_with_0_11\n  assert_that/Group/pair_with_0:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/pair_with_1_12\n  assert_that/Group/pair_with_1:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/Flatten_13\n  assert_that/Group/Flatten:beam:transform:flatten:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/GroupByKey_14\n  assert_that/Group/GroupByKey:beam:transform:group_by_key:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/Map(_merge_tagged_vals_under_key)_18\n  assert_that/Group/Map(_merge_tagged_vals_under_key):urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Unkey_19\n  assert_that/Unkey:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Match_20\n  assert_that/Match:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ']
> 08:54:35 root: INFO: ==================== <function FnApiRunner.create_stages.<locals>.lift_combiners at 0x7ff6a5dc8bf8> ====================
> 08:54:35 root: DEBUG: Stages: ['ref_AppliedPTransform_Create/Read_3\n  Create/Read:beam:transform:read:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_ParDo(AddIndex)_4\n  ParDo(AddIndex):urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Create/Read_7\n  assert_that/Create/Read:beam:transform:read:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8\n  assert_that/WindowInto(WindowIntoFn):beam:transform:window_into:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/ToVoidKey_9\n  assert_that/ToVoidKey:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/pair_with_0_11\n  assert_that/Group/pair_with_0:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/pair_with_1_12\n  assert_that/Group/pair_with_1:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/Flatten_13\n  assert_that/Group/Flatten:beam:transform:flatten:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/GroupByKey_14\n  assert_that/Group/GroupByKey:beam:transform:group_by_key:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/Map(_merge_tagged_vals_under_key)_18\n  assert_that/Group/Map(_merge_tagged_vals_under_key):urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Unkey_19\n  assert_that/Unkey:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Match_20\n  assert_that/Match:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ']
> 08:54:35 root: INFO: ==================== <function FnApiRunner.create_stages.<locals>.expand_gbk at 0x7ff6a5dc86a8> ====================
> 08:54:35 root: DEBUG: Stages: ['ref_AppliedPTransform_Create/Read_3\n  Create/Read:beam:transform:read:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_ParDo(AddIndex)_4\n  ParDo(AddIndex):urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Create/Read_7\n  assert_that/Create/Read:beam:transform:read:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8\n  assert_that/WindowInto(WindowIntoFn):beam:transform:window_into:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/ToVoidKey_9\n  assert_that/ToVoidKey:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/pair_with_0_11\n  assert_that/Group/pair_with_0:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/pair_with_1_12\n  assert_that/Group/pair_with_1:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/Flatten_13\n  assert_that/Group/Flatten:beam:transform:flatten:v1\n  must follow: \n  downstream_side_inputs: ', 'assert_that/Group/GroupByKey/Write\n  assert_that/Group/GroupByKey/Write:urn:org.apache.beam:sink:runner:0.1\n  must follow: \n  downstream_side_inputs: ', 'assert_that/Group/GroupByKey/Read\n  assert_that/Group/GroupByKey/Read:urn:org.apache.beam:source:runner:0.1\n  must follow: assert_that/Group/GroupByKey/Write\n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/Map(_merge_tagged_vals_under_key)_18\n  assert_that/Group/Map(_merge_tagged_vals_under_key):urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Unkey_19\n  assert_that/Unkey:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Match_20\n  assert_that/Match:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ']
> 08:54:35 root: INFO: ==================== <function FnApiRunner.create_stages.<locals>.sink_flattens at 0x7ff6a5dc8950> ====================
> 08:54:35 root: DEBUG: Stages: ['ref_AppliedPTransform_Create/Read_3\n  Create/Read:beam:transform:read:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_ParDo(AddIndex)_4\n  ParDo(AddIndex):urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Create/Read_7\n  assert_that/Create/Read:beam:transform:read:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8\n  assert_that/WindowInto(WindowIntoFn):beam:transform:window_into:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/ToVoidKey_9\n  assert_that/ToVoidKey:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/pair_with_0_11\n  assert_that/Group/pair_with_0:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/pair_with_1_12\n  assert_that/Group/pair_with_1:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'assert_that/Group/Flatten/Transcode/0\n  assert_that/Group/Flatten/Transcode/0:urn:org.apache.beam:dofn:identity:0.1\n  must follow: \n  downstream_side_inputs: ', 'assert_that/Group/Flatten/Write/0\n  assert_that/Group/Flatten/Write/0:urn:org.apache.beam:sink:runner:0.1\n  must follow: \n  downstream_side_inputs: ', 'assert_that/Group/Flatten/Transcode/1\n  assert_that/Group/Flatten/Transcode/1:urn:org.apache.beam:dofn:identity:0.1\n  must follow: \n  downstream_side_inputs: ', 'assert_that/Group/Flatten/Write/1\n  assert_that/Group/Flatten/Write/1:urn:org.apache.beam:sink:runner:0.1\n  must follow: \n  downstream_side_inputs: ', 'assert_that/Group/Flatten/Read\n  assert_that/Group/Flatten/Read:urn:org.apache.beam:source:runner:0.1\n  must follow: assert_that/Group/Flatten/Write/1, assert_that/Group/Flatten/Write/0\n  downstream_side_inputs: ', 'assert_that/Group/GroupByKey/Write\n  assert_that/Group/GroupByKey/Write:urn:org.apache.beam:sink:runner:0.1\n  must follow: \n  downstream_side_inputs: ', 'assert_that/Group/GroupByKey/Read\n  assert_that/Group/GroupByKey/Read:urn:org.apache.beam:source:runner:0.1\n  must follow: assert_that/Group/GroupByKey/Write\n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Group/Map(_merge_tagged_vals_under_key)_18\n  assert_that/Group/Map(_merge_tagged_vals_under_key):urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Unkey_19\n  assert_that/Unkey:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ', 'ref_AppliedPTransform_assert_that/Match_20\n  assert_that/Match:urn:beam:transform:pardo:v1\n  must follow: \n  downstream_side_inputs: ']
> 08:54:35 root: INFO: ==================== <function FnApiRunner.create_stages.<locals>.greedily_fuse at 0x7ff6a5dc8840> ====================
> 08:54:35 root: DEBUG: consumers
> 08:54:35 defaultdict(<class 'list'>, {'ref_PCollection_PCollection_11': [ref_AppliedPTransform_assert_that/Group/Map(_merge_tagged_vals_under_key)_18
> 08:54:35   assert_that/Group/Map(_merge_tagged_vals_under_key):urn:beam:transform:pardo:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: ], 'ref_PCollection_PCollection_7': [assert_that/Group/Flatten/Transcode/1
> 08:54:35   assert_that/Group/Flatten/Transcode/1:urn:org.apache.beam:dofn:identity:0.1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: ], 'ref_PCollection_PCollection_3': [ref_AppliedPTransform_assert_that/Group/pair_with_0_11
> 08:54:35   assert_that/Group/pair_with_0:urn:beam:transform:pardo:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: ], 'ref_PCollection_PCollection_5': [ref_AppliedPTransform_assert_that/Group/pair_with_1_12
> 08:54:35   assert_that/Group/pair_with_1:urn:beam:transform:pardo:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: ], 'ref_PCollection_PCollection_8': [assert_that/Group/GroupByKey/Write
> 08:54:35   assert_that/Group/GroupByKey/Write:urn:org.apache.beam:sink:runner:0.1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: ], 'ref_PCollection_PCollection_4': [ref_AppliedPTransform_assert_that/ToVoidKey_9
> 08:54:35   assert_that/ToVoidKey:urn:beam:transform:pardo:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: ], 'ref_PCollection_PCollection_2': [ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8
> 08:54:35   assert_that/WindowInto(WindowIntoFn):beam:transform:window_into:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: ], 'assert_that/Group/Flatten/Transcode/1/out': [assert_that/Group/Flatten/Write/1
> 08:54:35   assert_that/Group/Flatten/Write/1:urn:org.apache.beam:sink:runner:0.1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: ], 'ref_PCollection_PCollection_6': [assert_that/Group/Flatten/Transcode/0
> 08:54:35   assert_that/Group/Flatten/Transcode/0:urn:org.apache.beam:dofn:identity:0.1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: ], 'ref_PCollection_PCollection_12': [ref_AppliedPTransform_assert_that/Unkey_19
> 08:54:35   assert_that/Unkey:urn:beam:transform:pardo:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: ], 'assert_that/Group/Flatten/Transcode/0/out': [assert_that/Group/Flatten/Write/0
> 08:54:35   assert_that/Group/Flatten/Write/0:urn:org.apache.beam:sink:runner:0.1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: ], 'ref_PCollection_PCollection_1': [ref_AppliedPTransform_ParDo(AddIndex)_4
> 08:54:35   ParDo(AddIndex):urn:beam:transform:pardo:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: ], 'ref_PCollection_PCollection_13': [ref_AppliedPTransform_assert_that/Match_20
> 08:54:35   assert_that/Match:urn:beam:transform:pardo:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: ]})
> 08:54:35 root: DEBUG: producers
> 08:54:35 {'ref_PCollection_PCollection_11': assert_that/Group/GroupByKey/Read
> 08:54:35   assert_that/Group/GroupByKey/Read:urn:org.apache.beam:source:runner:0.1
> 08:54:35   must follow: assert_that/Group/GroupByKey/Write
> 08:54:35   downstream_side_inputs: , 'ref_PCollection_PCollection_14': ref_AppliedPTransform_assert_that/Match_20
> 08:54:35   assert_that/Match:urn:beam:transform:pardo:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: , 'ref_PCollection_PCollection_7': ref_AppliedPTransform_assert_that/Group/pair_with_1_12
> 08:54:35   assert_that/Group/pair_with_1:urn:beam:transform:pardo:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: , 'ref_PCollection_PCollection_3': ref_AppliedPTransform_assert_that/Create/Read_7
> 08:54:35   assert_that/Create/Read:beam:transform:read:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: , 'ref_PCollection_PCollection_5': ref_AppliedPTransform_assert_that/ToVoidKey_9
> 08:54:35   assert_that/ToVoidKey:urn:beam:transform:pardo:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: , 'ref_PCollection_PCollection_8': assert_that/Group/Flatten/Read
> 08:54:35   assert_that/Group/Flatten/Read:urn:org.apache.beam:source:runner:0.1
> 08:54:35   must follow: assert_that/Group/Flatten/Write/1, assert_that/Group/Flatten/Write/0
> 08:54:35   downstream_side_inputs: , 'ref_PCollection_PCollection_4': ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8
> 08:54:35   assert_that/WindowInto(WindowIntoFn):beam:transform:window_into:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: , 'ref_PCollection_PCollection_2': ref_AppliedPTransform_ParDo(AddIndex)_4
> 08:54:35   ParDo(AddIndex):urn:beam:transform:pardo:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: , 'assert_that/Group/Flatten/Transcode/1/out': assert_that/Group/Flatten/Transcode/1
> 08:54:35   assert_that/Group/Flatten/Transcode/1:urn:org.apache.beam:dofn:identity:0.1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: , 'ref_PCollection_PCollection_6': ref_AppliedPTransform_assert_that/Group/pair_with_0_11
> 08:54:35   assert_that/Group/pair_with_0:urn:beam:transform:pardo:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: , 'ref_PCollection_PCollection_12': ref_AppliedPTransform_assert_that/Group/Map(_merge_tagged_vals_under_key)_18
> 08:54:35   assert_that/Group/Map(_merge_tagged_vals_under_key):urn:beam:transform:pardo:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: , 'assert_that/Group/Flatten/Transcode/0/out': assert_that/Group/Flatten/Transcode/0
> 08:54:35   assert_that/Group/Flatten/Transcode/0:urn:org.apache.beam:dofn:identity:0.1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: , 'ref_PCollection_PCollection_1': ref_AppliedPTransform_Create/Read_3
> 08:54:35   Create/Read:beam:transform:read:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: , 'ref_PCollection_PCollection_13': ref_AppliedPTransform_assert_that/Unkey_19
> 08:54:35   assert_that/Unkey:urn:beam:transform:pardo:v1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: }
> 08:54:35 root: DEBUG: Stages: ['(assert_that/Group/Flatten/Read)+(assert_that/Group/GroupByKey/Write)\n  assert_that/Group/Flatten/Read:urn:org.apache.beam:source:runner:0.1\nassert_that/Group/GroupByKey/Write:urn:org.apache.beam:sink:runner:0.1\n  must follow: (((ref_AppliedPTransform_assert_that/Create/Read_7)+(ref_AppliedPTransform_assert_that/Group/pair_with_0_11))+(assert_that/Group/Flatten/Transcode/0))+(assert_that/Group/Flatten/Write/0), (ref_AppliedPTransform_Create/Read_3)+(((ref_AppliedPTransform_ParDo(AddIndex)_4)+((ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8)+((ref_AppliedPTransform_assert_that/ToVoidKey_9)+((ref_AppliedPTransform_assert_that/Group/pair_with_1_12)+(assert_that/Group/Flatten/Transcode/1)))))+(assert_that/Group/Flatten/Write/1))\n  downstream_side_inputs: ', '(ref_AppliedPTransform_Create/Read_3)+(((ref_AppliedPTransform_ParDo(AddIndex)_4)+((ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8)+((ref_AppliedPTransform_assert_that/ToVoidKey_9)+((ref_AppliedPTransform_assert_that/Group/pair_with_1_12)+(assert_that/Group/Flatten/Transcode/1)))))+(assert_that/Group/Flatten/Write/1))\n  Create/Read:beam:transform:read:v1\nParDo(AddIndex):urn:beam:transform:pardo:v1\nassert_that/WindowInto(WindowIntoFn):beam:transform:window_into:v1\nassert_that/ToVoidKey:urn:beam:transform:pardo:v1\nassert_that/Group/pair_with_1:urn:beam:transform:pardo:v1\nassert_that/Group/Flatten/Transcode/1:urn:org.apache.beam:dofn:identity:0.1\nassert_that/Group/Flatten/Write/1:urn:org.apache.beam:sink:runner:0.1\n  must follow: \n  downstream_side_inputs: ', '(((assert_that/Group/GroupByKey/Read)+(ref_AppliedPTransform_assert_that/Group/Map(_merge_tagged_vals_under_key)_18))+(ref_AppliedPTransform_assert_that/Unkey_19))+(ref_AppliedPTransform_assert_that/Match_20)\n  assert_that/Group/GroupByKey/Read:urn:org.apache.beam:source:runner:0.1\nassert_that/Group/Map(_merge_tagged_vals_under_key):urn:beam:transform:pardo:v1\nassert_that/Unkey:urn:beam:transform:pardo:v1\nassert_that/Match:urn:beam:transform:pardo:v1\n  must follow: (assert_that/Group/Flatten/Read)+(assert_that/Group/GroupByKey/Write)\n  downstream_side_inputs: ', '(((ref_AppliedPTransform_assert_that/Create/Read_7)+(ref_AppliedPTransform_assert_that/Group/pair_with_0_11))+(assert_that/Group/Flatten/Transcode/0))+(assert_that/Group/Flatten/Write/0)\n  assert_that/Create/Read:beam:transform:read:v1\nassert_that/Group/pair_with_0:urn:beam:transform:pardo:v1\nassert_that/Group/Flatten/Transcode/0:urn:org.apache.beam:dofn:identity:0.1\nassert_that/Group/Flatten/Write/0:urn:org.apache.beam:sink:runner:0.1\n  must follow: \n  downstream_side_inputs: ']
> 08:54:35 root: INFO: ==================== <function FnApiRunner.create_stages.<locals>.impulse_to_input at 0x7ff6a5dc8158> ====================
> 08:54:35 root: DEBUG: Stages: ['(assert_that/Group/Flatten/Read)+(assert_that/Group/GroupByKey/Write)\n  assert_that/Group/Flatten/Read:urn:org.apache.beam:source:runner:0.1\nassert_that/Group/GroupByKey/Write:urn:org.apache.beam:sink:runner:0.1\n  must follow: (((ref_AppliedPTransform_assert_that/Create/Read_7)+(ref_AppliedPTransform_assert_that/Group/pair_with_0_11))+(assert_that/Group/Flatten/Transcode/0))+(assert_that/Group/Flatten/Write/0), (ref_AppliedPTransform_Create/Read_3)+(((ref_AppliedPTransform_ParDo(AddIndex)_4)+((ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8)+((ref_AppliedPTransform_assert_that/ToVoidKey_9)+((ref_AppliedPTransform_assert_that/Group/pair_with_1_12)+(assert_that/Group/Flatten/Transcode/1)))))+(assert_that/Group/Flatten/Write/1))\n  downstream_side_inputs: ', '(ref_AppliedPTransform_Create/Read_3)+(((ref_AppliedPTransform_ParDo(AddIndex)_4)+((ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8)+((ref_AppliedPTransform_assert_that/ToVoidKey_9)+((ref_AppliedPTransform_assert_that/Group/pair_with_1_12)+(assert_that/Group/Flatten/Transcode/1)))))+(assert_that/Group/Flatten/Write/1))\n  ParDo(AddIndex):urn:beam:transform:pardo:v1\nassert_that/WindowInto(WindowIntoFn):beam:transform:window_into:v1\nassert_that/ToVoidKey:urn:beam:transform:pardo:v1\nassert_that/Group/pair_with_1:urn:beam:transform:pardo:v1\nassert_that/Group/Flatten/Transcode/1:urn:org.apache.beam:dofn:identity:0.1\nassert_that/Group/Flatten/Write/1:urn:org.apache.beam:sink:runner:0.1\nCreate/Read:beam:transform:read_from_impulse_python:v1\nCreate/Read/Impulse:urn:org.apache.beam:source:runner:0.1\n  must follow: \n  downstream_side_inputs: ', '(((assert_that/Group/GroupByKey/Read)+(ref_AppliedPTransform_assert_that/Group/Map(_merge_tagged_vals_under_key)_18))+(ref_AppliedPTransform_assert_that/Unkey_19))+(ref_AppliedPTransform_assert_that/Match_20)\n  assert_that/Group/GroupByKey/Read:urn:org.apache.beam:source:runner:0.1\nassert_that/Group/Map(_merge_tagged_vals_under_key):urn:beam:transform:pardo:v1\nassert_that/Unkey:urn:beam:transform:pardo:v1\nassert_that/Match:urn:beam:transform:pardo:v1\n  must follow: (assert_that/Group/Flatten/Read)+(assert_that/Group/GroupByKey/Write)\n  downstream_side_inputs: ', '(((ref_AppliedPTransform_assert_that/Create/Read_7)+(ref_AppliedPTransform_assert_that/Group/pair_with_0_11))+(assert_that/Group/Flatten/Transcode/0))+(assert_that/Group/Flatten/Write/0)\n  assert_that/Group/pair_with_0:urn:beam:transform:pardo:v1\nassert_that/Group/Flatten/Transcode/0:urn:org.apache.beam:dofn:identity:0.1\nassert_that/Group/Flatten/Write/0:urn:org.apache.beam:sink:runner:0.1\nassert_that/Create/Read:beam:transform:read_from_impulse_python:v1\nassert_that/Create/Read/Impulse:urn:org.apache.beam:source:runner:0.1\n  must follow: \n  downstream_side_inputs: ']
> 08:54:35 root: INFO: ==================== <function FnApiRunner.create_stages.<locals>.inject_timer_pcollections at 0x7ff6a5dc8598> ====================
> 08:54:35 root: DEBUG: Stages: ['(assert_that/Group/Flatten/Read)+(assert_that/Group/GroupByKey/Write)\n  assert_that/Group/Flatten/Read:urn:org.apache.beam:source:runner:0.1\nassert_that/Group/GroupByKey/Write:urn:org.apache.beam:sink:runner:0.1\n  must follow: (((ref_AppliedPTransform_assert_that/Create/Read_7)+(ref_AppliedPTransform_assert_that/Group/pair_with_0_11))+(assert_that/Group/Flatten/Transcode/0))+(assert_that/Group/Flatten/Write/0), (ref_AppliedPTransform_Create/Read_3)+(((ref_AppliedPTransform_ParDo(AddIndex)_4)+((ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8)+((ref_AppliedPTransform_assert_that/ToVoidKey_9)+((ref_AppliedPTransform_assert_that/Group/pair_with_1_12)+(assert_that/Group/Flatten/Transcode/1)))))+(assert_that/Group/Flatten/Write/1))\n  downstream_side_inputs: ', '(ref_AppliedPTransform_Create/Read_3)+(((ref_AppliedPTransform_ParDo(AddIndex)_4)+((ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8)+((ref_AppliedPTransform_assert_that/ToVoidKey_9)+((ref_AppliedPTransform_assert_that/Group/pair_with_1_12)+(assert_that/Group/Flatten/Transcode/1)))))+(assert_that/Group/Flatten/Write/1))\n  ParDo(AddIndex):urn:beam:transform:pardo:v1\nassert_that/WindowInto(WindowIntoFn):beam:transform:window_into:v1\nassert_that/ToVoidKey:urn:beam:transform:pardo:v1\nassert_that/Group/pair_with_1:urn:beam:transform:pardo:v1\nassert_that/Group/Flatten/Transcode/1:urn:org.apache.beam:dofn:identity:0.1\nassert_that/Group/Flatten/Write/1:urn:org.apache.beam:sink:runner:0.1\nCreate/Read:beam:transform:read_from_impulse_python:v1\nCreate/Read/Impulse:urn:org.apache.beam:source:runner:0.1\n  must follow: \n  downstream_side_inputs: ', '(((assert_that/Group/GroupByKey/Read)+(ref_AppliedPTransform_assert_that/Group/Map(_merge_tagged_vals_under_key)_18))+(ref_AppliedPTransform_assert_that/Unkey_19))+(ref_AppliedPTransform_assert_that/Match_20)\n  assert_that/Group/GroupByKey/Read:urn:org.apache.beam:source:runner:0.1\nassert_that/Group/Map(_merge_tagged_vals_under_key):urn:beam:transform:pardo:v1\nassert_that/Unkey:urn:beam:transform:pardo:v1\nassert_that/Match:urn:beam:transform:pardo:v1\n  must follow: (assert_that/Group/Flatten/Read)+(assert_that/Group/GroupByKey/Write)\n  downstream_side_inputs: ', '(((ref_AppliedPTransform_assert_that/Create/Read_7)+(ref_AppliedPTransform_assert_that/Group/pair_with_0_11))+(assert_that/Group/Flatten/Transcode/0))+(assert_that/Group/Flatten/Write/0)\n  assert_that/Group/pair_with_0:urn:beam:transform:pardo:v1\nassert_that/Group/Flatten/Transcode/0:urn:org.apache.beam:dofn:identity:0.1\nassert_that/Group/Flatten/Write/0:urn:org.apache.beam:sink:runner:0.1\nassert_that/Create/Read:beam:transform:read_from_impulse_python:v1\nassert_that/Create/Read/Impulse:urn:org.apache.beam:source:runner:0.1\n  must follow: \n  downstream_side_inputs: ']
> 08:54:35 root: INFO: ==================== <function FnApiRunner.create_stages.<locals>.sort_stages at 0x7ff6a5dc82f0> ====================
> 08:54:35 root: DEBUG: Stages: ['(((ref_AppliedPTransform_assert_that/Create/Read_7)+(ref_AppliedPTransform_assert_that/Group/pair_with_0_11))+(assert_that/Group/Flatten/Transcode/0))+(assert_that/Group/Flatten/Write/0)\n  assert_that/Group/pair_with_0:urn:beam:transform:pardo:v1\nassert_that/Group/Flatten/Transcode/0:urn:org.apache.beam:dofn:identity:0.1\nassert_that/Group/Flatten/Write/0:urn:org.apache.beam:sink:runner:0.1\nassert_that/Create/Read:beam:transform:read_from_impulse_python:v1\nassert_that/Create/Read/Impulse:urn:org.apache.beam:source:runner:0.1\n  must follow: \n  downstream_side_inputs: ', '(ref_AppliedPTransform_Create/Read_3)+(((ref_AppliedPTransform_ParDo(AddIndex)_4)+((ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8)+((ref_AppliedPTransform_assert_that/ToVoidKey_9)+((ref_AppliedPTransform_assert_that/Group/pair_with_1_12)+(assert_that/Group/Flatten/Transcode/1)))))+(assert_that/Group/Flatten/Write/1))\n  ParDo(AddIndex):urn:beam:transform:pardo:v1\nassert_that/WindowInto(WindowIntoFn):beam:transform:window_into:v1\nassert_that/ToVoidKey:urn:beam:transform:pardo:v1\nassert_that/Group/pair_with_1:urn:beam:transform:pardo:v1\nassert_that/Group/Flatten/Transcode/1:urn:org.apache.beam:dofn:identity:0.1\nassert_that/Group/Flatten/Write/1:urn:org.apache.beam:sink:runner:0.1\nCreate/Read:beam:transform:read_from_impulse_python:v1\nCreate/Read/Impulse:urn:org.apache.beam:source:runner:0.1\n  must follow: \n  downstream_side_inputs: ', '(assert_that/Group/Flatten/Read)+(assert_that/Group/GroupByKey/Write)\n  assert_that/Group/Flatten/Read:urn:org.apache.beam:source:runner:0.1\nassert_that/Group/GroupByKey/Write:urn:org.apache.beam:sink:runner:0.1\n  must follow: (((ref_AppliedPTransform_assert_that/Create/Read_7)+(ref_AppliedPTransform_assert_that/Group/pair_with_0_11))+(assert_that/Group/Flatten/Transcode/0))+(assert_that/Group/Flatten/Write/0), (ref_AppliedPTransform_Create/Read_3)+(((ref_AppliedPTransform_ParDo(AddIndex)_4)+((ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8)+((ref_AppliedPTransform_assert_that/ToVoidKey_9)+((ref_AppliedPTransform_assert_that/Group/pair_with_1_12)+(assert_that/Group/Flatten/Transcode/1)))))+(assert_that/Group/Flatten/Write/1))\n  downstream_side_inputs: ', '(((assert_that/Group/GroupByKey/Read)+(ref_AppliedPTransform_assert_that/Group/Map(_merge_tagged_vals_under_key)_18))+(ref_AppliedPTransform_assert_that/Unkey_19))+(ref_AppliedPTransform_assert_that/Match_20)\n  assert_that/Group/GroupByKey/Read:urn:org.apache.beam:source:runner:0.1\nassert_that/Group/Map(_merge_tagged_vals_under_key):urn:beam:transform:pardo:v1\nassert_that/Unkey:urn:beam:transform:pardo:v1\nassert_that/Match:urn:beam:transform:pardo:v1\n  must follow: (assert_that/Group/Flatten/Read)+(assert_that/Group/GroupByKey/Write)\n  downstream_side_inputs: ']
> 08:54:35 root: INFO: Running (((ref_AppliedPTransform_assert_that/Create/Read_7)+(ref_AppliedPTransform_assert_that/Group/pair_with_0_11))+(assert_that/Group/Flatten/Transcode/0))+(assert_that/Group/Flatten/Write/0)
> 08:54:35 root: DEBUG:        (((ref_AppliedPTransform_assert_that/Create/Read_7)+(ref_AppliedPTransform_assert_that/Group/pair_with_0_11))+(assert_that/Group/Flatten/Transcode/0))+(assert_that/Group/Flatten/Write/0)
> 08:54:35   assert_that/Group/pair_with_0:urn:beam:transform:pardo:v1
> 08:54:35 assert_that/Group/Flatten/Transcode/0:urn:org.apache.beam:dofn:identity:0.1
> 08:54:35 assert_that/Group/Flatten/Write/0:urn:org.apache.beam:sink:runner:0.1
> 08:54:35 assert_that/Create/Read:beam:transform:read_from_impulse_python:v1
> 08:54:35 assert_that/Create/Read/Impulse:urn:org.apache.beam:source:runner:0.1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: 
> 08:54:35 root: DEBUG: CONTROL REQUEST instruction_id: "control_1"
> 08:54:35 register {
> 08:54:35   process_bundle_descriptor {
> 08:54:35     id: "0"
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/Create/Read"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "beam:transform:read_from_impulse_python:v1"
> 08:54:35           payload: "\n\367\002\n\325\002\n\035beam:source:pickled_python:v1\032\263\002\n\260\002eNp9js1OwzAQhE0KLaRA6A/vAJe8RCQuXCrBwRdkrd2tYtUhXa/TA5IluPDcxG1UiUtPuzPa+Xa+RwZ2YGpUGqEpg4dP3rS+4dJ4hICK284bzFV1kG9HReL5hy4iZU9yKoRQoQ3gFNsvpNFrJufJY/QWXG+t1R5ch0yXH3RVZULQGOQ4nZh2jZ4m/xocPB5G/t7tHFZpz+m6/3kTKZeTU5Zpeib8AhxW3jY22D3yQLntKXeR7mWRKBtwToPZDlWKM7SVNdtTl4eeMos016zrRFxEWtZFPWP9S4+sO13+ATCRc9g=\022\035ref_Environment_Environment_1\020\002"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "in"
> 08:54:35           value: "Impulse_1"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "out"
> 08:54:35           value: "ref_PCollection_PCollection_3"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/Create/Read"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/Create/Read/Impulse"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:org.apache.beam:source:runner:0.1"
> 08:54:35           payload: "\022\005coder"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "out"
> 08:54:35           value: "Impulse_1"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/Create/Read/Impulse"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/Group/Flatten/Transcode/0"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:org.apache.beam:dofn:identity:0.1"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "0"
> 08:54:35           value: "ref_PCollection_PCollection_6"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "out"
> 08:54:35           value: "assert_that/Group/Flatten/Transcode/0/out"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/Group/Flatten/Transcode/0"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/Group/Flatten/Write/0"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:org.apache.beam:sink:runner:0.1"
> 08:54:35           payload: "\022*ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "0"
> 08:54:35           value: "assert_that/Group/Flatten/Transcode/0/out"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/Group/Flatten/Write/0"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/Group/pair_with_0"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:beam:transform:pardo:v1"
> 08:54:35           payload: "\n\333\007\n\271\007\n beam:dofn:pickled_python_info:v1\032\224\007eNq9U1lT1EAQzh5cAU/wAhTFK4uyURQVBUQXOVwJVLDKPGhNzWZndyK5OjMBt4qt0odFnvzN9gQt3PJ4tGoqM91f+puZ75v+XDBcGlOXM1JjNCjLhIaiESWBKLtRwvQK9X1a89m7hMYxS5ajlVAHrfQFcm3IG05B0zTSCKHg1j3fLxP11YmbMCoZaaShK70IC4pGF+5HtE5kK2Y69Dj9SFGJ6uwtxtDbgT4b+o1qrqpVC9VidaIyfKhp+zhy2n5e+5bTmjltGwasDuglJ4e1n2DQKeJMk6aAIacXlzt7WXDiK5x0BMYmjwJmfmThjheKn/O08OkuM/eiZEegAMxU9ydbCatEQeBJstWSPArJUbQ0Y4rENUV9R5hxBpi/qGYeq2Yq1cpxC05lF5v3aVCr00U4vTFVrGhwxsljFgU724HhkoQRG851SdNkklApEx3OZwS11PMlnhYuOH0YIqxQuHgAl2wY7Sr1gjhKJAmieuqjsmPOmFLl797CeAcu23Al24cgiSsJgYkDuGrDNWdEJWPqJUTSJtnzJCe71E8ZTFp/8tplGMB1XjQ4updH94ro33ZlHK17n9faOArKQGVjQWvk1diGG2jjzZLhDCjTWOvHDreyZ4Xbwu1shQgYTg+ujnDUbeq/+5pKz1e+3uGT1cNKUcsN5eBuCY8ybUOZj/J/yq2KwezAPRvuc1R4xoYHfNKy2vDQGVRCq2Yg3AulgNnufkQgy5frDE2jMkqEvr6pmmVNpXV4hM34GJmeGBmVF8apzPgEzFnOEKaiVB7nnlrpATyrCQnzNix0YNGG5x1YasMLg89yRfYSySoGn7N49u9y7eiIqqVi5qpuf8UXUgkrNqxmjzJOIpcJAWt89bfbrGeUr5Gyekz5ppbWPsBGVaNtsCxLwmb5Ozh2dPA=\022\035ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "0"
> 08:54:35           value: "ref_PCollection_PCollection_3"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "None"
> 08:54:35           value: "ref_PCollection_PCollection_6"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/Group/pair_with_0"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "Impulse"
> 08:54:35       value {
> 08:54:35         unique_name: "Impulse"
> 08:54:35         coder_id: "coder"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "Impulse_1"
> 08:54:35       value {
> 08:54:35         unique_name: "Impulse_1"
> 08:54:35         coder_id: "coder"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "assert_that/Group/Flatten/Transcode/0/out"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_0.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "assert_that/Group/Flatten/Transcode/1/out"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_1.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_1"
> 08:54:35       value {
> 08:54:35         unique_name: "11Create/Read.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_7"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_10"
> 08:54:35       value {
> 08:54:35         unique_name: "39assert_that/Group/GroupByKey/GroupByKey.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_1"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_11"
> 08:54:35       value {
> 08:54:35         unique_name: "42assert_that/Group/GroupByKey/GroupByWindow.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_1_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_12"
> 08:54:35       value {
> 08:54:35         unique_name: "51assert_that/Group/Map(_merge_tagged_vals_under_key).None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_6"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_13"
> 08:54:35       value {
> 08:54:35         unique_name: "17assert_that/Unkey.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_6"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_14"
> 08:54:35       value {
> 08:54:35         unique_name: "17assert_that/Match.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_6"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_2"
> 08:54:35       value {
> 08:54:35         unique_name: "15ParDo(AddIndex).None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_10"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_3"
> 08:54:35       value {
> 08:54:35         unique_name: "23assert_that/Create/Read.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_4"
> 08:54:35       value {
> 08:54:35         unique_name: "36assert_that/WindowInto(WindowIntoFn).None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_10"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_5"
> 08:54:35       value {
> 08:54:35         unique_name: "21assert_that/ToVoidKey.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_14"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_6"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_0.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_7"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_1.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_8"
> 08:54:35       value {
> 08:54:35         unique_name: "25assert_that/Group/Flatten.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_9"
> 08:54:35       value {
> 08:54:35         unique_name: "41assert_that/Group/GroupByKey/ReifyWindows.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     windowing_strategies {
> 08:54:35       key: "ref_Windowing_Windowing_1"
> 08:54:35       value {
> 08:54:35         window_fn {
> 08:54:35           spec {
> 08:54:35             urn: "beam:windowfn:global_windows:v0.1"
> 08:54:35           }
> 08:54:35           environment_id: "ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35         merge_status: NON_MERGING
> 08:54:35         window_coder_id: "ref_Coder_GlobalWindowCoder_1"
> 08:54:35         trigger {
> 08:54:35           default {
> 08:54:35           }
> 08:54:35         }
> 08:54:35         accumulation_mode: DISCARDING
> 08:54:35         output_time: END_OF_WINDOW
> 08:54:35         closing_behavior: EMIT_ALWAYS
> 08:54:35         OnTimeBehavior: FIRE_ALWAYS
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "bytes_coder"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:bytes:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "coder"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:pickled_python:v1"
> 08:54:35             payload: "\n\230\001FastPrimitivesCoder$eNprYE5OLEhMzkiNT0pNzNVLzk9JLSqGUlxuicUlAUWZuZklmWWpxc4gQa5CBs3GQsbaQqYIfgYGhvi0xJycpMTk7HiwlkJ8pgVkJmfnpEJNYQGawlpbyJZUnKQHACYlLgM="
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_FastPrimitivesCoder_3_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:length_prefix:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_FastPrimitivesCoder_3_len_prefix_1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:length_prefix:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_GlobalWindowCoder_1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:global_window:v1"
> 08:54:35           }
> 08:54:35           environment_id: "ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:global_window:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_IterableCoder_4"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:iterable:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_IterableCoder_4_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:iterable:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_IterableCoder_4_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:iterable:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_StrUtf8Coder_9"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:pickled_python:v1"
> 08:54:35             payload: "\nUStrUtf8Coder$eNprYE5OLEhMzkiNT0pNzNVLzk9JLSqGUlzBJUWhJWkWziAeVyGDZmMhY20hU5IeAAbXEkc="
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_11"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:pickled_python:v1"
> 08:54:35             payload: "\n\327\001TupleCoder$eNprYE5OLEhMzkiNT0pNzNVLzk9JLSqGUlwhpQU5qc4gNlchg2ZjIWNtIVMEOwMDQzxEQSE+zcElRaElaRZQ7SxA7ay1hWxJGSAWe20hRxIevW6JxSUBRZm5mSWZZanFUCM4gRq5agu5I/hBLkhLzMlJSkzOhjilkAePaQGZydlwf/ACTeGrLeRPKk5qLxQoTtIDAOpOWPU="
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_13"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_13_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_13_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix"
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_15"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_11"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_17"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_19"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_15"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_2"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_IterableCoder_4"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_2_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35         component_coder_ids: "ref_Coder_IterableCoder_4_bytes"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_2_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix_1"
> 08:54:35         component_coder_ids: "ref_Coder_IterableCoder_4_len_prefix"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_8"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_StrUtf8Coder_9"
> 08:54:35         component_coder_ids: "ref_Coder_StrUtf8Coder_9"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_VarIntCoder_2"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:varint:v1"
> 08:54:35           }
> 08:54:35           environment_id: "ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_2"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_10"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_11"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_12"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_12_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13_bytes"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13_len_prefix"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_14"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_15"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_16"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_17"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_18"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_19"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_1_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_2_bytes"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_1_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_2_len_prefix"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_6"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_7"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_8"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     environments {
> 08:54:35       key: "ref_Environment_Environment_1"
> 08:54:35       value {
> 08:54:35         url: "unknown"
> 08:54:35         urn: "beam:env:docker:v1"
> 08:54:35         payload: "\n\007unknown"
> 08:54:35       }
> 08:54:35     }
> 08:54:35   }
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: CONTROL RESPONSE instruction_id: "control_1"
> 08:54:35 register {
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: CONTROL REQUEST instruction_id: "bundle_398"
> 08:54:35 process_bundle {
> 08:54:35   process_bundle_descriptor_reference: "0"
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: start <DataOutputOperation >
> 08:54:35 root: DEBUG: start <FlattenOperation assert_that/Group/Flatten/Transcode/0 >
> 08:54:35 root: DEBUG: start <DoOperation assert_that/Group/pair_with_0 output_tags=['out']>
> 08:54:35 root: DEBUG: start <ImpulseReadOperation receivers=[ConsumerSet[assert_that/Create/Read.out0, coder=WindowedValueCoder[TupleCoder[FastPrimitivesCoder, FastPrimitivesCoder]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: start <DataInputOperation receivers=[ConsumerSet[assert_that/Create/Read/Impulse.out0, coder=WindowedValueCoder[BytesCoder], len(consumers)=1]]>
> 08:54:35 root: DEBUG: Processing [((None, (0, None)), MIN_TIMESTAMP, (GlobalWindow,), PaneInfo(first: True, last: True, timing: 3, index: 0, nonspeculative_index: 0))] in <FlattenOperation assert_that/Group/Flatten/Transcode/0 receivers=[ConsumerSet[assert_that/Group/Flatten/Transcode/0.out0, coder=WindowedValueCoder[TupleCoder[LengthPrefixCoder[FastPrimitivesCoder], LengthPrefixCoder[FastPrimitivesCoder]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DataInputOperation receivers=[ConsumerSet[assert_that/Create/Read/Impulse.out0, coder=WindowedValueCoder[BytesCoder], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <ImpulseReadOperation receivers=[ConsumerSet[assert_that/Create/Read.out0, coder=WindowedValueCoder[TupleCoder[FastPrimitivesCoder, FastPrimitivesCoder]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DoOperation assert_that/Group/pair_with_0 output_tags=['out'], receivers=[ConsumerSet[assert_that/Group/pair_with_0.out0, coder=WindowedValueCoder[TupleCoder[LengthPrefixCoder[FastPrimitivesCoder], LengthPrefixCoder[FastPrimitivesCoder]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <FlattenOperation assert_that/Group/Flatten/Transcode/0 receivers=[ConsumerSet[assert_that/Group/Flatten/Transcode/0.out0, coder=WindowedValueCoder[TupleCoder[LengthPrefixCoder[FastPrimitivesCoder], LengthPrefixCoder[FastPrimitivesCoder]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DataOutputOperation >
> 08:54:35 root: DEBUG: CONTROL RESPONSE instruction_id: "bundle_398"
> 08:54:35 process_bundle {
> 08:54:35   metrics {
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/Create/Read"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "out"
> 08:54:35               value: 1
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/Create/Read/Impulse"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "out"
> 08:54:35               value: 1
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/Group/Flatten/Transcode/0"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "out"
> 08:54:35               value: 1
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/Group/Flatten/Write/0"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/Group/pair_with_0"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "None"
> 08:54:35               value: 1
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35   }
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: Gather all output data from [primitive_transform_reference: "assert_that/Group/Flatten/Write/0"
> 08:54:35 name: "0"
> 08:54:35 ].
> 08:54:35 root: DEBUG: Wait for the bundle to finish.
> 08:54:35 root: INFO: Running (ref_AppliedPTransform_Create/Read_3)+(((ref_AppliedPTransform_ParDo(AddIndex)_4)+((ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8)+((ref_AppliedPTransform_assert_that/ToVoidKey_9)+((ref_AppliedPTransform_assert_that/Group/pair_with_1_12)+(assert_that/Group/Flatten/Transcode/1)))))+(assert_that/Group/Flatten/Write/1))
> 08:54:35 root: DEBUG:        (ref_AppliedPTransform_Create/Read_3)+(((ref_AppliedPTransform_ParDo(AddIndex)_4)+((ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8)+((ref_AppliedPTransform_assert_that/ToVoidKey_9)+((ref_AppliedPTransform_assert_that/Group/pair_with_1_12)+(assert_that/Group/Flatten/Transcode/1)))))+(assert_that/Group/Flatten/Write/1))
> 08:54:35   ParDo(AddIndex):urn:beam:transform:pardo:v1
> 08:54:35 assert_that/WindowInto(WindowIntoFn):beam:transform:window_into:v1
> 08:54:35 assert_that/ToVoidKey:urn:beam:transform:pardo:v1
> 08:54:35 assert_that/Group/pair_with_1:urn:beam:transform:pardo:v1
> 08:54:35 assert_that/Group/Flatten/Transcode/1:urn:org.apache.beam:dofn:identity:0.1
> 08:54:35 assert_that/Group/Flatten/Write/1:urn:org.apache.beam:sink:runner:0.1
> 08:54:35 Create/Read:beam:transform:read_from_impulse_python:v1
> 08:54:35 Create/Read/Impulse:urn:org.apache.beam:source:runner:0.1
> 08:54:35   must follow: 
> 08:54:35   downstream_side_inputs: 
> 08:54:35 root: DEBUG: CONTROL REQUEST instruction_id: "control_2"
> 08:54:35 register {
> 08:54:35   process_bundle_descriptor {
> 08:54:35     id: "1"
> 08:54:35     transforms {
> 08:54:35       key: "Create/Read"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "beam:transform:read_from_impulse_python:v1"
> 08:54:35           payload: "\n\323\002\n\261\002\n\035beam:source:pickled_python:v1\032\217\002\n\214\002eNp9jrsKwkAQRaPRROMjPv9Bm9S2mtJShTSyzK4jCtE4OxsLIaCN321iRLCxOvdeOMPcbQUXUAcUEuEUGA1n3if6xIHSCAYFJ6lW6InwXVdlI2v6oEpG1UnUsixLmMRALPh4Q7KXfjQoNkZ9hDifduIKcYpMtS3VJ6FdmQM5JdwcC0mNEs0SHkZOcUAlO9TU+vnvvfEH3jq9xBgW2aN2/lEno27kfl0m/4+8Mnpj9rOP3sv1fkYDeSjSMKORfNKYZSqDF0H7XRo=\022\035ref_Environment_Environment_1\020\002"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "in"
> 08:54:35           value: "Impulse"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "out"
> 08:54:35           value: "ref_PCollection_PCollection_1"
> 08:54:35         }
> 08:54:35         unique_name: "Create/Read"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "Create/Read/Impulse"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:org.apache.beam:source:runner:0.1"
> 08:54:35           payload: "\022\005coder"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "out"
> 08:54:35           value: "Impulse"
> 08:54:35         }
> 08:54:35         unique_name: "Create/Read/Impulse"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "ParDo(AddIndex)"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:beam:transform:pardo:v1"
> 08:54:35           payload: "\n\213\t\n\351\010\n beam:dofn:pickled_python_info:v1\032\304\010eNqdU1tz3DQUlrNJW5wEKPd7y90L1KYBCpRby7alYcENTkkNNKORbW3txpZ8JDmQmXgGhtl94C/zwpE2TLNT2gdeLOkc6zufvvOd3wdBXlR1HVL79WmuODOcmoOW+0AWc7VkxVHGS5cJIXYPS1MYJLCcnsLA5aLYFAX/DVZy1rK85DTjrAmNYkJPpGp0mEvF/SvymvDhxBRO9nAqSNfxJqW6lkawhmtK4ZFd8NOTGG6VzLnWsPpfJCedyE0lEWotKD1HYCQLftOyWp/Cowk8FowHYzJewa8enT/0yO0l0g9Iv0wOl8hdQgqP/OkR73BADuchPBMyGZAdryBkGx6Px94MTqcDhGZFAU+4Z2P1Ap6cwVOBO2peT+DpdAm3e/vwTLqCm8qp8Gzq2SA859Z9eN7AC+lfuI1K2fDoLhd7ldD/rud0zfZ59KtUexrF45HVjm4pPpJNUxm6dWBKKej8dGkj0iqPdLGno9YlomOKR6oTgitMSWVYVtWVOYgmgrK2ovMUNVybsD2AF8vV8d+jE8Rb89Y9eGk4NPByAq8s6H2HG8qMUT6ccSpnXVUbZAxnXZMwbbPw6gxeS+D1hatVYynQRhZdjb55I92wUh7zxhHT8BjT8H6m8OYU3krgbVeeInZu0CbBDIYJvFOuPtRtdBvpceu5LaZY48O7wz/gvR7OBalv22ezVLc8h/BBOJ1GivY/H9XPKlGJOzus7rhD3sarPkQI+n4P5+egufsNLSpg46HkRqyuWVbzW4q1LVdzeG7H4wME/LCHj4J01b7ZzhotK2E0XFhExISLhwVHSGak0v7mDTsF123Yh48R6ZO4h0/nUJVoO+PwNFyM0zUMyc7ci30WdzP4PHOmtw/4ojxTnnUn3TXw5Qy+SuBSlznv24GFy8cs/7Xb5ziGCkYLPF1MHy3+DlObwthxRVddQYJXe7iWIaptcGv7RKsCvklP49Gp7HoXuCJDuN5lU9jEJ31rYJzAd86GaAuZoyu+j+9TLC6tBjfwwlZQXoxL98QfMtcqemROvJn8X3dudwZuJvAjFtnp4VZ5wdVLsd5P9+r9nOlsF37p4XYcG9gN/wHYLsrz\022\035ref_Environment_Environment_1\"\377\002\n\005index\022\365\002\032\362\002\n\027ref_Coder_VarIntCoder_2\022\326\002\n\264\002\n beam:combinefn:pickled_python:v1\032\217\002\n\214\002eNpdjTFuAjEQRZdAEjAkXCM0vgQSgmaRUKRsZ42XASx5bY89LiiQkoZz490UkdJM8f7/b77HLQRoL6g0Qic5gksnH7skWx9RrMFa0Ba/IoSAce07bRxunKBq9UOjGz19NPOqqhRfA6qLcZzon7EEA5dHLEpgH5PY7T8L3vZY0KSYnusbvfyqjAuZB1+i17pZFOQz/7Fpne800824f3tyJNqjsVaq/gp1RlbAHAXNm2lp6GwsG5doMQxS7ujtTu8HWmYtH2LJU8A=\022\035ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "0"
> 08:54:35           value: "ref_PCollection_PCollection_1"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "None"
> 08:54:35           value: "ref_PCollection_PCollection_2"
> 08:54:35         }
> 08:54:35         unique_name: "ParDo(AddIndex)"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/Group/Flatten/Transcode/1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:org.apache.beam:dofn:identity:0.1"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "1"
> 08:54:35           value: "ref_PCollection_PCollection_7"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "out"
> 08:54:35           value: "assert_that/Group/Flatten/Transcode/1/out"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/Group/Flatten/Transcode/1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/Group/Flatten/Write/1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:org.apache.beam:sink:runner:0.1"
> 08:54:35           payload: "\022*ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "1"
> 08:54:35           value: "assert_that/Group/Flatten/Transcode/1/out"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/Group/Flatten/Write/1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/Group/pair_with_1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:beam:transform:pardo:v1"
> 08:54:35           payload: "\n\333\007\n\271\007\n beam:dofn:pickled_python_info:v1\032\224\007eNq9U1tP1EAUbneX24JX8AYoircuylZRVBQQLXKxUkgxsQ+aybQ7u1Pptj3tFNyETfRhkSd/s2eKBjdeHk0mnTnn6/lm5vvmfC5qHo2pxxlxGW1WRULDtB4lzbTqRQkrGzQIqBuwdwmNY5YsRythGZTKF1DbUNCcoqIopB5C0av5QVAl8lsmXsKoYKSehZ7wIywoaV14ENEaEa2YlaHH6UcKI6qxtxhDbwf6bOjXTNVUzKJZMieM4UNF2cehKvsF5ZuqNFRlGwasDpQrjoq1n2DQKeFMk0YKQ04vLnf28uDEVzjppBjrPGoy/SMLd/ww/TlPpwHdZfpelOykKADT5f3JVsKMqNn0BdlqCR6F5ChamtHTxNPT2k6qxzmg/6KafqyaLlWrxi04lV9sPqBNt0YX4fTGVMlQ4IxTwCwKdrYDwxUBIzac65KmwQShQiRlOJ8TuJkfCDwtXHD6MERYonDxAC7ZMNpV6jfjKBGkGdWyAJUdc8akKn/3FsY7cNmGK/k+BEk8QQhMHMBVG645IzIZUz8hgjbIni842aVBxmDS+pPXHsMArvOSxtG9ArpXQv+2jXG07n1BaeMoSgOljUWlXpBjG26gjTcrmjMgTWOtHzvcyp8Vbgu38xUioDk9uDrCUbep/+5rJvxA+nqHT5qHRklRh1S4W8GjTNtQ5aP8n3LLYtA7cM+G+xwVnrHhAZ+0rDY8dAal0LIZCPdDkcJsdz8ikOerNYamURElaXl9UzbLmkyX4RE242NkeqLlVH4YZyLnS2HOcoYwFWXiOPfUyg7gmZsKmLdhoQOLNjzvwFIbXmh8lkuyl0hmaHzO4vm/y+7REWVLxcyT3f6KL2QCVmxYzR9lnEQeS1NY46u/3WY9p3yNlOYx5Rs3cz/AhqnSNliWJWCz+h04gXTx\022\035ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "0"
> 08:54:35           value: "ref_PCollection_PCollection_5"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "None"
> 08:54:35           value: "ref_PCollection_PCollection_7"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/Group/pair_with_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/ToVoidKey"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:beam:transform:pardo:v1"
> 08:54:35           payload: "\n\373\006\n\331\006\n beam:dofn:pickled_python_info:v1\032\264\006eNq9U2tP1EAU7S4oWF4qPkB8P7sKraLiCxUtImZjJcXEfjGTaTu7U2k7vZ0pSuImGlPi7/EXetuNgVXjRz/0ce/tOb33nDtfhoyAZjTgjPiMJqbKaSo7Ik+kGYic6TaNY+rH7F1Os4zlq2It1UFrfYVGD5qGN6RpGumkMBSEURybpLrrJMgZVYx0ijRQkUDAsDFQjwUNidrJmA4HvFGksEXI3mIMB0sYcWHUaDfaGl7N9rQ98V3TPmvat4bWbWibcMgpQW95DUR9grESxj2JrxYXCbM+sHQrSuWv54KM6TazPop8S+KIzKomJBs5s0WSRIps7CguUtKPVhYtmQeWDLekldUFa58u1p4uVqWLme3ARN36ckwTP6RPYPL1/LCtwZTXxCxKcriEIy0FR12YHhi+yxShSuU6HKsJ/CKKFXYLx70RDLFcVeHELpx0YWYAGiWZyBVJRFjEqN2sN4eAf7gHp0qYc+F0/R+CJIEiBM7swlkXzvFJ52+mBQwDOM+HDb7Phk1bD2sbOk304AJ6cLHvwTZcKuGyl/0XD5hEobpWoaK4MuAKn2z/4FMtVPmqC9f4DJ/1Zn5XpI8xKwwYJbRcuM5RgRsuzKMCTg8WvLFKnWodCY9SJcEcPBFYqPNmyFBUqkQu9VdvqnVdr9I6WHgcbiLTLaOmitKsUDWfhEXHG8eUKNRe7rZT7MIdXyq468JSCfdcuF/Cgx48NLjJK7JHSLZs8EWH198+9vst0rwrMxZU5+0JXyoUPHVhpV6aLBcBkxKe8ZU/pnleU9pIubpH+cIv/Pew1oOXjqNg3fwJ1/pR9g==\022\035ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "0"
> 08:54:35           value: "ref_PCollection_PCollection_4"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "None"
> 08:54:35           value: "ref_PCollection_PCollection_5"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/ToVoidKey"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/WindowInto(WindowIntoFn)"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "beam:transform:window_into:v1"
> 08:54:35           payload: "\nD\n#\n!beam:windowfn:global_windows:v0.1\022\035ref_Environment_Environment_1\020\001\032\035ref_Coder_GlobalWindowCoder_1\"\002:\000(\0010\0018\001H\001"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "0"
> 08:54:35           value: "ref_PCollection_PCollection_2"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "None"
> 08:54:35           value: "ref_PCollection_PCollection_4"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/WindowInto(WindowIntoFn)"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "Impulse"
> 08:54:35       value {
> 08:54:35         unique_name: "Impulse"
> 08:54:35         coder_id: "coder"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "Impulse_1"
> 08:54:35       value {
> 08:54:35         unique_name: "Impulse_1"
> 08:54:35         coder_id: "coder"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "assert_that/Group/Flatten/Transcode/0/out"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_0.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "assert_that/Group/Flatten/Transcode/1/out"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_1.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_1"
> 08:54:35       value {
> 08:54:35         unique_name: "11Create/Read.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_7"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_10"
> 08:54:35       value {
> 08:54:35         unique_name: "39assert_that/Group/GroupByKey/GroupByKey.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_1"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_11"
> 08:54:35       value {
> 08:54:35         unique_name: "42assert_that/Group/GroupByKey/GroupByWindow.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_1_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_12"
> 08:54:35       value {
> 08:54:35         unique_name: "51assert_that/Group/Map(_merge_tagged_vals_under_key).None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_6"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_13"
> 08:54:35       value {
> 08:54:35         unique_name: "17assert_that/Unkey.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_6"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_14"
> 08:54:35       value {
> 08:54:35         unique_name: "17assert_that/Match.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_6"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_2"
> 08:54:35       value {
> 08:54:35         unique_name: "15ParDo(AddIndex).None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_10"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_3"
> 08:54:35       value {
> 08:54:35         unique_name: "23assert_that/Create/Read.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_4"
> 08:54:35       value {
> 08:54:35         unique_name: "36assert_that/WindowInto(WindowIntoFn).None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_10"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_5"
> 08:54:35       value {
> 08:54:35         unique_name: "21assert_that/ToVoidKey.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_14"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_6"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_0.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_7"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_1.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_8"
> 08:54:35       value {
> 08:54:35         unique_name: "25assert_that/Group/Flatten.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_9"
> 08:54:35       value {
> 08:54:35         unique_name: "41assert_that/Group/GroupByKey/ReifyWindows.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     windowing_strategies {
> 08:54:35       key: "ref_Windowing_Windowing_1"
> 08:54:35       value {
> 08:54:35         window_fn {
> 08:54:35           spec {
> 08:54:35             urn: "beam:windowfn:global_windows:v0.1"
> 08:54:35           }
> 08:54:35           environment_id: "ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35         merge_status: NON_MERGING
> 08:54:35         window_coder_id: "ref_Coder_GlobalWindowCoder_1"
> 08:54:35         trigger {
> 08:54:35           default {
> 08:54:35           }
> 08:54:35         }
> 08:54:35         accumulation_mode: DISCARDING
> 08:54:35         output_time: END_OF_WINDOW
> 08:54:35         closing_behavior: EMIT_ALWAYS
> 08:54:35         OnTimeBehavior: FIRE_ALWAYS
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "bytes_coder"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:bytes:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "coder"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:pickled_python:v1"
> 08:54:35             payload: "\n\230\001FastPrimitivesCoder$eNprYE5OLEhMzkiNT0pNzNVLzk9JLSqGUlxuicUlAUWZuZklmWWpxc4gQa5CBs3GQsbaQqYIfgYGhvi0xJycpMTk7HiwlkJ8pgVkJmfnpEJNYQGawlpbyJZUnKQHACYlLgM="
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_FastPrimitivesCoder_3_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:length_prefix:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_FastPrimitivesCoder_3_len_prefix_1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:length_prefix:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_GlobalWindowCoder_1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:global_window:v1"
> 08:54:35           }
> 08:54:35           environment_id: "ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:global_window:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_IterableCoder_4"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:iterable:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_IterableCoder_4_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:iterable:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_IterableCoder_4_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:iterable:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_StrUtf8Coder_9"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:pickled_python:v1"
> 08:54:35             payload: "\nUStrUtf8Coder$eNprYE5OLEhMzkiNT0pNzNVLzk9JLSqGUlzBJUWhJWkWziAeVyGDZmMhY20hU5IeAAbXEkc="
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_11"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:pickled_python:v1"
> 08:54:35             payload: "\n\327\001TupleCoder$eNprYE5OLEhMzkiNT0pNzNVLzk9JLSqGUlwhpQU5qc4gNlchg2ZjIWNtIVMEOwMDQzxEQSE+zcElRaElaRZQ7SxA7ay1hWxJGSAWe20hRxIevW6JxSUBRZm5mSWZZanFUCM4gRq5agu5I/hBLkhLzMlJSkzOhjilkAePaQGZydlwf/ACTeGrLeRPKk5qLxQoTtIDAOpOWPU="
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_13"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_13_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_13_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix"
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_15"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_11"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_17"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_19"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_15"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_2"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_IterableCoder_4"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_2_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35         component_coder_ids: "ref_Coder_IterableCoder_4_bytes"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_2_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix_1"
> 08:54:35         component_coder_ids: "ref_Coder_IterableCoder_4_len_prefix"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_8"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_StrUtf8Coder_9"
> 08:54:35         component_coder_ids: "ref_Coder_StrUtf8Coder_9"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_VarIntCoder_2"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:varint:v1"
> 08:54:35           }
> 08:54:35           environment_id: "ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_2"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_10"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_11"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_12"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_12_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13_bytes"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13_len_prefix"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_14"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_15"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_16"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_17"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_18"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_19"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_1_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_2_bytes"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_1_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_2_len_prefix"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_6"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_7"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_8"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     environments {
> 08:54:35       key: "ref_Environment_Environment_1"
> 08:54:35       value {
> 08:54:35         url: "unknown"
> 08:54:35         urn: "beam:env:docker:v1"
> 08:54:35         payload: "\n\007unknown"
> 08:54:35       }
> 08:54:35     }
> 08:54:35   }
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: CONTROL RESPONSE instruction_id: "control_2"
> 08:54:35 register {
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: CONTROL REQUEST instruction_id: "bundle_399"
> 08:54:35 process_bundle {
> 08:54:35   process_bundle_descriptor_reference: "1"
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: start <DataOutputOperation >
> 08:54:35 root: DEBUG: start <FlattenOperation assert_that/Group/Flatten/Transcode/1 >
> 08:54:35 root: DEBUG: start <DoOperation assert_that/Group/pair_with_1 output_tags=['out']>
> 08:54:35 root: DEBUG: start <DoOperation assert_that/ToVoidKey output_tags=['out']>
> 08:54:35 root: DEBUG: start <DoOperation assert_that/WindowInto(WindowIntoFn) output_tags=['out']>
> 08:54:35 root: DEBUG: start <DoOperation ParDo(AddIndex) output_tags=['out']>
> 08:54:35 root: DEBUG: start <ImpulseReadOperation receivers=[ConsumerSet[Create/Read.out0, coder=WindowedValueCoder[TupleCoder[StrUtf8Coder, StrUtf8Coder]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: start <DataInputOperation receivers=[ConsumerSet[Create/Read/Impulse.out0, coder=WindowedValueCoder[BytesCoder], len(consumers)=1]]>
> 08:54:35 root: DEBUG: Processing [((None, (1, ('A', 'a', 1))), MIN_TIMESTAMP, [GlobalWindow], PaneInfo(first: True, last: True, timing: 3, index: 0, nonspeculative_index: 0))] in <FlattenOperation assert_that/Group/Flatten/Transcode/1 receivers=[ConsumerSet[assert_that/Group/Flatten/Transcode/1.out0, coder=WindowedValueCoder[TupleCoder[LengthPrefixCoder[FastPrimitivesCoder], LengthPrefixCoder[FastPrimitivesCoder]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: Processing [((None, (1, ('A', 'a', 2))), MIN_TIMESTAMP, [GlobalWindow], PaneInfo(first: True, last: True, timing: 3, index: 0, nonspeculative_index: 0))] in <FlattenOperation assert_that/Group/Flatten/Transcode/1 receivers=[ConsumerSet[assert_that/Group/Flatten/Transcode/1.out0, coder=WindowedValueCoder[TupleCoder[LengthPrefixCoder[FastPrimitivesCoder], LengthPrefixCoder[FastPrimitivesCoder]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: Processing [((None, (1, ('B', 'b', 1))), MIN_TIMESTAMP, [GlobalWindow], PaneInfo(first: True, last: True, timing: 3, index: 0, nonspeculative_index: 0))] in <FlattenOperation assert_that/Group/Flatten/Transcode/1 receivers=[ConsumerSet[assert_that/Group/Flatten/Transcode/1.out0, coder=WindowedValueCoder[TupleCoder[LengthPrefixCoder[FastPrimitivesCoder], LengthPrefixCoder[FastPrimitivesCoder]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: Processing [((None, (1, ('B', 'b', 2))), MIN_TIMESTAMP, [GlobalWindow], PaneInfo(first: True, last: True, timing: 3, index: 0, nonspeculative_index: 0))] in <FlattenOperation assert_that/Group/Flatten/Transcode/1 receivers=[ConsumerSet[assert_that/Group/Flatten/Transcode/1.out0, coder=WindowedValueCoder[TupleCoder[LengthPrefixCoder[FastPrimitivesCoder], LengthPrefixCoder[FastPrimitivesCoder]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: Processing [((None, (1, ('B', 'b', 3))), MIN_TIMESTAMP, [GlobalWindow], PaneInfo(first: True, last: True, timing: 3, index: 0, nonspeculative_index: 0))] in <FlattenOperation assert_that/Group/Flatten/Transcode/1 receivers=[ConsumerSet[assert_that/Group/Flatten/Transcode/1.out0, coder=WindowedValueCoder[TupleCoder[LengthPrefixCoder[FastPrimitivesCoder], LengthPrefixCoder[FastPrimitivesCoder]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DataInputOperation receivers=[ConsumerSet[Create/Read/Impulse.out0, coder=WindowedValueCoder[BytesCoder], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <ImpulseReadOperation receivers=[ConsumerSet[Create/Read.out0, coder=WindowedValueCoder[TupleCoder[StrUtf8Coder, StrUtf8Coder]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DoOperation ParDo(AddIndex) output_tags=['out'], receivers=[ConsumerSet[ParDo(AddIndex).out0, coder=WindowedValueCoder[TupleCoder[StrUtf8Coder, StrUtf8Coder, FastPrimitivesCoder]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DoOperation assert_that/WindowInto(WindowIntoFn) output_tags=['out'], receivers=[ConsumerSet[assert_that/WindowInto(WindowIntoFn).out0, coder=WindowedValueCoder[TupleCoder[StrUtf8Coder, StrUtf8Coder, FastPrimitivesCoder]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DoOperation assert_that/ToVoidKey output_tags=['out'], receivers=[ConsumerSet[assert_that/ToVoidKey.out0, coder=WindowedValueCoder[TupleCoder[FastPrimitivesCoder, TupleCoder[StrUtf8Coder, StrUtf8Coder, FastPrimitivesCoder]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DoOperation assert_that/Group/pair_with_1 output_tags=['out'], receivers=[ConsumerSet[assert_that/Group/pair_with_1.out0, coder=WindowedValueCoder[TupleCoder[LengthPrefixCoder[FastPrimitivesCoder], LengthPrefixCoder[FastPrimitivesCoder]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <FlattenOperation assert_that/Group/Flatten/Transcode/1 receivers=[ConsumerSet[assert_that/Group/Flatten/Transcode/1.out0, coder=WindowedValueCoder[TupleCoder[LengthPrefixCoder[FastPrimitivesCoder], LengthPrefixCoder[FastPrimitivesCoder]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DataOutputOperation >
> 08:54:35 root: DEBUG: CONTROL RESPONSE instruction_id: "bundle_399"
> 08:54:35 process_bundle {
> 08:54:35   metrics {
> 08:54:35     ptransforms {
> 08:54:35       key: "Create/Read"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "out"
> 08:54:35               value: 5
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "Create/Read/Impulse"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "out"
> 08:54:35               value: 1
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "ParDo(AddIndex)"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "None"
> 08:54:35               value: 5
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/Group/Flatten/Transcode/1"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "out"
> 08:54:35               value: 5
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/Group/Flatten/Write/1"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/Group/pair_with_1"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "None"
> 08:54:35               value: 5
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/ToVoidKey"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "None"
> 08:54:35               value: 5
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/WindowInto(WindowIntoFn)"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "None"
> 08:54:35               value: 5
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35   }
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: Gather all output data from [primitive_transform_reference: "assert_that/Group/Flatten/Write/1"
> 08:54:35 name: "1"
> 08:54:35 ].
> 08:54:35 root: DEBUG: Wait for the bundle to finish.
> 08:54:35 root: INFO: Running (assert_that/Group/Flatten/Read)+(assert_that/Group/GroupByKey/Write)
> 08:54:35 root: DEBUG:        (assert_that/Group/Flatten/Read)+(assert_that/Group/GroupByKey/Write)
> 08:54:35   assert_that/Group/Flatten/Read:urn:org.apache.beam:source:runner:0.1
> 08:54:35 assert_that/Group/GroupByKey/Write:urn:org.apache.beam:sink:runner:0.1
> 08:54:35   must follow: (((ref_AppliedPTransform_assert_that/Create/Read_7)+(ref_AppliedPTransform_assert_that/Group/pair_with_0_11))+(assert_that/Group/Flatten/Transcode/0))+(assert_that/Group/Flatten/Write/0), (ref_AppliedPTransform_Create/Read_3)+(((ref_AppliedPTransform_ParDo(AddIndex)_4)+((ref_AppliedPTransform_assert_that/WindowInto(WindowIntoFn)_8)+((ref_AppliedPTransform_assert_that/ToVoidKey_9)+((ref_AppliedPTransform_assert_that/Group/pair_with_1_12)+(assert_that/Group/Flatten/Transcode/1)))))+(assert_that/Group/Flatten/Write/1))
> 08:54:35   downstream_side_inputs: 
> 08:54:35 root: DEBUG: CONTROL REQUEST instruction_id: "control_3"
> 08:54:35 register {
> 08:54:35   process_bundle_descriptor {
> 08:54:35     id: "2"
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/Group/Flatten/Read"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:org.apache.beam:source:runner:0.1"
> 08:54:35           payload: "\022*ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "None"
> 08:54:35           value: "ref_PCollection_PCollection_8"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/Group/Flatten/Read"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/Group/GroupByKey/Write"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:org.apache.beam:sink:runner:0.1"
> 08:54:35           payload: "\022*ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "0"
> 08:54:35           value: "ref_PCollection_PCollection_8"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/Group/GroupByKey/Write"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "Impulse"
> 08:54:35       value {
> 08:54:35         unique_name: "Impulse"
> 08:54:35         coder_id: "coder"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "Impulse_1"
> 08:54:35       value {
> 08:54:35         unique_name: "Impulse_1"
> 08:54:35         coder_id: "coder"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "assert_that/Group/Flatten/Transcode/0/out"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_0.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "assert_that/Group/Flatten/Transcode/1/out"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_1.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_1"
> 08:54:35       value {
> 08:54:35         unique_name: "11Create/Read.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_7"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_10"
> 08:54:35       value {
> 08:54:35         unique_name: "39assert_that/Group/GroupByKey/GroupByKey.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_1"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_11"
> 08:54:35       value {
> 08:54:35         unique_name: "42assert_that/Group/GroupByKey/GroupByWindow.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_1_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_12"
> 08:54:35       value {
> 08:54:35         unique_name: "51assert_that/Group/Map(_merge_tagged_vals_under_key).None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_6"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_13"
> 08:54:35       value {
> 08:54:35         unique_name: "17assert_that/Unkey.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_6"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_14"
> 08:54:35       value {
> 08:54:35         unique_name: "17assert_that/Match.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_6"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_2"
> 08:54:35       value {
> 08:54:35         unique_name: "15ParDo(AddIndex).None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_10"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_3"
> 08:54:35       value {
> 08:54:35         unique_name: "23assert_that/Create/Read.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_4"
> 08:54:35       value {
> 08:54:35         unique_name: "36assert_that/WindowInto(WindowIntoFn).None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_10"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_5"
> 08:54:35       value {
> 08:54:35         unique_name: "21assert_that/ToVoidKey.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_14"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_6"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_0.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_7"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_1.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_8"
> 08:54:35       value {
> 08:54:35         unique_name: "25assert_that/Group/Flatten.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_9"
> 08:54:35       value {
> 08:54:35         unique_name: "41assert_that/Group/GroupByKey/ReifyWindows.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     windowing_strategies {
> 08:54:35       key: "ref_Windowing_Windowing_1"
> 08:54:35       value {
> 08:54:35         window_fn {
> 08:54:35           spec {
> 08:54:35             urn: "beam:windowfn:global_windows:v0.1"
> 08:54:35           }
> 08:54:35           environment_id: "ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35         merge_status: NON_MERGING
> 08:54:35         window_coder_id: "ref_Coder_GlobalWindowCoder_1"
> 08:54:35         trigger {
> 08:54:35           default {
> 08:54:35           }
> 08:54:35         }
> 08:54:35         accumulation_mode: DISCARDING
> 08:54:35         output_time: END_OF_WINDOW
> 08:54:35         closing_behavior: EMIT_ALWAYS
> 08:54:35         OnTimeBehavior: FIRE_ALWAYS
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "bytes_coder"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:bytes:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "coder"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:pickled_python:v1"
> 08:54:35             payload: "\n\230\001FastPrimitivesCoder$eNprYE5OLEhMzkiNT0pNzNVLzk9JLSqGUlxuicUlAUWZuZklmWWpxc4gQa5CBs3GQsbaQqYIfgYGhvi0xJycpMTk7HiwlkJ8pgVkJmfnpEJNYQGawlpbyJZUnKQHACYlLgM="
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_FastPrimitivesCoder_3_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:length_prefix:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_FastPrimitivesCoder_3_len_prefix_1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:length_prefix:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_GlobalWindowCoder_1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:global_window:v1"
> 08:54:35           }
> 08:54:35           environment_id: "ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:global_window:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_IterableCoder_4"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:iterable:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_IterableCoder_4_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:iterable:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_IterableCoder_4_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:iterable:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_StrUtf8Coder_9"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:pickled_python:v1"
> 08:54:35             payload: "\nUStrUtf8Coder$eNprYE5OLEhMzkiNT0pNzNVLzk9JLSqGUlzBJUWhJWkWziAeVyGDZmMhY20hU5IeAAbXEkc="
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_11"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:pickled_python:v1"
> 08:54:35             payload: "\n\327\001TupleCoder$eNprYE5OLEhMzkiNT0pNzNVLzk9JLSqGUlwhpQU5qc4gNlchg2ZjIWNtIVMEOwMDQzxEQSE+zcElRaElaRZQ7SxA7ay1hWxJGSAWe20hRxIevW6JxSUBRZm5mSWZZanFUCM4gRq5agu5I/hBLkhLzMlJSkzOhjilkAePaQGZydlwf/ACTeGrLeRPKk5qLxQoTtIDAOpOWPU="
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_13"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_13_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_13_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix"
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_15"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_11"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_17"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_19"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_15"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_2"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_IterableCoder_4"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_2_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35         component_coder_ids: "ref_Coder_IterableCoder_4_bytes"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_2_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix_1"
> 08:54:35         component_coder_ids: "ref_Coder_IterableCoder_4_len_prefix"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_8"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_StrUtf8Coder_9"
> 08:54:35         component_coder_ids: "ref_Coder_StrUtf8Coder_9"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_VarIntCoder_2"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:varint:v1"
> 08:54:35           }
> 08:54:35           environment_id: "ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_2"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_10"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_11"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_12"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_12_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13_bytes"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13_len_prefix"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_14"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_15"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_16"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_17"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_18"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_19"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_1_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_2_bytes"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_1_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_2_len_prefix"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_6"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_7"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_8"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     environments {
> 08:54:35       key: "ref_Environment_Environment_1"
> 08:54:35       value {
> 08:54:35         url: "unknown"
> 08:54:35         urn: "beam:env:docker:v1"
> 08:54:35         payload: "\n\007unknown"
> 08:54:35       }
> 08:54:35     }
> 08:54:35   }
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: CONTROL RESPONSE instruction_id: "control_3"
> 08:54:35 register {
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: CONTROL REQUEST instruction_id: "bundle_400"
> 08:54:35 process_bundle {
> 08:54:35   process_bundle_descriptor_reference: "2"
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: start <DataOutputOperation >
> 08:54:35 root: DEBUG: start <DataInputOperation receivers=[ConsumerSet[assert_that/Group/Flatten/Read.out0, coder=WindowedValueCoder[TupleCoder[LengthPrefixCoder[FastPrimitivesCoder], LengthPrefixCoder[FastPrimitivesCoder]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DataInputOperation receivers=[ConsumerSet[assert_that/Group/Flatten/Read.out0, coder=WindowedValueCoder[TupleCoder[LengthPrefixCoder[FastPrimitivesCoder], LengthPrefixCoder[FastPrimitivesCoder]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DataOutputOperation >
> 08:54:35 root: DEBUG: CONTROL RESPONSE instruction_id: "bundle_400"
> 08:54:35 process_bundle {
> 08:54:35   metrics {
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/Group/Flatten/Read"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "None"
> 08:54:35               value: 6
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/Group/GroupByKey/Write"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35   }
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: Gather all output data from [primitive_transform_reference: "assert_that/Group/GroupByKey/Write"
> 08:54:35 name: "0"
> 08:54:35 ].
> 08:54:35 root: DEBUG: Wait for the bundle to finish.
> 08:54:35 root: INFO: Running (((assert_that/Group/GroupByKey/Read)+(ref_AppliedPTransform_assert_that/Group/Map(_merge_tagged_vals_under_key)_18))+(ref_AppliedPTransform_assert_that/Unkey_19))+(ref_AppliedPTransform_assert_that/Match_20)
> 08:54:35 root: DEBUG:        (((assert_that/Group/GroupByKey/Read)+(ref_AppliedPTransform_assert_that/Group/Map(_merge_tagged_vals_under_key)_18))+(ref_AppliedPTransform_assert_that/Unkey_19))+(ref_AppliedPTransform_assert_that/Match_20)
> 08:54:35   assert_that/Group/GroupByKey/Read:urn:org.apache.beam:source:runner:0.1
> 08:54:35 assert_that/Group/Map(_merge_tagged_vals_under_key):urn:beam:transform:pardo:v1
> 08:54:35 assert_that/Unkey:urn:beam:transform:pardo:v1
> 08:54:35 assert_that/Match:urn:beam:transform:pardo:v1
> 08:54:35   must follow: (assert_that/Group/Flatten/Read)+(assert_that/Group/GroupByKey/Write)
> 08:54:35   downstream_side_inputs: 
> 08:54:35 root: DEBUG: CONTROL REQUEST instruction_id: "control_4"
> 08:54:35 register {
> 08:54:35   process_bundle_descriptor {
> 08:54:35     id: "3"
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/Group/GroupByKey/Read"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:org.apache.beam:source:runner:0.1"
> 08:54:35           payload: "\022)ref_Coder_WindowedValueCoder_1_len_prefix"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "None"
> 08:54:35           value: "ref_PCollection_PCollection_11"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/Group/GroupByKey/Read"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/Group/Map(_merge_tagged_vals_under_key)"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:beam:transform:pardo:v1"
> 08:54:35           payload: "\n\327\n\n\265\n\n beam:dofn:pickled_python_info:v1\032\220\neNrFVGt320QQXdnOo06glBCgjxAaKNiFSqW8WhrSUoW+RNSglEaUhkWW1lrFsqSRVm3Msc+B09rlE/yI/tHOrhNSHx4f4diWdmdmx7v33r2/VBu+l3k+Z7TFvK4uci8p2mneLXQ/zVnd9OLYa8VsO/eyjOXr6fWkDqT5K2gDqDTcKiGEthOo+kEUxzqVzzr1c+YJRttl4osoxQW1xkQ+Tr2Ail7G6jDlzmILMw3YXZzD9BBmHJhtWJpFrKpVs5bNhd8I6eNXI/0K+V0joUa24Ig9hHrT1XDtHsy5NXx7eVjAvDuNw84jNXnpKbzsFjg3eNplxi5LOlFSHLzPFbH3kBmP0rxTIADMkOenmzkz0243EnSzJ3ia0PHs6gWjyH2jCDqFkamE8QJqxiFqhkRNz3pwVB1sNfa6rcBbg1c2ztZMAsfcCkYRsFeHsNAU8JoDixPQhExQT4i8Dq+rBq0yigXuFt5wZ3CKaZmFN0dw3IETE0ujbpbmgnbToIwR2ZPuSYnKP3MLp4aw5MBb6n8oNvEFpbA8grcdOO2eksEuy0NGhReGLKAPvbigZRKwnHZYD1bsv+PcZziBd3itwZHFKrI4i88t8zZS+KBCBlUyqO1z+Vgjgymyd4b0a2R9Z0mlp8lghvSnSH+aHN9F0mdklQbLZLtflfF2Bcl/F8k/o4iWmkwCeG8I7zfcOck869EwT8uMBTCO5KwoY0F9kebQdI9ORijqBM4qFcsjfTDGeH/9h+78YTUevmRwTpUiHqC7UzgaRw0B5/9znZUiiqXOPuIr1h9mnVTmtXltQVvU4EIThfWxA5/wE/xfRSBbwKdD+MyBzznyftGBS3zFtgfwhYJOXVHKo0QUcHnSJTCh4nrAUEoeQlnUb92RV/imDNdhFS3iS+y0NmYhSrJSqH4FXLEVsGkpDmNX7XIEX7UKAdccMIew7sDXQ7g+gBsNfpnLZjex2a0Gv2JzVXu7Nd6ivOgZ86UHWdwsBXzjwIaiMctTnxUF2HzjL6e5o1puYstvD1s6rbK1A1uNfe1KB9LQgbbMJUFIoJGgQp4g+Zp0I1TlOv4eSy+6ax+UV/BTmIuY35kjA7QqQu5pUCUBwbLvULX3mur+6+dhW3kXBXcE3/9v2rnvHpEeFbKE7WX5GvxgPTMr0wQeSAXtOPCje1GZ8w15I671LNbTsdBLAn01Tn20gzX9wOBeiPzZjj6Fn9Q1EWUWM/DUGHcRMmiNwFeuXUQ/MwiGwPj9ScNsW8/4MbmP0AHOL/G21GUkYNeBjlVhA4htW0BXfw55Vx4a\022\035ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "0"
> 08:54:35           value: "ref_PCollection_PCollection_11"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "None"
> 08:54:35           value: "ref_PCollection_PCollection_12"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/Group/Map(_merge_tagged_vals_under_key)"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/Match"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:beam:transform:pardo:v1"
> 08:54:35           payload: "\n\367\010\n\325\010\n beam:dofn:pickled_python_info:v1\032\260\010eNq9VPtz3DQQlu9CW64JBQJtSnlcgYID7RnKqw1JaHJNaDjiBrcQ8wge2VYiE5/tT5IhmcnN8Bhf+mcjKWlDgOFH5uYs77e7n7X7rfRr201oRRPOopjRYU8JWsjtUgxlLykF6/RpntM4Z5uCVhUTd8vVogMy+xucEVpu2CaERNsF2kma5XkvMs9OlAhGFYu26yJRWakTJtxT/rykaaT2K9bBU+E5TdEvU/ZQ2zjT4GyAc+7AGRD9bw2m+1OPCDkg5A+H7DjkAZ72G3RmQ0dn7eF8g8lQ6lePl0Pm/cSK3ayQj9cbMqc/M++XUuxKXSLzTIXRhmD9cjjMVLSxr3hZREfWnZueFIkn013pVdbh/aUv3klfPNOXXrWPKbv1+ZwO45Qu4pn16xN9ggthS6O6Jc82eG5W4fkA06eK32EqokqJDl6wBHGd5UrvFi+GZ7Wp3caLi2NcCjBzKjUbVqVQ0bBM61z37nJ4RSf8h3p4qcGVAC/b70SaJFFRhFfGeDXAa+EZAzLUNEfX/zf9EqYNXOUTLj9WpD2Y0IosKkIeWUVGDlGP1Rm1yIFDDlpkt03EHFEOSZ1jZLtFLuqI3zVEtISv++El/e1VmuUs7VIpmVBz3Wuiu7Cgn3hjjDft5qQulqW4Fk5rY1nXt2RDV/YSVpm5wltjvG0jaaJMGW544UlaxPYqlpj82XDqBD2OfOcQ74bV/zI4TGp1d7xaZbmZmuu8OxD9DnEm7a/t4IaV58l2ew08PTfvBXifz/DL4czfNT4i7BlC3GzwQYAPudb0owAf867Pr27hE9eejyXcsivF7YFziDl+i98etA7xqUWXMW/XGAvGu8jn+YLxfmZf2oe4wxosBVhu0B/hbnjejIs5tBHPCiWxcvre0A6L91KmR4+qUsjO2n1zqO8ZuINVfWl87o9wz7VUWVHVyvJJrPnhpIbKWp1gX/j1GINYKnwZYL2BH+B+g40RvnL5CjdkgSZ74PI1n9vYh/HRFqnYkbqV5lb6mq/XCt8E2LRHqxJlwqREyDf/Uc23lvI7Tfn9CeUPcR1vYWuEH31fIer9CbOvodk=\022\035ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "0"
> 08:54:35           value: "ref_PCollection_PCollection_13"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "None"
> 08:54:35           value: "ref_PCollection_PCollection_14"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/Match"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     transforms {
> 08:54:35       key: "assert_that/Unkey"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           urn: "urn:beam:transform:pardo:v1"
> 08:54:35           payload: "\n\207\007\n\345\006\n beam:dofn:pickled_python_info:v1\032\300\006eNq9U1tP1UAQ7gEULDcVLyDerz0KraLiDQEtIubESoqJfTGbbbucraftdrpblMSTaExP/EX+PqclBo4aH33YtjOz83Xm+2a+DBoBzWjAGfEZTUyV01RuizyRZiBypts0jqkfs3c5zTKWr4n1VAet+RUaXRgwvEFN08h2CoNBGMWxSaqnToKcUcXIdpEGKhKYMGT0xWNBQ6J2M6bDIW8EIWwRsrdow+EShl0YMVqNloZnoDVlj3/XtM+a9q2htRvaFhxxStCbXgOzPsFoCWOexE+Li4RZH1jaiVL56z0vY7rDrI8i70hskVlVh2QzZ7ZIkkiRzV3FRUr2rNUFS+aBJcOOtLI6YB3gxdrnxap4MbNdGK9LX4pp4od0GSZezw3ZGkx6A+hFSo6WcKyp4LgLU33Nt5kiVKlchxM1gF9EscJq4aQ3jCaGqyic6sFpF6b7UqMkE7kiiQiLGLmb8WYx4R/qwZkSZl04W/+HIEigCIFzPTjvwgU+4fxNtIChARf5kMEPyLBlj6EGYUObqc4WXHJajR5cbtbIHbJD44JJuFLCVS/7L3IwiZy1rUJFcaXFNT7R+sEnm0j4dRdu8Gk+403/Ts5ejlnlgFFC04WbHMm45cIckuF0Yd4brYiqJpPwKFUSzP7lwEDtN0OG/FIlcqm/elNN7kbl1sHCzbiNSHeMGipKs0LVeBIWHG8MXaJQ+767TtGDe75UcN+FxRIeuPCwhEddeGxwk1dgTxBsyeALDq/vPvX3SqR5W2YsqFZvmS8WClZcWK3nJ8tFwKSEZ3z1j26e15A2Qq7tQ77wC/89rHfhpeMo2DB/Ar4AVWQ=\022\035ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35         inputs {
> 08:54:35           key: "0"
> 08:54:35           value: "ref_PCollection_PCollection_12"
> 08:54:35         }
> 08:54:35         outputs {
> 08:54:35           key: "None"
> 08:54:35           value: "ref_PCollection_PCollection_13"
> 08:54:35         }
> 08:54:35         unique_name: "assert_that/Unkey"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "Impulse"
> 08:54:35       value {
> 08:54:35         unique_name: "Impulse"
> 08:54:35         coder_id: "coder"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "Impulse_1"
> 08:54:35       value {
> 08:54:35         unique_name: "Impulse_1"
> 08:54:35         coder_id: "coder"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "assert_that/Group/Flatten/Transcode/0/out"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_0.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "assert_that/Group/Flatten/Transcode/1/out"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_1.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_1"
> 08:54:35       value {
> 08:54:35         unique_name: "11Create/Read.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_7"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_10"
> 08:54:35       value {
> 08:54:35         unique_name: "39assert_that/Group/GroupByKey/GroupByKey.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_1"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_11"
> 08:54:35       value {
> 08:54:35         unique_name: "42assert_that/Group/GroupByKey/GroupByWindow.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_1_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_12"
> 08:54:35       value {
> 08:54:35         unique_name: "51assert_that/Group/Map(_merge_tagged_vals_under_key).None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_6"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_13"
> 08:54:35       value {
> 08:54:35         unique_name: "17assert_that/Unkey.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_6"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_14"
> 08:54:35       value {
> 08:54:35         unique_name: "17assert_that/Match.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_6"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_2"
> 08:54:35       value {
> 08:54:35         unique_name: "15ParDo(AddIndex).None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_10"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_3"
> 08:54:35       value {
> 08:54:35         unique_name: "23assert_that/Create/Read.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_4"
> 08:54:35       value {
> 08:54:35         unique_name: "36assert_that/WindowInto(WindowIntoFn).None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_10"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_5"
> 08:54:35       value {
> 08:54:35         unique_name: "21assert_that/ToVoidKey.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_14"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_6"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_0.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_7"
> 08:54:35       value {
> 08:54:35         unique_name: "29assert_that/Group/pair_with_1.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_8"
> 08:54:35       value {
> 08:54:35         unique_name: "25assert_that/Group/Flatten.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     pcollections {
> 08:54:35       key: "ref_PCollection_PCollection_9"
> 08:54:35       value {
> 08:54:35         unique_name: "41assert_that/Group/GroupByKey/ReifyWindows.None"
> 08:54:35         coder_id: "ref_Coder_WindowedValueCoder_12"
> 08:54:35         is_bounded: BOUNDED
> 08:54:35         windowing_strategy_id: "ref_Windowing_Windowing_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     windowing_strategies {
> 08:54:35       key: "ref_Windowing_Windowing_1"
> 08:54:35       value {
> 08:54:35         window_fn {
> 08:54:35           spec {
> 08:54:35             urn: "beam:windowfn:global_windows:v0.1"
> 08:54:35           }
> 08:54:35           environment_id: "ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35         merge_status: NON_MERGING
> 08:54:35         window_coder_id: "ref_Coder_GlobalWindowCoder_1"
> 08:54:35         trigger {
> 08:54:35           default {
> 08:54:35           }
> 08:54:35         }
> 08:54:35         accumulation_mode: DISCARDING
> 08:54:35         output_time: END_OF_WINDOW
> 08:54:35         closing_behavior: EMIT_ALWAYS
> 08:54:35         OnTimeBehavior: FIRE_ALWAYS
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "bytes_coder"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:bytes:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "coder"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:pickled_python:v1"
> 08:54:35             payload: "\n\230\001FastPrimitivesCoder$eNprYE5OLEhMzkiNT0pNzNVLzk9JLSqGUlxuicUlAUWZuZklmWWpxc4gQa5CBs3GQsbaQqYIfgYGhvi0xJycpMTk7HiwlkJ8pgVkJmfnpEJNYQGawlpbyJZUnKQHACYlLgM="
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_FastPrimitivesCoder_3_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:length_prefix:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_FastPrimitivesCoder_3_len_prefix_1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:length_prefix:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_GlobalWindowCoder_1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:global_window:v1"
> 08:54:35           }
> 08:54:35           environment_id: "ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:global_window:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_IterableCoder_4"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:iterable:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_IterableCoder_4_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:iterable:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_IterableCoder_4_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:iterable:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix_1"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_StrUtf8Coder_9"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:pickled_python:v1"
> 08:54:35             payload: "\nUStrUtf8Coder$eNprYE5OLEhMzkiNT0pNzNVLzk9JLSqGUlzBJUWhJWkWziAeVyGDZmMhY20hU5IeAAbXEkc="
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_11"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:pickled_python:v1"
> 08:54:35             payload: "\n\327\001TupleCoder$eNprYE5OLEhMzkiNT0pNzNVLzk9JLSqGUlwhpQU5qc4gNlchg2ZjIWNtIVMEOwMDQzxEQSE+zcElRaElaRZQ7SxA7ay1hWxJGSAWe20hRxIevW6JxSUBRZm5mSWZZanFUCM4gRq5agu5I/hBLkhLzMlJSkzOhjilkAePaQGZydlwf/ACTeGrLeRPKk5qLxQoTtIDAOpOWPU="
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_13"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_13_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_13_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix"
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_15"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_11"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_17"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_19"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_15"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_2"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_IterableCoder_4"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_2_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "bytes_coder"
> 08:54:35         component_coder_ids: "ref_Coder_IterableCoder_4_bytes"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_2_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3_len_prefix_1"
> 08:54:35         component_coder_ids: "ref_Coder_IterableCoder_4_len_prefix"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_TupleCoder_8"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:kv:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_StrUtf8Coder_9"
> 08:54:35         component_coder_ids: "ref_Coder_StrUtf8Coder_9"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_VarIntCoder_2"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:varint:v1"
> 08:54:35           }
> 08:54:35           environment_id: "ref_Environment_Environment_1"
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_1"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_2"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_10"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_11"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_12"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_12_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13_bytes"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_12_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_13_len_prefix"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_14"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_15"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_16"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_17"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_18"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_19"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_1_bytes"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_2_bytes"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_1_len_prefix"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_2_len_prefix"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_6"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_FastPrimitivesCoder_3"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     coders {
> 08:54:35       key: "ref_Coder_WindowedValueCoder_7"
> 08:54:35       value {
> 08:54:35         spec {
> 08:54:35           spec {
> 08:54:35             urn: "beam:coder:windowed_value:v1"
> 08:54:35           }
> 08:54:35         }
> 08:54:35         component_coder_ids: "ref_Coder_TupleCoder_8"
> 08:54:35         component_coder_ids: "ref_Coder_GlobalWindowCoder_5"
> 08:54:35       }
> 08:54:35     }
> 08:54:35     environments {
> 08:54:35       key: "ref_Environment_Environment_1"
> 08:54:35       value {
> 08:54:35         url: "unknown"
> 08:54:35         urn: "beam:env:docker:v1"
> 08:54:35         payload: "\n\007unknown"
> 08:54:35       }
> 08:54:35     }
> 08:54:35   }
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: CONTROL RESPONSE instruction_id: "control_4"
> 08:54:35 register {
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: CONTROL REQUEST instruction_id: "bundle_401"
> 08:54:35 process_bundle {
> 08:54:35   process_bundle_descriptor_reference: "3"
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: start <DoOperation assert_that/Match output_tags=['out']>
> 08:54:35 root: DEBUG: start <DoOperation assert_that/Unkey output_tags=['out']>
> 08:54:35 root: DEBUG: start <DoOperation assert_that/Group/Map(_merge_tagged_vals_under_key) output_tags=['out']>
> 08:54:35 root: DEBUG: start <DataInputOperation receivers=[ConsumerSet[assert_that/Group/GroupByKey/Read.out0, coder=WindowedValueCoder[TupleCoder[LengthPrefixCoder[FastPrimitivesCoder], IterableCoder[LengthPrefixCoder[FastPrimitivesCoder]]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DataInputOperation receivers=[ConsumerSet[assert_that/Group/GroupByKey/Read.out0, coder=WindowedValueCoder[TupleCoder[LengthPrefixCoder[FastPrimitivesCoder], IterableCoder[LengthPrefixCoder[FastPrimitivesCoder]]]], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DoOperation assert_that/Group/Map(_merge_tagged_vals_under_key) output_tags=['out'], receivers=[ConsumerSet[assert_that/Group/Map(_merge_tagged_vals_under_key).out0, coder=WindowedValueCoder[FastPrimitivesCoder], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DoOperation assert_that/Unkey output_tags=['out'], receivers=[ConsumerSet[assert_that/Unkey.out0, coder=WindowedValueCoder[FastPrimitivesCoder], len(consumers)=1]]>
> 08:54:35 root: DEBUG: finish <DoOperation assert_that/Match output_tags=['out'], receivers=[ConsumerSet[assert_that/Match.out0, coder=WindowedValueCoder[FastPrimitivesCoder], len(consumers)=0]]>
> 08:54:35 root: DEBUG: CONTROL RESPONSE instruction_id: "bundle_401"
> 08:54:35 process_bundle {
> 08:54:35   metrics {
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/Group/GroupByKey/Read"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "None"
> 08:54:35               value: 1
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/Group/Map(_merge_tagged_vals_under_key)"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "None"
> 08:54:35               value: 1
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/Match"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "None"
> 08:54:35               value: 1
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35     ptransforms {
> 08:54:35       key: "assert_that/Unkey"
> 08:54:35       value {
> 08:54:35         processed_elements {
> 08:54:35           measured {
> 08:54:35             output_element_counts {
> 08:54:35               key: "None"
> 08:54:35               value: 1
> 08:54:35             }
> 08:54:35           }
> 08:54:35         }
> 08:54:35       }
> 08:54:35     }
> 08:54:35   }
> 08:54:35 }
> 08:54:35 
> 08:54:35 root: DEBUG: Gather all output data from [].
> 08:54:35 root: DEBUG: Wait for the bundle to finish.
> 08:54:35 root: INFO: Successfully completed job.
> 08:54:35 --------------------- >> end captured logging << ---------------------



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)