Fórumok
Jó ideje töröm már a fejem, de csak nem tudok rájönni mi a fene baja van az ldconfig-omnak:
[root@Ishikawa /]# ldconfig
Segmentation fault (core dumped)
[root@Ishikawa /]# strace -i ldconfig
[00007fb840c1fe07] execve("/sbin/ldconfig", ["ldconfig"], [/* 30 vars */]) = 0
[000000000048a5c7] uname({sysname="Linux", nodename="Ishikawa", ...}) = 0
[000000000048ae69] brk(0) = 0x1e4d000
[000000000048ae69] brk(0x1e4e1c0) = 0x1e4d000
[000000000048aeaf] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xffffffffffffffd0} ---
[????????????????] +++ killed by SIGSEGV (core dumped) +++
Segmentation fault (core dumped)
Az ldconfig hash értéke megegyezik egy másik gépen teljesen jól futó ldconfig-éval. A cache-t töröltem (/etc/ld.so.cache, illetve /var/cache/ldconfig/aux-cache ), confokat összenéztem, glibc-s csomagokat újratettem.. Nem látok különbséget.
Az viszont felettéb gyanús, hogy a heap pointer extendnél (brk) a pointerem értéke ugyan az marad.
OS: Fedora 22 (x64)
[root@Ishikawa /]# rpm -qa |grep glibc
glibc-common-2.21-8.fc22.x86_64
glibc-devel-2.21-8.fc22.x86_64
glibc-headers-2.21-8.fc22.x86_64
glibc-2.21-8.fc22.x86_64
glibc-2.21-8.fc22.i686
Látott már valaki hasonlót?
Szerk:
[root@Ishikawa tmp]# rpm -qp --scripts glibc-2.21-8.fc22.x86_64.rpm
preinstall scriptlet (using <lua>):
-- Check that the running kernel is new enough
required = '2.6.32'
rel = posix.uname("%r")
if rpm.vercmp(rel, required) < 0 then
error("FATAL: kernel too old", 0)
end
postinstall program: /usr/sbin/glibc_post_upgrade.x86_64
postuninstall program: /sbin/ldconfig
[root@Ishikawa tmp]# strace -i /usr/sbin/glibc_post_upgrade.x86_64
[00007f48bea15e07] execve("/usr/sbin/glibc_post_upgrade.x86_64", ["/usr/sbin/glibc_post_upgrade.x86"...], [/* 30 vars */]) = 0
[000000000042b717] uname({sysname="Linux", nodename="Ishikawa", ...}) = 0
[000000000042b8e9] brk(0) = 0x1339000
[000000000042b8e9] brk(0x133a1c0) = 0x1339000
[000000000042b92f] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xffffffffffffffd0} ---
[????????????????] +++ killed by SIGSEGV (core dumped) +++
Segmentation fault (core dumped)
Meg se lepődök...
szerk: Ulimit issue. Valahogy a data segment size-om 0-ra állítódott, bár meg nem mondhatom hogyan.. ulimit -d unlimited megoldott a problémát
Hozzászólások
BTW, az miért jó, hogy nagybetű van a hostnévben? Nem szoptál még vele soha?
Nem. Bár túl sok mindenre nem is használom a gépen a hostnevet (tehát nincs a gép tartományban, vagy bármi hasonló)
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..
Asszem most kellene ldconfig-ot fordítani debuggal. (Persze Murphy idevágó törvénye szerint az meg hibátlanul fog működni.)
Valami más lesz itt.
- Megnéztem egy backupot (ahol még nem volt gond) -> SIGSEGV
- Forgattam forrásból -> SIGSEGV
- Áthoztam egy másik gépről ahol az ldconfig teljesen jól működik -> SIGSEGV
Illetve mint írtam más program is ugyan ezt csinálja (glibc_post_upgrade.x86_64), és mind2 esetben ott áll meg a process, hogy a heap pointer a brk után nem mozdul sehova:
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..
Másik kernel van kéznél?
Nekem is ez volt az egyik első gondolatom amikor a heap-et néztem. De az elérhető 3 kernel közül mindegyiknél ugyan ezzel a problémával lehal az ldconfig:
Amúgy a /etc/ld.so.cache alapján Oct. 3.-án még sikerült lefutnia az ldconfig-nak, szóval a 4.1.7essel mennie kellene ha a kernel lenne a hiba.
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..
Egy ltrace-t is nézzünk meg.
Na most lehet hülyeséget fogok kérdezni, de használható az statikus linkelés esetén (mint amilyen az ldconfig is)?
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..
Ott nem.
Innen loptam.
"A cache-t töröltem (/etc/ld.so.cache, illetve /var/cache/ldconfig/aux-cache ), "
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..
Bocsi azon átsiklottam, akkor még keresgélek. :)
Azért értékelem a segítő szándékot :) Amúgy Google-t én már 2 napja bújom, de van egy olyan érzésem, hogy ez nem ldconfig specifikus issue lesz, hanem valami általánosabb (csak tudnám mi), tekintve hogy mint fentebb írtam minimum 2 proginál is szembejön ez (bár nem tudom, hogy mennyire osztozik a 2 kódbázisa) a brk-s furcsaság.
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..
Na jó... csessze meg az élet :D
De hogy a data segment size-om miért ált be 0ra arról fogalmam nincs.. Azt hiszem érdemes lesz átnéznem mi változott a /etc/security/limits.conf alatt az elmúlt időben
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..