Build failed in Jenkins: Ndev__foxglove_bridge__ubuntu_focal_amd64 #155

0 views
Skip to first unread message

ROS Buildfarm

unread,
Jun 9, 2025, 2:00:32 PM6/9/25
to ros-buildf...@googlegroups.com, sloretz+...@openrobotics.org, ac...@foxglove.dev
See <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/155/display/redirect>

Changes:


------------------------------------------
[...truncated 7.38 KB...]
# BEGIN SECTION: Embed wrapper scripts
+ rm -fr wrapper_scripts
+ mkdir wrapper_scripts
+ printf # Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the "License");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an "AS IS" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert "Command '%%s' not implemented" %% command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print("Reinvoke 'git %%s' (%%d/%%d) after sleeping %%s seconds" %%\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print("Invoking '%%s'" %% ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())
+ echo # END SECTION
# END SECTION
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins4066496661495607102.sh
+ echo # BEGIN SECTION: Clone ros_buildfarm
# BEGIN SECTION: Clone ros_buildfarm
+ rm -fr ros_buildfarm
+ python3 -u wrapper_scripts/git.py clone --depth 1 -b build.ros.org https://github.com/ros-infrastructure/ros_buildfarm.git ros_buildfarm
Invoking 'git clone --depth 1 -b build.ros.org https://github.com/ros-infrastructure/ros_buildfarm.git ros_buildfarm'
Cloning into 'ros_buildfarm'...
+ git -C ros_buildfarm --no-pager log -n 1
commit ce1d3f6d574ca36f0bd5ed60a8d899b8035e4b55
Author: Crola1702 <cristoba...@ekumenlabs.com>
Date: Wed Apr 2 17:35:30 2025 -0500

