8000 DAOS-17268 mercury: Change handling of "address already present" warning. by jgmoore-or · Pull Request #128 · daos-stack/mercury · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

DAOS-17268 mercury: Change handling of "address already present" warning. #128

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 20 commits into from
Jul 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
9c5df05
DAOS-17127 mercury: Add address to "already present" log entry.
jgmoore-or Mar 11, 2025
95bdbb3
DAOS-17127 mercury: Add address to "already present" log.
jgmoore-or Mar 11, 2025
fc3be65
DAOS-17127 mercury: Augment warning in listener connect, remove flush…
jgmoore-or Mar 13, 2025
aaffa70
DAOS-17127 mercury: Change code for duplicate address handling.
jgmoore-or Mar 24, 2025
6e1e552
DAOS-17127 mercury: Change duplicate address handling for UCX.
jgmoore-or Mar 24, 2025
5a512eb
DAOS-17127 mercury: Change duplicate address processing for UCX.
jgmoore-or Mar 24, 2025
d2118eb
DAOS-17127 mercury: Change handling of duplicate addresses in UCX
jgmoore-or Mar 24, 2025
806d0d2
DAOS-17127 Add extra data log entry, change already present handling …
jgmoore-or Apr 4, 2025
dbd8a84
DAOS-17127 mercury: Add log for extra data in RPC receive.
jgmoore-or Apr 7, 2025
3532731
DAOS-17127 mercury: Update logging for extra data RPC handling.
jgmoore-or Apr 7, 2025
d7f8cae
DAOS=17127 mercury: Update extra data patch.
jgmoore-or Apr 10, 2025
815a3c7
DAOS-17127 mercury: Update address already present handling.
jgmoore-or Apr 17, 2025
03ed435
Merge branch 'master' into jgm/DAOS-17127
jgmoore-or May 27, 2025
80bd7a2
DAOS-17127 mercury: Change to addr_release for already present.
jgmoore-or May 27, 2025
4d735c1
DAOS-17127 mercury: Change to addr_release for already present warning.
jgmoore-or May 27, 2025
f0bcec6
DAOS-17127 mercury: Invoke addr_release for already present.
jgmoore-or May 27, 2025
27b0519
DAOS-17127 Mercury: Change "already present" handling to invoke release.
jgmoore-or May 30, 2025
a7f27d0
Update to the latest packaging version
grom72 Jun 18, 2025
7e71a3a
DAOS-17127 mercury: Change handling of "already present" warning with…
jgmoore-or Jun 25, 2025
8000 02cd12c
Adjust tests scope
grom72 Jul 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@
//@Library(value="pipeline-lib@your_branch") _


