Ben Chen created AIRFLOW-4363:
---------------------------------

             Summary: Encounter JSON Decode Error when using docker operator
                 Key: AIRFLOW-4363
                 URL: https://issues.apache.org/jira/browse/AIRFLOW-4363
             Project: Apache Airflow
          Issue Type: Bug
         Environment: - Mac OS 10.14
- python 3.6.8
- airflow 1.10.2
            Reporter: Ben Chen
            Assignee: Ben Chen


## Description
When using the docker_operator, I experienced some issue while using Mac OS 
10.14.4. The error was json.JSONDecodeError. After my investigation about this 
error, I found that there are several messages for logging aren't well 
separated, for example it contains \n inside one single message which should be 
split into 2 to more different messages.

[Update]
Confirmed that issue came from the implementation in airflow, issue cannot be 
solved by just passing `decode` to parameter in docker.pull method in docker 
api. 

[Solution]
For now, I use try-catch to run the original implementation, and in the 
exception part I split the message to list and then parse it. Looking for 
simpler solution to this non critical but still blocking point.

## Logs
{docker_operator.py:188} INFO - Starting docker container from image hello-world
{docker_operator.py:202} INFO - Pulling docker image hello-world
{docker_operator.py:207} INFO - Pulling from library/hello-world
{docker_operator.py:207} INFO - Pulling fs layer
{docker_operator.py:207} INFO - Downloading
{docker_operator.py:207} INFO - Downloading
{docker_operator.py:207} INFO - Download complete
{docker_operator.py:207} INFO - Extracting
{docker_operator.py:207} INFO - Extracting
{docker_operator.py:207} INFO - Pull complete
{docker_operator.py:207} INFO - Digest: 
sha256:92695bc579f31df7a63da6922075d0666e565ceccad16b59c3374d2cf4e8e50e
{docker_operator.py:207} INFO - Pulling from library/hello-world
{docker_operator.py:207} INFO - Digest: 
sha256:1a67c1115b199aa9d964d5da5646917cbac2d5450c71a1deed7b1bfb79c2c82d
{models.py:1788} ERROR - Extra data: line 2 column 1 (char 70)
Traceback (most recent call last):
line 1657, in _run_raw_task, result = task_copy.execute(context=context)
 line 205, in execute output = json.loads(line)
line 354, in loads, return _default_decoder.decode(s)
line 342, in decode, raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 70)



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

Reply via email to