You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "Jeremiah Lowin (JIRA)" <ji...@apache.org> on 2017/03/16 23:39:41 UTC
[jira] [Resolved] (AIRFLOW-990) DockerOperator fails when logging
unicode string
[ https://issues.apache.org/jira/browse/AIRFLOW-990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jeremiah Lowin resolved AIRFLOW-990.
------------------------------------
Resolution: Fixed
Fix Version/s: 1.9.0
Issue resolved by pull request #2155
[https://github.com/apache/incubator-airflow/pull/2155]
> DockerOperator fails when logging unicode string
> ------------------------------------------------
>
> Key: AIRFLOW-990
> URL: https://issues.apache.org/jira/browse/AIRFLOW-990
> Project: Apache Airflow
> Issue Type: Bug
> Components: docker
> Affects Versions: Airflow 1.7.1
> Environment: Python 2.7
> Reporter: Vitor Baptista
> Assignee: Vitor Baptista
> Fix For: 1.9.0
>
>
> On line https://github.com/apache/incubator-airflow/blob/1.7.1.3/airflow/operators/docker_operator.py#L164, we're calling:
> {code:title=airflow/operators/docker_operator.py}
> for line in self.cli.logs(container=self.container['Id'], stream=True):
> logging.info("{}".format(line.strip()))
> {code}
> If `self.cli.logs()` return a string with a unicode character, this raises the UnicodeDecodeError:
> {noformat}
> Traceback (most recent call last):
> File "/usr/lib/python2.7/logging/__init__.py", line 861, in emit
> msg = self.format(record)
> File "/usr/lib/python2.7/logging/__init__.py", line 734, in format
> return fmt.format(record)
> File "/usr/lib/python2.7/logging/__init__.py", line 476, in format
> raise e
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xf0 in position 0: ordinal not in range(128)
> Logged from file docker_operator.py, line 165
> {noformat}
> A possible fix is to change that line to:
> {code:title=airflow/operators/docker_operator.py}
> for line in self.cli.logs(container=self.container['Id'], stream=True):
> logging.info(line.decode('utf-8').strip())
> {code}.
> This error doesn't happen on Python3. I haven't tested, but reading the code it seems the same error exists on `master` as well.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)