[Swan-dev] pluto running out of memory on testing.libreswan.org; nss?
Andrew Cagney
andrew.cagney at gmail.com
Thu Dec 13 22:19:46 UTC 2018
(do not try this at home)
Something, in the current set of updates for fedora 28 is causing
pluto to run out of memory
- on testing.libreswan.org, and after a suspicious pause, mprotect()
failed with ENOMEM
- having upgraded a local VM, I'm now seeing it locally - but killed by OOM.
Given the list of things upgraded and the backtrace, my prime suspect
is nss :-) See below.
--
If you really want to try this at home; then this is a sketch for what
to do to downgrade:
$ make kvm-uninstall # deletes all domains bar clone
$ make kvmsh-clone # domain won't actually print 'clone#'
clone# dnf downgrade nss # or dnf upgrade nss
clone# poweroff
$ make kvm-install ...
--
Installed:
openssl-pkcs11.x86_64 0.4.8-2.fc28
Upgraded:
cpp.x86_64 8.2.1-5.fc28
elfutils.x86_64 0.174-5.fc28
elfutils-libelf.x86_64 0.174-5.fc28
elfutils-libelf-devel.x86_64 0.174-5.fc28
elfutils-libs.x86_64 0.174-5.fc28
gcc.x86_64 8.2.1-5.fc28
gcc-gdb-plugin.x86_64 8.2.1-5.fc28
git.x86_64 2.17.2-2.fc28
git-core.x86_64 2.17.2-2.fc28
git-core-doc.noarch 2.17.2-2.fc28
glibc.x86_64 2.27-35.fc28
glibc-all-langpacks.x86_64 2.27-35.fc28
glibc-common.x86_64 2.27-35.fc28
glibc-devel.x86_64 2.27-35.fc28
glibc-headers.x86_64 2.27-35.fc28
libcurl.x86_64 7.59.0-9.fc28
libcurl-devel.x86_64 7.59.0-9.fc28
libgcc.x86_64 8.2.1-5.fc28
libgomp.x86_64 8.2.1-5.fc28
libssh.x86_64 0.8.5-1.fc28
nsd.x86_64 4.1.24-2.fc28
nss.x86_64 3.40.1-1.0.fc28
nss-devel.x86_64 3.40.1-1.0.fc28
nss-softokn.x86_64 3.40.1-1.0.fc28
nss-softokn-devel.x86_64 3.40.1-1.0.fc28
nss-softokn-freebl.x86_64 3.40.1-1.0.fc28
nss-softokn-freebl-devel.x86_64 3.40.1-1.0.fc28
nss-sysinit.x86_64 3.40.1-1.0.fc28
nss-tools.x86_64 3.40.1-1.0.fc28
nss-util.x86_64 3.40.1-1.0.fc28
nss-util-devel.x86_64 3.40.1-1.0.fc28
openssl.x86_64 1:1.1.0i-1.fc28
openssl-devel.x86_64 1:1.1.0i-1.fc28
openssl-libs.x86_64 1:1.1.0i-1.fc28
pam.x86_64 1.3.1-8.fc28
pam-devel.x86_64 1.3.1-8.fc28
perl-Git.noarch 2.17.2-2.fc28
valgrind.x86_64 1:3.14.0-1.fc28
vim-common.x86_64 2:8.1.549-1.fc28
vim-enhanced.x86_64 2:8.1.549-1.fc28
vim-minimal.x86_64 2:8.1.549-1.fc28
and here's a stack dump:
(gdb) print errno
$3 = 12
(gdb) print strerror(errno)
$4 = 0x7ffff4dbc9ce "Cannot allocate memory"(gdb) bt
#0 mprotectFailed () at page.c:144
#1 0x00007ffff4ffd4d9 in Page_AllowAccess
(address=address at entry=0x7fffde264000, size=<optimized out>) at
page.c:151
#2 0x00007ffff4ffcffb in memalign (alignment=<optimized out>,
userSize=<optimized out>) at efence.c:662
#3 0x00007ffff4ffd394 in calloc (nelem=<optimized out>,
elsize=<optimized out>) at efence.c:965
#4 0x00007fffec9494fc in _asn1_copy_structure3 () from /lib64/libtasn1.so.6
#5 0x00007fffec946819 in _asn1_append_sequence_set () from /lib64/libtasn1.so.6
#6 0x00007fffec945ac9 in asn1_der_decoding2 () from /lib64/libtasn1.so.6
#7 0x00007fffec945ddb in asn1_der_decoding () from /lib64/libtasn1.so.6
#8 0x00007fffecb6c7c8 in p11_asn1_decode () from
/usr/lib64/pkcs11/p11-kit-trust.so
#9 0x00007fffecb5c864 in decode_or_get_asn1.isra () from
/usr/lib64/pkcs11/p11-kit-trust.so
#10 0x00007fffecb5d596 in certificate_populate () from
/usr/lib64/pkcs11/p11-kit-trust.so
#11 0x00007fffecb5c293 in build_for_schema () from
/usr/lib64/pkcs11/p11-kit-trust.so
#12 0x00007fffecb5f24d in p11_builder_build () from
/usr/lib64/pkcs11/p11-kit-trust.so
#13 0x00007fffecb61c58 in index_build () from /usr/lib64/pkcs11/p11-kit-trust.so
#14 0x00007fffecb62a35 in p11_index_take () from
/usr/lib64/pkcs11/p11-kit-trust.so
#15 0x00007fffecb63066 in index_replacev () from
/usr/lib64/pkcs11/p11-kit-trust.so
#16 0x00007fffecb63368 in p11_index_replace_all () from
/usr/lib64/pkcs11/p11-kit-trust.so
#17 0x00007fffecb6af25 in loader_load_file () from
/usr/lib64/pkcs11/p11-kit-trust.so
#18 0x00007fffecb6b04e in loader_load_if_file () from
/usr/lib64/pkcs11/p11-kit-trust.so
#19 0x00007fffecb6b1c1 in loader_load_path () from
/usr/lib64/pkcs11/p11-kit-trust.so
#20 0x00007fffecb6bbd0 in p11_token_load () from
/usr/lib64/pkcs11/p11-kit-trust.so
#21 0x00007fffecb66d55 in sys_C_FindObjectsInit () from
/usr/lib64/pkcs11/p11-kit-trust.so
#22 0x00007fffecfc2dc6 in proxy_C_FindObjectsInit () from
/lib64/p11-kit-proxy.so
#23 0x00007fffecfebe68 in binding_C_FindObjectsInit () from
/lib64/p11-kit-proxy.so
#24 0x00007fffecd92e35 in ffi_closure_unix64_inner () from /lib64/libffi.so.6
#25 0x00007fffecd931a6 in ffi_closure_unix64 () from /lib64/libffi.so.6
#26 0x00007ffff6b05e11 in pk11_FindObjectByTemplate
(slot=slot at entry=0x7fffec74dca0,
theTemplate=theTemplate at entry=0x7fffffffe3d0, tsize=tsize at entry=1) at
pk11obj.c:1799
#27 0x00007ffff6b13fb7 in pk11_isRootSlot (slot=0x7fffec74dca0) at
pk11slot.c:1416
#28 PK11_InitSlot (mod=mod at entry=0x7fffed314e20, slotID=<optimized
out>, slot=0x7fffec74dca0) at pk11slot.c:1481
#29 0x00007ffff6afbbaf in secmod_LoadPKCS11Module
(mod=mod at entry=0x7fffed314e20,
oldModule=oldModule at entry=0x7fffffffe580) at pk11load.c:563
#30 0x00007ffff6b08f7d in SECMOD_LoadModule (modulespec=0x7fffed341fd0
"name=\"p11-kit-proxy\" library=\"p11-kit-proxy.so\"",
parent=0x7fffed30ee20, recurse=1) at pk11pars.c:1826
#31 0x00007ffff6b090b8 in SECMOD_LoadModule (
modulespec=modulespec at entry=0x7ffff6ba7df0 "name=\"Policy File\"
parameters=\"configdir='sql:/etc/crypto-policies/back-ends'
secmod='nss.config'
flags=readOnly,noCertDB,forceSecmodChoice,forceOpen\"
NSS=\"flags=internal,moduleDB,skipFirst,moduleDBOn"...,
parent=parent at entry=0x7fffef10ae20, recurse=recurse at entry=1) at
pk11pars.c:1862
#32 0x00007ffff6ad42bd in nss_Init
(configdir=configdir at entry=0x7fffeef06fe8 "sql:/etc/ipsec.d",
certPrefix=certPrefix at entry=0x555555684496 "",
keyPrefix=keyPrefix at entry=0x555555684496 "",
secmodName=secmodName at entry=0x555555682aed "secmod.db",
updateDir=updateDir at entry=0x7ffff6ba82cd "",
updCertPrefix=updCertPrefix at entry=0x7ffff6ba82cd "",
updKeyPrefix=<optimized out>,
updateID=<optimized out>, updateName=<optimized out>,
initContextPtr=<optimized out>, initParams=<optimized out>,
readOnly=<optimized out>, noCertDB=<optimized out>, noModDB=<optimized
out>,
forceOpen=<optimized out>, noRootInit=<optimized out>,
optimizeSpace=<optimized out>, noSingleThreadedModules=<optimized
out>, allowAlreadyInitializedModules=<optimized out>,
dontFinalizeModules=<optimized out>) at nssinit.c:712
#33 0x00007ffff6ad4786 in NSS_Initialize
(configdir=configdir at entry=0x7fffeef06fe8 "sql:/etc/ipsec.d",
certPrefix=certPrefix at entry=0x555555684496 "",
keyPrefix=keyPrefix at entry=0x555555684496 "",
secmodName=secmodName at entry=0x555555682aed "secmod.db",
flags=<optimized out>) at nssinit.c:889
#34 0x0000555555616659 in lsw_nss_setup (configdir=<optimized out>,
setup_flags=<optimized out>, get_password=0x555555616b20
<lsw_nss_get_password>, err=0x7fffffffe8b0 "\353\362\206%")
at /source/lib/libswan/lswnss.c:58
#35 0x000055555557468c in pluto_init_nss (nssdir=0x7fffef21cfe8
"/etc/ipsec.d") at /source/programs/pluto/plutomain.c:406
#36 main (argc=5, argv=<optimized out>) at
/source/programs/pluto/plutomain.c:1592
and running 'dnf downgrade nss' made the problem go away:
Running transaction
Preparing :
1/1
Downgrading : nss-sysinit-3.36.0-1.0.fc28.x86_64
1/8
Downgrading : nss-3.36.0-1.0.fc28.x86_64
2/8
Running scriptlet: nss-3.36.0-1.0.fc28.x86_64
2/8
Downgrading : nss-tools-3.36.0-1.0.fc28.x86_64
3/8
Downgrading : nss-devel-3.36.0-1.0.fc28.x86_64
4/8
Erasing : nss-tools-3.40.1-1.0.fc28.x86_64
5/8
Erasing : nss-devel-3.40.1-1.0.fc28.x86_64
6/8
Erasing : nss-3.40.1-1.0.fc28.x86_64
7/8
Running scriptlet: nss-3.40.1-1.0.fc28.x86_64
7/8
Setting system policy to LEGACY
Erasing : nss-sysinit-3.40.1-1.0.fc28.x86_64
8/8
Running scriptlet: nss-sysinit-3.40.1-1.0.fc28.x86_64
8/8
Verifying : nss-3.36.0-1.0.fc28.x86_64
1/8
Verifying : nss-tools-3.36.0-1.0.fc28.x86_64
2/8
Verifying : nss-devel-3.36.0-1.0.fc28.x86_64
3/8
Verifying : nss-sysinit-3.36.0-1.0.fc28.x86_64
4/8
Verifying : nss-devel-3.40.1-1.0.fc28.x86_64
5/8
Verifying : nss-tools-3.40.1-1.0.fc28.x86_64
6/8
Verifying : nss-sysinit-3.40.1-1.0.fc28.x86_64
7/8
Verifying : nss-3.40.1-1.0.fc28.x86_64
More information about the Swan-dev
mailing list