packageBuildingPipelineDAOSTest(['distros': ['el8', 'el9', 'leap15', 'ubuntu20.04'],
packageBuildingPipelineDAOSTest(['distros': ['el8', 'el9', 'leap15'],
'test-tag': 'daosio'])
12 changes: 12 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
mercury (2.4.0-5) unstable; urgency=medium
[ Joseph Moore ]
* Update release number to differentiate from test RPMs for prior issue.

-- Joseph Moore <joseph.moore@hpe.com> Wed, 25 Jun 2025 10:00:00 -0600

mercury (2.4.0-4) unstable; urgency=medium
[ Joseph Moore ]
* Change handling for "already present" warning

-- Joseph Moore <joseph.moore@hpe.com> Tue, 11 Mar 2025 10:00:00 -0600

mercury (2.4.0-3) unstable; urgency=medium
[ Joseph Moore ]
* Add patch to na_ucx.c to flush ep prior to close
Expand Down
8 changes: 7 additions & 1 deletion mercury.spec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Name: mercury
Version: 2.4.0
Release: 3%{?dist}
Release: 5%{?dist}

# --without ucx build switch
%bcond_without ucx
Expand Down Expand Up @@ -132,6 +132,12 @@ Mercury plugin to support the UCX transport.
%{_libdir}/cmake/

%changelog
* Wed Jun 25 2025 Joseph Moore <joseph.moore@hpe.com> - 2.4.0-5
- Update release number to differentiate from test RPMs for prior issue..

* Tue Mar 11 2025 Joseph Moore <joseph.moore@hpe.com> - 2.4.0-4
- Change to addr_release for handling of "already present" warning.

* Wed Jan 15 2025 Joseph Moore <joseph.moore@hpe.com> - 2.4.0-3
- Add patch to na_ucx.c to flush end point prior to close.

Expand Down
2 changes: 1 addition & 1 deletion na_ucx.patch
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ index 84eb8b0..e4b6676 100644
+ if (na_ucx_addr != NULL) {
+ NA_LOG_SUBSYS_WARNING(addr,
+ "An entry is already present for this address");
+ na_ucx_addr_map_remove(&na_ucx_class->addr_map, na_ucx_addr);
+ na_ucx_addr_release(na_ucx_addr);
+ }

/* Insert new entry and create new address */
Expand Down
3 changes: 2 additions & 1 deletion packaging/Dockerfile.coverity
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
#
# Copyright 2018-2020, Intel Corporation
# Copyright 2025 Hewlett Packard Enterprise Development LP
#
# 'recipe' for Docker to build for a Coverity scan.
#

# Pull base image
FROM fedora:latest
MAINTAINER daos-stack <daos@daos.groups.io>
LABEL maintainer="daos-stack <daos@daos.groups.io>""

# use same UID as host and default value of 1000 if not specified
ARG UID=1000
Expand Down
26 changes: 15 additions & 11 deletions packaging/Dockerfile.mockbuild
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#
# Copyright 2018-2024 Intel Corporation
# Copyright 2025 Hewlett Packard Enterprise Development LP
#
# 'recipe' for Docker to build an RPM
#
Expand All @@ -13,15 +14,16 @@ LABEL maintainer="daos@daos.groups.io"

# Use local repo server if present
ARG REPO_FILE_URL
RUN if [ -n "$REPO_FILE_URL" ]; then \
cd /etc/yum.repos.d/ && \
curl -k -f -o daos_ci-fedora-artifactory.repo.tmp \
"$REPO_FILE_URL"daos_ci-fedora-artifactory.repo && \
for file in *.repo; do \
true > $file; \
done; \
mv daos_ci-fedora-artifactory.repo{.tmp,}; \
fi
ARG DAOS_LAB_CA_FILE_URL
ARG REPOSITORY_NAME
# script to install OS updates basic tools and daos dependencies
# COPY ./utils/scripts/install-fedora.sh /tmp/install.sh
# script to setup local repo if available
COPY ./packaging/scripts/repo-helper-fedora.sh /tmp/repo-helper.sh

RUN chmod +x /tmp/repo-helper.sh && \
/tmp/repo-helper.sh && \
rm -f /tmp/repo-helper.sh

# Install basic tools
RUN dnf -y install mock make \
Expand All @@ -33,13 +35,15 @@ RUN dnf -y install mock make \
ARG UID=1000

# Add build user (to keep rpmbuild happy)
ENV USER build
ENV PASSWD build
ENV USER=build
ENV PASSWD=build
# add the user to the mock group so it can run mock
RUN if [ $UID != 0 ]; then \
useradd -u $UID -ms /bin/bash $USER; \
echo "$USER:$PASSWD" | chpasswd; \
usermod -a -G mock $USER; \
mkdir -p /var/cache/mock; \
chown $USER:root /var/cache/mock; \
fi

ARG CB0
Expand Down
51 changes: 51 additions & 0 deletions packaging/Dockerfile.ubuntu
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Keep Dockerfile.ubuntu the same as this file until all packaging
# jobs are fixed to have a Dockerfile.ubuntu, and then the common
# Jenkinsfile will be changed to use Dockerfile.ubuntu.
#
# Copyright 2019-2021, Intel Corporation
# Copyright 2025 Hewlett Packard Enterprise Development LP
#
# 'recipe' for Docker to build an Debian package
#
# Pull base image
ARG BASE_DISTRO=ubuntu:20.04
FROM $BASE_DISTRO
LABEL org.opencontainers.image.authors="daos@daos.groups.io"
# Needed for later use of BASE_DISTRO
ARG BASE_DISTRO

ARG REPO_FILE_URL
ARG DAOS_LAB_CA_FILE_URL
ARG REPOSITORY_NAME
# script to setup local repo if available
COPY ./scripts/repo-helper-ubuntu.sh /tmp/repo-helper.sh

RUN chmod +x /tmp/repo-helper.sh && \
/tmp/repo-helper.sh && \
rm -f /tmp/repo-helper.sh

# Install basic tools
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
autoconf bash ca-certificates curl debhelper dh-make \
dpkg-dev dh-python doxygen gcc git git-buildpackage \
javahelper locales make patch pbuilder pkg-config \
python3-dev python3-distro python3-distutils rpm scons wget \
cmake valgrind rpmdevtools

# use same UID as host and default value of 1000 if not specified
ARG UID=1000

# Add build user (to keep chrootbuild happy)
ENV USER=build
RUN useradd -u $UID -ms /bin/bash $USER

# need to run the build command as root, as it needs to chroot
RUN if ! grep "^#includedir /etc/sudoers.d" /etc/sudoers; then \
echo "#includedir /etc/sudoers.d" >> /etc/sudoers; \
fi; \
echo "Defaults env_keep += \"DPKG_GENSYMBOLS_CHECK_LEVEL\"" > /etc/sudoers.d/build; \
echo "build ALL=(ALL) NOPASSWD: /usr/bin/tee /root/.pbuilderrc" >> /etc/sudoers.d/build; \
echo "build ALL=(ALL) NOPASSWD: /usr/sbin/pbuilder" >> /etc/sudoers.d/build; \
chmod 0440 /etc/sudoers.d/build; \
visudo -c; \
sudo -l -U build
54 changes: 21 additions & 33 deletions packaging/Dockerfile.ubuntu.20.04
Original file line number Diff line number Diff line change
@@ -1,62 +1,50 @@
# Keep Dockerfile.ubuntu the same as this file until all packaging
# jobs are fixed to have a Dockerfile.ubuntu, and then the common
# Jenkinsfile will be changed to use Dockerfile.ubuntu.
#
# Copyright 2019-2021, Intel Corporation
# Copyright 2025 Hewlett Packard Enterprise Development LP
#
# 'recipe' for Docker to build an Debian package
#
# Pull base image
FROM ubuntu:20.04
ARG BASE_DISTRO=ubuntu:20.04
FROM $BASE_DISTRO
LABEL org.opencontainers.image.authors="daos@daos.groups.io"

RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
curl gpg
# Needed for later use of BASE_DISTRO
ARG BASE_DISTRO

ARG REPO_FILE_URL
RUN if [ -n "$REPO_FILE_URL" ]; then \
cd /etc/apt/sources.list.d && \
curl -f -o daos_ci-ubuntu20.04-artifactory.list.tmp \
"$REPO_FILE_URL"daos_ci-ubuntu20.04-artifactory.list && \
true > ../sources.list && \
mv daos_ci-ubuntu20.04-artifactory.list.tmp \
daos_ci-ubuntu20.04-artifactory.list; \
url="${REPO_FILE_URL%/*/}/hpe-ilorest-ubuntu-bionic-proxy/"; \
else \
url="https://downloads.linux.hpe.com/SDR/repo/ilorest/"; \
fi; \
cd -; \
mkdir -p /usr/local/share/keyrings/; \
curl -f -O "$url"GPG-KEY-hprest; \
gpg --no-default-keyring --keyring ./temp-keyring.gpg \
--import GPG-KEY-hprest; \
gpg --no-default-keyring --keyring ./temp-keyring.gpg --export \
--output /usr/local/share/keyrings/hpe-sdr-public.gpg; \
rm ./temp-keyring.gpg; \
curl -f -O "$REPO_FILE_URL"esad_repo.key; \
gpg --no-default-keyring --keyring ./temp-keyring.gpg \
--import esad_repo.key; \
gpg --no-default-keyring --keyring ./temp-keyring.gpg --export \
--output /usr/local/share/keyrings/daos-stack-public.gpg
ARG DAOS_LAB_CA_FILE_URL
ARG REPOSITORY_NAME
# script to setup local repo if available
COPY ./packaging/scripts/repo-helper-ubuntu.sh /tmp/repo-helper.sh

RUN chmod +x /tmp/repo-helper.sh && \
/tmp/repo-helper.sh && \
rm -f /tmp/repo-helper.sh

# Install basic tools
# Install basic tools - rpmdevtools temporary commented out.
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
autoconf bash ca-certificates curl debhelper dh-make \
dpkg-dev dh-python doxygen gcc git git-buildpackage \
javahelper locales make patch pbuilder pkg-config \
python3-dev python3-distro python3-distutils rpm scons wget \
cmake valgrind rpmdevtools
python3-dev python3-distro python3-distutils rpm scons sudo \
wget cmake valgrind # rpmdevtools

# use same UID as host and default value of 1000 if not specified
ARG UID=1000

# Add build user (to keep chrootbuild happy)
ENV USER build
ENV USER=build
RUN useradd -u $UID -ms /bin/bash $USER

# need to run the build command as root, as it needs to chroot
RUN if ! grep "^#includedir /etc/sudoers.d" /etc/sudoers; then \
echo "#includedir /etc/sudoers.d" >> /etc/sudoers; \
fi; \
echo "Defaults env_keep += \"DPKG_GENSYMBOLS_CHECK_LEVEL\"" > /etc/sudoers.d/build; \
echo "build ALL=(ALL) NOPASSWD: /usr/bin/tee /root/.pbuilderrc" >> /etc/sudoers.d/build; \
echo "build ALL=(ALL) NOPASSWD: /usr/bin/tee /root/.pbuilderrc" >> /etc/sudoers.d/build; \
echo "build ALL=(ALL) NOPASSWD: /usr/sbin/pbuilder" >> /etc/sudoers.d/build; \
chmod 0440 /etc/sudoers.d/build; \
visudo -c; \
Expand Down
3 changes: 2 additions & 1 deletion packaging/Dockerfile.ubuntu.rolling
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
#
# Copyright 2019, Intel Corporation
# Copyright 2025 Hewlett Packard Enterprise Development LP
#
# 'recipe' for Docker to build an Debian package
#
# Pull base image
FROM ubuntu:rolling
Maintainer daos-stack <daos@daos.groups.io>
LABEL org.opencontainers.image.authors="daos@daos.groups.io"

# use same UID as host and default value of 1000 if not specified
ARG UID=1000
Expand Down
75 changes: 48 additions & 27 deletions packaging/debian_chrootbuild
BEA9
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,35 @@

set -uex

: "${REPO_FILE_URL:=}"
: "${HTTPS_PROXY:=}"

# Currently not fully working behind a proxy
if [ -n "${ARTIFACTORY_URL:-}" ] && "$LOCAL_REPOS"; then
echo "MIRRORSITE=${ARTIFACTORY_URL}artifactory/ubuntu-proxy" | sudo tee /root/.pbuilderrc
pbuilderrc="./pbuilder_rc.txt"
rm -f "$pbuilderrc"
if [ -n "${HTTPS_PROXY}" ]; then
echo "export http_proxy=\"${HTTPS_PROXY}\"" >> "$pbuilderrc"
else
echo "MIRRORSITE=${ARTIFACTORY_URL}/ubuntu-proxy/ubuntu" > "$pbuilderrc"
fi
#if [ -n "$REPO_FILE_URL" ]; then
# direct="${REPO_FILE_URL##*//}"
# direct="${direct%%/*}"
# echo "no_proxy=\"${direct}\"" >> "$pbuilderrc"
#fi
# shellcheck disable=SC2002
cat "$pbuilderrc" | sudo tee /root/.pbuilderrc
fi

# shellcheck disable=SC2086
sudo pbuilder create \
--extrapackages "gnupg ca-certificates" \
$DISTRO_ID_OPT
$DISTRO_ID_OPT || true # Ignore error status for now.

repo_args=""
repos_added=()
# currently a bit broken, pbuilder will not accept user provided CAs.
for repo in $DISTRO_BASE_PR_REPOS $PR_REPOS; do
branch="master"
build_number="lastSuccessfulBuild"
Expand All @@ -32,31 +50,34 @@ for repo in $DISTRO_BASE_PR_REPOS $PR_REPOS; do
repo_args="$repo_args|deb [trusted=yes] ${JENKINS_URL:-https://build.hpdd.intel.com/}job/daos-stack/job/$repo/job/$branch/$build_number/artifact/artifacts/$DISTRO/ ./"
done

repo_args+="|$(curl -sSf "$REPO_FILE_URL"daos_ci-"$DISTRO"-artifactory.list |
sed -e 's/#.*//' -e '/ubuntu-proxy/d' -e '/^$/d' -e '/^$/d' \
-e 's/signed-by=.*\.gpg/trusted=yes/' |
sed -e ':a; N; $!ba; s/\n/|/g')"
for repo in $JOB_REPOS; do
repo_name=${repo##*://}
repo_name=${repo_name//\//_}
if [[ " ${repos_added[*]} " = *\ ${repo_name}\ * ]]; then
# don't add duplicates, first found wins
continue
fi
repos_added+=("$repo_name")
repo_args+="|deb ${repo} $VERSION_CODENAME main"
done
# NB: This PPA is needed to support modern go toolchains on ubuntu 20.04.
# After the build is updated to use 22.04, which supports go >= 1.18, it
# should no longer be needed.
repo_args="$repo_args|deb [trusted=yes] https://ppa.launchpadcontent.net/longsleep/golang-backports/ubuntu $VERSION_CODENAME main"
echo "$repo_args"
if [ "$repo_args" = "|" ]; then
repo_args=""
else
#repo_args="--othermirror"${repo_args#|}\""
repo_args="${repo_args#|}"
fi
# currently broken, builder will not accept internal certs.
# repo_args+="|$(curl -sSf "$REPO_FILE_URL"daos_ci-"$DISTRO"-artifactory.list |
# sed -e 's/#.*//' -e '/ubuntu-proxy/d' -e '/^$/d' -e '/^$/d' \
# -e 's/signed-by=.*\.gpg/trusted=yes/' |
# sed -e ':a; N; $!ba; s/\n/|/g')"
#for repo in $JOB_REPOS; do
# repo_name=${repo##*://}
# repo_name=${repo_name//\//_}
# if [[ " ${repos_added[*]} " = *\ ${repo_name}\ * ]]; then
# # don't add duplicates, first found wins
# continue
# fi
# repos_added+=("$repo_name")
# repo_args+="|deb ${repo} $VERSION_CODENAME main"
#done

## NB: This PPA is needed to support modern go toolchains on ubuntu 20.04.
## After the build is updated to use 22.04, which supports go >= 1.18, it
## should no longer be needed.
# currently broken - claim is public key not available.
#repo_args="$repo_args|deb [trusted=yes] https://ppa.launchpadcontent.net/longsleep/golang-backports/ubuntu $VERSION_CODENAME main"
#echo "$repo_args"
#if [ "$repo_args" = "|" ]; then
# repo_args=""
#else
# #repo_args="--othermirror"${repo_args#|}\""
# repo_args="${repo_args#|}"
#fi
cd "$DEB_TOP"
# shellcheck disable=SC2086
sudo pbuilder update --override-config $DISTRO_ID_OPT ${repo_args:+--othermirror "$repo_args"}
Expand Down
Loading
0