Skip to content

Commit

Permalink
Merge branch 'v5.7.2patched' into v5.7.1withceph
Browse files Browse the repository at this point in the history
  • Loading branch information
Jo-stfc authored Dec 6, 2024
2 parents 441fd05 + 8a4ca75 commit 16892b5
Show file tree
Hide file tree
Showing 82 changed files with 1,849 additions and 1,218 deletions.
44 changes: 41 additions & 3 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,9 @@ jobs:
zlib-dev
- name: Clone repository
uses: actions/checkout@v1
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup GitHub runner user within container
run: adduser -D --uid 1001 runner && chown -R runner:runner ${GITHUB_WORKSPACE}
Expand All @@ -95,7 +97,7 @@ jobs:

env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16
ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node18
CMAKE_ARGS: "-DCMAKE_INSTALL_PREFIX=/usr;-DCMAKE_INSTALL_RPATH='$ORIGIN/../$LIB'"

steps:
Expand All @@ -118,7 +120,7 @@ jobs:
yum install -y epel-rpm-macros git rpmdevtools sudo yum-utils
- name: Clone repository
uses: actions/checkout@v3
uses: actions/checkout@v1
with:
fetch-depth: 0

Expand Down Expand Up @@ -204,6 +206,42 @@ jobs:
tests/post-install.sh
tests/check-headers.sh
alma10beta:
name: Alma 10 (beta)
runs-on: ubuntu-latest
container: almalinux:10-kitten

env:
CMAKE_ARGS: "-DCMAKE_INSTALL_PREFIX=/usr;-DCMAKE_INSTALL_RPATH='$ORIGIN/../$LIB'"

steps:
- name: Install dependencies
run: |
dnf install -y dnf-plugins-core epel-release git rpmdevtools sudo
dnf config-manager --set-enabled crb
- name: Clone repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup GitHub runner user within container
run: adduser --uid 1001 runner && chown -R runner:runner ${GITHUB_WORKSPACE}

- name: Install XRootD build dependencies
run: dnf builddep -y xrootd.spec

- name: Build and Test with CTest
run: sudo -E -u runner ctest -VV -S test.cmake

- name: Install with CMake
run: cmake --install build

- name: Run post-install tests
run: |
tests/post-install.sh
tests/check-headers.sh
fedora:
name: Fedora
runs-on: ubuntu-latest
Expand Down
61 changes: 48 additions & 13 deletions .github/workflows/RPM.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:

env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16
ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node18

steps:
- name: Use CentOS 7 Vault Repository URLs
Expand Down Expand Up @@ -69,16 +69,6 @@ jobs:
- name: Run post-install tests
run: tests/post-install.sh

- name: Move RPMs to Artifact Directory
run: mkdir RPMS && mv $(rpm -E '%{_rpmdir}')/*/*.rpm RPMS/

- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: centos7
path: RPMS
retention-days: 14

alma8:
name: Alma Linux 8
runs-on: ubuntu-latest
Expand Down Expand Up @@ -169,10 +159,55 @@ jobs:
path: RPMS
retention-days: 14

alma10beta:
name: Alma Linux 10 (beta)
runs-on: ubuntu-latest
container: almalinux:9

steps:
- name: Install git
run: yum install -y git

- name: Clone repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install RPM development tools
run: |
dnf install -y epel-release rpmdevtools dnf-plugins-core
dnf config-manager --set-enabled crb
- name: Install XRootD build dependencies
run: dnf builddep -y xrootd.spec

- name: Build RPMs
run: |
rpmdev-setuptree
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git archive --prefix xrootd/ -o $(rpm -E '%{_sourcedir}')/xrootd.tar.gz HEAD
rpmbuild -bb --with git xrootd.spec
- name: Install RPMs
run: dnf install -y $(rpm -E '%{_rpmdir}')/*/*.rpm

- name: Run post-install tests
run: tests/post-install.sh

- name: Move RPMs to Artifact Directory
run: mkdir RPMS && mv $(rpm -E '%{_rpmdir}')/ RPMS$(rpm -E '%{dist}' | tr . /)

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: alma10
path: RPMS
retention-days: 14

fedora:
name: Fedora 40
name: Fedora 41
runs-on: ubuntu-latest
container: fedora:40
container: fedora:41

steps:
- name: Install git
Expand Down
11 changes: 9 additions & 2 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,10 +104,17 @@ AlmaLinux 9:
- dnf config-manager --set-enabled crb
<<: *rpm_build_dnf

Fedora 39:
image: fedora:39
AlmaLinux 10 (beta):
image: almalinux:10-kitten
before_script:
- dnf install -y epel-release
- dnf config-manager --set-enabled crb
<<: *rpm_build_dnf

Fedora 40:
image: fedora:40
<<: *rpm_build_dnf

