The Resource for October 2023


Your monthly iRODS developments

The Resource

Hello Reader, here is this month’s iRODS news and developments!


News

iRODS 4.3.1 is released!

release announcement

This release represents a steady improvement on 4.3.0's significant release last year. Most significantly, the memory leaks introduced with the new frameworks in 4.3.0 have been fixed alongside internal refactoring. Additionally, three new operating systems are now supported by our binary packaging.

Detached mode has been added to the unixfilesystem plugin which provides superior performance when working with parallel filesystems.

Additional machinery has been made available to control TCP Keepalive behavior, ticket administration, connection pooling, and authentication configuration.

Big news and congratulations to the developers!

A few issues I’ve picked out from the list below to prepare for if you are looking at upgrading;

  • (Add log_level for sql to server_config.json file )[https://github.com/irods/irods/issues/7393]
  • (the service account environment requires irods_connection_pool_refresh_time_in_seconds to be set)[https://github.com/irods/irods/issues/7392]

iRODS Python Client Library v1.1.9 is released

v1.1.9

  • [#471][#472] allow save, load, and autoload of configuration [Daniel Moore]
  • [#456] auto-close data objects that go out of scope [Daniel Moore]
  • [#455] remove ticket check [Daniel Moore]
  • [#452] implement client redirection to resource server [Daniel Moore]
  • [#455] introduce low level ticket api changes [Daniel Moore]
  • [#234] Implement case-insensitive queries [Sietse Snel]

Especially interested to see the config loading section - will reduce boilerplate code!

iRODS Development Update - October 2023

Too much to summarise - go read it!


Main Repository Activity

Open Issues

Registering collection results in errors in logs

After upgrade to iRODS 4.3.1 there are warnings about sql logging in the logfiles

iRODS 4.3.1 fails to start after upgrade because of missing required parameter in service account environment

irods_performance2.pdf hyperlink in https://irods.org/faq/ cannot be found

add documentation for writeLine()

msiDataObjCopy not triggering any pep

No PEP is fired for sub items by recursive ACL change

pep_*_get_grid_configuration_value_* not available in documentation

iadmin mkgroup doesnt fail when more than its expected positional options provided

Setup script does not work for Postgres 15

irule does not return error codes for PREP (sometimes?)

iadmin rmuser and iadmin rmgroup can function for each other

ibun commands seems not triggering any pep?

irsync with -s option from i: to i: registers checksum

imeta doesnt contain the client name/identifier - spOption

Parallel transfer (high ports) can result in garbage when servers use mismatch TLS/SSL configurations

Ensure irods-dev pulls in proper curl-dev dependencies

Proposal: .9x versioning for main branch

This seems a great idea; do take a look if you work with compiling from source

At present, we increment the version number of the main branch to that of the next major release once it has diverged significantly from the current stable series branch. This means that the major release itself may not have a higher version number than a development build from the same branch from before the release. This poses a problem for packaging, as it may not result in a release taking priority over an older development build. In our stable series branches, we avoid this by incrementing version numbers just before release.

I am proposing that instead of incrementing to the next major release on significant divergence from stable, we follow the example set by Gnome and increment to a minor release with a value of .90 (ex: 4.3.90) and increment to the next major version just before release.

With this change to our versioning, downstream projects being developed side-by-side with iRODS will still have a version number to target, but we will not run into the version number precedent issue described above.

This change also comes with some additional benefits:

If a downstream project that inherits iRODS' version number is built against the main branch rather than a release, it will be evident in the version number.
When a user reports an issue with iRODS (or a downstream project that inherits iRODS' version number), we can tell from the version number whether they are using a development build from the main branch.

Proposal: even/odd versioning

Related to the above

At present, we increment version numbers in project repositories just before a release. This is a good practice and we should keep doing this, as it ensures that a release version number will always be greater than one from a development build from after the previous release but before the release in question.
However, this also presents the challenge to downstream projects that are developed side-by-side with iRODS: How to detect that the version of iRODS being used or built against is a development version. In my opinion, it should not be up to the developer to tell the buildsystem what version of iRODS it is actually building against, nor should it be up to iRODS users to tell clients that the version reported by the iRODS server should be taken with a grain of salt.

I am proposing that we change how we handle version numbers for iRODS to resemble the even/odd pattern used by many other software projects: we will continue to increment the iRODS version number just before a release, but we will also increment the version number again post-release.

Closed Issues

Closed on - 2023-10-16 13:49:02 istream read/write doesn’t trigger pep_api_data_obj_open_*

Closed on - 2023-10-06 14:40:14 Has GenQuery of data objects changed between 4.3.0 and 4.3.1 ?

Closed on - 2023-10-05 12:48:45 Uploading an existing object with -f to a group collection after inheritance set on cannot be listed by group users

Closed on - 2023-09-29 21:31:35 Remove GSI from Pluggable Authentication documentation

Closed on - 2023-09-29 21:31:26 Remove Kerberos from Pluggable Authentication documentation

Closed on - 2023-09-28 15:08:08 Connection pool must check size parameter before use

Closed on - 2023-09-20 21:24:36 Add EL version to RPM package version strings

Closed on - 2023-08-29 15:43:42 NO_NEXT_RESC_FOUND when uploading data object using PRC if resource has minimum free space set

Who wouldn’t be using ‘Minimum Space For Resource in Bytes’ if you have a unixfilesystem type resource! It’s a literal best practice mentioned in the documentation!

After re-reading the issue a few times, this was the pertinent section;

So the necessary conditions appear to be both using Python-irodsclient and setting minimum_free_space_for_create_in_bytes on unixfilesystem resources.

I think that this affects all versions of iRODS before 4.3.1 but was introduced at least after 4.2.7 (since I’ve been able to use the PRC on a 4.2.7 system but not tried the most recent PRC version). It would be excellent to know;

  1. what version this got introduced in.
  2. If the version of the PRC is related (i.e. can you use an earlier one? I think not, but…)
  3. If other APIs (e.g. C) are affected.

Note that stsnel has a workaround, but that involves using another system to monitor the free space and check that first, which… yay that they had this but most Zones won’t.

Trel does mention that

The workaround for using Python is to set the filesize to 0 when talking to a pre-4.3.1 iRODS server.

However, the documentation for the PRC doesn’t mention this, and it is not clear to me what effect setting the file size will have on other operations that might depend on it (e.g. it might try and create a file on a resource without sufficient space, or fail to recognise a partial upload?)

Closed on - 2023-10-02 16:54:21 Move pam_password configuration to R_GRID_CONFIGURATION

Closed on - 2023-09-29 20:57:37 add API like GET_HOST_FOR_* but exposing resource hierarchy

Closed on - 2023-08-03 21:36:41 Upgrades from 4.3.0 result in chown error

Closed on - 2023-09-29 13:28:43 Add support for AlmaLinux 9 and Rocky Linux 9

Closed on - 2023-08-15 17:43:48 msiCollRsync produces stacktrace, but works as expected

Closed on - 2023-10-02 02:44:27 iput cannot create a new object with a ticket

Closed on - 2022-12-15 21:11:38 Rename base64_encode and base64_decode

Closed on - 2023-10-02 18:04:54 Ubuntu 22.04 Version Support

Closed on - 2023-04-14 18:40:18 Replica in cache marked good after stage-to-cache returns an error

Closed on - 2023-10-25 18:35:35 irule –test, -t does not enable test mode

Closed on - 2023-10-25 19:31:32 Can’t execute a long python rule by irule

Closed on - 2023-10-04 13:48:08 Cannot enact data object parallel transfers via a ticket.

Closed on - 2023-10-25 15:52:01 unixodbc version too old for postgres12

Closed on - 2023-10-05 18:11:09 iput fails uploading large file

Hmm. I agree It’s hard to reproduce but by closing the ticket without a positive test and therefore knowing its working, It’s hard to know if we can continue to use that combination of commands.

Closed on - 2023-09-30 02:41:09 NOT IN syntax support in GenQuery

Closed on - 2023-09-30 01:33:56 minor bug report – iinit usage w/ GSI authentication

Python iRODS Client Activity

Open Issues

Eliminate all python2 compatibility concerns from the codebase

Add quota management capability (a la iadmin sgq)

Put() and get() for collection

add Quota model

Investigate support for creating proxy connections

Closed Issues

Closed on - 2023-10-13 19:47:03 In Python2, #471’s settings autoload prints cryptic message if settings file is missing

Closed on - 2023-10-13 19:46:48 Allow loading and saving of library configuration

Closed on - 2023-10-13 19:46:33 data objects should properly finalize

Closed on - 2023-10-13 18:53:53 tickets supply( )’d to session are not mapped to individual connections

Closed on - 2023-10-13 18:53:27 PUT and GET should transfer data directly to/from the resource server

NFSRODS Activity

Open Issues

Investigate ways to improve performance of InodeToPathMapper class

Permissions do not map correctly to 10 level permission model in iRODS 4.3.0

Closed Issues

Closed on - 2023-10-24 21:36:32 Avoid unnecessary stat in middle of list operation

Closed on - 2023-10-24 21:38:32 Investigate inconsistencies in tests

Closed on - 2023-10-02 23:32:12 Build fails after most recent OpenJDK 17.0.7 update

Closed on - 2023-10-24 18:55:37 SNAPSHOT reference in 2.1.0 pom

Closed on - 2022-10-12 17:24:41 Building nfsrods in an automation fails

Closed on - 2023-08-24 17:10:19 make NFSRODS report via spOption

Hurrah! This should make ips reporting more obvious.

Closed on - 2023-10-13 15:21:53 provide graceful IP-to-user mapping configuration to allow ‘root’ access in VM

If you are thinking of this, check out the note where Terrell explains how this can be done via NFS already.

Closed on - 2023-09-29 19:41:05 restarting NFSRODS without re-mounting at the client produces incorrect behavior

icommands Activity

Closed Issues

Closed on - 2023-10-23 15:21:35 Usage of get_grid_configuration and set_grid_configuration not clear

externals Activity

Open Issues

Ensure avro has proper RUNPATH/RPATH

Closed Issues

Closed on - 2023-10-09 16:38:10 Remove pistache

YODA Activity

Open Issues

[FEATURE] Dynamically extend JSON metadata

Closed Issues

Closed on - 2023-10-11 10:02:48 [FEATURE] Do not allow open licenses when Access is set to Restricted or Closed


If you think someone else would appreciate this newsletter, they can sign up at https://theresource.metadata.school/

Just one Yak was shaved in the making of this newsletter.

113 Cherry St #92768, Seattle, WA 98104-2205
Unsubscribe · Preferences

Metadata School

Read more from Metadata School
snakes in 2025

Your monthly iRODS developments The Resource Image showing text with 'welcome to 2025' and snakes Hi everybody! Like many other newsletters or companies you might have forgotten you had subscribed to, The Resource wishes you a Happy New Year and much successful data management in 2025! Yes, before you ask, the fact you're getting this at all means that the newsletter, which has been on hiatus, whilst, amongst other things, I moved house. Now that that's over with, I'm looking to resurrect the...

Your monthly iRODS developments The Resource Hello Reader, here is this month’s iRODS news and developments! News Two months off - oops! The ‘holiday’ season somewhat derailed me (should you meet me in person, ask me about the three c calamities) - lets see if I can pick it up for the new year! Fediverse? Does anyone know of any iRODS resources on Mastodon / the Fediverse? With Twitter increasingly hard to use and arguably unpleasant, I’ve seen a lot of technical communities move over to...

Your monthly iRODS developments The Resource Hello Reader, here is this month’s iRODS news and developments! News No news this month? I am sure I missed something, but Twitter has been quiet, and RENCI don’t have a Mastodon account (that I know of!). Even the iRODS-Chat mailing list has been quiet. Main Repository Activity Open Issues Delay microservices should accept not valid msis/inexistent rules? Add support for units with iinit --ttl Investigate how to determine when a client-side...