You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Elek, Marton (JIRA)" <ji...@apache.org> on 2019/08/08 15:55:00 UTC

[jira] [Created] (HDDS-1937) Acceptance tests fail if scm webui shows invalid json

Elek, Marton created HDDS-1937:
----------------------------------

             Summary: Acceptance tests fail if scm webui shows invalid json
                 Key: HDDS-1937
                 URL: https://issues.apache.org/jira/browse/HDDS-1937
             Project: Hadoop Distributed Data Store
          Issue Type: Bug
            Reporter: Elek, Marton
            Assignee: Elek, Marton


Acceptance test of a nightly build is failed with the following error:

{code}
Creating ozonesecure_datanode_3 ... 

Creating ozonesecure_kdc_1      ... done

Creating ozonesecure_om_1       ... done

Creating ozonesecure_scm_1      ... done

Creating ozonesecure_datanode_3 ... done

Creating ozonesecure_kms_1      ... done

Creating ozonesecure_s3g_1      ... done

Creating ozonesecure_datanode_2 ... done

Creating ozonesecure_datanode_1 ... done
parse error: Invalid numeric literal at line 2, column 0
{code}

https://raw.githubusercontent.com/elek/ozone-ci/master/byscane/byscane-nightly-5b87q/acceptance/output.log

The problem is in the script which checks the number of available datanodes.

If the HTTP endpoint of the SCM is already started BUT not ready yet it may return with a simple HTML error message instead of json. Which can not be parsed by jq:

In testlib.sh:

{code}
  37   │   if [[ "${SECURITY_ENABLED}" == 'true' ]]; then
  38   │     docker-compose -f "${compose_file}" exec -T scm bash -c "kinit -k HTTP/scm@EXAMPL
       │ E.COM -t /etc/security/keytabs/HTTP.keytab && curl --negotiate -u : -s '${jmx_url}'"
  39   │   else
  40   │     docker-compose -f "${compose_file}" exec -T scm curl -s "${jmx_url}"
  41   │   fi \
  42   │     | jq -r '.beans[0].NodeCount[] | select(.key=="HEALTHY") | .value'
{code}

One possible fix is to adjust the error handling (set +x / set -x) per method instead of using a generic set -x at the beginning. It would provide a more predictable behavior. In our case count_datanode should not fail evert (as the caller method: wait_for_datanodes can retry anyway).



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-help@hadoop.apache.org