[ 
https://issues.apache.org/jira/browse/BEAM-6280?focusedWorklogId=186532&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-186532
 ]

ASF GitHub Bot logged work on BEAM-6280:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 17/Jan/19 20:18
            Start Date: 17/Jan/19 20:18
    Worklog Time Spent: 10m 
      Work Description: robertwb commented on pull request #7433: [BEAM-6280] 
Refactors Python portability tests to be multi-threaded aware
URL: https://github.com/apache/beam/pull/7433#discussion_r248819133
 
 

 ##########
 File path: sdks/python/apache_beam/runners/portability/local_job_service.py
 ##########
 @@ -194,38 +171,33 @@ def __init__(self,
     self._pipeline_options = pipeline_options
     self._pipeline_proto = pipeline_proto
     self._state = None
-    self._state_change_callbacks = []
-    self._last_log_message = None
-    self._log_callbacks = [lambda msg: setattr(self, '_last_log_message', msg)]
+    self._state_queues = []
+    self._log_queues = []
     self.state = beam_job_api_pb2.JobState.STARTING
     self.daemon = True
 
-  def add_state_change_callback(self, f):
-    self._state_change_callbacks.append(f)
-    f(self.state)
-
-  def add_log_callback(self, f):
-    self._log_callbacks.append(f)
-
   @property
   def state(self):
     return self._state
 
   @state.setter
   def state(self, new_state):
-    for state_change_callback in self._state_change_callbacks:
-      state_change_callback(new_state)
+    # Inform consumers of the new state.
+    for queue in self._state_queues:
+      queue.put(new_state)
+    for queue in self._log_queues:
+      queue.put(beam_job_api_pb2.GetJobStateResponse(state=new_state))
 
 Review comment:
   As I mentioned before, the *Response messages don't belong in the BeamJob 
class. 
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 186532)
    Time Spent: 4h 50m  (was: 4h 40m)

> Failure in PortableRunnerTest.test_error_traceback_includes_user_code
> ---------------------------------------------------------------------
>
>                 Key: BEAM-6280
>                 URL: https://issues.apache.org/jira/browse/BEAM-6280
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-py-core, test-failures
>            Reporter: Kenneth Knowles
>            Assignee: Sam Rohde
>            Priority: Critical
>              Labels: flaky-test
>          Time Spent: 4h 50m
>  Remaining Estimate: 0h
>
> [https://builds.apache.org/job/beam_PreCommit_Python_Cron/732/]
> [https://builds.apache.org/job/beam_PreCommit_Python_Cron/732/testReport/apache_beam.runners.portability.portable_runner_test/PortableRunnerTest/test_error_traceback_includes_user_code/]
> [https://scans.gradle.com/s/do3hjulee3gaa/console-log?task=:beam-sdks-python:testPython3]
> {code:java}
> 'second' not found in 'Traceback (most recent call last):\n  File 
> "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Cron/src/sdks/python/apache_beam/runners/portability/fn_api_runner_test.py",
>  line 466, in test_error_traceback_includes_user_code\n    p | 
> beam.Create([0]) | beam.Map(first)  # pylint: 
> disable=expression-not-assigned\n  File 
> "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Cron/src/sdks/python/apache_beam/pipeline.py",
>  line 425, in __exit__\n    self.run().wait_until_finish()\n  File 
> "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Cron/src/sdks/python/apache_beam/runners/portability/portable_runner.py",
>  line 314, in wait_until_finish\n    self._job_id, self._state, 
> self._last_error_message()))\nRuntimeError: Pipeline 
> job-cdcefe6d-1caa-4487-9e63-e971f67ec68c failed in state FAILED: start 
> <DataInputOperation receivers=[ConsumerSet[Create/Read/Impulse.out0, 
> coder=WindowedValueCoder[BytesCoder], len(consumers)=1]]>\n'{code}



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

Reply via email to