Specified repository does not exist: http://repo.percona.com/ps/

Description

When running apt upgrade on a server where a percona mysql instance is already installed, we started receiving the following error last night.

Specified repository does not exist: http://repo.percona.com/ps/ dpkg: error processing package percona-release (--configure): installed percona-release package post-installation script subprocess returned error exit status 2 Errors were encountered while processing: percona-release E: Sub-process /usr/bin/dpkg returned an error code (1)

Has http://repo.percona.com/ps/ been taken offline by accident or should we use another repository?

Environment

None

Activity

Show:

iO July 4, 2024 at 10:33 AM

Just installed the new release, works. Thanks for the very swift fix!

Evgeniy Patlan July 4, 2024 at 10:13 AM

hey
Thanks for the report!
The issue is fixed with new 1.0-29 release. So just update percona-release package to a new version

iO July 4, 2024 at 8:54 AM

You can install the patch on a broken system like this:

patch /var/lib/dpkg/info/percona-release.postinst < percona-release.postinst.patch apt-get install -f

That should put your apt in a happy state again. Not sure though what will happen when the next update is there…

iO July 4, 2024 at 8:50 AM

Here’s a patch that solves the issue. It will check to see if third_part is a valid component and try the next part until it either finds a valid component, or reaches the end.

--- postinst 2024-07-02 11:37:04.000000000 +0200 +++ postinst2 2024-07-04 10:44:29.985722475 +0200 @@ -4,6 +4,7 @@ # see: dh_installdeb(1) SUPRESSOR="> /dev/null 2>&1" OLDREPOFILE="/etc/apt/sources.list.d/percona-release.list" +COMPONENTS="release testing experimental" if [ "${PERCONA_DEBUG}" = "1" ]; then set -x @@ -38,8 +39,15 @@ IFS='-' read -r -a parts <<< "$filename" if [[ ${#parts[@]} -ge 3 ]]; then second_word=${parts[1]} - third_word=${parts[2]} - third_word=${third_word%.*} + for ((i=2; i<${#parts[@]}; i++)); do + third_word=${parts[i]} + third_word=${third_word%.*} + if [[ $COMPONENTS =~ (^|[[:space:]])$third_word($|[[:space:]]) ]]; then + break + else + second_word+="-$third_word" + fi + done percona-release enable-silent "$second_word" "$third_word" fi fi

iO July 4, 2024 at 7:54 AM

There’s a problem with parsing the enabled releases based on the filenames in the /etc/apt/sources.list.d/ folder.

This logic was introduced last week in https://github.com/percona/percona-repositories/commit/e1cf699dcf7ca81243a82c2464b24acc7f49f78a#diff-07d737ae9e7c01ab762d8a72a71242a0a682da4782c56abf1d9037d679a8cdaf by , line 34 of deb/debian/postinst

The file percona-prel-release.list will result in a call to check_repo_availability enable-silent prel release. But the file percona-ps-80-release.list will result in a call to check_repo_availability enable-silent ps 80 instead of ps-80 release. This will make it check the wrong repository URL, resulting in the failure.

Done

Details

Assignee

Reporter

Needs QA

Yes

Components

Priority

Smart Checklist

Created July 4, 2024 at 6:33 AM
Updated October 1, 2024 at 7:36 AM
Resolved October 1, 2024 at 7:36 AM

Flag notifications