Re: [arch-general] race condition when upgrading the new ncurses package
I had these messages for the readline update in question, too. I think it's just natural that if ncurses is a dep of readline and readline is a dep of bash, that bash would link the ncurses.so it was built against. During the update, readline's post-upgrade install-snippet can't be run with bash, because bash links it and its own dependency ncurses, which, as a dependency, is already upgraded to provide the newest version. To have a fully up to date info directory, it appears, the install-info updates that are attempted for readline need to be executed by hand after running pacman -Syu. All this is obvious if you look at the install file you should have in /var/abs/*/readline/ and basic knowledge about how archlinux packages work. In fact, I guess it's sort of a logical requirement to using archlinux to catch these things, because, as is denoted in the wiki, partial updates are unsupported [0] and your system forcefully goes through partially updated state during an update... cheers! mar77i [0] https://wiki.archlinux.org/index.php/Pacman#Partial_upgrades_are_unsupported
Pardon me for being dumb (excuse: it's late), I don't know anymore what it is I didn't get 50 minutes ago :)
On Tue, 15 Sep 2015 23:50:49 +0200, Martti Kühne wrote:
In fact, I guess it's sort of a logical requirement to using archlinux to catch these things, because, as is denoted in the wiki, partial updates are unsupported [0] and your system forcefully goes through partially updated state during an update...
Hi, is there anything speaking against making such updates more comfortable? Since the login shell is affected, it's not a simple chicken-and-egg problem an Arch user usually expects to happen. Providing a transition package including libncursesw.so.5 might cause to much work, but why not at least mentioning it by the news on https://www.archlinux.org/ ? It seemingly wasn't a serious issue for the OP and it neither hits me between the eyes, however, a user might have a bad day and doesn't notice it, especially if it's not mentioned by the news. Btw. thank you Damjan for the heads up :). My workaround was to mv -i the libs [1]. Btw. packages from AUR are affected too. 2 cents, Ralf [1] [rocketmouse@archlinux ~]$ ls -hog /usr/lib/*ncurs* -rw-r--r-- 1 18 Sep 15 05:47 /usr/lib/libncurses.so -rw-r--r-- 1 20 Sep 15 05:47 /usr/lib/libncurses++.so lrwxrwxrwx 1 17 Apr 22 18:03 /usr/lib/libncurses.so.5 -> libncurses.so.5.9 -rwxr-xr-x 1 342K Dec 6 2014 /usr/lib/libncurses.so.5.9 lrwxrwxrwx 1 18 Sep 15 05:47 /usr/lib/libncurses++w.so -> libncurses++w.so.6 lrwxrwxrwx 1 16 Sep 15 05:47 /usr/lib/libncursesw.so -> libncursesw.so.6 lrwxrwxrwx 1 18 Apr 22 18:05 /usr/lib/libncursesw.so.5 -> libncursesw.so.5.9 -rwxr-xr-x 1 402K Dec 6 2014 /usr/lib/libncursesw.so.5.9 lrwxrwxrwx 1 20 Sep 15 05:47 /usr/lib/libncurses++w.so.6 -> libncurses++w.so.6.0 lrwxrwxrwx 1 18 Sep 15 05:47 /usr/lib/libncursesw.so.6 -> libncursesw.so.6.0 -rwxr-xr-x 1 76K Sep 15 05:47 /usr/lib/libncurses++w.so.6.0 -rwxr-xr-x 1 435K Sep 15 05:47 /usr/lib/libncursesw.so.6.0
On 09/18/2015 12:46 PM, Ralf Mardorf wrote:
Hi,
is there anything speaking against making such updates more comfortable?
Since the login shell is affected, it's not a simple chicken-and-egg problem an Arch user usually expects to happen.
Providing a transition package including libncursesw.so.5 might cause to much work, but why not at least mentioning it by the news on https://www.archlinux.org/ ?
It seemingly wasn't a serious issue for the OP and it neither hits me between the eyes, however, a user might have a bad day and doesn't notice it, especially if it's not mentioned by the news.
Btw. thank you Damjan for the heads up :).
My workaround was to mv -i the libs [1]. Btw. packages from AUR are affected too.
2 cents, Ralf
I don't think the login shell was affected, just an error when the post_upgrade function failed to call install-info. Your login shell should be reloaded when you log back in. As for AUR packages, if they need to link against ncurses then they need to be rebuilt. Leave a comment on those packages that they should receive a pkgrel bump so they are rebuilt against ncurses 6.0 Just like all the corresponding packages in the main repos. -- Eli Schwartz
On Fri, 18 Sep 2015 13:04:34 -0400, Eli Schwartz wrote:
I don't think the login shell was affected, just an error when the post_upgrade function failed to call install-info.
Your login shell should be reloaded when you log back in.
No, since I read the mail of the OP before the update was available here, I tested it, because I was curious, since nothing was mentioned by the news. After installing gptfdisk and readline, there was no way to login or to systemd-nspawn from another install. I needed to mv back the old ncurses libs, before I could continue.
As for AUR packages, if they need to link against ncurses then they need to be rebuilt. Leave a comment on those packages that they should receive a pkgrel bump so they are rebuilt against ncurses 6.0
I will do so, assumed I've got time to do it, unfortunately not today. I removed the version 5 libs from my install, so soon or later something I'm using might be affected. I just run pacman -Qi ncurses and noticed that at least one package that is installed is affected, but I'm not using it at the moment: [rocketmouse@archlinux ~]$ packages mutt-sidebar Repositories aur/mutt-sidebar 1.5.24-1 [installed] (Out of Date) (115) Small but very powerful text-based mail client aur/mutt-sidebar-hg r6486.0d346dc8dccb-1 (1) A small but very powerful text-based mail client Installed local/mutt-sidebar 1.5.24-1 Small but very powerful text-based mail client There might be other packages too, but I've got no time at the moment to check all of them. mutt-sidebar already is flagged. "packages" is a script ;), just the output "(Out of Date)" matters. Regards, Ralf
On Fri, 18 Sep 2015 19:29:33 +0200, I wrote without thinking:
No, since I read the mail of the OP before the update was available here, I tested it, because I was curious, since nothing was mentioned by the news. After installing gptfdisk and readline, there was no way to login or to systemd-nspawn from another install. I needed to mv back the old ncurses libs, before I could continue.
Ok, I notice the weak point of my argumentation. I enforced a situation that unlikely happens when running an update, instead of installing packages individually.
On Fri, 18 Sep 2015 19:53:50 +0200, Ralf Mardorf wrote:
On Fri, 18 Sep 2015 19:29:33 +0200, I wrote without thinking:
No, since I read the mail of the OP before the update was available here, I tested it, because I was curious, since nothing was mentioned by the news. After installing gptfdisk and readline, there was no way to login or to systemd-nspawn from another install. I needed to mv back the old ncurses libs, before I could continue.
Ok, I notice the weak point of my argumentation. I enforced a situation that unlikely happens when running an update, instead of installing packages individually.
However, installing just a few packages instead of all packages needs to be done, if the Internet connection get interrupted too often to make a complete upgrade in one step. So a note by the Arch news IMO still is useful.
Hi On Sat, Sep 19, 2015 at 5:24 PM, Ralf Mardorf <ralf.mardorf@rocketmail.com> wrote:
However, installing just a few packages instead of all packages needs to be done, if the Internet connection get interrupted too often to make a complete upgrade in one step. So a note by the Arch news IMO still is useful.
Pacman downloads all packages before installing any of them. So if you have a bad Internet connection then you'll be stuck at the first (download) step. It will not leave your system in broken state.
On Sat, 19 Sep 2015 17:28:58 +0800, Anatol Pomozov wrote:
Hi
On Sat, Sep 19, 2015 at 5:24 PM, Ralf Mardorf <ralf.mardorf@rocketmail.com> wrote:
However, installing just a few packages instead of all packages needs to be done, if the Internet connection get interrupted too often to make a complete upgrade in one step. So a note by the Arch news IMO still is useful.
Pacman downloads all packages before installing any of them. So if you have a bad Internet connection then you'll be stuck at the first (download) step. It will not leave your system in broken state.
Yes, that's true, but I don't know when my ISP will fix the issue. Last time they needed several month to fix it, so I needed to update by installing just a few packages. It's also correct that this time I could install bash, readline, ncurses and few other packages in one step and the other > 100 packages one after the other. Anyway, one still needs to be aware about a chicken-and-egg problem. Interrupted Internet connections are not that seldom nowadays in Germany, https://allestörungen.de/, e.g. my provider: https://allestörungen.de/stoerung/o2 It might be not that much of an issue in other countries.
On 19-09-2015 10:53, Ralf Mardorf wrote:
On Sat, 19 Sep 2015 17:28:58 +0800, Anatol Pomozov wrote:
Hi
On Sat, Sep 19, 2015 at 5:24 PM, Ralf Mardorf <ralf.mardorf@rocketmail.com> wrote:
However, installing just a few packages instead of all packages needs to be done, if the Internet connection get interrupted too often to make a complete upgrade in one step. So a note by the Arch news IMO still is useful.
Pacman downloads all packages before installing any of them. So if you have a bad Internet connection then you'll be stuck at the first (download) step. It will not leave your system in broken state.
Yes, that's true, but I don't know when my ISP will fix the issue. Last time they needed several month to fix it, so I needed to update by installing just a few packages. It's also correct that this time I could install bash, readline, ncurses and few other packages in one step and the other > 100 packages one after the other. Anyway, one still needs to be aware about a chicken-and-egg problem. Interrupted Internet connections are not that seldom nowadays in Germany, https://allestörungen.de/, e.g. my provider: https://allestörungen.de/stoerung/o2 It might be not that much of an issue in other countries.
You can always do 'pacman -Syuw' until you manage to download all the packages. -- Mauro Santos
On Sat, 19 Sep 2015 11:16:11 +0100, Mauro Santos wrote:
You can always do 'pacman -Syuw' until you manage to download all the packages.
A pacman -Syu will do the same as a pacman -Syuw when it can't download all packages ;). However, a user perhaps wants to update a few packages that are important for development or regarding security issues and might try to update other packages some days later, then Syu(w) isn't an option. IMO we don't need to discuss this, likely most Arch users don't suffer from bad Internet connections. Even if others should have bad Internet connections too, it seldom happens that the dependency issue for something important as the login shell happens. Regards, Ralf
A pacman -Syu will do the same as a pacman -Syuw when it can't download all packages ;). However, a user perhaps wants to update a few packages that are important for development or regarding security issues and might try to update other packages some days later, then Syu(w) isn't an option.
You are _not_ supposed to do partial upgrades! Archlinux does _not_ support that!!! Whenever you do a sync (-Sy) you have (!!!) to update the whole system. So either -S to install or -Syu to update! Doing anything else should not be advocated. Some people on the irc would go furious if they find about that! Download all packages then install them. I wonder where in Germany you are that you don't have a good connection.... It might be slow, but you should have internet basically all the time....
On Sat, 19 Sep 2015 13:54:10 +0200, Simon Hanna wrote:
I wonder where in Germany you are that you don't have a good connection.... It might be slow, but you should have internet basically all the time....
It's a little bit too off-topic. I want to mention that this update didn't really cause an issue here, I'm just talking about contingencies, but indeed I often can't avoid to make a complete update by doing partial upgrades. For me it's ok if there's no hint by the news, if there happens such a dependency update, my intention was just to mention that users not necessarily are ignorant, but the circumstances are not equal all over the world. IOW we don't need to continue this discussion. Now the answer to your question In the middle of the Ruhrgebiet (I'm living in Oberhausen) there usually is a good Internet infrastructure. However, you can chose a good provider, chose a fast DSL connection with a money back warranty and after a few month there's a company take-over, then you switch to another provider and the same happens after a few month again. The Internet connection becomes that slow that pacman stops downloading and the ISP offends the general business terms, no money back. The Bundesregierung is aware about the bad state of affairs [1] but nothing happened in the last years. I often have less than 1 bit/second for more than 10 seconds announced by pacman, when it stops downloading packages. I had fast speed ADSL for years too, it depends to the company that temporarily owns the ISP. It's not the infrastructure regarding cables etc., it depends to company policies and the politics that ISPs don't need to care about German laws, their own business terms. https://allestörungen.de/ shows that this is a common issue even in big cities, areas of high population density, with a theoretically good Internet infrastructure. [1] Unfortunately in German: http://www.spiegel.de/netzwelt/web/schmalband-deutschland-warum-unser-intern...
On 09/19/2015 06:28 AM, Ralf Mardorf wrote:
On Sat, 19 Sep 2015 11:16:11 +0100, Mauro Santos wrote:
You can always do 'pacman -Syuw' until you manage to download all the packages.
A pacman -Syu will do the same as a pacman -Syuw when it can't download all packages ;). However, a user perhaps wants to update a few packages that are important for development or regarding security issues and might try to update other packages some days later, then Syu(w) isn't an option. IMO we don't need to discuss this, likely most Arch users don't suffer from bad Internet connections. Even if others should have bad Internet connections too, it seldom happens that the dependency issue for something important as the login shell happens.
Regards, Ralf
Have you considered using delta[1] packages? They're at their best when in a situation like yours, where the time+cpu patching and recompressing the packages is significantly less than the time trying to download hundreds of megabytes over a lousy connection. [1] https://wiki.archlinux.org/index.php/Deltup -- Eli Schwartz
On Sat, 19 Sep 2015 21:28:44 -0400, Eli Schwartz wrote:
Thank you, I wasn't aware of this option, so I will test it. The mirrorlist doesn't provide additional delta repositories.
On Sat, 19 Sep 2015 12:28:28 +0200 Ralf Mardorf <ralf.mardorf@rocketmail.com> wrote:
However, a user perhaps wants to update a few packages that are important for development or regarding security issues and might try to update other packages some days later, then Syu(w) isn't an option.
That is an unsupported partial update. If you do that, you're on your own. Doug
Pacman downloads all packages before installing any of them. So if you have a bad Internet connection then you'll be stuck at the first (download) step. It will not leave your system in broken state.
That's true. However, I broke my system pretty badly with this update. I must have refreshed my package cache but not updated my system. Probably with an aborted `pacman -Syu`. Not realising the impact it would have, I later ran `pacman -S rtorrent`. This happily downloaded and installed the new ncurses library, but not any of the other updated packages. Anyway, this broke bash, zsh, xterm, gpgme, vim and more. I had to turn off the PGP signature validation in pacman (without vi or vim) and make sure not to close my working xterm and zsh sessions. It was a pretty tense half-hour working it all out and restoring my system. I got it sorted out in the end but I wouldn't be suprised if someone else experiences something similar.
Btw. on my install 152 packages from official repositories needed an upgrade. I read what packages will be upgraded and I care about the news on the Arch homepage, but if that many packages will be upgraded and nothing is mentioned on the homepage, I easily will miss a few packages that could cause issues. Perhaps the only reason that this update didn't cause trouble for me was, that there was the mail from Damjan Georgievski, three days ago, on 15 Sep 2015 20:53:55 +0200 and the subject sounds scary, so I read it already three days ago, while the upgrade was available today. Maybe I just had good luck ;).
participants (9)
-
Anatol Pomozov
-
Doug Newgard
-
Dylan Scott
-
Eli Schwartz
-
Martti Kühne
-
Mauro Santos
-
Neven Sajko
-
Ralf Mardorf
-
Simon Hanna