Revert 24.04 jenkins changes from (#1084)"

This reverts the changes to commit to reconfigure_jobs.groovy.em template,
that needs DiffUtils. However, that is not supported on the current
version of build.ros.org

Signed-off-by: Crola1702 <cristoba...@ekumenlabs.com>
+ rm -fr ros_buildfarm/.git
+ rm -fr ros_buildfarm/doc
+ echo # END SECTION
# END SECTION
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins8925973162297413807.sh
+ echo # BEGIN SECTION: Write PGP repository keys
# BEGIN SECTION: Write PGP repository keys
+ mkdir -p <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/keys>
+ rm -fr <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/keys/*>
+ echo -----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQINBFzvJpYBEADY8l1YvO7iYW5gUESyzsTGnMvVUmlV3XarBaJz9bGRmgPXh7jc
VFrQhE0L/HV7LOfoLI9H2GWYyHBqN5ERBlcA8XxG3ZvX7t9nAZPQT2Xxe3GT3tro
u5oCR+SyHN9xPnUwDuqUSvJ2eqMYb9B/Hph3OmtjG30jSNq9kOF5bBTk1hOTGPH4
K/AY0jzT6OpHfXU6ytlFsI47ZKsnTUhipGsKucQ1CXlyirndZ3V3k70YaooZ55rG
aIoAWlx2H0J7sAHmqS29N9jV9mo135d+d+TdLBXI0PXtiHzE9IPaX+ctdSUrPnp+
TwR99lxglpIG6hLuvOMAaxiqFBB/Jf3XJ8OBakfS6nHrWH2WqQxRbiITl0irkQoz
pwNEF2Bv0+Jvs1UFEdVGz5a8xexQHst/RmKrtHLct3iOCvBNqoAQRbvWvBhPjO/p
V5cYeUljZ5wpHyFkaEViClaVWqa6PIsyLqmyjsruPCWlURLsQoQxABcL8bwxX7UT
hM6CtH6tGlYZ85RIzRifIm2oudzV5l+8oRgFr9yVcwyOFT6JCioqkwldW52P1pk/
/SnuexC6LYqqDuHUs5NnokzzpfS6QaWfTY5P5tz4KHJfsjDIktly3mKVfY0fSPVV
okdGpcUzvz2hq1fqjxB6MlB/1vtk0bImfcsoxBmF7H+4E9ZN1sX/tSb0KQARAQAB
tCZPcGVuIFJvYm90aWNzIDxpbmZvQG9zcmZvdW5kYXRpb24ub3JnPokCVAQTAQgA
PgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBMHPbjHmut6IaLFytPQu1vur
F8ZUBQJgsdhRBQkLTMW7AAoJEPQu1vurF8ZUTMwP/3f7EkOPIFjUdRmpNJ2db4iB
RQu5b2SJRG+KIdbvQBzKUBMV6/RUhEDPjhXZI3zDevzBewvAMKkqs2Q1cWo9WV7Z
PyTkvSyey/Tjn+PozcdvzkvrEjDMftIk8E1WzLGq7vnPLZ1q/b6Vq4H373Z+EDWa
DaDwW72CbCBLWAVtqff80CwlI2x8fYHKr3VBUnwcXNHR4+nRABfAWnaU4k+oTshC
Qucsd8vitNfsSXrKuKyz91IRHRPnJjx8UvGU4tRGfrHkw1505EZvgP02vXeRyWBR
fKiL1vGy4tCSRDdZO3ms2J2m08VPv65HsHaWYMnO+rNJmMZj9d9JdL/9GRf5F6U0
quoIFL39BhUEvBynuqlrqistnyOhw8W/IQy/ymNzBMcMz6rcMjMwhkgm/LNXoSD1
1OrJu4ktQwRhwvGVarnB8ihwjsTxZFylaLmFSfaA+OAlOqCLS1OkIVMzjW+Ul6A6
qjiCEUOsnlf4CGlhzNMZOx3low6ixzEqKOcfECpeIj80a2fBDmWkcAAjlHu6VBhA
TUDG9e2xKLzV2Z/DLYsb3+n9QW7KO0yZKfiuUo6AYboAioQKn5jh3iRvjGh2Ujpo
22G+oae3PcCc7G+z12j6xIY709FQuA49dA2YpzMda0/OX4LP56STEveDRrO+CnV6
WE+F5FaIKwb72PL4rLi4
=i0tj
-----END PGP PUBLIC KEY BLOCK-----

+ echo # END SECTION
# END SECTION
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins320672359574381510.sh
+ rm -fr <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/docker_generating_dockers>
+ mkdir -p <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/docker_generating_dockers>
+ sleep 1
+ python3 -u <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/ros_buildfarm/scripts/subprocess_reaper.py> 506912 --cid-file <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/docker_generating_dockers/docker.cid>
+ export build_tool_args=
+ export build_tool_test_args=
+ echo # BEGIN SECTION: Generate Dockerfile - devel tasks
# BEGIN SECTION: Generate Dockerfile - devel tasks
+ export TZ=PST+08
+ export PYTHONPATH=<https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/ros_buildfarm>:
+ python3 -u <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/ros_buildfarm/scripts/devel/run_devel_job.py> --rosdistro-index-url https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml noetic default foxglove_bridge ubuntu focal amd64 --distribution-repository-urls http://repositories.ros.org/ubuntu/testing --distribution-repository-key-files <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/keys/0.key> --build-tool catkin_make_isolated --ros-version 1 --env-vars ROS_PYTHON_VERSION=3 --dockerfile-dir <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/docker_generating_dockers> --build-tool-args --build-tool-test-args
Using the following distribution repositories:
http://repositories.ros.org/ubuntu/testing (<https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/keys/0.key)>
Generating Dockerfile '<https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/docker_generating_dockers/Dockerfile'>:
# generated from devel/devel_create_tasks.Dockerfile.em

FROM ubuntu:focal

VOLUME ["/var/cache/apt/archives"]

ENV DEBIAN_FRONTEND noninteractive

# Opt-out of phased updates, which can create inconsistencies between installed package versions as different containers end up on different phases.
# https://wiki.ubuntu.com/PhasedUpdates
RUN echo 'APT::Get::Never-Include-Phased-Updates "true";' > /etc/apt/apt.conf.d/90-phased-updates

RUN for i in 1 2 3; do apt-get update && apt-get install -q -y locales && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV TZ PST+08

# Add user 'buildfarm', removing any existing user with that UID
RUN if [ $(id -nu 1001) ]; then userdel -r $(id -nu 1001); fi && useradd -u 1001 -l -m buildfarm


RUN mkdir /tmp/keys
RUN for i in 1 2 3; do apt-get update && apt-get install -q -y gnupg ca-certificates && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
RUN echo "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1\n\nmQINBFzvJpYBEADY8l1YvO7iYW5gUESyzsTGnMvVUmlV3XarBaJz9bGRmgPXh7jc\nVFrQhE0L/HV7LOfoLI9H2GWYyHBqN5ERBlcA8XxG3ZvX7t9nAZPQT2Xxe3GT3tro\nu5oCR+SyHN9xPnUwDuqUSvJ2eqMYb9B/Hph3OmtjG30jSNq9kOF5bBTk1hOTGPH4\nK/AY0jzT6OpHfXU6ytlFsI47ZKsnTUhipGsKucQ1CXlyirndZ3V3k70YaooZ55rG\naIoAWlx2H0J7sAHmqS29N9jV9mo135d+d+TdLBXI0PXtiHzE9IPaX+ctdSUrPnp+\nTwR99lxglpIG6hLuvOMAaxiqFBB/Jf3XJ8OBakfS6nHrWH2WqQxRbiITl0irkQoz\npwNEF2Bv0+Jvs1UFEdVGz5a8xexQHst/RmKrtHLct3iOCvBNqoAQRbvWvBhPjO/p\nV5cYeUljZ5wpHyFkaEViClaVWqa6PIsyLqmyjsruPCWlURLsQoQxABcL8bwxX7UT\nhM6CtH6tGlYZ85RIzRifIm2oudzV5l+8oRgFr9yVcwyOFT6JCioqkwldW52P1pk/\n/SnuexC6LYqqDuHUs5NnokzzpfS6QaWfTY5P5tz4KHJfsjDIktly3mKVfY0fSPVV\nokdGpcUzvz2hq1fqjxB6MlB/1vtk0bImfcsoxBmF7H+4E9ZN1sX/tSb0KQARAQAB\ntCZPcGVuIFJvYm90aWNzIDxpbmZvQG9zcmZvdW5kYXRpb24ub3JnPokCVAQTAQgA\nPgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBMHPbjHmut6IaLFytPQu1vur\nF8ZUBQJgsdhRBQkLTMW7AAoJEPQu1vurF8ZUTMwP/3f7EkOPIFjUdRmpNJ2db4iB\nRQu5b2SJRG+KIdbvQBzKUBMV6/RUhEDPjhXZI3zDevzBewvAMKkqs2Q1cWo9WV7Z\nPyTkvSyey/Tjn+PozcdvzkvrEjDMftIk8E1WzLGq7vnPLZ1q/b6Vq4H373Z+EDWa\nDaDwW72CbCBLWAVtqff80CwlI2x8fYHKr3VBUnwcXNHR4+nRABfAWnaU4k+oTshC\nQucsd8vitNfsSXrKuKyz91IRHRPnJjx8UvGU4tRGfrHkw1505EZvgP02vXeRyWBR\nfKiL1vGy4tCSRDdZO3ms2J2m08VPv65HsHaWYMnO+rNJmMZj9d9JdL/9GRf5F6U0\nquoIFL39BhUEvBynuqlrqistnyOhw8W/IQy/ymNzBMcMz6rcMjMwhkgm/LNXoSD1\n1OrJu4ktQwRhwvGVarnB8ihwjsTxZFylaLmFSfaA+OAlOqCLS1OkIVMzjW+Ul6A6\nqjiCEUOsnlf4CGlhzNMZOx3low6ixzEqKOcfECpeIj80a2fBDmWkcAAjlHu6VBhA\nTUDG9e2xKLzV2Z/DLYsb3+n9QW7KO0yZKfiuUo6AYboAioQKn5jh3iRvjGh2Ujpo\n22G+oae3PcCc7G+z12j6xIY709FQuA49dA2YpzMda0/OX4LP56STEveDRrO+CnV6\nWE+F5FaIKwb72PL4rLi4\n=i0tj\n-----END PGP PUBLIC KEY BLOCK-----" > /tmp/keys/0.key && apt-key add /tmp/keys/0.key
RUN echo deb http://repositories.ros.org/ubuntu/testing focal main | tee -a /etc/apt/sources.list.d/buildfarm.list

RUN mkdir /tmp/wrapper_scripts
RUN echo "# Copyright 2014-2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Failed to fetch',\n 'Failed to stat',\n 'Hash Sum mismatch',\n 'Unable to locate package',\n 'is not what the server reported',\n ]\n\n command = argv[0]\n if command in ['update', 'source']:\n rc, _, _ = call_apt_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n elif command == 'update-install-clean':\n return call_apt_update_install_clean(\n argv[1:], known_error_strings, max_tries)\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_apt_update_install_clean(\n install_argv, known_error_strings, max_tries):\n tries = 0\n command = 'update'\n while tries < max_tries:\n if command == 'update':\n rc, _, tries = call_apt_repeatedly(\n [command], known_error_strings, max_tries - tries,\n offset=tries)\n if rc != 0:\n # abort if update was unsuccessful even after retries\n break\n # move on to the install command if update was successful\n command = 'install'\n\n if command == 'install':\n # any call is considered a try\n tries += 1\n known_error_strings_redo_update = [\n 'Size mismatch',\n 'maybe run apt update',\n 'The following packages cannot be authenticated!',\n 'Unable to locate package',\n 'has no installation candidate',\n 'corrupted package archive',\n ]\n rc, known_error_conditions = \\\\\n call_apt(\n [command] + install_argv,\n known_error_strings + known_error_strings_redo_update)\n if not known_error_conditions:\n if rc != 0:\n # abort if install was unsuccessful\n break\n # move on to the clean command if install was successful\n command = 'clean'\n continue\n\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n # check if update needs to be rerun\n if (\n set(known_error_conditions) &\n set(known_error_strings_redo_update)\n ):\n command = 'update'\n print(\"'apt install' failed and likely requires \" +\n \"'apt update' to run again\")\n # retry with update command\n continue\n\n print('')\n print('Invocation failed due to the following known error '\n 'conditions: ' + ', '.join(known_error_conditions))\n print('')\n if tries < max_tries:\n sleep_time = 5\n print(\"Reinvoke 'apt install' after sleeping %s seconds\" %\n sleep_time)\n sleep(sleep_time)\n # retry install command\n\n if command == 'clean':\n rc, _ = call_apt([command], [])\n break\n\n return rc\n\n\ndef call_apt_repeatedly(argv, known_error_strings, max_tries, offset=0):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * (i + offset)\n print(\"Reinvoke 'apt %s' (%d/%d) after sleeping %s seconds\" %\n (command, i + offset, max_tries + offset, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_apt(argv, known_error_strings)\n if not known_error_conditions:\n # break the loop and return the reported rc\n break\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i + offset\n\n\ndef call_apt(argv, known_error_strings):\n known_error_conditions = []\n\n # some of the used options are not supported in older distros\n # e.g. Ubuntu Wily, Debian Jessie\n cmd = ['apt-get'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n lines = []\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n lines.append(line)\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n if rc and not known_error_conditions:\n print('Invocation failed without any known error condition, '\n 'printing all lines to debug known error detection:')\n for index, line in enumerate(lines):\n print(' ', index + 1, \"'%s'\" % line.rstrip('\\\\n\\\\r'))\n print('None of the following known errors were detected:')\n for index, known_error_string in enumerate(known_error_strings):\n print(' ', index + 1, \"'%s'\" % known_error_string)\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/apt.py
RUN echo "# Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print(\"Reinvoke 'git %s' (%d/%d) after sleeping %s seconds\" %\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/git.py

# automatic invalidation once every day
RUN echo "2025-06-09 (-0800)"

RUN for i in 1 2 3; do apt-get update && apt-get install -q -y python3 && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done

RUN python3 -u /tmp/wrapper_scripts/apt.py update-install-clean -q -y git python3-apt python3-catkin-pkg-modules python3-empy python3-rosdep python3-rosdistro-modules wget

# always invalidate to actually have the latest apt and rosdep state
RUN echo "2025-06-09 10:00:12 -0800"
RUN python3 -u /tmp/wrapper_scripts/apt.py update

ENV ROSDISTRO_INDEX_URL https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml

RUN rosdep init

USER buildfarm

ENTRYPOINT ["sh", "-c"]
CMD ["rosdep update && PYTHONPATH=/tmp/ros_buildfarm:$PYTHONPATH python3 -u /tmp/ros_buildfarm/scripts/devel/create_devel_task_generator.py --rosdistro-name noetic --workspace-root /tmp/ws --os-name ubuntu --os-code-name focal --arch amd64 --distribution-repository-urls http://repositories.ros.org/ubuntu/testing --distribution-repository-key-files /tmp/keys/0.key --build-tool catkin_make_isolated --ros-version 1 --env-vars ROS_PYTHON_VERSION=3 --dockerfile-dir /tmp/docker_build_and_install --build-tool-args && PYTHONPATH=/tmp/ros_buildfarm:$PYTHONPATH python3 -u /tmp/ros_buildfarm/scripts/devel/create_devel_task_generator.py --rosdistro-name noetic --workspace-root /tmp/ws --os-name ubuntu --os-code-name focal --arch amd64 --distribution-repository-urls http://repositories.ros.org/ubuntu/testing --distribution-repository-key-files /tmp/keys/0.key --build-tool catkin_make_isolated --ros-version 1 --env-vars ROS_PYTHON_VERSION=3 --dockerfile-dir /tmp/docker_build_and_test --testing --build-tool-args --build-tool-test-args "]
+ echo # END SECTION
# END SECTION
+ echo # BEGIN SECTION: Build Dockerfile - generating devel tasks
# BEGIN SECTION: Build Dockerfile - generating devel tasks
+ cd <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/docker_generating_dockers>
+ python3 -u <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/ros_buildfarm/scripts/misc/docker_pull_baseimage.py>
Get base image name from Dockerfile 'Dockerfile': ubuntu:focal
Check docker base image for updates: docker pull ubuntu:focal
focal: Pulling from library/ubuntu
Digest: sha256:8feb4d8ca5354def3d8fce243717141ce31e2c428701f6682bd2fafe15388214
Status: Image is up to date for ubuntu:focal
docker.io/library/ubuntu:focal
+ docker build --force-rm -t devel_task_generation.noetic_foxglove_bridge .
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/

Sending build context to Docker daemon 17.92kB
Step 1/27 : FROM ubuntu:focal
---> b7bab04fd9aa
Step 2/27 : VOLUME ["/var/cache/apt/archives"]
---> Using cache
---> 146162193e72
Step 3/27 : ENV DEBIAN_FRONTEND noninteractive
---> Using cache
---> ee6b4889023e
Step 4/27 : RUN echo 'APT::Get::Never-Include-Phased-Updates "true";' > /etc/apt/apt.conf.d/90-phased-updates
---> Using cache
---> a36ac6dccf37
Step 5/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y locales && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Using cache
---> 28c69fa18386
Step 6/27 : RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
---> Using cache
---> 8b35bbb433c0
Step 7/27 : RUN locale-gen en_US.UTF-8
---> Using cache
---> 30b4c8f362fb
Step 8/27 : ENV LANG en_US.UTF-8
---> Using cache
---> 7dd7af9c4ff8
Step 9/27 : ENV TZ PST+08
---> Using cache
---> 9816af9f2927
Step 10/27 : RUN if [ $(id -nu 1001) ]; then userdel -r $(id -nu 1001); fi && useradd -u 1001 -l -m buildfarm
---> Using cache
---> ac69c52f1cd7
Step 11/27 : RUN mkdir /tmp/keys
---> Using cache
---> 05515b509c50
Step 12/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y gnupg ca-certificates && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Using cache
---> a2095f2c9335
Step 13/27 : RUN echo "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1\n\nmQINBFzvJpYBEADY8l1YvO7iYW5gUESyzsTGnMvVUmlV3XarBaJz9bGRmgPXh7jc\nVFrQhE0L/HV7LOfoLI9H2GWYyHBqN5ERBlcA8XxG3ZvX7t9nAZPQT2Xxe3GT3tro\nu5oCR+SyHN9xPnUwDuqUSvJ2eqMYb9B/Hph3OmtjG30jSNq9kOF5bBTk1hOTGPH4\nK/AY0jzT6OpHfXU6ytlFsI47ZKsnTUhipGsKucQ1CXlyirndZ3V3k70YaooZ55rG\naIoAWlx2H0J7sAHmqS29N9jV9mo135d+d+TdLBXI0PXtiHzE9IPaX+ctdSUrPnp+\nTwR99lxglpIG6hLuvOMAaxiqFBB/Jf3XJ8OBakfS6nHrWH2WqQxRbiITl0irkQoz\npwNEF2Bv0+Jvs1UFEdVGz5a8xexQHst/RmKrtHLct3iOCvBNqoAQRbvWvBhPjO/p\nV5cYeUljZ5wpHyFkaEViClaVWqa6PIsyLqmyjsruPCWlURLsQoQxABcL8bwxX7UT\nhM6CtH6tGlYZ85RIzRifIm2oudzV5l+8oRgFr9yVcwyOFT6JCioqkwldW52P1pk/\n/SnuexC6LYqqDuHUs5NnokzzpfS6QaWfTY5P5tz4KHJfsjDIktly3mKVfY0fSPVV\nokdGpcUzvz2hq1fqjxB6MlB/1vtk0bImfcsoxBmF7H+4E9ZN1sX/tSb0KQARAQAB\ntCZPcGVuIFJvYm90aWNzIDxpbmZvQG9zcmZvdW5kYXRpb24ub3JnPokCVAQTAQgA\nPgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBMHPbjHmut6IaLFytPQu1vur\nF8ZUBQJgsdhRBQkLTMW7AAoJEPQu1vurF8ZUTMwP/3f7EkOPIFjUdRmpNJ2db4iB\nRQu5b2SJRG+KIdbvQBzKUBMV6/RUhEDPjhXZI3zDevzBewvAMKkqs2Q1cWo9WV7Z\nPyTkvSyey/Tjn+PozcdvzkvrEjDMftIk8E1WzLGq7vnPLZ1q/b6Vq4H373Z+EDWa\nDaDwW72CbCBLWAVtqff80CwlI2x8fYHKr3VBUnwcXNHR4+nRABfAWnaU4k+oTshC\nQucsd8vitNfsSXrKuKyz91IRHRPnJjx8UvGU4tRGfrHkw1505EZvgP02vXeRyWBR\nfKiL1vGy4tCSRDdZO3ms2J2m08VPv65HsHaWYMnO+rNJmMZj9d9JdL/9GRf5F6U0\nquoIFL39BhUEvBynuqlrqistnyOhw8W/IQy/ymNzBMcMz6rcMjMwhkgm/LNXoSD1\n1OrJu4ktQwRhwvGVarnB8ihwjsTxZFylaLmFSfaA+OAlOqCLS1OkIVMzjW+Ul6A6\nqjiCEUOsnlf4CGlhzNMZOx3low6ixzEqKOcfECpeIj80a2fBDmWkcAAjlHu6VBhA\nTUDG9e2xKLzV2Z/DLYsb3+n9QW7KO0yZKfiuUo6AYboAioQKn5jh3iRvjGh2Ujpo\n22G+oae3PcCc7G+z12j6xIY709FQuA49dA2YpzMda0/OX4LP56STEveDRrO+CnV6\nWE+F5FaIKwb72PL4rLi4\n=i0tj\n-----END PGP PUBLIC KEY BLOCK-----" > /tmp/keys/0.key && apt-key add /tmp/keys/0.key
---> Using cache
---> e16c79f5ef34
Step 14/27 : RUN echo deb http://repositories.ros.org/ubuntu/testing focal main | tee -a /etc/apt/sources.list.d/buildfarm.list
---> Using cache
---> 7b010d13e10d
Step 15/27 : RUN mkdir /tmp/wrapper_scripts
---> Using cache
---> 4ce7cac3c7ef
Step 16/27 : RUN echo "# Copyright 2014-2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Failed to fetch',\n 'Failed to stat',\n 'Hash Sum mismatch',\n 'Unable to locate package',\n 'is not what the server reported',\n ]\n\n command = argv[0]\n if command in ['update', 'source']:\n rc, _, _ = call_apt_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n elif command == 'update-install-clean':\n return call_apt_update_install_clean(\n argv[1:], known_error_strings, max_tries)\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_apt_update_install_clean(\n install_argv, known_error_strings, max_tries):\n tries = 0\n command = 'update'\n while tries < max_tries:\n if command == 'update':\n rc, _, tries = call_apt_repeatedly(\n [command], known_error_strings, max_tries - tries,\n offset=tries)\n if rc != 0:\n # abort if update was unsuccessful even after retries\n break\n # move on to the install command if update was successful\n command = 'install'\n\n if command == 'install':\n # any call is considered a try\n tries += 1\n known_error_strings_redo_update = [\n 'Size mismatch',\n 'maybe run apt update',\n 'The following packages cannot be authenticated!',\n 'Unable to locate package',\n 'has no installation candidate',\n 'corrupted package archive',\n ]\n rc, known_error_conditions = \\\\\n call_apt(\n [command] + install_argv,\n known_error_strings + known_error_strings_redo_update)\n if not known_error_conditions:\n if rc != 0:\n # abort if install was unsuccessful\n break\n # move on to the clean command if install was successful\n command = 'clean'\n continue\n\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n # check if update needs to be rerun\n if (\n set(known_error_conditions) &\n set(known_error_strings_redo_update)\n ):\n command = 'update'\n print(\"'apt install' failed and likely requires \" +\n \"'apt update' to run again\")\n # retry with update command\n continue\n\n print('')\n print('Invocation failed due to the following known error '\n 'conditions: ' + ', '.join(known_error_conditions))\n print('')\n if tries < max_tries:\n sleep_time = 5\n print(\"Reinvoke 'apt install' after sleeping %s seconds\" %\n sleep_time)\n sleep(sleep_time)\n # retry install command\n\n if command == 'clean':\n rc, _ = call_apt([command], [])\n break\n\n return rc\n\n\ndef call_apt_repeatedly(argv, known_error_strings, max_tries, offset=0):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * (i + offset)\n print(\"Reinvoke 'apt %s' (%d/%d) after sleeping %s seconds\" %\n (command, i + offset, max_tries + offset, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_apt(argv, known_error_strings)\n if not known_error_conditions:\n # break the loop and return the reported rc\n break\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i + offset\n\n\ndef call_apt(argv, known_error_strings):\n known_error_conditions = []\n\n # some of the used options are not supported in older distros\n # e.g. Ubuntu Wily, Debian Jessie\n cmd = ['apt-get'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n lines = []\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n lines.append(line)\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n if rc and not known_error_conditions:\n print('Invocation failed without any known error condition, '\n 'printing all lines to debug known error detection:')\n for index, line in enumerate(lines):\n print(' ', index + 1, \"'%s'\" % line.rstrip('\\\\n\\\\r'))\n print('None of the following known errors were detected:')\n for index, known_error_string in enumerate(known_error_strings):\n print(' ', index + 1, \"'%s'\" % known_error_string)\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/apt.py
---> Using cache
---> 99aa928d1679
Step 17/27 : RUN echo "# Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print(\"Reinvoke 'git %s' (%d/%d) after sleeping %s seconds\" %\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/git.py
---> Using cache
---> 924c43a7306c
Step 18/27 : RUN echo "2025-06-09 (-0800)"
---> Using cache
---> 61707d60c810
Step 19/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y python3 && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Running in 5c808aaffdcf
Get:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [128 kB]
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [128 kB]
Get:5 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [1,308 kB]
Get:6 http://archive.ubuntu.com/ubuntu focal-backports InRelease [128 kB]
Get:7 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [4,431 kB]
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mGet:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mGet:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mRemoving intermediate container 5c808aaffdcf
The command '/bin/sh -c for i in 1 2 3; do apt-get update && apt-get install -q -y python3 && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done' returned a non-zero code: 1
Build step 'Execute shell' marked build as failure
[CMakeGNU C Compiler (gcc)Clang-Tidy] Skipping execution of recorder since overall result is 'FAILURE'
INFO: Processing GoogleTest-1.8
INFO: [GoogleTest-1.8] - No test report file(s) were found with the pattern 'ws/test_results/**/*.xml' relative to '<https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/'> for the testing framework 'GoogleTest-1.8'.
Did you enter a pattern relative to (and within) the workspace directory?
Did you generate the result report(s) for 'GoogleTest-1.8'?"
WARNING: All test reports are empty.
INFO: Check 'Failed Tests' threshold.
INFO: Check 'Skipped Tests' threshold.
INFO: Setting the build status to FAILURE

ROS Buildfarm

unread,
Jun 10, 2025, 9:00:35 PM6/10/25
to ros-buildf...@googlegroups.com, sloretz+...@openrobotics.org, ac...@foxglove.dev
See <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/156/display/redirect>

Changes:


------------------------------------------
[...truncated 7.27 KB...]
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins1378419642396321192.sh
+ echo # BEGIN SECTION: Embed wrapper scripts
# BEGIN SECTION: Embed wrapper scripts
+ rm -fr wrapper_scripts
+ mkdir wrapper_scripts
+ printf # Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the "License");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an "AS IS" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert "Command '%%s' not implemented" %% command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print("Reinvoke 'git %%s' (%%d/%%d) after sleeping %%s seconds" %%\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print("Invoking '%%s'" %% ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())
+ echo # END SECTION
# END SECTION
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins4842311255695392893.sh
+ echo # BEGIN SECTION: Clone ros_buildfarm
# BEGIN SECTION: Clone ros_buildfarm
+ rm -fr ros_buildfarm
+ python3 -u wrapper_scripts/git.py clone --depth 1 -b build.ros.org https://github.com/ros-infrastructure/ros_buildfarm.git ros_buildfarm
Invoking 'git clone --depth 1 -b build.ros.org https://github.com/ros-infrastructure/ros_buildfarm.git ros_buildfarm'
Cloning into 'ros_buildfarm'...
+ git -C ros_buildfarm --no-pager log -n 1
commit ce1d3f6d574ca36f0bd5ed60a8d899b8035e4b55
Author: Crola1702 <cristoba...@ekumenlabs.com>
Date: Wed Apr 2 17:35:30 2025 -0500

Revert 24.04 jenkins changes from (#1084)"

This reverts the changes to commit to reconfigure_jobs.groovy.em template,
that needs DiffUtils. However, that is not supported on the current
version of build.ros.org

Signed-off-by: Crola1702 <cristoba...@ekumenlabs.com>
+ rm -fr ros_buildfarm/.git
+ rm -fr ros_buildfarm/doc
+ echo # END SECTION
# END SECTION
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins4128905447908889790.sh
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins8267864839839847713.sh
+ python3 -u <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/ros_buildfarm/scripts/subprocess_reaper.py> 57125 --cid-file <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/docker_generating_dockers/docker.cid>
RUN echo "2025-06-10 (-0800)"

RUN for i in 1 2 3; do apt-get update && apt-get install -q -y python3 && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done

RUN python3 -u /tmp/wrapper_scripts/apt.py update-install-clean -q -y git python3-apt python3-catkin-pkg-modules python3-empy python3-rosdep python3-rosdistro-modules wget

# always invalidate to actually have the latest apt and rosdep state
RUN echo "2025-06-10 17:00:16 -0800"
---> ac368583fe44
Step 3/27 : ENV DEBIAN_FRONTEND noninteractive
---> Using cache
---> 3fc769d8a8fb
Step 4/27 : RUN echo 'APT::Get::Never-Include-Phased-Updates "true";' > /etc/apt/apt.conf.d/90-phased-updates
---> Using cache
---> f8ce2f7c9aba
Step 5/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y locales && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Using cache
---> eb5c32590877
Step 6/27 : RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
---> Using cache
---> 4589dbbd6e13
Step 7/27 : RUN locale-gen en_US.UTF-8
---> Using cache
---> 8590490e04eb
Step 8/27 : ENV LANG en_US.UTF-8
---> Using cache
---> e97a4562bd38
Step 9/27 : ENV TZ PST+08
---> Using cache
---> a11be87cb4fb
Step 10/27 : RUN if [ $(id -nu 1001) ]; then userdel -r $(id -nu 1001); fi && useradd -u 1001 -l -m buildfarm
---> Using cache
---> 5ab38fe403b2
Step 11/27 : RUN mkdir /tmp/keys
---> Using cache
---> 00754f737d04
Step 12/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y gnupg ca-certificates && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Using cache
---> 98bdba5c295d
Step 13/27 : RUN echo "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1\n\nmQINBFzvJpYBEADY8l1YvO7iYW5gUESyzsTGnMvVUmlV3XarBaJz9bGRmgPXh7jc\nVFrQhE0L/HV7LOfoLI9H2GWYyHBqN5ERBlcA8XxG3ZvX7t9nAZPQT2Xxe3GT3tro\nu5oCR+SyHN9xPnUwDuqUSvJ2eqMYb9B/Hph3OmtjG30jSNq9kOF5bBTk1hOTGPH4\nK/AY0jzT6OpHfXU6ytlFsI47ZKsnTUhipGsKucQ1CXlyirndZ3V3k70YaooZ55rG\naIoAWlx2H0J7sAHmqS29N9jV9mo135d+d+TdLBXI0PXtiHzE9IPaX+ctdSUrPnp+\nTwR99lxglpIG6hLuvOMAaxiqFBB/Jf3XJ8OBakfS6nHrWH2WqQxRbiITl0irkQoz\npwNEF2Bv0+Jvs1UFEdVGz5a8xexQHst/RmKrtHLct3iOCvBNqoAQRbvWvBhPjO/p\nV5cYeUljZ5wpHyFkaEViClaVWqa6PIsyLqmyjsruPCWlURLsQoQxABcL8bwxX7UT\nhM6CtH6tGlYZ85RIzRifIm2oudzV5l+8oRgFr9yVcwyOFT6JCioqkwldW52P1pk/\n/SnuexC6LYqqDuHUs5NnokzzpfS6QaWfTY5P5tz4KHJfsjDIktly3mKVfY0fSPVV\nokdGpcUzvz2hq1fqjxB6MlB/1vtk0bImfcsoxBmF7H+4E9ZN1sX/tSb0KQARAQAB\ntCZPcGVuIFJvYm90aWNzIDxpbmZvQG9zcmZvdW5kYXRpb24ub3JnPokCVAQTAQgA\nPgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBMHPbjHmut6IaLFytPQu1vur\nF8ZUBQJgsdhRBQkLTMW7AAoJEPQu1vurF8ZUTMwP/3f7EkOPIFjUdRmpNJ2db4iB\nRQu5b2SJRG+KIdbvQBzKUBMV6/RUhEDPjhXZI3zDevzBewvAMKkqs2Q1cWo9WV7Z\nPyTkvSyey/Tjn+PozcdvzkvrEjDMftIk8E1WzLGq7vnPLZ1q/b6Vq4H373Z+EDWa\nDaDwW72CbCBLWAVtqff80CwlI2x8fYHKr3VBUnwcXNHR4+nRABfAWnaU4k+oTshC\nQucsd8vitNfsSXrKuKyz91IRHRPnJjx8UvGU4tRGfrHkw1505EZvgP02vXeRyWBR\nfKiL1vGy4tCSRDdZO3ms2J2m08VPv65HsHaWYMnO+rNJmMZj9d9JdL/9GRf5F6U0\nquoIFL39BhUEvBynuqlrqistnyOhw8W/IQy/ymNzBMcMz6rcMjMwhkgm/LNXoSD1\n1OrJu4ktQwRhwvGVarnB8ihwjsTxZFylaLmFSfaA+OAlOqCLS1OkIVMzjW+Ul6A6\nqjiCEUOsnlf4CGlhzNMZOx3low6ixzEqKOcfECpeIj80a2fBDmWkcAAjlHu6VBhA\nTUDG9e2xKLzV2Z/DLYsb3+n9QW7KO0yZKfiuUo6AYboAioQKn5jh3iRvjGh2Ujpo\n22G+oae3PcCc7G+z12j6xIY709FQuA49dA2YpzMda0/OX4LP56STEveDRrO+CnV6\nWE+F5FaIKwb72PL4rLi4\n=i0tj\n-----END PGP PUBLIC KEY BLOCK-----" > /tmp/keys/0.key && apt-key add /tmp/keys/0.key
---> Using cache
---> 5d6781498e9d
Step 14/27 : RUN echo deb http://repositories.ros.org/ubuntu/testing focal main | tee -a /etc/apt/sources.list.d/buildfarm.list
---> Using cache
---> 74dd59982d2d
Step 15/27 : RUN mkdir /tmp/wrapper_scripts
---> Using cache
---> 725c748ab336
Step 16/27 : RUN echo "# Copyright 2014-2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Failed to fetch',\n 'Failed to stat',\n 'Hash Sum mismatch',\n 'Unable to locate package',\n 'is not what the server reported',\n ]\n\n command = argv[0]\n if command in ['update', 'source']:\n rc, _, _ = call_apt_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n elif command == 'update-install-clean':\n return call_apt_update_install_clean(\n argv[1:], known_error_strings, max_tries)\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_apt_update_install_clean(\n install_argv, known_error_strings, max_tries):\n tries = 0\n command = 'update'\n while tries < max_tries:\n if command == 'update':\n rc, _, tries = call_apt_repeatedly(\n [command], known_error_strings, max_tries - tries,\n offset=tries)\n if rc != 0:\n # abort if update was unsuccessful even after retries\n break\n # move on to the install command if update was successful\n command = 'install'\n\n if command == 'install':\n # any call is considered a try\n tries += 1\n known_error_strings_redo_update = [\n 'Size mismatch',\n 'maybe run apt update',\n 'The following packages cannot be authenticated!',\n 'Unable to locate package',\n 'has no installation candidate',\n 'corrupted package archive',\n ]\n rc, known_error_conditions = \\\\\n call_apt(\n [command] + install_argv,\n known_error_strings + known_error_strings_redo_update)\n if not known_error_conditions:\n if rc != 0:\n # abort if install was unsuccessful\n break\n # move on to the clean command if install was successful\n command = 'clean'\n continue\n\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n # check if update needs to be rerun\n if (\n set(known_error_conditions) &\n set(known_error_strings_redo_update)\n ):\n command = 'update'\n print(\"'apt install' failed and likely requires \" +\n \"'apt update' to run again\")\n # retry with update command\n continue\n\n print('')\n print('Invocation failed due to the following known error '\n 'conditions: ' + ', '.join(known_error_conditions))\n print('')\n if tries < max_tries:\n sleep_time = 5\n print(\"Reinvoke 'apt install' after sleeping %s seconds\" %\n sleep_time)\n sleep(sleep_time)\n # retry install command\n\n if command == 'clean':\n rc, _ = call_apt([command], [])\n break\n\n return rc\n\n\ndef call_apt_repeatedly(argv, known_error_strings, max_tries, offset=0):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * (i + offset)\n print(\"Reinvoke 'apt %s' (%d/%d) after sleeping %s seconds\" %\n (command, i + offset, max_tries + offset, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_apt(argv, known_error_strings)\n if not known_error_conditions:\n # break the loop and return the reported rc\n break\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i + offset\n\n\ndef call_apt(argv, known_error_strings):\n known_error_conditions = []\n\n # some of the used options are not supported in older distros\n # e.g. Ubuntu Wily, Debian Jessie\n cmd = ['apt-get'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n lines = []\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n lines.append(line)\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n if rc and not known_error_conditions:\n print('Invocation failed without any known error condition, '\n 'printing all lines to debug known error detection:')\n for index, line in enumerate(lines):\n print(' ', index + 1, \"'%s'\" % line.rstrip('\\\\n\\\\r'))\n print('None of the following known errors were detected:')\n for index, known_error_string in enumerate(known_error_strings):\n print(' ', index + 1, \"'%s'\" % known_error_string)\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/apt.py
---> Using cache
---> 82095b4f4774
Step 17/27 : RUN echo "# Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print(\"Reinvoke 'git %s' (%d/%d) after sleeping %s seconds\" %\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/git.py
---> Using cache
---> 0da4d5349742
Step 18/27 : RUN echo "2025-06-10 (-0800)"
---> Using cache
---> 4429d19ee54a
Step 19/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y python3 && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Running in 265e70d3e8d9
Get:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Get:3 http://security.ubuntu.com/ubuntu focal-security InRelease [128 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [128 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease [128 kB]
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mGet:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mGet:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mRemoving intermediate container 265e70d3e8d9

ROS Buildfarm

unread,
Jun 11, 2025, 3:00:31 PM6/11/25
to ros-buildf...@googlegroups.com, sloretz+...@openrobotics.org, ac...@foxglove.dev
See <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/157/display/redirect>

Changes:


------------------------------------------
[...truncated 6.95 KB...]
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins8576712776251848271.sh
+ echo # BEGIN SECTION: Embed wrapper scripts
# BEGIN SECTION: Embed wrapper scripts
+ rm -fr wrapper_scripts
+ mkdir wrapper_scripts
+ printf # Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the "License");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an "AS IS" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert "Command '%%s' not implemented" %% command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print("Reinvoke 'git %%s' (%%d/%%d) after sleeping %%s seconds" %%\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print("Invoking '%%s'" %% ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())
+ echo # END SECTION
# END SECTION
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins5553552239376362608.sh
+ echo # BEGIN SECTION: Clone ros_buildfarm
# BEGIN SECTION: Clone ros_buildfarm
+ rm -fr ros_buildfarm
+ python3 -u wrapper_scripts/git.py clone --depth 1 -b build.ros.org https://github.com/ros-infrastructure/ros_buildfarm.git ros_buildfarm
Invoking 'git clone --depth 1 -b build.ros.org https://github.com/ros-infrastructure/ros_buildfarm.git ros_buildfarm'
Cloning into 'ros_buildfarm'...
+ git -C ros_buildfarm --no-pager log -n 1
commit ce1d3f6d574ca36f0bd5ed60a8d899b8035e4b55
Author: Crola1702 <cristoba...@ekumenlabs.com>
Date: Wed Apr 2 17:35:30 2025 -0500

Revert 24.04 jenkins changes from (#1084)"

This reverts the changes to commit to reconfigure_jobs.groovy.em template,
that needs DiffUtils. However, that is not supported on the current
version of build.ros.org

Signed-off-by: Crola1702 <cristoba...@ekumenlabs.com>
+ rm -fr ros_buildfarm/.git
+ rm -fr ros_buildfarm/doc
+ echo # END SECTION
# END SECTION
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins4174018250977203185.sh
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins4310813506519410823.sh
+ python3 -u <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/ros_buildfarm/scripts/subprocess_reaper.py> 9771 --cid-file <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/docker_generating_dockers/docker.cid>
RUN echo "2025-06-11 (-0800)"

RUN for i in 1 2 3; do apt-get update && apt-get install -q -y python3 && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done

RUN python3 -u /tmp/wrapper_scripts/apt.py update-install-clean -q -y git python3-apt python3-catkin-pkg-modules python3-empy python3-rosdep python3-rosdistro-modules wget

# always invalidate to actually have the latest apt and rosdep state
RUN echo "2025-06-11 11:00:14 -0800"
---> f9940ff2aaa4
Step 3/27 : ENV DEBIAN_FRONTEND noninteractive
---> Using cache
---> 6a930f8e0d7c
Step 4/27 : RUN echo 'APT::Get::Never-Include-Phased-Updates "true";' > /etc/apt/apt.conf.d/90-phased-updates
---> Using cache
---> 2e83a9ba0b2e
Step 5/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y locales && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Using cache
---> 897e2da67695
Step 6/27 : RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
---> Using cache
---> cd0fe9f97e3c
Step 7/27 : RUN locale-gen en_US.UTF-8
---> Using cache
---> d3ec58995919
Step 8/27 : ENV LANG en_US.UTF-8
---> Using cache
---> a477ae194e0d
Step 9/27 : ENV TZ PST+08
---> Using cache
---> 3de377dd0341
Step 10/27 : RUN if [ $(id -nu 1001) ]; then userdel -r $(id -nu 1001); fi && useradd -u 1001 -l -m buildfarm
---> Using cache
---> 81c570a00030
Step 11/27 : RUN mkdir /tmp/keys
---> Using cache
---> 406f68bc70e1
Step 12/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y gnupg ca-certificates && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Using cache
---> 6188211921e1
Step 13/27 : RUN echo "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1\n\nmQINBFzvJpYBEADY8l1YvO7iYW5gUESyzsTGnMvVUmlV3XarBaJz9bGRmgPXh7jc\nVFrQhE0L/HV7LOfoLI9H2GWYyHBqN5ERBlcA8XxG3ZvX7t9nAZPQT2Xxe3GT3tro\nu5oCR+SyHN9xPnUwDuqUSvJ2eqMYb9B/Hph3OmtjG30jSNq9kOF5bBTk1hOTGPH4\nK/AY0jzT6OpHfXU6ytlFsI47ZKsnTUhipGsKucQ1CXlyirndZ3V3k70YaooZ55rG\naIoAWlx2H0J7sAHmqS29N9jV9mo135d+d+TdLBXI0PXtiHzE9IPaX+ctdSUrPnp+\nTwR99lxglpIG6hLuvOMAaxiqFBB/Jf3XJ8OBakfS6nHrWH2WqQxRbiITl0irkQoz\npwNEF2Bv0+Jvs1UFEdVGz5a8xexQHst/RmKrtHLct3iOCvBNqoAQRbvWvBhPjO/p\nV5cYeUljZ5wpHyFkaEViClaVWqa6PIsyLqmyjsruPCWlURLsQoQxABcL8bwxX7UT\nhM6CtH6tGlYZ85RIzRifIm2oudzV5l+8oRgFr9yVcwyOFT6JCioqkwldW52P1pk/\n/SnuexC6LYqqDuHUs5NnokzzpfS6QaWfTY5P5tz4KHJfsjDIktly3mKVfY0fSPVV\nokdGpcUzvz2hq1fqjxB6MlB/1vtk0bImfcsoxBmF7H+4E9ZN1sX/tSb0KQARAQAB\ntCZPcGVuIFJvYm90aWNzIDxpbmZvQG9zcmZvdW5kYXRpb24ub3JnPokCVAQTAQgA\nPgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBMHPbjHmut6IaLFytPQu1vur\nF8ZUBQJgsdhRBQkLTMW7AAoJEPQu1vurF8ZUTMwP/3f7EkOPIFjUdRmpNJ2db4iB\nRQu5b2SJRG+KIdbvQBzKUBMV6/RUhEDPjhXZI3zDevzBewvAMKkqs2Q1cWo9WV7Z\nPyTkvSyey/Tjn+PozcdvzkvrEjDMftIk8E1WzLGq7vnPLZ1q/b6Vq4H373Z+EDWa\nDaDwW72CbCBLWAVtqff80CwlI2x8fYHKr3VBUnwcXNHR4+nRABfAWnaU4k+oTshC\nQucsd8vitNfsSXrKuKyz91IRHRPnJjx8UvGU4tRGfrHkw1505EZvgP02vXeRyWBR\nfKiL1vGy4tCSRDdZO3ms2J2m08VPv65HsHaWYMnO+rNJmMZj9d9JdL/9GRf5F6U0\nquoIFL39BhUEvBynuqlrqistnyOhw8W/IQy/ymNzBMcMz6rcMjMwhkgm/LNXoSD1\n1OrJu4ktQwRhwvGVarnB8ihwjsTxZFylaLmFSfaA+OAlOqCLS1OkIVMzjW+Ul6A6\nqjiCEUOsnlf4CGlhzNMZOx3low6ixzEqKOcfECpeIj80a2fBDmWkcAAjlHu6VBhA\nTUDG9e2xKLzV2Z/DLYsb3+n9QW7KO0yZKfiuUo6AYboAioQKn5jh3iRvjGh2Ujpo\n22G+oae3PcCc7G+z12j6xIY709FQuA49dA2YpzMda0/OX4LP56STEveDRrO+CnV6\nWE+F5FaIKwb72PL4rLi4\n=i0tj\n-----END PGP PUBLIC KEY BLOCK-----" > /tmp/keys/0.key && apt-key add /tmp/keys/0.key
---> Using cache
---> 8c6d2a1be320
Step 14/27 : RUN echo deb http://repositories.ros.org/ubuntu/testing focal main | tee -a /etc/apt/sources.list.d/buildfarm.list
---> Using cache
---> 0949e71487ff
Step 15/27 : RUN mkdir /tmp/wrapper_scripts
---> Using cache
---> 3a3ecf99ecfe
Step 16/27 : RUN echo "# Copyright 2014-2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Failed to fetch',\n 'Failed to stat',\n 'Hash Sum mismatch',\n 'Unable to locate package',\n 'is not what the server reported',\n ]\n\n command = argv[0]\n if command in ['update', 'source']:\n rc, _, _ = call_apt_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n elif command == 'update-install-clean':\n return call_apt_update_install_clean(\n argv[1:], known_error_strings, max_tries)\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_apt_update_install_clean(\n install_argv, known_error_strings, max_tries):\n tries = 0\n command = 'update'\n while tries < max_tries:\n if command == 'update':\n rc, _, tries = call_apt_repeatedly(\n [command], known_error_strings, max_tries - tries,\n offset=tries)\n if rc != 0:\n # abort if update was unsuccessful even after retries\n break\n # move on to the install command if update was successful\n command = 'install'\n\n if command == 'install':\n # any call is considered a try\n tries += 1\n known_error_strings_redo_update = [\n 'Size mismatch',\n 'maybe run apt update',\n 'The following packages cannot be authenticated!',\n 'Unable to locate package',\n 'has no installation candidate',\n 'corrupted package archive',\n ]\n rc, known_error_conditions = \\\\\n call_apt(\n [command] + install_argv,\n known_error_strings + known_error_strings_redo_update)\n if not known_error_conditions:\n if rc != 0:\n # abort if install was unsuccessful\n break\n # move on to the clean command if install was successful\n command = 'clean'\n continue\n\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n # check if update needs to be rerun\n if (\n set(known_error_conditions) &\n set(known_error_strings_redo_update)\n ):\n command = 'update'\n print(\"'apt install' failed and likely requires \" +\n \"'apt update' to run again\")\n # retry with update command\n continue\n\n print('')\n print('Invocation failed due to the following known error '\n 'conditions: ' + ', '.join(known_error_conditions))\n print('')\n if tries < max_tries:\n sleep_time = 5\n print(\"Reinvoke 'apt install' after sleeping %s seconds\" %\n sleep_time)\n sleep(sleep_time)\n # retry install command\n\n if command == 'clean':\n rc, _ = call_apt([command], [])\n break\n\n return rc\n\n\ndef call_apt_repeatedly(argv, known_error_strings, max_tries, offset=0):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * (i + offset)\n print(\"Reinvoke 'apt %s' (%d/%d) after sleeping %s seconds\" %\n (command, i + offset, max_tries + offset, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_apt(argv, known_error_strings)\n if not known_error_conditions:\n # break the loop and return the reported rc\n break\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i + offset\n\n\ndef call_apt(argv, known_error_strings):\n known_error_conditions = []\n\n # some of the used options are not supported in older distros\n # e.g. Ubuntu Wily, Debian Jessie\n cmd = ['apt-get'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n lines = []\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n lines.append(line)\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n if rc and not known_error_conditions:\n print('Invocation failed without any known error condition, '\n 'printing all lines to debug known error detection:')\n for index, line in enumerate(lines):\n print(' ', index + 1, \"'%s'\" % line.rstrip('\\\\n\\\\r'))\n print('None of the following known errors were detected:')\n for index, known_error_string in enumerate(known_error_strings):\n print(' ', index + 1, \"'%s'\" % known_error_string)\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/apt.py
---> Using cache
---> da190973a19e
Step 17/27 : RUN echo "# Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print(\"Reinvoke 'git %s' (%d/%d) after sleeping %s seconds\" %\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/git.py
---> Using cache
---> 11a945b06fb1
Step 18/27 : RUN echo "2025-06-11 (-0800)"
---> Using cache
---> c7aa48e51b3c
Step 19/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y python3 && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Running in 41d66018af21
Get:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mGet:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mGet:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mRemoving intermediate container 41d66018af21

ROS Buildfarm

unread,
Jun 18, 2025, 6:00:56 PM6/18/25
to ros-buildf...@googlegroups.com, sloretz+...@openrobotics.org, ac...@foxglove.dev, git...@stefanfabian.me
See <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/158/display/redirect?page=changes>

Changes:

[github] Move components from legacy ws-protocol to new namespace (#357)


------------------------------------------
[...truncated 36.48 KB...]
Get:7 http://archive.ubuntu.com/ubuntu focal/main amd64 libassuan0 amd64 2.5.3-7ubuntu2 [35.7 kB]
Get:8 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gpgconf amd64 2.2.19-3ubuntu2.4 [124 kB]
Get:9 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libksba8 amd64 1.3.5-2ubuntu0.20.04.2 [95.2 kB]
Get:10 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libroken18-heimdal amd64 7.7.0+dfsg-1ubuntu1.4 [42.5 kB]
Get:11 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libasn1-8-heimdal amd64 7.7.0+dfsg-1ubuntu1.4 [181 kB]
Get:12 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libheimbase1-heimdal amd64 7.7.0+dfsg-1ubuntu1.4 [30.4 kB]
Get:13 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libhcrypto4-heimdal amd64 7.7.0+dfsg-1ubuntu1.4 [88.1 kB]
Get:14 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libwind0-heimdal amd64 7.7.0+dfsg-1ubuntu1.4 [47.7 kB]
Get:15 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libhx509-5-heimdal amd64 7.7.0+dfsg-1ubuntu1.4 [107 kB]
Get:16 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libkrb5-26-heimdal amd64 7.7.0+dfsg-1ubuntu1.4 [207 kB]
Get:17 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libheimntlm0-heimdal amd64 7.7.0+dfsg-1ubuntu1.4 [15.1 kB]
Get:18 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libgssapi3-heimdal amd64 7.7.0+dfsg-1ubuntu1.4 [96.5 kB]
Get:19 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libsasl2-modules-db amd64 2.1.27+dfsg-2ubuntu0.1 [14.7 kB]
Get:20 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libsasl2-2 amd64 2.1.27+dfsg-2ubuntu0.1 [49.3 kB]
Get:21 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libldap-common all 2.4.49+dfsg-2ubuntu1.10 [16.5 kB]
Get:22 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libldap-2.4-2 amd64 2.4.49+dfsg-2ubuntu1.10 [155 kB]
Get:23 http://archive.ubuntu.com/ubuntu focal/main amd64 libnpth0 amd64 1.6-1 [7,736 B]
Get:24 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 dirmngr amd64 2.2.19-3ubuntu2.4 [329 kB]
Get:25 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gnupg-l10n all 2.2.19-3ubuntu2.4 [51.9 kB]
Get:26 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gnupg-utils amd64 2.2.19-3ubuntu2.4 [481 kB]
Get:27 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gpg amd64 2.2.19-3ubuntu2.4 [482 kB]
Get:28 http://archive.ubuntu.com/ubuntu focal/main amd64 pinentry-curses amd64 1.1.0-3build1 [36.3 kB]
Get:29 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gpg-agent amd64 2.2.19-3ubuntu2.4 [232 kB]
Get:30 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gpg-wks-client amd64 2.2.19-3ubuntu2.4 [97.4 kB]
Get:31 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gpg-wks-server amd64 2.2.19-3ubuntu2.4 [90.1 kB]
Get:32 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gpgsm amd64 2.2.19-3ubuntu2.4 [217 kB]
Get:33 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gnupg all 2.2.19-3ubuntu2.4 [259 kB]
Get:34 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libsasl2-modules amd64 2.1.27+dfsg-2ubuntu0.1 [48.8 kB]
[91mdebconf: delaying package configuration, since apt-utils is not installed
[0mFetched 6,475 kB in 2s (3,128 kB/s)
Selecting previously unselected package libssl1.1:amd64.
(Reading database ... (Reading database ... 5%(Reading database ... 10%(Reading database ... 15%(Reading database ... 20%(Reading database ... 25%(Reading database ... 30%(Reading database ... 35%(Reading database ... 40%(Reading database ... 45%(Reading database ... 50%(Reading database ... 55%(Reading database ... 60%(Reading database ... 65%(Reading database ... 70%(Reading database ... 75%(Reading database ... 80%(Reading database ... 85%(Reading database ... 90%(Reading database ... 95%(Reading database ... 100%(Reading database ... 4743 files and directories currently installed.)
Preparing to unpack .../00-libssl1.1_1.1.1f-1ubuntu2.24_amd64.deb ...
Unpacking libssl1.1:amd64 (1.1.1f-1ubuntu2.24) ...
Selecting previously unselected package openssl.
Preparing to unpack .../01-openssl_1.1.1f-1ubuntu2.24_amd64.deb ...
Unpacking openssl (1.1.1f-1ubuntu2.24) ...
Selecting previously unselected package ca-certificates.
Preparing to unpack .../02-ca-certificates_20240203~20.04.1_all.deb ...
Unpacking ca-certificates (20240203~20.04.1) ...
Selecting previously unselected package readline-common.
Preparing to unpack .../03-readline-common_8.0-4_all.deb ...
Unpacking readline-common (8.0-4) ...
Selecting previously unselected package libreadline8:amd64.
Preparing to unpack .../04-libreadline8_8.0-4_amd64.deb ...
Unpacking libreadline8:amd64 (8.0-4) ...
Selecting previously unselected package libsqlite3-0:amd64.
Preparing to unpack .../05-libsqlite3-0_3.31.1-4ubuntu0.7_amd64.deb ...
Unpacking libsqlite3-0:amd64 (3.31.1-4ubuntu0.7) ...
Selecting previously unselected package libassuan0:amd64.
Preparing to unpack .../06-libassuan0_2.5.3-7ubuntu2_amd64.deb ...
Unpacking libassuan0:amd64 (2.5.3-7ubuntu2) ...
Selecting previously unselected package gpgconf.
Preparing to unpack .../07-gpgconf_2.2.19-3ubuntu2.4_amd64.deb ...
Unpacking gpgconf (2.2.19-3ubuntu2.4) ...
Selecting previously unselected package libksba8:amd64.
Preparing to unpack .../08-libksba8_1.3.5-2ubuntu0.20.04.2_amd64.deb ...
Unpacking libksba8:amd64 (1.3.5-2ubuntu0.20.04.2) ...
Selecting previously unselected package libroken18-heimdal:amd64.
Preparing to unpack .../09-libroken18-heimdal_7.7.0+dfsg-1ubuntu1.4_amd64.deb ...
Unpacking libroken18-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Selecting previously unselected package libasn1-8-heimdal:amd64.
Preparing to unpack .../10-libasn1-8-heimdal_7.7.0+dfsg-1ubuntu1.4_amd64.deb ...
Unpacking libasn1-8-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Selecting previously unselected package libheimbase1-heimdal:amd64.
Preparing to unpack .../11-libheimbase1-heimdal_7.7.0+dfsg-1ubuntu1.4_amd64.deb ...
Unpacking libheimbase1-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Selecting previously unselected package libhcrypto4-heimdal:amd64.
Preparing to unpack .../12-libhcrypto4-heimdal_7.7.0+dfsg-1ubuntu1.4_amd64.deb ...
Unpacking libhcrypto4-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Selecting previously unselected package libwind0-heimdal:amd64.
Preparing to unpack .../13-libwind0-heimdal_7.7.0+dfsg-1ubuntu1.4_amd64.deb ...
Unpacking libwind0-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Selecting previously unselected package libhx509-5-heimdal:amd64.
Preparing to unpack .../14-libhx509-5-heimdal_7.7.0+dfsg-1ubuntu1.4_amd64.deb ...
Unpacking libhx509-5-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Selecting previously unselected package libkrb5-26-heimdal:amd64.
Preparing to unpack .../15-libkrb5-26-heimdal_7.7.0+dfsg-1ubuntu1.4_amd64.deb ...
Unpacking libkrb5-26-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Selecting previously unselected package libheimntlm0-heimdal:amd64.
Preparing to unpack .../16-libheimntlm0-heimdal_7.7.0+dfsg-1ubuntu1.4_amd64.deb ...
Unpacking libheimntlm0-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Selecting previously unselected package libgssapi3-heimdal:amd64.
Preparing to unpack .../17-libgssapi3-heimdal_7.7.0+dfsg-1ubuntu1.4_amd64.deb ...
Unpacking libgssapi3-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Selecting previously unselected package libsasl2-modules-db:amd64.
Preparing to unpack .../18-libsasl2-modules-db_2.1.27+dfsg-2ubuntu0.1_amd64.deb ...
Unpacking libsasl2-modules-db:amd64 (2.1.27+dfsg-2ubuntu0.1) ...
Selecting previously unselected package libsasl2-2:amd64.
Preparing to unpack .../19-libsasl2-2_2.1.27+dfsg-2ubuntu0.1_amd64.deb ...
Unpacking libsasl2-2:amd64 (2.1.27+dfsg-2ubuntu0.1) ...
Selecting previously unselected package libldap-common.
Preparing to unpack .../20-libldap-common_2.4.49+dfsg-2ubuntu1.10_all.deb ...
Unpacking libldap-common (2.4.49+dfsg-2ubuntu1.10) ...
Selecting previously unselected package libldap-2.4-2:amd64.
Preparing to unpack .../21-libldap-2.4-2_2.4.49+dfsg-2ubuntu1.10_amd64.deb ...
Unpacking libldap-2.4-2:amd64 (2.4.49+dfsg-2ubuntu1.10) ...
Selecting previously unselected package libnpth0:amd64.
Preparing to unpack .../22-libnpth0_1.6-1_amd64.deb ...
Unpacking libnpth0:amd64 (1.6-1) ...
Selecting previously unselected package dirmngr.
Preparing to unpack .../23-dirmngr_2.2.19-3ubuntu2.4_amd64.deb ...
Unpacking dirmngr (2.2.19-3ubuntu2.4) ...
Selecting previously unselected package gnupg-l10n.
Preparing to unpack .../24-gnupg-l10n_2.2.19-3ubuntu2.4_all.deb ...
Unpacking gnupg-l10n (2.2.19-3ubuntu2.4) ...
Selecting previously unselected package gnupg-utils.
Preparing to unpack .../25-gnupg-utils_2.2.19-3ubuntu2.4_amd64.deb ...
Unpacking gnupg-utils (2.2.19-3ubuntu2.4) ...
Selecting previously unselected package gpg.
Preparing to unpack .../26-gpg_2.2.19-3ubuntu2.4_amd64.deb ...
Unpacking gpg (2.2.19-3ubuntu2.4) ...
Selecting previously unselected package pinentry-curses.
Preparing to unpack .../27-pinentry-curses_1.1.0-3build1_amd64.deb ...
Unpacking pinentry-curses (1.1.0-3build1) ...
Selecting previously unselected package gpg-agent.
Preparing to unpack .../28-gpg-agent_2.2.19-3ubuntu2.4_amd64.deb ...
Unpacking gpg-agent (2.2.19-3ubuntu2.4) ...
Selecting previously unselected package gpg-wks-client.
Preparing to unpack .../29-gpg-wks-client_2.2.19-3ubuntu2.4_amd64.deb ...
Unpacking gpg-wks-client (2.2.19-3ubuntu2.4) ...
Selecting previously unselected package gpg-wks-server.
Preparing to unpack .../30-gpg-wks-server_2.2.19-3ubuntu2.4_amd64.deb ...
Unpacking gpg-wks-server (2.2.19-3ubuntu2.4) ...
Selecting previously unselected package gpgsm.
Preparing to unpack .../31-gpgsm_2.2.19-3ubuntu2.4_amd64.deb ...
Unpacking gpgsm (2.2.19-3ubuntu2.4) ...
Selecting previously unselected package gnupg.
Preparing to unpack .../32-gnupg_2.2.19-3ubuntu2.4_all.deb ...
Unpacking gnupg (2.2.19-3ubuntu2.4) ...
Selecting previously unselected package libsasl2-modules:amd64.
Preparing to unpack .../33-libsasl2-modules_2.1.27+dfsg-2ubuntu0.1_amd64.deb ...
Unpacking libsasl2-modules:amd64 (2.1.27+dfsg-2ubuntu0.1) ...
Setting up libksba8:amd64 (1.3.5-2ubuntu0.20.04.2) ...
Setting up libssl1.1:amd64 (1.1.1f-1ubuntu2.24) ...
Setting up libsqlite3-0:amd64 (3.31.1-4ubuntu0.7) ...
Setting up libsasl2-modules:amd64 (2.1.27+dfsg-2ubuntu0.1) ...
Setting up libnpth0:amd64 (1.6-1) ...
Setting up libassuan0:amd64 (2.5.3-7ubuntu2) ...
Setting up libldap-common (2.4.49+dfsg-2ubuntu1.10) ...
Setting up libsasl2-modules-db:amd64 (2.1.27+dfsg-2ubuntu0.1) ...
Setting up gnupg-l10n (2.2.19-3ubuntu2.4) ...
Setting up libsasl2-2:amd64 (2.1.27+dfsg-2ubuntu0.1) ...
Setting up libroken18-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Setting up openssl (1.1.1f-1ubuntu2.24) ...
Setting up readline-common (8.0-4) ...
Setting up libheimbase1-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Setting up pinentry-curses (1.1.0-3build1) ...
Setting up libasn1-8-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Setting up libreadline8:amd64 (8.0-4) ...
Setting up libhcrypto4-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Setting up ca-certificates (20240203~20.04.1) ...
Updating certificates in /etc/ssl/certs...
146 added, 0 removed; done.
Setting up libwind0-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Setting up gpgconf (2.2.19-3ubuntu2.4) ...
Setting up gpg (2.2.19-3ubuntu2.4) ...
Setting up gnupg-utils (2.2.19-3ubuntu2.4) ...
Setting up gpg-agent (2.2.19-3ubuntu2.4) ...
Setting up libhx509-5-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Setting up gpgsm (2.2.19-3ubuntu2.4) ...
Setting up gpg-wks-server (2.2.19-3ubuntu2.4) ...
Setting up libkrb5-26-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Setting up libheimntlm0-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Setting up libgssapi3-heimdal:amd64 (7.7.0+dfsg-1ubuntu1.4) ...
Setting up libldap-2.4-2:amd64 (2.4.49+dfsg-2ubuntu1.10) ...
Setting up dirmngr (2.2.19-3ubuntu2.4) ...
Setting up gpg-wks-client (2.2.19-3ubuntu2.4) ...
Setting up gnupg (2.2.19-3ubuntu2.4) ...
Processing triggers for libc-bin (2.31-0ubuntu9.17) ...
Processing triggers for ca-certificates (20240203~20.04.1) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
Removing intermediate container da29a6d0989e
---> 685fcfd73d1d
Step 13/27 : RUN echo "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1\n\nmQINBFzvJpYBEADY8l1YvO7iYW5gUESyzsTGnMvVUmlV3XarBaJz9bGRmgPXh7jc\nVFrQhE0L/HV7LOfoLI9H2GWYyHBqN5ERBlcA8XxG3ZvX7t9nAZPQT2Xxe3GT3tro\nu5oCR+SyHN9xPnUwDuqUSvJ2eqMYb9B/Hph3OmtjG30jSNq9kOF5bBTk1hOTGPH4\nK/AY0jzT6OpHfXU6ytlFsI47ZKsnTUhipGsKucQ1CXlyirndZ3V3k70YaooZ55rG\naIoAWlx2H0J7sAHmqS29N9jV9mo135d+d+TdLBXI0PXtiHzE9IPaX+ctdSUrPnp+\nTwR99lxglpIG6hLuvOMAaxiqFBB/Jf3XJ8OBakfS6nHrWH2WqQxRbiITl0irkQoz\npwNEF2Bv0+Jvs1UFEdVGz5a8xexQHst/RmKrtHLct3iOCvBNqoAQRbvWvBhPjO/p\nV5cYeUljZ5wpHyFkaEViClaVWqa6PIsyLqmyjsruPCWlURLsQoQxABcL8bwxX7UT\nhM6CtH6tGlYZ85RIzRifIm2oudzV5l+8oRgFr9yVcwyOFT6JCioqkwldW52P1pk/\n/SnuexC6LYqqDuHUs5NnokzzpfS6QaWfTY5P5tz4KHJfsjDIktly3mKVfY0fSPVV\nokdGpcUzvz2hq1fqjxB6MlB/1vtk0bImfcsoxBmF7H+4E9ZN1sX/tSb0KQARAQAB\ntCZPcGVuIFJvYm90aWNzIDxpbmZvQG9zcmZvdW5kYXRpb24ub3JnPokCVAQTAQgA\nPgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBMHPbjHmut6IaLFytPQu1vur\nF8ZUBQJgsdhRBQkLTMW7AAoJEPQu1vurF8ZUTMwP/3f7EkOPIFjUdRmpNJ2db4iB\nRQu5b2SJRG+KIdbvQBzKUBMV6/RUhEDPjhXZI3zDevzBewvAMKkqs2Q1cWo9WV7Z\nPyTkvSyey/Tjn+PozcdvzkvrEjDMftIk8E1WzLGq7vnPLZ1q/b6Vq4H373Z+EDWa\nDaDwW72CbCBLWAVtqff80CwlI2x8fYHKr3VBUnwcXNHR4+nRABfAWnaU4k+oTshC\nQucsd8vitNfsSXrKuKyz91IRHRPnJjx8UvGU4tRGfrHkw1505EZvgP02vXeRyWBR\nfKiL1vGy4tCSRDdZO3ms2J2m08VPv65HsHaWYMnO+rNJmMZj9d9JdL/9GRf5F6U0\nquoIFL39BhUEvBynuqlrqistnyOhw8W/IQy/ymNzBMcMz6rcMjMwhkgm/LNXoSD1\n1OrJu4ktQwRhwvGVarnB8ihwjsTxZFylaLmFSfaA+OAlOqCLS1OkIVMzjW+Ul6A6\nqjiCEUOsnlf4CGlhzNMZOx3low6ixzEqKOcfECpeIj80a2fBDmWkcAAjlHu6VBhA\nTUDG9e2xKLzV2Z/DLYsb3+n9QW7KO0yZKfiuUo6AYboAioQKn5jh3iRvjGh2Ujpo\n22G+oae3PcCc7G+z12j6xIY709FQuA49dA2YpzMda0/OX4LP56STEveDRrO+CnV6\nWE+F5FaIKwb72PL4rLi4\n=i0tj\n-----END PGP PUBLIC KEY BLOCK-----" > /tmp/keys/0.key && apt-key add /tmp/keys/0.key
---> Running in 54b3dc6fd48e
[91mWarning: apt-key output should not be parsed (stdout is not a terminal)
[0mOK
Removing intermediate container 54b3dc6fd48e
---> 17608d82e480
Step 14/27 : RUN echo deb http://repositories.ros.org/ubuntu/testing focal main | tee -a /etc/apt/sources.list.d/buildfarm.list
---> Running in 8af9d993edc9
Removing intermediate container 8af9d993edc9
---> 19f331bae03e
Step 15/27 : RUN mkdir /tmp/wrapper_scripts
---> Running in 30e7f2bcfeb6
Removing intermediate container 30e7f2bcfeb6
---> af9118077b46
Step 16/27 : RUN echo "# Copyright 2014-2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Failed to fetch',\n 'Failed to stat',\n 'Hash Sum mismatch',\n 'Unable to locate package',\n 'is not what the server reported',\n ]\n\n command = argv[0]\n if command in ['update', 'source']:\n rc, _, _ = call_apt_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n elif command == 'update-install-clean':\n return call_apt_update_install_clean(\n argv[1:], known_error_strings, max_tries)\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_apt_update_install_clean(\n install_argv, known_error_strings, max_tries):\n tries = 0\n command = 'update'\n while tries < max_tries:\n if command == 'update':\n rc, _, tries = call_apt_repeatedly(\n [command], known_error_strings, max_tries - tries,\n offset=tries)\n if rc != 0:\n # abort if update was unsuccessful even after retries\n break\n # move on to the install command if update was successful\n command = 'install'\n\n if command == 'install':\n # any call is considered a try\n tries += 1\n known_error_strings_redo_update = [\n 'Size mismatch',\n 'maybe run apt update',\n 'The following packages cannot be authenticated!',\n 'Unable to locate package',\n 'has no installation candidate',\n 'corrupted package archive',\n ]\n rc, known_error_conditions = \\\\\n call_apt(\n [command] + install_argv,\n known_error_strings + known_error_strings_redo_update)\n if not known_error_conditions:\n if rc != 0:\n # abort if install was unsuccessful\n break\n # move on to the clean command if install was successful\n command = 'clean'\n continue\n\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n # check if update needs to be rerun\n if (\n set(known_error_conditions) &\n set(known_error_strings_redo_update)\n ):\n command = 'update'\n print(\"'apt install' failed and likely requires \" +\n \"'apt update' to run again\")\n # retry with update command\n continue\n\n print('')\n print('Invocation failed due to the following known error '\n 'conditions: ' + ', '.join(known_error_conditions))\n print('')\n if tries < max_tries:\n sleep_time = 5\n print(\"Reinvoke 'apt install' after sleeping %s seconds\" %\n sleep_time)\n sleep(sleep_time)\n # retry install command\n\n if command == 'clean':\n rc, _ = call_apt([command], [])\n break\n\n return rc\n\n\ndef call_apt_repeatedly(argv, known_error_strings, max_tries, offset=0):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * (i + offset)\n print(\"Reinvoke 'apt %s' (%d/%d) after sleeping %s seconds\" %\n (command, i + offset, max_tries + offset, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_apt(argv, known_error_strings)\n if not known_error_conditions:\n # break the loop and return the reported rc\n break\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i + offset\n\n\ndef call_apt(argv, known_error_strings):\n known_error_conditions = []\n\n # some of the used options are not supported in older distros\n # e.g. Ubuntu Wily, Debian Jessie\n cmd = ['apt-get'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n lines = []\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n lines.append(line)\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n if rc and not known_error_conditions:\n print('Invocation failed without any known error condition, '\n 'printing all lines to debug known error detection:')\n for index, line in enumerate(lines):\n print(' ', index + 1, \"'%s'\" % line.rstrip('\\\\n\\\\r'))\n print('None of the following known errors were detected:')\n for index, known_error_string in enumerate(known_error_strings):\n print(' ', index + 1, \"'%s'\" % known_error_string)\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/apt.py
---> Running in 8f3d24e3d927
Removing intermediate container 8f3d24e3d927
---> 037b05b86752
Step 17/27 : RUN echo "# Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print(\"Reinvoke 'git %s' (%d/%d) after sleeping %s seconds\" %\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/git.py
---> Running in f17b68a0fddf
Removing intermediate container f17b68a0fddf
---> b54b6340ebbb
Step 18/27 : RUN echo "2025-06-18 (-0800)"
---> Running in b16a75d3f021
2025-06-18 (-0800)
Removing intermediate container b16a75d3f021
---> f230e4725be5
Step 19/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y python3 && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Running in c5e873d736b0
Get:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mGet:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mGet:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mRemoving intermediate container c5e873d736b0

ROS Buildfarm

unread,
Jun 23, 2025, 2:00:34 PM6/23/25
to ros-buildf...@googlegroups.com, sloretz+...@openrobotics.org, ac...@foxglove.dev, git...@stefanfabian.me
See <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/159/display/redirect>

Changes:


------------------------------------------
[...truncated 7.34 KB...]
+ echo # BEGIN SECTION: Embed wrapper scripts
# BEGIN SECTION: Embed wrapper scripts
+ rm -fr wrapper_scripts
+ mkdir wrapper_scripts
+ printf # Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the "License");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an "AS IS" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert "Command '%%s' not implemented" %% command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print("Reinvoke 'git %%s' (%%d/%%d) after sleeping %%s seconds" %%\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print("Invoking '%%s'" %% ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())
+ echo # END SECTION
# END SECTION
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins5298060602283649876.sh
+ echo # BEGIN SECTION: Clone ros_buildfarm
# BEGIN SECTION: Clone ros_buildfarm
+ rm -fr ros_buildfarm
+ python3 -u wrapper_scripts/git.py clone --depth 1 -b build.ros.org https://github.com/ros-infrastructure/ros_buildfarm.git ros_buildfarm
Invoking 'git clone --depth 1 -b build.ros.org https://github.com/ros-infrastructure/ros_buildfarm.git ros_buildfarm'
Cloning into 'ros_buildfarm'...
+ git -C ros_buildfarm --no-pager log -n 1
commit ce1d3f6d574ca36f0bd5ed60a8d899b8035e4b55
Author: Crola1702 <cristoba...@ekumenlabs.com>
Date: Wed Apr 2 17:35:30 2025 -0500

Revert 24.04 jenkins changes from (#1084)"

This reverts the changes to commit to reconfigure_jobs.groovy.em template,
that needs DiffUtils. However, that is not supported on the current
version of build.ros.org

Signed-off-by: Crola1702 <cristoba...@ekumenlabs.com>
+ rm -fr ros_buildfarm/.git
+ rm -fr ros_buildfarm/doc
+ echo # END SECTION
# END SECTION
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins3075380333145299956.sh
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins2494420072248428505.sh
+ python3 -u <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/ros_buildfarm/scripts/subprocess_reaper.py> 354016 --cid-file <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/docker_generating_dockers/docker.cid>
RUN for i in 1 2 3; do apt-get update && apt-get install -q -y gnupg ca-certificates && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
RUN echo "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1\n\nmQINBFzvJpYBEADY8l1YvO7iYW5gUESyzsTGnMvVUmlV3XarBaJz9bGRmgPXh7jc\nVFrQhE0L/HV7LOfoLI9H2GWYyHBqN5ERBlcA8XxG3ZvX7t9nAZPQT2Xxe3GT3tro\nu5oCR+SyHN9xPnUwDuqUSvJ2eqMYb9B/Hph3OmtjG30jSNq9kOF5bBTk1hOTGPH4\nK/AY0jzT6OpHfXU6ytlFsI47ZKsnTUhipGsKucQ1CXlyirndZ3V3k70YaooZ55rG\naIoAWlx2H0J7sAHmqS29N9jV9mo135d+d+TdLBXI0PXtiHzE9IPaX+ctdSUrPnp+\nTwR99lxglpIG6hLuvOMAaxiqFBB/Jf3XJ8OBakfS6nHrWH2WqQxRbiITl0irkQoz\npwNEF2Bv0+Jvs1UFEdVGz5a8xexQHst/RmKrtHLct3iOCvBNqoAQRbvWvBhPjO/p\nV5cYeUljZ5wpHyFkaEViClaVWqa6PIsyLqmyjsruPCWlURLsQoQxABcL8bwxX7UT\nhM6CtH6tGlYZ85RIzRifIm2oudzV5l+8oRgFr9yVcwyOFT6JCioqkwldW52P1pk/\n/SnuexC6LYqqDuHUs5NnokzzpfS6QaWfTY5P5tz4KHJfsjDIktly3mKVfY0fSPVV\nokdGpcUzvz2hq1fqjxB6MlB/1vtk0bImfcsoxBmF7H+4E9ZN1sX/tSb0KQARAQAB\ntCZPcGVuIFJvYm90aWNzIDxpbmZvQG9zcmZvdW5kYXRpb24ub3JnPokCVAQTAQgA\nPgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBMHPbjHmut6IaLFytPQu1vur\nF8ZUBQJgsdhRBQkLTMW7AAoJEPQu1vurF8ZUTMwP/3f7EkOPIFjUdRmpNJ2db4iB\nRQu5b2SJRG+KIdbvQBzKUBMV6/RUhEDPjhXZI3zDevzBewvAMKkqs2Q1cWo9WV7Z\nPyTkvSyey/Tjn+PozcdvzkvrEjDMftIk8E1WzLGq7vnPLZ1q/b6Vq4H373Z+EDWa\nDaDwW72CbCBLWAVtqff80CwlI2x8fYHKr3VBUnwcXNHR4+nRABfAWnaU4k+oTshC\nQucsd8vitNfsSXrKuKyz91IRHRPnJjx8UvGU4tRGfrHkw1505EZvgP02vXeRyWBR\nfKiL1vGy4tCSRDdZO3ms2J2m08VPv65HsHaWYMnO+rNJmMZj9d9JdL/9GRf5F6U0\nquoIFL39BhUEvBynuqlrqistnyOhw8W/IQy/ymNzBMcMz6rcMjMwhkgm/LNXoSD1\n1OrJu4ktQwRhwvGVarnB8ihwjsTxZFylaLmFSfaA+OAlOqCLS1OkIVMzjW+Ul6A6\nqjiCEUOsnlf4CGlhzNMZOx3low6ixzEqKOcfECpeIj80a2fBDmWkcAAjlHu6VBhA\nTUDG9e2xKLzV2Z/DLYsb3+n9QW7KO0yZKfiuUo6AYboAioQKn5jh3iRvjGh2Ujpo\n22G+oae3PcCc7G+z12j6xIY709FQuA49dA2YpzMda0/OX4LP56STEveDRrO+CnV6\nWE+F5FaIKwb72PL4rLi4\n=i0tj\n-----END PGP PUBLIC KEY BLOCK-----" > /tmp/keys/0.key && apt-key add /tmp/keys/0.key
RUN echo deb http://repositories.ros.org/ubuntu/testing focal main | tee -a /etc/apt/sources.list.d/buildfarm.list

RUN mkdir /tmp/wrapper_scripts
RUN echo "# Copyright 2014-2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Failed to fetch',\n 'Failed to stat',\n 'Hash Sum mismatch',\n 'Unable to locate package',\n 'is not what the server reported',\n ]\n\n command = argv[0]\n if command in ['update', 'source']:\n rc, _, _ = call_apt_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n elif command == 'update-install-clean':\n return call_apt_update_install_clean(\n argv[1:], known_error_strings, max_tries)\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_apt_update_install_clean(\n install_argv, known_error_strings, max_tries):\n tries = 0\n command = 'update'\n while tries < max_tries:\n if command == 'update':\n rc, _, tries = call_apt_repeatedly(\n [command], known_error_strings, max_tries - tries,\n offset=tries)\n if rc != 0:\n # abort if update was unsuccessful even after retries\n break\n # move on to the install command if update was successful\n command = 'install'\n\n if command == 'install':\n # any call is considered a try\n tries += 1\n known_error_strings_redo_update = [\n 'Size mismatch',\n 'maybe run apt update',\n 'The following packages cannot be authenticated!',\n 'Unable to locate package',\n 'has no installation candidate',\n 'corrupted package archive',\n ]\n rc, known_error_conditions = \\\\\n call_apt(\n [command] + install_argv,\n known_error_strings + known_error_strings_redo_update)\n if not known_error_conditions:\n if rc != 0:\n # abort if install was unsuccessful\n break\n # move on to the clean command if install was successful\n command = 'clean'\n continue\n\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n # check if update needs to be rerun\n if (\n set(known_error_conditions) &\n set(known_error_strings_redo_update)\n ):\n command = 'update'\n print(\"'apt install' failed and likely requires \" +\n \"'apt update' to run again\")\n # retry with update command\n continue\n\n print('')\n print('Invocation failed due to the following known error '\n 'conditions: ' + ', '.join(known_error_conditions))\n print('')\n if tries < max_tries:\n sleep_time = 5\n print(\"Reinvoke 'apt install' after sleeping %s seconds\" %\n sleep_time)\n sleep(sleep_time)\n # retry install command\n\n if command == 'clean':\n rc, _ = call_apt([command], [])\n break\n\n return rc\n\n\ndef call_apt_repeatedly(argv, known_error_strings, max_tries, offset=0):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * (i + offset)\n print(\"Reinvoke 'apt %s' (%d/%d) after sleeping %s seconds\" %\n (command, i + offset, max_tries + offset, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_apt(argv, known_error_strings)\n if not known_error_conditions:\n # break the loop and return the reported rc\n break\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i + offset\n\n\ndef call_apt(argv, known_error_strings):\n known_error_conditions = []\n\n # some of the used options are not supported in older distros\n # e.g. Ubuntu Wily, Debian Jessie\n cmd = ['apt-get'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n lines = []\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n lines.append(line)\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n if rc and not known_error_conditions:\n print('Invocation failed without any known error condition, '\n 'printing all lines to debug known error detection:')\n for index, line in enumerate(lines):\n print(' ', index + 1, \"'%s'\" % line.rstrip('\\\\n\\\\r'))\n print('None of the following known errors were detected:')\n for index, known_error_string in enumerate(known_error_strings):\n print(' ', index + 1, \"'%s'\" % known_error_string)\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/apt.py
RUN echo "# Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print(\"Reinvoke 'git %s' (%d/%d) after sleeping %s seconds\" %\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/git.py

# automatic invalidation once every day
RUN echo "2025-06-23 (-0800)"

RUN for i in 1 2 3; do apt-get update && apt-get install -q -y python3 && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done

RUN python3 -u /tmp/wrapper_scripts/apt.py update-install-clean -q -y git python3-apt python3-catkin-pkg-modules python3-empy python3-rosdep python3-rosdistro-modules wget

# always invalidate to actually have the latest apt and rosdep state
RUN echo "2025-06-23 10:00:12 -0800"
---> 16d024818a83
Step 3/27 : ENV DEBIAN_FRONTEND noninteractive
---> Using cache
---> a14d38148635
Step 4/27 : RUN echo 'APT::Get::Never-Include-Phased-Updates "true";' > /etc/apt/apt.conf.d/90-phased-updates
---> Using cache
---> 0f613779bd01
Step 5/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y locales && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Using cache
---> 5acfda5611fe
Step 6/27 : RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
---> Using cache
---> 0e5b300b93e0
Step 7/27 : RUN locale-gen en_US.UTF-8
---> Using cache
---> d0c5204daa69
Step 8/27 : ENV LANG en_US.UTF-8
---> Using cache
---> 15b9806b381e
Step 9/27 : ENV TZ PST+08
---> Using cache
---> 65cce5215042
Step 10/27 : RUN if [ $(id -nu 1001) ]; then userdel -r $(id -nu 1001); fi && useradd -u 1001 -l -m buildfarm
---> Using cache
---> 0cb105b2fd6f
Step 11/27 : RUN mkdir /tmp/keys
---> Using cache
---> f31375112e49
Step 12/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y gnupg ca-certificates && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Using cache
---> 5c33973d0d21
Step 13/27 : RUN echo "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1\n\nmQINBFzvJpYBEADY8l1YvO7iYW5gUESyzsTGnMvVUmlV3XarBaJz9bGRmgPXh7jc\nVFrQhE0L/HV7LOfoLI9H2GWYyHBqN5ERBlcA8XxG3ZvX7t9nAZPQT2Xxe3GT3tro\nu5oCR+SyHN9xPnUwDuqUSvJ2eqMYb9B/Hph3OmtjG30jSNq9kOF5bBTk1hOTGPH4\nK/AY0jzT6OpHfXU6ytlFsI47ZKsnTUhipGsKucQ1CXlyirndZ3V3k70YaooZ55rG\naIoAWlx2H0J7sAHmqS29N9jV9mo135d+d+TdLBXI0PXtiHzE9IPaX+ctdSUrPnp+\nTwR99lxglpIG6hLuvOMAaxiqFBB/Jf3XJ8OBakfS6nHrWH2WqQxRbiITl0irkQoz\npwNEF2Bv0+Jvs1UFEdVGz5a8xexQHst/RmKrtHLct3iOCvBNqoAQRbvWvBhPjO/p\nV5cYeUljZ5wpHyFkaEViClaVWqa6PIsyLqmyjsruPCWlURLsQoQxABcL8bwxX7UT\nhM6CtH6tGlYZ85RIzRifIm2oudzV5l+8oRgFr9yVcwyOFT6JCioqkwldW52P1pk/\n/SnuexC6LYqqDuHUs5NnokzzpfS6QaWfTY5P5tz4KHJfsjDIktly3mKVfY0fSPVV\nokdGpcUzvz2hq1fqjxB6MlB/1vtk0bImfcsoxBmF7H+4E9ZN1sX/tSb0KQARAQAB\ntCZPcGVuIFJvYm90aWNzIDxpbmZvQG9zcmZvdW5kYXRpb24ub3JnPokCVAQTAQgA\nPgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBMHPbjHmut6IaLFytPQu1vur\nF8ZUBQJgsdhRBQkLTMW7AAoJEPQu1vurF8ZUTMwP/3f7EkOPIFjUdRmpNJ2db4iB\nRQu5b2SJRG+KIdbvQBzKUBMV6/RUhEDPjhXZI3zDevzBewvAMKkqs2Q1cWo9WV7Z\nPyTkvSyey/Tjn+PozcdvzkvrEjDMftIk8E1WzLGq7vnPLZ1q/b6Vq4H373Z+EDWa\nDaDwW72CbCBLWAVtqff80CwlI2x8fYHKr3VBUnwcXNHR4+nRABfAWnaU4k+oTshC\nQucsd8vitNfsSXrKuKyz91IRHRPnJjx8UvGU4tRGfrHkw1505EZvgP02vXeRyWBR\nfKiL1vGy4tCSRDdZO3ms2J2m08VPv65HsHaWYMnO+rNJmMZj9d9JdL/9GRf5F6U0\nquoIFL39BhUEvBynuqlrqistnyOhw8W/IQy/ymNzBMcMz6rcMjMwhkgm/LNXoSD1\n1OrJu4ktQwRhwvGVarnB8ihwjsTxZFylaLmFSfaA+OAlOqCLS1OkIVMzjW+Ul6A6\nqjiCEUOsnlf4CGlhzNMZOx3low6ixzEqKOcfECpeIj80a2fBDmWkcAAjlHu6VBhA\nTUDG9e2xKLzV2Z/DLYsb3+n9QW7KO0yZKfiuUo6AYboAioQKn5jh3iRvjGh2Ujpo\n22G+oae3PcCc7G+z12j6xIY709FQuA49dA2YpzMda0/OX4LP56STEveDRrO+CnV6\nWE+F5FaIKwb72PL4rLi4\n=i0tj\n-----END PGP PUBLIC KEY BLOCK-----" > /tmp/keys/0.key && apt-key add /tmp/keys/0.key
---> Using cache
---> 95296b6a2370
Step 14/27 : RUN echo deb http://repositories.ros.org/ubuntu/testing focal main | tee -a /etc/apt/sources.list.d/buildfarm.list
---> Using cache
---> 55f00ce097d0
Step 15/27 : RUN mkdir /tmp/wrapper_scripts
---> Using cache
---> 9e5711abdf5f
Step 16/27 : RUN echo "# Copyright 2014-2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Failed to fetch',\n 'Failed to stat',\n 'Hash Sum mismatch',\n 'Unable to locate package',\n 'is not what the server reported',\n ]\n\n command = argv[0]\n if command in ['update', 'source']:\n rc, _, _ = call_apt_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n elif command == 'update-install-clean':\n return call_apt_update_install_clean(\n argv[1:], known_error_strings, max_tries)\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_apt_update_install_clean(\n install_argv, known_error_strings, max_tries):\n tries = 0\n command = 'update'\n while tries < max_tries:\n if command == 'update':\n rc, _, tries = call_apt_repeatedly(\n [command], known_error_strings, max_tries - tries,\n offset=tries)\n if rc != 0:\n # abort if update was unsuccessful even after retries\n break\n # move on to the install command if update was successful\n command = 'install'\n\n if command == 'install':\n # any call is considered a try\n tries += 1\n known_error_strings_redo_update = [\n 'Size mismatch',\n 'maybe run apt update',\n 'The following packages cannot be authenticated!',\n 'Unable to locate package',\n 'has no installation candidate',\n 'corrupted package archive',\n ]\n rc, known_error_conditions = \\\\\n call_apt(\n [command] + install_argv,\n known_error_strings + known_error_strings_redo_update)\n if not known_error_conditions:\n if rc != 0:\n # abort if install was unsuccessful\n break\n # move on to the clean command if install was successful\n command = 'clean'\n continue\n\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n # check if update needs to be rerun\n if (\n set(known_error_conditions) &\n set(known_error_strings_redo_update)\n ):\n command = 'update'\n print(\"'apt install' failed and likely requires \" +\n \"'apt update' to run again\")\n # retry with update command\n continue\n\n print('')\n print('Invocation failed due to the following known error '\n 'conditions: ' + ', '.join(known_error_conditions))\n print('')\n if tries < max_tries:\n sleep_time = 5\n print(\"Reinvoke 'apt install' after sleeping %s seconds\" %\n sleep_time)\n sleep(sleep_time)\n # retry install command\n\n if command == 'clean':\n rc, _ = call_apt([command], [])\n break\n\n return rc\n\n\ndef call_apt_repeatedly(argv, known_error_strings, max_tries, offset=0):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * (i + offset)\n print(\"Reinvoke 'apt %s' (%d/%d) after sleeping %s seconds\" %\n (command, i + offset, max_tries + offset, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_apt(argv, known_error_strings)\n if not known_error_conditions:\n # break the loop and return the reported rc\n break\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i + offset\n\n\ndef call_apt(argv, known_error_strings):\n known_error_conditions = []\n\n # some of the used options are not supported in older distros\n # e.g. Ubuntu Wily, Debian Jessie\n cmd = ['apt-get'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n lines = []\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n lines.append(line)\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n if rc and not known_error_conditions:\n print('Invocation failed without any known error condition, '\n 'printing all lines to debug known error detection:')\n for index, line in enumerate(lines):\n print(' ', index + 1, \"'%s'\" % line.rstrip('\\\\n\\\\r'))\n print('None of the following known errors were detected:')\n for index, known_error_string in enumerate(known_error_strings):\n print(' ', index + 1, \"'%s'\" % known_error_string)\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/apt.py
---> Using cache
---> 36602528991b
Step 17/27 : RUN echo "# Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print(\"Reinvoke 'git %s' (%d/%d) after sleeping %s seconds\" %\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/git.py
---> Using cache
---> bdf5fca037e8
Step 18/27 : RUN echo "2025-06-23 (-0800)"
---> Using cache
---> 5583586f25b0
Step 19/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y python3 && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Running in 3aa582934dd3
Get:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [128 kB]
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [128 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease [128 kB]
Get:6 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [4,919 kB]
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mGet:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mGet:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mRemoving intermediate container 3aa582934dd3

ROS Buildfarm

unread,
Jun 26, 2025, 6:01:01 PM6/26/25
to ros-buildf...@googlegroups.com, sloretz+...@openrobotics.org, ac...@foxglove.dev, git...@stefanfabian.me
See <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/160/display/redirect>

Changes:


------------------------------------------
[...truncated 36.51 KB...]
[0mFetched 6,475 kB in 2s (2,926 kB/s)
Removing intermediate container 11f6c2306a89
---> e58ce702b2a1
Step 13/27 : RUN echo "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1\n\nmQINBFzvJpYBEADY8l1YvO7iYW5gUESyzsTGnMvVUmlV3XarBaJz9bGRmgPXh7jc\nVFrQhE0L/HV7LOfoLI9H2GWYyHBqN5ERBlcA8XxG3ZvX7t9nAZPQT2Xxe3GT3tro\nu5oCR+SyHN9xPnUwDuqUSvJ2eqMYb9B/Hph3OmtjG30jSNq9kOF5bBTk1hOTGPH4\nK/AY0jzT6OpHfXU6ytlFsI47ZKsnTUhipGsKucQ1CXlyirndZ3V3k70YaooZ55rG\naIoAWlx2H0J7sAHmqS29N9jV9mo135d+d+TdLBXI0PXtiHzE9IPaX+ctdSUrPnp+\nTwR99lxglpIG6hLuvOMAaxiqFBB/Jf3XJ8OBakfS6nHrWH2WqQxRbiITl0irkQoz\npwNEF2Bv0+Jvs1UFEdVGz5a8xexQHst/RmKrtHLct3iOCvBNqoAQRbvWvBhPjO/p\nV5cYeUljZ5wpHyFkaEViClaVWqa6PIsyLqmyjsruPCWlURLsQoQxABcL8bwxX7UT\nhM6CtH6tGlYZ85RIzRifIm2oudzV5l+8oRgFr9yVcwyOFT6JCioqkwldW52P1pk/\n/SnuexC6LYqqDuHUs5NnokzzpfS6QaWfTY5P5tz4KHJfsjDIktly3mKVfY0fSPVV\nokdGpcUzvz2hq1fqjxB6MlB/1vtk0bImfcsoxBmF7H+4E9ZN1sX/tSb0KQARAQAB\ntCZPcGVuIFJvYm90aWNzIDxpbmZvQG9zcmZvdW5kYXRpb24ub3JnPokCVAQTAQgA\nPgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBMHPbjHmut6IaLFytPQu1vur\nF8ZUBQJgsdhRBQkLTMW7AAoJEPQu1vurF8ZUTMwP/3f7EkOPIFjUdRmpNJ2db4iB\nRQu5b2SJRG+KIdbvQBzKUBMV6/RUhEDPjhXZI3zDevzBewvAMKkqs2Q1cWo9WV7Z\nPyTkvSyey/Tjn+PozcdvzkvrEjDMftIk8E1WzLGq7vnPLZ1q/b6Vq4H373Z+EDWa\nDaDwW72CbCBLWAVtqff80CwlI2x8fYHKr3VBUnwcXNHR4+nRABfAWnaU4k+oTshC\nQucsd8vitNfsSXrKuKyz91IRHRPnJjx8UvGU4tRGfrHkw1505EZvgP02vXeRyWBR\nfKiL1vGy4tCSRDdZO3ms2J2m08VPv65HsHaWYMnO+rNJmMZj9d9JdL/9GRf5F6U0\nquoIFL39BhUEvBynuqlrqistnyOhw8W/IQy/ymNzBMcMz6rcMjMwhkgm/LNXoSD1\n1OrJu4ktQwRhwvGVarnB8ihwjsTxZFylaLmFSfaA+OAlOqCLS1OkIVMzjW+Ul6A6\nqjiCEUOsnlf4CGlhzNMZOx3low6ixzEqKOcfECpeIj80a2fBDmWkcAAjlHu6VBhA\nTUDG9e2xKLzV2Z/DLYsb3+n9QW7KO0yZKfiuUo6AYboAioQKn5jh3iRvjGh2Ujpo\n22G+oae3PcCc7G+z12j6xIY709FQuA49dA2YpzMda0/OX4LP56STEveDRrO+CnV6\nWE+F5FaIKwb72PL4rLi4\n=i0tj\n-----END PGP PUBLIC KEY BLOCK-----" > /tmp/keys/0.key && apt-key add /tmp/keys/0.key
---> Running in 85a5f0a28013
[91mWarning: apt-key output should not be parsed (stdout is not a terminal)
[0mOK
Removing intermediate container 85a5f0a28013
---> 4f26c748936c
Step 14/27 : RUN echo deb http://repositories.ros.org/ubuntu/testing focal main | tee -a /etc/apt/sources.list.d/buildfarm.list
---> Running in fda42e037b66
Removing intermediate container fda42e037b66
---> aa6aa39d1a4e
Step 15/27 : RUN mkdir /tmp/wrapper_scripts
---> Running in 1a3ad8e2f704
Removing intermediate container 1a3ad8e2f704
---> e5289e5068f3
Step 16/27 : RUN echo "# Copyright 2014-2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Failed to fetch',\n 'Failed to stat',\n 'Hash Sum mismatch',\n 'Unable to locate package',\n 'is not what the server reported',\n ]\n\n command = argv[0]\n if command in ['update', 'source']:\n rc, _, _ = call_apt_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n elif command == 'update-install-clean':\n return call_apt_update_install_clean(\n argv[1:], known_error_strings, max_tries)\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_apt_update_install_clean(\n install_argv, known_error_strings, max_tries):\n tries = 0\n command = 'update'\n while tries < max_tries:\n if command == 'update':\n rc, _, tries = call_apt_repeatedly(\n [command], known_error_strings, max_tries - tries,\n offset=tries)\n if rc != 0:\n # abort if update was unsuccessful even after retries\n break\n # move on to the install command if update was successful\n command = 'install'\n\n if command == 'install':\n # any call is considered a try\n tries += 1\n known_error_strings_redo_update = [\n 'Size mismatch',\n 'maybe run apt update',\n 'The following packages cannot be authenticated!',\n 'Unable to locate package',\n 'has no installation candidate',\n 'corrupted package archive',\n ]\n rc, known_error_conditions = \\\\\n call_apt(\n [command] + install_argv,\n known_error_strings + known_error_strings_redo_update)\n if not known_error_conditions:\n if rc != 0:\n # abort if install was unsuccessful\n break\n # move on to the clean command if install was successful\n command = 'clean'\n continue\n\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n # check if update needs to be rerun\n if (\n set(known_error_conditions) &\n set(known_error_strings_redo_update)\n ):\n command = 'update'\n print(\"'apt install' failed and likely requires \" +\n \"'apt update' to run again\")\n # retry with update command\n continue\n\n print('')\n print('Invocation failed due to the following known error '\n 'conditions: ' + ', '.join(known_error_conditions))\n print('')\n if tries < max_tries:\n sleep_time = 5\n print(\"Reinvoke 'apt install' after sleeping %s seconds\" %\n sleep_time)\n sleep(sleep_time)\n # retry install command\n\n if command == 'clean':\n rc, _ = call_apt([command], [])\n break\n\n return rc\n\n\ndef call_apt_repeatedly(argv, known_error_strings, max_tries, offset=0):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * (i + offset)\n print(\"Reinvoke 'apt %s' (%d/%d) after sleeping %s seconds\" %\n (command, i + offset, max_tries + offset, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_apt(argv, known_error_strings)\n if not known_error_conditions:\n # break the loop and return the reported rc\n break\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i + offset\n\n\ndef call_apt(argv, known_error_strings):\n known_error_conditions = []\n\n # some of the used options are not supported in older distros\n # e.g. Ubuntu Wily, Debian Jessie\n cmd = ['apt-get'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n lines = []\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n lines.append(line)\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n if rc and not known_error_conditions:\n print('Invocation failed without any known error condition, '\n 'printing all lines to debug known error detection:')\n for index, line in enumerate(lines):\n print(' ', index + 1, \"'%s'\" % line.rstrip('\\\\n\\\\r'))\n print('None of the following known errors were detected:')\n for index, known_error_string in enumerate(known_error_strings):\n print(' ', index + 1, \"'%s'\" % known_error_string)\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/apt.py
---> Running in bfd0403abbcc
Removing intermediate container bfd0403abbcc
---> 5e8fd6c27929
Step 17/27 : RUN echo "# Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print(\"Reinvoke 'git %s' (%d/%d) after sleeping %s seconds\" %\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/git.py
---> Running in 9fcf80fea0c9
Removing intermediate container 9fcf80fea0c9
---> adca33a9ae63
Step 18/27 : RUN echo "2025-06-26 (-0800)"
---> Running in 60e8cc6b6dd3
2025-06-26 (-0800)
Removing intermediate container 60e8cc6b6dd3
---> e5507696c903
Step 19/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y python3 && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Running in 3e6a789d9082
Get:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mGet:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Hit:5 http://security.ubuntu.com/ubuntu focal-security InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mGet:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mRemoving intermediate container 3e6a789d9082

ROS Buildfarm

unread,
Jun 27, 2025, 2:00:33 PM6/27/25
to ros-buildf...@googlegroups.com, sloretz+...@openrobotics.org, ac...@foxglove.dev, git...@stefanfabian.me
See <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/161/display/redirect>

Changes:


------------------------------------------
[...truncated 6.94 KB...]
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins1239085642660537346.sh
+ echo # BEGIN SECTION: Embed wrapper scripts
# BEGIN SECTION: Embed wrapper scripts
+ rm -fr wrapper_scripts
+ mkdir wrapper_scripts
+ printf # Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the "License");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an "AS IS" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert "Command '%%s' not implemented" %% command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print("Reinvoke 'git %%s' (%%d/%%d) after sleeping %%s seconds" %%\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print("Invoking '%%s'" %% ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())
+ echo # END SECTION
# END SECTION
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins2321216137980867082.sh
+ echo # BEGIN SECTION: Clone ros_buildfarm
# BEGIN SECTION: Clone ros_buildfarm
+ rm -fr ros_buildfarm
+ python3 -u wrapper_scripts/git.py clone --depth 1 -b build.ros.org https://github.com/ros-infrastructure/ros_buildfarm.git ros_buildfarm
Invoking 'git clone --depth 1 -b build.ros.org https://github.com/ros-infrastructure/ros_buildfarm.git ros_buildfarm'
Cloning into 'ros_buildfarm'...
+ git -C ros_buildfarm --no-pager log -n 1
commit ce1d3f6d574ca36f0bd5ed60a8d899b8035e4b55
Author: Crola1702 <cristoba...@ekumenlabs.com>
Date: Wed Apr 2 17:35:30 2025 -0500

Revert 24.04 jenkins changes from (#1084)"

This reverts the changes to commit to reconfigure_jobs.groovy.em template,
that needs DiffUtils. However, that is not supported on the current
version of build.ros.org

Signed-off-by: Crola1702 <cristoba...@ekumenlabs.com>
+ rm -fr ros_buildfarm/.git
+ rm -fr ros_buildfarm/doc
+ echo # END SECTION
# END SECTION
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins5484659791067114836.sh
[Ndev__foxglove_bridge__ubuntu_focal_amd64] $ /bin/sh -xe /tmp/jenkins2790737014028218411.sh
+ python3 -u <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/ros_buildfarm/scripts/subprocess_reaper.py> 24781 --cid-file <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/ws/docker_generating_dockers/docker.cid>
RUN for i in 1 2 3; do apt-get update && apt-get install -q -y gnupg ca-certificates && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
RUN echo "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1\n\nmQINBFzvJpYBEADY8l1YvO7iYW5gUESyzsTGnMvVUmlV3XarBaJz9bGRmgPXh7jc\nVFrQhE0L/HV7LOfoLI9H2GWYyHBqN5ERBlcA8XxG3ZvX7t9nAZPQT2Xxe3GT3tro\nu5oCR+SyHN9xPnUwDuqUSvJ2eqMYb9B/Hph3OmtjG30jSNq9kOF5bBTk1hOTGPH4\nK/AY0jzT6OpHfXU6ytlFsI47ZKsnTUhipGsKucQ1CXlyirndZ3V3k70YaooZ55rG\naIoAWlx2H0J7sAHmqS29N9jV9mo135d+d+TdLBXI0PXtiHzE9IPaX+ctdSUrPnp+\nTwR99lxglpIG6hLuvOMAaxiqFBB/Jf3XJ8OBakfS6nHrWH2WqQxRbiITl0irkQoz\npwNEF2Bv0+Jvs1UFEdVGz5a8xexQHst/RmKrtHLct3iOCvBNqoAQRbvWvBhPjO/p\nV5cYeUljZ5wpHyFkaEViClaVWqa6PIsyLqmyjsruPCWlURLsQoQxABcL8bwxX7UT\nhM6CtH6tGlYZ85RIzRifIm2oudzV5l+8oRgFr9yVcwyOFT6JCioqkwldW52P1pk/\n/SnuexC6LYqqDuHUs5NnokzzpfS6QaWfTY5P5tz4KHJfsjDIktly3mKVfY0fSPVV\nokdGpcUzvz2hq1fqjxB6MlB/1vtk0bImfcsoxBmF7H+4E9ZN1sX/tSb0KQARAQAB\ntCZPcGVuIFJvYm90aWNzIDxpbmZvQG9zcmZvdW5kYXRpb24ub3JnPokCVAQTAQgA\nPgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBMHPbjHmut6IaLFytPQu1vur\nF8ZUBQJgsdhRBQkLTMW7AAoJEPQu1vurF8ZUTMwP/3f7EkOPIFjUdRmpNJ2db4iB\nRQu5b2SJRG+KIdbvQBzKUBMV6/RUhEDPjhXZI3zDevzBewvAMKkqs2Q1cWo9WV7Z\nPyTkvSyey/Tjn+PozcdvzkvrEjDMftIk8E1WzLGq7vnPLZ1q/b6Vq4H373Z+EDWa\nDaDwW72CbCBLWAVtqff80CwlI2x8fYHKr3VBUnwcXNHR4+nRABfAWnaU4k+oTshC\nQucsd8vitNfsSXrKuKyz91IRHRPnJjx8UvGU4tRGfrHkw1505EZvgP02vXeRyWBR\nfKiL1vGy4tCSRDdZO3ms2J2m08VPv65HsHaWYMnO+rNJmMZj9d9JdL/9GRf5F6U0\nquoIFL39BhUEvBynuqlrqistnyOhw8W/IQy/ymNzBMcMz6rcMjMwhkgm/LNXoSD1\n1OrJu4ktQwRhwvGVarnB8ihwjsTxZFylaLmFSfaA+OAlOqCLS1OkIVMzjW+Ul6A6\nqjiCEUOsnlf4CGlhzNMZOx3low6ixzEqKOcfECpeIj80a2fBDmWkcAAjlHu6VBhA\nTUDG9e2xKLzV2Z/DLYsb3+n9QW7KO0yZKfiuUo6AYboAioQKn5jh3iRvjGh2Ujpo\n22G+oae3PcCc7G+z12j6xIY709FQuA49dA2YpzMda0/OX4LP56STEveDRrO+CnV6\nWE+F5FaIKwb72PL4rLi4\n=i0tj\n-----END PGP PUBLIC KEY BLOCK-----" > /tmp/keys/0.key && apt-key add /tmp/keys/0.key
RUN echo deb http://repositories.ros.org/ubuntu/testing focal main | tee -a /etc/apt/sources.list.d/buildfarm.list

RUN mkdir /tmp/wrapper_scripts
RUN echo "# Copyright 2014-2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Failed to fetch',\n 'Failed to stat',\n 'Hash Sum mismatch',\n 'Unable to locate package',\n 'is not what the server reported',\n ]\n\n command = argv[0]\n if command in ['update', 'source']:\n rc, _, _ = call_apt_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n elif command == 'update-install-clean':\n return call_apt_update_install_clean(\n argv[1:], known_error_strings, max_tries)\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_apt_update_install_clean(\n install_argv, known_error_strings, max_tries):\n tries = 0\n command = 'update'\n while tries < max_tries:\n if command == 'update':\n rc, _, tries = call_apt_repeatedly(\n [command], known_error_strings, max_tries - tries,\n offset=tries)\n if rc != 0:\n # abort if update was unsuccessful even after retries\n break\n # move on to the install command if update was successful\n command = 'install'\n\n if command == 'install':\n # any call is considered a try\n tries += 1\n known_error_strings_redo_update = [\n 'Size mismatch',\n 'maybe run apt update',\n 'The following packages cannot be authenticated!',\n 'Unable to locate package',\n 'has no installation candidate',\n 'corrupted package archive',\n ]\n rc, known_error_conditions = \\\\\n call_apt(\n [command] + install_argv,\n known_error_strings + known_error_strings_redo_update)\n if not known_error_conditions:\n if rc != 0:\n # abort if install was unsuccessful\n break\n # move on to the clean command if install was successful\n command = 'clean'\n continue\n\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n # check if update needs to be rerun\n if (\n set(known_error_conditions) &\n set(known_error_strings_redo_update)\n ):\n command = 'update'\n print(\"'apt install' failed and likely requires \" +\n \"'apt update' to run again\")\n # retry with update command\n continue\n\n print('')\n print('Invocation failed due to the following known error '\n 'conditions: ' + ', '.join(known_error_conditions))\n print('')\n if tries < max_tries:\n sleep_time = 5\n print(\"Reinvoke 'apt install' after sleeping %s seconds\" %\n sleep_time)\n sleep(sleep_time)\n # retry install command\n\n if command == 'clean':\n rc, _ = call_apt([command], [])\n break\n\n return rc\n\n\ndef call_apt_repeatedly(argv, known_error_strings, max_tries, offset=0):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * (i + offset)\n print(\"Reinvoke 'apt %s' (%d/%d) after sleeping %s seconds\" %\n (command, i + offset, max_tries + offset, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_apt(argv, known_error_strings)\n if not known_error_conditions:\n # break the loop and return the reported rc\n break\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i + offset\n\n\ndef call_apt(argv, known_error_strings):\n known_error_conditions = []\n\n # some of the used options are not supported in older distros\n # e.g. Ubuntu Wily, Debian Jessie\n cmd = ['apt-get'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n lines = []\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n lines.append(line)\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n if rc and not known_error_conditions:\n print('Invocation failed without any known error condition, '\n 'printing all lines to debug known error detection:')\n for index, line in enumerate(lines):\n print(' ', index + 1, \"'%s'\" % line.rstrip('\\\\n\\\\r'))\n print('None of the following known errors were detected:')\n for index, known_error_string in enumerate(known_error_strings):\n print(' ', index + 1, \"'%s'\" % known_error_string)\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/apt.py
RUN echo "# Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print(\"Reinvoke 'git %s' (%d/%d) after sleeping %s seconds\" %\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/git.py

# automatic invalidation once every day
RUN echo "2025-06-27 (-0800)"

RUN for i in 1 2 3; do apt-get update && apt-get install -q -y python3 && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done

RUN python3 -u /tmp/wrapper_scripts/apt.py update-install-clean -q -y git python3-apt python3-catkin-pkg-modules python3-empy python3-rosdep python3-rosdistro-modules wget

# always invalidate to actually have the latest apt and rosdep state
RUN echo "2025-06-27 10:00:14 -0800"
---> 2fd92abe6e08
Step 3/27 : ENV DEBIAN_FRONTEND noninteractive
---> Using cache
---> 24bb816764e0
Step 4/27 : RUN echo 'APT::Get::Never-Include-Phased-Updates "true";' > /etc/apt/apt.conf.d/90-phased-updates
---> Using cache
---> 48018d8f1335
Step 5/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y locales && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Using cache
---> 4e8e7f8c69f3
Step 6/27 : RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
---> Using cache
---> 907a94bb691e
Step 7/27 : RUN locale-gen en_US.UTF-8
---> Using cache
---> ba75596184ab
Step 8/27 : ENV LANG en_US.UTF-8
---> Using cache
---> 96d0b6b646a0
Step 9/27 : ENV TZ PST+08
---> Using cache
---> e74fe23257ad
Step 10/27 : RUN if [ $(id -nu 1001) ]; then userdel -r $(id -nu 1001); fi && useradd -u 1001 -l -m buildfarm
---> Using cache
---> bc790a2b0bc6
Step 11/27 : RUN mkdir /tmp/keys
---> Using cache
---> aefb3df7a406
Step 12/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y gnupg ca-certificates && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Using cache
---> 46ed753b3744
Step 13/27 : RUN echo "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1\n\nmQINBFzvJpYBEADY8l1YvO7iYW5gUESyzsTGnMvVUmlV3XarBaJz9bGRmgPXh7jc\nVFrQhE0L/HV7LOfoLI9H2GWYyHBqN5ERBlcA8XxG3ZvX7t9nAZPQT2Xxe3GT3tro\nu5oCR+SyHN9xPnUwDuqUSvJ2eqMYb9B/Hph3OmtjG30jSNq9kOF5bBTk1hOTGPH4\nK/AY0jzT6OpHfXU6ytlFsI47ZKsnTUhipGsKucQ1CXlyirndZ3V3k70YaooZ55rG\naIoAWlx2H0J7sAHmqS29N9jV9mo135d+d+TdLBXI0PXtiHzE9IPaX+ctdSUrPnp+\nTwR99lxglpIG6hLuvOMAaxiqFBB/Jf3XJ8OBakfS6nHrWH2WqQxRbiITl0irkQoz\npwNEF2Bv0+Jvs1UFEdVGz5a8xexQHst/RmKrtHLct3iOCvBNqoAQRbvWvBhPjO/p\nV5cYeUljZ5wpHyFkaEViClaVWqa6PIsyLqmyjsruPCWlURLsQoQxABcL8bwxX7UT\nhM6CtH6tGlYZ85RIzRifIm2oudzV5l+8oRgFr9yVcwyOFT6JCioqkwldW52P1pk/\n/SnuexC6LYqqDuHUs5NnokzzpfS6QaWfTY5P5tz4KHJfsjDIktly3mKVfY0fSPVV\nokdGpcUzvz2hq1fqjxB6MlB/1vtk0bImfcsoxBmF7H+4E9ZN1sX/tSb0KQARAQAB\ntCZPcGVuIFJvYm90aWNzIDxpbmZvQG9zcmZvdW5kYXRpb24ub3JnPokCVAQTAQgA\nPgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBMHPbjHmut6IaLFytPQu1vur\nF8ZUBQJgsdhRBQkLTMW7AAoJEPQu1vurF8ZUTMwP/3f7EkOPIFjUdRmpNJ2db4iB\nRQu5b2SJRG+KIdbvQBzKUBMV6/RUhEDPjhXZI3zDevzBewvAMKkqs2Q1cWo9WV7Z\nPyTkvSyey/Tjn+PozcdvzkvrEjDMftIk8E1WzLGq7vnPLZ1q/b6Vq4H373Z+EDWa\nDaDwW72CbCBLWAVtqff80CwlI2x8fYHKr3VBUnwcXNHR4+nRABfAWnaU4k+oTshC\nQucsd8vitNfsSXrKuKyz91IRHRPnJjx8UvGU4tRGfrHkw1505EZvgP02vXeRyWBR\nfKiL1vGy4tCSRDdZO3ms2J2m08VPv65HsHaWYMnO+rNJmMZj9d9JdL/9GRf5F6U0\nquoIFL39BhUEvBynuqlrqistnyOhw8W/IQy/ymNzBMcMz6rcMjMwhkgm/LNXoSD1\n1OrJu4ktQwRhwvGVarnB8ihwjsTxZFylaLmFSfaA+OAlOqCLS1OkIVMzjW+Ul6A6\nqjiCEUOsnlf4CGlhzNMZOx3low6ixzEqKOcfECpeIj80a2fBDmWkcAAjlHu6VBhA\nTUDG9e2xKLzV2Z/DLYsb3+n9QW7KO0yZKfiuUo6AYboAioQKn5jh3iRvjGh2Ujpo\n22G+oae3PcCc7G+z12j6xIY709FQuA49dA2YpzMda0/OX4LP56STEveDRrO+CnV6\nWE+F5FaIKwb72PL4rLi4\n=i0tj\n-----END PGP PUBLIC KEY BLOCK-----" > /tmp/keys/0.key && apt-key add /tmp/keys/0.key
---> Using cache
---> 1dd8d04fb67c
Step 14/27 : RUN echo deb http://repositories.ros.org/ubuntu/testing focal main | tee -a /etc/apt/sources.list.d/buildfarm.list
---> Using cache
---> 1d957eb70992
Step 15/27 : RUN mkdir /tmp/wrapper_scripts
---> Using cache
---> ec15edec363c
Step 16/27 : RUN echo "# Copyright 2014-2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Failed to fetch',\n 'Failed to stat',\n 'Hash Sum mismatch',\n 'Unable to locate package',\n 'is not what the server reported',\n ]\n\n command = argv[0]\n if command in ['update', 'source']:\n rc, _, _ = call_apt_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n elif command == 'update-install-clean':\n return call_apt_update_install_clean(\n argv[1:], known_error_strings, max_tries)\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_apt_update_install_clean(\n install_argv, known_error_strings, max_tries):\n tries = 0\n command = 'update'\n while tries < max_tries:\n if command == 'update':\n rc, _, tries = call_apt_repeatedly(\n [command], known_error_strings, max_tries - tries,\n offset=tries)\n if rc != 0:\n # abort if update was unsuccessful even after retries\n break\n # move on to the install command if update was successful\n command = 'install'\n\n if command == 'install':\n # any call is considered a try\n tries += 1\n known_error_strings_redo_update = [\n 'Size mismatch',\n 'maybe run apt update',\n 'The following packages cannot be authenticated!',\n 'Unable to locate package',\n 'has no installation candidate',\n 'corrupted package archive',\n ]\n rc, known_error_conditions = \\\\\n call_apt(\n [command] + install_argv,\n known_error_strings + known_error_strings_redo_update)\n if not known_error_conditions:\n if rc != 0:\n # abort if install was unsuccessful\n break\n # move on to the clean command if install was successful\n command = 'clean'\n continue\n\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n # check if update needs to be rerun\n if (\n set(known_error_conditions) &\n set(known_error_strings_redo_update)\n ):\n command = 'update'\n print(\"'apt install' failed and likely requires \" +\n \"'apt update' to run again\")\n # retry with update command\n continue\n\n print('')\n print('Invocation failed due to the following known error '\n 'conditions: ' + ', '.join(known_error_conditions))\n print('')\n if tries < max_tries:\n sleep_time = 5\n print(\"Reinvoke 'apt install' after sleeping %s seconds\" %\n sleep_time)\n sleep(sleep_time)\n # retry install command\n\n if command == 'clean':\n rc, _ = call_apt([command], [])\n break\n\n return rc\n\n\ndef call_apt_repeatedly(argv, known_error_strings, max_tries, offset=0):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * (i + offset)\n print(\"Reinvoke 'apt %s' (%d/%d) after sleeping %s seconds\" %\n (command, i + offset, max_tries + offset, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_apt(argv, known_error_strings)\n if not known_error_conditions:\n # break the loop and return the reported rc\n break\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i + offset\n\n\ndef call_apt(argv, known_error_strings):\n known_error_conditions = []\n\n # some of the used options are not supported in older distros\n # e.g. Ubuntu Wily, Debian Jessie\n cmd = ['apt-get'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n lines = []\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n lines.append(line)\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n if rc and not known_error_conditions:\n print('Invocation failed without any known error condition, '\n 'printing all lines to debug known error detection:')\n for index, line in enumerate(lines):\n print(' ', index + 1, \"'%s'\" % line.rstrip('\\\\n\\\\r'))\n print('None of the following known errors were detected:')\n for index, known_error_string in enumerate(known_error_strings):\n print(' ', index + 1, \"'%s'\" % known_error_string)\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/apt.py
---> Using cache
---> b6680b079c32
Step 17/27 : RUN echo "# Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print(\"Reinvoke 'git %s' (%d/%d) after sleeping %s seconds\" %\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/git.py
---> Using cache
---> e272be242954
Step 18/27 : RUN echo "2025-06-27 (-0800)"
---> Using cache
---> 2f9c92382935
Step 19/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y python3 && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Running in 2aed9759d81c
Get:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [128 kB]
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [128 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease [128 kB]
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mGet:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mGet:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists...
[91mW: GPG error: http://repositories.ros.org/ubuntu/testing focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
E: The repository 'http://repositories.ros.org/ubuntu/testing focal InRelease' is not signed.
[0mRemoving intermediate container 2aed9759d81c

ROS Buildfarm

unread,
Jun 30, 2025, 2:01:08 PM6/30/25
to ros-buildf...@googlegroups.com, sloretz+...@openrobotics.org, ac...@foxglove.dev, git...@stefanfabian.me
See <https://build.ros.org/job/Ndev__foxglove_bridge__ubuntu_focal_amd64/162/display/redirect>

Changes:


------------------------------------------
[...truncated 36.97 KB...]
[0mFetched 6,475 kB in 2s (3,155 kB/s)
Removing intermediate container acbb1d8a15e0
---> 753e83a488b3
Step 13/27 : RUN echo "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1\n\nmQINBFzvJpYBEADY8l1YvO7iYW5gUESyzsTGnMvVUmlV3XarBaJz9bGRmgPXh7jc\nVFrQhE0L/HV7LOfoLI9H2GWYyHBqN5ERBlcA8XxG3ZvX7t9nAZPQT2Xxe3GT3tro\nu5oCR+SyHN9xPnUwDuqUSvJ2eqMYb9B/Hph3OmtjG30jSNq9kOF5bBTk1hOTGPH4\nK/AY0jzT6OpHfXU6ytlFsI47ZKsnTUhipGsKucQ1CXlyirndZ3V3k70YaooZ55rG\naIoAWlx2H0J7sAHmqS29N9jV9mo135d+d+TdLBXI0PXtiHzE9IPaX+ctdSUrPnp+\nTwR99lxglpIG6hLuvOMAaxiqFBB/Jf3XJ8OBakfS6nHrWH2WqQxRbiITl0irkQoz\npwNEF2Bv0+Jvs1UFEdVGz5a8xexQHst/RmKrtHLct3iOCvBNqoAQRbvWvBhPjO/p\nV5cYeUljZ5wpHyFkaEViClaVWqa6PIsyLqmyjsruPCWlURLsQoQxABcL8bwxX7UT\nhM6CtH6tGlYZ85RIzRifIm2oudzV5l+8oRgFr9yVcwyOFT6JCioqkwldW52P1pk/\n/SnuexC6LYqqDuHUs5NnokzzpfS6QaWfTY5P5tz4KHJfsjDIktly3mKVfY0fSPVV\nokdGpcUzvz2hq1fqjxB6MlB/1vtk0bImfcsoxBmF7H+4E9ZN1sX/tSb0KQARAQAB\ntCZPcGVuIFJvYm90aWNzIDxpbmZvQG9zcmZvdW5kYXRpb24ub3JnPokCVAQTAQgA\nPgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBMHPbjHmut6IaLFytPQu1vur\nF8ZUBQJgsdhRBQkLTMW7AAoJEPQu1vurF8ZUTMwP/3f7EkOPIFjUdRmpNJ2db4iB\nRQu5b2SJRG+KIdbvQBzKUBMV6/RUhEDPjhXZI3zDevzBewvAMKkqs2Q1cWo9WV7Z\nPyTkvSyey/Tjn+PozcdvzkvrEjDMftIk8E1WzLGq7vnPLZ1q/b6Vq4H373Z+EDWa\nDaDwW72CbCBLWAVtqff80CwlI2x8fYHKr3VBUnwcXNHR4+nRABfAWnaU4k+oTshC\nQucsd8vitNfsSXrKuKyz91IRHRPnJjx8UvGU4tRGfrHkw1505EZvgP02vXeRyWBR\nfKiL1vGy4tCSRDdZO3ms2J2m08VPv65HsHaWYMnO+rNJmMZj9d9JdL/9GRf5F6U0\nquoIFL39BhUEvBynuqlrqistnyOhw8W/IQy/ymNzBMcMz6rcMjMwhkgm/LNXoSD1\n1OrJu4ktQwRhwvGVarnB8ihwjsTxZFylaLmFSfaA+OAlOqCLS1OkIVMzjW+Ul6A6\nqjiCEUOsnlf4CGlhzNMZOx3low6ixzEqKOcfECpeIj80a2fBDmWkcAAjlHu6VBhA\nTUDG9e2xKLzV2Z/DLYsb3+n9QW7KO0yZKfiuUo6AYboAioQKn5jh3iRvjGh2Ujpo\n22G+oae3PcCc7G+z12j6xIY709FQuA49dA2YpzMda0/OX4LP56STEveDRrO+CnV6\nWE+F5FaIKwb72PL4rLi4\n=i0tj\n-----END PGP PUBLIC KEY BLOCK-----" > /tmp/keys/0.key && apt-key add /tmp/keys/0.key
---> Running in e547e9e03739
[91mWarning: apt-key output should not be parsed (stdout is not a terminal)
[0mOK
Removing intermediate container e547e9e03739
---> 9abd73fe6623
Step 14/27 : RUN echo deb http://repositories.ros.org/ubuntu/testing focal main | tee -a /etc/apt/sources.list.d/buildfarm.list
---> Running in 4582053be4c0
Removing intermediate container 4582053be4c0
---> 5b497099a3ab
Step 15/27 : RUN mkdir /tmp/wrapper_scripts
---> Running in c234f56e0b61
Removing intermediate container c234f56e0b61
---> bace481522bf
Step 16/27 : RUN echo "# Copyright 2014-2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Failed to fetch',\n 'Failed to stat',\n 'Hash Sum mismatch',\n 'Unable to locate package',\n 'is not what the server reported',\n ]\n\n command = argv[0]\n if command in ['update', 'source']:\n rc, _, _ = call_apt_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n elif command == 'update-install-clean':\n return call_apt_update_install_clean(\n argv[1:], known_error_strings, max_tries)\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_apt_update_install_clean(\n install_argv, known_error_strings, max_tries):\n tries = 0\n command = 'update'\n while tries < max_tries:\n if command == 'update':\n rc, _, tries = call_apt_repeatedly(\n [command], known_error_strings, max_tries - tries,\n offset=tries)\n if rc != 0:\n # abort if update was unsuccessful even after retries\n break\n # move on to the install command if update was successful\n command = 'install'\n\n if command == 'install':\n # any call is considered a try\n tries += 1\n known_error_strings_redo_update = [\n 'Size mismatch',\n 'maybe run apt update',\n 'The following packages cannot be authenticated!',\n 'Unable to locate package',\n 'has no installation candidate',\n 'corrupted package archive',\n ]\n rc, known_error_conditions = \\\\\n call_apt(\n [command] + install_argv,\n known_error_strings + known_error_strings_redo_update)\n if not known_error_conditions:\n if rc != 0:\n # abort if install was unsuccessful\n break\n # move on to the clean command if install was successful\n command = 'clean'\n continue\n\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n # check if update needs to be rerun\n if (\n set(known_error_conditions) &\n set(known_error_strings_redo_update)\n ):\n command = 'update'\n print(\"'apt install' failed and likely requires \" +\n \"'apt update' to run again\")\n # retry with update command\n continue\n\n print('')\n print('Invocation failed due to the following known error '\n 'conditions: ' + ', '.join(known_error_conditions))\n print('')\n if tries < max_tries:\n sleep_time = 5\n print(\"Reinvoke 'apt install' after sleeping %s seconds\" %\n sleep_time)\n sleep(sleep_time)\n # retry install command\n\n if command == 'clean':\n rc, _ = call_apt([command], [])\n break\n\n return rc\n\n\ndef call_apt_repeatedly(argv, known_error_strings, max_tries, offset=0):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * (i + offset)\n print(\"Reinvoke 'apt %s' (%d/%d) after sleeping %s seconds\" %\n (command, i + offset, max_tries + offset, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_apt(argv, known_error_strings)\n if not known_error_conditions:\n # break the loop and return the reported rc\n break\n # known errors are always interpreted as a non-zero rc\n if rc == 0:\n rc = 1\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i + offset\n\n\ndef call_apt(argv, known_error_strings):\n known_error_conditions = []\n\n # some of the used options are not supported in older distros\n # e.g. Ubuntu Wily, Debian Jessie\n cmd = ['apt-get'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n lines = []\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n lines.append(line)\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n if rc and not known_error_conditions:\n print('Invocation failed without any known error condition, '\n 'printing all lines to debug known error detection:')\n for index, line in enumerate(lines):\n print(' ', index + 1, \"'%s'\" % line.rstrip('\\\\n\\\\r'))\n print('None of the following known errors were detected:')\n for index, known_error_string in enumerate(known_error_strings):\n print(' ', index + 1, \"'%s'\" % known_error_string)\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/apt.py
---> Running in 2d4feae0080a
Removing intermediate container 2d4feae0080a
---> 17f250c9d56f
Step 17/27 : RUN echo "# Copyright 2016 Open Source Robotics Foundation, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport subprocess\nimport sys\nfrom time import sleep\n\n\ndef main(argv=sys.argv[1:]):\n max_tries = 10\n known_error_strings = [\n 'Connection timed out',\n ]\n\n command = argv[0]\n if command == 'clone':\n rc, _, _ = call_git_repeatedly(\n argv, known_error_strings, max_tries)\n return rc\n else:\n assert \"Command '%s' not implemented\" % command\n\n\ndef call_git_repeatedly(argv, known_error_strings, max_tries):\n command = argv[0]\n for i in range(1, max_tries + 1):\n if i > 1:\n sleep_time = 5 + 2 * i\n print(\"Reinvoke 'git %s' (%d/%d) after sleeping %s seconds\" %\n (command, i, max_tries, sleep_time))\n sleep(sleep_time)\n rc, known_error_conditions = call_git(argv, known_error_strings)\n if rc == 0 or not known_error_conditions:\n break\n print('')\n print('Invocation failed due to the following known error conditions: '\n ', '.join(known_error_conditions))\n print('')\n # retry in case of failure with known error condition\n return rc, known_error_conditions, i\n\n\ndef call_git(argv, known_error_strings):\n known_error_conditions = []\n\n cmd = ['git'] + argv\n print(\"Invoking '%s'\" % ' '.join(cmd))\n proc = subprocess.Popen(\n cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n while True:\n line = proc.stdout.readline()\n if not line:\n break\n line = line.decode()\n sys.stdout.write(line)\n for known_error_string in known_error_strings:\n if known_error_string in line:\n if known_error_string not in known_error_conditions:\n known_error_conditions.append(known_error_string)\n proc.wait()\n rc = proc.returncode\n return rc, known_error_conditions\n\n\nif __name__ == '__main__':\n sys.exit(main())" > /tmp/wrapper_scripts/git.py
---> Running in 16db4e2a2efd
Removing intermediate container 16db4e2a2efd
---> f082fbfd9cac
Step 18/27 : RUN echo "2025-06-30 (-0800)"
---> Running in 23c2ddd5dde1
2025-06-30 (-0800)
Removing intermediate container 23c2ddd5dde1
---> 93dce334eb46
Step 19/27 : RUN for i in 1 2 3; do apt-get update && apt-get install -q -y python3 && apt-get clean && break || if [ $i -lt 3 ]; then sleep 5; else false; fi; done
---> Running in 2d66d45a29ad
Get:1 http://repositories.ros.org/ubuntu/testing focal InRelease [4,679 B]
Err:1 http://repositories.ros.org/ubuntu/testing focal InRelease
The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <in...@osrfoundation.org>
[0mRemoving intermediate container 2d66d45a29ad
Reply all
Reply to author
Forward
0 new messages