12:52:56 Triggered by Gerrit: https://git.opendaylight.org/gerrit/c/transportpce/+/120302 12:52:56 Running as SYSTEM 12:52:56 [EnvInject] - Loading node environment variables. 12:52:56 Building remotely on prd-ubuntu2204-docker-4c-16g-9747 (ubuntu2204-docker-4c-16g) in workspace /w/workspace/transportpce-tox-verify-transportpce-master 12:53:04 [ssh-agent] Looking for ssh-agent implementation... 12:53:04 [ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine) 12:53:04 $ ssh-agent 12:53:04 SSH_AUTH_SOCK=/tmp/ssh-XXXXXXguXGE4/agent.1581 12:53:04 SSH_AGENT_PID=1583 12:53:04 [ssh-agent] Started. 12:53:04 Running ssh-add (command line suppressed) 12:53:04 Identity added: /w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_1004528509749088197.key (/w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_1004528509749088197.key) 12:53:04 [ssh-agent] Using credentials jenkins (jenkins-ssh) 12:53:04 The recommended git tool is: NONE 12:53:11 using credential jenkins-ssh 12:53:11 Wiping out workspace first. 12:53:11 Cloning the remote Git repository 12:53:11 Cloning repository git://devvexx.opendaylight.org/mirror/transportpce 12:53:11 > git init /w/workspace/transportpce-tox-verify-transportpce-master # timeout=10 12:53:11 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 12:53:11 > git --version # timeout=10 12:53:11 > git --version # 'git version 2.34.1' 12:53:11 using GIT_SSH to set credentials jenkins-ssh 12:53:11 Verifying host key using known hosts file 12:53:11 You're using 'Known hosts file' strategy to verify ssh host keys, but your known_hosts file does not exist, please go to 'Manage Jenkins' -> 'Security' -> 'Git Host Key Verification Configuration' and configure host key verification. 12:53:11 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce +refs/heads/*:refs/remotes/origin/* # timeout=10 12:53:26 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 12:53:26 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 12:53:27 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 12:53:27 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 12:53:27 using GIT_SSH to set credentials jenkins-ssh 12:53:27 Verifying host key using known hosts file 12:53:27 You're using 'Known hosts file' strategy to verify ssh host keys, but your known_hosts file does not exist, please go to 'Manage Jenkins' -> 'Security' -> 'Git Host Key Verification Configuration' and configure host key verification. 12:53:27 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce refs/changes/02/120302/4 # timeout=10 12:53:27 > git rev-parse f46481c4e293d51ba232173ee8e5e6b7467940d5^{commit} # timeout=10 12:53:27 JENKINS-19022: warning: possible memory leak due to Git plugin usage; see: https://plugins.jenkins.io/git/#remove-git-plugin-buildsbybranch-builddata-script 12:53:27 Checking out Revision f46481c4e293d51ba232173ee8e5e6b7467940d5 (refs/changes/02/120302/4) 12:53:27 > git config core.sparsecheckout # timeout=10 12:53:27 > git checkout -f f46481c4e293d51ba232173ee8e5e6b7467940d5 # timeout=10 12:53:28 Commit message: "TAPI - Refactor OpenROADM TP datastore reads" 12:53:28 > git rev-parse FETCH_HEAD^{commit} # timeout=10 12:53:28 > git rev-list --no-walk ea4aaa5895a3f2f318d3ac9fd4bba3f3348168fa # timeout=10 12:53:28 > git remote # timeout=10 12:53:28 > git submodule init # timeout=10 12:53:28 > git submodule sync # timeout=10 12:53:28 > git config --get remote.origin.url # timeout=10 12:53:28 > git submodule init # timeout=10 12:53:28 > git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10 12:53:28 ERROR: No submodules found. 12:53:31 provisioning config files... 12:53:31 copy managed file [npmrc] to file:/home/jenkins/.npmrc 12:53:31 copy managed file [pipconf] to file:/home/jenkins/.config/pip/pip.conf 12:53:31 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins5504069838369209728.sh 12:53:31 ---> python-tools-install.sh 12:53:31 Setup pyenv: 12:53:31 * system (set by /opt/pyenv/version) 12:53:31 * 3.8.20 (set by /opt/pyenv/version) 12:53:31 * 3.9.20 (set by /opt/pyenv/version) 12:53:31 3.10.15 12:53:31 3.11.10 12:53:36 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-wTqG 12:53:36 lf-activate-venv(): INFO: Save venv in file: /tmp/.os_lf_venv 12:53:36 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 12:53:36 lf-activate-venv(): INFO: Attempting to install with network-safe options... 12:53:41 lf-activate-venv(): INFO: Base packages installed successfully 12:53:41 lf-activate-venv(): INFO: Installing additional packages: lftools 12:54:43 lf-activate-venv(): INFO: Adding /tmp/venv-wTqG/bin to PATH 12:54:43 Generating Requirements File 12:55:03 ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. 12:55:03 httplib2 0.30.2 requires pyparsing<4,>=3.0.4, but you have pyparsing 2.4.7 which is incompatible. 12:55:03 Python 3.11.10 12:55:03 pip 26.0.1 from /tmp/venv-wTqG/lib/python3.11/site-packages/pip (python 3.11) 12:55:04 appdirs==1.4.4 12:55:04 argcomplete==3.6.3 12:55:04 aspy.yaml==1.3.0 12:55:04 attrs==25.4.0 12:55:04 autopage==0.6.0 12:55:04 beautifulsoup4==4.14.3 12:55:04 boto3==1.42.47 12:55:04 botocore==1.42.47 12:55:04 bs4==0.0.2 12:55:04 certifi==2026.1.4 12:55:04 cffi==2.0.0 12:55:04 cfgv==3.5.0 12:55:04 chardet==5.2.0 12:55:04 charset-normalizer==3.4.4 12:55:04 click==8.3.1 12:55:04 cliff==4.13.1 12:55:04 cmd2==3.2.0 12:55:04 cryptography==3.3.2 12:55:04 debtcollector==3.0.0 12:55:04 decorator==5.2.1 12:55:04 defusedxml==0.7.1 12:55:04 Deprecated==1.3.1 12:55:04 distlib==0.4.0 12:55:04 dnspython==2.8.0 12:55:04 docker==7.1.0 12:55:04 dogpile.cache==1.5.0 12:55:04 durationpy==0.10 12:55:04 email-validator==2.3.0 12:55:04 filelock==3.20.3 12:55:04 future==1.0.0 12:55:04 gitdb==4.0.12 12:55:04 GitPython==3.1.46 12:55:04 httplib2==0.30.2 12:55:04 identify==2.6.16 12:55:04 idna==3.11 12:55:04 importlib-resources==1.5.0 12:55:04 iso8601==2.1.0 12:55:04 Jinja2==3.1.6 12:55:04 jmespath==1.1.0 12:55:04 jsonpatch==1.33 12:55:04 jsonpointer==3.0.0 12:55:04 jsonschema==4.26.0 12:55:04 jsonschema-specifications==2025.9.1 12:55:04 keystoneauth1==5.13.0 12:55:04 kubernetes==35.0.0 12:55:04 lftools==0.37.21 12:55:04 lxml==6.0.2 12:55:04 markdown-it-py==4.0.0 12:55:04 MarkupSafe==3.0.3 12:55:04 mdurl==0.1.2 12:55:04 msgpack==1.1.2 12:55:04 multi_key_dict==2.0.3 12:55:04 munch==4.0.0 12:55:04 netaddr==1.3.0 12:55:04 niet==1.4.2 12:55:04 nodeenv==1.10.0 12:55:04 oauth2client==4.1.3 12:55:04 oauthlib==3.3.1 12:55:04 openstacksdk==4.9.0 12:55:04 os-service-types==1.8.2 12:55:04 osc-lib==4.3.0 12:55:04 oslo.config==10.2.0 12:55:04 oslo.context==6.2.0 12:55:04 oslo.i18n==6.7.1 12:55:04 oslo.log==8.0.0 12:55:04 oslo.serialization==5.9.0 12:55:04 oslo.utils==9.2.0 12:55:04 packaging==26.0 12:55:04 pbr==7.0.3 12:55:04 platformdirs==4.5.1 12:55:04 prettytable==3.17.0 12:55:04 psutil==7.2.2 12:55:04 pyasn1==0.6.2 12:55:04 pyasn1_modules==0.4.2 12:55:04 pycparser==3.0 12:55:04 pygerrit2==2.0.15 12:55:04 PyGithub==2.8.1 12:55:04 Pygments==2.19.2 12:55:04 PyJWT==2.11.0 12:55:04 PyNaCl==1.6.2 12:55:04 pyparsing==2.4.7 12:55:04 pyperclip==1.11.0 12:55:04 pyrsistent==0.20.0 12:55:04 python-cinderclient==9.8.0 12:55:04 python-dateutil==2.9.0.post0 12:55:04 python-heatclient==5.0.0 12:55:04 python-jenkins==1.8.3 12:55:04 python-keystoneclient==5.7.0 12:55:04 python-magnumclient==4.9.0 12:55:04 python-openstackclient==8.3.0 12:55:04 python-swiftclient==4.9.0 12:55:04 PyYAML==6.0.3 12:55:04 referencing==0.37.0 12:55:04 requests==2.32.5 12:55:04 requests-oauthlib==2.0.0 12:55:04 requestsexceptions==1.4.0 12:55:04 rfc3986==2.0.0 12:55:04 rich==14.3.2 12:55:04 rich-argparse==1.7.2 12:55:04 rpds-py==0.30.0 12:55:04 rsa==4.9.1 12:55:04 ruamel.yaml==0.19.1 12:55:04 ruamel.yaml.clib==0.2.15 12:55:04 s3transfer==0.16.0 12:55:04 simplejson==3.20.2 12:55:04 six==1.17.0 12:55:04 smmap==5.0.2 12:55:04 soupsieve==2.8.3 12:55:04 stevedore==5.6.0 12:55:04 tabulate==0.9.0 12:55:04 toml==0.10.2 12:55:04 tomlkit==0.14.0 12:55:04 tqdm==4.67.3 12:55:04 typing_extensions==4.15.0 12:55:04 tzdata==2025.3 12:55:04 urllib3==1.26.20 12:55:04 virtualenv==20.36.1 12:55:04 wcwidth==0.6.0 12:55:04 websocket-client==1.9.0 12:55:04 wrapt==2.1.1 12:55:04 xdg==6.0.0 12:55:04 xmltodict==1.0.2 12:55:04 yq==3.4.3 12:55:04 [EnvInject] - Injecting environment variables from a build step. 12:55:04 [EnvInject] - Injecting as environment variables the properties content 12:55:04 PYTHON=python3 12:55:04 12:55:04 [EnvInject] - Variables injected successfully. 12:55:04 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins1110436849151825096.sh 12:55:04 ---> tox-install.sh 12:55:04 + source /home/jenkins/lf-env.sh 12:55:04 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 12:55:04 ++ mktemp -d /tmp/venv-XXXX 12:55:04 + lf_venv=/tmp/venv-8Z1K 12:55:04 + local venv_file=/tmp/.os_lf_venv 12:55:04 + local python=python3 12:55:04 + local options 12:55:04 + local set_path=true 12:55:04 + local install_args= 12:55:04 ++ getopt -o np:v: -l no-path,system-site-packages,python:,venv-file: -n lf-activate-venv -- --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 12:55:04 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 12:55:04 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 12:55:04 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 12:55:04 + true 12:55:04 + case $1 in 12:55:04 + venv_file=/tmp/.toxenv 12:55:04 + shift 2 12:55:04 + true 12:55:04 + case $1 in 12:55:04 + shift 12:55:04 + break 12:55:04 + case $python in 12:55:04 + local pkg_list= 12:55:04 + [[ -d /opt/pyenv ]] 12:55:04 + echo 'Setup pyenv:' 12:55:04 Setup pyenv: 12:55:04 + export PYENV_ROOT=/opt/pyenv 12:55:04 + PYENV_ROOT=/opt/pyenv 12:55:04 + export PATH=/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:04 + PATH=/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:04 + pyenv versions 12:55:04 system 12:55:04 3.8.20 12:55:04 3.9.20 12:55:04 3.10.15 12:55:04 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 12:55:04 + command -v pyenv 12:55:04 ++ pyenv init - --no-rehash 12:55:04 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 12:55:04 for i in ${!paths[@]}; do 12:55:04 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 12:55:04 fi; done; 12:55:04 echo "${paths[*]}"'\'')" 12:55:04 export PATH="/opt/pyenv/shims:${PATH}" 12:55:04 export PYENV_SHELL=bash 12:55:04 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 12:55:04 pyenv() { 12:55:04 local command 12:55:04 command="${1:-}" 12:55:04 if [ "$#" -gt 0 ]; then 12:55:04 shift 12:55:04 fi 12:55:04 12:55:04 case "$command" in 12:55:04 rehash|shell) 12:55:04 eval "$(pyenv "sh-$command" "$@")" 12:55:04 ;; 12:55:04 *) 12:55:04 command pyenv "$command" "$@" 12:55:04 ;; 12:55:04 esac 12:55:04 }' 12:55:04 +++ bash --norc -ec 'IFS=:; paths=($PATH); 12:55:04 for i in ${!paths[@]}; do 12:55:04 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 12:55:04 fi; done; 12:55:04 echo "${paths[*]}"' 12:55:04 ++ PATH=/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:04 ++ export PATH=/opt/pyenv/shims:/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:04 ++ PATH=/opt/pyenv/shims:/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:04 ++ export PYENV_SHELL=bash 12:55:04 ++ PYENV_SHELL=bash 12:55:04 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 12:55:04 +++ complete -F _pyenv pyenv 12:55:04 ++ lf-pyver python3 12:55:04 ++ local py_version_xy=python3 12:55:04 ++ local py_version_xyz= 12:55:04 ++ pyenv versions 12:55:04 ++ local command 12:55:04 ++ sed 's/^[ *]* //' 12:55:04 ++ command=versions 12:55:04 ++ '[' 1 -gt 0 ']' 12:55:04 ++ shift 12:55:04 ++ case "$command" in 12:55:04 ++ awk '{ print $1 }' 12:55:04 ++ command pyenv versions 12:55:04 ++ grep -E '^[0-9.]*[0-9]$' 12:55:04 ++ [[ ! -s /tmp/.pyenv_versions ]] 12:55:04 +++ grep '^3' /tmp/.pyenv_versions 12:55:04 +++ sort -V 12:55:04 +++ tail -n 1 12:55:04 ++ py_version_xyz=3.11.10 12:55:04 ++ [[ -z 3.11.10 ]] 12:55:04 ++ echo 3.11.10 12:55:04 ++ return 0 12:55:04 + pyenv local 3.11.10 12:55:04 + local command 12:55:04 + command=local 12:55:04 + '[' 2 -gt 0 ']' 12:55:04 + shift 12:55:04 + case "$command" in 12:55:04 + command pyenv local 3.11.10 12:55:04 + for arg in "$@" 12:55:04 + case $arg in 12:55:04 + pkg_list+='tox ' 12:55:04 + for arg in "$@" 12:55:04 + case $arg in 12:55:04 + pkg_list+='virtualenv ' 12:55:04 + for arg in "$@" 12:55:04 + case $arg in 12:55:04 + pkg_list+='urllib3~=1.26.15 ' 12:55:04 + [[ -f /tmp/.toxenv ]] 12:55:04 + [[ ! -f /tmp/.toxenv ]] 12:55:04 + [[ -n '' ]] 12:55:04 + python3 -m venv /tmp/venv-8Z1K 12:55:08 + echo 'lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-8Z1K' 12:55:08 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-8Z1K 12:55:08 + echo /tmp/venv-8Z1K 12:55:08 + echo 'lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv' 12:55:08 lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv 12:55:08 + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' 12:55:08 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 12:55:08 + local 'pip_opts=--upgrade --quiet' 12:55:08 + pip_opts='--upgrade --quiet --trusted-host pypi.org' 12:55:08 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' 12:55:08 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' 12:55:08 + [[ -n '' ]] 12:55:08 + [[ -n '' ]] 12:55:08 + echo 'lf-activate-venv(): INFO: Attempting to install with network-safe options...' 12:55:08 lf-activate-venv(): INFO: Attempting to install with network-safe options... 12:55:08 + /tmp/venv-8Z1K/bin/python3 -m pip install --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv 12:55:12 + echo 'lf-activate-venv(): INFO: Base packages installed successfully' 12:55:12 lf-activate-venv(): INFO: Base packages installed successfully 12:55:12 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 12:55:12 + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' 12:55:12 lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 12:55:12 + /tmp/venv-8Z1K/bin/python3 -m pip install --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 12:55:15 + type python3 12:55:15 + true 12:55:15 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-8Z1K/bin to PATH' 12:55:15 lf-activate-venv(): INFO: Adding /tmp/venv-8Z1K/bin to PATH 12:55:15 + PATH=/tmp/venv-8Z1K/bin:/opt/pyenv/shims:/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:15 + return 0 12:55:15 + python3 --version 12:55:15 Python 3.11.10 12:55:15 + python3 -m pip --version 12:55:16 pip 26.0.1 from /tmp/venv-8Z1K/lib/python3.11/site-packages/pip (python 3.11) 12:55:16 + python3 -m pip freeze 12:55:16 cachetools==7.0.1 12:55:16 chardet==5.2.0 12:55:16 colorama==0.4.6 12:55:16 distlib==0.4.0 12:55:16 filelock==3.20.3 12:55:16 packaging==26.0 12:55:16 platformdirs==4.5.1 12:55:16 pluggy==1.6.0 12:55:16 pyproject-api==1.10.0 12:55:16 tox==4.34.1 12:55:16 urllib3==1.26.20 12:55:16 virtualenv==20.36.1 12:55:16 [transportpce-tox-verify-transportpce-master] $ /bin/sh -xe /tmp/jenkins14611165463240142008.sh 12:55:16 [EnvInject] - Injecting environment variables from a build step. 12:55:16 [EnvInject] - Injecting as environment variables the properties content 12:55:16 PARALLEL=True 12:55:16 12:55:16 [EnvInject] - Variables injected successfully. 12:55:16 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins3014631330476410085.sh 12:55:16 ---> tox-run.sh 12:55:16 + PATH=/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:16 + ARCHIVE_TOX_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 12:55:16 + ARCHIVE_DOC_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 12:55:16 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 12:55:16 + cd /w/workspace/transportpce-tox-verify-transportpce-master/. 12:55:16 + source /home/jenkins/lf-env.sh 12:55:16 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 12:55:16 ++ mktemp -d /tmp/venv-XXXX 12:55:16 + lf_venv=/tmp/venv-FoDe 12:55:16 + local venv_file=/tmp/.os_lf_venv 12:55:16 + local python=python3 12:55:16 + local options 12:55:16 + local set_path=true 12:55:16 + local install_args= 12:55:16 ++ getopt -o np:v: -l no-path,system-site-packages,python:,venv-file: -n lf-activate-venv -- --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 12:55:16 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 12:55:16 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 12:55:16 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 12:55:16 + true 12:55:16 + case $1 in 12:55:16 + venv_file=/tmp/.toxenv 12:55:16 + shift 2 12:55:16 + true 12:55:16 + case $1 in 12:55:16 + shift 12:55:16 + break 12:55:16 + case $python in 12:55:16 + local pkg_list= 12:55:16 + [[ -d /opt/pyenv ]] 12:55:16 + echo 'Setup pyenv:' 12:55:16 Setup pyenv: 12:55:16 + export PYENV_ROOT=/opt/pyenv 12:55:16 + PYENV_ROOT=/opt/pyenv 12:55:16 + export PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:16 + PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:16 + pyenv versions 12:55:16 system 12:55:16 3.8.20 12:55:16 3.9.20 12:55:16 3.10.15 12:55:16 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 12:55:16 + command -v pyenv 12:55:16 ++ pyenv init - --no-rehash 12:55:16 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 12:55:16 for i in ${!paths[@]}; do 12:55:16 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 12:55:16 fi; done; 12:55:16 echo "${paths[*]}"'\'')" 12:55:16 export PATH="/opt/pyenv/shims:${PATH}" 12:55:16 export PYENV_SHELL=bash 12:55:16 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 12:55:16 pyenv() { 12:55:16 local command 12:55:16 command="${1:-}" 12:55:16 if [ "$#" -gt 0 ]; then 12:55:16 shift 12:55:16 fi 12:55:16 12:55:16 case "$command" in 12:55:16 rehash|shell) 12:55:16 eval "$(pyenv "sh-$command" "$@")" 12:55:16 ;; 12:55:16 *) 12:55:16 command pyenv "$command" "$@" 12:55:16 ;; 12:55:16 esac 12:55:16 }' 12:55:16 +++ bash --norc -ec 'IFS=:; paths=($PATH); 12:55:16 for i in ${!paths[@]}; do 12:55:16 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 12:55:16 fi; done; 12:55:16 echo "${paths[*]}"' 12:55:16 ++ PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:16 ++ export PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:16 ++ PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:16 ++ export PYENV_SHELL=bash 12:55:16 ++ PYENV_SHELL=bash 12:55:16 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 12:55:16 +++ complete -F _pyenv pyenv 12:55:16 ++ lf-pyver python3 12:55:16 ++ local py_version_xy=python3 12:55:16 ++ local py_version_xyz= 12:55:16 ++ pyenv versions 12:55:16 ++ local command 12:55:16 ++ command=versions 12:55:16 ++ '[' 1 -gt 0 ']' 12:55:16 ++ shift 12:55:16 ++ case "$command" in 12:55:16 ++ command pyenv versions 12:55:16 ++ awk '{ print $1 }' 12:55:16 ++ grep -E '^[0-9.]*[0-9]$' 12:55:16 ++ sed 's/^[ *]* //' 12:55:16 ++ [[ ! -s /tmp/.pyenv_versions ]] 12:55:16 +++ grep '^3' /tmp/.pyenv_versions 12:55:16 +++ sort -V 12:55:16 +++ tail -n 1 12:55:16 ++ py_version_xyz=3.11.10 12:55:16 ++ [[ -z 3.11.10 ]] 12:55:16 ++ echo 3.11.10 12:55:16 ++ return 0 12:55:16 + pyenv local 3.11.10 12:55:16 + local command 12:55:16 + command=local 12:55:16 + '[' 2 -gt 0 ']' 12:55:16 + shift 12:55:16 + case "$command" in 12:55:16 + command pyenv local 3.11.10 12:55:16 + for arg in "$@" 12:55:16 + case $arg in 12:55:16 + pkg_list+='tox ' 12:55:16 + for arg in "$@" 12:55:16 + case $arg in 12:55:16 + pkg_list+='virtualenv ' 12:55:16 + for arg in "$@" 12:55:16 + case $arg in 12:55:16 + pkg_list+='urllib3~=1.26.15 ' 12:55:16 + [[ -f /tmp/.toxenv ]] 12:55:16 ++ cat /tmp/.toxenv 12:55:16 + lf_venv=/tmp/venv-8Z1K 12:55:16 + echo 'lf-activate-venv(): INFO: Reuse venv:/tmp/venv-8Z1K from' file:/tmp/.toxenv 12:55:16 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-8Z1K from file:/tmp/.toxenv 12:55:16 + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' 12:55:16 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 12:55:16 + local 'pip_opts=--upgrade --quiet' 12:55:16 + pip_opts='--upgrade --quiet --trusted-host pypi.org' 12:55:16 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' 12:55:16 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' 12:55:16 + [[ -n '' ]] 12:55:16 + [[ -n '' ]] 12:55:16 + echo 'lf-activate-venv(): INFO: Attempting to install with network-safe options...' 12:55:16 lf-activate-venv(): INFO: Attempting to install with network-safe options... 12:55:16 + /tmp/venv-8Z1K/bin/python3 -m pip install --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv 12:55:17 + echo 'lf-activate-venv(): INFO: Base packages installed successfully' 12:55:17 lf-activate-venv(): INFO: Base packages installed successfully 12:55:17 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 12:55:17 + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' 12:55:17 lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 12:55:17 + /tmp/venv-8Z1K/bin/python3 -m pip install --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 12:55:18 + type python3 12:55:18 + true 12:55:18 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-8Z1K/bin to PATH' 12:55:18 lf-activate-venv(): INFO: Adding /tmp/venv-8Z1K/bin to PATH 12:55:18 + PATH=/tmp/venv-8Z1K/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:18 + return 0 12:55:18 + [[ -d /opt/pyenv ]] 12:55:18 + echo '---> Setting up pyenv' 12:55:18 ---> Setting up pyenv 12:55:18 + export PYENV_ROOT=/opt/pyenv 12:55:18 + PYENV_ROOT=/opt/pyenv 12:55:18 + export PATH=/opt/pyenv/bin:/tmp/venv-8Z1K/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:18 + PATH=/opt/pyenv/bin:/tmp/venv-8Z1K/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 12:55:18 ++ pwd 12:55:18 + PYTHONPATH=/w/workspace/transportpce-tox-verify-transportpce-master 12:55:18 + export PYTHONPATH 12:55:18 + export TOX_TESTENV_PASSENV=PYTHONPATH 12:55:18 + TOX_TESTENV_PASSENV=PYTHONPATH 12:55:18 + tox --version 12:55:19 4.34.1 from /tmp/venv-8Z1K/lib/python3.11/site-packages/tox/__init__.py 12:55:19 + PARALLEL=True 12:55:19 + TOX_OPTIONS_LIST= 12:55:19 + [[ -n '' ]] 12:55:19 + case ${PARALLEL,,} in 12:55:19 + TOX_OPTIONS_LIST=' --parallel auto --parallel-live' 12:55:19 + tox --parallel auto --parallel-live 12:55:19 + tee -a /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tox.log 12:55:20 buildcontroller: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:55:20 checkbashisms: freeze> python -m pip freeze --all 12:55:20 docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt 12:55:20 docs: install_deps> python -I -m pip install -r docs/requirements.txt 12:55:21 checkbashisms: pip==25.3,setuptools==80.9.0 12:55:21 checkbashisms: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 12:55:21 checkbashisms: commands[1] /w/workspace/transportpce-tox-verify-transportpce-master/tests> sh -c 'command checkbashisms>/dev/null || sudo yum install -y devscripts-checkbashisms || sudo yum install -y devscripts-minimal || sudo yum install -y devscripts || sudo yum install -y https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/31/Everything/x86_64/os/Packages/d/devscripts-checkbashisms-2.19.6-2.fc31.x86_64.rpm || (echo "checkbashisms command not found - please install it (e.g. sudo apt-get install devscripts | yum install devscripts-minimal )" >&2 && exit 1)' 12:55:21 checkbashisms: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> find . -not -path '*/\.*' -name '*.sh' -exec checkbashisms -f '{}' + 12:55:23 checkbashisms: OK ✔ in 3.38 seconds 12:55:23 pre-commit: install_deps> python -I -m pip install pre-commit 12:55:25 pre-commit: freeze> python -m pip freeze --all 12:55:26 pre-commit: cfgv==3.5.0,distlib==0.4.0,filelock==3.20.3,identify==2.6.16,nodeenv==1.10.0,pip==25.3,platformdirs==4.5.1,pre_commit==4.5.1,PyYAML==6.0.3,setuptools==80.9.0,virtualenv==20.36.1 12:55:26 pre-commit: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 12:55:26 pre-commit: commands[1] /w/workspace/transportpce-tox-verify-transportpce-master/tests> sh -c 'which cpan || sudo yum install -y perl-CPAN || (echo "cpan command not found - please install it (e.g. sudo apt-get install perl-modules | yum install perl-CPAN )" >&2 && exit 1)' 12:55:26 /usr/bin/cpan 12:55:26 pre-commit: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run --all-files --show-diff-on-failure 12:55:26 [WARNING] hook id `remove-tabs` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 12:55:26 [WARNING] hook id `perltidy` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 12:55:26 [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. 12:55:26 [WARNING] repo `https://github.com/pre-commit/pre-commit-hooks` uses deprecated stage names (commit, push) which will be removed in a future version. Hint: often `pre-commit autoupdate --repo https://github.com/pre-commit/pre-commit-hooks` will fix this. if it does not -- consider reporting an issue to that repo. 12:55:26 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint. 12:55:28 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint:./gitlint-core[trusted-deps]. 12:55:29 buildcontroller: freeze> python -m pip freeze --all 12:55:29 buildcontroller: bcrypt==5.0.0,certifi==2026.1.4,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.5,dict2xml==1.7.8,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==26.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.19.2,PyNaCl==1.6.2,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.3 12:55:29 buildcontroller: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_controller.sh 12:55:29 + update-java-alternatives -l 12:55:29 java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 12:55:29 java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64 12:55:29 java-1.21.0-openjdk-amd64 2111 /usr/lib/jvm/java-1.21.0-openjdk-amd64 12:55:29 + sudo update-java-alternatives -s java-1.21.0-openjdk-amd64 12:55:29 update-alternatives: error: no alternatives for jaotc 12:55:29 [INFO] Initializing environment for https://github.com/Lucas-C/pre-commit-hooks. 12:55:29 update-alternatives: error: no alternatives for rmic 12:55:30 [INFO] Initializing environment for https://github.com/pre-commit/mirrors-autopep8. 12:55:30 + java -version 12:55:30 + sed -n ;s/.* version "\(.*\)\.\(.*\)\..*".*$/\1/p; 12:55:30 21 12:55:30 + JAVA_VER=21 12:55:30 + echo 21 12:55:30 + javac -version 12:55:30 + sed -n ;s/javac \(.*\)\.\(.*\)\..*.*$/\1/p; 12:55:30 [INFO] Initializing environment for https://github.com/perltidy/perltidy. 12:55:30 + JAVAC_VER=21 12:55:30 + echo 21 12:55:30 21 12:55:30 ok, java is 21 or newer 12:55:30 + [ 21 -ge 21 ] 12:55:30 + [ 21 -ge 21 ] 12:55:30 + echo ok, java is 21 or newer 12:55:30 + wget -nv https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.tar.gz -P /tmp 12:55:30 2026-02-12 12:55:30 URL:https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.tar.gz [9233336/9233336] -> "/tmp/apache-maven-3.9.12-bin.tar.gz" [1] 12:55:30 + sudo mkdir -p /opt 12:55:30 + sudo tar xf /tmp/apache-maven-3.9.12-bin.tar.gz -C /opt 12:55:30 + sudo ln -s /opt/apache-maven-3.9.12 /opt/maven 12:55:30 + sudo ln -s /opt/maven/bin/mvn /usr/bin/mvn 12:55:30 + mvn --version 12:55:31 Apache Maven 3.9.12 (848fbb4bf2d427b72bdb2471c22fced7ebd9a7a1) 12:55:31 Maven home: /opt/maven 12:55:31 Java version: 21.0.9, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64 12:55:31 Default locale: en, platform encoding: UTF-8 12:55:31 OS name: "linux", version: "5.15.0-168-generic", arch: "amd64", family: "unix" 12:55:31 [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. 12:55:31 [INFO] Once installed this environment will be reused. 12:55:31 [INFO] This may take a few minutes... 12:55:31 NOTE: Picked up JDK_JAVA_OPTIONS: 12:55:31 --add-opens=java.base/java.io=ALL-UNNAMED 12:55:31 --add-opens=java.base/java.lang=ALL-UNNAMED 12:55:31 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 12:55:31 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 12:55:31 --add-opens=java.base/java.net=ALL-UNNAMED 12:55:31 --add-opens=java.base/java.nio=ALL-UNNAMED 12:55:31 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 12:55:31 --add-opens=java.base/java.nio.file=ALL-UNNAMED 12:55:31 --add-opens=java.base/java.util=ALL-UNNAMED 12:55:31 --add-opens=java.base/java.util.jar=ALL-UNNAMED 12:55:31 --add-opens=java.base/java.util.stream=ALL-UNNAMED 12:55:31 --add-opens=java.base/java.util.zip=ALL-UNNAMED 12:55:31 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 12:55:31 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 12:55:31 -Xlog:disable 12:55:39 [INFO] Installing environment for https://github.com/Lucas-C/pre-commit-hooks. 12:55:39 [INFO] Once installed this environment will be reused. 12:55:39 [INFO] This may take a few minutes... 12:55:47 [INFO] Installing environment for https://github.com/pre-commit/mirrors-autopep8. 12:55:47 [INFO] Once installed this environment will be reused. 12:55:47 [INFO] This may take a few minutes... 12:55:51 [INFO] Installing environment for https://github.com/perltidy/perltidy. 12:55:51 [INFO] Once installed this environment will be reused. 12:55:51 [INFO] This may take a few minutes... 12:55:52 docs: freeze> python -m pip freeze --all 12:55:52 docs: alabaster==1.0.0,attrs==25.4.0,babel==2.18.0,blockdiag==3.0.0,certifi==2026.1.4,charset-normalizer==3.4.4,contourpy==1.3.3,cycler==0.12.1,docutils==0.21.2,fonttools==4.61.1,funcparserlib==2.0.0a0,future==1.0.0,idna==3.11,imagesize==1.4.1,Jinja2==3.1.6,jsonschema==3.2.0,kiwisolver==1.4.9,lfdocs_conf==0.10.0,MarkupSafe==3.0.3,matplotlib==3.10.8,numpy==2.4.2,nwdiag==3.0.0,packaging==26.0,pillow==12.1.1,pip==25.3,Pygments==2.19.2,pyparsing==3.3.2,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.3,requests==2.32.5,requests-file==1.5.1,roman-numerals==4.1.0,roman-numerals-py==4.1.0,seqdiag==3.0.0,setuptools==80.9.0,six==1.17.0,snowballstemmer==3.0.1,Sphinx==8.2.3,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-tabs==3.4.7,sphinx_rtd_theme==3.1.0,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-blockdiag==3.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-needs==0.7.9,sphinxcontrib-nwdiag==2.0.0,sphinxcontrib-plantuml==0.31,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-seqdiag==3.0.0,sphinxcontrib-serializinghtml==2.0.0,sphinxcontrib-swaggerdoc==0.1.7,urllib3==2.6.3,webcolors==25.10.0 12:55:52 docs: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> sphinx-build -q -W --keep-going -b html -n -d /w/workspace/transportpce-tox-verify-transportpce-master/.tox/docs/tmp/doctrees ../docs/ /w/workspace/transportpce-tox-verify-transportpce-master/docs/_build/html 12:55:52 docs-linkcheck: freeze> python -m pip freeze --all 12:55:53 docs-linkcheck: alabaster==1.0.0,attrs==25.4.0,babel==2.18.0,blockdiag==3.0.0,certifi==2026.1.4,charset-normalizer==3.4.4,contourpy==1.3.3,cycler==0.12.1,docutils==0.21.2,fonttools==4.61.1,funcparserlib==2.0.0a0,future==1.0.0,idna==3.11,imagesize==1.4.1,Jinja2==3.1.6,jsonschema==3.2.0,kiwisolver==1.4.9,lfdocs_conf==0.10.0,MarkupSafe==3.0.3,matplotlib==3.10.8,numpy==2.4.2,nwdiag==3.0.0,packaging==26.0,pillow==12.1.1,pip==25.3,Pygments==2.19.2,pyparsing==3.3.2,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.3,requests==2.32.5,requests-file==1.5.1,roman-numerals==4.1.0,roman-numerals-py==4.1.0,seqdiag==3.0.0,setuptools==80.9.0,six==1.17.0,snowballstemmer==3.0.1,Sphinx==8.2.3,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-tabs==3.4.7,sphinx_rtd_theme==3.1.0,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-blockdiag==3.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-needs==0.7.9,sphinxcontrib-nwdiag==2.0.0,sphinxcontrib-plantuml==0.31,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-seqdiag==3.0.0,sphinxcontrib-serializinghtml==2.0.0,sphinxcontrib-swaggerdoc==0.1.7,urllib3==2.6.3,webcolors==25.10.0 12:55:53 docs-linkcheck: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> sphinx-build -q -b linkcheck -d /w/workspace/transportpce-tox-verify-transportpce-master/.tox/docs-linkcheck/tmp/doctrees ../docs/ /w/workspace/transportpce-tox-verify-transportpce-master/docs/_build/linkcheck 12:55:55 docs: OK ✔ in 35.59 seconds 12:55:55 pylint: install_deps> python -I -m pip install 'pylint>=2.6.0' 12:55:57 docs-linkcheck: OK ✔ in 37.03 seconds 12:55:57 pylint: freeze> python -m pip freeze --all 12:55:58 pylint: astroid==4.0.4,dill==0.4.1,isort==7.0.0,mccabe==0.7.0,pip==25.3,platformdirs==4.5.1,pylint==4.0.4,setuptools==80.9.0,tomlkit==0.14.0 12:55:58 pylint: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> find transportpce_tests/ -name '*.py' -exec pylint --fail-under=10 --max-line-length=120 --disable=missing-docstring,import-error --disable=fixme --disable=duplicate-code '--module-rgx=([a-z0-9_]+$)|([0-9.]{1,30}$)' '--method-rgx=(([a-z_][a-zA-Z0-9_]{2,})|(_[a-z0-9_]*)|(__[a-zA-Z][a-zA-Z0-9_]+__))$' '--variable-rgx=[a-zA-Z_][a-zA-Z0-9_]{1,30}$' '{}' + 12:56:00 trim trailing whitespace.................................................Passed 12:56:00 Tabs remover.............................................................Passed 12:56:01 autopep8.................................................................Passed 12:56:04 perltidy.................................................................Passed 12:56:05 pre-commit: commands[3] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run gitlint-ci --hook-stage manual 12:56:05 [WARNING] hook id `remove-tabs` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 12:56:05 [WARNING] hook id `perltidy` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 12:56:05 [INFO] Installing environment for https://github.com/jorisroovers/gitlint. 12:56:05 [INFO] Once installed this environment will be reused. 12:56:05 [INFO] This may take a few minutes... 12:56:11 gitlint..................................................................Passed 12:56:19 12:56:19 ------------------------------------ 12:56:19 Your code has been rated at 10.00/10 12:56:19 12:57:51 pre-commit: OK ✔ in 49.35 seconds 12:57:51 pylint: OK ✔ in 26.34 seconds 12:57:51 buildcontroller: OK ✔ in 2 minutes 31.42 seconds 12:57:51 build_karaf_tests190: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:57:51 build_karaf_tests121: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:57:51 build_karaf_tests221: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:57:51 build_karaf_tests71: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:58:17 build_karaf_tests121: freeze> python -m pip freeze --all 12:58:17 build_karaf_tests221: freeze> python -m pip freeze --all 12:58:17 build_karaf_tests71: freeze> python -m pip freeze --all 12:58:17 build_karaf_tests190: freeze> python -m pip freeze --all 12:58:17 build_karaf_tests121: bcrypt==5.0.0,certifi==2026.1.4,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.5,dict2xml==1.7.8,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==26.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.19.2,PyNaCl==1.6.2,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.3 12:58:17 build_karaf_tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 12:58:17 build karaf in karaf121 with ./karaf121.env 12:58:17 NOTE: Picked up JDK_JAVA_OPTIONS: 12:58:17 --add-opens=java.base/java.io=ALL-UNNAMED 12:58:17 --add-opens=java.base/java.lang=ALL-UNNAMED 12:58:17 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 12:58:17 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 12:58:17 --add-opens=java.base/java.net=ALL-UNNAMED 12:58:17 --add-opens=java.base/java.nio=ALL-UNNAMED 12:58:17 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 12:58:17 --add-opens=java.base/java.nio.file=ALL-UNNAMED 12:58:17 --add-opens=java.base/java.util=ALL-UNNAMED 12:58:17 --add-opens=java.base/java.util.jar=ALL-UNNAMED 12:58:17 --add-opens=java.base/java.util.stream=ALL-UNNAMED 12:58:17 --add-opens=java.base/java.util.zip=ALL-UNNAMED 12:58:17 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 12:58:17 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 12:58:17 -Xlog:disable 12:58:18 build_karaf_tests221: bcrypt==5.0.0,certifi==2026.1.4,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.5,dict2xml==1.7.8,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==26.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.19.2,PyNaCl==1.6.2,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.3 12:58:18 build_karaf_tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 12:58:18 build karaf in karaf221 with ./karaf221.env 12:58:18 build_karaf_tests71: bcrypt==5.0.0,certifi==2026.1.4,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.5,dict2xml==1.7.8,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==26.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.19.2,PyNaCl==1.6.2,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.3 12:58:18 build_karaf_tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 12:58:18 build karaf in karaf71 with ./karaf71.env 12:58:18 build_karaf_tests190: bcrypt==5.0.0,certifi==2026.1.4,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.5,dict2xml==1.7.8,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==26.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.19.2,PyNaCl==1.6.2,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.3 12:58:18 build_karaf_tests190: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 12:58:18 build karaf in karafoc with ./karafoc.env 12:58:18 NOTE: Picked up JDK_JAVA_OPTIONS: 12:58:18 --add-opens=java.base/java.io=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.lang=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.net=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.nio=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.nio.file=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.util=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.util.jar=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.util.stream=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.util.zip=ALL-UNNAMED 12:58:18 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 12:58:18 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 12:58:18 -Xlog:disable 12:58:18 NOTE: Picked up JDK_JAVA_OPTIONS: 12:58:18 --add-opens=java.base/java.io=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.lang=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.net=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.nio=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.nio.file=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.util=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.util.jar=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.util.stream=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.util.zip=ALL-UNNAMED 12:58:18 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 12:58:18 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 12:58:18 -Xlog:disable 12:58:18 NOTE: Picked up JDK_JAVA_OPTIONS: 12:58:18 --add-opens=java.base/java.io=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.lang=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.net=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.nio=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.nio.file=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.util=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.util.jar=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.util.stream=ALL-UNNAMED 12:58:18 --add-opens=java.base/java.util.zip=ALL-UNNAMED 12:58:18 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 12:58:18 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 12:58:18 -Xlog:disable 12:59:41 build_karaf_tests190: OK ✔ in 1 minute 49.8 seconds 12:59:41 build_karaf_tests221: OK ✔ in 1 minute 49.85 seconds 12:59:41 sims: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:59:41 buildlighty: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:59:45 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:3.1.4:install (default-install) on project transportpce-karaf: Failed to install metadata org.opendaylight.transportpce:transportpce-karaf:13.0.0-SNAPSHOT/maven-metadata.xml: Could not read metadata /home/jenkins/.m2/repository/org/opendaylight/transportpce/transportpce-karaf/13.0.0-SNAPSHOT/maven-metadata-local.xml: input contained no data -> [Help 1] 12:59:45 [ERROR] 12:59:45 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 12:59:45 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 12:59:45 [ERROR] 12:59:45 [ERROR] For more information about the errors and possible solutions, please read the following articles: 12:59:45 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 12:59:46 build_karaf_tests71: OK ✔ in 1 minute 55 seconds 12:59:46 build_karaf_tests121: OK ✔ in 1 minute 55.01 seconds 12:59:46 testsPCE: install_deps> python -I -m pip install gnpy4tpce==2.4.7 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 12:59:57 buildlighty: freeze> python -m pip freeze --all 12:59:57 buildlighty: bcrypt==5.0.0,certifi==2026.1.4,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.5,dict2xml==1.7.8,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==26.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.19.2,PyNaCl==1.6.2,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.3 12:59:57 buildlighty: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh 12:59:57 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED 12:59:57 sims: freeze> python -m pip freeze --all 12:59:58 sims: bcrypt==5.0.0,certifi==2026.1.4,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.5,dict2xml==1.7.8,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==26.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.19.2,PyNaCl==1.6.2,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.3 12:59:58 sims: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_lightynode.sh 12:59:58 Using lighynode version 22.1.0.6 12:59:58 Installing lightynode device to ./lightynode/lightynode-openroadm-device directory 13:01:11 sims: OK ✔ in 20.75 seconds 13:01:11 buildlighty: OK ✔ in 37.48 seconds 13:01:11 testsPCE: freeze> python -m pip freeze --all 13:01:12 testsPCE: bcrypt==5.0.0,certifi==2026.1.4,cffi==2.0.0,charset-normalizer==3.4.4,click==8.3.1,contourpy==1.3.3,cryptography==3.3.2,cycler==0.12.1,dict2xml==1.7.8,Flask==2.1.3,Flask-Injector==0.14.0,fonttools==4.61.1,gnpy4tpce==2.4.7,idna==3.11,iniconfig==2.3.0,injector==0.24.0,invoke==2.2.1,itsdangerous==2.2.0,Jinja2==3.1.6,kiwisolver==1.4.9,lxml==6.0.2,MarkupSafe==3.0.3,matplotlib==3.10.8,netconf-client==3.5.0,networkx==2.8.8,numpy==1.26.4,packaging==26.0,pandas==1.5.3,paramiko==4.0.0,pbr==5.11.1,pillow==12.1.1,pip==25.3,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.19.2,PyNaCl==1.6.2,pyparsing==3.3.2,pytest==9.0.2,python-dateutil==2.9.0.post0,pytz==2025.2,requests==2.32.5,scipy==1.17.0,setuptools==50.3.2,six==1.17.0,urllib3==2.6.3,Werkzeug==2.0.3,xlrd==1.2.0 13:01:12 testsPCE: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce 13:01:12 pytest -q transportpce_tests/pce/test01_pce.py 13:02:00 .................... [100%] 13:03:03 20 passed in 111.20s (0:01:51) 13:03:03 pytest -q transportpce_tests/pce/test02_pce_400G.py 13:03:20 ............ [100%] 13:03:50 12 passed in 46.78s 13:03:50 pytest -q transportpce_tests/pce/test03_gnpy.py 13:04:07 ........ [100%] 13:04:29 8 passed in 37.88s 13:04:29 pytest -q transportpce_tests/pce/test04_pce_bug_fix.py 13:05:01 ... [100%] 13:05:06 3 passed in 37.53s 13:05:07 testsPCE: OK ✔ in 5 minutes 21.24 seconds 13:05:07 tests121: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 13:05:07 tests190: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 13:05:07 tests_tapi: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 13:05:15 tests_tapi: freeze> python -m pip freeze --all 13:05:15 tests121: freeze> python -m pip freeze --all 13:05:15 tests190: freeze> python -m pip freeze --all 13:05:15 tests_tapi: bcrypt==5.0.0,certifi==2026.1.4,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.5,dict2xml==1.7.8,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==26.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.19.2,PyNaCl==1.6.2,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.3 13:05:15 tests_tapi: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi 13:05:15 using environment variables from ./karaf221.env 13:05:15 pytest -q transportpce_tests/tapi/test01_abstracted_topology.py 13:05:15 tests121: bcrypt==5.0.0,certifi==2026.1.4,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.5,dict2xml==1.7.8,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==26.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.19.2,PyNaCl==1.6.2,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.3 13:05:15 tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 1.2.1 13:05:15 using environment variables from ./karaf121.env 13:05:15 pytest -q transportpce_tests/1.2.1/test01_portmapping.py 13:05:15 tests190: bcrypt==5.0.0,certifi==2026.1.4,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.5,dict2xml==1.7.8,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==26.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.19.2,PyNaCl==1.6.2,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.3 13:05:15 tests190: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh oc 13:05:15 using environment variables from ./karafoc.env 13:05:15 pytest -q transportpce_tests/oc/test01_portmapping.py 13:06:22 ........... [100%] 13:06:38 10 passed in 82.36s (0:01:22) 13:06:38 pytest -q transportpce_tests/oc/test02_topology.py 13:06:46 ................................. [100%] 13:07:27 21 passed in 130.94s (0:02:10) 13:07:27 pytest -q transportpce_tests/1.2.1/test02_topo_portmapping.py 13:07:28 .......................... [100%] 13:07:47 14 passed in 68.18s (0:01:08) 13:07:47 pytest -q transportpce_tests/oc/test03_renderer.py 13:07:48 .................. [100%] 13:08:31 6 passed in 63.64s (0:01:03) 13:08:31 pytest -q transportpce_tests/1.2.1/test03_topology.py 13:08:31 ................... [100%] 13:08:49 19 passed in 61.62s (0:01:01) 13:08:49 tests190: OK ✔ in 3 minutes 42.52 seconds 13:08:49 tests71: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 13:08:55 .tests71: freeze> python -m pip freeze --all 13:08:59 tests71: bcrypt==5.0.0,certifi==2026.1.4,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.5,dict2xml==1.7.8,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==26.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.19.2,PyNaCl==1.6.2,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.3 13:08:59 tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 7.1 13:08:59 using environment variables from ./karaf71.env 13:08:59 pytest -q transportpce_tests/7.1/test01_portmapping.py 13:09:15 ..................................... [100%] 13:09:57 12 passed in 57.54s 13:09:57 pytest -q transportpce_tests/7.1/test02_otn_renderer.py 13:09:59 ........................... [100%] 13:10:40 51 passed in 324.33s (0:05:24) 13:10:40 pytest -q transportpce_tests/tapi/test02_full_topology.py 13:10:40 ........................ [100%] 13:11:06 44 passed in 154.62s (0:02:34) 13:11:06 pytest -q transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py 13:11:08 ............................................................................... [100%] 13:12:38 62 passed in 161.05s (0:02:41) 13:12:38 pytest -q transportpce_tests/7.1/test03_renderer_or_modes.py 13:12:40 ... [100%] 13:12:46 24 passed in 99.25s (0:01:39) 13:12:46 pytest -q transportpce_tests/1.2.1/test05_olm.py 13:13:04 .......F.F...................................................................................... [100%] 13:15:59 =================================== FAILURES =================================== 13:15:59 ________ TestTransportPCERendererOrModes.test_01_xpdr_device_connection ________ 13:15:59 13:15:59 self = 13:15:59 conn = 13:15:59 method = 'PUT' 13:15:59 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDR-A2' 13:15:59 body = '{"node": [{"node-id": "XPDR-A2", "netconf-node-topology:netconf-node": {"netconf-node-topology:host": "127.0.0.1", "n...ff-millis": 1800000, "netconf-node-topology:backoff-multiplier": 1.5, "netconf-node-topology:keepalive-delay": 120}}]}' 13:15:59 headers = {'User-Agent': 'python-requests/2.32.5', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '709', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 13:15:59 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 13:15:59 timeout = Timeout(connect=30, read=30, total=None), chunked = False 13:15:59 response_conn = 13:15:59 preload_content = False, decode_content = False, enforce_content_length = True 13:15:59 13:15:59 def _make_request( 13:15:59 self, 13:15:59 conn: BaseHTTPConnection, 13:15:59 method: str, 13:15:59 url: str, 13:15:59 body: _TYPE_BODY | None = None, 13:15:59 headers: typing.Mapping[str, str] | None = None, 13:15:59 retries: Retry | None = None, 13:15:59 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 13:15:59 chunked: bool = False, 13:15:59 response_conn: BaseHTTPConnection | None = None, 13:15:59 preload_content: bool = True, 13:15:59 decode_content: bool = True, 13:15:59 enforce_content_length: bool = True, 13:15:59 ) -> BaseHTTPResponse: 13:15:59 """ 13:15:59 Perform a request on a given urllib connection object taken from our 13:15:59 pool. 13:15:59 13:15:59 :param conn: 13:15:59 a connection from one of our connection pools 13:15:59 13:15:59 :param method: 13:15:59 HTTP request method (such as GET, POST, PUT, etc.) 13:15:59 13:15:59 :param url: 13:15:59 The URL to perform the request on. 13:15:59 13:15:59 :param body: 13:15:59 Data to send in the request body, either :class:`str`, :class:`bytes`, 13:15:59 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 13:15:59 13:15:59 :param headers: 13:15:59 Dictionary of custom headers to send, such as User-Agent, 13:15:59 If-None-Match, etc. If None, pool headers are used. If provided, 13:15:59 these headers completely replace any pool-specific headers. 13:15:59 13:15:59 :param retries: 13:15:59 Configure the number of retries to allow before raising a 13:15:59 :class:`~urllib3.exceptions.MaxRetryError` exception. 13:15:59 13:15:59 Pass ``None`` to retry until you receive a response. Pass a 13:15:59 :class:`~urllib3.util.retry.Retry` object for fine-grained control 13:15:59 over different types of retries. 13:15:59 Pass an integer number to retry connection errors that many times, 13:15:59 but no other types of errors. Pass zero to never retry. 13:15:59 13:15:59 If ``False``, then retries are disabled and any exception is raised 13:15:59 immediately. Also, instead of raising a MaxRetryError on redirects, 13:15:59 the redirect response will be returned. 13:15:59 13:15:59 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 13:15:59 13:15:59 :param timeout: 13:15:59 If specified, overrides the default timeout for this one 13:15:59 request. It may be a float (in seconds) or an instance of 13:15:59 :class:`urllib3.util.Timeout`. 13:15:59 13:15:59 :param chunked: 13:15:59 If True, urllib3 will send the body using chunked transfer 13:15:59 encoding. Otherwise, urllib3 will send the body using the standard 13:15:59 content-length form. Defaults to False. 13:15:59 13:15:59 :param response_conn: 13:15:59 Set this to ``None`` if you will handle releasing the connection or 13:15:59 set the connection to have the response release it. 13:15:59 13:15:59 :param preload_content: 13:15:59 If True, the response's body will be preloaded during construction. 13:15:59 13:15:59 :param decode_content: 13:15:59 If True, will attempt to decode the body based on the 13:15:59 'content-encoding' header. 13:15:59 13:15:59 :param enforce_content_length: 13:15:59 Enforce content length checking. Body returned by server must match 13:15:59 value of Content-Length header, if present. Otherwise, raise error. 13:15:59 """ 13:15:59 self.num_requests += 1 13:15:59 13:15:59 timeout_obj = self._get_timeout(timeout) 13:15:59 timeout_obj.start_connect() 13:15:59 conn.timeout = Timeout.resolve_default_timeout(timeout_obj.connect_timeout) 13:15:59 13:15:59 try: 13:15:59 # Trigger any extra validation we need to do. 13:15:59 try: 13:15:59 self._validate_conn(conn) 13:15:59 except (SocketTimeout, BaseSSLError) as e: 13:15:59 self._raise_timeout(err=e, url=url, timeout_value=conn.timeout) 13:15:59 raise 13:15:59 13:15:59 # _validate_conn() starts the connection to an HTTPS proxy 13:15:59 # so we need to wrap errors with 'ProxyError' here too. 13:15:59 except ( 13:15:59 OSError, 13:15:59 NewConnectionError, 13:15:59 TimeoutError, 13:15:59 BaseSSLError, 13:15:59 CertificateError, 13:15:59 SSLError, 13:15:59 ) as e: 13:15:59 new_e: Exception = e 13:15:59 if isinstance(e, (BaseSSLError, CertificateError)): 13:15:59 new_e = SSLError(e) 13:15:59 # If the connection didn't successfully connect to it's proxy 13:15:59 # then there 13:15:59 if isinstance( 13:15:59 new_e, (OSError, NewConnectionError, TimeoutError, SSLError) 13:15:59 ) and (conn and conn.proxy and not conn.has_connected_to_proxy): 13:15:59 new_e = _wrap_proxy_error(new_e, conn.proxy.scheme) 13:15:59 raise new_e 13:15:59 13:15:59 # conn.request() calls http.client.*.request, not the method in 13:15:59 # urllib3.request. It also calls makefile (recv) on the socket. 13:15:59 try: 13:15:59 conn.request( 13:15:59 method, 13:15:59 url, 13:15:59 body=body, 13:15:59 headers=headers, 13:15:59 chunked=chunked, 13:15:59 preload_content=preload_content, 13:15:59 decode_content=decode_content, 13:15:59 enforce_content_length=enforce_content_length, 13:15:59 ) 13:15:59 13:15:59 # We are swallowing BrokenPipeError (errno.EPIPE) since the server is 13:15:59 # legitimately able to close the connection after sending a valid response. 13:15:59 # With this behaviour, the received response is still readable. 13:15:59 except BrokenPipeError: 13:15:59 pass 13:15:59 except OSError as e: 13:15:59 # MacOS/Linux 13:15:59 # EPROTOTYPE and ECONNRESET are needed on macOS 13:15:59 # https://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/ 13:15:59 # Condition changed later to emit ECONNRESET instead of only EPROTOTYPE. 13:15:59 if e.errno != errno.EPROTOTYPE and e.errno != errno.ECONNRESET: 13:15:59 raise 13:15:59 13:15:59 # Reset the timeout for the recv() on the socket 13:15:59 read_timeout = timeout_obj.read_timeout 13:15:59 13:15:59 if not conn.is_closed: 13:15:59 # In Python 3 socket.py will catch EAGAIN and return None when you 13:15:59 # try and read into the file pointer created by http.client, which 13:15:59 # instead raises a BadStatusLine exception. Instead of catching 13:15:59 # the exception and assuming all BadStatusLine exceptions are read 13:15:59 # timeouts, check for a zero timeout before making the request. 13:15:59 if read_timeout == 0: 13:15:59 raise ReadTimeoutError( 13:15:59 self, url, f"Read timed out. (read timeout={read_timeout})" 13:15:59 ) 13:15:59 conn.timeout = read_timeout 13:15:59 13:15:59 # Receive the response from the server 13:15:59 try: 13:15:59 > response = conn.getresponse() 13:15:59 ^^^^^^^^^^^^^^^^^^ 13:15:59 13:15:59 ../.tox/tests71/lib/python3.11/site-packages/urllib3/connectionpool.py:534: 13:15:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13:15:59 ../.tox/tests71/lib/python3.11/site-packages/urllib3/connection.py:571: in getresponse 13:15:59 httplib_response = super().getresponse() 13:15:59 ^^^^^^^^^^^^^^^^^^^^^ 13:15:59 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:1395: in getresponse 13:15:59 response.begin() 13:15:59 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:325: in begin 13:15:59 version, status, reason = self._read_status() 13:15:59 ^^^^^^^^^^^^^^^^^^^ 13:15:59 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:286: in _read_status 13:15:59 line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 13:15:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 13:15:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13:15:59 13:15:59 self = 13:15:59 b = 13:15:59 13:15:59 def readinto(self, b): 13:15:59 """Read up to len(b) bytes into the writable buffer *b* and return 13:15:59 the number of bytes read. If the socket is non-blocking and no bytes 13:15:59 are available, None is returned. 13:15:59 13:15:59 If *b* is non-empty, a 0 return value indicates that the connection 13:15:59 was shutdown at the other end. 13:15:59 """ 13:15:59 self._checkClosed() 13:15:59 self._checkReadable() 13:15:59 if self._timeout_occurred: 13:15:59 raise OSError("cannot read from timed out object") 13:15:59 while True: 13:15:59 try: 13:15:59 > return self._sock.recv_into(b) 13:15:59 ^^^^^^^^^^^^^^^^^^^^^^^ 13:15:59 E TimeoutError: timed out 13:15:59 13:15:59 /opt/pyenv/versions/3.11.10/lib/python3.11/socket.py:718: TimeoutError 13:15:59 13:15:59 The above exception was the direct cause of the following exception: 13:15:59 13:15:59 self = 13:15:59 request = , stream = False 13:15:59 timeout = Timeout(connect=30, read=30, total=None), verify = True, cert = None 13:15:59 proxies = OrderedDict() 13:15:59 13:15:59 def send( 13:15:59 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 13:15:59 ): 13:15:59 """Sends PreparedRequest object. Returns Response object. 13:15:59 13:15:59 :param request: The :class:`PreparedRequest ` being sent. 13:15:59 :param stream: (optional) Whether to stream the request content. 13:15:59 :param timeout: (optional) How long to wait for the server to send 13:15:59 data before giving up, as a float, or a :ref:`(connect timeout, 13:15:59 read timeout) ` tuple. 13:15:59 :type timeout: float or tuple or urllib3 Timeout object 13:15:59 :param verify: (optional) Either a boolean, in which case it controls whether 13:15:59 we verify the server's TLS certificate, or a string, in which case it 13:15:59 must be a path to a CA bundle to use 13:15:59 :param cert: (optional) Any user-provided SSL certificate to be trusted. 13:15:59 :param proxies: (optional) The proxies dictionary to apply to the request. 13:15:59 :rtype: requests.Response 13:15:59 """ 13:15:59 13:15:59 try: 13:15:59 conn = self.get_connection_with_tls_context( 13:15:59 request, verify, proxies=proxies, cert=cert 13:15:59 ) 13:15:59 except LocationValueError as e: 13:15:59 raise InvalidURL(e, request=request) 13:15:59 13:15:59 self.cert_verify(conn, request.url, verify, cert) 13:15:59 url = self.request_url(request, proxies) 13:15:59 self.add_headers( 13:15:59 request, 13:15:59 stream=stream, 13:15:59 timeout=timeout, 13:15:59 verify=verify, 13:15:59 cert=cert, 13:15:59 proxies=proxies, 13:15:59 ) 13:15:59 13:15:59 chunked = not (request.body is None or "Content-Length" in request.headers) 13:15:59 13:15:59 if isinstance(timeout, tuple): 13:15:59 try: 13:15:59 connect, read = timeout 13:15:59 timeout = TimeoutSauce(connect=connect, read=read) 13:15:59 except ValueError: 13:15:59 raise ValueError( 13:15:59 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 13:15:59 f"or a single float to set both timeouts to the same value." 13:15:59 ) 13:15:59 elif isinstance(timeout, TimeoutSauce): 13:15:59 pass 13:15:59 else: 13:15:59 timeout = TimeoutSauce(connect=timeout, read=timeout) 13:15:59 13:15:59 try: 13:15:59 > resp = conn.urlopen( 13:15:59 method=request.method, 13:15:59 url=url, 13:15:59 body=request.body, 13:15:59 headers=request.headers, 13:15:59 redirect=False, 13:15:59 assert_same_host=False, 13:15:59 preload_content=False, 13:15:59 decode_content=False, 13:15:59 retries=self.max_retries, 13:15:59 timeout=timeout, 13:15:59 chunked=chunked, 13:15:59 ) 13:15:59 13:15:59 ../.tox/tests71/lib/python3.11/site-packages/requests/adapters.py:644: 13:15:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13:15:59 ../.tox/tests71/lib/python3.11/site-packages/urllib3/connectionpool.py:841: in urlopen 13:15:59 retries = retries.increment( 13:15:59 ../.tox/tests71/lib/python3.11/site-packages/urllib3/util/retry.py:490: in increment 13:15:59 raise reraise(type(error), error, _stacktrace) 13:15:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 13:15:59 ../.tox/tests71/lib/python3.11/site-packages/urllib3/util/util.py:39: in reraise 13:15:59 raise value 13:15:59 ../.tox/tests71/lib/python3.11/site-packages/urllib3/connectionpool.py:787: in urlopen 13:15:59 response = self._make_request( 13:15:59 ../.tox/tests71/lib/python3.11/site-packages/urllib3/connectionpool.py:536: in _make_request 13:15:59 self._raise_timeout(err=e, url=url, timeout_value=read_timeout) 13:15:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13:15:59 13:15:59 self = 13:15:59 err = TimeoutError('timed out') 13:15:59 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDR-A2' 13:15:59 timeout_value = 30 13:15:59 13:15:59 def _raise_timeout( 13:15:59 self, 13:15:59 err: BaseSSLError | OSError | SocketTimeout, 13:15:59 url: str, 13:15:59 timeout_value: _TYPE_TIMEOUT | None, 13:15:59 ) -> None: 13:15:59 """Is the error actually a timeout? Will raise a ReadTimeout or pass""" 13:15:59 13:15:59 if isinstance(err, SocketTimeout): 13:15:59 > raise ReadTimeoutError( 13:15:59 self, url, f"Read timed out. (read timeout={timeout_value})" 13:15:59 ) from err 13:15:59 E urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='localhost', port=8184): Read timed out. (read timeout=30) 13:15:59 13:15:59 ../.tox/tests71/lib/python3.11/site-packages/urllib3/connectionpool.py:367: ReadTimeoutError 13:15:59 13:15:59 During handling of the above exception, another exception occurred: 13:15:59 13:15:59 self = 13:15:59 13:15:59 def test_01_xpdr_device_connection(self): 13:15:59 > response = test_utils.mount_device("XPDR-A2", 13:15:59 ("xpdra2", self.NODE_VERSION)) 13:15:59 13:15:59 transportpce_tests/7.1/test03_renderer_or_modes.py:72: 13:15:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13:15:59 transportpce_tests/common/test_utils.py:376: in mount_device 13:15:59 response = put_request(url[RESTCONF_VERSION].format('{}', node), body) 13:15:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 13:15:59 transportpce_tests/common/test_utils.py:125: in put_request 13:15:59 return requests.request( 13:15:59 ../.tox/tests71/lib/python3.11/site-packages/requests/api.py:59: in request 13:15:59 return session.request(method=method, url=url, **kwargs) 13:15:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 13:15:59 ../.tox/tests71/lib/python3.11/site-packages/requests/sessions.py:589: in request 13:15:59 resp = self.send(prep, **send_kwargs) 13:15:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 13:15:59 ../.tox/tests71/lib/python3.11/site-packages/requests/sessions.py:703: in send 13:15:59 r = adapter.send(request, **kwargs) 13:15:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 13:15:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13:15:59 13:15:59 self = 13:15:59 request = , stream = False 13:15:59 timeout = Timeout(connect=30, read=30, total=None), verify = True, cert = None 13:15:59 proxies = OrderedDict() 13:15:59 13:15:59 def send( 13:15:59 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 13:15:59 ): 13:15:59 """Sends PreparedRequest object. Returns Response object. 13:15:59 13:15:59 :param request: The :class:`PreparedRequest ` being sent. 13:15:59 :param stream: (optional) Whether to stream the request content. 13:15:59 :param timeout: (optional) How long to wait for the server to send 13:15:59 data before giving up, as a float, or a :ref:`(connect timeout, 13:15:59 read timeout) ` tuple. 13:15:59 :type timeout: float or tuple or urllib3 Timeout object 13:15:59 :param verify: (optional) Either a boolean, in which case it controls whether 13:15:59 we verify the server's TLS certificate, or a string, in which case it 13:15:59 must be a path to a CA bundle to use 13:15:59 :param cert: (optional) Any user-provided SSL certificate to be trusted. 13:15:59 :param proxies: (optional) The proxies dictionary to apply to the request. 13:15:59 :rtype: requests.Response 13:15:59 """ 13:15:59 13:15:59 try: 13:15:59 conn = self.get_connection_with_tls_context( 13:15:59 request, verify, proxies=proxies, cert=cert 13:15:59 ) 13:15:59 except LocationValueError as e: 13:15:59 raise InvalidURL(e, request=request) 13:15:59 13:15:59 self.cert_verify(conn, request.url, verify, cert) 13:15:59 url = self.request_url(request, proxies) 13:15:59 self.add_headers( 13:15:59 request, 13:15:59 stream=stream, 13:15:59 timeout=timeout, 13:15:59 verify=verify, 13:15:59 cert=cert, 13:15:59 proxies=proxies, 13:15:59 ) 13:15:59 13:15:59 chunked = not (request.body is None or "Content-Length" in request.headers) 13:15:59 13:15:59 if isinstance(timeout, tuple): 13:15:59 try: 13:15:59 connect, read = timeout 13:15:59 timeout = TimeoutSauce(connect=connect, read=read) 13:15:59 except ValueError: 13:15:59 raise ValueError( 13:15:59 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 13:15:59 f"or a single float to set both timeouts to the same value." 13:15:59 ) 13:15:59 elif isinstance(timeout, TimeoutSauce): 13:15:59 pass 13:15:59 else: 13:15:59 timeout = TimeoutSauce(connect=timeout, read=timeout) 13:15:59 13:15:59 try: 13:15:59 resp = conn.urlopen( 13:15:59 method=request.method, 13:15:59 url=url, 13:15:59 body=request.body, 13:15:59 headers=request.headers, 13:15:59 redirect=False, 13:15:59 assert_same_host=False, 13:15:59 preload_content=False, 13:15:59 decode_content=False, 13:15:59 retries=self.max_retries, 13:15:59 timeout=timeout, 13:15:59 chunked=chunked, 13:15:59 ) 13:15:59 13:15:59 except (ProtocolError, OSError) as err: 13:15:59 raise ConnectionError(err, request=request) 13:15:59 13:15:59 except MaxRetryError as e: 13:15:59 if isinstance(e.reason, ConnectTimeoutError): 13:15:59 # TODO: Remove this in 3.0.0: see #2811 13:15:59 if not isinstance(e.reason, NewConnectionError): 13:15:59 raise ConnectTimeout(e, request=request) 13:15:59 13:15:59 if isinstance(e.reason, ResponseError): 13:15:59 raise RetryError(e, request=request) 13:15:59 13:15:59 if isinstance(e.reason, _ProxyError): 13:15:59 raise ProxyError(e, request=request) 13:15:59 13:15:59 if isinstance(e.reason, _SSLError): 13:15:59 # This branch is for urllib3 v1.22 and later. 13:15:59 raise SSLError(e, request=request) 13:15:59 13:15:59 raise ConnectionError(e, request=request) 13:15:59 13:15:59 except ClosedPoolError as e: 13:15:59 raise ConnectionError(e, request=request) 13:15:59 13:15:59 except _ProxyError as e: 13:15:59 raise ProxyError(e) 13:15:59 13:15:59 except (_SSLError, _HTTPError) as e: 13:15:59 if isinstance(e, _SSLError): 13:15:59 # This branch is for urllib3 versions earlier than v1.22 13:15:59 raise SSLError(e, request=request) 13:15:59 elif isinstance(e, ReadTimeoutError): 13:15:59 > raise ReadTimeout(e, request=request) 13:15:59 E requests.exceptions.ReadTimeout: HTTPConnectionPool(host='localhost', port=8184): Read timed out. (read timeout=30) 13:15:59 13:15:59 ../.tox/tests71/lib/python3.11/site-packages/requests/adapters.py:690: ReadTimeout 13:15:59 ---------------------------- Captured stdout setup ----------------------------- 13:15:59 starting OpenDaylight... 13:15:59 starting KARAF (karaf71) TransportPCE build... 13:15:59 Searching for patterns in karaf.log... Pattern found! OpenDaylight started ! 13:15:59 starting simulator xpdra2 in OpenROADM device version 7.1... 13:15:59 Searching for patterns in xpdra2-71.log... Pattern found! simulator for xpdra2 started 13:15:59 starting simulator xpdrc2 in OpenROADM device version 7.1... 13:15:59 Searching for patterns in xpdrc2-71.log... Pattern found! simulator for xpdrc2 started 13:15:59 ----------------------------- Captured stdout call ----------------------------- 13:15:59 execution of test_01_xpdr_device_connection 13:15:59 =========================== short test summary info ============================ 13:15:59 FAILED transportpce_tests/7.1/test03_renderer_or_modes.py::TestTransportPCERendererOrModes::test_01_xpdr_device_connection 13:15:59 1 failed, 47 passed in 200.70s (0:03:20) 13:15:59 tests71: exit 1 (420.23 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 7.1 pid=12996 13:16:02 ....... [100%] 13:16:29 36 passed in 348.60s (0:05:48) 13:16:29 pytest -q transportpce_tests/tapi/test03_tapi_device_change_notifications.py 13:16:36 ...... [100%] 13:16:50 =================================== FAILURES =================================== 13:16:50 _______________ TestTransportOlm.test_01_xpdrA_device_connected ________________ 13:16:50 13:16:50 self = 13:16:50 conn = 13:16:50 method = 'PUT' 13:16:50 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDRA01' 13:16:50 body = '{"node": [{"node-id": "XPDRA01", "netconf-node-topology:netconf-node": {"netconf-node-topology:host": "127.0.0.1", "n...ff-millis": 1800000, "netconf-node-topology:backoff-multiplier": 1.5, "netconf-node-topology:keepalive-delay": 120}}]}' 13:16:50 headers = {'User-Agent': 'python-requests/2.32.5', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '709', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 13:16:50 retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) 13:16:50 timeout = Timeout(connect=30, read=30, total=None), chunked = False 13:16:50 response_conn = 13:16:50 preload_content = False, decode_content = False, enforce_content_length = True 13:16:50 13:16:50 def _make_request( 13:16:50 self, 13:16:50 conn: BaseHTTPConnection, 13:16:50 method: str, 13:16:50 url: str, 13:16:50 body: _TYPE_BODY | None = None, 13:16:50 headers: typing.Mapping[str, str] | None = None, 13:16:50 retries: Retry | None = None, 13:16:50 timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 13:16:50 chunked: bool = False, 13:16:50 response_conn: BaseHTTPConnection | None = None, 13:16:50 preload_content: bool = True, 13:16:50 decode_content: bool = True, 13:16:50 enforce_content_length: bool = True, 13:16:50 ) -> BaseHTTPResponse: 13:16:50 """ 13:16:50 Perform a request on a given urllib connection object taken from our 13:16:50 pool. 13:16:50 13:16:50 :param conn: 13:16:50 a connection from one of our connection pools 13:16:50 13:16:50 :param method: 13:16:50 HTTP request method (such as GET, POST, PUT, etc.) 13:16:50 13:16:50 :param url: 13:16:50 The URL to perform the request on. 13:16:50 13:16:50 :param body: 13:16:50 Data to send in the request body, either :class:`str`, :class:`bytes`, 13:16:50 an iterable of :class:`str`/:class:`bytes`, or a file-like object. 13:16:50 13:16:50 :param headers: 13:16:50 Dictionary of custom headers to send, such as User-Agent, 13:16:50 If-None-Match, etc. If None, pool headers are used. If provided, 13:16:50 these headers completely replace any pool-specific headers. 13:16:50 13:16:50 :param retries: 13:16:50 Configure the number of retries to allow before raising a 13:16:50 :class:`~urllib3.exceptions.MaxRetryError` exception. 13:16:50 13:16:50 Pass ``None`` to retry until you receive a response. Pass a 13:16:50 :class:`~urllib3.util.retry.Retry` object for fine-grained control 13:16:50 over different types of retries. 13:16:50 Pass an integer number to retry connection errors that many times, 13:16:50 but no other types of errors. Pass zero to never retry. 13:16:50 13:16:50 If ``False``, then retries are disabled and any exception is raised 13:16:50 immediately. Also, instead of raising a MaxRetryError on redirects, 13:16:50 the redirect response will be returned. 13:16:50 13:16:50 :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 13:16:50 13:16:50 :param timeout: 13:16:50 If specified, overrides the default timeout for this one 13:16:50 request. It may be a float (in seconds) or an instance of 13:16:50 :class:`urllib3.util.Timeout`. 13:16:50 13:16:50 :param chunked: 13:16:50 If True, urllib3 will send the body using chunked transfer 13:16:50 encoding. Otherwise, urllib3 will send the body using the standard 13:16:50 content-length form. Defaults to False. 13:16:50 13:16:50 :param response_conn: 13:16:50 Set this to ``None`` if you will handle releasing the connection or 13:16:50 set the connection to have the response release it. 13:16:50 13:16:50 :param preload_content: 13:16:50 If True, the response's body will be preloaded during construction. 13:16:50 13:16:50 :param decode_content: 13:16:50 If True, will attempt to decode the body based on the 13:16:50 'content-encoding' header. 13:16:50 13:16:50 :param enforce_content_length: 13:16:50 Enforce content length checking. Body returned by server must match 13:16:50 value of Content-Length header, if present. Otherwise, raise error. 13:16:50 """ 13:16:50 self.num_requests += 1 13:16:50 13:16:50 timeout_obj = self._get_timeout(timeout) 13:16:50 timeout_obj.start_connect() 13:16:50 conn.timeout = Timeout.resolve_default_timeout(timeout_obj.connect_timeout) 13:16:50 13:16:50 try: 13:16:50 # Trigger any extra validation we need to do. 13:16:50 try: 13:16:50 self._validate_conn(conn) 13:16:50 except (SocketTimeout, BaseSSLError) as e: 13:16:50 self._raise_timeout(err=e, url=url, timeout_value=conn.timeout) 13:16:50 raise 13:16:50 13:16:50 # _validate_conn() starts the connection to an HTTPS proxy 13:16:50 # so we need to wrap errors with 'ProxyError' here too. 13:16:50 except ( 13:16:50 OSError, 13:16:50 NewConnectionError, 13:16:50 TimeoutError, 13:16:50 BaseSSLError, 13:16:50 CertificateError, 13:16:50 SSLError, 13:16:50 ) as e: 13:16:50 new_e: Exception = e 13:16:50 if isinstance(e, (BaseSSLError, CertificateError)): 13:16:50 new_e = SSLError(e) 13:16:50 # If the connection didn't successfully connect to it's proxy 13:16:50 # then there 13:16:50 if isinstance( 13:16:50 new_e, (OSError, NewConnectionError, TimeoutError, SSLError) 13:16:50 ) and (conn and conn.proxy and not conn.has_connected_to_proxy): 13:16:50 new_e = _wrap_proxy_error(new_e, conn.proxy.scheme) 13:16:50 raise new_e 13:16:50 13:16:50 # conn.request() calls http.client.*.request, not the method in 13:16:50 # urllib3.request. It also calls makefile (recv) on the socket. 13:16:50 try: 13:16:50 conn.request( 13:16:50 method, 13:16:50 url, 13:16:50 body=body, 13:16:50 headers=headers, 13:16:50 chunked=chunked, 13:16:50 preload_content=preload_content, 13:16:50 decode_content=decode_content, 13:16:50 enforce_content_length=enforce_content_length, 13:16:50 ) 13:16:50 13:16:50 # We are swallowing BrokenPipeError (errno.EPIPE) since the server is 13:16:50 # legitimately able to close the connection after sending a valid response. 13:16:50 # With this behaviour, the received response is still readable. 13:16:50 except BrokenPipeError: 13:16:50 pass 13:16:50 except OSError as e: 13:16:50 # MacOS/Linux 13:16:50 # EPROTOTYPE and ECONNRESET are needed on macOS 13:16:50 # https://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/ 13:16:50 # Condition changed later to emit ECONNRESET instead of only EPROTOTYPE. 13:16:50 if e.errno != errno.EPROTOTYPE and e.errno != errno.ECONNRESET: 13:16:50 raise 13:16:50 13:16:50 # Reset the timeout for the recv() on the socket 13:16:50 read_timeout = timeout_obj.read_timeout 13:16:50 13:16:50 if not conn.is_closed: 13:16:50 # In Python 3 socket.py will catch EAGAIN and return None when you 13:16:50 # try and read into the file pointer created by http.client, which 13:16:50 # instead raises a BadStatusLine exception. Instead of catching 13:16:50 # the exception and assuming all BadStatusLine exceptions are read 13:16:50 # timeouts, check for a zero timeout before making the request. 13:16:50 if read_timeout == 0: 13:16:50 raise ReadTimeoutError( 13:16:50 self, url, f"Read timed out. (read timeout={read_timeout})" 13:16:50 ) 13:16:50 conn.timeout = read_timeout 13:16:50 13:16:50 # Receive the response from the server 13:16:50 try: 13:16:50 > response = conn.getresponse() 13:16:50 ^^^^^^^^^^^^^^^^^^ 13:16:50 13:16:50 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:534: 13:16:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13:16:50 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connection.py:571: in getresponse 13:16:50 httplib_response = super().getresponse() 13:16:50 ^^^^^^^^^^^^^^^^^^^^^ 13:16:50 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:1395: in getresponse 13:16:50 response.begin() 13:16:50 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:325: in begin 13:16:50 version, status, reason = self._read_status() 13:16:50 ^^^^^^^^^^^^^^^^^^^ 13:16:50 /opt/pyenv/versions/3.11.10/lib/python3.11/http/client.py:286: in _read_status 13:16:50 line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 13:16:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 13:16:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13:16:50 13:16:50 self = 13:16:50 b = 13:16:50 13:16:50 def readinto(self, b): 13:16:50 """Read up to len(b) bytes into the writable buffer *b* and return 13:16:50 the number of bytes read. If the socket is non-blocking and no bytes 13:16:50 are available, None is returned. 13:16:50 13:16:50 If *b* is non-empty, a 0 return value indicates that the connection 13:16:50 was shutdown at the other end. 13:16:50 """ 13:16:50 self._checkClosed() 13:16:50 self._checkReadable() 13:16:50 if self._timeout_occurred: 13:16:50 raise OSError("cannot read from timed out object") 13:16:50 while True: 13:16:50 try: 13:16:50 > return self._sock.recv_into(b) 13:16:50 ^^^^^^^^^^^^^^^^^^^^^^^ 13:16:50 E TimeoutError: timed out 13:16:50 13:16:50 /opt/pyenv/versions/3.11.10/lib/python3.11/socket.py:718: TimeoutError 13:16:50 13:16:50 The above exception was the direct cause of the following exception: 13:16:50 13:16:50 self = 13:16:50 request = , stream = False 13:16:50 timeout = Timeout(connect=30, read=30, total=None), verify = True, cert = None 13:16:50 proxies = OrderedDict() 13:16:50 13:16:50 def send( 13:16:50 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 13:16:50 ): 13:16:50 """Sends PreparedRequest object. Returns Response object. 13:16:50 13:16:50 :param request: The :class:`PreparedRequest ` being sent. 13:16:50 :param stream: (optional) Whether to stream the request content. 13:16:50 :param timeout: (optional) How long to wait for the server to send 13:16:50 data before giving up, as a float, or a :ref:`(connect timeout, 13:16:50 read timeout) ` tuple. 13:16:50 :type timeout: float or tuple or urllib3 Timeout object 13:16:50 :param verify: (optional) Either a boolean, in which case it controls whether 13:16:50 we verify the server's TLS certificate, or a string, in which case it 13:16:50 must be a path to a CA bundle to use 13:16:50 :param cert: (optional) Any user-provided SSL certificate to be trusted. 13:16:50 :param proxies: (optional) The proxies dictionary to apply to the request. 13:16:50 :rtype: requests.Response 13:16:50 """ 13:16:50 13:16:50 try: 13:16:50 conn = self.get_connection_with_tls_context( 13:16:50 request, verify, proxies=proxies, cert=cert 13:16:50 ) 13:16:50 except LocationValueError as e: 13:16:50 raise InvalidURL(e, request=request) 13:16:50 13:16:50 self.cert_verify(conn, request.url, verify, cert) 13:16:50 url = self.request_url(request, proxies) 13:16:50 self.add_headers( 13:16:50 request, 13:16:50 stream=stream, 13:16:50 timeout=timeout, 13:16:50 verify=verify, 13:16:50 cert=cert, 13:16:50 proxies=proxies, 13:16:50 ) 13:16:50 13:16:50 chunked = not (request.body is None or "Content-Length" in request.headers) 13:16:50 13:16:50 if isinstance(timeout, tuple): 13:16:50 try: 13:16:50 connect, read = timeout 13:16:50 timeout = TimeoutSauce(connect=connect, read=read) 13:16:50 except ValueError: 13:16:50 raise ValueError( 13:16:50 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 13:16:50 f"or a single float to set both timeouts to the same value." 13:16:50 ) 13:16:50 elif isinstance(timeout, TimeoutSauce): 13:16:50 pass 13:16:50 else: 13:16:50 timeout = TimeoutSauce(connect=timeout, read=timeout) 13:16:50 13:16:50 try: 13:16:50 > resp = conn.urlopen( 13:16:50 method=request.method, 13:16:50 url=url, 13:16:50 body=request.body, 13:16:50 headers=request.headers, 13:16:50 redirect=False, 13:16:50 assert_same_host=False, 13:16:50 preload_content=False, 13:16:50 decode_content=False, 13:16:50 retries=self.max_retries, 13:16:50 timeout=timeout, 13:16:50 chunked=chunked, 13:16:50 ) 13:16:50 13:16:50 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:644: 13:16:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13:16:50 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:841: in urlopen 13:16:50 retries = retries.increment( 13:16:50 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/retry.py:490: in increment 13:16:50 raise reraise(type(error), error, _stacktrace) 13:16:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 13:16:50 ../.tox/tests121/lib/python3.11/site-packages/urllib3/util/util.py:39: in reraise 13:16:50 raise value 13:16:50 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:787: in urlopen 13:16:50 response = self._make_request( 13:16:50 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:536: in _make_request 13:16:50 self._raise_timeout(err=e, url=url, timeout_value=read_timeout) 13:16:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13:16:50 13:16:50 self = 13:16:50 err = TimeoutError('timed out') 13:16:50 url = '/rests/data/network-topology:network-topology/topology=topology-netconf/node=XPDRA01' 13:16:50 timeout_value = 30 13:16:50 13:16:50 def _raise_timeout( 13:16:50 self, 13:16:50 err: BaseSSLError | OSError | SocketTimeout, 13:16:50 url: str, 13:16:50 timeout_value: _TYPE_TIMEOUT | None, 13:16:50 ) -> None: 13:16:50 """Is the error actually a timeout? Will raise a ReadTimeout or pass""" 13:16:50 13:16:50 if isinstance(err, SocketTimeout): 13:16:50 > raise ReadTimeoutError( 13:16:50 self, url, f"Read timed out. (read timeout={timeout_value})" 13:16:50 ) from err 13:16:50 E urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='localhost', port=8191): Read timed out. (read timeout=30) 13:16:50 13:16:50 ../.tox/tests121/lib/python3.11/site-packages/urllib3/connectionpool.py:367: ReadTimeoutError 13:16:50 13:16:50 During handling of the above exception, another exception occurred: 13:16:50 13:16:50 self = 13:16:50 13:16:50 def test_01_xpdrA_device_connected(self): 13:16:50 > response = test_utils.mount_device("XPDRA01", ('xpdra', self.NODE_VERSION)) 13:16:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 13:16:50 13:16:50 transportpce_tests/1.2.1/test05_olm.py:53: 13:16:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13:16:50 transportpce_tests/common/test_utils.py:376: in mount_device 13:16:50 response = put_request(url[RESTCONF_VERSION].format('{}', node), body) 13:16:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 13:16:50 transportpce_tests/common/test_utils.py:125: in put_request 13:16:50 return requests.request( 13:16:50 ../.tox/tests121/lib/python3.11/site-packages/requests/api.py:59: in request 13:16:50 return session.request(method=method, url=url, **kwargs) 13:16:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 13:16:50 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:589: in request 13:16:50 resp = self.send(prep, **send_kwargs) 13:16:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 13:16:50 ../.tox/tests121/lib/python3.11/site-packages/requests/sessions.py:703: in send 13:16:50 r = adapter.send(request, **kwargs) 13:16:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 13:16:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13:16:50 13:16:50 self = 13:16:50 request = , stream = False 13:16:50 timeout = Timeout(connect=30, read=30, total=None), verify = True, cert = None 13:16:50 proxies = OrderedDict() 13:16:50 13:16:50 def send( 13:16:50 self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None 13:16:50 ): 13:16:50 """Sends PreparedRequest object. Returns Response object. 13:16:50 13:16:50 :param request: The :class:`PreparedRequest ` being sent. 13:16:50 :param stream: (optional) Whether to stream the request content. 13:16:50 :param timeout: (optional) How long to wait for the server to send 13:16:50 data before giving up, as a float, or a :ref:`(connect timeout, 13:16:50 read timeout) ` tuple. 13:16:50 :type timeout: float or tuple or urllib3 Timeout object 13:16:50 :param verify: (optional) Either a boolean, in which case it controls whether 13:16:50 we verify the server's TLS certificate, or a string, in which case it 13:16:50 must be a path to a CA bundle to use 13:16:50 :param cert: (optional) Any user-provided SSL certificate to be trusted. 13:16:50 :param proxies: (optional) The proxies dictionary to apply to the request. 13:16:50 :rtype: requests.Response 13:16:50 """ 13:16:50 13:16:50 try: 13:16:50 conn = self.get_connection_with_tls_context( 13:16:50 request, verify, proxies=proxies, cert=cert 13:16:50 ) 13:16:50 except LocationValueError as e: 13:16:50 raise InvalidURL(e, request=request) 13:16:50 13:16:50 self.cert_verify(conn, request.url, verify, cert) 13:16:50 url = self.request_url(request, proxies) 13:16:50 self.add_headers( 13:16:50 request, 13:16:50 stream=stream, 13:16:50 timeout=timeout, 13:16:50 verify=verify, 13:16:50 cert=cert, 13:16:50 proxies=proxies, 13:16:50 ) 13:16:50 13:16:50 chunked = not (request.body is None or "Content-Length" in request.headers) 13:16:50 13:16:50 if isinstance(timeout, tuple): 13:16:50 try: 13:16:50 connect, read = timeout 13:16:50 timeout = TimeoutSauce(connect=connect, read=read) 13:16:50 except ValueError: 13:16:50 raise ValueError( 13:16:50 f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " 13:16:50 f"or a single float to set both timeouts to the same value." 13:16:50 ) 13:16:50 elif isinstance(timeout, TimeoutSauce): 13:16:50 pass 13:16:50 else: 13:16:50 timeout = TimeoutSauce(connect=timeout, read=timeout) 13:16:50 13:16:50 try: 13:16:50 resp = conn.urlopen( 13:16:50 method=request.method, 13:16:50 url=url, 13:16:50 body=request.body, 13:16:50 headers=request.headers, 13:16:50 redirect=False, 13:16:50 assert_same_host=False, 13:16:50 preload_content=False, 13:16:50 decode_content=False, 13:16:50 retries=self.max_retries, 13:16:50 timeout=timeout, 13:16:50 chunked=chunked, 13:16:50 ) 13:16:50 13:16:50 except (ProtocolError, OSError) as err: 13:16:50 raise ConnectionError(err, request=request) 13:16:50 13:16:50 except MaxRetryError as e: 13:16:50 if isinstance(e.reason, ConnectTimeoutError): 13:16:50 # TODO: Remove this in 3.0.0: see #2811 13:16:50 if not isinstance(e.reason, NewConnectionError): 13:16:50 raise ConnectTimeout(e, request=request) 13:16:50 13:16:50 if isinstance(e.reason, ResponseError): 13:16:50 raise RetryError(e, request=request) 13:16:50 13:16:50 if isinstance(e.reason, _ProxyError): 13:16:50 raise ProxyError(e, request=request) 13:16:50 13:16:50 if isinstance(e.reason, _SSLError): 13:16:50 # This branch is for urllib3 v1.22 and later. 13:16:50 raise SSLError(e, request=request) 13:16:50 13:16:50 raise ConnectionError(e, request=request) 13:16:50 13:16:50 except ClosedPoolError as e: 13:16:50 raise ConnectionError(e, request=request) 13:16:50 13:16:50 except _ProxyError as e: 13:16:50 raise ProxyError(e) 13:16:50 13:16:50 except (_SSLError, _HTTPError) as e: 13:16:50 if isinstance(e, _SSLError): 13:16:50 # This branch is for urllib3 versions earlier than v1.22 13:16:50 raise SSLError(e, request=request) 13:16:50 elif isinstance(e, ReadTimeoutError): 13:16:50 > raise ReadTimeout(e, request=request) 13:16:50 E requests.exceptions.ReadTimeout: HTTPConnectionPool(host='localhost', port=8191): Read timed out. (read timeout=30) 13:16:50 13:16:50 ../.tox/tests121/lib/python3.11/site-packages/requests/adapters.py:690: ReadTimeout 13:16:50 ---------------------------- Captured stdout setup ----------------------------- 13:16:50 starting OpenDaylight... 13:16:50 starting KARAF (karaf121) TransportPCE build... 13:16:50 Searching for patterns in karaf.log... Pattern found! OpenDaylight started ! 13:16:50 starting simulator xpdra in OpenROADM device version 1.2.1... 13:16:50 Searching for patterns in xpdra-121.log... Pattern found! simulator for xpdra started 13:16:50 starting simulator roadma-full in OpenROADM device version 1.2.1... 13:16:50 Searching for patterns in roadma-121.log... Pattern found! simulator for roadma-full started 13:16:50 starting simulator roadmc-full in OpenROADM device version 1.2.1... 13:16:50 Searching for patterns in roadmc-121.log... Pattern found! simulator for roadmc-full started 13:16:50 starting simulator xpdrc in OpenROADM device version 1.2.1... 13:16:50 Searching for patterns in xpdrc-121.log... Pattern found! simulator for xpdrc started 13:16:50 ----------------------------- Captured stdout call ----------------------------- 13:16:50 execution of test_01_xpdrA_device_connected 13:16:50 =========================== short test summary info ============================ 13:16:50 FAILED transportpce_tests/1.2.1/test05_olm.py::TestTransportOlm::test_01_xpdrA_device_connected 13:16:50 1 failed, 39 passed in 242.62s (0:04:02) 13:16:50 tests71: FAIL ✖ in 7 minutes 10.4 seconds 13:16:50 tests121: exit 1 (694.36 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 1.2.1 pid=7615 13:17:22 ....................................................................... [100%] 13:24:53 71 passed in 503.93s (0:08:23) 13:24:53 pytest -q transportpce_tests/tapi/test04_topo_extension.py 13:25:52 ................... [100%] 13:27:24 19 passed in 150.10s (0:02:30) 13:27:24 pytest -q transportpce_tests/tapi/test05_pce_tapi.py 13:29:32 ...................... [100%] 13:35:08 22 passed in 464.47s (0:07:44) 13:35:09 tests121: FAIL ✖ in 11 minutes 43.3 seconds 13:35:09 tests_tapi: OK ✔ in 30 minutes 1.94 seconds 13:35:09 tests221: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 13:35:16 tests221: freeze> python -m pip freeze --all 13:35:16 tests221: bcrypt==5.0.0,certifi==2026.1.4,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.5,dict2xml==1.7.8,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==26.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.19.2,PyNaCl==1.6.2,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.3 13:35:16 tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 2.2.1 13:35:16 using environment variables from ./karaf221.env 13:35:16 pytest -q transportpce_tests/2.2.1/test01_portmapping.py 13:35:56 ................................... [100%] 13:36:37 35 passed in 80.35s (0:01:20) 13:36:37 pytest -q transportpce_tests/2.2.1/test02_topo_portmapping.py 13:37:11 ...... [100%] 13:37:26 6 passed in 48.68s 13:37:26 pytest -q transportpce_tests/2.2.1/test03_topology.py 13:38:11 ............................................ [100%] 13:39:47 44 passed in 140.65s (0:02:20) 13:39:47 pytest -q transportpce_tests/2.2.1/test04_otn_topology.py 13:40:26 ............ [100%] 13:40:50 12 passed in 63.43s (0:01:03) 13:40:50 pytest -q transportpce_tests/2.2.1/test05_flex_grid.py 13:41:19 ................ [100%] 13:42:48 16 passed in 117.45s (0:01:57) 13:42:48 pytest -q transportpce_tests/2.2.1/test06_renderer_service_path_nominal.py 13:43:23 ............................... [100%] 13:43:30 31 passed in 41.72s 13:43:30 pytest -q transportpce_tests/2.2.1/test07_otn_renderer.py 13:44:08 .......................... [100%] 13:45:04 26 passed in 93.22s (0:01:33) 13:45:04 pytest -q transportpce_tests/2.2.1/test08_otn_sh_renderer.py 13:45:45 ...................... [100%] 13:46:49 22 passed in 104.98s (0:01:44) 13:46:49 pytest -q transportpce_tests/2.2.1/test09_olm.py 13:47:33 ........................................ [100%] 13:49:56 40 passed in 187.14s (0:03:07) 13:49:56 pytest -q transportpce_tests/2.2.1/test11_otn_end2end.py 13:50:44 ........................................................................ [ 74%] 13:56:21 ......................... [100%] 13:58:13 97 passed in 496.36s (0:08:16) 13:58:13 pytest -q transportpce_tests/2.2.1/test12_end2end.py 13:58:57 ...................................................... [100%] 14:05:46 54 passed in 452.24s (0:07:32) 14:05:46 pytest -q transportpce_tests/2.2.1/test14_otn_switch_end2end.py 14:06:45 ........................................................................ [ 71%] 14:11:55 ............................. [100%] 14:17:04 101 passed in 677.64s (0:11:17) 14:17:04 pytest -q transportpce_tests/2.2.1/test15_otn_end2end_with_intermediate_switch.py 14:18:01 ........................................................................ [ 67%] 14:23:48 ................................... [100%] 14:30:08 107 passed in 784.11s (0:13:04) 14:30:08 pytest -q transportpce_tests/2.2.1/test16_freq_end2end.py 14:30:53 ............................................. [100%] 14:33:31 45 passed in 202.62s (0:03:22) 14:33:31 tests221: OK ✔ in 58 minutes 22.65 seconds 14:33:31 tests_hybrid: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 14:33:38 tests_hybrid: freeze> python -m pip freeze --all 14:33:38 tests_hybrid: bcrypt==5.0.0,certifi==2026.1.4,cffi==2.0.0,charset-normalizer==3.4.4,cryptography==46.0.5,dict2xml==1.7.8,idna==3.11,iniconfig==2.3.0,invoke==2.2.1,lxml==6.0.2,netconf-client==3.5.0,packaging==26.0,paramiko==4.0.0,pip==25.3,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.19.2,PyNaCl==1.6.2,pytest==9.0.2,requests==2.32.5,setuptools==80.9.0,urllib3==2.6.3 14:33:38 tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid 14:33:38 using environment variables from ./karaf221.env 14:33:38 pytest -q transportpce_tests/hybrid/test01_device_change_notifications.py 14:34:20 ................................................... [100%] 14:36:08 51 passed in 149.42s (0:02:29) 14:36:08 pytest -q transportpce_tests/hybrid/test02_B100G_end2end.py 14:36:53 ........................................................................ [ 66%] 14:41:14 ..................................... [100%] 14:43:20 109 passed in 432.26s (0:07:12) 14:43:20 pytest -q transportpce_tests/hybrid/test03_autonomous_reroute.py 14:44:12 ..................................................... [100%] 14:47:46 53 passed in 264.88s (0:04:24) 14:47:46 buildcontroller: OK (151.42=setup[10.06]+cmd[141.36] seconds) 14:47:46 sims: OK (20.75=setup[17.63]+cmd[3.12] seconds) 14:47:46 build_karaf_tests121: OK (115.01=setup[27.16]+cmd[87.85] seconds) 14:47:46 testsPCE: OK (321.24=setup[86.54]+cmd[234.70] seconds) 14:47:46 tests121: FAIL code 1 (703.30=setup[8.94]+cmd[694.36] seconds) 14:47:46 build_karaf_tests221: OK (109.85=setup[27.27]+cmd[82.58] seconds) 14:47:46 tests_tapi: OK (1801.94=setup[8.89]+cmd[1793.04] seconds) 14:47:46 tests221: OK (3502.65=setup[7.54]+cmd[3495.11] seconds) 14:47:46 build_karaf_tests71: OK (115.00=setup[27.36]+cmd[87.64] seconds) 14:47:46 tests71: FAIL code 1 (430.40=setup[10.17]+cmd[420.23] seconds) 14:47:46 build_karaf_tests190: OK (109.80=setup[27.40]+cmd[82.39] seconds) 14:47:46 tests190: OK (222.52=setup[8.99]+cmd[213.53] seconds) 14:47:46 tests_hybrid: OK (854.55=setup[7.00]+cmd[847.55] seconds) 14:47:46 buildlighty: OK (37.48=setup[17.31]+cmd[20.17] seconds) 14:47:46 docs: OK (35.59=setup[33.38]+cmd[2.22] seconds) 14:47:46 docs-linkcheck: OK (37.03=setup[33.79]+cmd[3.24] seconds) 14:47:46 checkbashisms: OK (3.38=setup[1.96]+cmd[0.02,0.08,1.33] seconds) 14:47:46 pre-commit: OK (49.35=setup[3.34]+cmd[0.01,0.00,39.10,6.90] seconds) 14:47:46 pylint: OK (26.34=setup[3.24]+cmd[23.10] seconds) 14:47:46 evaluation failed :( (6746.85 seconds) 14:47:46 + tox_status=255 14:47:46 + echo '---> Completed tox runs' 14:47:46 ---> Completed tox runs 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/build_karaf_tests121/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=build_karaf_tests121 14:47:46 + cp -r .tox/build_karaf_tests121/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests121 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/build_karaf_tests190/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=build_karaf_tests190 14:47:46 + cp -r .tox/build_karaf_tests190/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests190 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/build_karaf_tests221/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=build_karaf_tests221 14:47:46 + cp -r .tox/build_karaf_tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests221 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/build_karaf_tests71/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=build_karaf_tests71 14:47:46 + cp -r .tox/build_karaf_tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests71 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/buildcontroller/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=buildcontroller 14:47:46 + cp -r .tox/buildcontroller/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildcontroller 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/buildlighty/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=buildlighty 14:47:46 + cp -r .tox/buildlighty/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildlighty 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/checkbashisms/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=checkbashisms 14:47:46 + cp -r .tox/checkbashisms/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/checkbashisms 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/docs-linkcheck/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=docs-linkcheck 14:47:46 + cp -r .tox/docs-linkcheck/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs-linkcheck 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/docs/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=docs 14:47:46 + cp -r .tox/docs/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/pre-commit/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=pre-commit 14:47:46 + cp -r .tox/pre-commit/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pre-commit 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/pylint/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=pylint 14:47:46 + cp -r .tox/pylint/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pylint 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/sims/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=sims 14:47:46 + cp -r .tox/sims/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/sims 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/tests121/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=tests121 14:47:46 + cp -r .tox/tests121/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests121 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/tests190/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=tests190 14:47:46 + cp -r .tox/tests190/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests190 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/tests221/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=tests221 14:47:46 + cp -r .tox/tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests221 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/tests71/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=tests71 14:47:46 + cp -r .tox/tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests71 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/testsPCE/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=testsPCE 14:47:46 + cp -r .tox/testsPCE/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/testsPCE 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/tests_hybrid/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=tests_hybrid 14:47:46 + cp -r .tox/tests_hybrid/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_hybrid 14:47:46 + for i in .tox/*/log 14:47:46 ++ echo .tox/tests_tapi/log 14:47:46 ++ awk -F/ '{print $2}' 14:47:46 + tox_env=tests_tapi 14:47:46 + cp -r .tox/tests_tapi/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_tapi 14:47:46 + DOC_DIR=docs/_build/html 14:47:46 + [[ -d docs/_build/html ]] 14:47:46 + echo '---> Archiving generated docs' 14:47:46 ---> Archiving generated docs 14:47:46 + mv docs/_build/html /w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 14:47:46 + echo '---> tox-run.sh ends' 14:47:46 ---> tox-run.sh ends 14:47:46 + test 255 -eq 0 14:47:46 + exit 255 14:47:46 ++ '[' 1 = 1 ']' 14:47:46 ++ '[' -x /usr/bin/clear_console ']' 14:47:46 ++ /usr/bin/clear_console -q 14:47:46 Build step 'Execute shell' marked build as failure 14:47:46 $ ssh-agent -k 14:47:46 unset SSH_AUTH_SOCK; 14:47:46 unset SSH_AGENT_PID; 14:47:46 echo Agent pid 1583 killed; 14:47:46 [ssh-agent] Stopped. 14:47:46 [PostBuildScript] - [INFO] Executing post build scripts. 14:47:46 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins16529894097294385825.sh 14:47:46 ---> sysstat.sh 14:47:47 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins301987853162623628.sh 14:47:47 ---> package-listing.sh 14:47:47 ++ facter osfamily 14:47:47 ++ tr '[:upper:]' '[:lower:]' 14:47:47 + OS_FAMILY=debian 14:47:47 + workspace=/w/workspace/transportpce-tox-verify-transportpce-master 14:47:47 + START_PACKAGES=/tmp/packages_start.txt 14:47:47 + END_PACKAGES=/tmp/packages_end.txt 14:47:47 + DIFF_PACKAGES=/tmp/packages_diff.txt 14:47:47 + PACKAGES=/tmp/packages_start.txt 14:47:47 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 14:47:47 + PACKAGES=/tmp/packages_end.txt 14:47:47 + case "${OS_FAMILY}" in 14:47:47 + dpkg -l 14:47:47 + grep '^ii' 14:47:47 + '[' -f /tmp/packages_start.txt ']' 14:47:47 + '[' -f /tmp/packages_end.txt ']' 14:47:47 + diff /tmp/packages_start.txt /tmp/packages_end.txt 14:47:47 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 14:47:47 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 14:47:47 + cp -f /tmp/packages_diff.txt /tmp/packages_end.txt /tmp/packages_start.txt /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 14:47:47 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins6961686367926667193.sh 14:47:47 ---> capture-instance-metadata.sh 14:47:47 Setup pyenv: 14:47:47 system 14:47:47 3.8.20 14:47:47 3.9.20 14:47:47 3.10.15 14:47:47 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 14:47:47 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-wTqG from file:/tmp/.os_lf_venv 14:47:47 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 14:47:47 lf-activate-venv(): INFO: Attempting to install with network-safe options... 14:47:50 lf-activate-venv(): INFO: Base packages installed successfully 14:47:50 lf-activate-venv(): INFO: Installing additional packages: lftools 14:48:02 lf-activate-venv(): INFO: Adding /tmp/venv-wTqG/bin to PATH 14:48:02 INFO: Running in OpenStack, capturing instance metadata 14:48:02 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins27761093283097594.sh 14:48:02 provisioning config files... 14:48:03 Could not find credentials [logs] for transportpce-tox-verify-transportpce-master #4300 14:48:03 copy managed file [jenkins-log-archives-settings] to file:/w/workspace/transportpce-tox-verify-transportpce-master@tmp/config5425429450257496566tmp 14:48:03 Regular expression run condition: Expression=[^.*logs-s3.*], Label=[odl-logs-s3-cloudfront-index] 14:48:03 Run condition [Regular expression match] enabling perform for step [Provide Configuration files] 14:48:03 provisioning config files... 14:48:03 copy managed file [jenkins-s3-log-ship] to file:/home/jenkins/.aws/credentials 14:48:03 [EnvInject] - Injecting environment variables from a build step. 14:48:03 [EnvInject] - Injecting as environment variables the properties content 14:48:03 SERVER_ID=logs 14:48:03 14:48:03 [EnvInject] - Variables injected successfully. 14:48:03 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins1374238389263572802.sh 14:48:03 ---> create-netrc.sh 14:48:03 WARN: Log server credential not found. 14:48:03 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins7899490864396119054.sh 14:48:03 ---> python-tools-install.sh 14:48:03 Setup pyenv: 14:48:03 system 14:48:03 3.8.20 14:48:03 3.9.20 14:48:03 3.10.15 14:48:03 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 14:48:03 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-wTqG from file:/tmp/.os_lf_venv 14:48:03 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 14:48:03 lf-activate-venv(): INFO: Attempting to install with network-safe options... 14:48:05 lf-activate-venv(): INFO: Base packages installed successfully 14:48:05 lf-activate-venv(): INFO: Installing additional packages: lftools 14:48:14 lf-activate-venv(): INFO: Adding /tmp/venv-wTqG/bin to PATH 14:48:15 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins15723350568460922325.sh 14:48:15 ---> sudo-logs.sh 14:48:15 Archiving 'sudo' log.. 14:48:15 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins14423872785613923869.sh 14:48:15 ---> job-cost.sh 14:48:15 Setup pyenv: 14:48:15 system 14:48:15 3.8.20 14:48:15 3.9.20 14:48:15 3.10.15 14:48:15 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 14:48:15 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-wTqG from file:/tmp/.os_lf_venv 14:48:15 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 14:48:15 lf-activate-venv(): INFO: Attempting to install with network-safe options... 14:48:17 lf-activate-venv(): INFO: Base packages installed successfully 14:48:17 lf-activate-venv(): INFO: Installing additional packages: zipp==1.1.0 python-openstackclient urllib3~=1.26.15 14:48:24 lf-activate-venv(): INFO: Adding /tmp/venv-wTqG/bin to PATH 14:48:24 INFO: No Stack... 14:48:24 INFO: Retrieving Pricing Info for: v3-standard-4 14:48:36 INFO: Archiving Costs 14:48:36 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins12755582169062539032.sh 14:48:36 ---> logs-deploy.sh 14:48:36 Setup pyenv: 14:48:36 system 14:48:36 3.8.20 14:48:36 3.9.20 14:48:36 3.10.15 14:48:36 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 14:48:36 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-wTqG from file:/tmp/.os_lf_venv 14:48:36 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 14:48:36 lf-activate-venv(): INFO: Attempting to install with network-safe options... 14:48:38 lf-activate-venv(): INFO: Base packages installed successfully 14:48:38 lf-activate-venv(): INFO: Installing additional packages: lftools urllib3~=1.26.15 14:48:48 lf-activate-venv(): INFO: Adding /tmp/venv-wTqG/bin to PATH 14:48:48 WARNING: Nexus logging server not set 14:48:48 INFO: S3 path logs/releng/vex-yul-odl-jenkins-1/transportpce-tox-verify-transportpce-master/4300/ 14:48:48 INFO: archiving logs to S3 14:48:50 ---> uname -a: 14:48:50 Linux prd-ubuntu2204-docker-4c-16g-9747 5.15.0-168-generic #178-Ubuntu SMP Fri Jan 9 19:05:03 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux 14:48:50 14:48:50 14:48:50 ---> lscpu: 14:48:50 Architecture: x86_64 14:48:50 CPU op-mode(s): 32-bit, 64-bit 14:48:50 Address sizes: 40 bits physical, 48 bits virtual 14:48:50 Byte Order: Little Endian 14:48:50 CPU(s): 4 14:48:50 On-line CPU(s) list: 0-3 14:48:50 Vendor ID: AuthenticAMD 14:48:50 Model name: AMD EPYC-Rome Processor 14:48:50 CPU family: 23 14:48:50 Model: 49 14:48:50 Thread(s) per core: 1 14:48:50 Core(s) per socket: 1 14:48:50 Socket(s): 4 14:48:50 Stepping: 0 14:48:50 BogoMIPS: 5600.00 14:48:50 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep_good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibrs ibpb stibp vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 clzero xsaveerptr wbnoinvd arat npt nrip_save umip rdpid arch_capabilities 14:48:50 Virtualization: AMD-V 14:48:50 Hypervisor vendor: KVM 14:48:50 Virtualization type: full 14:48:50 L1d cache: 128 KiB (4 instances) 14:48:50 L1i cache: 128 KiB (4 instances) 14:48:50 L2 cache: 2 MiB (4 instances) 14:48:50 L3 cache: 64 MiB (4 instances) 14:48:50 NUMA node(s): 1 14:48:50 NUMA node0 CPU(s): 0-3 14:48:50 Vulnerability Gather data sampling: Not affected 14:48:50 Vulnerability Indirect target selection: Not affected 14:48:50 Vulnerability Itlb multihit: Not affected 14:48:50 Vulnerability L1tf: Not affected 14:48:50 Vulnerability Mds: Not affected 14:48:50 Vulnerability Meltdown: Not affected 14:48:50 Vulnerability Mmio stale data: Not affected 14:48:50 Vulnerability Reg file data sampling: Not affected 14:48:50 Vulnerability Retbleed: Mitigation; untrained return thunk; SMT disabled 14:48:50 Vulnerability Spec rstack overflow: Mitigation; SMT disabled 14:48:50 Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp 14:48:50 Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization 14:48:50 Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected 14:48:50 Vulnerability Srbds: Not affected 14:48:50 Vulnerability Tsa: Not affected 14:48:50 Vulnerability Tsx async abort: Not affected 14:48:50 Vulnerability Vmscape: Not affected 14:48:50 14:48:50 14:48:50 ---> nproc: 14:48:50 4 14:48:50 14:48:50 14:48:50 ---> df -h: 14:48:50 Filesystem Size Used Avail Use% Mounted on 14:48:50 tmpfs 1.6G 1.1M 1.6G 1% /run 14:48:50 /dev/vda1 78G 18G 60G 23% / 14:48:50 tmpfs 7.9G 0 7.9G 0% /dev/shm 14:48:50 tmpfs 5.0M 0 5.0M 0% /run/lock 14:48:50 /dev/vda15 105M 6.1M 99M 6% /boot/efi 14:48:50 tmpfs 1.6G 4.0K 1.6G 1% /run/user/1001 14:48:50 14:48:50 14:48:50 ---> free -m: 14:48:50 total used free shared buff/cache available 14:48:50 Mem: 15989 711 10644 4 4633 14934 14:48:50 Swap: 1023 1 1022 14:48:50 14:48:50 14:48:50 ---> ip addr: 14:48:50 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 14:48:50 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 14:48:50 inet 127.0.0.1/8 scope host lo 14:48:50 valid_lft forever preferred_lft forever 14:48:50 inet6 ::1/128 scope host 14:48:50 valid_lft forever preferred_lft forever 14:48:50 2: ens3: mtu 1458 qdisc mq state UP group default qlen 1000 14:48:50 link/ether fa:16:3e:12:81:4e brd ff:ff:ff:ff:ff:ff 14:48:50 altname enp0s3 14:48:50 inet 10.30.170.120/23 metric 100 brd 10.30.171.255 scope global dynamic ens3 14:48:50 valid_lft 79380sec preferred_lft 79380sec 14:48:50 inet6 fe80::f816:3eff:fe12:814e/64 scope link 14:48:50 valid_lft forever preferred_lft forever 14:48:50 3: docker0: mtu 1458 qdisc noqueue state DOWN group default 14:48:50 link/ether ca:33:52:44:d4:41 brd ff:ff:ff:ff:ff:ff 14:48:50 inet 10.250.0.254/24 brd 10.250.0.255 scope global docker0 14:48:50 valid_lft forever preferred_lft forever 14:48:50 14:48:50 14:48:50 ---> sar -b -r -n DEV: 14:48:50 Linux 5.15.0-168-generic (prd-ubuntu2204-docker-4c-16g-9747) 02/12/26 _x86_64_ (4 CPU) 14:48:50 14:48:50 12:51:53 LINUX RESTART (4 CPU) 14:48:50 14:48:50 13:00:02 tps rtps wtps dtps bread/s bwrtn/s bdscd/s 14:48:50 13:10:02 100.23 23.24 72.77 4.22 349.67 12641.64 19149.00 14:48:50 13:20:02 15.05 1.29 12.79 0.98 22.12 369.56 1255.51 14:48:50 13:30:02 7.01 0.10 6.55 0.36 4.63 225.59 1046.19 14:48:50 13:40:01 12.91 0.03 12.37 0.52 0.48 643.19 894.91 14:48:50 13:50:02 14.89 0.02 14.34 0.53 1.09 441.74 535.61 14:48:50 14:00:01 5.90 0.01 5.64 0.24 0.23 191.46 106.07 14:48:50 14:10:01 4.88 0.01 4.70 0.16 1.15 150.04 190.82 14:48:50 14:20:02 18.21 12.09 5.92 0.20 144.68 174.04 64.74 14:48:50 14:30:02 2.85 0.01 2.84 0.00 0.11 48.31 0.01 14:48:50 14:40:01 11.28 0.02 10.74 0.52 0.77 657.89 203.57 14:48:50 Average: 19.33 3.68 14.87 0.77 52.52 1554.40 2344.79 14:48:50 14:48:50 13:00:02 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 14:48:50 13:10:02 1456324 4966744 10962328 66.95 264508 3216048 11960368 68.65 2188600 12126548 2796 14:48:50 13:20:02 6646664 10120652 5813572 35.51 266096 3179948 7238480 41.55 2265548 6887372 492 14:48:50 13:30:02 5256904 8745160 7188364 43.90 267060 3193244 8432136 48.40 2271192 8251120 364 14:48:50 13:40:01 11025356 14630008 1306436 7.98 271352 3303524 2047320 11.75 2307912 2476524 520 14:48:50 13:50:02 11298732 14974228 962260 5.88 273532 3372168 1719508 9.87 2313480 2197208 12688 14:48:50 14:00:01 7699076 11391840 4542692 27.74 274344 3388624 5279032 30.30 2314872 5775144 332 14:48:50 14:10:01 6159564 9872972 6060692 37.02 274984 3408652 6790828 38.98 2317056 7311928 336 14:48:50 14:20:02 6193336 9984648 5948444 36.33 280304 3468676 6698940 38.45 2362092 7222720 536 14:48:50 14:30:02 5951704 9744688 6188264 37.80 280584 3470044 6868604 39.43 2362416 7454088 332 14:48:50 14:40:01 7401172 11340052 4593672 28.06 284644 3605432 5229564 30.02 2378984 5997652 284 14:48:50 Average: 6908883 10577099 5356672 32.72 273741 3360636 6226478 35.74 2308215 6570030 1868 14:48:50 14:48:50 13:00:02 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 14:48:50 13:10:02 lo 17.24 17.24 15.32 15.32 0.00 0.00 0.00 0.00 14:48:50 13:10:02 ens3 28.36 20.45 415.90 2.37 0.00 0.00 0.00 0.00 14:48:50 13:10:02 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14:48:50 13:20:02 lo 34.64 34.64 16.05 16.05 0.00 0.00 0.00 0.00 14:48:50 13:20:02 ens3 1.68 1.50 0.34 0.36 0.00 0.00 0.00 0.00 14:48:50 13:20:02 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14:48:50 13:30:02 lo 8.90 8.90 5.55 5.55 0.00 0.00 0.00 0.00 14:48:50 13:30:02 ens3 0.61 0.33 0.10 0.06 0.00 0.00 0.00 0.00 14:48:50 13:30:02 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14:48:50 13:40:01 lo 11.83 11.83 5.49 5.49 0.00 0.00 0.00 0.00 14:48:50 13:40:01 ens3 1.04 0.75 0.30 0.23 0.00 0.00 0.00 0.00 14:48:50 13:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14:48:50 13:50:02 lo 17.23 17.23 8.43 8.43 0.00 0.00 0.00 0.00 14:48:50 13:50:02 ens3 1.00 0.73 0.28 0.22 0.00 0.00 0.00 0.00 14:48:50 13:50:02 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14:48:50 14:00:01 lo 18.33 18.33 9.20 9.20 0.00 0.00 0.00 0.00 14:48:50 14:00:01 ens3 0.83 0.62 0.20 0.15 0.00 0.00 0.00 0.00 14:48:50 14:00:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14:48:50 14:10:01 lo 27.08 27.08 11.01 11.01 0.00 0.00 0.00 0.00 14:48:50 14:10:01 ens3 1.02 0.61 0.29 1.51 0.00 0.00 0.00 0.00 14:48:50 14:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14:48:50 14:20:02 lo 15.83 15.83 8.10 8.10 0.00 0.00 0.00 0.00 14:48:50 14:20:02 ens3 0.60 0.45 0.11 0.09 0.00 0.00 0.00 0.00 14:48:50 14:20:02 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14:48:50 14:30:02 lo 11.60 11.60 6.37 6.37 0.00 0.00 0.00 0.00 14:48:50 14:30:02 ens3 0.61 0.37 0.14 0.09 0.00 0.00 0.00 0.00 14:48:50 14:30:02 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14:48:50 14:40:01 lo 18.17 18.17 10.05 10.05 0.00 0.00 0.00 0.00 14:48:50 14:40:01 ens3 1.11 0.90 0.33 0.26 0.00 0.00 0.00 0.00 14:48:50 14:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14:48:50 Average: lo 18.09 18.09 9.56 9.56 0.00 0.00 0.00 0.00 14:48:50 Average: ens3 3.69 2.67 41.80 0.53 0.00 0.00 0.00 0.00 14:48:50 Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 14:48:50 14:48:50 14:48:50 ---> sar -P ALL: 14:48:50 Linux 5.15.0-168-generic (prd-ubuntu2204-docker-4c-16g-9747) 02/12/26 _x86_64_ (4 CPU) 14:48:50 14:48:50 12:51:53 LINUX RESTART (4 CPU) 14:48:50 14:48:50 13:00:02 CPU %user %nice %system %iowait %steal %idle 14:48:50 13:10:02 all 52.39 0.00 2.18 1.17 0.20 44.07 14:48:50 13:10:02 0 50.15 0.00 2.10 0.53 0.12 47.10 14:48:50 13:10:02 1 52.36 0.00 2.18 1.17 0.22 44.08 14:48:50 13:10:02 2 52.81 0.00 2.26 0.44 0.23 44.26 14:48:50 13:10:02 3 54.21 0.00 2.19 2.55 0.22 40.83 14:48:50 13:20:02 all 35.90 0.00 1.56 5.26 0.13 57.16 14:48:50 13:20:02 0 35.98 0.00 1.54 3.76 0.12 58.61 14:48:50 13:20:02 1 35.56 0.00 1.76 7.92 0.13 54.63 14:48:50 13:20:02 2 35.79 0.00 1.41 3.52 0.13 59.14 14:48:50 13:20:02 3 36.26 0.00 1.54 5.83 0.13 56.25 14:48:50 13:30:02 all 17.37 0.00 0.81 0.14 0.14 81.54 14:48:50 13:30:02 0 17.44 0.00 0.74 0.04 0.16 81.62 14:48:50 13:30:02 1 17.39 0.00 0.74 0.09 0.12 81.68 14:48:50 13:30:02 2 17.77 0.00 0.85 0.06 0.16 81.15 14:48:50 13:30:02 3 16.89 0.00 0.91 0.38 0.13 81.70 14:48:50 13:40:01 all 18.80 0.00 0.82 0.27 0.09 80.02 14:48:50 13:40:01 0 18.24 0.00 0.72 0.41 0.08 80.55 14:48:50 13:40:01 1 18.32 0.00 0.82 0.14 0.08 80.65 14:48:50 13:40:01 2 18.96 0.00 0.84 0.16 0.09 79.96 14:48:50 13:40:01 3 19.70 0.00 0.92 0.38 0.09 78.91 14:48:50 13:50:02 all 26.06 0.00 0.97 0.47 0.10 72.40 14:48:50 13:50:02 0 26.96 0.00 0.94 0.30 0.10 71.70 14:48:50 13:50:02 1 25.72 0.00 1.00 0.14 0.10 73.04 14:48:50 13:50:02 2 25.03 0.00 0.97 0.45 0.10 73.45 14:48:50 13:50:02 3 26.52 0.00 0.98 1.00 0.09 71.41 14:48:50 14:00:01 all 14.03 0.00 0.52 0.23 0.07 85.15 14:48:50 14:00:01 0 13.70 0.00 0.53 0.36 0.07 85.34 14:48:50 14:00:01 1 14.70 0.00 0.57 0.02 0.08 84.63 14:48:50 14:00:01 2 13.76 0.00 0.52 0.21 0.08 85.43 14:48:50 14:00:01 3 13.96 0.00 0.45 0.33 0.07 85.18 14:48:50 14:10:01 all 11.09 0.00 0.48 0.11 0.07 88.24 14:48:50 14:10:01 0 10.96 0.00 0.46 0.05 0.07 88.47 14:48:50 14:10:01 1 11.06 0.00 0.50 0.12 0.07 88.25 14:48:50 14:10:01 2 11.04 0.00 0.56 0.13 0.08 88.19 14:48:50 14:10:01 3 11.32 0.00 0.39 0.15 0.07 88.07 14:48:50 14:20:02 all 9.70 0.08 0.49 0.14 0.07 89.51 14:48:50 14:20:02 0 9.86 0.00 0.46 0.08 0.07 89.53 14:48:50 14:20:02 1 9.87 0.01 0.54 0.04 0.07 89.47 14:48:50 14:20:02 2 9.57 0.32 0.53 0.29 0.08 89.20 14:48:50 14:20:02 3 9.51 0.00 0.44 0.14 0.06 89.84 14:48:50 14:30:02 all 2.11 0.00 0.28 0.03 0.06 97.52 14:48:50 14:30:02 0 1.99 0.00 0.24 0.09 0.05 97.64 14:48:50 14:30:02 1 2.06 0.00 0.33 0.01 0.06 97.54 14:48:50 14:30:02 2 2.54 0.00 0.27 0.04 0.06 97.09 14:48:50 14:30:02 3 1.86 0.00 0.25 0.01 0.06 97.82 14:48:50 14:40:01 all 20.34 0.00 0.79 0.08 0.08 78.71 14:48:50 14:40:01 0 20.04 0.00 0.75 0.11 0.07 79.03 14:48:50 14:40:01 1 20.57 0.00 0.89 0.03 0.09 78.42 14:48:50 14:40:01 2 21.66 0.00 0.84 0.06 0.09 77.35 14:48:50 14:40:01 3 19.07 0.00 0.70 0.11 0.08 80.05 14:48:50 Average: all 20.79 0.01 0.89 0.79 0.10 77.42 14:48:50 Average: 0 20.54 0.00 0.85 0.57 0.09 77.95 14:48:50 Average: 1 20.78 0.00 0.93 0.97 0.10 77.22 14:48:50 Average: 2 20.90 0.03 0.91 0.54 0.11 77.52 14:48:50 Average: 3 20.95 0.00 0.88 1.09 0.10 76.99 14:48:50 14:48:50 14:48:50