Version in base suite: 16.2.15+ds-0+deb12u1 Base version: ceph_16.2.15+ds-0+deb12u1 Target version: ceph_16.2.15+ds-0+deb12u2 Base file: /srv/ftp-master.debian.org/ftp/pool/main/c/ceph/ceph_16.2.15+ds-0+deb12u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/c/ceph/ceph_16.2.15+ds-0+deb12u2.dsc debian/changelog | 13 + debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch | 33 +++ debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch | 86 +++++++ debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch | 108 ++++++++++ debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch | 35 +++ debian/patches/series | 4 src/test/debian-jessie/debian/changelog | 13 + src/test/debian-jessie/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch | 33 +++ src/test/debian-jessie/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch | 86 +++++++ src/test/debian-jessie/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch | 108 ++++++++++ src/test/debian-jessie/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch | 35 +++ src/test/debian-jessie/debian/patches/series | 4 src/test/ubuntu-16.04/debian/changelog | 13 + src/test/ubuntu-16.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch | 33 +++ src/test/ubuntu-16.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch | 86 +++++++ src/test/ubuntu-16.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch | 108 ++++++++++ src/test/ubuntu-16.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch | 35 +++ src/test/ubuntu-16.04/debian/patches/series | 4 src/test/ubuntu-18.04/debian/changelog | 13 + src/test/ubuntu-18.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch | 33 +++ src/test/ubuntu-18.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch | 86 +++++++ src/test/ubuntu-18.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch | 108 ++++++++++ src/test/ubuntu-18.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch | 35 +++ src/test/ubuntu-18.04/debian/patches/series | 4 src/test/ubuntu-20.04/debian/changelog | 13 + src/test/ubuntu-20.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch | 33 +++ src/test/ubuntu-20.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch | 86 +++++++ src/test/ubuntu-20.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch | 108 ++++++++++ src/test/ubuntu-20.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch | 35 +++ src/test/ubuntu-20.04/debian/patches/series | 4 30 files changed, 1395 insertions(+) dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmppit_absf/ceph_16.2.15+ds-0+deb12u1.dsc: no acceptable signature found dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmppit_absf/ceph_16.2.15+ds-0+deb12u2.dsc: no acceptable signature found diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/debian/ceph-base.ceph.init: No such file or directory diff: /srv/release.debian.org/tmp/OHzbgQWZWc/ceph-16.2.15+ds/debian/ceph-base.ceph.init: No such file or directory diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/debian/ceph-common.rbdmap.init: No such file or directory diff: /srv/release.debian.org/tmp/OHzbgQWZWc/ceph-16.2.15+ds/debian/ceph-common.rbdmap.init: No such file or directory diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/.qa: No such file or directory diff: /srv/release.debian.org/tmp/OHzbgQWZWc/ceph-16.2.15+ds/qa/.qa: No such file or directory diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/mount/kclient/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/mount/kclient/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/mount/kclient/overrides/distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/mount/kclient/overrides/distro/stock/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/mount/kclient/overrides/distro/testing/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/mount/kclient/overrides/distro/testing/flavor/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/objectstore-ec/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/overrides/fuse/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/overrides/fuse/default-perm/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/cephfs/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/distros/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/distros/container-hosts/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/big/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/big/rados-thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/big/rados-thrash/ceph/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/big/rados-thrash/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/big/rados-thrash/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/big/rados-thrash/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/buildpackages/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/buildpackages/any/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/buildpackages/any/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/buildpackages/tests/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/buildpackages/tests/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/ceph-ansible/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/ceph-ansible/smoke/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/ceph-ansible/smoke/basic/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/ceph-ansible/smoke/basic/0-clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/ceph-ansible/smoke/basic/1-distros/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/ceph-ansible/smoke/basic/2-ceph/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/ceph-ansible/smoke/basic/3-config/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/ceph-ansible/smoke/basic/4-tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/ceph-deploy/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/ceph-deploy/cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/ceph-deploy/config/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/ceph-deploy/distros/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/ceph-deploy/python_versions/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/ceph-deploy/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/cephmetrics/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/cephmetrics/0-clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/cephmetrics/1-distros/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/cephmetrics/2-ceph/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/cephmetrics/3-ceph-config/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/cephmetrics/4-epel/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/cephmetrics/5-containers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/cephmetrics/6-tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/crimson-rados/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/crimson-rados/basic/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/crimson-rados/basic/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/crimson-rados/rbd/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/crimson-rados/rbd/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/crimson-rados/thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/crimson-rados/thrash/0-size-min-size-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/crimson-rados/thrash/1-pg-log-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/crimson-rados/thrash/2-recovery-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/crimson-rados/thrash/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/crimson-rados/thrash/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/crimson-rados/thrash/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/dummy/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/dummy/all/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/experimental/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/experimental/multimds/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/experimental/multimds/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/experimental/multimds/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/32bits/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/32bits/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/32bits/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/32bits/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/32bits/objectstore-ec/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/32bits/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/32bits/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/bugs/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/bugs/client_trim_caps/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/bugs/client_trim_caps/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/bugs/client_trim_caps/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/bugs/client_trim_caps/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/bugs/client_trim_caps/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/bugs/client_trim_caps/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/cephadm/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/cephadm/multivolume/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/cephadm/multivolume/2-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/cephadm/multivolume/distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/full/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/full/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/full/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/full/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/full/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/full/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/functional/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/functional/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/functional/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/functional/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/functional/mount/kclient/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/functional/mount/kclient/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/functional/mount/kclient/overrides/distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/functional/mount/kclient/overrides/distro/stock/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/functional/mount/kclient/overrides/distro/testing/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/functional/mount/kclient/overrides/distro/testing/flavor/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/functional/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/functional/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/functional/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/libcephfs/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/libcephfs/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/libcephfs/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/libcephfs/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/libcephfs/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/libcephfs/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/libcephfs/tasks/libcephfs/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mirror/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mirror/clients/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mirror/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mirror/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mirror/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mirror/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mirror-ha/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mirror-ha/clients/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mirror-ha/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mirror-ha/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mirror-ha/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mixed-clients/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mixed-clients/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mixed-clients/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mixed-clients/kclient-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mixed-clients/kclient-overrides/distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mixed-clients/kclient-overrides/distro/stock/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mixed-clients/kclient-overrides/distro/testing/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mixed-clients/kclient-overrides/distro/testing/flavor/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mixed-clients/objectstore-ec/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mixed-clients/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/mixed-clients/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multiclient/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multiclient/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multiclient/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multiclient/distros/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multiclient/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multiclient/objectstore-ec/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multiclient/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multiclient/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multifs/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multifs/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multifs/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multifs/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multifs/mount/kclient/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multifs/mount/kclient/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multifs/mount/kclient/overrides/distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multifs/mount/kclient/overrides/distro/stock/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multifs/mount/kclient/overrides/distro/testing/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multifs/mount/kclient/overrides/distro/testing/flavor/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multifs/objectstore-ec/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multifs/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/multifs/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/permission/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/permission/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/permission/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/permission/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/permission/objectstore-ec/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/permission/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/permission/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/shell/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/shell/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/shell/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/shell/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/shell/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/shell/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/shell/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/snaps/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/snaps/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/snaps/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/snaps/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/snaps/mount/kclient/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/snaps/mount/kclient/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/snaps/mount/kclient/overrides/distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/snaps/mount/kclient/overrides/distro/stock/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/snaps/mount/kclient/overrides/distro/testing/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/snaps/mount/kclient/overrides/distro/testing/flavor/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/snaps/objectstore-ec/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/snaps/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/snaps/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/mount/kclient/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/mount/kclient/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/mount/kclient/overrides/distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/mount/kclient/overrides/distro/stock/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/mount/kclient/overrides/distro/testing/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/mount/kclient/overrides/distro/testing/flavor/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/tasks/1-thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/multifs/tasks/2-workunit/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/mount/kclient/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/mount/kclient/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/mount/kclient/overrides/distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/mount/kclient/overrides/distro/stock/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/mount/kclient/overrides/distro/testing/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/mount/kclient/overrides/distro/testing/flavor/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/objectstore-ec/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/ranks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/tasks/1-thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/tasks/2-workunit/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/tasks/2-workunit/fs/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/top/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/top/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/top/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/top/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/top/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/traceless/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/traceless/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/traceless/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/traceless/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/traceless/objectstore-ec/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/traceless/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/traceless/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/traceless/traceless/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/featureful_client/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/featureful_client/old_client/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/featureful_client/old_client/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/featureful_client/old_client/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/featureful_client/old_client/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/featureful_client/old_client/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/featureful_client/upgraded_client/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/featureful_client/upgraded_client/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/mds_upgrade_sequence/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/mds_upgrade_sequence/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/0-from/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/1-ranks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/nofs/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/nofs/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/nofs/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/nofs/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/upgraded_client/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/upgraded_client/from_nautilus/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/upgraded_client/from_nautilus/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/upgraded_client/from_nautilus/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/volumes/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/volumes/import-legacy/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/volumes/import-legacy/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/volumes/import-legacy/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/volumes/import-legacy/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/upgrade/volumes/import-legacy/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/valgrind/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/valgrind/mirror/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/valgrind/mirror/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/verify/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/verify/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/verify/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/verify/distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/verify/distro/ubuntu/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/verify/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/verify/mount/kclient/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/verify/objectstore-ec/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/verify/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/verify/ranks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/verify/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/verify/validater/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/volumes/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/volumes/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/volumes/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/volumes/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/volumes/mount/kclient/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/volumes/mount/kclient/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/volumes/mount/kclient/overrides/distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/volumes/mount/kclient/overrides/distro/stock/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/volumes/mount/kclient/overrides/distro/testing/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/volumes/mount/kclient/overrides/distro/testing/flavor/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/volumes/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/volumes/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/volumes/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/mount/kclient/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/mount/kclient/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/mount/kclient/overrides/distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/mount/kclient/overrides/distro/stock/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/mount/kclient/overrides/distro/testing/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/mount/kclient/overrides/distro/testing/flavor/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/objectstore-ec/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/omap_limit/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/tasks/workunit/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/fs/workload/tasks/workunit/suites/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/hadoop/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/hadoop/basic/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/hadoop/basic/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/hadoop/basic/distros/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/hadoop/basic/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/basic/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/basic/ceph/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/basic/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/basic/ms_mode/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/basic/ms_mode/crc$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/basic/ms_mode/legacy$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/basic/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/fsx/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/fsx/ceph/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/fsx/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/fsx/ms_mode$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/fsx/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/fsx/striping/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/fsx/striping/default/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/fsx/striping/default/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/fsx/striping/fancy/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/fsx/striping/fancy/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/fsx/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/ms_modeless/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/ms_modeless/ceph/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/ms_modeless/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/ms_modeless/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd/ms_mode/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd/ms_mode/crc$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd/ms_mode/legacy$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd-nomount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd-nomount/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd-nomount/install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd-nomount/ms_mode/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd-nomount/ms_mode/crc$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd-nomount/ms_mode/legacy$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd-nomount/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/rbd-nomount/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/singleton/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/singleton/ms_mode$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/singleton/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/singleton-msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/singleton-msgr-failures/ms_mode$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/singleton-msgr-failures/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/singleton-msgr-failures/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/thrash/ceph/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/thrash/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/thrash/ms_mode$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/thrash/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/thrash/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/unmap/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/unmap/ceph/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/unmap/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/unmap/kernels/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/unmap/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/wac/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/wac/sysfs/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/wac/sysfs/ceph/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/wac/sysfs/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/wac/sysfs/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/wac/wac/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/wac/wac/ceph/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/wac/wac/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/wac/wac/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/krbd/wac/wac/verify/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/basic/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/basic/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/basic/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/fs-misc/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/fs-misc/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/fs-misc/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/mds_restart/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/mds_restart/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/mds_restart/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/multimds/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/multimds/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/multimds/mounts/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/multimds/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/marginal/multimds/thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/mixed-clients/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/mixed-clients/basic/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/mixed-clients/basic/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/mixed-clients/basic/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/netsplit/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/dashboard/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/dashboard/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/mds_upgrade_sequence/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/mds_upgrade_sequence/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/mds_upgrade_sequence/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/mds_upgrade_sequence/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/mds_upgrade_sequence/tasks/0-from/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/mds_upgrade_sequence/tasks/1-volume/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/mds_upgrade_sequence/tasks/1-volume/1-ranks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/mgr-nfs-upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/mgr-nfs-upgrade/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/orchestrator_cli/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/orchestrator_cli/0-random-distro$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/osds/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/osds/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/rbd_iscsi/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/rbd_iscsi/base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/rbd_iscsi/cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/rbd_iscsi/pool/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/rbd_iscsi/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/smoke/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/smoke/distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/smoke-roleless/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/smoke-roleless/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/smoke-singlehost/0-distro$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/thrash/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/thrash/3-tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/thrash-old-clients/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/thrash-old-clients/0-size-min-size-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/thrash-old-clients/1-install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/thrash-old-clients/backoff/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/thrash-old-clients/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/thrash-old-clients/d-balancer/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/thrash-old-clients/distro$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/thrash-old-clients/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/thrash-old-clients/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/thrash-old-clients/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/upgrade/3-upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/with-work/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/with-work/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/with-work/mode/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/with-work/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/workunits/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/workunits/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/workunits/task/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/cephadm/workunits/task/test_iscsi_container/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/rook/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/rook/smoke/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/orch/rook/smoke/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/perf-basic/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/perf-basic/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/perf-basic/settings/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/perf-basic/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/powercycle/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/powercycle/osd/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/powercycle/osd/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/powercycle/osd/powercycle/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/powercycle/osd/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/basic/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/basic/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/basic/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/basic/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/dashboard/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/dashboard/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/mds_upgrade_sequence/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/mds_upgrade_sequence/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/mds_upgrade_sequence/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/mds_upgrade_sequence/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/mds_upgrade_sequence/tasks/0-from/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/mds_upgrade_sequence/tasks/1-volume/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/mds_upgrade_sequence/tasks/1-volume/1-ranks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/mgr-nfs-upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/mgr-nfs-upgrade/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/orchestrator_cli/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/orchestrator_cli/0-random-distro$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/osds/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/osds/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/rbd_iscsi/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/rbd_iscsi/base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/rbd_iscsi/cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/rbd_iscsi/pool/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/rbd_iscsi/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/smoke/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/smoke/distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/smoke-roleless/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/smoke-roleless/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/smoke-singlehost/0-distro$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/thrash/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/thrash/3-tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/thrash-old-clients/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/thrash-old-clients/0-size-min-size-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/thrash-old-clients/1-install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/thrash-old-clients/backoff/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/thrash-old-clients/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/thrash-old-clients/d-balancer/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/thrash-old-clients/distro$/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/thrash-old-clients/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/thrash-old-clients/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/thrash-old-clients/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/upgrade/3-upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/with-work/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/with-work/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/with-work/mode/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/with-work/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/workunits/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/workunits/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/workunits/task/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/cephadm/workunits/task/test_iscsi_container/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/dashboard/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/dashboard/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/dashboard/debug/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/dashboard/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/mgr/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/mgr/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/mgr/debug/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/mgr/mgr_ttl_cache/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/mgr/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/monthrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/monthrash/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/monthrash/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/monthrash/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/monthrash/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/multimon/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/multimon/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/multimon/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/multimon/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/objectstore/backends/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/perf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/perf/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/perf/settings/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/perf/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/rest/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/singleton/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/singleton/all/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/singleton/all/thrash-rados/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/singleton/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/singleton-bluestore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/singleton-bluestore/all/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/singleton-bluestore/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/singleton-bluestore/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/singleton-nomsgr/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/singleton-nomsgr/all/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/standalone/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/standalone/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash/0-size-min-size-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash/1-pg-log-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash/2-recovery-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash/3-scrub-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash/backoff/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash/d-balancer/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code/fast/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code/recovery-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-big/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-big/cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-big/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-big/recovery-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-big/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-big/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-isa/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-isa/arch/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-isa/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-isa/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-isa/recovery-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-isa/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-isa/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-overwrites/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-overwrites/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-overwrites/fast/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-overwrites/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-overwrites/recovery-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-overwrites/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-overwrites/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-shec/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-shec/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-shec/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-shec/recovery-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-shec/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/thrash-erasure-code-shec/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/upgrade/nautilus-x-singleton/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/upgrade/nautilus-x-singleton/0-cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/upgrade/nautilus-x-singleton/1-install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/upgrade/nautilus-x-singleton/2-partial-upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/upgrade/nautilus-x-singleton/3-thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/upgrade/nautilus-x-singleton/4-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/upgrade/nautilus-x-singleton/5-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/upgrade/nautilus-x-singleton/8-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/valgrind-leaks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/verify/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/verify/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/verify/d-thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/verify/d-thrash/default/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/verify/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/verify/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rados/verify/validater/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/basic/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/basic/base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/basic/cachepool/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/basic/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/basic/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/basic/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/cli/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/cli/base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/cli/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/cli/features/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/cli/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/cli/pool/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/cli/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/cli_v1/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/cli_v1/base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/cli_v1/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/cli_v1/features/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/cli_v1/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/cli_v1/pool/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/cli_v1/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/encryption/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/encryption/cache/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/encryption/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/encryption/features/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/encryption/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/encryption/pool/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/encryption/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/immutable-object-cache/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/immutable-object-cache/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/immutable-object-cache/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/iscsi/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/iscsi/base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/iscsi/cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/iscsi/pool/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/iscsi/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/librbd/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/librbd/cache/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/librbd/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/librbd/config/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/librbd/min-compat-client/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/librbd/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/librbd/pool/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/librbd/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/maintenance/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/maintenance/base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/maintenance/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/maintenance/qemu/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/maintenance/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/migration/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/migration/1-base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/migration/2-clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/migration/5-pool/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/mirror/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/mirror/base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/mirror/clients/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/mirror/cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/mirror/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/mirror/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/mirror-thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/mirror-thrash/base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/mirror-thrash/clients/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/mirror-thrash/cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/mirror-thrash/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/mirror-thrash/policy/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/mirror-thrash/rbd-mirror/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/mirror-thrash/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/nbd/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/nbd/base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/nbd/cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/nbd/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/nbd/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/nbd/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/pwl-cache/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/pwl-cache/home/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/pwl-cache/home/1-base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/pwl-cache/home/2-cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/pwl-cache/home/5-cache-mode/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/pwl-cache/home/6-cache-size/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/pwl-cache/home/7-workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/pwl-cache/tmpfs/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/pwl-cache/tmpfs/1-base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/pwl-cache/tmpfs/2-cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/pwl-cache/tmpfs/5-cache-mode/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/pwl-cache/tmpfs/6-cache-size/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/pwl-cache/tmpfs/7-workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/qemu/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/qemu/cache/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/qemu/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/qemu/features/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/qemu/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/qemu/pool/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/qemu/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/singleton/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/singleton/all/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/singleton-bluestore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/singleton-bluestore/all/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/singleton-bluestore/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/thrash/base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/thrash/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/thrash/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/thrash/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/thrash/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/valgrind/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/valgrind/base/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/valgrind/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/valgrind/validator/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rbd/valgrind/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/crypt/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/crypt/0-cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/crypt/1-ceph-install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/crypt/2-kms/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/crypt/3-rgw/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/crypt/4-tests/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/hadoop-s3a/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/hadoop-s3a/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/hadoop-s3a/hadoop/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/multifs/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/multifs/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/multifs/frontend/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/multifs/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/multisite/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/multisite/realms/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/multisite/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/singleton/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/singleton/all/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/singleton/frontend/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/sts/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/tempest/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/tempest/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/tempest/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/thrash/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/thrash/thrasher/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/thrash/workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/tools/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/verify/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/verify/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/verify/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/verify/proto/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/verify/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/verify/validater/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/website/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/website/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/rgw/website/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/samba/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/samba/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/samba/install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/samba/mount/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/samba/workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/smoke/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/smoke/basic/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/smoke/basic/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/smoke/basic/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/smoke/basic/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/stress/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/stress/bench/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/stress/bench/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/stress/bench/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/stress/thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/stress/thrash/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/stress/thrash/thrashers/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/stress/thrash/workloads/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/buildpackages/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/buildpackages/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/ceph/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/ceph/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/ceph/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/multi-cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/multi-cluster/all/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/no-ceph/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/no-ceph/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/no-ceph/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/nop/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/nop/all/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/rgw/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/rgw/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/teuthology/workunits/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/tgt/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/tgt/basic/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/tgt/basic/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/tgt/basic/msgr-failures/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/tgt/basic/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/featureful_client/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/featureful_client/old_client/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/featureful_client/old_client/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/featureful_client/old_client/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/featureful_client/old_client/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/featureful_client/old_client/overrides/multimds/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/featureful_client/old_client/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/featureful_client/old_client/tasks/3-compat_client/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/featureful_client/upgraded_client/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/featureful_client/upgraded_client/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/featureful_client/upgraded_client/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/featureful_client/upgraded_client/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/featureful_client/upgraded_client/overrides/multimds/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/featureful_client/upgraded_client/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/mds_upgrade_sequence/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/mds_upgrade_sequence/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/mds_upgrade_sequence/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/mds_upgrade_sequence/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/mds_upgrade_sequence/tasks/0-from/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/mds_upgrade_sequence/tasks/1-volume/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/mds_upgrade_sequence/tasks/1-volume/1-ranks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/nofs/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/nofs/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/nofs/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/nofs/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/upgraded_client/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/upgraded_client/from_nautilus/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/upgraded_client/from_nautilus/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/upgraded_client/from_nautilus/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/upgraded_client/from_nautilus/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/upgraded_client/from_nautilus/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/volumes/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/volumes/import-legacy/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/volumes/import-legacy/clusters/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/volumes/import-legacy/conf/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/volumes/import-legacy/overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/cephfs/volumes/import-legacy/tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/parallel/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/parallel/0-cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/parallel/1-ceph-install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/parallel/1.1-pg-log-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/parallel/2-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/parallel/3-upgrade-sequence/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/parallel/5-final-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/parallel/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split/0-cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split/1-ceph-install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split/1.1-pg-log-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split/2-partial-upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split/3-thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split/4-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split/8-final-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split-erasure-code/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split-erasure-code/0-cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split-erasure-code/1-nautilus-install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split-erasure-code/1.1-pg-log-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split-erasure-code/2-partial-upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split-erasure-code/3-thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split-erasure-code/3.1-objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x/stress-split-erasure-code/4-ec-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x-singleton/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x-singleton/0-cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x-singleton/1-install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x-singleton/2-partial-upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x-singleton/3-thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x-singleton/4-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x-singleton/5-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/nautilus-x-singleton/8-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/parallel/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/parallel/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/parallel/workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/parallel-no-cephadm/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/parallel-no-cephadm/0-cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/parallel-no-cephadm/1-ceph-install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/parallel-no-cephadm/1.1-pg-log-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/parallel-no-cephadm/2-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/parallel-no-cephadm/3-upgrade-sequence/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/parallel-no-cephadm/5-final-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split/0-distro/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split/2-first-half-tasks/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-erasure-code-no-cephadm/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-erasure-code-no-cephadm/0-cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-erasure-code-no-cephadm/1-octopus-install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-erasure-code-no-cephadm/1.1-pg-log-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-erasure-code-no-cephadm/2-partial-upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-erasure-code-no-cephadm/3-thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-erasure-code-no-cephadm/3.1-objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-erasure-code-no-cephadm/4-ec-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-no-cephadm/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-no-cephadm/0-cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-no-cephadm/1-ceph-install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-no-cephadm/1.1-pg-log-overrides/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-no-cephadm/2-partial-upgrade/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-no-cephadm/3-thrash/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-no-cephadm/4-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-no-cephadm/8-final-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade/octopus-x/stress-split-no-cephadm/objectstore/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade-clients/client-upgrade-pacific-quincy/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade-clients/client-upgrade-pacific-quincy/pacific-client-x/rbd/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade-clients/client-upgrade-pacific-quincy/pacific-client-x/rbd/0-cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade-clients/client-upgrade-pacific-quincy/pacific-client-x/rbd/1-install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade-clients/client-upgrade-pacific-quincy/pacific-client-x/rbd/2-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade-clients/client-upgrade-pacific-quincy/pacific-client-x/rbd/supported/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade-clients/client-upgrade-pacific-reef/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade-clients/client-upgrade-pacific-reef/pacific-client-x/rbd/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade-clients/client-upgrade-pacific-reef/pacific-client-x/rbd/0-cluster/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade-clients/client-upgrade-pacific-reef/pacific-client-x/rbd/1-install/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade-clients/client-upgrade-pacific-reef/pacific-client-x/rbd/2-workload/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/qa/suites/upgrade-clients/client-upgrade-pacific-reef/pacific-client-x/rbd/supported/.qa: recursive directory loop diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/src/test/debian-jessie/debian/ceph-base.ceph.init: No such file or directory diff: /srv/release.debian.org/tmp/OHzbgQWZWc/ceph-16.2.15+ds/src/test/debian-jessie/debian/ceph-base.ceph.init: No such file or directory diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/src/test/debian-jessie/debian/ceph-common.rbdmap.init: No such file or directory diff: /srv/release.debian.org/tmp/OHzbgQWZWc/ceph-16.2.15+ds/src/test/debian-jessie/debian/ceph-common.rbdmap.init: No such file or directory diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/ceph-base.ceph.init: No such file or directory diff: /srv/release.debian.org/tmp/OHzbgQWZWc/ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/ceph-base.ceph.init: No such file or directory diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/ceph-common.rbdmap.init: No such file or directory diff: /srv/release.debian.org/tmp/OHzbgQWZWc/ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/ceph-common.rbdmap.init: No such file or directory diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/ceph-base.ceph.init: No such file or directory diff: /srv/release.debian.org/tmp/OHzbgQWZWc/ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/ceph-base.ceph.init: No such file or directory diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/ceph-common.rbdmap.init: No such file or directory diff: /srv/release.debian.org/tmp/OHzbgQWZWc/ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/ceph-common.rbdmap.init: No such file or directory diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/ceph-base.ceph.init: No such file or directory diff: /srv/release.debian.org/tmp/OHzbgQWZWc/ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/ceph-base.ceph.init: No such file or directory diff: /srv/release.debian.org/tmp/bSmIRgzKwo/ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/ceph-common.rbdmap.init: No such file or directory diff: /srv/release.debian.org/tmp/OHzbgQWZWc/ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/ceph-common.rbdmap.init: No such file or directory diff -Nru ceph-16.2.15+ds/debian/changelog ceph-16.2.15+ds/debian/changelog --- ceph-16.2.15+ds/debian/changelog 2024-12-04 05:46:17.000000000 +0000 +++ ceph-16.2.15+ds/debian/changelog 2026-05-16 12:52:24.000000000 +0000 @@ -1,3 +1,16 @@ +ceph (16.2.15+ds-0+deb12u2) bookworm-security; urgency=high + + * Non-maintainer upload by the Security Team. + * mgr/alerts: enforce ssl context to SMTP_SSL (CVE-2024-31884) + (Closes: #1126573) + * Check if `HTTP_X_AMZ_COPY_SOURCE` header is empty (CVE-2024-47866) + (Closes: #1120797) + * client: disallow unprivileged users to escalate root privileges + (CVE-2025-52555) (Closes: #1108410) + * client: prohibit unprivileged users from setting sgid/suid bits + + -- Salvatore Bonaccorso Sat, 16 May 2026 14:52:24 +0200 + ceph (16.2.15+ds-0+deb12u1) bookworm-security; urgency=medium * Adding myself to uploaders. diff -Nru ceph-16.2.15+ds/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch ceph-16.2.15+ds/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch --- ceph-16.2.15+ds/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch 2026-05-16 12:40:51.000000000 +0000 @@ -0,0 +1,33 @@ +From: Suyash Dongre +Date: Wed, 20 Aug 2025 23:22:41 +0530 +Subject: Check if `HTTP_X_AMZ_COPY_SOURCE` header is empty +Origin: https://github.com/ceph/ceph/commit/bef59f17293e6e93af025eba1e00646d0b1a2bf0 +Bug-Debian: https://bugs.debian.org/1120797 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-47866 + +The issue was that the `HTTP_X_AMZ_COPY_SOURCE` header could be present but empty (i.e., an empty string rather than NULL). The code only checked if the pointer was not NULL, but didn't verify that the string had content. When an empty string was passed to RGWCopyObj::parse_copy_location(), it would eventually try to access name_str[0] on an empty string, causing a crash. + +Fixes: https://tracker.ceph.com/issues/72669 + +Signed-off-by: Suyash Dongre +--- + src/rgw/rgw_op.cc | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc +index 6a7a7313e117..30ec14478c86 100644 +--- a/src/rgw/rgw_op.cc ++++ b/src/rgw/rgw_op.cc +@@ -5426,6 +5426,9 @@ bool RGWCopyObj::parse_copy_location(const std::string_view& url_src, + params_str = url_src.substr(pos + 1); + } + ++ if (name_str.empty()) { ++ return false; ++ } + if (name_str[0] == '/') // trim leading slash + name_str.remove_prefix(1); + +-- +2.53.0 + diff -Nru ceph-16.2.15+ds/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch ceph-16.2.15+ds/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch --- ceph-16.2.15+ds/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch 2026-05-16 12:49:35.000000000 +0000 @@ -0,0 +1,86 @@ +From: Xiubo Li +Date: Wed, 3 Apr 2024 19:02:08 +0800 +Subject: client: disallow unprivileged users to escalate root privileges +Origin: https://github.com/ceph/ceph/commit/b6d85b595ea7c9e0fca10d5e77a48102110fe22c +Bug-Debian: https://bugs.debian.org/1108410 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2025-52555 + +An unprivileged user can `chmod 777` a directory owned by root +and gain access. Fix this bug and also add a test case for the +same. + +Signed-off-by: Xiubo Li +Signed-off-by: Venky Shankar +--- + src/client/Client.cc | 24 ++++++++++++++---------- + src/test/libcephfs/suidsgid.cc | 10 ++++++++++ + 2 files changed, 24 insertions(+), 10 deletions(-) + +diff --git a/src/client/Client.cc b/src/client/Client.cc +index 1cb58c815f9e..49ca4322bbb2 100644 +--- a/src/client/Client.cc ++++ b/src/client/Client.cc +@@ -5897,18 +5897,22 @@ int Client::may_setattr(Inode *in, struct ceph_statx *stx, int mask, + } + + if (mask & CEPH_SETATTR_MODE) { ++ bool allowed = false; ++ /* ++ * Currently the kernel fuse and libfuse code is buggy and ++ * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. ++ * But will just set the ATTR_MODE and at the same time by ++ * clearing the suid/sgid bits. ++ * ++ * Only allow unprivileged users to clear S_ISUID and S_ISUID. ++ */ ++ if ((in->mode & (S_ISUID | S_ISGID)) != (stx->stx_mode & (S_ISUID | S_ISGID)) && ++ (in->mode & ~(S_ISUID | S_ISGID)) == (stx->stx_mode & ~(S_ISUID | S_ISGID))) { ++ allowed = true; ++ } + uint32_t m = ~stx->stx_mode & in->mode; // mode bits removed + ldout(cct, 20) << __func__ << " " << *in << " = " << hex << m << dec << dendl; +- if (perms.uid() != 0 && perms.uid() != in->uid && +- /* +- * Currently the kernel fuse and libfuse code is buggy and +- * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. +- * But will just set the ATTR_MODE and at the same time by +- * clearing the suid/sgid bits. +- * +- * Only allow unprivileged users to clear S_ISUID and S_ISUID. +- */ +- (m & ~(S_ISUID | S_ISGID))) ++ if (perms.uid() != 0 && perms.uid() != in->uid && !allowed) + goto out; + + gid_t i_gid = (mask & CEPH_SETATTR_GID) ? stx->stx_gid : in->gid; +diff --git a/src/test/libcephfs/suidsgid.cc b/src/test/libcephfs/suidsgid.cc +index d750613ebd81..474795cc455d 100644 +--- a/src/test/libcephfs/suidsgid.cc ++++ b/src/test/libcephfs/suidsgid.cc +@@ -134,6 +134,14 @@ void run_truncate_test_case(int mode, int result, size_t size, bool with_admin=f + ceph_close(_cmount, fd); + } + ++void run_change_mode_test_case() ++{ ++ char c_dir[1024]; ++ sprintf(c_dir, "/mode_test_%d", getpid()); ++ ASSERT_EQ(0, ceph_mkdirs(admin, c_dir, 0700)); ++ ASSERT_EQ(ceph_chmod(cmount, c_dir, 0777), -CEPHFS_EPERM); ++} ++ + TEST(SuidsgidTest, WriteClearSetuid) { + ASSERT_EQ(0, ceph_create(&admin, NULL)); + ASSERT_EQ(0, ceph_conf_read_file(admin, NULL)); +@@ -206,6 +214,8 @@ TEST(SuidsgidTest, WriteClearSetuid) { + // 14, Truncate by unprivileged user clears the suid and sgid + run_truncate_test_case(06766, 0, 100); + ++ run_change_mode_test_case(); ++ + // clean up + ceph_shutdown(cmount); + ceph_shutdown(admin); +-- +2.53.0 + diff -Nru ceph-16.2.15+ds/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch ceph-16.2.15+ds/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch --- ceph-16.2.15+ds/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch 2026-05-16 12:51:47.000000000 +0000 @@ -0,0 +1,108 @@ +From: Kefu Chai +Date: Sat, 5 Jul 2025 16:23:36 +0800 +Subject: client: prohibit unprivileged users from setting sgid/suid bits +Origin: https://github.com/ceph/ceph/commit/7028ed21138522495df1e9f8b01195a3c43d47ff + +Prior to fb1b72d, unprivileged users could add mode bits as long as +S_ISUID and S_ISGID were not included in the change. + +After fb1b72d, unprivileged users were allowed to modify S_ISUID and +S_ISGID bits only when no other mode bits were changed in the same +operation. This inadvertently permitted unprivileged users to set +S_ISUID and/or S_ISGID bits when they were the sole bits being modified. + +This behavior should not be allowed. Unprivileged users should be +prohibited from setting S_ISUID and/or S_ISGID bits under any +circumstances. + +This change tightens the permission check to prevent unprivileged +users from setting these privileged bits in all cases. + +Signed-off-by: Kefu Chai +--- + src/client/Client.cc | 19 ++++++++++--------- + src/test/libcephfs/suidsgid.cc | 22 ++++++++++++++++++++++ + 2 files changed, 32 insertions(+), 9 deletions(-) + +--- a/src/client/Client.cc ++++ b/src/client/Client.cc +@@ -5883,22 +5883,23 @@ int Client::may_setattr(Inode *in, struc + } + + if (mask & CEPH_SETATTR_MODE) { +- bool allowed = false; + /* + * Currently the kernel fuse and libfuse code is buggy and + * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. + * But will just set the ATTR_MODE and at the same time by + * clearing the suid/sgid bits. + * +- * Only allow unprivileged users to clear S_ISUID and S_ISUID. ++ * Only allow unprivileged users to clear S_ISUID and S_ISGID. + */ +- if ((in->mode & (S_ISUID | S_ISGID)) != (stx->stx_mode & (S_ISUID | S_ISGID)) && +- (in->mode & ~(S_ISUID | S_ISGID)) == (stx->stx_mode & ~(S_ISUID | S_ISGID))) { +- allowed = true; +- } +- uint32_t m = ~stx->stx_mode & in->mode; // mode bits removed +- ldout(cct, 20) << __func__ << " " << *in << " = " << hex << m << dec << dendl; +- if (perms.uid() != 0 && perms.uid() != in->uid && !allowed) ++ uint32_t removed_bits = ~stx->stx_mode & in->mode; ++ uint32_t added_bits = ~in->mode & stx->stx_mode; ++ bool clearing_suid_sgid = ( ++ // no new bits added ++ added_bits == 0 && ++ // only suid/suid bits removed ++ (removed_bits & ~(S_ISUID | S_ISGID)) == 0); ++ ldout(cct, 20) << __func__ << " " << *in << " = " << hex << removed_bits << dec << dendl; ++ if (perms.uid() != 0 && perms.uid() != in->uid && !clearing_suid_sgid) + goto out; + + gid_t i_gid = (mask & CEPH_SETATTR_GID) ? stx->stx_gid : in->gid; +--- a/src/test/libcephfs/suidsgid.cc ++++ b/src/test/libcephfs/suidsgid.cc +@@ -19,6 +19,7 @@ + #include "include/stringify.h" + #include "include/cephfs/libcephfs.h" + #include "include/rados/librados.h" ++#include + #include + #include + #include +@@ -142,6 +143,17 @@ void run_change_mode_test_case() + ASSERT_EQ(ceph_chmod(cmount, c_dir, 0777), -CEPHFS_EPERM); + } + ++static void run_set_sgid_suid_test_case(int old_suid_sgid, ++ int new_suid_sgid, ++ int expected_result) ++{ ++ char c_dir[1024]; ++ sprintf(c_dir, "/mode_test_%d", getpid()); ++ const int mode = 0766; ++ ASSERT_EQ(ceph_mkdirs(admin, c_dir, mode | old_suid_sgid), 0); ++ ASSERT_EQ(ceph_chmod(cmount, c_dir, mode | new_suid_sgid), expected_result); ++} ++ + TEST(SuidsgidTest, WriteClearSetuid) { + ASSERT_EQ(0, ceph_create(&admin, NULL)); + ASSERT_EQ(0, ceph_conf_read_file(admin, NULL)); +@@ -214,8 +226,18 @@ TEST(SuidsgidTest, WriteClearSetuid) { + // 14, Truncate by unprivileged user clears the suid and sgid + run_truncate_test_case(06766, 0, 100); + ++ // 15, Prohibit unpriviledged user from changing non-sgid/suid ++ // mode bits + run_change_mode_test_case(); + ++ // 16, Prohibit unpriviledged user from setting suid/sgid ++ run_set_sgid_suid_test_case(0, S_ISUID, -EPERM); ++ run_set_sgid_suid_test_case(0, S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(0, S_ISUID | S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISGID, S_ISUID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISUID, S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISGID, S_ISUID | S_ISGID, -EPERM); ++ + // clean up + ceph_shutdown(cmount); + ceph_shutdown(admin); diff -Nru ceph-16.2.15+ds/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch ceph-16.2.15+ds/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch --- ceph-16.2.15+ds/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch 2026-05-16 12:34:01.000000000 +0000 @@ -0,0 +1,35 @@ +From: Nizamudeen A +Date: Thu, 30 Oct 2025 10:05:04 +0530 +Subject: mgr/alerts: enforce ssl context to SMTP_SSL +Origin: https://github.com/ceph/ceph/commit/5081933c9a0068fe9deba4fca2d943bda3168518 +Bug-Debian: https://bugs.debian.org/1126573 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-31884 + +Fixes: https://github.com/ceph/ceph/security/advisories/GHSA-xj9f-7g59-m4jx +Signed-off-by: Nizamudeen A +(cherry picked from commit 5f7fc5267e55089eeb1cfc87e9c1215c32439102) +--- + src/pybind/mgr/alerts/module.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/src/pybind/mgr/alerts/module.py ++++ b/src/pybind/mgr/alerts/module.py +@@ -9,6 +9,7 @@ from threading import Event + import errno + import json + import smtplib ++import ssl + + class Alerts(MgrModule): + COMMANDS = [ +@@ -243,8 +244,9 @@ class Alerts(MgrModule): + + # send + try: ++ context = ssl.create_default_context() + if self.smtp_ssl: +- server = smtplib.SMTP_SSL(self.smtp_host, self.smtp_port) ++ server = smtplib.SMTP_SSL(self.smtp_host, self.smtp_port, context=context) + else: + server = smtplib.SMTP(self.smtp_host, self.smtp_port) + if self.smtp_password: diff -Nru ceph-16.2.15+ds/debian/patches/series ceph-16.2.15+ds/debian/patches/series --- ceph-16.2.15+ds/debian/patches/series 2024-12-04 05:46:17.000000000 +0000 +++ ceph-16.2.15+ds/debian/patches/series 2026-05-16 12:51:20.000000000 +0000 @@ -21,3 +21,7 @@ fix-CheckCxxAtomic-riscv64.patch CVE-2022-3854_1_rgw_Guard_against_malformed_bucket_URLs.patch CVE-2024-48916.patch +mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch +Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch +client-disallow-unprivileged-users-to-escalate-root-.patch +client-prohibit-unprivileged-users-from-setting-sgid.patch diff -Nru ceph-16.2.15+ds/src/test/debian-jessie/debian/changelog ceph-16.2.15+ds/src/test/debian-jessie/debian/changelog --- ceph-16.2.15+ds/src/test/debian-jessie/debian/changelog 2024-12-04 05:46:17.000000000 +0000 +++ ceph-16.2.15+ds/src/test/debian-jessie/debian/changelog 2026-05-16 12:52:24.000000000 +0000 @@ -1,3 +1,16 @@ +ceph (16.2.15+ds-0+deb12u2) bookworm-security; urgency=high + + * Non-maintainer upload by the Security Team. + * mgr/alerts: enforce ssl context to SMTP_SSL (CVE-2024-31884) + (Closes: #1126573) + * Check if `HTTP_X_AMZ_COPY_SOURCE` header is empty (CVE-2024-47866) + (Closes: #1120797) + * client: disallow unprivileged users to escalate root privileges + (CVE-2025-52555) (Closes: #1108410) + * client: prohibit unprivileged users from setting sgid/suid bits + + -- Salvatore Bonaccorso Sat, 16 May 2026 14:52:24 +0200 + ceph (16.2.15+ds-0+deb12u1) bookworm-security; urgency=medium * Adding myself to uploaders. diff -Nru ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch --- ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch 2026-05-16 12:40:51.000000000 +0000 @@ -0,0 +1,33 @@ +From: Suyash Dongre +Date: Wed, 20 Aug 2025 23:22:41 +0530 +Subject: Check if `HTTP_X_AMZ_COPY_SOURCE` header is empty +Origin: https://github.com/ceph/ceph/commit/bef59f17293e6e93af025eba1e00646d0b1a2bf0 +Bug-Debian: https://bugs.debian.org/1120797 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-47866 + +The issue was that the `HTTP_X_AMZ_COPY_SOURCE` header could be present but empty (i.e., an empty string rather than NULL). The code only checked if the pointer was not NULL, but didn't verify that the string had content. When an empty string was passed to RGWCopyObj::parse_copy_location(), it would eventually try to access name_str[0] on an empty string, causing a crash. + +Fixes: https://tracker.ceph.com/issues/72669 + +Signed-off-by: Suyash Dongre +--- + src/rgw/rgw_op.cc | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc +index 6a7a7313e117..30ec14478c86 100644 +--- a/src/rgw/rgw_op.cc ++++ b/src/rgw/rgw_op.cc +@@ -5426,6 +5426,9 @@ bool RGWCopyObj::parse_copy_location(const std::string_view& url_src, + params_str = url_src.substr(pos + 1); + } + ++ if (name_str.empty()) { ++ return false; ++ } + if (name_str[0] == '/') // trim leading slash + name_str.remove_prefix(1); + +-- +2.53.0 + diff -Nru ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch --- ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch 2026-05-16 12:49:35.000000000 +0000 @@ -0,0 +1,86 @@ +From: Xiubo Li +Date: Wed, 3 Apr 2024 19:02:08 +0800 +Subject: client: disallow unprivileged users to escalate root privileges +Origin: https://github.com/ceph/ceph/commit/b6d85b595ea7c9e0fca10d5e77a48102110fe22c +Bug-Debian: https://bugs.debian.org/1108410 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2025-52555 + +An unprivileged user can `chmod 777` a directory owned by root +and gain access. Fix this bug and also add a test case for the +same. + +Signed-off-by: Xiubo Li +Signed-off-by: Venky Shankar +--- + src/client/Client.cc | 24 ++++++++++++++---------- + src/test/libcephfs/suidsgid.cc | 10 ++++++++++ + 2 files changed, 24 insertions(+), 10 deletions(-) + +diff --git a/src/client/Client.cc b/src/client/Client.cc +index 1cb58c815f9e..49ca4322bbb2 100644 +--- a/src/client/Client.cc ++++ b/src/client/Client.cc +@@ -5897,18 +5897,22 @@ int Client::may_setattr(Inode *in, struct ceph_statx *stx, int mask, + } + + if (mask & CEPH_SETATTR_MODE) { ++ bool allowed = false; ++ /* ++ * Currently the kernel fuse and libfuse code is buggy and ++ * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. ++ * But will just set the ATTR_MODE and at the same time by ++ * clearing the suid/sgid bits. ++ * ++ * Only allow unprivileged users to clear S_ISUID and S_ISUID. ++ */ ++ if ((in->mode & (S_ISUID | S_ISGID)) != (stx->stx_mode & (S_ISUID | S_ISGID)) && ++ (in->mode & ~(S_ISUID | S_ISGID)) == (stx->stx_mode & ~(S_ISUID | S_ISGID))) { ++ allowed = true; ++ } + uint32_t m = ~stx->stx_mode & in->mode; // mode bits removed + ldout(cct, 20) << __func__ << " " << *in << " = " << hex << m << dec << dendl; +- if (perms.uid() != 0 && perms.uid() != in->uid && +- /* +- * Currently the kernel fuse and libfuse code is buggy and +- * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. +- * But will just set the ATTR_MODE and at the same time by +- * clearing the suid/sgid bits. +- * +- * Only allow unprivileged users to clear S_ISUID and S_ISUID. +- */ +- (m & ~(S_ISUID | S_ISGID))) ++ if (perms.uid() != 0 && perms.uid() != in->uid && !allowed) + goto out; + + gid_t i_gid = (mask & CEPH_SETATTR_GID) ? stx->stx_gid : in->gid; +diff --git a/src/test/libcephfs/suidsgid.cc b/src/test/libcephfs/suidsgid.cc +index d750613ebd81..474795cc455d 100644 +--- a/src/test/libcephfs/suidsgid.cc ++++ b/src/test/libcephfs/suidsgid.cc +@@ -134,6 +134,14 @@ void run_truncate_test_case(int mode, int result, size_t size, bool with_admin=f + ceph_close(_cmount, fd); + } + ++void run_change_mode_test_case() ++{ ++ char c_dir[1024]; ++ sprintf(c_dir, "/mode_test_%d", getpid()); ++ ASSERT_EQ(0, ceph_mkdirs(admin, c_dir, 0700)); ++ ASSERT_EQ(ceph_chmod(cmount, c_dir, 0777), -CEPHFS_EPERM); ++} ++ + TEST(SuidsgidTest, WriteClearSetuid) { + ASSERT_EQ(0, ceph_create(&admin, NULL)); + ASSERT_EQ(0, ceph_conf_read_file(admin, NULL)); +@@ -206,6 +214,8 @@ TEST(SuidsgidTest, WriteClearSetuid) { + // 14, Truncate by unprivileged user clears the suid and sgid + run_truncate_test_case(06766, 0, 100); + ++ run_change_mode_test_case(); ++ + // clean up + ceph_shutdown(cmount); + ceph_shutdown(admin); +-- +2.53.0 + diff -Nru ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch --- ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch 2026-05-16 12:51:47.000000000 +0000 @@ -0,0 +1,108 @@ +From: Kefu Chai +Date: Sat, 5 Jul 2025 16:23:36 +0800 +Subject: client: prohibit unprivileged users from setting sgid/suid bits +Origin: https://github.com/ceph/ceph/commit/7028ed21138522495df1e9f8b01195a3c43d47ff + +Prior to fb1b72d, unprivileged users could add mode bits as long as +S_ISUID and S_ISGID were not included in the change. + +After fb1b72d, unprivileged users were allowed to modify S_ISUID and +S_ISGID bits only when no other mode bits were changed in the same +operation. This inadvertently permitted unprivileged users to set +S_ISUID and/or S_ISGID bits when they were the sole bits being modified. + +This behavior should not be allowed. Unprivileged users should be +prohibited from setting S_ISUID and/or S_ISGID bits under any +circumstances. + +This change tightens the permission check to prevent unprivileged +users from setting these privileged bits in all cases. + +Signed-off-by: Kefu Chai +--- + src/client/Client.cc | 19 ++++++++++--------- + src/test/libcephfs/suidsgid.cc | 22 ++++++++++++++++++++++ + 2 files changed, 32 insertions(+), 9 deletions(-) + +--- a/src/client/Client.cc ++++ b/src/client/Client.cc +@@ -5883,22 +5883,23 @@ int Client::may_setattr(Inode *in, struc + } + + if (mask & CEPH_SETATTR_MODE) { +- bool allowed = false; + /* + * Currently the kernel fuse and libfuse code is buggy and + * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. + * But will just set the ATTR_MODE and at the same time by + * clearing the suid/sgid bits. + * +- * Only allow unprivileged users to clear S_ISUID and S_ISUID. ++ * Only allow unprivileged users to clear S_ISUID and S_ISGID. + */ +- if ((in->mode & (S_ISUID | S_ISGID)) != (stx->stx_mode & (S_ISUID | S_ISGID)) && +- (in->mode & ~(S_ISUID | S_ISGID)) == (stx->stx_mode & ~(S_ISUID | S_ISGID))) { +- allowed = true; +- } +- uint32_t m = ~stx->stx_mode & in->mode; // mode bits removed +- ldout(cct, 20) << __func__ << " " << *in << " = " << hex << m << dec << dendl; +- if (perms.uid() != 0 && perms.uid() != in->uid && !allowed) ++ uint32_t removed_bits = ~stx->stx_mode & in->mode; ++ uint32_t added_bits = ~in->mode & stx->stx_mode; ++ bool clearing_suid_sgid = ( ++ // no new bits added ++ added_bits == 0 && ++ // only suid/suid bits removed ++ (removed_bits & ~(S_ISUID | S_ISGID)) == 0); ++ ldout(cct, 20) << __func__ << " " << *in << " = " << hex << removed_bits << dec << dendl; ++ if (perms.uid() != 0 && perms.uid() != in->uid && !clearing_suid_sgid) + goto out; + + gid_t i_gid = (mask & CEPH_SETATTR_GID) ? stx->stx_gid : in->gid; +--- a/src/test/libcephfs/suidsgid.cc ++++ b/src/test/libcephfs/suidsgid.cc +@@ -19,6 +19,7 @@ + #include "include/stringify.h" + #include "include/cephfs/libcephfs.h" + #include "include/rados/librados.h" ++#include + #include + #include + #include +@@ -142,6 +143,17 @@ void run_change_mode_test_case() + ASSERT_EQ(ceph_chmod(cmount, c_dir, 0777), -CEPHFS_EPERM); + } + ++static void run_set_sgid_suid_test_case(int old_suid_sgid, ++ int new_suid_sgid, ++ int expected_result) ++{ ++ char c_dir[1024]; ++ sprintf(c_dir, "/mode_test_%d", getpid()); ++ const int mode = 0766; ++ ASSERT_EQ(ceph_mkdirs(admin, c_dir, mode | old_suid_sgid), 0); ++ ASSERT_EQ(ceph_chmod(cmount, c_dir, mode | new_suid_sgid), expected_result); ++} ++ + TEST(SuidsgidTest, WriteClearSetuid) { + ASSERT_EQ(0, ceph_create(&admin, NULL)); + ASSERT_EQ(0, ceph_conf_read_file(admin, NULL)); +@@ -214,8 +226,18 @@ TEST(SuidsgidTest, WriteClearSetuid) { + // 14, Truncate by unprivileged user clears the suid and sgid + run_truncate_test_case(06766, 0, 100); + ++ // 15, Prohibit unpriviledged user from changing non-sgid/suid ++ // mode bits + run_change_mode_test_case(); + ++ // 16, Prohibit unpriviledged user from setting suid/sgid ++ run_set_sgid_suid_test_case(0, S_ISUID, -EPERM); ++ run_set_sgid_suid_test_case(0, S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(0, S_ISUID | S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISGID, S_ISUID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISUID, S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISGID, S_ISUID | S_ISGID, -EPERM); ++ + // clean up + ceph_shutdown(cmount); + ceph_shutdown(admin); diff -Nru ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch --- ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch 2026-05-16 12:34:01.000000000 +0000 @@ -0,0 +1,35 @@ +From: Nizamudeen A +Date: Thu, 30 Oct 2025 10:05:04 +0530 +Subject: mgr/alerts: enforce ssl context to SMTP_SSL +Origin: https://github.com/ceph/ceph/commit/5081933c9a0068fe9deba4fca2d943bda3168518 +Bug-Debian: https://bugs.debian.org/1126573 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-31884 + +Fixes: https://github.com/ceph/ceph/security/advisories/GHSA-xj9f-7g59-m4jx +Signed-off-by: Nizamudeen A +(cherry picked from commit 5f7fc5267e55089eeb1cfc87e9c1215c32439102) +--- + src/pybind/mgr/alerts/module.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/src/pybind/mgr/alerts/module.py ++++ b/src/pybind/mgr/alerts/module.py +@@ -9,6 +9,7 @@ from threading import Event + import errno + import json + import smtplib ++import ssl + + class Alerts(MgrModule): + COMMANDS = [ +@@ -243,8 +244,9 @@ class Alerts(MgrModule): + + # send + try: ++ context = ssl.create_default_context() + if self.smtp_ssl: +- server = smtplib.SMTP_SSL(self.smtp_host, self.smtp_port) ++ server = smtplib.SMTP_SSL(self.smtp_host, self.smtp_port, context=context) + else: + server = smtplib.SMTP(self.smtp_host, self.smtp_port) + if self.smtp_password: diff -Nru ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/series ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/series --- ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/series 2024-12-04 05:46:17.000000000 +0000 +++ ceph-16.2.15+ds/src/test/debian-jessie/debian/patches/series 2026-05-16 12:51:20.000000000 +0000 @@ -21,3 +21,7 @@ fix-CheckCxxAtomic-riscv64.patch CVE-2022-3854_1_rgw_Guard_against_malformed_bucket_URLs.patch CVE-2024-48916.patch +mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch +Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch +client-disallow-unprivileged-users-to-escalate-root-.patch +client-prohibit-unprivileged-users-from-setting-sgid.patch diff -Nru ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/changelog ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/changelog --- ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/changelog 2024-12-04 05:46:17.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/changelog 2026-05-16 12:52:24.000000000 +0000 @@ -1,3 +1,16 @@ +ceph (16.2.15+ds-0+deb12u2) bookworm-security; urgency=high + + * Non-maintainer upload by the Security Team. + * mgr/alerts: enforce ssl context to SMTP_SSL (CVE-2024-31884) + (Closes: #1126573) + * Check if `HTTP_X_AMZ_COPY_SOURCE` header is empty (CVE-2024-47866) + (Closes: #1120797) + * client: disallow unprivileged users to escalate root privileges + (CVE-2025-52555) (Closes: #1108410) + * client: prohibit unprivileged users from setting sgid/suid bits + + -- Salvatore Bonaccorso Sat, 16 May 2026 14:52:24 +0200 + ceph (16.2.15+ds-0+deb12u1) bookworm-security; urgency=medium * Adding myself to uploaders. diff -Nru ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch --- ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch 2026-05-16 12:40:51.000000000 +0000 @@ -0,0 +1,33 @@ +From: Suyash Dongre +Date: Wed, 20 Aug 2025 23:22:41 +0530 +Subject: Check if `HTTP_X_AMZ_COPY_SOURCE` header is empty +Origin: https://github.com/ceph/ceph/commit/bef59f17293e6e93af025eba1e00646d0b1a2bf0 +Bug-Debian: https://bugs.debian.org/1120797 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-47866 + +The issue was that the `HTTP_X_AMZ_COPY_SOURCE` header could be present but empty (i.e., an empty string rather than NULL). The code only checked if the pointer was not NULL, but didn't verify that the string had content. When an empty string was passed to RGWCopyObj::parse_copy_location(), it would eventually try to access name_str[0] on an empty string, causing a crash. + +Fixes: https://tracker.ceph.com/issues/72669 + +Signed-off-by: Suyash Dongre +--- + src/rgw/rgw_op.cc | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc +index 6a7a7313e117..30ec14478c86 100644 +--- a/src/rgw/rgw_op.cc ++++ b/src/rgw/rgw_op.cc +@@ -5426,6 +5426,9 @@ bool RGWCopyObj::parse_copy_location(const std::string_view& url_src, + params_str = url_src.substr(pos + 1); + } + ++ if (name_str.empty()) { ++ return false; ++ } + if (name_str[0] == '/') // trim leading slash + name_str.remove_prefix(1); + +-- +2.53.0 + diff -Nru ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch --- ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch 2026-05-16 12:49:35.000000000 +0000 @@ -0,0 +1,86 @@ +From: Xiubo Li +Date: Wed, 3 Apr 2024 19:02:08 +0800 +Subject: client: disallow unprivileged users to escalate root privileges +Origin: https://github.com/ceph/ceph/commit/b6d85b595ea7c9e0fca10d5e77a48102110fe22c +Bug-Debian: https://bugs.debian.org/1108410 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2025-52555 + +An unprivileged user can `chmod 777` a directory owned by root +and gain access. Fix this bug and also add a test case for the +same. + +Signed-off-by: Xiubo Li +Signed-off-by: Venky Shankar +--- + src/client/Client.cc | 24 ++++++++++++++---------- + src/test/libcephfs/suidsgid.cc | 10 ++++++++++ + 2 files changed, 24 insertions(+), 10 deletions(-) + +diff --git a/src/client/Client.cc b/src/client/Client.cc +index 1cb58c815f9e..49ca4322bbb2 100644 +--- a/src/client/Client.cc ++++ b/src/client/Client.cc +@@ -5897,18 +5897,22 @@ int Client::may_setattr(Inode *in, struct ceph_statx *stx, int mask, + } + + if (mask & CEPH_SETATTR_MODE) { ++ bool allowed = false; ++ /* ++ * Currently the kernel fuse and libfuse code is buggy and ++ * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. ++ * But will just set the ATTR_MODE and at the same time by ++ * clearing the suid/sgid bits. ++ * ++ * Only allow unprivileged users to clear S_ISUID and S_ISUID. ++ */ ++ if ((in->mode & (S_ISUID | S_ISGID)) != (stx->stx_mode & (S_ISUID | S_ISGID)) && ++ (in->mode & ~(S_ISUID | S_ISGID)) == (stx->stx_mode & ~(S_ISUID | S_ISGID))) { ++ allowed = true; ++ } + uint32_t m = ~stx->stx_mode & in->mode; // mode bits removed + ldout(cct, 20) << __func__ << " " << *in << " = " << hex << m << dec << dendl; +- if (perms.uid() != 0 && perms.uid() != in->uid && +- /* +- * Currently the kernel fuse and libfuse code is buggy and +- * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. +- * But will just set the ATTR_MODE and at the same time by +- * clearing the suid/sgid bits. +- * +- * Only allow unprivileged users to clear S_ISUID and S_ISUID. +- */ +- (m & ~(S_ISUID | S_ISGID))) ++ if (perms.uid() != 0 && perms.uid() != in->uid && !allowed) + goto out; + + gid_t i_gid = (mask & CEPH_SETATTR_GID) ? stx->stx_gid : in->gid; +diff --git a/src/test/libcephfs/suidsgid.cc b/src/test/libcephfs/suidsgid.cc +index d750613ebd81..474795cc455d 100644 +--- a/src/test/libcephfs/suidsgid.cc ++++ b/src/test/libcephfs/suidsgid.cc +@@ -134,6 +134,14 @@ void run_truncate_test_case(int mode, int result, size_t size, bool with_admin=f + ceph_close(_cmount, fd); + } + ++void run_change_mode_test_case() ++{ ++ char c_dir[1024]; ++ sprintf(c_dir, "/mode_test_%d", getpid()); ++ ASSERT_EQ(0, ceph_mkdirs(admin, c_dir, 0700)); ++ ASSERT_EQ(ceph_chmod(cmount, c_dir, 0777), -CEPHFS_EPERM); ++} ++ + TEST(SuidsgidTest, WriteClearSetuid) { + ASSERT_EQ(0, ceph_create(&admin, NULL)); + ASSERT_EQ(0, ceph_conf_read_file(admin, NULL)); +@@ -206,6 +214,8 @@ TEST(SuidsgidTest, WriteClearSetuid) { + // 14, Truncate by unprivileged user clears the suid and sgid + run_truncate_test_case(06766, 0, 100); + ++ run_change_mode_test_case(); ++ + // clean up + ceph_shutdown(cmount); + ceph_shutdown(admin); +-- +2.53.0 + diff -Nru ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch --- ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch 2026-05-16 12:51:47.000000000 +0000 @@ -0,0 +1,108 @@ +From: Kefu Chai +Date: Sat, 5 Jul 2025 16:23:36 +0800 +Subject: client: prohibit unprivileged users from setting sgid/suid bits +Origin: https://github.com/ceph/ceph/commit/7028ed21138522495df1e9f8b01195a3c43d47ff + +Prior to fb1b72d, unprivileged users could add mode bits as long as +S_ISUID and S_ISGID were not included in the change. + +After fb1b72d, unprivileged users were allowed to modify S_ISUID and +S_ISGID bits only when no other mode bits were changed in the same +operation. This inadvertently permitted unprivileged users to set +S_ISUID and/or S_ISGID bits when they were the sole bits being modified. + +This behavior should not be allowed. Unprivileged users should be +prohibited from setting S_ISUID and/or S_ISGID bits under any +circumstances. + +This change tightens the permission check to prevent unprivileged +users from setting these privileged bits in all cases. + +Signed-off-by: Kefu Chai +--- + src/client/Client.cc | 19 ++++++++++--------- + src/test/libcephfs/suidsgid.cc | 22 ++++++++++++++++++++++ + 2 files changed, 32 insertions(+), 9 deletions(-) + +--- a/src/client/Client.cc ++++ b/src/client/Client.cc +@@ -5883,22 +5883,23 @@ int Client::may_setattr(Inode *in, struc + } + + if (mask & CEPH_SETATTR_MODE) { +- bool allowed = false; + /* + * Currently the kernel fuse and libfuse code is buggy and + * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. + * But will just set the ATTR_MODE and at the same time by + * clearing the suid/sgid bits. + * +- * Only allow unprivileged users to clear S_ISUID and S_ISUID. ++ * Only allow unprivileged users to clear S_ISUID and S_ISGID. + */ +- if ((in->mode & (S_ISUID | S_ISGID)) != (stx->stx_mode & (S_ISUID | S_ISGID)) && +- (in->mode & ~(S_ISUID | S_ISGID)) == (stx->stx_mode & ~(S_ISUID | S_ISGID))) { +- allowed = true; +- } +- uint32_t m = ~stx->stx_mode & in->mode; // mode bits removed +- ldout(cct, 20) << __func__ << " " << *in << " = " << hex << m << dec << dendl; +- if (perms.uid() != 0 && perms.uid() != in->uid && !allowed) ++ uint32_t removed_bits = ~stx->stx_mode & in->mode; ++ uint32_t added_bits = ~in->mode & stx->stx_mode; ++ bool clearing_suid_sgid = ( ++ // no new bits added ++ added_bits == 0 && ++ // only suid/suid bits removed ++ (removed_bits & ~(S_ISUID | S_ISGID)) == 0); ++ ldout(cct, 20) << __func__ << " " << *in << " = " << hex << removed_bits << dec << dendl; ++ if (perms.uid() != 0 && perms.uid() != in->uid && !clearing_suid_sgid) + goto out; + + gid_t i_gid = (mask & CEPH_SETATTR_GID) ? stx->stx_gid : in->gid; +--- a/src/test/libcephfs/suidsgid.cc ++++ b/src/test/libcephfs/suidsgid.cc +@@ -19,6 +19,7 @@ + #include "include/stringify.h" + #include "include/cephfs/libcephfs.h" + #include "include/rados/librados.h" ++#include + #include + #include + #include +@@ -142,6 +143,17 @@ void run_change_mode_test_case() + ASSERT_EQ(ceph_chmod(cmount, c_dir, 0777), -CEPHFS_EPERM); + } + ++static void run_set_sgid_suid_test_case(int old_suid_sgid, ++ int new_suid_sgid, ++ int expected_result) ++{ ++ char c_dir[1024]; ++ sprintf(c_dir, "/mode_test_%d", getpid()); ++ const int mode = 0766; ++ ASSERT_EQ(ceph_mkdirs(admin, c_dir, mode | old_suid_sgid), 0); ++ ASSERT_EQ(ceph_chmod(cmount, c_dir, mode | new_suid_sgid), expected_result); ++} ++ + TEST(SuidsgidTest, WriteClearSetuid) { + ASSERT_EQ(0, ceph_create(&admin, NULL)); + ASSERT_EQ(0, ceph_conf_read_file(admin, NULL)); +@@ -214,8 +226,18 @@ TEST(SuidsgidTest, WriteClearSetuid) { + // 14, Truncate by unprivileged user clears the suid and sgid + run_truncate_test_case(06766, 0, 100); + ++ // 15, Prohibit unpriviledged user from changing non-sgid/suid ++ // mode bits + run_change_mode_test_case(); + ++ // 16, Prohibit unpriviledged user from setting suid/sgid ++ run_set_sgid_suid_test_case(0, S_ISUID, -EPERM); ++ run_set_sgid_suid_test_case(0, S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(0, S_ISUID | S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISGID, S_ISUID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISUID, S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISGID, S_ISUID | S_ISGID, -EPERM); ++ + // clean up + ceph_shutdown(cmount); + ceph_shutdown(admin); diff -Nru ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch --- ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch 2026-05-16 12:34:01.000000000 +0000 @@ -0,0 +1,35 @@ +From: Nizamudeen A +Date: Thu, 30 Oct 2025 10:05:04 +0530 +Subject: mgr/alerts: enforce ssl context to SMTP_SSL +Origin: https://github.com/ceph/ceph/commit/5081933c9a0068fe9deba4fca2d943bda3168518 +Bug-Debian: https://bugs.debian.org/1126573 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-31884 + +Fixes: https://github.com/ceph/ceph/security/advisories/GHSA-xj9f-7g59-m4jx +Signed-off-by: Nizamudeen A +(cherry picked from commit 5f7fc5267e55089eeb1cfc87e9c1215c32439102) +--- + src/pybind/mgr/alerts/module.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/src/pybind/mgr/alerts/module.py ++++ b/src/pybind/mgr/alerts/module.py +@@ -9,6 +9,7 @@ from threading import Event + import errno + import json + import smtplib ++import ssl + + class Alerts(MgrModule): + COMMANDS = [ +@@ -243,8 +244,9 @@ class Alerts(MgrModule): + + # send + try: ++ context = ssl.create_default_context() + if self.smtp_ssl: +- server = smtplib.SMTP_SSL(self.smtp_host, self.smtp_port) ++ server = smtplib.SMTP_SSL(self.smtp_host, self.smtp_port, context=context) + else: + server = smtplib.SMTP(self.smtp_host, self.smtp_port) + if self.smtp_password: diff -Nru ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/series ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/series --- ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/series 2024-12-04 05:46:17.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-16.04/debian/patches/series 2026-05-16 12:51:20.000000000 +0000 @@ -21,3 +21,7 @@ fix-CheckCxxAtomic-riscv64.patch CVE-2022-3854_1_rgw_Guard_against_malformed_bucket_URLs.patch CVE-2024-48916.patch +mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch +Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch +client-disallow-unprivileged-users-to-escalate-root-.patch +client-prohibit-unprivileged-users-from-setting-sgid.patch diff -Nru ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/changelog ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/changelog --- ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/changelog 2024-12-04 05:46:17.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/changelog 2026-05-16 12:52:24.000000000 +0000 @@ -1,3 +1,16 @@ +ceph (16.2.15+ds-0+deb12u2) bookworm-security; urgency=high + + * Non-maintainer upload by the Security Team. + * mgr/alerts: enforce ssl context to SMTP_SSL (CVE-2024-31884) + (Closes: #1126573) + * Check if `HTTP_X_AMZ_COPY_SOURCE` header is empty (CVE-2024-47866) + (Closes: #1120797) + * client: disallow unprivileged users to escalate root privileges + (CVE-2025-52555) (Closes: #1108410) + * client: prohibit unprivileged users from setting sgid/suid bits + + -- Salvatore Bonaccorso Sat, 16 May 2026 14:52:24 +0200 + ceph (16.2.15+ds-0+deb12u1) bookworm-security; urgency=medium * Adding myself to uploaders. diff -Nru ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch --- ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch 2026-05-16 12:40:51.000000000 +0000 @@ -0,0 +1,33 @@ +From: Suyash Dongre +Date: Wed, 20 Aug 2025 23:22:41 +0530 +Subject: Check if `HTTP_X_AMZ_COPY_SOURCE` header is empty +Origin: https://github.com/ceph/ceph/commit/bef59f17293e6e93af025eba1e00646d0b1a2bf0 +Bug-Debian: https://bugs.debian.org/1120797 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-47866 + +The issue was that the `HTTP_X_AMZ_COPY_SOURCE` header could be present but empty (i.e., an empty string rather than NULL). The code only checked if the pointer was not NULL, but didn't verify that the string had content. When an empty string was passed to RGWCopyObj::parse_copy_location(), it would eventually try to access name_str[0] on an empty string, causing a crash. + +Fixes: https://tracker.ceph.com/issues/72669 + +Signed-off-by: Suyash Dongre +--- + src/rgw/rgw_op.cc | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc +index 6a7a7313e117..30ec14478c86 100644 +--- a/src/rgw/rgw_op.cc ++++ b/src/rgw/rgw_op.cc +@@ -5426,6 +5426,9 @@ bool RGWCopyObj::parse_copy_location(const std::string_view& url_src, + params_str = url_src.substr(pos + 1); + } + ++ if (name_str.empty()) { ++ return false; ++ } + if (name_str[0] == '/') // trim leading slash + name_str.remove_prefix(1); + +-- +2.53.0 + diff -Nru ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch --- ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch 2026-05-16 12:49:35.000000000 +0000 @@ -0,0 +1,86 @@ +From: Xiubo Li +Date: Wed, 3 Apr 2024 19:02:08 +0800 +Subject: client: disallow unprivileged users to escalate root privileges +Origin: https://github.com/ceph/ceph/commit/b6d85b595ea7c9e0fca10d5e77a48102110fe22c +Bug-Debian: https://bugs.debian.org/1108410 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2025-52555 + +An unprivileged user can `chmod 777` a directory owned by root +and gain access. Fix this bug and also add a test case for the +same. + +Signed-off-by: Xiubo Li +Signed-off-by: Venky Shankar +--- + src/client/Client.cc | 24 ++++++++++++++---------- + src/test/libcephfs/suidsgid.cc | 10 ++++++++++ + 2 files changed, 24 insertions(+), 10 deletions(-) + +diff --git a/src/client/Client.cc b/src/client/Client.cc +index 1cb58c815f9e..49ca4322bbb2 100644 +--- a/src/client/Client.cc ++++ b/src/client/Client.cc +@@ -5897,18 +5897,22 @@ int Client::may_setattr(Inode *in, struct ceph_statx *stx, int mask, + } + + if (mask & CEPH_SETATTR_MODE) { ++ bool allowed = false; ++ /* ++ * Currently the kernel fuse and libfuse code is buggy and ++ * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. ++ * But will just set the ATTR_MODE and at the same time by ++ * clearing the suid/sgid bits. ++ * ++ * Only allow unprivileged users to clear S_ISUID and S_ISUID. ++ */ ++ if ((in->mode & (S_ISUID | S_ISGID)) != (stx->stx_mode & (S_ISUID | S_ISGID)) && ++ (in->mode & ~(S_ISUID | S_ISGID)) == (stx->stx_mode & ~(S_ISUID | S_ISGID))) { ++ allowed = true; ++ } + uint32_t m = ~stx->stx_mode & in->mode; // mode bits removed + ldout(cct, 20) << __func__ << " " << *in << " = " << hex << m << dec << dendl; +- if (perms.uid() != 0 && perms.uid() != in->uid && +- /* +- * Currently the kernel fuse and libfuse code is buggy and +- * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. +- * But will just set the ATTR_MODE and at the same time by +- * clearing the suid/sgid bits. +- * +- * Only allow unprivileged users to clear S_ISUID and S_ISUID. +- */ +- (m & ~(S_ISUID | S_ISGID))) ++ if (perms.uid() != 0 && perms.uid() != in->uid && !allowed) + goto out; + + gid_t i_gid = (mask & CEPH_SETATTR_GID) ? stx->stx_gid : in->gid; +diff --git a/src/test/libcephfs/suidsgid.cc b/src/test/libcephfs/suidsgid.cc +index d750613ebd81..474795cc455d 100644 +--- a/src/test/libcephfs/suidsgid.cc ++++ b/src/test/libcephfs/suidsgid.cc +@@ -134,6 +134,14 @@ void run_truncate_test_case(int mode, int result, size_t size, bool with_admin=f + ceph_close(_cmount, fd); + } + ++void run_change_mode_test_case() ++{ ++ char c_dir[1024]; ++ sprintf(c_dir, "/mode_test_%d", getpid()); ++ ASSERT_EQ(0, ceph_mkdirs(admin, c_dir, 0700)); ++ ASSERT_EQ(ceph_chmod(cmount, c_dir, 0777), -CEPHFS_EPERM); ++} ++ + TEST(SuidsgidTest, WriteClearSetuid) { + ASSERT_EQ(0, ceph_create(&admin, NULL)); + ASSERT_EQ(0, ceph_conf_read_file(admin, NULL)); +@@ -206,6 +214,8 @@ TEST(SuidsgidTest, WriteClearSetuid) { + // 14, Truncate by unprivileged user clears the suid and sgid + run_truncate_test_case(06766, 0, 100); + ++ run_change_mode_test_case(); ++ + // clean up + ceph_shutdown(cmount); + ceph_shutdown(admin); +-- +2.53.0 + diff -Nru ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch --- ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch 2026-05-16 12:51:47.000000000 +0000 @@ -0,0 +1,108 @@ +From: Kefu Chai +Date: Sat, 5 Jul 2025 16:23:36 +0800 +Subject: client: prohibit unprivileged users from setting sgid/suid bits +Origin: https://github.com/ceph/ceph/commit/7028ed21138522495df1e9f8b01195a3c43d47ff + +Prior to fb1b72d, unprivileged users could add mode bits as long as +S_ISUID and S_ISGID were not included in the change. + +After fb1b72d, unprivileged users were allowed to modify S_ISUID and +S_ISGID bits only when no other mode bits were changed in the same +operation. This inadvertently permitted unprivileged users to set +S_ISUID and/or S_ISGID bits when they were the sole bits being modified. + +This behavior should not be allowed. Unprivileged users should be +prohibited from setting S_ISUID and/or S_ISGID bits under any +circumstances. + +This change tightens the permission check to prevent unprivileged +users from setting these privileged bits in all cases. + +Signed-off-by: Kefu Chai +--- + src/client/Client.cc | 19 ++++++++++--------- + src/test/libcephfs/suidsgid.cc | 22 ++++++++++++++++++++++ + 2 files changed, 32 insertions(+), 9 deletions(-) + +--- a/src/client/Client.cc ++++ b/src/client/Client.cc +@@ -5883,22 +5883,23 @@ int Client::may_setattr(Inode *in, struc + } + + if (mask & CEPH_SETATTR_MODE) { +- bool allowed = false; + /* + * Currently the kernel fuse and libfuse code is buggy and + * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. + * But will just set the ATTR_MODE and at the same time by + * clearing the suid/sgid bits. + * +- * Only allow unprivileged users to clear S_ISUID and S_ISUID. ++ * Only allow unprivileged users to clear S_ISUID and S_ISGID. + */ +- if ((in->mode & (S_ISUID | S_ISGID)) != (stx->stx_mode & (S_ISUID | S_ISGID)) && +- (in->mode & ~(S_ISUID | S_ISGID)) == (stx->stx_mode & ~(S_ISUID | S_ISGID))) { +- allowed = true; +- } +- uint32_t m = ~stx->stx_mode & in->mode; // mode bits removed +- ldout(cct, 20) << __func__ << " " << *in << " = " << hex << m << dec << dendl; +- if (perms.uid() != 0 && perms.uid() != in->uid && !allowed) ++ uint32_t removed_bits = ~stx->stx_mode & in->mode; ++ uint32_t added_bits = ~in->mode & stx->stx_mode; ++ bool clearing_suid_sgid = ( ++ // no new bits added ++ added_bits == 0 && ++ // only suid/suid bits removed ++ (removed_bits & ~(S_ISUID | S_ISGID)) == 0); ++ ldout(cct, 20) << __func__ << " " << *in << " = " << hex << removed_bits << dec << dendl; ++ if (perms.uid() != 0 && perms.uid() != in->uid && !clearing_suid_sgid) + goto out; + + gid_t i_gid = (mask & CEPH_SETATTR_GID) ? stx->stx_gid : in->gid; +--- a/src/test/libcephfs/suidsgid.cc ++++ b/src/test/libcephfs/suidsgid.cc +@@ -19,6 +19,7 @@ + #include "include/stringify.h" + #include "include/cephfs/libcephfs.h" + #include "include/rados/librados.h" ++#include + #include + #include + #include +@@ -142,6 +143,17 @@ void run_change_mode_test_case() + ASSERT_EQ(ceph_chmod(cmount, c_dir, 0777), -CEPHFS_EPERM); + } + ++static void run_set_sgid_suid_test_case(int old_suid_sgid, ++ int new_suid_sgid, ++ int expected_result) ++{ ++ char c_dir[1024]; ++ sprintf(c_dir, "/mode_test_%d", getpid()); ++ const int mode = 0766; ++ ASSERT_EQ(ceph_mkdirs(admin, c_dir, mode | old_suid_sgid), 0); ++ ASSERT_EQ(ceph_chmod(cmount, c_dir, mode | new_suid_sgid), expected_result); ++} ++ + TEST(SuidsgidTest, WriteClearSetuid) { + ASSERT_EQ(0, ceph_create(&admin, NULL)); + ASSERT_EQ(0, ceph_conf_read_file(admin, NULL)); +@@ -214,8 +226,18 @@ TEST(SuidsgidTest, WriteClearSetuid) { + // 14, Truncate by unprivileged user clears the suid and sgid + run_truncate_test_case(06766, 0, 100); + ++ // 15, Prohibit unpriviledged user from changing non-sgid/suid ++ // mode bits + run_change_mode_test_case(); + ++ // 16, Prohibit unpriviledged user from setting suid/sgid ++ run_set_sgid_suid_test_case(0, S_ISUID, -EPERM); ++ run_set_sgid_suid_test_case(0, S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(0, S_ISUID | S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISGID, S_ISUID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISUID, S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISGID, S_ISUID | S_ISGID, -EPERM); ++ + // clean up + ceph_shutdown(cmount); + ceph_shutdown(admin); diff -Nru ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch --- ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch 2026-05-16 12:34:01.000000000 +0000 @@ -0,0 +1,35 @@ +From: Nizamudeen A +Date: Thu, 30 Oct 2025 10:05:04 +0530 +Subject: mgr/alerts: enforce ssl context to SMTP_SSL +Origin: https://github.com/ceph/ceph/commit/5081933c9a0068fe9deba4fca2d943bda3168518 +Bug-Debian: https://bugs.debian.org/1126573 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-31884 + +Fixes: https://github.com/ceph/ceph/security/advisories/GHSA-xj9f-7g59-m4jx +Signed-off-by: Nizamudeen A +(cherry picked from commit 5f7fc5267e55089eeb1cfc87e9c1215c32439102) +--- + src/pybind/mgr/alerts/module.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/src/pybind/mgr/alerts/module.py ++++ b/src/pybind/mgr/alerts/module.py +@@ -9,6 +9,7 @@ from threading import Event + import errno + import json + import smtplib ++import ssl + + class Alerts(MgrModule): + COMMANDS = [ +@@ -243,8 +244,9 @@ class Alerts(MgrModule): + + # send + try: ++ context = ssl.create_default_context() + if self.smtp_ssl: +- server = smtplib.SMTP_SSL(self.smtp_host, self.smtp_port) ++ server = smtplib.SMTP_SSL(self.smtp_host, self.smtp_port, context=context) + else: + server = smtplib.SMTP(self.smtp_host, self.smtp_port) + if self.smtp_password: diff -Nru ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/series ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/series --- ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/series 2024-12-04 05:46:17.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-18.04/debian/patches/series 2026-05-16 12:51:20.000000000 +0000 @@ -21,3 +21,7 @@ fix-CheckCxxAtomic-riscv64.patch CVE-2022-3854_1_rgw_Guard_against_malformed_bucket_URLs.patch CVE-2024-48916.patch +mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch +Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch +client-disallow-unprivileged-users-to-escalate-root-.patch +client-prohibit-unprivileged-users-from-setting-sgid.patch diff -Nru ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/changelog ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/changelog --- ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/changelog 2024-12-04 05:46:17.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/changelog 2026-05-16 12:52:24.000000000 +0000 @@ -1,3 +1,16 @@ +ceph (16.2.15+ds-0+deb12u2) bookworm-security; urgency=high + + * Non-maintainer upload by the Security Team. + * mgr/alerts: enforce ssl context to SMTP_SSL (CVE-2024-31884) + (Closes: #1126573) + * Check if `HTTP_X_AMZ_COPY_SOURCE` header is empty (CVE-2024-47866) + (Closes: #1120797) + * client: disallow unprivileged users to escalate root privileges + (CVE-2025-52555) (Closes: #1108410) + * client: prohibit unprivileged users from setting sgid/suid bits + + -- Salvatore Bonaccorso Sat, 16 May 2026 14:52:24 +0200 + ceph (16.2.15+ds-0+deb12u1) bookworm-security; urgency=medium * Adding myself to uploaders. diff -Nru ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch --- ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch 2026-05-16 12:40:51.000000000 +0000 @@ -0,0 +1,33 @@ +From: Suyash Dongre +Date: Wed, 20 Aug 2025 23:22:41 +0530 +Subject: Check if `HTTP_X_AMZ_COPY_SOURCE` header is empty +Origin: https://github.com/ceph/ceph/commit/bef59f17293e6e93af025eba1e00646d0b1a2bf0 +Bug-Debian: https://bugs.debian.org/1120797 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-47866 + +The issue was that the `HTTP_X_AMZ_COPY_SOURCE` header could be present but empty (i.e., an empty string rather than NULL). The code only checked if the pointer was not NULL, but didn't verify that the string had content. When an empty string was passed to RGWCopyObj::parse_copy_location(), it would eventually try to access name_str[0] on an empty string, causing a crash. + +Fixes: https://tracker.ceph.com/issues/72669 + +Signed-off-by: Suyash Dongre +--- + src/rgw/rgw_op.cc | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc +index 6a7a7313e117..30ec14478c86 100644 +--- a/src/rgw/rgw_op.cc ++++ b/src/rgw/rgw_op.cc +@@ -5426,6 +5426,9 @@ bool RGWCopyObj::parse_copy_location(const std::string_view& url_src, + params_str = url_src.substr(pos + 1); + } + ++ if (name_str.empty()) { ++ return false; ++ } + if (name_str[0] == '/') // trim leading slash + name_str.remove_prefix(1); + +-- +2.53.0 + diff -Nru ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch --- ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/client-disallow-unprivileged-users-to-escalate-root-.patch 2026-05-16 12:49:35.000000000 +0000 @@ -0,0 +1,86 @@ +From: Xiubo Li +Date: Wed, 3 Apr 2024 19:02:08 +0800 +Subject: client: disallow unprivileged users to escalate root privileges +Origin: https://github.com/ceph/ceph/commit/b6d85b595ea7c9e0fca10d5e77a48102110fe22c +Bug-Debian: https://bugs.debian.org/1108410 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2025-52555 + +An unprivileged user can `chmod 777` a directory owned by root +and gain access. Fix this bug and also add a test case for the +same. + +Signed-off-by: Xiubo Li +Signed-off-by: Venky Shankar +--- + src/client/Client.cc | 24 ++++++++++++++---------- + src/test/libcephfs/suidsgid.cc | 10 ++++++++++ + 2 files changed, 24 insertions(+), 10 deletions(-) + +diff --git a/src/client/Client.cc b/src/client/Client.cc +index 1cb58c815f9e..49ca4322bbb2 100644 +--- a/src/client/Client.cc ++++ b/src/client/Client.cc +@@ -5897,18 +5897,22 @@ int Client::may_setattr(Inode *in, struct ceph_statx *stx, int mask, + } + + if (mask & CEPH_SETATTR_MODE) { ++ bool allowed = false; ++ /* ++ * Currently the kernel fuse and libfuse code is buggy and ++ * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. ++ * But will just set the ATTR_MODE and at the same time by ++ * clearing the suid/sgid bits. ++ * ++ * Only allow unprivileged users to clear S_ISUID and S_ISUID. ++ */ ++ if ((in->mode & (S_ISUID | S_ISGID)) != (stx->stx_mode & (S_ISUID | S_ISGID)) && ++ (in->mode & ~(S_ISUID | S_ISGID)) == (stx->stx_mode & ~(S_ISUID | S_ISGID))) { ++ allowed = true; ++ } + uint32_t m = ~stx->stx_mode & in->mode; // mode bits removed + ldout(cct, 20) << __func__ << " " << *in << " = " << hex << m << dec << dendl; +- if (perms.uid() != 0 && perms.uid() != in->uid && +- /* +- * Currently the kernel fuse and libfuse code is buggy and +- * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. +- * But will just set the ATTR_MODE and at the same time by +- * clearing the suid/sgid bits. +- * +- * Only allow unprivileged users to clear S_ISUID and S_ISUID. +- */ +- (m & ~(S_ISUID | S_ISGID))) ++ if (perms.uid() != 0 && perms.uid() != in->uid && !allowed) + goto out; + + gid_t i_gid = (mask & CEPH_SETATTR_GID) ? stx->stx_gid : in->gid; +diff --git a/src/test/libcephfs/suidsgid.cc b/src/test/libcephfs/suidsgid.cc +index d750613ebd81..474795cc455d 100644 +--- a/src/test/libcephfs/suidsgid.cc ++++ b/src/test/libcephfs/suidsgid.cc +@@ -134,6 +134,14 @@ void run_truncate_test_case(int mode, int result, size_t size, bool with_admin=f + ceph_close(_cmount, fd); + } + ++void run_change_mode_test_case() ++{ ++ char c_dir[1024]; ++ sprintf(c_dir, "/mode_test_%d", getpid()); ++ ASSERT_EQ(0, ceph_mkdirs(admin, c_dir, 0700)); ++ ASSERT_EQ(ceph_chmod(cmount, c_dir, 0777), -CEPHFS_EPERM); ++} ++ + TEST(SuidsgidTest, WriteClearSetuid) { + ASSERT_EQ(0, ceph_create(&admin, NULL)); + ASSERT_EQ(0, ceph_conf_read_file(admin, NULL)); +@@ -206,6 +214,8 @@ TEST(SuidsgidTest, WriteClearSetuid) { + // 14, Truncate by unprivileged user clears the suid and sgid + run_truncate_test_case(06766, 0, 100); + ++ run_change_mode_test_case(); ++ + // clean up + ceph_shutdown(cmount); + ceph_shutdown(admin); +-- +2.53.0 + diff -Nru ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch --- ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/client-prohibit-unprivileged-users-from-setting-sgid.patch 2026-05-16 12:51:47.000000000 +0000 @@ -0,0 +1,108 @@ +From: Kefu Chai +Date: Sat, 5 Jul 2025 16:23:36 +0800 +Subject: client: prohibit unprivileged users from setting sgid/suid bits +Origin: https://github.com/ceph/ceph/commit/7028ed21138522495df1e9f8b01195a3c43d47ff + +Prior to fb1b72d, unprivileged users could add mode bits as long as +S_ISUID and S_ISGID were not included in the change. + +After fb1b72d, unprivileged users were allowed to modify S_ISUID and +S_ISGID bits only when no other mode bits were changed in the same +operation. This inadvertently permitted unprivileged users to set +S_ISUID and/or S_ISGID bits when they were the sole bits being modified. + +This behavior should not be allowed. Unprivileged users should be +prohibited from setting S_ISUID and/or S_ISGID bits under any +circumstances. + +This change tightens the permission check to prevent unprivileged +users from setting these privileged bits in all cases. + +Signed-off-by: Kefu Chai +--- + src/client/Client.cc | 19 ++++++++++--------- + src/test/libcephfs/suidsgid.cc | 22 ++++++++++++++++++++++ + 2 files changed, 32 insertions(+), 9 deletions(-) + +--- a/src/client/Client.cc ++++ b/src/client/Client.cc +@@ -5883,22 +5883,23 @@ int Client::may_setattr(Inode *in, struc + } + + if (mask & CEPH_SETATTR_MODE) { +- bool allowed = false; + /* + * Currently the kernel fuse and libfuse code is buggy and + * won't pass the ATTR_KILL_SUID/ATTR_KILL_SGID to ceph-fuse. + * But will just set the ATTR_MODE and at the same time by + * clearing the suid/sgid bits. + * +- * Only allow unprivileged users to clear S_ISUID and S_ISUID. ++ * Only allow unprivileged users to clear S_ISUID and S_ISGID. + */ +- if ((in->mode & (S_ISUID | S_ISGID)) != (stx->stx_mode & (S_ISUID | S_ISGID)) && +- (in->mode & ~(S_ISUID | S_ISGID)) == (stx->stx_mode & ~(S_ISUID | S_ISGID))) { +- allowed = true; +- } +- uint32_t m = ~stx->stx_mode & in->mode; // mode bits removed +- ldout(cct, 20) << __func__ << " " << *in << " = " << hex << m << dec << dendl; +- if (perms.uid() != 0 && perms.uid() != in->uid && !allowed) ++ uint32_t removed_bits = ~stx->stx_mode & in->mode; ++ uint32_t added_bits = ~in->mode & stx->stx_mode; ++ bool clearing_suid_sgid = ( ++ // no new bits added ++ added_bits == 0 && ++ // only suid/suid bits removed ++ (removed_bits & ~(S_ISUID | S_ISGID)) == 0); ++ ldout(cct, 20) << __func__ << " " << *in << " = " << hex << removed_bits << dec << dendl; ++ if (perms.uid() != 0 && perms.uid() != in->uid && !clearing_suid_sgid) + goto out; + + gid_t i_gid = (mask & CEPH_SETATTR_GID) ? stx->stx_gid : in->gid; +--- a/src/test/libcephfs/suidsgid.cc ++++ b/src/test/libcephfs/suidsgid.cc +@@ -19,6 +19,7 @@ + #include "include/stringify.h" + #include "include/cephfs/libcephfs.h" + #include "include/rados/librados.h" ++#include + #include + #include + #include +@@ -142,6 +143,17 @@ void run_change_mode_test_case() + ASSERT_EQ(ceph_chmod(cmount, c_dir, 0777), -CEPHFS_EPERM); + } + ++static void run_set_sgid_suid_test_case(int old_suid_sgid, ++ int new_suid_sgid, ++ int expected_result) ++{ ++ char c_dir[1024]; ++ sprintf(c_dir, "/mode_test_%d", getpid()); ++ const int mode = 0766; ++ ASSERT_EQ(ceph_mkdirs(admin, c_dir, mode | old_suid_sgid), 0); ++ ASSERT_EQ(ceph_chmod(cmount, c_dir, mode | new_suid_sgid), expected_result); ++} ++ + TEST(SuidsgidTest, WriteClearSetuid) { + ASSERT_EQ(0, ceph_create(&admin, NULL)); + ASSERT_EQ(0, ceph_conf_read_file(admin, NULL)); +@@ -214,8 +226,18 @@ TEST(SuidsgidTest, WriteClearSetuid) { + // 14, Truncate by unprivileged user clears the suid and sgid + run_truncate_test_case(06766, 0, 100); + ++ // 15, Prohibit unpriviledged user from changing non-sgid/suid ++ // mode bits + run_change_mode_test_case(); + ++ // 16, Prohibit unpriviledged user from setting suid/sgid ++ run_set_sgid_suid_test_case(0, S_ISUID, -EPERM); ++ run_set_sgid_suid_test_case(0, S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(0, S_ISUID | S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISGID, S_ISUID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISUID, S_ISGID, -EPERM); ++ run_set_sgid_suid_test_case(S_ISGID, S_ISUID | S_ISGID, -EPERM); ++ + // clean up + ceph_shutdown(cmount); + ceph_shutdown(admin); diff -Nru ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch --- ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch 1970-01-01 00:00:00.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch 2026-05-16 12:34:01.000000000 +0000 @@ -0,0 +1,35 @@ +From: Nizamudeen A +Date: Thu, 30 Oct 2025 10:05:04 +0530 +Subject: mgr/alerts: enforce ssl context to SMTP_SSL +Origin: https://github.com/ceph/ceph/commit/5081933c9a0068fe9deba4fca2d943bda3168518 +Bug-Debian: https://bugs.debian.org/1126573 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2024-31884 + +Fixes: https://github.com/ceph/ceph/security/advisories/GHSA-xj9f-7g59-m4jx +Signed-off-by: Nizamudeen A +(cherry picked from commit 5f7fc5267e55089eeb1cfc87e9c1215c32439102) +--- + src/pybind/mgr/alerts/module.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/src/pybind/mgr/alerts/module.py ++++ b/src/pybind/mgr/alerts/module.py +@@ -9,6 +9,7 @@ from threading import Event + import errno + import json + import smtplib ++import ssl + + class Alerts(MgrModule): + COMMANDS = [ +@@ -243,8 +244,9 @@ class Alerts(MgrModule): + + # send + try: ++ context = ssl.create_default_context() + if self.smtp_ssl: +- server = smtplib.SMTP_SSL(self.smtp_host, self.smtp_port) ++ server = smtplib.SMTP_SSL(self.smtp_host, self.smtp_port, context=context) + else: + server = smtplib.SMTP(self.smtp_host, self.smtp_port) + if self.smtp_password: diff -Nru ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/series ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/series --- ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/series 2024-12-04 05:46:17.000000000 +0000 +++ ceph-16.2.15+ds/src/test/ubuntu-20.04/debian/patches/series 2026-05-16 12:51:20.000000000 +0000 @@ -21,3 +21,7 @@ fix-CheckCxxAtomic-riscv64.patch CVE-2022-3854_1_rgw_Guard_against_malformed_bucket_URLs.patch CVE-2024-48916.patch +mgr-alerts-enforce-ssl-context-to-SMTP_SSL.patch +Check-if-HTTP_X_AMZ_COPY_SOURCE-header-is-empty.patch +client-disallow-unprivileged-users-to-escalate-root-.patch +client-prohibit-unprivileged-users-from-setting-sgid.patch