perfsonar / oppd

On-demand measurement point daemon
Apache License 2.0
0 stars 0 forks source link

3.5 rpm install issue #3

Closed daldoyle closed 9 years ago

daldoyle commented 9 years ago

When installing the 3.5-0.0.a1.pSPS RPM I got the following error:

Error in PREUN scriptlet in rpm package perl-perfSONAR-OPPD-MP-server /var/tmp/rpm-tmp.veW9Jb: line 5: syntax error: unexpected end of file error: %preun(perl-perfSONAR-OPPD-MP-server-3.4-1.pSPS.noarch) scriptlet failed, exit status 2

This was coming as an upgrade from 3.4.2 to 3.5-0 on CentOS6.

Also later during the verification step I see: perl-perfSONAR-OPPD-MP-server-3.4-1.pSPS.noarch was supposed to be removed but is not!

Upon further inspection it appears like something got wedged in the install process. Both version 3.4 and 3.5 are installed on the system now according to rpm -qa.

rpm -qa | grep perl-perfSONAR | grep -i oppd-mp-server

perl-perfSONAR-OPPD-MP-server-3.5-0.0.a1.pSPS.noarch perl-perfSONAR-OPPD-MP-server-3.4-1.pSPS.noarch

HakanCalimFau commented 9 years ago

OK it seems that package is not updated. Will check why the package is not updated.

Am 25.06.2015 20:41, schrieb Antoine Delvaux:

Assigned #3 https://github.com/perfsonar/oppd/issues/3 to @HakanCalimFau https://github.com/HakanCalimFau.

— Reply to this email directly or view it on GitHub https://github.com/perfsonar/oppd/issues/3#event-340376522.

HakanCalimFau commented 9 years ago

Check a upgrade from 3.4.2 to new 3.5 rpm package. There was no error. Maybe the problem is on upgrade from 3.4.1 to 3.5 like Dan reporting above.

laeti-tia commented 9 years ago

Hakan just reported me that this is actually an syntax error in the 3.4-1 package. I'm unsure if we can issue a correction on this one or if we have to force a removal.

Hakan, can you check that on Monday when you're back?

laeti-tia commented 9 years ago

So it seems this is not solvable for anyone that has 3.4-1 installed. This package needs to be forced removed manually, it's not possible to remove it with yum.

We'll probably need to add a note to the 3.5 release explaining that, if people are upgrading.

HakanCalimFau commented 9 years ago

Today I discuss this problem with Ivan. He gives me a great idea! The idea is that 3.5 has a conflict with 3.4.1. I will do this today and check whats happen. Maybe this solves the problem.

HakanCalimFau commented 9 years ago

Conflict tag does not solve the problem because a upgrade removes the 3.4-1 package no conflict exist. At the moment I found only this solution:

  1. Check if 3.4-1 package is installed.
  2. if yes trigger an alert and inform user about problem and suggest manually remove of the package.
  3. user remove package manually.
  4. start upgrade again.

Here is a output of yum upgrade process what user see: Is this ok [y/N]: j Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Error in PREIN scriptlet in rpm package perl-perfSONAR-OPPD-MP-server-3.5-0.0.a1.pSPS.noarch !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! It seems you previously had the perl-perfSONAR-OPPD-MP-server-3.4-1 package installed which contains a small packaging problem. To avoid any unnecessary warnings in the future, you need to remove this package manually with the command: rpm -e --nopreun perl-perfSONAR-OPPD-MP-server-3.4-1.pSPS.noarch After manual remove of the package start installation or upgrade again. error: %pre(perl-perfSONAR-OPPD-MP-server-3.5-0.0.a1.pSPS.noarch) scriptlet failed, exit status 1 error: install: %pre scriptlet failed (2), skipping perl-perfSONAR-OPPD-MP-server-3.5-0.0.a1.pSPS Verifying : perl-perfSONAR-OPPD-MP-server-3.5-0.0.a1.pSPS.noarch 1/2 perl-perfSONAR-OPPD-MP-server-3.4-1.pSPS.noarch was supposed to be removed but is not! Verifying : perl-perfSONAR-OPPD-MP-server-3.4-1.pSPS.noarch 2/2

Failed: perl-perfSONAR-OPPD-MP-server.noarch 0:3.4-1.pSPS perl-perfSONAR-OPPD-MP-server.noarch 0:3.5-0.0.a1.pSPS

Complete!

igarny commented 9 years ago

Yes we discussed it with Hakan about the package conflict and the error state. What I suggest for you is to consider is a similar approach pS toolkit uses to deal with post-installation procedures.

[test-rhps02 ~]$ cat /opt/perfsonar_ps/toolkit/scripts/system_environment/upgrade_apache

!/bin/bash

#######################

Upgrade apache from the previous version (e.g. to make sure 'psadmin' stuff

is in there and whatnot.

####################### if [ "$1" == "upgrade" ]; then /opt/perfsonar_ps/toolkit/scripts/upgrade/upgrade_apache_admin fi

I am suggesting that though without being sure it is possible to instruct the yum processor to perform another task while running. If not then there was another approach perfSONAR toolkit used to convert the database from PSBUOY to Esmond. It was an init script that is run every time the system boots and then just stop. Please prepare the script, so that disables itself immediately after successful execution.

Best regards, Ivan

laeti-tia commented 9 years ago

Hakan had tested with doing the removal in another script, but this is not possible to do any RPM work while yum is running as the RPM DB is locked.

The solution of the init script might help, but at 2 conditions:

Also this solution needs a reboot of the machine or a service start, which is not necessarily what happens when you're upgrading OPPD. All in all, Hakan suggested solution is not that bad and is the cleanest. I'd suggest to keep it and clearly mention this in the 3.5 release notes.

HakanCalimFau commented 9 years ago

OK. If there are no problems / failure with the text I will commit this solution.