Fedora 41:
image: fedora:41
<<: *rpm_build_dnf
2 changes: 1 addition & 1 deletion Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -492,7 +492,7 @@ LOOKUP_CACHE_SIZE = 2
# DOT_NUM_THREADS setting.
# Minimum value: 0, maximum value: 32, default value: 1.

NUM_PROC_THREADS = 0
NUM_PROC_THREADS = 1

# If the TIMESTAMP tag is set different from NO then each generated page will
# contain the date or date and time when the page was generated. Setting this to
Expand Down
17 changes: 9 additions & 8 deletions bindings/python/libs/client/copyprocess.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
from pyxrootd import client
from XRootD.client.url import URL
from XRootD.client.responses import XRootDStatus
from .env import EnvGetInt, EnvGetString

class ProgressHandlerWrapper(object):
"""Internal progress handler wrapper to convert parameters to friendly
Expand Down Expand Up @@ -83,17 +84,17 @@ def add_job(self,
checksumtype = '',
checksumpreset = '',
dynamicsource = False,
chunksize = 8388608,
parallelchunks = 4,
inittimeout = 600,
tpctimeout = 1800,
chunksize = EnvGetInt('CPChunkSize'),
parallelchunks = EnvGetInt('CPParallelChunks'),
inittimeout = EnvGetInt('CPInitTimeout'),
tpctimeout = EnvGetInt('CPTPCTimeout'),
rmBadCksum = False,
cptimeout = 0,
xrateThreshold = 0,
cptimeout = EnvGetInt('CPTimeout'),
xrateThreshold = EnvGetInt('XRateThreshold'),
xrate = 0,
retry = 0,
retry = EnvGetInt('CpRetry'),
cont = False,
rtrplc = "force" ):
rtrplc = EnvGetString('CpRetryPolicy') ):
"""Add a job to the copy process.
:param source: original source URL
Expand Down
2 changes: 1 addition & 1 deletion bindings/python/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ def build_extensions(self):
os.makedirs(self.build_temp)

check_call([cmake, ext.src, '-B', self.build_temp] + cmake_args)
check_call([cmake, '--build', self.build_temp, '--parallel'])
check_call([cmake, '--build', self.build_temp])

version = get_version()

Expand Down
23 changes: 6 additions & 17 deletions cmake/XRootDOSDefs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ set( Hurd FALSE )
set( MacOSX FALSE )
set( Solaris FALSE )

set( XrdClPipelines FALSE )

add_definitions( -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 )
define_default( LIBRARY_PATH_PREFIX "lib" )

Expand All @@ -29,14 +27,6 @@ if( ENABLE_TSAN )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
endif()

#-------------------------------------------------------------------------------
# Enable XrdCl::Pipelines for clang compiler
# Note: once we move to c++14 globaly we can remove this
#-------------------------------------------------------------------------------
if( CMAKE_CXX_COMPILER_ID STREQUAL "Clang" )
set( XrdClPipelines TRUE )
endif()

#-------------------------------------------------------------------------------
# GCC
#-------------------------------------------------------------------------------
Expand All @@ -51,12 +41,12 @@ if( CMAKE_COMPILER_IS_GNUCXX )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror" )
endif()
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter" )
endif()

execute_process( COMMAND ${CMAKE_C_COMPILER} -dumpversion
OUTPUT_VARIABLE GCC_VERSION )
if( GCC_VERSION VERSION_GREATER 4.8.0 )
set( XrdClPipelines TRUE )
endif()
# Disable warnings with nvc++ (for when we are built as ROOT built-in dependency)

if(CMAKE_CXX_COMPILER_ID MATCHES "NVHPC")
add_compile_options(-w)
endif()

#-------------------------------------------------------------------------------
Expand Down Expand Up @@ -106,11 +96,10 @@ endif()
#-------------------------------------------------------------------------------
if( APPLE )
set( MacOSX TRUE )
set( XrdClPipelines TRUE )

set(CMAKE_MACOSX_RPATH TRUE)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_INSTALL_RPATH "@loader_path/../lib")
set(CMAKE_INSTALL_RPATH "@loader_path/../lib" CACHE STRING "Install RPATH")

# this is here because of Apple deprecating openssl and krb5
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations" )
Expand Down
38 changes: 38 additions & 0 deletions docs/ReleaseNotes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,44 @@ XRootD
Release Notes
=============

-------------
Version 5.7.2
-------------

