The Resource logo

The Resource

Archives
Subscribe
January 30, 2023

The January 2023 Edition of The Resource

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

News

A late one this month, so with more brevity than usual, apologies.

Paid Remote internships!

​Announcement It used to be that it had to be US based, might not be true? Do ask them if interested…

iRODS Development Update - December 2022

​Full update.* So* last year… ;-)

Python iRODS Client Release v1.1.6

Version 1.1.6 is released. Changelog​

​Changed from 1.1.5 (shows the changes to README as well)

Main Repository Activity

Open Issues

​Consider deprecation of acAclPolicy{msiAclPolicy(‘STANDARD’);} (strictACL as a knob)​

The default is changing to have ACL policy stop browsing collections unless the user has the appropriate permissions.

​How to use spLogSql​

This can be very useful if you don’t have the expertise or access to see the queries from the database side, so this issues clarifies how to turn it on (warning; it’s quite verbose!), as the existing docs have a couple of interpretations.

​iinit truncates password from stdin (pam_password)​

​iRODS must not allow non-admins to delete delay rules created via policy​

​Getting parsing and SSL connection errors with the logical quota plugin configured if there is unspecified rule instance call​

​Rule engine framework should stop if the rule execution returns a success?​

​Only the first item in catalog_provider_hosts the list is considered in negotiation key determination​

Having multiple ones considered would make HA easier, for certain. Or perhaps more complex!

​iput/iget across federation fails when federation negotiation_key does not match local zone negotiation_key​

What a bug! If you use Federation, it is worth being aware of this, when upgrading. I saw it in 4.2.11, and it wasn’t present in 4.2.7, so probably 4.2.9 or later?

​Opening a data object for write will not write to an existing copy if it is on a non-default resource​

​allow itree options specifying multiple match/ignore patterns​

​itree –pattern and –ignore should mimic “tree” command more closely​

I have to say, I don’t use tree in much more depth than the basics, so was interested to learn some additional options.

New access levels

Theses are introduced in the 4.3 code but not fully rolled out yet as I understand this, so if more complex ACLs are of interest, keep an eye on issues like these. That being said, I’m just going to leave them here, rather than go into them in depth. Let me know if you’d rather I went into detail on every issue, no matter its status, though.

​Cannot delete objects with the delete_object access level​

​Role of the create_object access level for data objects?​

​Cannot create objects inside a collection with the create_object access level​

Closed Issues

Closed on - 2023-01-04 21:36:58 Allow changes to myOutStruct pointer to be seen following call to sendAndProcApiReply()​

Closed on - 2023-01-04 21:37:57 Add missing elements for sql log category​

Closed on - 2023-01-04 21:38:21 Remove logic for log_level from startup script​

I don’t quite follow this issue, I think it’s saying that the setup script will fill in any missing defaults, so the exception is not needed here?

Closed on - 2023-01-11 16:19:28 msiSetDefaultResc / acSetRescSchemeForCreate no longer force Resource write when incorrect resource given​

In >= 4.2.9, if you specify a resource on the command line that doesn’t exist when uploading, the defaults will not redirect you to the default resource.

I presume therefore that if you don’t provide a resource, the default is still honoured.

Closed on - 2023-01-03 13:05:34 Error when calling msiDataObjChksum from acPostProcForFilePathReg​

 in 4.2.9, with the work done to unify many of the codepaths and provide logical locking - the registration for both 'large' AND 'small' files now happens prior to data being written to disk - as a placeholder for the locking to have a thing to hold.
In 4.2.8 and before, registration-before-data-on-disk would have only happened for 'large' files that triggered parallel transfer (default, >32MB).
Please try pep_api_phy_path_reg_post() instead

Closed on - 2022-12-22 21:09:46 Possible segmentation fault.​

Targetted for a 4.2.12 fix.

Depending on the version of the compiler and standard libraries, int freeL1desc_struct(l1desc& _l1desc) may cause segmentation fault.
It will be caused by the call _l1desc.replica_token.clear();
The root of the problems lies in the use of an object of type string initialized via memset in int initL1desc().

Closed on - 2022-12-20 15:16:55 Add support for admin mode to rx_atomic_apply_acl_operations()​

This would allow admins to bypass permissions and modify ACLs on other users's collections and data objects.

Closed on - 2022-12-19 17:13:39 rodsadmin should not be allowed to downgrade user type of another rodsadmin operating an irods-server​

