13:08:21 Triggered by Gerrit: https://git.opendaylight.org/gerrit/c/integration/test/+/126996 13:08:21 Running as SYSTEM 13:08:21 [EnvInject] - Loading node environment variables. 13:08:21 Building remotely on prd-ubuntu2204-builder-2c-2g-66148 (ubuntu2204-builder-2c-2g) in workspace /w/workspace/integration-test-tox-verify-master 13:08:22 [ssh-agent] Looking for ssh-agent implementation... 13:08:22 [ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine) 13:08:22 $ ssh-agent 13:08:22 SSH_AUTH_SOCK=/tmp/ssh-XXXXXX0guswC/agent.1541 13:08:22 SSH_AGENT_PID=1543 13:08:22 [ssh-agent] Started. 13:08:22 Running ssh-add (command line suppressed) 13:08:22 Identity added: /w/workspace/integration-test-tox-verify-master@tmp/private_key_11975234887550054469.key (/w/workspace/integration-test-tox-verify-master@tmp/private_key_11975234887550054469.key) 13:08:22 [ssh-agent] Using credentials jenkins (jenkins-ssh) 13:08:22 The recommended git tool is: NONE 13:08:24 using credential jenkins-ssh 13:08:24 Wiping out workspace first. 13:08:24 Cloning the remote Git repository 13:08:24 Cloning repository git://devvexx.opendaylight.org/mirror/integration/test 13:08:24 > git init /w/workspace/integration-test-tox-verify-master # timeout=10 13:08:24 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/integration/test 13:08:24 > git --version # timeout=10 13:08:24 > git --version # 'git version 2.34.1' 13:08:24 using GIT_SSH to set credentials jenkins-ssh 13:08:24 Verifying host key using known hosts file, will automatically accept unseen keys 13:08:24 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/integration/test +refs/heads/*:refs/remotes/origin/* # timeout=10 13:08:26 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/integration/test # timeout=10 13:08:26 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 13:08:27 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/integration/test # timeout=10 13:08:27 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/integration/test 13:08:27 using GIT_SSH to set credentials jenkins-ssh 13:08:27 Verifying host key using known hosts file, will automatically accept unseen keys 13:08:27 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/integration/test refs/changes/96/126996/10 # timeout=10 13:08:27 > git rev-parse b63c513a01115f05a0ae83027374ecb412c8c461^{commit} # timeout=10 13:08:27 JENKINS-19022: warning: possible memory leak due to Git plugin usage; see: https://plugins.jenkins.io/git/#remove-git-plugin-buildsbybranch-builddata-script 13:08:27 Checking out Revision b63c513a01115f05a0ae83027374ecb412c8c461 (refs/changes/96/126996/10) 13:08:27 > git config core.sparsecheckout # timeout=10 13:08:27 > git checkout -f b63c513a01115f05a0ae83027374ecb412c8c461 # timeout=10 13:08:30 Commit message: "Evolve play.py" 13:08:31 > git rev-parse FETCH_HEAD^{commit} # timeout=10 13:08:31 > git rev-list --no-walk bdc93385bb050b6186bde22f0aef66669c0844c1 # timeout=10 13:08:31 provisioning config files... 13:08:31 copy managed file [npmrc] to file:/home/jenkins/.npmrc 13:08:31 copy managed file [pipconf] to file:/home/jenkins/.config/pip/pip.conf 13:08:31 [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins10143129749990250479.sh 13:08:31 ---> python-tools-install.sh 13:08:31 Setup pyenv: 13:08:31 * system (set by /opt/pyenv/version) 13:08:31 * 3.8.20 (set by /opt/pyenv/version) 13:08:31 * 3.9.20 (set by /opt/pyenv/version) 13:08:31 3.10.15 13:08:31 3.11.10 13:08:36 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-Sf6G 13:08:36 lf-activate-venv(): INFO: Save venv in file: /tmp/.os_lf_venv 13:08:36 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 13:08:40 lf-activate-venv(): INFO: Installing additional packages: lftools 13:09:04 lf-activate-venv(): INFO: Adding /tmp/venv-Sf6G/bin to PATH 13:09:04 Generating Requirements File 13:09:31 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. 13:09:31 httplib2 0.30.2 requires pyparsing<4,>=3.0.4, but you have pyparsing 2.4.7 which is incompatible. 13:09:31 Python 3.11.10 13:09:31 pip 26.2.2 from /tmp/venv-Sf6G/lib/python3.11/site-packages/pip (python 3.11) 13:09:32 aiohappyeyeballs==2.7.1 13:09:32 aiohttp==3.14.5 13:09:32 aiosignal==1.4.0 13:09:32 appdirs==1.4.4 13:09:32 argcomplete==3.7.2 13:09:32 aspy.yaml==1.3.0 13:09:32 attrs==26.1.0 13:09:32 autopage==0.6.0 13:09:32 beautifulsoup4==4.15.0 13:09:32 boto3==1.43.116 13:09:32 botocore==1.43.116 13:09:32 bs4==0.0.2 13:09:32 certifi==2026.10.19 13:09:32 cffi==2.1.1 13:09:32 cfgv==3.5.0 13:09:32 chardet==7.7.0 13:09:32 charset-normalizer==3.5.2 13:09:32 click==8.5.0 13:09:32 cliff==4.16.0 13:09:32 cmd2==4.3.0 13:09:32 cryptography==3.3.2 13:09:32 debtcollector==3.1.0 13:09:32 decorator==5.3.1 13:09:32 defusedxml==0.7.1 13:09:32 Deprecated==1.3.1 13:09:32 distlib==0.4.4 13:09:32 dnspython==2.9.0 13:09:32 docker==7.2.0 13:09:32 dogpile.cache==1.5.0 13:09:32 durationpy==0.11 13:09:32 email-validator==2.3.0 13:09:32 filelock==4.2.4 13:09:32 frozenlist==1.8.0 13:09:32 future==1.0.0 13:09:32 gitdb==4.0.12 13:09:32 GitPython==3.2.1 13:09:32 httplib2==0.30.2 13:09:32 identify==2.6.20 13:09:32 idna==3.20 13:09:32 importlib-resources==1.5.0 13:09:32 iso8601==2.1.0 13:09:32 Jinja2==3.1.6 13:09:32 jmespath==1.1.0 13:09:32 jsonpatch==1.36 13:09:32 jsonpointer==3.4 13:09:32 jsonschema==4.26.0 13:09:32 jsonschema-specifications==2025.9.1 13:09:32 keystoneauth1==5.18.1 13:09:32 kubernetes==36.0.3 13:09:32 lftools==0.37.26 13:09:32 lxml==6.1.3 13:09:32 markdown-it-py==4.2.0 13:09:32 MarkupSafe==3.0.4 13:09:32 mdurl==0.1.2 13:09:32 msgpack==1.2.3 13:09:32 multi_key_dict==2.0.3 13:09:32 multidict==7.1.0 13:09:32 munch==4.0.0 13:09:32 netaddr==1.3.0 13:09:32 niet==1.4.2 13:09:32 nodeenv==1.11.0 13:09:32 oauth2client==4.1.3 13:09:32 oauthlib==4.0.0 13:09:32 openstacksdk==4.21.0 13:09:32 os-service-types==1.9.0 13:09:32 osc-lib==4.7.0 13:09:32 oslo.config==10.7.0 13:09:32 oslo.context==6.5.0 13:09:32 oslo.i18n==6.9.0 13:09:32 oslo.log==8.3.2 13:09:32 oslo.serialization==5.11.0 13:09:32 oslo.utils==10.2.0 13:09:32 packaging==26.3 13:09:32 pbr==7.1.3 13:09:32 platformdirs==4.13.5 13:09:32 prettytable==3.18.0 13:09:32 prompt_toolkit==3.0.53 13:09:32 propcache==0.5.4 13:09:32 psutil==7.2.2 13:09:32 pyasn1==0.6.4 13:09:32 pyasn1_modules==0.4.2 13:09:32 pycparser==3.11 13:09:32 pygerrit2==2.0.15 13:09:32 PyGithub==2.10.0 13:09:32 Pygments==2.21.0 13:09:32 PyJWT==2.15.1 13:09:32 PyNaCl==1.6.2 13:09:32 pyparsing==2.4.7 13:09:32 pyperclip==1.11.0 13:09:32 pyrsistent==0.20.0 13:09:32 python-dateutil==2.9.0.post0 13:09:32 python-discovery==1.6.4 13:09:32 python-heatclient==5.3.0 13:09:32 python-jenkins==1.8.3 13:09:32 python-keystoneclient==6.0.0 13:09:32 python-magnumclient==5.0.0 13:09:32 python-manilaclient==6.3.0 13:09:32 python-openstackclient==10.4.0 13:09:32 python-swiftclient==4.11.0 13:09:32 PyYAML==6.0.3 13:09:32 referencing==0.37.0 13:09:32 requests==2.34.2 13:09:32 requests-oauthlib==2.0.0 13:09:32 rfc3986==2.0.0 13:09:32 rich==15.0.0 13:09:32 rich-argparse==1.8.0 13:09:32 rpds-py==2026.9.1 13:09:32 rsa==4.9.1 13:09:32 ruamel.yaml==0.19.1 13:09:32 ruamel.yaml.clib==0.2.15 13:09:32 s3transfer==0.19.3 13:09:32 simplejson==4.2.0 13:09:32 six==1.17.0 13:09:32 smmap==5.0.3 13:09:32 soupsieve==3.0.3 13:09:32 stevedore==5.9.1 13:09:32 tabulate==0.10.0 13:09:32 toml==0.10.2 13:09:32 tomlkit==0.15.2 13:09:32 tqdm==4.70.1 13:09:32 typing_extensions==4.16.0 13:09:32 urllib3==1.26.20 13:09:32 virtualenv==21.14.12 13:09:32 wcwidth==0.9.3 13:09:32 websocket-client==1.9.2 13:09:32 wrapt==2.5.1 13:09:32 xdg==6.0.0 13:09:32 xmltodict==1.0.4 13:09:32 yarl==1.25.1 13:09:32 yq==4.4.5 13:09:32 [integration-test-tox-verify-master] $ /bin/sh /tmp/jenkins11449056200643738943.sh 13:09:32 ---> uv-install.sh 13:09:32 Installing uv/uvx (latest) using shell installer 13:09:32 2026-10-21 13:09:32 URL:https://releases.astral.sh/installers/uv/latest/uv-installer.sh [71300/71300] -> "/tmp/uv-install-6WLLnG.sh" [1] 13:09:32 downloading uv 0.13.4 x86_64-unknown-linux-gnu 13:09:33 installing to /home/jenkins/.local/bin 13:09:33 uv 13:09:33 uvx 13:09:33 everything's installed! 13:09:33 13:09:33 To add $HOME/.local/bin to your PATH, either restart your shell or run: 13:09:33 13:09:33 source $HOME/.local/bin/env (sh, bash, zsh) 13:09:33 source $HOME/.local/bin/env.fish (fish) 13:09:33 Adding install location to PATH 13:09:33 ---> Validating uv/uvx install 13:09:33 uvx 0.13.4 (x86_64-unknown-linux-gnu) 13:09:33 [EnvInject] - Injecting environment variables from a build step. 13:09:33 [EnvInject] - Injecting as environment variables the properties content 13:09:33 PYTHON=python3 13:09:33 13:09:33 [EnvInject] - Variables injected successfully. 13:09:33 [integration-test-tox-verify-master] $ /bin/bash -l /tmp/jenkins2452042882874260173.sh 13:09:33 ---> tox-install.sh 13:09:33 + source /home/jenkins/lf-env.sh 13:09:33 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 13:09:33 ++ mktemp -d /tmp/venv-XXXX 13:09:33 + lf_venv=/tmp/venv-a2QK 13:09:33 + local venv_file=/tmp/.os_lf_venv 13:09:33 + local python=python3 13:09:33 + local options 13:09:33 + local set_path=true 13:09:33 + local install_args= 13:09:33 ++ 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 13:09:33 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 13:09:33 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 13:09:33 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 13:09:33 + true 13:09:33 + case $1 in 13:09:33 + venv_file=/tmp/.toxenv 13:09:33 + shift 2 13:09:33 + true 13:09:33 + case $1 in 13:09:33 + shift 13:09:33 + break 13:09:33 + case $python in 13:09:33 + local pkg_list= 13:09:33 + [[ -d /opt/pyenv ]] 13:09:33 + echo 'Setup pyenv:' 13:09:33 Setup pyenv: 13:09:33 + export PYENV_ROOT=/opt/pyenv 13:09:33 + PYENV_ROOT=/opt/pyenv 13:09:33 + export PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:33 + PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:33 + pyenv versions 13:09:33 system 13:09:33 3.8.20 13:09:33 3.9.20 13:09:33 3.10.15 13:09:33 * 3.11.10 (set by /w/workspace/integration-test-tox-verify-master/.python-version) 13:09:33 + command -v pyenv 13:09:33 ++ pyenv init - --no-rehash 13:09:33 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 13:09:33 for i in ${!paths[@]}; do 13:09:33 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 13:09:33 fi; done; 13:09:33 echo "${paths[*]}"'\'')" 13:09:33 export PATH="/opt/pyenv/shims:${PATH}" 13:09:33 export PYENV_SHELL=bash 13:09:33 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 13:09:33 pyenv() { 13:09:33 local command 13:09:33 command="${1:-}" 13:09:33 if [ "$#" -gt 0 ]; then 13:09:33 shift 13:09:33 fi 13:09:33 13:09:33 case "$command" in 13:09:33 rehash|shell) 13:09:33 eval "$(pyenv "sh-$command" "$@")" 13:09:33 ;; 13:09:33 *) 13:09:33 command pyenv "$command" "$@" 13:09:33 ;; 13:09:33 esac 13:09:33 }' 13:09:33 +++ bash --norc -ec 'IFS=:; paths=($PATH); 13:09:33 for i in ${!paths[@]}; do 13:09:33 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 13:09:33 fi; done; 13:09:33 echo "${paths[*]}"' 13:09:33 ++ PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:33 ++ export PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:33 ++ PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:33 ++ export PYENV_SHELL=bash 13:09:33 ++ PYENV_SHELL=bash 13:09:33 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 13:09:33 +++ complete -F _pyenv pyenv 13:09:33 ++ lf-pyver python3 13:09:33 ++ local py_version_xy=python3 13:09:33 ++ local py_version_xyz= 13:09:33 ++ pyenv versions 13:09:33 ++ local command 13:09:33 ++ awk '{ print $1 }' 13:09:33 ++ command=versions 13:09:33 ++ '[' 1 -gt 0 ']' 13:09:33 ++ shift 13:09:33 ++ case "$command" in 13:09:33 ++ command pyenv versions 13:09:33 ++ sed 's/^[ *]* //' 13:09:33 ++ grep -E '^[0-9.]*[0-9]$' 13:09:33 ++ [[ ! -s /tmp/.pyenv_versions ]] 13:09:33 +++ grep '^3' /tmp/.pyenv_versions 13:09:33 +++ tail -n 1 13:09:33 +++ sort -V 13:09:33 ++ py_version_xyz=3.11.10 13:09:33 ++ [[ -z 3.11.10 ]] 13:09:33 ++ echo 3.11.10 13:09:33 ++ return 0 13:09:33 + pyenv local 3.11.10 13:09:33 + local command 13:09:33 + command=local 13:09:33 + '[' 2 -gt 0 ']' 13:09:33 + shift 13:09:33 + case "$command" in 13:09:33 + command pyenv local 3.11.10 13:09:33 + for arg in "$@" 13:09:33 + case $arg in 13:09:33 + pkg_list+='tox ' 13:09:33 + for arg in "$@" 13:09:33 + case $arg in 13:09:33 + pkg_list+='virtualenv ' 13:09:33 + for arg in "$@" 13:09:33 + case $arg in 13:09:33 + pkg_list+='urllib3~=1.26.15 ' 13:09:33 + [[ -f /tmp/.toxenv ]] 13:09:33 + [[ ! -f /tmp/.toxenv ]] 13:09:33 + [[ -n '' ]] 13:09:33 + python3 -m venv /tmp/venv-a2QK 13:09:37 + echo 'lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-a2QK' 13:09:37 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-a2QK 13:09:37 + echo /tmp/venv-a2QK 13:09:37 + echo 'lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv' 13:09:37 lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv 13:09:37 + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' 13:09:37 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 13:09:37 + local 'pip_opts=--upgrade --quiet' 13:09:37 + pip_opts='--upgrade --quiet --trusted-host pypi.org' 13:09:37 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' 13:09:37 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' 13:09:37 + [[ -n '' ]] 13:09:37 + [[ -n '' ]] 13:09:37 + lf-venv-pip-install /tmp/venv-a2QK/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv 13:09:37 + local venv_python=/tmp/venv-a2QK/bin/python3 13:09:37 + shift 13:09:37 + local upstream=https://pypi.org/simple 13:09:37 + /tmp/venv-a2QK/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 13:09:41 + return 0 13:09:41 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 13:09:41 + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' 13:09:41 lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 13:09:41 + lf-venv-pip-install /tmp/venv-a2QK/bin/python3 --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 13:09:41 + local venv_python=/tmp/venv-a2QK/bin/python3 13:09:41 + shift 13:09:41 + local upstream=https://pypi.org/simple 13:09:41 + /tmp/venv-a2QK/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 13:09:43 + return 0 13:09:43 + type python3 13:09:43 + true 13:09:43 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-a2QK/bin to PATH' 13:09:43 lf-activate-venv(): INFO: Adding /tmp/venv-a2QK/bin to PATH 13:09:43 + PATH=/tmp/venv-a2QK/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:43 + return 0 13:09:43 + python3 --version 13:09:43 Python 3.11.10 13:09:43 + python3 -m pip --version 13:09:43 pip 26.2.2 from /tmp/venv-a2QK/lib/python3.11/site-packages/pip (python 3.11) 13:09:44 + python3 -m pip freeze 13:09:44 cachetools==7.2.4 13:09:44 colorama==0.4.6 13:09:44 distlib==0.4.4 13:09:44 filelock==4.2.4 13:09:44 packaging==26.3 13:09:44 platformdirs==4.13.5 13:09:44 pluggy==1.7.0 13:09:44 pyproject-api==1.12.0 13:09:44 python-discovery==1.6.4 13:09:44 tomli_w==1.2.0 13:09:44 tox==4.67.1 13:09:44 typing_extensions==4.16.0 13:09:44 urllib3==1.26.20 13:09:44 virtualenv==21.14.12 13:09:44 [integration-test-tox-verify-master] $ /bin/sh -xe /tmp/jenkins17431163546803427649.sh 13:09:44 [EnvInject] - Injecting environment variables from a build step. 13:09:44 [EnvInject] - Injecting as environment variables the properties content 13:09:44 PARALLEL=False 13:09:44 13:09:44 [EnvInject] - Variables injected successfully. 13:09:44 [integration-test-tox-verify-master] $ /bin/bash -l /tmp/jenkins13057647289941652173.sh 13:09:44 ---> tox-run.sh 13:09:44 + PATH=/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:44 + ARCHIVE_TOX_DIR=/w/workspace/integration-test-tox-verify-master/archives/tox 13:09:44 + ARCHIVE_DOC_DIR=/w/workspace/integration-test-tox-verify-master/archives/docs 13:09:44 + mkdir -p /w/workspace/integration-test-tox-verify-master/archives/tox 13:09:44 + cd /w/workspace/integration-test-tox-verify-master/. 13:09:44 + source /home/jenkins/lf-env.sh 13:09:44 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 13:09:44 ++ mktemp -d /tmp/venv-XXXX 13:09:44 + lf_venv=/tmp/venv-K7nY 13:09:44 + local venv_file=/tmp/.os_lf_venv 13:09:44 + local python=python3 13:09:44 + local options 13:09:44 + local set_path=true 13:09:44 + local install_args= 13:09:44 ++ 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 13:09:44 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 13:09:44 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 13:09:44 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 13:09:44 + true 13:09:44 + case $1 in 13:09:44 + venv_file=/tmp/.toxenv 13:09:44 + shift 2 13:09:44 + true 13:09:44 + case $1 in 13:09:44 + shift 13:09:44 + break 13:09:44 + case $python in 13:09:44 + local pkg_list= 13:09:44 + [[ -d /opt/pyenv ]] 13:09:44 + echo 'Setup pyenv:' 13:09:44 Setup pyenv: 13:09:44 + export PYENV_ROOT=/opt/pyenv 13:09:44 + PYENV_ROOT=/opt/pyenv 13:09:44 + export PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:44 + PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:44 + pyenv versions 13:09:44 system 13:09:44 3.8.20 13:09:44 3.9.20 13:09:44 3.10.15 13:09:44 * 3.11.10 (set by /w/workspace/integration-test-tox-verify-master/.python-version) 13:09:44 + command -v pyenv 13:09:44 ++ pyenv init - --no-rehash 13:09:44 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 13:09:44 for i in ${!paths[@]}; do 13:09:44 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 13:09:44 fi; done; 13:09:44 echo "${paths[*]}"'\'')" 13:09:44 export PATH="/opt/pyenv/shims:${PATH}" 13:09:44 export PYENV_SHELL=bash 13:09:44 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 13:09:44 pyenv() { 13:09:44 local command 13:09:44 command="${1:-}" 13:09:44 if [ "$#" -gt 0 ]; then 13:09:44 shift 13:09:44 fi 13:09:44 13:09:44 case "$command" in 13:09:44 rehash|shell) 13:09:44 eval "$(pyenv "sh-$command" "$@")" 13:09:44 ;; 13:09:44 *) 13:09:44 command pyenv "$command" "$@" 13:09:44 ;; 13:09:44 esac 13:09:44 }' 13:09:44 +++ bash --norc -ec 'IFS=:; paths=($PATH); 13:09:44 for i in ${!paths[@]}; do 13:09:44 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 13:09:44 fi; done; 13:09:44 echo "${paths[*]}"' 13:09:44 ++ PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:44 ++ export PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:44 ++ PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:44 ++ export PYENV_SHELL=bash 13:09:44 ++ PYENV_SHELL=bash 13:09:44 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 13:09:44 +++ complete -F _pyenv pyenv 13:09:44 ++ lf-pyver python3 13:09:44 ++ local py_version_xy=python3 13:09:44 ++ local py_version_xyz= 13:09:44 ++ sed 's/^[ *]* //' 13:09:44 ++ awk '{ print $1 }' 13:09:44 ++ grep -E '^[0-9.]*[0-9]$' 13:09:44 ++ pyenv versions 13:09:44 ++ local command 13:09:44 ++ command=versions 13:09:44 ++ '[' 1 -gt 0 ']' 13:09:44 ++ shift 13:09:44 ++ case "$command" in 13:09:44 ++ command pyenv versions 13:09:44 ++ [[ ! -s /tmp/.pyenv_versions ]] 13:09:44 +++ grep '^3' /tmp/.pyenv_versions 13:09:44 +++ tail -n 1 13:09:44 +++ sort -V 13:09:44 ++ py_version_xyz=3.11.10 13:09:44 ++ [[ -z 3.11.10 ]] 13:09:44 ++ echo 3.11.10 13:09:44 ++ return 0 13:09:44 + pyenv local 3.11.10 13:09:44 + local command 13:09:44 + command=local 13:09:44 + '[' 2 -gt 0 ']' 13:09:44 + shift 13:09:44 + case "$command" in 13:09:44 + command pyenv local 3.11.10 13:09:44 + for arg in "$@" 13:09:44 + case $arg in 13:09:44 + pkg_list+='tox ' 13:09:44 + for arg in "$@" 13:09:44 + case $arg in 13:09:44 + pkg_list+='virtualenv ' 13:09:44 + for arg in "$@" 13:09:44 + case $arg in 13:09:44 + pkg_list+='urllib3~=1.26.15 ' 13:09:44 + [[ -f /tmp/.toxenv ]] 13:09:44 ++ cat /tmp/.toxenv 13:09:44 + lf_venv=/tmp/venv-a2QK 13:09:44 + echo 'lf-activate-venv(): INFO: Reuse venv:/tmp/venv-a2QK from' file:/tmp/.toxenv 13:09:44 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-a2QK from file:/tmp/.toxenv 13:09:44 + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' 13:09:44 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 13:09:44 + local 'pip_opts=--upgrade --quiet' 13:09:44 + pip_opts='--upgrade --quiet --trusted-host pypi.org' 13:09:44 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' 13:09:44 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' 13:09:44 + [[ -n '' ]] 13:09:44 + [[ -n '' ]] 13:09:44 + lf-venv-pip-install /tmp/venv-a2QK/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv 13:09:44 + local venv_python=/tmp/venv-a2QK/bin/python3 13:09:44 + shift 13:09:44 + local upstream=https://pypi.org/simple 13:09:44 + /tmp/venv-a2QK/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 13:09:45 + return 0 13:09:45 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 13:09:45 + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' 13:09:45 lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 13:09:45 + lf-venv-pip-install /tmp/venv-a2QK/bin/python3 --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 13:09:45 + local venv_python=/tmp/venv-a2QK/bin/python3 13:09:45 + shift 13:09:45 + local upstream=https://pypi.org/simple 13:09:45 + /tmp/venv-a2QK/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 13:09:46 + return 0 13:09:46 + type python3 13:09:46 + true 13:09:46 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-a2QK/bin to PATH' 13:09:46 lf-activate-venv(): INFO: Adding /tmp/venv-a2QK/bin to PATH 13:09:46 + PATH=/tmp/venv-a2QK/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:46 + return 0 13:09:46 + [[ -d /opt/pyenv ]] 13:09:46 + echo '---> Setting up pyenv' 13:09:46 ---> Setting up pyenv 13:09:46 + export PYENV_ROOT=/opt/pyenv 13:09:46 + PYENV_ROOT=/opt/pyenv 13:09:46 + export PATH=/opt/pyenv/bin:/tmp/venv-a2QK/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:46 + PATH=/opt/pyenv/bin:/tmp/venv-a2QK/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/opt/sdkman/candidates/mvnd/current/bin:/opt/sdkman/candidates/maven/current/bin:/opt/sdkman/candidates/java/current/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 13:09:46 ++ pwd 13:09:46 + PYTHONPATH=/w/workspace/integration-test-tox-verify-master 13:09:46 + export PYTHONPATH 13:09:46 + export TOX_TESTENV_PASSENV=PYTHONPATH 13:09:46 + TOX_TESTENV_PASSENV=PYTHONPATH 13:09:46 + tox --version 13:09:46 4.67.1 from /tmp/venv-a2QK/lib/python3.11/site-packages/tox/__init__.py 13:09:46 + PARALLEL=False 13:09:46 + TOX_OPTIONS_LIST= 13:09:46 + [[ -n '' ]] 13:09:46 + case ${PARALLEL,,} in 13:09:46 + tox 13:09:46 + tee -a /w/workspace/integration-test-tox-verify-master/archives/tox/tox.log 13:09:47 docs: install_deps> python -I -m pip install -r docs/requirements.txt 13:10:12 docs: freeze> python -m pip freeze --all 13:10:13 docs: alabaster==1.0.0,attrs==26.1.0,babel==2.18.0,certifi==2026.10.19,charset-normalizer==3.5.2,contourpy==1.3.3,cycler==0.12.1,deepmerge==3.0.1,docutils==0.22.4,elastic-transport==8.19.0,elasticsearch==8.19.3,elasticsearch-dsl==8.15.4,fonttools==4.67.0,idna==3.20,imagesize==2.0.1,Jinja2==3.1.6,jsonschema==4.26.0,jsonschema-specifications==2025.9.1,jsonschema_rs==0.58.6,kiwisolver==1.5.1,lfdocs_conf==0.11.0,MarkupSafe==3.0.4,matplotlib==3.11.2,minijinja==2.24.0,mistune==3.4.0,numpy==2.4.6,packaging==26.3,picobox==4.0.0,pillow==13.0.0,pip==26.2.2,Pygments==2.21.0,pyparsing==3.3.3,python-dateutil==2.9.0.post0,PyYAML==6.0.3,referencing==0.37.0,requests==2.34.2,requests-file==3.0.1,robotframework==7.5,roman-numerals==4.1.0,rpds-py==2026.9.1,setuptools==84.2.1,six==1.17.0,snowballstemmer==3.1.1,Sphinx==9.0.4,sphinx-data-viewer==0.1.5,sphinx-needs==9.0.0,sphinx-tabs==3.5.0,sphinx_mdinclude==0.6.2,sphinx_rtd_theme==3.1.0,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-httpdomain==2.2.1,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==2.0.0,sphinxcontrib-mermaid==2.1.1,sphinxcontrib-openapi==0.10.0,sphinxcontrib-plantuml==0.31,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-serializinghtml==2.0.0,typing_extensions==4.16.0,ub-project==1.1.0,urllib3==2.8.0 13:10:13 docs: commands[0]> sphinx-build -W -n -b html -d /w/workspace/integration-test-tox-verify-master/.tox/docs/tmp/doctrees ./docs/ /w/workspace/integration-test-tox-verify-master/docs/_build/html 13:10:13 Running Sphinx v9.0.4 13:10:13 /w/workspace/integration-test-tox-verify-master/csit/libraries /w/workspace/integration-test-tox-verify-master/docs 13:10:13 /w/workspace/integration-test-tox-verify-master/docs/_static/integration/robot /w/workspace/integration-test-tox-verify-master/csit/libraries /w/workspace/integration-test-tox-verify-master/docs 13:10:13 /w/workspace/integration-test-tox-verify-master/csit/libraries /w/workspace/integration-test-tox-verify-master/docs 13:10:13 /w/workspace/integration-test-tox-verify-master/docs/_build/robot /w/workspace/integration-test-tox-verify-master/csit/libraries /w/workspace/integration-test-tox-verify-master/docs 13:10:13 /w/workspace/integration-test-tox-verify-master/csit/libraries /w/workspace/integration-test-tox-verify-master/docs 13:10:14 /w/workspace/integration-test-tox-verify-master/docs/_build/robot/WorkflowsL2switch.robot.html 13:10:14 /w/workspace/integration-test-tox-verify-master/docs/_build/robot/AAAJsonUtils.py.html 13:10:14 /w/workspace/integration-test-tox-verify-master/docs/_build/robot/YangCollection.robot.html 13:10:14 /w/workspace/integration-test-tox-verify-master/docs/_build/robot/MdsalLowlevelPy.py.html 13:10:14 /w/workspace/integration-test-tox-verify-master/docs/_build/robot/BGPcliKeywords.robot.html 13:10:14 parallel: This job failed: 13:10:14 python -m robot.libdoc ClusterStateLibrary.py /w/workspace/integration-test-tox-verify-master/docs/_build/robot/ClusterStateLibrary.py.html 13:10:14 Importing library '/w/workspace/integration-test-tox-verify-master/csit/libraries/ClusterStateLibrary.py' failed: ModuleNotFoundError: No module named 'SSHLibrary' 13:10:14 Traceback (most recent call last): 13:10:14 File "/w/workspace/integration-test-tox-verify-master/csit/libraries/ClusterStateLibrary.py", line 3, in 13:10:14 import UtilLibrary 13:10:14 File "/w/workspace/integration-test-tox-verify-master/csit/libraries/UtilLibrary.py", line 2, in 13:10:14 from SSHLibrary import SSHLibrary 13:10:14 PYTHONPATH: 13:10:14 /w/workspace/integration-test-tox-verify-master/csit/libraries 13:10:14 /w/workspace/integration-test-tox-verify-master/csit/libraries 13:10:14 /opt/pyenv/versions/3.11.10/lib/python311.zip 13:10:14 /opt/pyenv/versions/3.11.10/lib/python3.11 13:10:14 /opt/pyenv/versions/3.11.10/lib/python3.11/lib-dynload 13:10:14 /w/workspace/integration-test-tox-verify-master/.tox/docs/lib/python3.11/site-packages 13:10:14 13:10:14 Try --help for usage information. 13:10:14 /w/workspace/integration-test-tox-verify-master/docs 13:10:14 /w/workspace/integration-test-tox-verify-master/docs/_build/robot /w/workspace/integration-test-tox-verify-master/docs 13:10:14 /w/workspace/integration-test-tox-verify-master/docs 13:10:14 loading translations [en]... done 13:10:15 making output directory... done 13:10:15 Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. 13:10:15 loading intersphinx inventory 'common-packer' from https://docs.releng.linuxfoundation.org/projects/common-packer/en/stable/objects.inv ... 13:10:15 loading intersphinx inventory 'global-jjb' from https://docs.releng.linuxfoundation.org/projects/global-jjb/en/stable/objects.inv ... 13:10:15 loading intersphinx inventory 'lfdocs' from https://docs.releng.linuxfoundation.org/en/latest/objects.inv ... 13:10:15 loading intersphinx inventory 'lfdocs-conf' from https://docs.releng.linuxfoundation.org/projects/lfdocs-conf/en/stable/objects.inv ... 13:10:15 loading intersphinx inventory 'lftools' from https://docs.releng.linuxfoundation.org/projects/lftools/en/stable/objects.inv ... 13:10:15 loading intersphinx inventory 'pipelines' from https://docs.releng.linuxfoundation.org/projects/pipelines/en/latest/objects.inv ... 13:10:15 loading intersphinx inventory 'python' from https://docs.python.org/3/objects.inv ... 13:10:15 loading intersphinx inventory 'odl-releng-builder' from http://docs.opendaylight.org/projects/releng-builder/en/latest/objects.inv ... 13:10:15 intersphinx inventory has moved: http://docs.opendaylight.org/projects/releng-builder/en/latest/objects.inv -> https://docs.opendaylight.org/projects/releng-builder/en/latest/objects.inv 13:10:15 building [mo]: targets for 0 po files that are out of date 13:10:15 writing output... 13:10:15 building [html]: targets for 12 source files that are out of date 13:10:15 updating environment: [new config] 12 added, 0 changed, 0 removed 13:10:15 reading sources... [ 8%] cluster/carbon/caveats 13:10:15 reading sources... [ 17%] cluster/carbon/index 13:10:15 reading sources... [ 25%] cluster/carbon/release 13:10:16 reading sources... [ 33%] cluster/carbon/sandbox 13:10:16 reading sources... [ 42%] cluster/carbon/scenarios 13:10:16 reading sources... [ 50%] cluster/carbon/sr1 13:10:16 reading sources... [ 58%] cluster/carbon/sr2 13:10:16 reading sources... [ 67%] cluster/carbon/tests 13:10:16 reading sources... [ 75%] cluster/index 13:10:16 reading sources... [ 83%] index 13:10:16 reading sources... [ 92%] run-test-locally 13:10:16 reading sources... [100%] system-test-guide 13:10:16 13:10:16 looking for now-outdated files... none found 13:10:16 pickling environment... done 13:10:16 checking consistency... done 13:10:16 preparing documents... done 13:10:16 copying assets... 13:10:16 copying static files... 13:10:16 Writing evaluated template result to /w/workspace/integration-test-tox-verify-master/docs/_build/html/_static/basic.css 13:10:16 Writing evaluated template result to /w/workspace/integration-test-tox-verify-master/docs/_build/html/_static/language_data.js 13:10:16 Writing evaluated template result to /w/workspace/integration-test-tox-verify-master/docs/_build/html/_static/documentation_options.js 13:10:16 Writing evaluated template result to /w/workspace/integration-test-tox-verify-master/docs/_build/html/_static/js/versions.js 13:10:16 copying static files: done 13:10:16 copying extra files... 13:10:16 copying extra files: done 13:10:16 copying assets: done 13:10:16 writing output... [ 8%] cluster/carbon/caveats 13:10:16 writing output... [ 17%] cluster/carbon/index 13:10:16 writing output... [ 25%] cluster/carbon/release 13:10:16 writing output... [ 33%] cluster/carbon/sandbox 13:10:16 writing output... [ 42%] cluster/carbon/scenarios 13:10:16 writing output... [ 50%] cluster/carbon/sr1 13:10:16 writing output... [ 58%] cluster/carbon/sr2 13:10:16 writing output... [ 67%] cluster/carbon/tests 13:10:16 writing output... [ 75%] cluster/index 13:10:16 writing output... [ 83%] index 13:10:16 writing output... [ 92%] run-test-locally 13:10:17 writing output... [100%] system-test-guide 13:10:17 13:10:17 generating indices... genindex done 13:10:17 highlighting module code... 13:10:17 writing additional pages... search done 13:10:17 dumping search index in English (code: en)... done 13:10:17 dumping object inventory... done 13:10:17 build succeeded. 13:10:17 13:10:17 The HTML pages are in docs/_build/html. 13:10:17 docs: OK ✔ in 30.27 seconds 13:10:17 pre-commit: install_deps> python -I -m pip install pre-commit 13:10:20 pre-commit: freeze> python -m pip freeze --all 13:10:20 pre-commit: cfgv==3.5.0,distlib==0.4.4,filelock==4.2.4,identify==2.6.20,nodeenv==1.11.0,packaging==26.3,pip==26.2.2,platformdirs==4.13.5,pre_commit==4.7.0,python-discovery==1.6.4,PyYAML==6.0.3,setuptools==84.2.1,virtualenv==21.14.12 13:10:20 pre-commit: commands[0]> pre-commit run --all-files --show-diff-on-failure 13:10:20 [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. 13:10:20 [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. 13:10:20 [INFO] Initializing environment for https://github.com/PyCQA/flake8. 13:10:21 [INFO] Initializing environment for https://github.com/psf/black. 13:10:21 [INFO] Initializing environment for https://github.com/MarketSquare/robotframework-tidy. 13:10:22 [INFO] Initializing environment for https://github.com/MarketSquare/robotframework-tidy:robotframework==6.1.1. 13:10:22 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint. 13:10:23 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint:./gitlint-core[trusted-deps]. 13:10:24 [INFO] Initializing environment for local:rstcheck,sphinx. 13:10:24 [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. 13:10:24 [INFO] Once installed this environment will be reused. 13:10:24 [INFO] This may take a few minutes... 13:10:28 [INFO] Installing environment for https://github.com/PyCQA/flake8. 13:10:28 [INFO] Once installed this environment will be reused. 13:10:28 [INFO] This may take a few minutes... 13:10:32 [INFO] Installing environment for https://github.com/psf/black. 13:10:32 [INFO] Once installed this environment will be reused. 13:10:32 [INFO] This may take a few minutes... 13:10:36 [INFO] Installing environment for https://github.com/MarketSquare/robotframework-tidy. 13:10:36 [INFO] Once installed this environment will be reused. 13:10:36 [INFO] This may take a few minutes... 13:10:42 [INFO] Installing environment for local. 13:10:42 [INFO] Once installed this environment will be reused. 13:10:42 [INFO] This may take a few minutes... 13:10:55 trim trailing whitespace.................................................Passed 13:10:55 flake8...................................................................Failed 13:10:57 - hook id: flake8 13:10:57 - exit code: 1 13:10:57 13:10:57 tools/fastbgp/play2.py:2747:28: W292 no newline at end of file 13:10:57 threaded_job(arguments) ^ 13:10:57 tools/fastbgp/play3.py:2680:28: W292 no newline at end of file 13:10:57 threaded_job(arguments) ^ 13:10:57 13:10:57 black....................................................................Failed 13:11:02 - hook id: black 13:11:02 - files were modified by this hook 13:11:02 13:11:02 reformatted tools/fastbgp/play2.py 13:11:02 reformatted tools/fastbgp/play3.py 13:11:02 13:11:02 All done! ✨ 🍰 ✨ 13:11:02 2 files reformatted, 105 files left unchanged. 13:11:02 13:11:02 robotidy.................................................................Passed 13:11:02 rstcheck.................................................................Passed 13:11:03 pre-commit hook(s) made changes. 13:11:03 If you are seeing this message in CI, reproduce locally with: `pre-commit run --all-files`. 13:11:03 To run `pre-commit` as part of git workflow, use `pre-commit install`. 13:11:03 All changes made by hooks: 13:11:03 diff --git a/tools/fastbgp/play2.py b/tools/fastbgp/play2.py 13:11:03 index ca7dfd28..60a23a67 100755 13:11:03 --- a/tools/fastbgp/play2.py 13:11:03 +++ b/tools/fastbgp/play2.py 13:11:03 @@ -179,7 +179,9 @@ def parse_arguments(): 13:11:03 str_help = "Link-State NLRI supported" 13:11:03 parser.add_argument("--bgpls", default=False, type=bool, help=str_help) 13:11:03 str_help = "Link-State NLRI: Identifier" 13:11:03 - parser.add_argument("-lsid", "--lsid", dest="lsid", default=1, type=int, help=str_help) 13:11:03 + parser.add_argument( 13:11:03 + "-lsid", "--lsid", dest="lsid", default=1, type=int, help=str_help 13:11:03 + ) 13:11:03 str_help = "Link-State NLRI: Policy Color" 13:11:03 parser.add_argument( 13:11:03 "--color", "-lstid", dest="color", default=100, type=int, help=str_help 13:11:03 @@ -835,12 +837,8 @@ class MessageGenerator(object): 13:11:03 Returns: 13:11:03 :return: dictionary of LS NLRI parameters and values 13:11:03 """ 13:11:03 - identifier = self.ls_nlri_default["Identifier"] + int( 13:11:03 - index / self.lsid_step 13:11:03 - ) 13:11:03 - color = self.ls_nlri_default["Color"] + int( 13:11:03 - index / self.color_step 13:11:03 - ) 13:11:03 + identifier = self.ls_nlri_default["Identifier"] + int(index / self.lsid_step) 13:11:03 + color = self.ls_nlri_default["Color"] + int(index / self.color_step) 13:11:03 discriminator = self.ls_nlri_default["Discriminator"] + int( 13:11:03 index / self.discriminator_step 13:11:03 ) 13:11:03 @@ -1492,14 +1490,22 @@ class MessageGenerator(object): 13:11:03 13:11:03 # SR Policy Candidate Path Descriptor TLV (TLV 554) - RFC 9857 Section 4 13:11:03 tlv_554_val = ( 13:11:03 - struct.pack("B", int(ls_nlri["ProtocolOrigin"])) # 1 octet: Protocol-Origin 13:11:03 + struct.pack( 13:11:03 + "B", int(ls_nlri["ProtocolOrigin"]) 13:11:03 + ) # 1 octet: Protocol-Origin 13:11:03 + b"\x00" # 1 octet: Flags (E=0, O=0 for IPv4) 13:11:03 + b"\x00\x00" # 2 octets: Reserved 13:11:03 + struct.pack(">I", int(ls_nlri["Endpoint"])) # 4 octets: Endpoint 13:11:03 + struct.pack(">I", int(ls_nlri["Color"])) # 4 octets: Policy Color 13:11:03 - + struct.pack(">I", int(ls_nlri["OriginatorASN"])) # 4 octets: Originator ASN 13:11:03 - + struct.pack(">I", int(ls_nlri["OriginatorAddress"])) # 4 octets: Originator Address 13:11:03 - + struct.pack(">I", int(ls_nlri["Discriminator"])) # 4 octets: Discriminator 13:11:03 + + struct.pack( 13:11:03 + ">I", int(ls_nlri["OriginatorASN"]) 13:11:03 + ) # 4 octets: Originator ASN 13:11:03 + + struct.pack( 13:11:03 + ">I", int(ls_nlri["OriginatorAddress"]) 13:11:03 + ) # 4 octets: Originator Address 13:11:03 + + struct.pack( 13:11:03 + ">I", int(ls_nlri["Discriminator"]) 13:11:03 + ) # 4 octets: Discriminator 13:11:03 ) 13:11:03 tlv_554 = struct.pack(">HH", 554, len(tlv_554_val)) + tlv_554_val 13:11:03 13:11:03 @@ -2744,4 +2750,4 @@ def threaded_job(arguments): 13:11:03 if __name__ == "__main__": 13:11:03 arguments = parse_arguments() 13:11:03 logger = create_logger(arguments.loglevel, arguments.logfile) 13:11:03 - threaded_job(arguments) 13:11:03 \ No newline at end of file 13:11:03 + threaded_job(arguments) 13:11:03 diff --git a/tools/fastbgp/play3.py b/tools/fastbgp/play3.py 13:11:03 index 234e62a5..8a9edcad 100755 13:11:03 --- a/tools/fastbgp/play3.py 13:11:03 +++ b/tools/fastbgp/play3.py 13:11:03 @@ -179,7 +179,9 @@ def parse_arguments(): 13:11:03 str_help = "Link-State NLRI supported" 13:11:03 parser.add_argument("--bgpls", default=False, type=bool, help=str_help) 13:11:03 str_help = "Link-State NLRI: Identifier" 13:11:03 - parser.add_argument("-lsid", "--lsid", dest="lsid", default=1, type=int, help=str_help) 13:11:03 + parser.add_argument( 13:11:03 + "-lsid", "--lsid", dest="lsid", default=1, type=int, help=str_help 13:11:03 + ) 13:11:03 str_help = "Link-State NLRI: Policy Color" 13:11:03 parser.add_argument( 13:11:03 "--color", "-lstid", dest="color", default=100, type=int, help=str_help 13:11:03 @@ -920,18 +922,16 @@ class MessageGenerator(object): 13:11:03 """ 13:11:03 if self.nlri_type == 6: 13:11:03 identifier = self.base_identifier + int(index / self.lsid_step) 13:11:03 - sid = ipaddr.IPv6Address(int(self.base_sid) + int(index / self.srv6_sid_step)) 13:11:03 + sid = ipaddr.IPv6Address( 13:11:03 + int(self.base_sid) + int(index / self.srv6_sid_step) 13:11:03 + ) 13:11:03 srv6_nlri_values = self.srv6_nlri_default.copy() 13:11:03 srv6_nlri_values["Identifier"] = identifier 13:11:03 srv6_nlri_values["SID"] = sid 13:11:03 return srv6_nlri_values 13:11:03 13:11:03 - identifier = self.ls_nlri_default["Identifier"] + int( 13:11:03 - index / self.lsid_step 13:11:03 - ) 13:11:03 - color = self.ls_nlri_default["Color"] + int( 13:11:03 - index / self.color_step 13:11:03 - ) 13:11:03 + identifier = self.ls_nlri_default["Identifier"] + int(index / self.lsid_step) 13:11:03 + color = self.ls_nlri_default["Color"] + int(index / self.color_step) 13:11:03 discriminator = self.ls_nlri_default["Discriminator"] + int( 13:11:03 index / self.discriminator_step 13:11:03 ) 13:11:03 @@ -1139,151 +1139,72 @@ class MessageGenerator(object): 13:11:03 optional_parameters_hex = b"" 13:11:03 if self.rfc4760 or self.allf: 13:11:03 optional_parameter_hex = ( 13:11:03 - b"\x02" 13:11:03 - b"\x06" 13:11:03 - b"\x01" 13:11:03 - b"\x04" 13:11:03 - b"\x00\x01" 13:11:03 - b"\x00" 13:11:03 - b"\x01" 13:11:03 + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x01" b"\x00" b"\x01" 13:11:03 ) 13:11:03 optional_parameters_hex += optional_parameter_hex 13:11:03 13:11:03 if self.ipv6 or self.allf: 13:11:03 optional_parameter_hex = ( 13:11:03 - b"\x02" 13:11:03 - b"\x06" 13:11:03 - b"\x01" 13:11:03 - b"\x04" 13:11:03 - b"\x00\x02" 13:11:03 - b"\x00" 13:11:03 - b"\x01" 13:11:03 + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x02" b"\x00" b"\x01" 13:11:03 ) 13:11:03 optional_parameters_hex += optional_parameter_hex 13:11:03 13:11:03 if self.bgpls or self.allf: 13:11:03 optional_parameter_hex = ( 13:11:03 - b"\x02" 13:11:03 - b"\x06" 13:11:03 - b"\x01" 13:11:03 - b"\x04" 13:11:03 - b"\x40\x04" 13:11:03 - b"\x00" 13:11:03 - b"\x47" 13:11:03 + b"\x02" b"\x06" b"\x01" b"\x04" b"\x40\x04" b"\x00" b"\x47" 13:11:03 ) 13:11:03 optional_parameters_hex += optional_parameter_hex 13:11:03 13:11:03 if self.evpn or self.allf: 13:11:03 optional_parameter_hex = ( 13:11:03 - b"\x02" 13:11:03 - b"\x06" 13:11:03 - b"\x01" 13:11:03 - b"\x04" 13:11:03 - b"\x00\x19" 13:11:03 - b"\x00" 13:11:03 - b"\x46" 13:11:03 + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x19" b"\x00" b"\x46" 13:11:03 ) 13:11:03 optional_parameters_hex += optional_parameter_hex 13:11:03 13:11:03 if self.mvpn or self.allf: 13:11:03 optional_parameter_hex = ( 13:11:03 - b"\x02" 13:11:03 - b"\x06" 13:11:03 - b"\x01" 13:11:03 - b"\x04" 13:11:03 - b"\x00\x01" 13:11:03 - b"\x00" 13:11:03 - b"\x05" 13:11:03 + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x01" b"\x00" b"\x05" 13:11:03 ) 13:11:03 optional_parameters_hex += optional_parameter_hex 13:11:03 optional_parameter_hex = ( 13:11:03 - b"\x02" 13:11:03 - b"\x06" 13:11:03 - b"\x01" 13:11:03 - b"\x04" 13:11:03 - b"\x00\x02" 13:11:03 - b"\x00" 13:11:03 - b"\x05" 13:11:03 + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x02" b"\x00" b"\x05" 13:11:03 ) 13:11:03 optional_parameters_hex += optional_parameter_hex 13:11:03 13:11:03 if self.l3vpn_mcast or self.allf: 13:11:03 optional_parameter_hex = ( 13:11:03 - b"\x02" 13:11:03 - b"\x06" 13:11:03 - b"\x01" 13:11:03 - b"\x04" 13:11:03 - b"\x00\x01" 13:11:03 - b"\x00" 13:11:03 - b"\x81" 13:11:03 + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x01" b"\x00" b"\x81" 13:11:03 ) 13:11:03 optional_parameters_hex += optional_parameter_hex 13:11:03 optional_parameter_hex = ( 13:11:03 - b"\x02" 13:11:03 - b"\x06" 13:11:03 - b"\x01" 13:11:03 - b"\x04" 13:11:03 - b"\x00\x02" 13:11:03 - b"\x00" 13:11:03 - b"\x81" 13:11:03 + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x02" b"\x00" b"\x81" 13:11:03 ) 13:11:03 optional_parameters_hex += optional_parameter_hex 13:11:03 13:11:03 if self.l3vpn or self.allf: 13:11:03 optional_parameter_hex = ( 13:11:03 - b"\x02" 13:11:03 - b"\x06" 13:11:03 - b"\x01" 13:11:03 - b"\x04" 13:11:03 - b"\x00\x01" 13:11:03 - b"\x00" 13:11:03 - b"\x80" 13:11:03 + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x01" b"\x00" b"\x80" 13:11:03 ) 13:11:03 optional_parameters_hex += optional_parameter_hex 13:11:03 optional_parameter_hex = ( 13:11:03 - b"\x02" 13:11:03 - b"\x06" 13:11:03 - b"\x01" 13:11:03 - b"\x04" 13:11:03 - b"\x00\x02" 13:11:03 - b"\x00" 13:11:03 - b"\x80" 13:11:03 + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x02" b"\x00" b"\x80" 13:11:03 ) 13:11:03 optional_parameters_hex += optional_parameter_hex 13:11:03 13:11:03 if self.rt_constrain or self.allf: 13:11:03 optional_parameter_hex = ( 13:11:03 - b"\x02" 13:11:03 - b"\x06" 13:11:03 - b"\x01" 13:11:03 - b"\x04" 13:11:03 - b"\x00\x01" 13:11:03 - b"\x00" 13:11:03 - b"\x84" 13:11:03 + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x01" b"\x00" b"\x84" 13:11:03 ) 13:11:03 optional_parameters_hex += optional_parameter_hex 13:11:03 13:11:03 if self.bgplu or self.allf: 13:11:03 optional_parameter_hex = ( 13:11:03 - b"\x02" 13:11:03 - b"\x06" 13:11:03 - b"\x01" 13:11:03 - b"\x04" 13:11:03 - b"\x00\x01" 13:11:03 - b"\x00" 13:11:03 - b"\x04" 13:11:03 + b"\x02" b"\x06" b"\x01" b"\x04" b"\x00\x01" b"\x00" b"\x04" 13:11:03 ) 13:11:03 optional_parameters_hex += optional_parameter_hex 13:11:03 13:11:03 - optional_parameter_hex = ( 13:11:03 - b"\x02" 13:11:03 - b"\x06" 13:11:03 - b"\x41" 13:11:03 - b"\x04" 13:11:03 - ) 13:11:03 - optional_parameter_hex += struct.pack( 13:11:03 - ">I", my_autonomous_system 13:11:03 - ) 13:11:03 + optional_parameter_hex = b"\x02" b"\x06" b"\x41" b"\x04" 13:11:03 + optional_parameter_hex += struct.pack(">I", my_autonomous_system) 13:11:03 optional_parameters_hex += optional_parameter_hex 13:11:03 13:11:03 if self.grace != 8: 13:11:03 @@ -1466,48 +1387,20 @@ class MessageGenerator(object): 13:11:03 13:11:03 path_attributes_hex = b"" 13:11:03 if not self.skipattr: 13:11:03 - path_attributes_hex += ( 13:11:03 - b"\x40" 13:11:03 - b"\x01" 13:11:03 - b"\x01" 13:11:03 - b"\x00" 13:11:03 - ) 13:11:03 - path_attributes_hex += ( 13:11:03 - b"\x40" 13:11:03 - b"\x02" 13:11:03 - b"\x06" 13:11:03 - b"\x02" 13:11:03 - b"\x01" 13:11:03 - ) 13:11:03 + path_attributes_hex += b"\x40" b"\x01" b"\x01" b"\x00" 13:11:03 + path_attributes_hex += b"\x40" b"\x02" b"\x06" b"\x02" b"\x01" 13:11:03 my_as_hex = struct.pack(">I", my_autonomous_system) 13:11:03 path_attributes_hex += my_as_hex 13:11:03 - path_attributes_hex += ( 13:11:03 - b"\x40" 13:11:03 - b"\x05" 13:11:03 - b"\x04" 13:11:03 - b"\x00\x00\x00\x64" 13:11:03 - ) 13:11:03 + path_attributes_hex += b"\x40" b"\x05" b"\x04" b"\x00\x00\x00\x64" 13:11:03 if nlri_prefixes != []: 13:11:03 - path_attributes_hex += ( 13:11:03 - b"\x40" 13:11:03 - b"\x03" 13:11:03 - b"\x04" 13:11:03 - ) 13:11:03 + path_attributes_hex += b"\x40" b"\x03" b"\x04" 13:11:03 next_hop_hex = struct.pack(">I", int(next_hop)) 13:11:03 path_attributes_hex += next_hop_hex 13:11:03 if originator_id is not None: 13:11:03 - path_attributes_hex += ( 13:11:03 - b"\x80" 13:11:03 - b"\x09" 13:11:03 - b"\x04" 13:11:03 - ) 13:11:03 + path_attributes_hex += b"\x80" b"\x09" b"\x04" 13:11:03 path_attributes_hex += struct.pack(">I", int(originator_id)) 13:11:03 if cluster_list_item is not None: 13:11:03 - path_attributes_hex += ( 13:11:03 - b"\x80" 13:11:03 - b"\x0a" 13:11:03 - b"\x04" 13:11:03 - ) 13:11:03 + path_attributes_hex += b"\x80" b"\x0a" b"\x04" 13:11:03 path_attributes_hex += struct.pack(">I", int(cluster_list_item)) 13:11:03 13:11:03 if self.bgpls and not end_of_rib: 13:11:03 @@ -1552,17 +1445,12 @@ class MessageGenerator(object): 13:11:03 mp_reach_content = ( 13:11:03 b"\x40\x04" 13:11:03 b"\x47" 13:11:03 - b"\x04" 13:11:03 - + struct.pack(">I", int(next_hop)) 13:11:03 - + b"\x00" 13:11:03 - + nlri 13:11:03 + b"\x04" + struct.pack(">I", int(next_hop)) + b"\x00" + nlri 13:11:03 ) 13:11:03 13:11:03 path_attributes_hex += ( 13:11:03 b"\x80" 13:11:03 - b"\x0e" 13:11:03 - + struct.pack("B", len(mp_reach_content)) 13:11:03 - + mp_reach_content 13:11:03 + b"\x0e" + struct.pack("B", len(mp_reach_content)) + mp_reach_content 13:11:03 ) 13:11:03 13:11:03 elif self.nlri_type == 6: 13:11:03 @@ -1602,9 +1490,7 @@ class MessageGenerator(object): 13:11:03 13:11:03 path_attributes_hex += ( 13:11:03 b"\x80" 13:11:03 - b"\x0e" 13:11:03 - + struct.pack("B", len(mp_reach_content)) 13:11:03 - + mp_reach_content 13:11:03 + b"\x0e" + struct.pack("B", len(mp_reach_content)) + mp_reach_content 13:11:03 ) 13:11:03 13:11:03 # 5. BGP-LS Attribute (Attribute 29) 13:11:03 @@ -1630,9 +1516,7 @@ class MessageGenerator(object): 13:11:03 attr_29_content = tlv_1250 + tlv_1252 13:11:03 path_attributes_hex += ( 13:11:03 b"\x80" 13:11:03 - b"\x1d" 13:11:03 - + struct.pack("B", len(attr_29_content)) 13:11:03 - + attr_29_content 13:11:03 + b"\x1d" + struct.pack("B", len(attr_29_content)) + attr_29_content 13:11:03 ) 13:11:03 13:11:03 total_path_attributes_length = len(path_attributes_hex) 13:11:03 @@ -2677,4 +2561,4 @@ def threaded_job(arguments): 13:11:03 if __name__ == "__main__": 13:11:03 arguments = parse_arguments() 13:11:03 logger = create_logger(arguments.loglevel, arguments.logfile) 13:11:03 - threaded_job(arguments) 13:11:03 \ No newline at end of file 13:11:03 + threaded_job(arguments) 13:11:03 pre-commit: exit 1 (43.56 seconds) /w/workspace/integration-test-tox-verify-master> pre-commit run --all-files --show-diff-on-failure pid=2597 13:11:04 pre-commit: FAIL ✖ in 46.62 seconds 13:11:04 gitlint: install_deps> python -I -m pip install gitlint 13:11:08 gitlint: freeze> python -m pip freeze --all 13:11:08 gitlint: arrow==1.2.3,click==8.1.3,gitlint==0.19.1,gitlint-core==0.19.1,pip==26.2.2,python-dateutil==2.9.0.post0,setuptools==84.2.1,sh==1.14.3,six==1.17.0 13:11:08 gitlint: commands[0]> gitlint 13:11:08 docs: OK (30.26=setup[26.26]+cmd[4.00] seconds) 13:11:08 pre-commit: FAIL code 1 (46.62=setup[3.06]+cmd[43.56] seconds) 13:11:08 gitlint: OK (4.58=setup[4.41]+cmd[0.17] seconds) 13:11:08 evaluation failed :( (81.49 seconds) 13:11:08 + tox_status=1 13:11:08 + echo '---> Completed tox runs' 13:11:08 ---> Completed tox runs 13:11:08 + for i in .tox/*/log 13:11:08 ++ awk -F/ '{print $2}' 13:11:08 ++ echo .tox/docs/log 13:11:08 + tox_env=docs 13:11:08 + cp -r .tox/docs/log /w/workspace/integration-test-tox-verify-master/archives/tox/docs 13:11:08 + for i in .tox/*/log 13:11:08 ++ echo .tox/gitlint/log 13:11:08 ++ awk -F/ '{print $2}' 13:11:08 + tox_env=gitlint 13:11:08 + cp -r .tox/gitlint/log /w/workspace/integration-test-tox-verify-master/archives/tox/gitlint 13:11:08 + for i in .tox/*/log 13:11:08 ++ awk -F/ '{print $2}' 13:11:08 ++ echo .tox/pre-commit/log 13:11:08 + tox_env=pre-commit 13:11:08 + cp -r .tox/pre-commit/log /w/workspace/integration-test-tox-verify-master/archives/tox/pre-commit 13:11:08 + DOC_DIR=docs/_build/html 13:11:08 + [[ -d docs/_build/html ]] 13:11:08 + echo '---> Archiving generated docs' 13:11:08 ---> Archiving generated docs 13:11:08 + mv docs/_build/html /w/workspace/integration-test-tox-verify-master/archives/docs 13:11:08 + echo '---> tox-run.sh ends' 13:11:08 ---> tox-run.sh ends 13:11:08 + test 1 -eq 0 13:11:08 + exit 1 13:11:08 ++ '[' 1 = 1 ']' 13:11:08 ++ '[' -x /usr/bin/clear_console ']' 13:11:08 ++ /usr/bin/clear_console -q 13:11:08 Build step 'Execute shell' marked build as failure 13:11:08 $ ssh-agent -k 13:11:08 unset SSH_AUTH_SOCK; 13:11:08 unset SSH_AGENT_PID; 13:11:08 echo Agent pid 1543 killed; 13:11:08 [ssh-agent] Stopped. 13:11:08 [PostBuildScript] - [INFO] Executing post build scripts. 13:11:08 [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins15586576912831273072.sh 13:11:08 ---> sysstat.sh 13:11:08 [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins869413066330445749.sh 13:11:08 ---> package-listing.sh 13:11:08 + '[' -f /etc/os-release ']' 13:11:08 + . /etc/os-release 13:11:08 ++ PRETTY_NAME='Ubuntu 22.04.5 LTS' 13:11:08 ++ NAME=Ubuntu 13:11:08 ++ VERSION_ID=22.04 13:11:08 ++ VERSION='22.04.5 LTS (Jammy Jellyfish)' 13:11:08 ++ VERSION_CODENAME=jammy 13:11:08 ++ ID=ubuntu 13:11:08 ++ ID_LIKE=debian 13:11:08 ++ HOME_URL=https://www.ubuntu.com/ 13:11:08 ++ SUPPORT_URL=https://help.ubuntu.com/ 13:11:08 ++ BUG_REPORT_URL=https://bugs.launchpad.net/ubuntu/ 13:11:08 ++ PRIVACY_POLICY_URL=https://www.ubuntu.com/legal/terms-and-policies/privacy-policy 13:11:08 ++ UBUNTU_CODENAME=jammy 13:11:08 + case " ${ID:-} ${ID_LIKE:-} " in 13:11:08 + OS_FAMILY=debian 13:11:08 + workspace=/w/workspace/integration-test-tox-verify-master 13:11:08 + START_PACKAGES=/tmp/packages_start.txt 13:11:08 + END_PACKAGES=/tmp/packages_end.txt 13:11:08 + DIFF_PACKAGES=/tmp/packages_diff.txt 13:11:08 + PACKAGES=/tmp/packages_start.txt 13:11:08 + '[' /w/workspace/integration-test-tox-verify-master ']' 13:11:08 + PACKAGES=/tmp/packages_end.txt 13:11:08 + case "${OS_FAMILY}" in 13:11:08 + dpkg -l 13:11:08 + grep '^ii' 13:11:08 + '[' -f /tmp/packages_start.txt ']' 13:11:08 + '[' -f /tmp/packages_end.txt ']' 13:11:08 + diff /tmp/packages_start.txt /tmp/packages_end.txt 13:11:08 + '[' /w/workspace/integration-test-tox-verify-master ']' 13:11:08 + mkdir -p /w/workspace/integration-test-tox-verify-master/archives/ 13:11:08 + cp -f /tmp/packages_diff.txt /tmp/packages_end.txt /tmp/packages_start.txt /w/workspace/integration-test-tox-verify-master/archives/ 13:11:08 + exit 0 13:11:08 [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins5289285430301725198.sh 13:11:08 ---> capture-instance-metadata.sh 13:11:08 Setup pyenv: 13:11:08 system 13:11:08 3.8.20 13:11:08 3.9.20 13:11:08 3.10.15 13:11:08 * 3.11.10 (set by /w/workspace/integration-test-tox-verify-master/.python-version) 13:11:09 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-Sf6G from file:/tmp/.os_lf_venv 13:11:09 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 13:11:10 lf-activate-venv(): INFO: Installing additional packages: lftools 13:11:23 lf-activate-venv(): INFO: Adding /tmp/venv-Sf6G/bin to PATH 13:11:23 INFO: Running in OpenStack, capturing instance metadata 13:11:24 [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins6523655596399499389.sh 13:11:24 provisioning config files... 13:11:25 Could not find credentials [logs] for integration-test-tox-verify-master #10272 13:11:25 copy managed file [jenkins-log-archives-settings] to file:/w/workspace/integration-test-tox-verify-master@tmp/config1002037633634788975tmp 13:11:25 Regular expression run condition: Expression=[^.*logs-s3.*], Label=[odl-logs-s3-cloudfront-index] 13:11:25 Run condition [Regular expression match] enabling perform for step [Provide Configuration files] 13:11:25 provisioning config files... 13:11:25 copy managed file [jenkins-s3-log-ship] to file:/home/jenkins/.aws/credentials 13:11:25 [EnvInject] - Injecting environment variables from a build step. 13:11:25 [EnvInject] - Injecting as environment variables the properties content 13:11:25 SERVER_ID=logs 13:11:25 13:11:25 [EnvInject] - Variables injected successfully. 13:11:25 [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins1180698793958593995.sh 13:11:25 ---> create-netrc.sh 13:11:25 WARN: Log server credential not found. 13:11:25 [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins5476266672184956290.sh 13:11:25 ---> python-tools-install.sh 13:11:25 Setup pyenv: 13:11:25 system 13:11:25 3.8.20 13:11:25 3.9.20 13:11:25 3.10.15 13:11:25 * 3.11.10 (set by /w/workspace/integration-test-tox-verify-master/.python-version) 13:11:25 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-Sf6G from file:/tmp/.os_lf_venv 13:11:25 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 13:11:27 lf-activate-venv(): INFO: Installing additional packages: lftools 13:11:37 lf-activate-venv(): INFO: Adding /tmp/venv-Sf6G/bin to PATH 13:11:37 [integration-test-tox-verify-master] $ /bin/sh /tmp/jenkins15508465520557922967.sh 13:11:37 ---> uv-install.sh 13:11:37 uv 0.13.4 is already installed 13:11:37 uvx 0.13.4 (x86_64-unknown-linux-gnu) 13:11:37 [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins18050712709370895564.sh 13:11:37 ---> sudo-logs.sh 13:11:37 Archiving 'sudo' log.. 13:11:37 [integration-test-tox-verify-master] $ /bin/bash /tmp/jenkins15084809388354535519.sh 13:11:37 ---> job-cost.sh 13:11:37 INFO: Activating Python virtual environment... 13:11:37 Setup pyenv: 13:11:37 system 13:11:37 3.8.20 13:11:37 3.9.20 13:11:37 3.10.15 13:11:37 * 3.11.10 (set by /w/workspace/integration-test-tox-verify-master/.python-version) 13:11:37 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-Sf6G from file:/tmp/.os_lf_venv 13:11:37 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 13:11:39 lf-activate-venv(): INFO: Installing additional packages: zipp==1.1.0 python-openstackclient urllib3~=1.26.15 13:11:45 lf-activate-venv(): INFO: Adding /tmp/venv-Sf6G/bin to PATH 13:11:45 INFO: No stack-cost file found 13:11:45 INFO: Instance uptime: 436s 13:11:45 INFO: Fetching instance metadata (attempt 1 of 3)... 13:11:45 DEBUG: URL: http://169.254.169.254/latest/meta-data/instance-type 13:11:46 INFO: Successfully fetched instance metadata 13:11:46 INFO: Instance type: v3-standard-2 13:11:46 INFO: Retrieving pricing info for: v3-standard-2 13:11:46 INFO: Fetching Vexxhost pricing API (attempt 1 of 3)... 13:11:46 DEBUG: URL: https://pricing.vexxhost.net/v1/pricing/v3-standard-2/cost?seconds=436 13:11:46 INFO: Successfully fetched Vexxhost pricing API 13:11:46 INFO: Retrieved cost: 0.06 13:11:46 INFO: Retrieved resource: v3-standard-2 13:11:46 INFO: Creating archive directory: /w/workspace/integration-test-tox-verify-master/archives/cost 13:11:46 INFO: Archiving costs to: /w/workspace/integration-test-tox-verify-master/archives/cost.csv 13:11:46 INFO: Successfully archived job cost data 13:11:46 DEBUG: Cost data: integration-test-tox-verify-master,10272,2026-10-21 13:11:46,v3-standard-2,436,0.06,0.00,FAILURE 13:11:46 [integration-test-tox-verify-master] $ /bin/bash -l /tmp/jenkins8085906660978059469.sh 13:11:46 ---> logs-deploy.sh 13:11:46 Setup pyenv: 13:11:46 system 13:11:46 3.8.20 13:11:46 3.9.20 13:11:46 3.10.15 13:11:46 * 3.11.10 (set by /w/workspace/integration-test-tox-verify-master/.python-version) 13:11:46 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-Sf6G from file:/tmp/.os_lf_venv 13:11:46 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 13:11:48 lf-activate-venv(): INFO: Installing additional packages: lftools urllib3~=1.26.15 13:12:01 lf-activate-venv(): INFO: Adding /tmp/venv-Sf6G/bin to PATH 13:12:01 WARNING: Nexus logging server not set 13:12:01 INFO: S3 path logs/releng/vex-yul-odl-jenkins-1/integration-test-tox-verify-master/10272/ 13:12:01 INFO: archiving logs to S3 13:12:02 ---> uname -a: 13:12:02 Linux prd-ubuntu2204-builder-2c-2g-66148 5.15.0-194-generic #204-Ubuntu SMP Wed Sep 2 13:09:23 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux 13:12:02 13:12:02 13:12:02 ---> lscpu: 13:12:02 Architecture: x86_64 13:12:02 CPU op-mode(s): 32-bit, 64-bit 13:12:02 Address sizes: 40 bits physical, 48 bits virtual 13:12:02 Byte Order: Little Endian 13:12:02 CPU(s): 2 13:12:02 On-line CPU(s) list: 0,1 13:12:02 Vendor ID: AuthenticAMD 13:12:02 Model name: AMD EPYC-Rome Processor 13:12:02 CPU family: 23 13:12:02 Model: 49 13:12:02 Thread(s) per core: 1 13:12:02 Core(s) per socket: 1 13:12:02 Socket(s): 2 13:12:02 Stepping: 0 13:12:02 BogoMIPS: 5600.00 13:12:02 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 lbrv nrip_save tsc_scale vmcb_clean flushbyasid pausefilter pfthreshold v_vmsave_vmload vgif umip rdpid arch_capabilities 13:12:02 Virtualization: AMD-V 13:12:02 Hypervisor vendor: KVM 13:12:02 Virtualization type: full 13:12:02 L1d cache: 64 KiB (2 instances) 13:12:02 L1i cache: 64 KiB (2 instances) 13:12:02 L2 cache: 1 MiB (2 instances) 13:12:02 L3 cache: 32 MiB (2 instances) 13:12:02 NUMA node(s): 1 13:12:02 NUMA node0 CPU(s): 0,1 13:12:02 Vulnerability Gather data sampling: Not affected 13:12:02 Vulnerability Indirect target selection: Not affected 13:12:02 Vulnerability Itlb multihit: Not affected 13:12:02 Vulnerability L1tf: Not affected 13:12:02 Vulnerability Mds: Not affected 13:12:02 Vulnerability Meltdown: Not affected 13:12:02 Vulnerability Mmio stale data: Not affected 13:12:02 Vulnerability Reg file data sampling: Not affected 13:12:02 Vulnerability Retbleed: Mitigation; untrained return thunk; SMT disabled 13:12:02 Vulnerability Spec rstack overflow: Mitigation; SMT disabled 13:12:02 Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp 13:12:02 Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization 13:12:02 Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected 13:12:02 Vulnerability Srbds: Not affected 13:12:02 Vulnerability Tsa: Not affected 13:12:02 Vulnerability Tsx async abort: Not affected 13:12:02 Vulnerability Vmscape: Not affected 13:12:02 13:12:02 13:12:02 ---> nproc: 13:12:02 2 13:12:02 13:12:02 13:12:02 ---> df -h: 13:12:02 Filesystem Size Used Avail Use% Mounted on 13:12:02 tmpfs 794M 1.1M 793M 1% /run 13:12:02 /dev/vda1 39G 12G 28G 30% / 13:12:02 tmpfs 3.9G 0 3.9G 0% /dev/shm 13:12:02 tmpfs 5.0M 0 5.0M 0% /run/lock 13:12:02 /dev/vda15 105M 6.1M 99M 6% /boot/efi 13:12:02 tmpfs 794M 4.0K 794M 1% /run/user/1001 13:12:02 13:12:02 13:12:02 ---> free -m: 13:12:02 total used free shared buff/cache available 13:12:02 Mem: 7937 575 3789 4 3573 7050 13:12:02 Swap: 1023 0 1023 13:12:02 13:12:02 13:12:02 ---> ip addr: 13:12:02 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 13:12:02 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 13:12:02 inet 127.0.0.1/8 scope host lo 13:12:02 valid_lft forever preferred_lft forever 13:12:02 inet6 ::1/128 scope host 13:12:02 valid_lft forever preferred_lft forever 13:12:02 2: ens3: mtu 1458 qdisc mq state UP group default qlen 1000 13:12:02 link/ether fa:16:3e:41:f1:4e brd ff:ff:ff:ff:ff:ff 13:12:02 altname enp0s3 13:12:02 inet 10.30.171.36/23 metric 100 brd 10.30.171.255 scope global dynamic ens3 13:12:02 valid_lft 85956sec preferred_lft 85956sec 13:12:02 inet6 fe80::f816:3eff:fe41:f14e/64 scope link 13:12:02 valid_lft forever preferred_lft forever 13:12:02 3: docker0: mtu 1458 qdisc noqueue state DOWN group default 13:12:02 link/ether 32:a3:d0:c6:c5:d0 brd ff:ff:ff:ff:ff:ff 13:12:02 inet 10.250.0.254/24 brd 10.250.0.255 scope global docker0 13:12:02 valid_lft forever preferred_lft forever 13:12:02 13:12:02 13:12:02 ---> sar -b -r -n DEV: 13:12:02 Linux 5.15.0-194-generic (prd-ubuntu2204-builder-2c-2g-66148) 10/21/26 _x86_64_ (2 CPU) 13:12:02 13:12:02 13:04:42 LINUX RESTART (2 CPU) 13:12:02 13:12:02 13:12:02 ---> sar -P ALL: 13:12:02 Linux 5.15.0-194-generic (prd-ubuntu2204-builder-2c-2g-66148) 10/21/26 _x86_64_ (2 CPU) 13:12:02 13:12:02 13:04:42 LINUX RESTART (2 CPU) 13:12:02 13:12:02 13:12:02