New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Attempting to upgrade a resource server from 4.1.12 to 4.2.X fails in a composite tree #4612
Comments
AIUI In particular, currently it deletes resources on any action other than "upgrade"; instead it needs to handle at least More detail on the packaging flows is available here: |
Also, what is actually needed here is Replaces: and Conflicts (see section 7.6.2 of https://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces ) rather than Breaks: but my comments on what prerm needs to handle remain roughly the same. |
We have reproduced this issue on Ubuntu 14.04. Note: Best practice is to stop running iRODS servers before upgrading which will work in this scenario with no code changes. However... When upgrading an operational server (icat or resource) from 4.1.x to 4.2.x on Ubuntu:
This works regardless of the presence of resource hierarchies. |
Upgrading a stopped irods-resource fails in the same way as upgrading a running irods-resource. I think you'd have to stop the IES (provider) for it to not delete the resources (but I don't know if the script would then succeed) Lines 73 to 168 in 8e71ad5
purge , not remove (see man dpkg for the difference between --remove and --purge)
|
|
I don't understand your claim...
Is the service account @mcv21 Agreed - which is why the 4.2 scripts don't attempt any resource removal. |
The irods_host was pointed to the icat, because irods_host is only used when acting as a client (per https://docs.irods.org/4.2.6/system_overview/configuration/), and clients should talk to an icat, not directly to a resource. If this should always be localhost, could that be documented please? Setting it to localhost does make the stop start approach work. |
Generally, and by default, the service account on a resource server is wired to connect to its own server. This was the way we reproduced the work above. Yes, clients can connect to any iRODS server, and they'll redirect their auth over to the catalog provider. Regardless, replacing the |
This is, to my knowledge, undocumented, at least in the iRODS docs. |
Agreed - will rectify. Marking this as a documentation issue for 4.2.x. |
...and is one of the things packaging systems are meant to take care of! |
This really isn't just a documentation issue; could it be reopened in the mean time? |
Also, could the |
Okay - will reopen and put in the 4.2.8 milestone.
Note: The 4.1 |
i thought this seemed familiar... #4307 thoughts on that approach? a script to manipulate the hosts themselves? |
Perhaps better to move that discussion to that issue, but for me, I can see this breaking the principle of least surprise for an administrator. I'm also not sure how the scripts get on without installing the package, which will trigger the uninstall of the 4.1.x packages, and so still alarming for the admin, unless I have misunderstood something? |
Oops, moving this back to 4.2.8. |
The script was attempting to cleanup the iRODS catalog of any iRODS resources resident on this to-be-removed catalog consumer server. Any cleanup should be performed by a rodsadmin at a later time. Removing this code in service of the 'Principle of Least Surprise'.
The script was attempting to cleanup the iRODS catalog of any iRODS resources resident on this to-be-removed catalog consumer server. Any cleanup should be performed by a rodsadmin at a later time. Removing this code in service of the 'Principle of Least Surprise'.
The script was attempting to cleanup the iRODS catalog of any iRODS resources resident on this to-be-removed catalog consumer server. Any cleanup should be performed by a rodsadmin at a later time. Removing this code in service of the 'Principle of Least Surprise'.
The script was attempting to cleanup the iRODS catalog of any iRODS resources resident on this to-be-removed catalog consumer server. Any cleanup should be performed by a rodsadmin at a later time. Removing this code in service of the 'Principle of Least Surprise'.
Bug Report
iRODS Version, OS and Version
4.1.12 -> 4.2.6, Ubuntu Xenial
What did you try to do?
install irods-server on a host which had irods-resource=4.1.12 installed and has composite resources
Expected behavior
irods-resource's preremove.sh is not run, as the irods-server package replaces it
Observed behavior (including steps to reproduce, if applicable)
irods-resource's preremove.sh is run, so irods attempts to delete the resources, and when it inevitably fails, sends an error to dpkg, which then stops the install process, so irods-server is not installed
The text was updated successfully, but these errors were encountered: