Releases: xrootd/xrootd
v6.0.1
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
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
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
- @patrickbrophy made their first contribution in #2645
- @jafonso made their first contribution in #2627
- @daw1012345 made their first contribution in #2689
- @veprbl made their first contribution in #2680
- @eisenhauer made their first contribution in #2715
- @jhiemstrawisc made their first contribution in #2741
Release Announcement | Full Changelog | Issues and Pull Requests | ABI Reports
v5.9.2
-
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 inXCpCtx::WeakestLink()(#2659)
[XrdHttp] Fix a null byte buffer overflow when parsing%-encoded strings (#2690)
[XrdHttp] Fix a null byte overflow inparseURLin 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 inThrottleManager
[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 inxrdfshelp
[XrdCl] Make sure outgoing message still valid on retry (#2646)
[XrdCl] Seterrnoon zero return fromread/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] Useauditwheelto repair XRootD Python binary wheels (#2495)
[CMake] LinkXrdVomsplugin withXrdUtilsand OpenSSL
[Tests] Add initial tests with Kerberos authentication (#2643)
[Tests] Add initial tests with X509 certificate authentication (#2644)
[XrdCeph] Link modules againstXrdUtils/XrdServeras needed
[XrdHttp] Avoid copying strings when handlingMOVErequests (#2726)
[Xrd] SetX509_CERT_DIRandX509_CERT_FILEif not already set
[XrdSys]PollKQ(for macOS) remove active poll filters duringExclude
v5.9.1
-
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 causingAtLeastpolicy to miss errors
[XrdMacaroons] Ensure that subdirectory creation permission is implied (#2611, #2638)
[XrdMacaroons] Match by subdirectory instead of substring for permission verification
[XrdOuc] Correctis_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] Fixreadvrequests 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-uninitializedcompiler warnings
[Misc] Fix spelling errors found by lintian (#2617)
[RPM] Revert back tosysusers.dconfig file, needed in Fedora 43 (#2433)
[Systemd] Restart services on abnormal exit (#2641)
[XrdHttp] Further improvements to WebDAV error message handling (#2261, #2598)
[XrdThrottle] UpdateREADMEto Markdown and cover existing config
v5.9.0
-
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
-
Major bug fixes
[XrdPfc] Fix XCache crash caused by use-after-free (#2533)
[XrdSecsss] Fix null pointer dereference inXrdSecsssKT::getKey()
[XrdXrootd] Fix server segfaults while computing checksums (#2534) -
Minor bug fixes
[CMake] Remove-Dfrom${XRootD_DEFINITIONS}inXRootDConfig.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 missingCpRetryPolicyto 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] Fixstrncpyparameter 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 inXrdSecsssKT::ktDecode0() -
Miscellaneous
[CI] Add GCC/Clang compiler problem matcher to GitHub Actions
[CMake] Add option to enable sanitizers intest.cmake
[CMake] Display C/C++ compile flags in configuration summary
[Misc] Add GitHub issue templates
[XrdCl] Add missingCpRetryPolicyto list of defaults
[XrdOssCsi] Usestd::lessto compare pointers (#2557)
[Tests] Add simple integration tests forXrdPosixandXrdDig
[Tests] Add test of connection failure or hostname failure after redirect (#2537)
v5.8.3
-
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 usingX-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] AddXrd/XrdSendQ.hhto 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
-
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 toETIME(#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 forgtest_discover_tests(#2485)
v5.8.1
-
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 inXrdSsiFileReq::Finalize()(#2469) -
Minor bug fixes
[CMake] Fix install rule for XrdPfc headers (#2478)
[RPM] Workaround for%prebeing evaluated before sources are unpacked (#2460)
[XrdHttp] Do not use base64 encoding with crc32c checksums (#2456)
[XrdPfc] Add XrdPfcPurgeQuota plugin to install targets
[XrdThrottle] FixFeatures()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 forkXR_fattrrequests
[XrdCl] Update description ofkXR_openrequests with remaining flags
[XrdOuc] Use correct format forpthread_ton 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