+ **Performance Improvements**
**[XrdHttp]** Avoid calling `stat` on HTTP GET (#2299, #2300)
**[XrdPfc]** Fix behavior and improve performance of stat calls (#2349)

+ **Major bug fixes**
**[XrdOuc]** Migrate away from `std::regex` to avoid stack overflow bug in C++ standard library
**[XrdHttp]** Client plugin returning XrdCl::errSocketTimeout triggers near-infinite loop in XrdHttp (#2357)
**[XrdHttp]** Invalid chunk framing for HTTP (#2351)

+ **Minor bug fixes**
**[Misc]** Fix various issues reported by code scanning tool CodeQL
**[Python]** Do not build in parallel by default to avoid using too many threads (#2356)
**[Python]** Fix RPATH setting for Python bindings on macOS (#2350)
**[Python]** Make environment take precedence over default arguments of add_job (#1657)
**[XCache]** Add number of bytes prefetched and written to disk to the gstream record (#2366)
**[XCache]** Fix errors that happen under high load (#2360)
**[XCache]** Reduce verbosity of error messages (#2288, #2327, #2370)
**[XrdCl]** xrdfs ls on a directory on a server runs locate (#2120)
**[XrdHttpTPC]** Race condition during HTTP TPC request may cause file deletion (#2354)
**[XrdHttp]** Redact tokens from additional places to prevent them leaking into logs (#2343, #2371)
**[XrdSut]** Fix narrowing conversion on 32-bit systems (#2272)
**[XrdSys]** Protect against array index out of bounds (#2329)

+ **Miscellaneous**
**[CI]** Update GitHub Actions and GitLab CI, add Alma 10 beta builds
**[CMake]** Support building with Nvidia HPC Toolkit compilers (#2361)
**[Doxygen]** Make documentation builds reproducible (#2337)
**[Tests]** Avoid test failures when $RANDOM returns a multiple of 1024 (#2344)
**[Tests]** Increase default timeouts in client/server tests
**[Tests]** More HTTP tests added to the test suite (#2375)
**[XrdCl]** Downgrade force disconnect error message to debug level (#2370)
**[XrdCl]** Handle kXR_attrCache attribute in protocol response
**[XrdCms]** Improve DFS error message to be less confusing (#2345)

-------------
Version 5.7.1
-------------
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ def build_extensions(self):
os.makedirs(self.build_temp)

check_call([cmake, ext.src, '-B', self.build_temp] + cmake_args)
check_call([cmake, '--build', self.build_temp, '--parallel'])
check_call([cmake, '--build', self.build_temp])

version = get_version()

Expand Down
2 changes: 1 addition & 1 deletion src/Xrd/XrdConfig.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1427,7 +1427,7 @@ int XrdConfig::SetupAPath()
//
#ifndef WIN32
if (chmod(AdminPath, AdminMode & ~S_IWGRP))
{Log.Emsg("Config", errno, "set permision for admin path", AdminPath);
{Log.Emsg("Config", errno, "set permission for admin path", AdminPath);
return 1;
}
#endif
Expand Down
10 changes: 5 additions & 5 deletions src/XrdApps/Xrdadler32.cc
Original file line number Diff line number Diff line change
Expand Up @@ -186,14 +186,14 @@ int main(int argc, char *argv[])
}
if (argc == 1 || path[0] == '\0')
{ /* this is a local file */
if (argc > 1)
if (argc > 1)
{
strcpy(path, argv[1]);
rc = stat(path, &stbuf);
if (rc != 0 || ! S_ISREG(stbuf.st_mode) ||
(fd = open(path,O_RDONLY)) < 0)
if ((fd = open(path, O_RDONLY)) < 0 || fstat(fd, &stbuf) != 0 || !S_ISREG(stbuf.st_mode))
{
printf("Error_accessing %s\n", path);
if (fd != -1)
close(fd);
printf("Error opening %s: %s\n", path, strerror(errno));
return 1;
}
else /* see if the adler32 is saved in attribute already */
Expand Down
23 changes: 10 additions & 13 deletions src/XrdCl/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,17 @@ set( XRD_CL_SOVERSION 3 )

#-------------------------------------------------------------------------------
# The XrdCl Pipelining API
# (we build this API only if the compiler has a good support for c++11)
#-------------------------------------------------------------------------------
if( XrdClPipelines )
set( XrdClPipelineSources
XrdClOperations.cc XrdClOperations.hh
XrdClOperationHandlers.hh
XrdClArg.hh
XrdClFwd.hh
XrdClParallelOperation.hh
XrdClFileOperations.hh
XrdClFileSystemOperations.hh
XrdClZipOperations.hh
)
endif()
set( XrdClPipelineSources
XrdClOperations.cc XrdClOperations.hh
XrdClOperationHandlers.hh
XrdClArg.hh
XrdClFwd.hh
XrdClParallelOperation.hh
XrdClFileOperations.hh
XrdClFileSystemOperations.hh
XrdClZipOperations.hh
)

#-------------------------------------------------------------------------------
# XrdEc sources
Expand Down
Loading

0 comments on commit 16892b5

Please sign in to comment.