LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware - ARM (https://www.linuxquestions.org/questions/slackware-arm-108/)
-   -   Login error after upgrade of -current (https://www.linuxquestions.org/questions/slackware-arm-108/login-error-after-upgrade-of-current-4175562326/)

slacksam 12-25-2015 04:05 AM

Login error after upgrade of -current
 
2 Attachment(s)
Hi,
yesterday I made an upgrade of Slackware-ARM-current on my RPi 2 and now I'm not able to login anymore.

When trying to log in, I get the error message
Code:

loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_COLLATE) / sizeof (_nl_value_type_LC_COLLATE[0]))' failed.
For the upgrade I made (as root)
Code:

slackpkg update
slackpkg upgrade-all

The change in the logfile /var/lib/slackpkg/install.log is only one line:
Code:

2015/12/24 23:09:50 upgraded:    glibc-solibs-2.22-arm-5.txz  [slackware]  (was glibc-solibs-2.22-arm-5)
The logs of the startup process contained in /var/log/syslog and /var/log/messages are attached to this post.

How can I fix that (without reinstalling the system)?

drmozes 12-25-2015 07:36 AM

Quote:

Originally Posted by slacksam (Post 5468736)
Hi,
yesterday I made an upgrade of Slackware-ARM-current on my RPi 2 and now I'm not able to login anymore.

When trying to log in, I get the error message
Code:

loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_COLLATE) / sizeof (_nl_value_type_LC_COLLATE[0]))' failed.
For the upgrade I made (as root)
Code:

slackpkg update
slackpkg upgrade-all

The change in the logfile /var/lib/slackpkg/install.log is only one line:
Code:

2015/12/24 23:09:50 upgraded:    glibc-solibs-2.22-arm-5.txz  [slackware]  (was glibc-solibs-2.22-arm-5)
The logs of the startup process contained in /var/log/syslog and /var/log/messages are attached to this post.

How can I fix that (without reinstalling the system)?

I have not seen this before, but from using google it appears that it's because your locale data is from an older version of glibc to the one installed.
I don't understand why slackpkg reports that it upgraded glibc-solibs to the same version as what was already present, but I don't use slackpkg so maybe that's normal or I don't understand the report.

You'd need to boot the installer and mount your file system, then look at which versions of glibc are installed in /var/log/packages; then use upgradepkg to fix it.

I don't use slackpkg but I have never had an issue using upgradepkg as the packages are built -- indeed that's how each batch of updates is generally done. However, it may be that your $LC_COLLATE is set differently to mine : mine is the default "C".

slacksam 12-25-2015 08:39 AM

Hi Stuart,
thanks for your helpful reply.

Quote:

[...] then use upgradepkg to fix it.
On my RPi 1 with Slackware ARM 14.1 I can mount the partition of the SD card from my RPi 2 (with the broken -current system).

When I mount it to /mnt and do
Code:

ls /mnt/var/log/packages/glibc*
then I get
Code:

/mnt/var/log/packages/glibc-2.22-arm-4
/mnt/var/log/packages/glibc-i18n-2.22-arm-4
/mnt/var/log/packages/glibc-profile-2.22-arm-4
/mnt/var/log/packages/glibc-solibs-2.22-arm-4-upgraded-2015-12-24,23:09:43
/mnt/var/log/packages/glibc-solibs-2.22-arm-5
/mnt/var/log/packages/glibc-zoneinfo-2015g-noarch-4

But chroot doesn't work due to the error message on login. :(
Is it possible to do an upgradepkg without chroot?

[Edit]Oh, and how do I check my $LC_COLLATE variable without chroot?
[Edit 2] My $LC_COLLATE is C

Drakeo 12-25-2015 10:15 AM

Yes this happen to me during an upgrade on one of the systems I am writing a script for users to upgrade with. And seems that mirror I was using was not up to date. It borked the system.
sorry to say you went through what I went through. I noticed multilib is not up to date with current with the compat32. I use the UK mirror so I just did it all manually.
That system was borked. I you may want to chroot install over it. I tried but again endless loop of login type and logs you out. I am glad it was only a test system that got borked. Hang in there.
I should have used my local repos but had no clue current was going to catch me off guard.

drmozes 12-25-2015 12:25 PM

Quote:

Originally Posted by Drakeo (Post 5468821)
Yes this happen to me during an upgrade on one of the systems I am writing a script for users to upgrade with. And seems that mirror I was using was not up to date. It borked the system.
sorry to say you went through what I went through. I noticed multilib is not up to date with current with the compat32. I use the UK mirror so I just did it all manually.
That system was borked. I you may want to chroot install over it. I tried but again endless loop of login type and logs you out. I am glad it was only a test system that got borked. Hang in there.
I should have used my local repos but had no clue current was going to catch me off guard.

I'm not sure that this would be near the correct answer and multilib does not exist on ARM.

drmozes 12-25-2015 01:32 PM

Quote:

Originally Posted by slacksam (Post 5468797)

But chroot doesn't work due to the error message on login. :(
Is it possible to do an upgradepkg without chroot?

You don't need to chroot into it.

mount the file system as you have, and do this

ROOT=/path/to/thefilesystem upgradepkg /path/to/glibc-2.22*z

e.g. if you mounted the filesystem of -current under /mnt/hd, and had the glibc packages in /tmp on your 14.1 machine:

ROOT=/mnt/hd upgradepkg /tmp/glibc-2.22*z

Give that a go. If that doesn't work, then it may be something going weird with the patches I applied to the -5 build -- but as I said, it didn't break on any of my systems and I have quite a lot of them ;-)

lems 12-26-2015 03:49 AM

Just wanted to say I ran into this as well. I first upgraded glibc-solibs, and then the above message appeared, making upgradepkg unusable. I fixed it by running `LC_ALL=C upgradepkg ...' and updated the other glibc packages (as well as pkgtools and aaa_elflibs). I did not run into this on my x86 and x86_64 machines. On my other Raspberry Pi, I did not experience this either; there, I started the upgrade with LC_ALL=C upgradepkg right away and first upgraded glibc, aaa_elflibs and pkgtools in one go before upgrading anything else. I was lucky to have mksh installed as my default shell, since bash was broken due to this; mksh was not affected, and allowed me to login.

slacksam 12-26-2015 04:38 AM

Quote:

Originally Posted by drmozes
ROOT=/mnt/hd upgradepkg /tmp/glibc-2.22*z

Worked! :)

Stuart, thanks very much!

Next time I'll do an upgrade of glibc first.

enine 12-29-2015 05:22 PM

Quote:

Originally Posted by drmozes (Post 5468871)
You don't need to chroot into it.

mount the file system as you have, and do this

ROOT=/path/to/thefilesystem upgradepkg /path/to/glibc-2.22*z

e.g. if you mounted the filesystem of -current under /mnt/hd, and had the glibc packages in /tmp on your 14.1 machine:

ROOT=/mnt/hd upgradepkg /tmp/glibc-2.22*z

Give that a go. If that doesn't work, then it may be something going weird with the patches I applied to the -5 build -- but as I said, it didn't break on any of my systems and I have quite a lot of them ;-)


Mine won't upgrade package, says its already installed.

bassmadrigal 01-08-2016 07:19 AM

Quote:

Originally Posted by enine (Post 5470594)
Mine won't upgrade package, says its already installed.

Sorry for the late reply, but if you haven't figured it out yet, add --reinstall to the command.

Code:

ROOT=/mnt/hd upgradepkg --reinstall /tmp/glibc-2.22*z


All times are GMT -5. The time now is 05:43 PM.