Zypper segmentation fault

Hello,

I’ve run out of ideas and ask for some help.

Running zypper ref segfaults. The last time I ran zypper ref successfully was on 02 Jan 2012. Since that time I have not changed repos nor installed anything.

To narrow down the case I’ve disabled all non-standard repositories.

Running zypper -v ref:

Verbosity: 1
Initializing Target
Specified repositories: 
Skipping disabled repository 'Mono with rolling updates'
Skipping disabled repository 'Zend Server'
Skipping disabled repository 'Zend 5.0.4 noarch'
Skipping disabled repository 'Zend 5.0.4 x86_64'
Skipping disabled repository 'Zend Server - noarch'
Skipping disabled repository 'arduino'
Skipping disabled repository 'cross-avr'
Skipping disabled repository 'esmska'
Skipping disabled repository 'Libdvdcss 12.1'
Skipping disabled repository 'nvidia-12.1'
Skipping disabled repository 'packman-essentials'
Checking whether to refresh metadata for repo-12.1-non-oss
[1]    13537 segmentation fault  zypper -v ref

Running rpm -qf $(ldd /usr/bin/zypper | awk ‘{print $3}’ | grep lib) | sort -u:

cyrus-sasl-2.1.23-20.1.2.x86_64
glibc-2.14.1-14.14.1.x86_64
krb5-1.9.1-24.3.1.x86_64
libacl1-2.2.51-4.1.4.x86_64
libattr1-2.4.46-5.1.5.x86_64
libaugeas0-0.9.0-4.1.2.x86_64
libbz2-1-1.0.6-14.1.4.x86_64
libcap2-2.22-2.1.4.x86_64
libcares2-1.7.5-10.1.2.x86_64
libcom_err2-1.41.14-10.1.2.x86_64
libcurl4-7.22.0-2.1.3.x86_64
libelf1-0.152-6.1.3.x86_64
libexpat1-2.0.1-109.1.4.x86_64
libgcc46-4.6.2_20111026-1.1.4.x86_64
libidn-1.22-7.1.2.x86_64
libkeyutils1-1.5.3-2.1.2.x86_64
libldap-2_4-2-2.4.26-3.1.2.x86_64
liblua5_1-5.1.4-21.1.3.x86_64
liblzma5-5.0.3-8.1.4.x86_64
libmodman1-2.0.1-6.1.3.x86_64
libncurses5-5.8-5.1.4.x86_64
libopenssl1_0_0-1.0.0e-34.1.2.x86_64
libpopt0-1.16-9.7.5.x86_64
libproxy1-0.4.7-7.1.3.x86_64
libreadline6-6.2-1.8.1.x86_64
libselinux1-2.0.91-14.1.12.x86_64
libssh2-1-1.2.9-7.1.3.x86_64
libstdc++46-4.6.2_20111026-1.1.4.x86_64
libudev0-173-3.3.1.x86_64
libxml2-2.7.8+git20110708-3.1.2.x86_64
libzypp-10.3.5-1.7.2.x86_64
rpm-4.9.1.2-1.5.x86_64
zlib-1.2.5_git201105272030-20.1.4.x86_64

Running cat /etc/SuSE-release:

openSUSE 12.1 (x86_64)
VERSION = 12.1
CODENAME = Asparagus

Running zypper --no-refresh search works as expected.

Any help?

Thanks

Pavel

Please, your output of “zypper lr -d”. Also, did you try to rebuild the rpm database?

rpm --rebuilddb : no chanage

zypper lr -d

#  | Alias               | Name                      | Enabled | Refresh | Priority | Type   | URI                                                                          | Service
---+---------------------+---------------------------+---------+---------+----------+--------+------------------------------------------------------------------------------+--------
 1 | Mono-Tumbleweed     | Mono with rolling updates | No      | No      |   99     | rpm-md | http://download.opensuse.org/repositories/Mono:/Cleanup/openSUSE_Tumbleweed/ |        
 2 | Zend                | Zend Server               | No      | No      |   99     | rpm-md | http://repos.zend.com/zend-server/sles/ZendServer-x86_64                     |        
 3 | Zend_5.0.4_noarch_1 | Zend 5.0.4 noarch         | No      | No      |   99     | rpm-md | http://repos-source.zend.com/zend-server/5.0.4_hotfix/sles/ZendServer-noarch |        
 4 | Zend_5.0.4_x86_64_1 | Zend 5.0.4 x86_64         | No      | No      |   99     | rpm-md | http://repos-source.zend.com/zend-server/5.0.4_hotfix/sles/ZendServer-x86_64 |        
 5 | Zend_noarch         | Zend Server - noarch      | No      | No      |   99     | rpm-md | http://repos.zend.com/zend-server/sles/ZendServer-noarch                     |        
 6 | arduino             | arduino                   | No      | No      |   99     | rpm-md | http://download.opensuse.org/repositories/home:/kwk:/arduino/openSUSE_11.4   |        
 7 | cross-avr           | cross-avr                 | No      | No      |   99     | rpm-md | http://download.opensuse.org/repositories/CrossToolchain:/avr/openSUSE_11.4  |        
 8 | esmska              | esmska                    | No      | No      |   99     | rpm-md | http://download.opensuse.org/repositories/Java:/esmska/common/               |        
 9 | libdvdcss-11.4      | Libdvdcss 12.1            | No      | No      |   99     | rpm-md | http://opensuse-guide.org/repo/12.1/                                         |        
10 | nvidia-12.1         | nvidia-12.1               | No      | No      |   99     | rpm-md | ftp://download.nvidia.com/opensuse/12.1/                                     |        
11 | packman-essentials  | packman-essentials        | No      | No      |   99     | rpm-md | http://packman.inode.at/suse/openSUSE_12.1/Essentials                        |        
12 | repo-12.1-non-oss   | repo-12.1-non-oss         | Yes     | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/12.1/repo/non-oss/                 |        
13 | repo-12.1-oss       | repo-12.1-oss             | No      | Yes     |   99     | yast2  | http://10.2.3.6/suse/i386/12.1/                                              |        
14 | repo-12.1-update    | repo-12.1-update          | No      | Yes     |   99     | rpm-md | http://10.2.3.6/suse/i386/update/12.1/                                       |

I’ve got only one official repo enabled (non-oss) to make things easier. The oss and update repos are mirrored from download.opensuse.org.

I’ve also manually downloaded all rpms from the output of

rpm -qf $(ldd /usr/bin/zypper | awk '{print $3}' | grep lib)

and reinstalled them using

rpm -ivh --force *.rpm

… no change

I’ve got only one official repo enabled (non-oss)

I think that the minimum requirements are oss and update.

Try something like:
rpm -e libzypp zypper
rpm -Uvh http://10.2.3.6/suse/i386/update/12.1/i586/zypper-*rpm
rpm -Uvh http://10.2.3.6/suse/i386/update/12.1/i586/libzypp-*rpm

Thanks for advice but trying to remove libzypp and zypper as suggested (rpm -e libzypp zypper) gives a dependency error:

error: Failed dependencies:
        libzypp.so.1003()(64bit) is needed by (installed) PackageKit-0.6.19-2.6.3.x86_64
        libzypp.so.1003()(64bit) is needed by (installed) libqdialogsolver1-1.3.0-12.1.3.x86_64
        libzypp.so.1003()(64bit) is needed by (installed) yast2-ncurses-pkg-2.21.2-1.1.2.x86_64
        libzypp.so.1003()(64bit) is needed by (installed) yast2-qt-pkg-2.21.13-1.2.x86_64
        libzypp.so.1003()(64bit) is needed by (installed) yast2-pkg-bindings-2.21.11-2.1.3.x86_64
        libzypp >= 10.3.1-2.2 is needed by (installed) libqdialogsolver1-1.3.0-12.1.3.x86_64
        libzypp >= 7.4.0 is needed by (installed) yast2-ncurses-pkg-2.21.2-1.1.2.x86_64
        libzypp >= 7.4.0 is needed by (installed) yast2-qt-pkg-2.21.13-1.2.x86_64
        libzypp >= 6.6.0 is needed by (installed) yast2-pkg-bindings-2.21.11-2.1.3.x86_64
        zypper >= 0.12.6 is needed by (installed) suseRegister-1.4-13.1.3.noarch
        zypper is needed by (installed) libksuseinstall1-4.7.2-5.2.2.x86_64

So I did

rpm -e --nodeps libzypp zypper

Do you mean: try 32bit version of libzypp and zypper?

Not if it’s a 64bit system. I just guessed from the only enabled repository URL. Because I was guessing I said “something like”, leaving you to modify accordingly.

Understood. I’ve installed libzyp and zypper again (64bit) and segfault still remains.

Any idea what to do now?

I found /var/cache/zypp and /var/cache/zypper (the latter one seems to be pretty old). I moved them away to “clear cache”. When running “zypper -v ref” the output is the same but the last line which now says:

Retrieving repository 'repo-12.1-non-oss' metadata \][1]    27670 segmentation fault  zypper -v ref

Could the problem be in the downloading part of zypper? I’m behind proxy if it matters.