I wonder what happens if a server is down when the poll happens? One assumes that the account wouldn’t get flagged. It also makes me wonder how the account is picked up - via izone report, perhaps? I am thinking of edge cases where say a zone might have two Providers, but as neither provider has any resources, it would only pick up the provider the check was run on and any consumers? The issue is closed now, and I don’t want to reactivate it for idle speculation!

Closed on - 2022-12-19 17:13:32 rodsadmin can downgrade their own user type​

See above!

Closed on - 2023-01-05 22:26:37 iquest not like operator not working for DATA_RESC_HIER​

4.2.12 target as 4.3 uses flex/bison instead. Spot the errant banana…

Closed on - 2022-12-23 22:23:05 write ticket for collection does not allow upload of new data objects​

To clarify ... in 4.2.6, using iput and specifying (via the -t ticketstring option) a write ticket on coll A :
may be used to force-overwrite an existing data object directly in that collection
may be used to create a new data object (of whatever name) directly in that collection
may not be used to write into data objects within A's subcollections (whether pre-existing or not)
What the above mentioned commit 6ed2c6f loses us in the above list is the second (2) capability.

Closed on - 2022-12-19 18:59:54 After iexit full with PAM, icommands ask for Native irods password.​

Fixed in 4.3.0, left as wont fix for 4.2.12

The issue appears to be that iinit is super special in how it handles different authentication schemes with respect to clientLogin. As @trel mentioned back in 2017, clientLogin can be adjusted to handle this case for all iCommands. The logic for determining whether to "override" the authentication scheme from the environment would need to be ported to clientLogin. I do not know at this time how this interaction will play out for other authentication plugins (e.g. OpenID).

Closed on - 2023-01-11 16:43:58 core.re cache not updating after rapid sequential changes to core.re​

Targetted for 4.2.12

Python iRODS Client Activity

Open Issues

​irods.access.iRODAccess.codes not well-ordered in Python2​

​Show iRODS Permission Model - List Access Levels​

A number of the ACL issues in the main repo are also referred to here, with the same caveats.

Closed Issues

Closed on - 2023-01-12 20:09:24 raise error in testing if server is more recent than advertised IRODS_VERSION​

irods.message.IRODS_VERSION is the highest version of iRODS for which the PRC advertises compatibility. This variable is used in the generation of the StartupPack message.
By raising an error condition when the test suite is run if the server is more recent than what IRODS_VERSION variable indicates appropriate, we can ensure a reminder to update the variable.

Closed on - 2022-10-18 17:41:59 Rule execution with a file with null input throws an error -1201000​

Closed on - 2023-01-12 18:15:29 Expose err no code in string representation of an irods.exception​

Hurrah, for more helpful logs!

Closed on - 2023-01-04 16:12:12 iRODSResource needs access to its parent resource’s name​

Alternatively we just make a free function in the Python library that computes a resc hierarchy string given an iRODSResource object. This makes it clearer to library users that retrieving the hierarchy string is not an iRODS innate capability, but rather a client computation of complexity O(Depth)

As the issue also mentions, once computed it’s always possible it’s out of date, so you and throw away, unless you know you’re not moving resources around a lot?

Closed on - 2022-12-19 17:59:21 DataObjectManager.open() ignores DEST_RESC_HIER_KW​

As of PRC version 0.8.5 , a data object open( ) call respected DEST_RESC_NAME_KW but ignored DEST_RESC_HIER_STR_KW, so that low-level open( ) calls from within parallel put were opening replicas on the default resource , even if a different resource was being targeted by the put request.

NFSRODS Activity

Open Issues

​SNAPSHOT reference in 2.1.0 pom​

in tagged version 2.1.0 the pom contains a reference to 4.3.2.5-SNAPSHOT of Jargon.
Shouldn't tagged versions always reference RELEASE? ...
That is the intent - but 4.3.2.5-RELEASE was not available at the time. If this is important for your organization / policy, please let us know and we can prioritize accordingly.

YODA Activity

Open Issues

​[BUG] Removing all Contributor or Identifier blocks generates a confusing Validation warning​

The metadata form should either disallow removing all Contributor or Identifier "blocks" in the form or silently add an empty block on saving.

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

Two Yaks were shaved in the making of this newsletter. There were more waiting, but I ran out of TUIT’s

Don't miss what's next. Subscribe to The Resource:
Powered by Buttondown, the easiest way to start and grow your newsletter.