{
  "$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"
}