Bug ID 1191324
Summary zypper very slow with limits.conf set to -1
Classification openSUSE
Product openSUSE Distribution
Version Leap 15.3
Hardware x86-64
OS openSUSE Leap 15.3
Status NEW
Severity Normal
Priority P5 - None
Component Basesystem
Assignee screening-team-bugs@suse.de
Reporter jon.brightwell@zpg.co.uk
QA Contact qa-bugs@suse.de
Found By ---
Blocker ---

Zypper appears to try to access a lot of FDs based on the rlimit. This causes
it to be extremely slow on VMs.

zypper 1.14.46

Set /etc/security/limits.conf
root    soft    nofile  -1
root    hard    nofile  -1


**With -1:
#time zypper --help
real    0m14.304s
user    0m9.528s
sys    0m4.682s

#time zypper remove -y dstat
real    1m42.602s
user    1m6.997s
sys    0m32.590s


**With 6000:
#time zypper --help
real    0m0.097s
user    0m0.069s
sys    0m0.020s

#time zypper remove -y dstat 
real    0m0.958s
user    0m0.574s
sys    0m0.293s


**With 6000000:
#time zypper --help
real    0m3.150s
user    0m1.973s
sys    0m1.151s

#time zypper remove -y dstat 
real    0m27.201s
user    0m17.880s
sys    0m9.075s


#strace -f -i /tmp/strace.log zypper help

Here's a snippet that looks like it's trying to close all FDs...
8198  close(5999)                       = -1 EBADF (Bad file descriptor)
8198  close(5998)                       = -1 EBADF (Bad file descriptor)
8198  close(5997)                       = -1 EBADF (Bad file descriptor)
8198  close(5996)                       = -1 EBADF (Bad file descriptor)
8198  close(5995)                       = -1 EBADF (Bad file descriptor)
8198  close(5994)                       = -1 EBADF (Bad file descriptor)
8198  close(5993)                       = -1 EBADF (Bad file descriptor)
8198  close(5992)                       = -1 EBADF (Bad file descriptor)
8198  close(5991)                       = -1 EBADF (Bad file descriptor)
8198  close(5990)                       = -1 EBADF (Bad file descriptor)
8198  close(5989)                       = -1 EBADF (Bad file descriptor)
8198  close(5988)                       = -1 EBADF (Bad file descriptor)
8198  close(5987)                       = -1 EBADF (Bad file descriptor)
8198  close(5986)                       = -1 EBADF (Bad file descriptor)
8198  close(5985)                       = -1 EBADF (Bad file descriptor)
8198  close(5984)                       = -1 EBADF (Bad file descriptor)
8198  close(5983)                       = -1 EBADF (Bad file descriptor)
8198  close(5982)                       = -1 EBADF (Bad file descriptor)
8198  close(5981)                       = -1 EBADF (Bad file descriptor)
8198  close(5980)                       = -1 EBADF (Bad file descriptor)
8198  close(5979)                       = -1 EBADF (Bad file descriptor)
8198  close(5978)                       = -1 EBADF (Bad file descriptor)
8198  close(5977)                       = -1 EBADF (Bad file descriptor)
8198  close(5976)                       = -1 EBADF (Bad file descriptor)


You are receiving this mail because: