Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

V5.7.2 #20

Merged
merged 68 commits into from
Dec 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
eb4295e
[Server] Fix for improper error handling for current R5 also fixes #2357
abh3 Oct 16, 2024
08c3420
[CMake] Set CMAKE_INSTALL_RPATH in the cache to allow overrides
amadio Oct 9, 2024
27f69ad
[Server] Correct spelling (permision → permission)
ellert Sep 5, 2024
5b42e86
Protect against array index out of bounds
ellert Sep 7, 2024
3a52c93
Add error string to e2sMap if EBADE is out of range
ellert Sep 10, 2024
f9d5734
Change type in XrdSutCacheArg_t to long long
ellert Sep 9, 2024
31dda59
Avoid test failures when $RANDOM returns a multiple of 1024
ellert Sep 20, 2024
27c2d27
Reproducible doxygen output.
ellert Sep 13, 2024
a251ba6
[CMake] Enable XrdClPipelines unconditionally
amadio Oct 28, 2024
fb574cb
[XrdPosix] Don't try to disable LTO if compiler doesn't support it
amadio Oct 28, 2024
6fb6440
[CMake] Disable warnings with Nvidia's nvc++ compiler
amadio Oct 28, 2024
ef19db1
[Python] Remove --parallel from cmake --build command in setup.py
amadio Oct 28, 2024
b4d02a0
[XrdHttp, XrdPosix, XrdPss] Obfuscated more authz in the logging
ccaffy Oct 10, 2024
07189fc
[XrdHttpTPC] Remove XRD_CHUNK_RESP preprocessing directive
ccaffy Oct 11, 2024
759d637
[XrdHttpTPC] Fail the PULL transfer if remote size cannot be fetched
ccaffy Oct 11, 2024
574e4e5
[Tests] Disable xrd.trace and xrootd.trace by default
amadio Oct 30, 2024
9f18c52
[Tests] Increase default timeouts in client/server tests
amadio Oct 30, 2024
c838699
[XrdCl] Handle kXR_attrCache attribute in protocol response
amadio Nov 1, 2024
70e0fc9
[Python] Use values from the environment for add_job defaults
amadio Nov 1, 2024
f00af29
[XrdCl] Do not issue locate for xrdfs ls command to a data server
amadio Nov 1, 2024
d75c7d5
[cmsd] Change DFS error message to be less confusing; fixes #2345
abh3 Nov 1, 2024
82a3fc0
[XrdHttp] Obfuscated potential token leaking during first line parsing
ccaffy Nov 14, 2024
062dc61
[Tests] Added more HTTP tests for CI
ccaffy Nov 19, 2024
cee703a
Avoid calling 'stat' on HTTP GET (#2300)
bbockelm Nov 14, 2024
0588dca
Reset the state after processing while in redrive
bbockelm Oct 24, 2024
d74b2af
[XrdCl] Downgrade force disconnect error message to debug level
amadio Nov 21, 2024
c413daa
[Pfc] Reduce verbosity of errors originating from remote block reads
osschar Nov 22, 2024
578e079
[Pfc] Add num bytes written to disk and bytes prefetched to the gstre…
osschar Nov 20, 2024
78d1fb7
[Pfc] Stat call: fix behavior and improve performance, part of #2349
osschar Nov 20, 2024
075f17d
[XrdOuc] Migrate obfuscateAuth() away from std::regex
amadio Nov 6, 2024
caf46d2
[Tests] Make test for obfuscateAuth() stricter
amadio Nov 6, 2024
216097d
[pfc-2372-3] Return 1 from Stat when the cache does not have the file…
osschar Nov 22, 2024
50209b3
[Secsss] Fix upcast array used in pointer arithmetics
amadio Nov 25, 2024
a1bcd44
[Server] Fix uncontrolled format string in XrdXrootdTpcMon
amadio Nov 25, 2024
bb6c75b
[XrdCl] Fix wrong type of arguments to formatting function
amadio Nov 25, 2024
8f1b9be
[XrdEc] Fix wrong type of arguments to formatting function
amadio Nov 25, 2024
3e53e89
[XrdClHttp] Fix wrong type of arguments to formatting function
amadio Nov 25, 2024
e0081b7
[XrdCl] Fix typo in arguments to formatting function: s% -> %s
amadio Nov 25, 2024
50aec7f
[XrdEc] Fix comparison of narrow type with wide type in loop condition
amadio Nov 25, 2024
103e70f
[XrdXrootd] Fix pointer to readahead_list in do_ReadNone
amadio Nov 25, 2024
65a6eee
[XrdCl] Add missing argument to logging message
amadio Nov 25, 2024
c3696ef
[XrdXrootd] Fix time-of-check vs time-of-use race condition
amadio Nov 26, 2024
63c4cb3
[XrdHttp] Fix time-of-check vs time-of-use race condition
amadio Nov 26, 2024
31a41eb
[XrdCrypto] Reorder includes and fix stat vs open race condition
amadio Nov 26, 2024
74bb634
[XrdApps] First open then stat file to get consistent information
amadio Nov 26, 2024
02f5083
[XrdOuc] Fix potential null pointer dereference in copyCGI
amadio Nov 26, 2024
c3b458a
[Secsss] Fix mismatched new/free in XrdSecsssID::~XrdSecsssID()
amadio Nov 26, 2024
58bb106
[Secztn] Fix integer overflow check in DecodeUrl()
amadio Nov 26, 2024
9611aa2
[XrdPss] Fix potential null pointer dereference in copyCGI
amadio Nov 26, 2024
3ac3ccc
[XrdXrootd] Remove redundant null pointer check
amadio Nov 26, 2024
cc42289
[XrdNet] Remove redundant null pointer check for ifList
amadio Nov 26, 2024
00b0ba5
[XrdEc] Fix CodeQL warning about overflow before conversion to size_t
amadio Nov 26, 2024
e1349ec
[XrdOss] Fix CodeQL warning about int overflow in multiplication
amadio Nov 26, 2024
7b68df2
[XrdDig] Fix potentially overflowing call to snprintf
amadio Nov 26, 2024
ec9a8ba
[CI] Use node18 in GitHub Actions for CentOS 7
amadio Nov 26, 2024
104c93a
[CI] Do not upload RPM artifacts for CentOS 7
amadio Nov 26, 2024
0faeaa9
[CI] Move to actions/checkout@v4 on Alpine Linux
amadio Nov 26, 2024
b44b827
[CI] Add AlmaLinux 10 beta build to GitHub Actions
amadio Nov 26, 2024
0b35754
[CI] Add AlmaLinux 10 beta RPM build to GitHub Actions
amadio Nov 26, 2024
eb8a2a3
[CI] Add AlmaLinux 10 beta build to GitLab CI
amadio Nov 26, 2024
1b787db
[CI] Replace Fedora 39 with Fedora 41 in GitLab CI
amadio Nov 26, 2024
58fb995
[CI] Move to Fedora 41 in RPM build on GitHub Actions
amadio Nov 26, 2024
2d9b214
[CI] Use actions/checkout@v1 on CentOS 7 build
amadio Nov 26, 2024
5310587
[CI] Add fetch-depth checkout option for Alpine Linux
amadio Nov 26, 2024
9f74352
Revert "[Secsss] Fix upcast array used in pointer arithmetics"
amadio Nov 29, 2024
d5dcde1
[RPM] Update spec file for XRootD 5.7.2
amadio Nov 27, 2024
8a4ca75
XRootD 5.7.2
amadio Nov 27, 2024
78a591d
Merge branch 'v5.7.2patched' into v5.7.2
Jo-stfc Dec 2, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading