Hi,
I just observed some error level loggings like these:
```
ERROR:apache_beam.runners.portability.fn_api_runner:created 1 workers
{'worker_5':
<apache_beam.runners.portability.fn_api_runner.EmbeddedWorkerHandler object
at 0x127fdaa58>}
ERROR:apache_beam.runners.portability.fn_api_runner:created 1 workers
{'worker_5':
<apache_beam.runners.portability.fn_api_runner.EmbeddedWorkerHandler object
at 0x127fdaa58>}
ERROR:apache_beam.runners.portability.fn_api_runner:created 1 workers
{'worker_5':
<apache_beam.runners.portability.fn_api_runner.EmbeddedWorkerHandler object
at 0x127fdaa58>}
ERROR:apache_beam.runners.portability.fn_api_runner:created 1 workers
{'worker_5':
<apache_beam.runners.portability.fn_api_runner.EmbeddedWorkerHandler object
at 0x127fdaa58>}
```
It's coming from this PR
<https://github.com/apache/beam/commit/921a9a83a156eb6af500ace1e44b91821ad426b1#diff-adf22e1eb39b451e73d4541052a33686R2015>
.
```
def get_worker_handlers(
self,
environment_id, # type: Optional[str]
num_workers # type: int
):
# type: (...) -> List[WorkerHandler]
if environment_id is None:
# Any environment will do, pick one arbitrarily.
environment_id = next(iter(self._environments.keys()))
environment = self._environments[environment_id]
# assume all environments except EMBEDDED_PYTHON use gRPC.
if environment.urn == python_urns.EMBEDDED_PYTHON:
# special case for EmbeddedWorkerHandler: there's no need for a gRPC
# server, but to pass the type check on WorkerHandler.create() we
# make like we have a GrpcServer instance.
self._grpc_server = cast(GrpcServer, None)
elif self._grpc_server is None:
self._grpc_server = GrpcServer(
self._state, self._job_provision_info, self)
worker_handler_list = self._cached_handlers[environment_id]
if len(worker_handler_list) < num_workers:
for _ in range(len(worker_handler_list), num_workers):
worker_handler = WorkerHandler.create(
environment,
self._state,
self._job_provision_info,
self._grpc_server)
_LOGGER.info(
"Created Worker handler %s for environment %s",
worker_handler,
environment)
self._cached_handlers[environment_id].append(worker_handler)
self._workers_by_id[worker_handler.worker_id] = worker_handler
worker_handler.start_worker()
_LOGGER.error("created %s workers %s", num_workers, self._workers_by_id)
return self._cached_handlers[environment_id][:num_workers]
```
Is this supposed to be an info level logging?
Thanks!
Ning.