{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreib2y4p64ypv5asb6lpcyz33jyi2fyur6blih2r6wg4z2vop4ola4y",
"uri": "at://did:plc:wcg6b4ffxlb7ewx2tgwjuj6n/app.bsky.feed.post/3mgbixekew3r2"
},
"path": "/2026/03/irods-4-3-5-is-released",
"publishedAt": "2026-03-04T02:00:00.000Z",
"site": "https://irods.org",
"tags": [
"https://packages.irods.org/",
"The release notes include",
"Full GitHub commit history for the iRODS server",
"Full GitHub commit history for the iCommands"
],
"textContent": "The iRODS Consortium and RENCI are pleased to announce iRODS 4.3.5.\n\nThis release represents a year's worth of work to finalize the 4.3 series. It closes 133 issues in service of making this release as stable as possible for deployments which cannot upgrade to iRODS 5 yet.\n\nNotable updates include memory leak fixes, various improvements for physical quotas, more deprecations, and better handling of multi-byte characters.\n\nThe latest binary packages for Enterprise Linux 8, Enterprise Linux 9, Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04, Debian 11, and Debian 12 are available at https://packages.irods.org/.\n\nThe release notes include:\n\n> **Changed**\n>\n> * `irepl`: Update help text for `-n` and `-S` (#4687).\n> * Make `update_deprecated_columns.py` print exception information (#7833).\n> * `iinit`: Only non-native authentication schemes force the \"iRODS password\" prompt (#7948).\n> * Enable authentication plugins to accept passwords in requests (#8016).\n> * Do not print stacktrace when `irods_environment.json` file is not readable (#8083).\n> * GenQuery2: Allow function calls in GROUP-BY clause (#8093).\n> * GenQuery2: Grant users full control over `DISTINCT` keyword (#8261).\n> * GenQuery2: Allow `DISTINCT` keyword in function calls (#8261).\n> * Update help text for `irsync` (#8288).\n> * Optimize query performance when adding metadata (#8392).\n> * Update help text for various iCommands (#8451).\n> * Update feature test macros (#8580).\n> * Invoke `fileNotify` when closing replica (#8586).\n> * Update help text for physical quotas `iadmin` subcommands (#8618).\n> * Make `iadmin` quota GenQuery use the same query conditions (#8622).\n> * Update help text for `itouch` to be more explicit (#8673).\n> * GenQuery2: Expose user type through permission-related columns (#8754).\n> * Declare package dependency on findutils for Enterprise Linux (#8873).\n>\n\n>\n> **Removed**\n>\n> * Remove `-p` option from `iput` and `icp` (#4932).\n> * Remove build hook python script (#8421).\n>\n\n>\n> **Deprecated**\n>\n> * Deprecate `msiDataObjPut` (#8229).\n> * Deprecate `--rlock` and `--wlock` options (#8272).\n> * Deprecate macros for advisory lock API (#8272).\n> * Deprecate osauth scheme (#8301).\n> * Deprecate convenience functions for DNS/Hostname cache configuration properties (#8417).\n> * Deprecate control plane and `irods-grid` (#8479).\n> * Deprecate `iadmin ctime` (#8850).\n> * Deprecate `iadmin mkdir` (#8850).\n> * Deprecate `iadmin rmdir` (#8850).\n> * Deprecate `iadmin ls` (#8850).\n>\n\n>\n> **Fixed**\n>\n> * Stop server from incrementing ticket `write-file` count after reaching limit (#2720).\n> * Return correct error code to client when ticket limit is exceeded (#2720).\n> * Reduce scope of `FILE_PATH_KW` (#4932).\n> * Honor logical locking in registration/unregistration APIs (#5763).\n> * Fix renaming of collections containing multi-byte characters (#6239).\n> * Maintain appropriate permissions for `msiExecCmd_bin` directory on package upgrade (#6671).\n> * Update modification time of replica on open with `O_TRUNC` (#7128).\n> * Fix `ils` page boundary bug involving linkPoint collections (#7712).\n> * Do not create target collections or directories during dry-run of `irsync` (#7774).\n> * Fix use of MySQL `LIMIT` keyword in `update_deprecated_columns.py` (#7833).\n> * Prevent `iinit` from showing native authentication password prompt for non-native authentication schemes (#7948).\n> * Fix memory leaks in delay server (#8254, #8575).\n> * Make GenQuery2 honor group permissions (#8259).\n> * Restore support for `KeyValPair` in Python rule engine plugin (#8265).\n> * Fix `irsync`'s handling of `ALL_KW` when targeting a single data object (#8295).\n> * Check for `nullptr` in data_object_modify_info API (#8307).\n> * Fix memory leak in delay server (#8334).\n> * Fix memory leak in native authentication plugin (#8334).\n> * Fix memory leaks in client libraries handling `rodsPaths` (#8334).\n> * Fix potential memory leak in `resolveRodsTarget` (#8334).\n> * Fix potential `collHandle` memory leaks (#8334).\n> * Fix memory leak in `getUtil` (#8334).\n> * Fix `rodsPath` memory leaks in `iput` and `iget` (#8334).\n> * Limit max value of `maximum_size_for_single_buffer_in_megabytes` for DataObjGet API (#8373).\n> * Guarantee `rodsEnv` strings are null-terminated (#8379).\n> * Improve `irsync`'s handling for checksum errors (#8384).\n> * Update modification time on empty overwrite for copy operation (#8413).\n> * Fix redirect bug of client request from Consumer server to Provider server in GenQuery2 API (#8439).\n> * Unregister replica before unlinking in DataObjUnlink API (#8441).\n> * Replace invalid UTF-8 sequences in log messages (#8498).\n> * Fix GenQuery2's ability to find objects lacking user permissions (#8546).\n> * Fix help text for `igroupadmin` (#8583).\n> * Fix `irsync`'s handling of overwrites and checksums involving stale replicas (#8590).\n> * Fix double-free/corruption by setting free'd pointers to `nullptr` in network plugins (#8593).\n> * Fix zone reports for server-to-server connect errors (#8607).\n> * Remove all existing usage entries when recalculating physical quotas (#8633).\n> * Make `imiscsvrinfo` report an error when connected to a server older than 4.3.4 (#8653).\n> * Return nonzero when grid configuration APIs report an error (#8671).\n> * Make physical quota count the largest overrun (#8691).\n> * Make total quota update only apply to correct `resc_id` (#8699).\n> * Replace spaces with hyphens for agent information (`ips`) (#8733).\n> * Use `OWN` permissions instead of `data_owner_name` when calculating physical quota totals (#8750).\n> * Fix queries for physical quotas so that quotas are properly processed (#8758).\n> * Clear input struct to avoid segmentation fault in `iget` (#8793).\n> * Prevent checksum without status update in replica_close API (#8801).\n> * Fix memory leaks stemming from `clearMsParam` (#8857).\n> * Do not crash delay server when in-memory delay queue buffer is too small (#8859).\n> * Fix memory leaks in iRODS Rule Language (#8864).\n> * Fix stalling of delay rule processing in delay server by removing unnecessary use of pool memory resource (#8868).\n>\n\n>\n> **Added**\n>\n> * Add logical locking bypass keyword (#5763).\n> * Add new error code - `INVALID_INPUT_ARGUMENT_NULL_POINTER` (#8311).\n> * Add new error code - `CONNECTION_REFUSED` (#8377).\n> * Add new error code - `DEPRECATED_AUTHENTICATION_PLUGIN` (#8391).\n> * Serialize `TicketAdminInput` data structure for policy enforcement (#8518).\n>\n\n>\n> Full GitHub commit history for the iRODS server\n> Full GitHub commit history for the iCommands\n\nAlongside the core packages included in 4.3.5, the following plugins have been updated for compatibility:\n\n * irods-authentication-plugin-pam-interactive\n * irods-microservice-plugins-curl\n * irods-resource-plugin-s3\n * irods-rule-engine-plugin-audit-amqp\n * irods-rule-engine-plugin-elasticsearch\n * irods-rule-engine-plugin-indexing\n * irods-rule-engine-plugin-logical-quotas\n * irods-rule-engine-plugin-metadata-guard\n * irods-rule-engine-plugin-python\n * irods-rule-engine-plugin-unified-storage-tiering\n\n",
"title": "iRODS 4.3.5 is released",
"updatedAt": "2026-03-04T02:00:00.000Z"
}