Skip to content

Releases: xrootd/xrootd

v6.0.1

05 May 15:43
Immutable release. Only release title and notes can be modified.
v6.0.1
3b90ae9

Choose a tag to compare

Bugfixes

All bugfixes from XRootD 5.9.3 are also in XRootD 6.0.1
[Tests] Fix kerberos tests when /usr/sbin is not in PATH
[XrdClHttp] Add catch-all work-around for missing gettid (#2769)
[XrdClS3] Fix mistakenly reversed if condition (#2776)
[XrdClS3] Fix plugin defaults to allow empty region to be set (#2776)
[XrdOssArc] Add #include "XrdSys/XrdSysPlatform.hh" for MAXPATHLEN (#2769)
[XrdSys] Also check for GNU in statx (#2769)

Miscellaneous

[DEB/RPM] Change file to avoid sed during install (#2769)
[Server] Make redirect plugin available to other protocols (e.g. http).
[Tests] Add link to atomic library for some 32 bit architectures (#2774)
[XrdHttp] Fix crash due to unaligned memory access (#2777)
[XrdPosix] Add support for links, openat and fstatat (#2775)
[XrdSys] Include C-style headers to allow XrdPosix to be used in a C context (#2779)

Release Announcement | Full Changelog | Issues and Pull Requests | ABI Reports

v5.9.3

05 May 15:18
Immutable release. Only release title and notes can be modified.
v5.9.3
a414e04

Choose a tag to compare

Bugfixes

[XrdHttp] Encode the key of the opaque query string
[XrdHttpTpc] Filter source/destination URLs through allowed list of schemes
[XrdHttpTpc] Limit curl handle to http and https protocols only
[XrdMacaroons] Reject user-provided caveats with reserved keys
[XrdOuc] Ensure XList is initialized in XrdOucNSWalk constructor
[XrdSciTokens] Close token and ACL cleanup leaks
[XrdSciTokens] Fix ACL cache TTL computation from token expiry
[XrdSciTokens] Harden token input
[XrdSciTokens] Match rules based on path-component boundary
[XrdSciTokens] Serialize issuer reads and atomic reconfig state swap
[XrdSciTokens] Tighten group and subject-claim memory handling
[XrdSecgsi] Remove dead code
[XrdSsi] Fix GCC 16 -Wmaybe-uninitialized compiler warning

Miscellaneous

[CI] Check ABI against merge-base of HEAD and latest tag
[CI] Publish binary Python wheels for Linux/macOS on aarch64/x86_64
[CMake] Set install_name property on macOS for Python wheel builds
[XrdHttpTpc] Add option to allow/deny transfers to/from local/private addresses
[XrdHttpTpc] Convert s3(s):// scheme to https:// in tpc source/destination URLs
[XrdHttpTpc] Improve error handling in TPCHandler::DetermineXferSize

New Contributors

Release Announcement | Full Changelog | Issues and Pull Requests | ABI Reports

v6.0.0

09 Apr 14:32
Immutable release. Only release title and notes can be modified.
v6.0.0
8486cec

Choose a tag to compare

New Features

[Plugins] Implement a Rucio aware Tape Remote Storage Element for backups
[Python] Add SetLogLevel/SetLogMask to client interface (#1713)
[Python] Add fSetXattrAdler32 interface to set local file checksum (#2650)
[Server,XrdCl] Add support for pre-read (#2743, #2727)
[Server] Allow fcntl to be forwarded to the origin
[Server] Implement extended error messages for proxy servers (#613)
[Server] Provide support of kXR_QFinfo and kXR_QFSinfo subcodes of kXR_query
[Systemd] Update XRootD systemd unit files
[XProtocol] Add kXR_QFinfo, kXR_QFSinfo, and kXR_directio option flags
[XrdAcc,XrdSciTokens] Add support for WLCG staging tokens (#2627)
[XrdAcc] Allow authorization plugin to supply additional error info
[XrdApps, XrdCl, XrdEc, Python] Use time_t for times and timeouts (#2236, #2237)
[XrdCl] Add constructor to initialise plugin without opening the file (#2512)
[XrdCl] Add fcntl interface to propagate query code parameter (#2588)
[XrdCl] Add file cloning support (ficlone, reflink) (#1795, #2569)
[XrdCl] Add new XrdClHttp and XrdClS3 client plugins based on curl (#2514, #2567)
[XrdCl] Add support for pointers to XrdCl::Env (#2522)
[XrdCl] Add virtual destructors to XrdClXRootDResponse classes to allow deleting object from a base class pointer (#2511)
[XrdCl] Add -h option to xrdfs for human-readable size listing (#2612)
[XrdCl] Remove old XrdClHttp plugin based on Davix (#2685)
[XrdEc] Deprecate support for erasure coding (XrdEc)
[XrdHttpTPC] Add cks.type and cks.value opaque to file open
[XrdHttpTPC] Allow missing CRL checking if configured via xrd.tlsca (#2681, #2713)
[XrdHttpTPC] Implement data integrity checks based on Repr-Digest headers (#2531, #2595)
[XrdHttp] Add new option to allow or deny directory listing (#2671)
[XrdHttp] HTTP access and error reporting in g-stream monitoring (#2352, #2604)
[XrdHttp] Implement summary monitoring for HTTP (#2637, #2712)
[XrdHttp] Provide ETag value in HEAD request (#2642)
[XrdOfs] Propagate error information returned by authorization plugins
[XrdOss] Allow setting a file descriptor for an unopen file
[XrdPfc] Add fcntl interface for cache oriented operations
[XrdPfc] Add pfc.writethrough option to enable write-through mode for cache (#2472)
[XrdPfc] Introduce pfc.httpcc and pfc.qfsredir options (#2642)
[XrdPosix] Add fcntl interface (#2642)
[XrdPosix] Add method to re-export pointers into the client environment
[XrdPosix] Add support for statx syscall (#2725)
[XrdThrottle] Implement per-user connection limits and configuration loading (#2621, #2654)
[XrdXrootd] Allow static redirection of write operations (#2473)
[xrdmapc] Add JSON output format (#2752)

Bugfixes

[CMake] Fix underlinking in XrdCeph/XrdVoms plugins
[Python] Ensure that we find matching Python interpreter and modules
[XrdCl, Python] Use uint32_t for job ids and number of copy jobs (#2235)
[XrdCl] Better protection during handling of redirection (#2648)
[XrdCl] Fix EMA use for slow transfer classification (#2742)
[XrdCl] Fix ODR violation in XrdClSIDManager
[XrdCl] Fix generic errors sent on some types of failures (#2738)
[XrdCl] Fix potential deadlock in extreme copy (#2619)
[XrdCl] Make sure outgoing message still valid on retry (#2646)
[XrdCl] Rework Channel ownership and socket closing (#2578)
[XrdCrypto] Fix ODR violation by removing sources already in XrdUtils (#2471)
[XrdFrm] Fix ODR violations due to clash of local/global symbols (#2728)
[XrdHttpTpc] Use HTTP 202 Accepted instead of HTTP 201 Created as initial response to a TPC copy (#2625, #2656)
[XrdHttp] Return 403 instead of 503 when directory listing is denied
[XrdOss] Map internal XrdOss error codes to errno before returning (#2526, #2605)
[XrdSciTokens] Refactor Check() cleanup to prevent runs from stacking up (#2677)
[XrdSciTokens] Set XDG_CACHE_HOME if not set (#2667, #2699)
[XrdSecgsi] Fix behavior of vomsat and vomsfun relative to documentation (#1817)
[XrdSsi] Eliminate deadlocks under high frequency request cancellation (#2750)

Other changes

[CI] Add sanitizer builds to GitHub Actions
[CMake] Always use internal version of tinyxml (#2672)
[CMake] Move baseline required C++ standard to C++20
[CMake] Update CMake minimum requirement and supported versions
[Misc] Drop support for OpenSSL 1.0.x, require OpenSSL 1.1.1 or later
[Python] Toggle default of raise_error in glob/iglob to true (#2636)
[XrdAcc] Add /etc/xrootd/authdb as default path for authdb file (#2687)
[XrdApps] Drop option --allow-http from xrdcp
[XrdHttp] Fix typo and omit version info in Server: response header (#2688)
[XrdOuc] Update XrdOucJson.hh to nlohmann_json 3.12.0
[XrdOuc] Use nlohmann_json from the system when possible
[XrdXrootd] Define oss.coloc as URL encoded and provide encode/decode util

New Contributors

Release Announcement | Full Changelog | Issues and Pull Requests | ABI Reports

v5.9.2

27 Mar 18:19
Immutable release. Only release title and notes can be modified.
v5.9.2
10ceb16

Choose a tag to compare

  • Major bug fixes
    [cmsd] Clear ident field when reusing a request object to avoid segv
    [Server] Correct relative path check when directory is implied
    [XrdCl] Fix a possible deadlock in extreme copy (#2619, #2622)
    [XrdCl] Fix crashes observed with Clang in Release builds
    [XrdCl] Fix segfault in XCpCtx::WeakestLink() (#2659)
    [XrdHttp] Fix a null byte buffer overflow when parsing %-encoded strings (#2690)
    [XrdHttp] Fix a null byte overflow in parseURL in HttpUtils (#2689)
    [XrdHttp] Fix buffer overflow issues when parsing HTTP request lines (#2691)
    [XrdHttp] Prevent a buffer overflow when handling a large Host header (#2692)
    [XrdThrottle] Fix null pointer dereference in ThrottleManager
    [XrdXrootd] Use correct format specifier when printing out monitoring report (#2741)

  • Minor bug fixes
    [Bridge] Fix Bridge re-drive being invoked after protocol is Reset (#2602, #2613)
    [Monitoring] Do not emit XML header if only JSON is to be emitted
    [Python] Fix XRootD glob to preserve URL parameters for authentication (#2634)
    [XrdCl] Correct digest index when receiving pgread response out of order
    [XrdCl] Fix help message display in xrdfs help
    [XrdCl] Make sure outgoing message still valid on retry (#2646)
    [XrdCl] Set errno on zero return from read/readv
    [XrdNet] Use a pre-allocated buffer to store host/domain names (#2452)
    [XrdPfc] Fix uninitialized value passing into resource-monitor purge queue (#2679)
    [XrdSys] Fix FDs leaked in constructors when logging to stderr (#2715)
    [XrdSys] Make sure a mutex is unlocked before destruction
    [XrdVoms] provide compatibility for timespec on macOS/NetBSD (#2680)
    [Xrd] More support for external closing of Link (#2226, #2653)
    [Xrd] Wait for threads that issue eventfd (#2602, #2623)
    [XrdXrootd] Make sure aio multipath response uses right path and streamId (#2658)

  • Miscellaneous
    [CI] Fix GitLab CI builds when build directory is reused
    [CI] Use auditwheel to repair XRootD Python binary wheels (#2495)
    [CMake] Link XrdVoms plugin with XrdUtils and OpenSSL
    [Tests] Add initial tests with Kerberos authentication (#2643)
    [Tests] Add initial tests with X509 certificate authentication (#2644)
    [XrdCeph] Link modules against XrdUtils/XrdServer as needed
    [XrdHttp] Avoid copying strings when handling MOVE requests (#2726)
    [Xrd] Set X509_CERT_DIR and X509_CERT_FILE if not already set
    [XrdSys] PollKQ (for macOS) remove active poll filters during Exclude

v5.9.1

17 Nov 13:56
v5.9.1
236ac42

Choose a tag to compare

  • Major bug fixes
    [XrdCl] Revert fix for #2578 which caused deadlocks in XCache (#2629, #2633)
    [XrdEc] Fix stack smashing detected by ASAN
    [XrdSecsss] Fix buffer overrun when decoding bad sss keys

  • Minor bug fixes
    [XrdCl] Avoid possibly losing error message during copy (#2615)
    [XrdCl] Fix concurrency bug causing AtLeast policy to miss errors
    [XrdMacaroons] Ensure that subdirectory creation permission is implied (#2611, #2638)
    [XrdMacaroons] Match by subdirectory instead of substring for permission verification
    [XrdOuc] Correct is_subdirectory() check for directories ending with a trailing / (#2639)
    [XrdPfc] Add missing includes and put C++ headers before C headers
    [XrdThrottle] Fix ignored configuration variable (#2616)
    [XrdXrootd] Fix readv requests of exactly 2GB max allowed limit (#2614)

  • Miscellaneous
    [CI] Add ABI compatibility check to GitHub Actions
    [CI] Move coverage build to latest Ubuntu in GitHub Actions
    [CI] Update macOS runner images after deprecation of macOS 13
    [Misc] Fix -Wmaybe-uninitialized compiler warnings
    [Misc] Fix spelling errors found by lintian (#2617)
    [RPM] Revert back to sysusers.d config file, needed in Fedora 43 (#2433)
    [Systemd] Restart services on abnormal exit (#2641)
    [XrdHttp] Further improvements to WebDAV error message handling (#2261, #2598)
    [XrdThrottle] Update README to Markdown and cover existing config

v5.9.0

10 Oct 10:58
v5.9.0
360032f

Choose a tag to compare

  • New Features
    [Server] Implement udprefresh option for the xrd.network directive (#1873)
    [Server] New redirect intercept plugin for SENSE
    [XrdCors] Add CORS plugin to XrdHttp (#2541, #2552)
    [XrdHttp] Make HTTP's maximum open delay configurable via http.maxdelay option (#2532)
    [XrdNet] XRootD monitoring information now follows DNS changes (#1873)
    [XrdPfc] Implement URL CGI parameters for setting block-size and max number of blocks for prefetching on per file basis (#2606)
    [XrdTls] Allow disabling of X.509 client auth (#2269)

  • Major bug fixes
    [XrdCl] Avoid poller callbacks blocking each other (#2578, #2582)
    [XrdCl] Fix URL object lifetime issue causing XCache crash (#2587, #2599)
    [XrdSsi] Fix XrdSsi server crash due to use after free (#2479, #2481, #2523)
    [XrdSys] Fix a race condition in IOEvents that might cause segfault
    [XrdCl] Fix xrdcp crash when running with record plugin enabled (#2579)
    [XrdPfc] Fix deadlock when opening/closing many files concurrently (#2561, #2563)

  • Minor bug fixes
    [Server] Make sure tread create counter increases monotonically (#2597)
    [XrdCl] PollerBuiltIn, protection against adding socket during shutdown
    [XrdHttp] Do a clean TLS shutdown for HTTPS (#2565)
    [XrdHttp] Fix file renaming with token authentication after redirection (#2550, #2570)
    [XrdHttpTpc] Improve mapping of error codes to HTTP status in TPC transfers (#2591)
    [XrdOssCsi] Handle pathnames not starting with slash and allow access to FD (#2581, #2594)
    [XrdOss] Workaround Mac OS X pecularity with RLIMIT_NOFILE (#2577)
    [XrdOuc] Fix memory leak in XrdOucGatherConf (#2583)
    [XrdPfc] Return error code for set cache evict if the file does not exist (#2608)
    [XrdPosix] Add a missed file object unlock
    [XrdPosix] Set errno for errors from pgRead and pgWrite
    [XrdXrootd] Fix multi-stream copy with xrdcp through XCache (#2592, #2593)

  • Miscellaneous
    [CMake] Downgrade -Werror=null-dereference back to just a warning (#2571)
    [Tests] Add an xcache test, using OssCsi to flag corruption
    [Tests] Extend test suite with more tests with token based authentication
    [XrdHttp] Set the sequential I/O flag for simple HTTP requests
    [XrdOssStats] Add documentation for the OSS statistics plugin
    [XrdPfc] Cleanup processing and storage of pfc.dirstats configuration parameters
    [XrdPfc] Pass full environment into the OSS library loader
    [XrdThrottle] Modify XrdThrottle to be an OSS plugin (#2521)
    [XrdThrottle] Re-engineered concurrency limits (#2521)

v5.8.4

10 Jul 20:30
v5.8.4
8ac19b1

Choose a tag to compare

  • Major bug fixes
    [XrdPfc] Fix XCache crash caused by use-after-free (#2533)
    [XrdSecsss] Fix null pointer dereference in XrdSecsssKT::getKey()
    [XrdXrootd] Fix server segfaults while computing checksums (#2534)

  • Minor bug fixes
    [CMake] Remove -D from ${XRootD_DEFINITIONS} in XRootDConfig.cmake (#2543)
    [Server] Improve rename error message when it fails due to overwrite
    [Tests] Fix memory leak in scitokens test reported by adress sanitizer (#2554)
    [XrdApps] Fix memory leak reported by adress sanitizer (#2553)
    [XrdCl] Add missing CpRetryPolicy to defaults
    [XrdCl] Avoid losing error response during retry at different server (#2537)
    [XrdCl] Do not apply timeout of Channel to its redirect-collapsed replacement (#2549)
    [XrdCl] Fix recursive copies with TLS enabled (#2490)
    [XrdCl] Request for hostname in replies to locate requests (#2540, #2551)
    [XrdOuc] Fix strncpy parameter overlap reported by address sanitizer
    [XrdOssCsi] Do not write sparse tag files when using nofill option (#2557)
    [XrdPosix] Fix one-definition-rule (ODR) violations in 32bit systems (#2032)
    [XrdPosix] Match function prototypes with respective syscalls (#2032)
    [XrdSecsss] Avoid potential use of uninitialized memory in XrdSecsssKT::ktDecode0()

  • Miscellaneous
    [CI] Add GCC/Clang compiler problem matcher to GitHub Actions
    [CMake] Add option to enable sanitizers in test.cmake
    [CMake] Display C/C++ compile flags in configuration summary
    [Misc] Add GitHub issue templates
    [XrdCl] Add missing CpRetryPolicy to list of defaults
    [XrdOssCsi] Use std::less to compare pointers (#2557)
    [Tests] Add simple integration tests for XrdPosix and XrdDig
    [Tests] Add test of connection failure or hostname failure after redirect (#2537)

v5.8.3

05 Jun 14:42
v5.8.3
4d58478

Choose a tag to compare

  • Major bug fixes
    [XrdCl] Fix occasionally missed reply messages from the server (#2516)
    [XrdHttp] Fix crash due to thread-safety issue in bridge redrive (#2503)
    [XrdPfc] Fix deadlock at startup (#2505, #2507)
    [Server] Fix crash caused by race condition in XrdPosix callback handler (#2517)

  • Minor bug fixes
    [XrdHttp] Fix HTTP protocol errors when using X-Transfer-Status (#2443)
    [XrdOss] Fix file access mode detection (#2510)
    [XrdPfc] Fix file access mode detection (#2508)
    [XrdPosix] Correct file open mode conversion (#2510)
    [XrdCl] Create directory target by default with recursive copies (#2501)

  • Miscellaneous
    [CMake] Add Xrd/XrdSendQ.hh to list of installed private headers (#2497)
    [XrdHttp] Add unit tests for read failures during transfers (#2443)
    [Python] Replace license classifier with SPDX license expression (#2502)
    [XrdHttp] Add initial webdav error codes for file path and permission errors (#2261)

v5.8.2

08 May 15:37
8c0d6a7

Choose a tag to compare

  • Minor bug fixes
    [Server] Correct handling of wait during redrive (#2480)
    [Server] Enforce reasonable default thread limit of 8192 (#2468)
    [XrdHttp] Add missing default HTTP status messages (#2486)
    [XrdHttp] Handle = sign correctly in URL encoding/decoding (#2491)
    [XrdOuc] Redact URL-encoded tokens with % character (#2500)
    [XrdPosix] Map operation timeouts to ETIME (#2482)
    [XrdPss] Implement the auto-stat protocol for XrdPss (#2454)
    [XrdSecsss] Fix issues reported by clang-tidy static analysis
    [XrdSecsss] Protect against buffer overflow due to large key name

  • Miscellaneous
    [CMake] General modernization of the build system (#2453)
    [CMake] Set stricter baseline compiler warning level
    [Misc] Fix compiler warnings with C++20/23, GCC 15 and Clang 20
    [RPM] Revert move to sysusers.d config file for user/group creation
    [Tests] Set a discovery timeout for gtest_discover_tests (#2485)

v5.8.1

15 Apr 09:59
v5.8.1
92f1ebc

Choose a tag to compare

  • New Features
    [XrdPss] Enable crc32c as a valid checksum for XrdPss (#2457)

  • Major bug fixes
    [PMark] Fix null pointer dereference when initializing packet marking handle
    [XrdSsi] Fix null pointer dereference in XrdSsiFileReq::Finalize() (#2469)

  • Minor bug fixes
    [CMake] Fix install rule for XrdPfc headers (#2478)
    [RPM] Workaround for %pre being evaluated before sources are unpacked (#2460)
    [XrdHttp] Do not use base64 encoding with crc32c checksums (#2456)
    [XrdPfc] Add XrdPfcPurgeQuota plugin to install targets
    [XrdThrottle] Fix Features() function implementation (#2483)
    [XrdTpc] Fix third-party copy transfers of small files with curl 8.x (#2470, #2475)

  • Miscellaneous
    [CI] Move Fedora builds to Fedora 42
    [Misc] Fix GCC 15 compiler warnings
    [Tests] Add new tests for third-party copy transfers with tokens (#2441)
    [Tests] Add simple integration test for XCache (#2477)
    [XrdCl] Implement description for kXR_fattr requests
    [XrdCl] Update description of kXR_open requests with remaining flags
    [XrdOuc] Use correct format for pthread_t on GNU/Hurd (#2465)
    [XrdPss] Include environment CGI info when proxying checksum
    [XrdThrottle] Ensure all virtuals are overrides (#2483)
    [XrdTls] Fix deprecation warnings with OpenSSL 3.4 and later