Upgrade error 4.2.11 -> 4.3.2 on Ressource server

67 views
Skip to first unread message

Joerg Steinkamp

unread,
Mar 26, 2024, 7:53:13 AMMar 26
to iRODS-Chat
Dear all,
I started my upgrades on my  iRODS Servers, from 4.2.6 to 4.2.11 everything went fine. However,  I now upgraded from 4.2.11 to 4-3-stable (which is 4.3.2) and on the two oldest servers which started 4.2.4 years ago I get a strange error:

irods@irods-test-01:~$ ./irodsctl start
Traceback (most recent call last):
  File "./scripts/irods_control.py", line 42, in <module>
    wrap_if_necessary()
  File "./scripts/irods_control.py", line 21, in wrap_if_necessary
    with open(irods.paths.server_config_path()) as server_config_path:
FileNotFoundError: [Errno 2] No such file or directory: 'etc/irods/server_config.json'

The "/" in front of etc is missing there. For the two more recent servers, which I initally started with 4.2.6 the upgrade went through smoothly. I just also realized that the file version.json is not in /var/lib/irods, only  version.json.dist  and version.json.previous.

Thanks and knd regards
Jörg

Joerg Steinkamp

unread,
Mar 26, 2024, 10:39:34 AMMar 26
to iRODS-Chat
Something else I just realized: on the "old" servers, the VERSION.json file is upercase, whereas on the newer ones it fully lowercase. May this be the case?

Jörg

Kory Draughn

unread,
Mar 26, 2024, 1:10:56 PMMar 26
to irod...@googlegroups.com
Hi Joerg,

For 4.3, the VERSION.json file was renamed to version.json.

4.3.2 is still in development. Is there a reason you decided to compile 4-3-stable instead of using 4.3.1 as released?

Thanks,

Kory Draughn
Chief Technologist
iRODS Consortium


--
--
The Integrated Rule-Oriented Data System (iRODS) - https://irods.org
 
iROD-Chat: http://groups.google.com/group/iROD-Chat
---
You received this message because you are subscribed to the Google Groups "iRODS-Chat" group.
To unsubscribe from this group and stop receiving emails from it, send an email to irod-chat+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/irod-chat/4d3c1c62-46ea-4b40-8d6b-d354aedce940n%40googlegroups.com.

Joerg Steinkamp

unread,
Mar 27, 2024, 3:32:12 AMMar 27
to iRODS-Chat
Hi Kory,

thanks for your reply. I compile iRODS on my own since I use the clang/llvm shipped with debian. I was wondering why 4-3-stable results in 4.3.2, I expected the 4-3-stable branch to be the latest stable release, but didn't think further about it. Since iRODS is running virtualized, including the DB, I will switch back to the 4.2.11 snapshots and redo the upgrade with 4.3.1. For my next update, do I have to rename (or link) VERSION.json manually to version.json?

Greetings
Jörg

Terrell Russell

unread,
Mar 27, 2024, 7:54:52 AMMar 27
to irod...@googlegroups.com
Hi Joerg,

The upgrade should be handled automatically - you should not need to touch/rename any files... except to preserve some information from 4.1->4.2

The handling of the 4.2->4.3 (including VERSION.json to version.json) is part of #6315:

If you can reproduce the problem you're seeing, please open an issue and we can investigate more.

Terrell




Kory Draughn

unread,
Mar 27, 2024, 1:33:38 PMMar 27
to irod...@googlegroups.com
Joerg,

I second what Terrell said. You should not need to touch any files during an upgrade.

Is there a reason you are compiling from source rather than installing from the packages repository?

If you must compile from source, you need to check out the correct commit. For example, git checkout 4.3.1. Same thing for icommands.
You can use the development environment to build packages too. See https://github.com/irods/irods_development_environment for details/instructions.

Kory Draughn
Chief Technologist
iRODS Consortium

Joerg Steinkamp

unread,
May 15, 2024, 10:46:49 AMMay 15
to iRODS-Chat
Dear Kory and Terrell,

There are two reasons I compile it locally:
1.) I use the llvm-13/clang-13 compiler shipped with Debian
2.) I insert the line " 'SSLmode':'require', " for Postgres in scripts/irods/database_connect.py

My current Debian release is still buster and since this will not be supported anymore in summer, I need to upgrade soon. The databse is a PostgreSQL 11 cluster.

I now switched to the 4.3.1 branch (allthough 4.3.2 got stable in the meantime, which I realized today) and thought the update went through smoothly. However, a colleague now pointed out to me that iinit fails for users with an sql-error:

$ iinit
Enter your current PAM password:
Level 0: Error occurred while authenticating user [USERNAME] [CAT_SQL_ERR: failed to perform request

] [ec=-806000]

If a valid password file is present, everything works fine despite renewing it via iinit. I attached my irods_environemt.json file as well as the the relevant part from the log in which I replaced real values by HOSTNAME, SERVERNAME, USERNAME and CLIENT-IP. May the database not be updated correctly? Or any other idea, what might be gone wrong?

Greetings & a successful UGM next week
Jörg
irods-4-3-1.log
irods_environment.json

Kory Draughn

unread,
May 15, 2024, 3:48:44 PMMay 15
to irod...@googlegroups.com
Joerg,

If you were able to start the server and run ils, things should be fine as far (assuming you used ./irodsctl -v start as the irods service account).
The startup of an iRODS server via irodsctl -v start will apply all upgrades starting from the currently installed version.
That means tweaks to the database schema, config files, etc will be covered.

Re-reading the thread, please explain how your database is managed.
  • Is the data persistent?
  • When you performed the iRODS upgrade, was the database running? This is required by the upgrade process.
  • What steps did you take to perform the upgrade?
Thanks,

Kory Draughn
Chief Technologist
iRODS Consortium

Joerg Steinkamp

unread,
May 16, 2024, 1:45:00 AMMay 16
to iRODS-Chat
Hi Kory,

concerning the database, it is a PostgreSQL-cluster consisting of a leader and two replicas managed via repmgrd. So it is a persistent DB with no caching in between.

The DB was up and running during the upgrade.

Upgrading the packages via "dpkg -i ..." and restarting via systemctl failed. This failed since the env parameter "irods_connection_pool_refresh_time_in_seconds" is missing in my current irods_environment.json file. After fixing that and setting it to 300, I first restarted irods via './irodsctl start' as user irods, but without the '-v' and since that worked I stopped it and restarted it via systemd again.

More details: I have three irods-servers running, one "consumer" and two "provider". Only one of the providers gets the accessible IP-address, and the other one takes over if the first fails. This is managed via keepalived. Before upgrading I stoped all the irods-services and started upgrading the first provider, then the second and the consumer was the last.

Greeting
Jörg

Alan King

unread,
Jun 10, 2024, 12:12:23 PMJun 10
to irod...@googlegroups.com
Hi Joerg,

iRODS 4.3.2 has been released. Have you tried an upgrade to the officially released to see if things work any better? Or, if you prefer to build your own packages, have you tried building the 4.3.2 git tag?



--
Alan King
Senior Software Developer | iRODS Consortium
Reply all
Reply to author
Forward
0 new messages