On 01/04/2012 05:06 PM, pahlo wrote:
> I’m behind proxy if it matters.

http://www.google.dk/search?q=yast+proxy+site%3Aopensuse.org


DD http://tinyurl.com/DD-Caveat
openSUSE®, the “German Engineered Automobiles” of operating systems!

Thanks, but proxy is configured properly in yast. Everything worked correctly until Jun 02 2012.

The problem seems to be in libproxy. When running wget from behind a proxy and http_proxy variable is defined, everything works. But when running wget from beheind a proxy and http_proxy variable is NOT defined, it segfaults:

asking libproxy about url 'http://whatever/'
[1]    6323 segmentation fault  wget http://whatever/

I reinstalled libproxy1 and also its dependencies: glibc, libgcc. Still the segfault appears. I’ve run out of ideas, I’m going to reinstall the box.

I did a clean install from our mirror. Everything went OK until running “you” which upgraded zypper. During upgrade: segfault as before.

On 01/05/2012 10:36 AM, pahlo wrote:
> I’ve run out of ideas, I’m going to reinstall the
> box.

if you have not yet reinstalled (or if you have and find the same
problem before you add all of those repos again) then at the first
green screen during boot, press F5 and select systemv (instead of
systemd) and see if that has an impact on your problem…

note: i always suggest following the excellent advice found in the
paragraph beginning with “IMPORTANT” here http://tinyurl.com/33qc9vu

and, as your needs require other repos be drawn from, just be aware
that it is possible to update your system with conflicting packages
until all sorts of little problems pop up…

there is nothing inherently wrong with having hundreds of repos
available…the problem comes when one has a huge group enabled,
refreshed and then run “zypper up” or “zypper dup” (either of which is
kinda like putting in one bullet, spinning the cylinder, taking careful
aim at your own foot and pressing enter!)

ymmv


DD http://tinyurl.com/DD-Caveat
openSUSE®, the “German Engineered Automobiles” of operating systems!

On 01/05/2012 11:46 AM, pahlo wrote:
>
> I did a clean install from our mirror. Everything went OK until running
> “you” which upgraded zypper. During upgrade: segfault as before.

very strange!

perhaps you have discovered a bug in
zypper-1.6.18-5.8.1.x86_64.rpm

perhaps you can go back to the previous
zypper-1.6.16-5.3.1.x86_64.rpm

which i found here:
http://mirror1.hs-esslingen.de/pub/Mirrors/ftp.opensuse.org/distribution/12.1/repo/oss/suse/x86_64/zypper-1.6.16-5.3.1.x86_64.rpm

there is a way to do that with YaST but, i’m not sure about how to do
that…

in any case i do believe you should log the apparent bug you have found,
here: http://tinyurl.com/nzhq7j

(first step is searching to see if the bug already exists…if it does,
add your hardware info to it…i guess…)


DD http://tinyurl.com/DD-Caveat
openSUSE®, the “German Engineered Automobiles” of operating systems!

It seems I’m not the first one:

https://bugzilla.novell.com/show_bug.cgi?id=739069

The problem is in NO_PROXY in /etc/sysconfig/proxy. If it contains network definition like 10.0.0.0/8, the segfault appears. Once the network definition is removed, the segfault disappears.

On 01/05/2012 02:06 PM, pahlo wrote:

> https://bugzilla.novell.com/show_bug.cgi?id=739069

AH! great find…dang but i’m sorry you went to all the reinstall
trouble, i guess i should’a mentioned bugzilla earlier…


DD http://tinyurl.com/DD-Caveat
openSUSE®, the “German Engineered Automobiles” of operating systems!

pahlo wrote:
> It seems I’m not the first one:
>
> https://bugzilla.novell.com/show_bug.cgi?id=739069
>
> The problem is in NO_PROXY in /etc/sysconfig/proxy. If it contains
> network definition like 10.0.0.0/8, the segfault appears. Once the
> network definition is removed, the segfault disappears.

Are you the person who posted comment #1? If not, I suggest you add a
“me too” posting with your segfault and system details. The more people
report it, the sooner it might get fixed.

On 2012-01-05 14:06, pahlo wrote:
>
> It seems I’m not the first one:
>
> https://bugzilla.novell.com/show_bug.cgi?id=739069
>
> The problem is in NO_PROXY in /etc/sysconfig/proxy. If it contains
> network definition like 10.0.0.0/8, the segfault appears. Once the
> network definition is removed, the segfault disappears.

A segfault is always a programming error, thus a bug somewhere.

You must add a “meetoo” to the bugzilla report, it is very important.
CRUCIAL, in fact. You are guilty if you don’t fill it.


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)