1 votes

Centos 5.3 tar et rpm donnent toujours un défaut de segmentation - pouvez-vous dire pourquoi à partir du strace ?

(Mise à jour : Aujourd'hui, tar fonctionne sans segfault sans changements connus sur le système. La commande "rm" est maintenant en défaut de segmentation. Argh ! Peut-être que cela est dû à ESXi ? Ou, peut-être le matériel).

J'ai un système Centos 5.3 fonctionnant sur VMWare ESXi. Il fonctionne depuis un certain temps sans trop de problèmes. Récemment, cependant, j'ai remarqué que la commande tar et la commande rpm me donnent une erreur de segmentation lorsque je les exécute.

J'ai donc essayé d'utiliser strace (quelqu'un l'a suggéré en ligne) et voici ce que j'obtiens en utilisant strace. J'aimerais savoir comment réparer mon système et comment je peux empêcher que cela ne se produise à l'avenir.

Merci d'avance à tous !

Le résultat :

\[root@wagon init.d\]# strace -f rpm
execve("/bin/rpm", \["rpm"\], \[/\* 20 vars \*/\]) = 0
brk(0)                                  = 0x9e98000
access("/etc/ld.so.preload", R\_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O\_RDONLY)      = 3
fstat64(3, {st\_mode=S\_IFREG|0644, st\_size=51424, ...}) = 0
mmap2(NULL, 51424, PROT\_READ, MAP\_PRIVATE, 3, 0) = 0xb7f79000
close(3)                                = 0
open("/usr/lib/librpm-4.4.so", O\_RDONLY) = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\\360\\257\\0\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=378528, ...}) = 0
mmap2(NULL, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_ANONYMOUS, -1, 0) = 0xb7f78000
mmap2(NULL, 588416, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0xd43000
mmap2(0xd9d000, 16384, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x59) = 0xd9d000
mmap2(0xda1000, 203392, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_ANONYMOUS, -1, 0) = 0xda1000
close(3)                                = 0
open("/usr/lib/librpmdb-4.4.so", O\_RDONLY) = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0P\\307\\1\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=1134540, ...}) = 0
mmap2(NULL, 1139296, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x627000
mmap2(0x739000, 16384, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x111) = 0x739000
mmap2(0x73d000, 608, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_ANONYMOUS, -1, 0) = 0x73d000
close(3)                                = 0
open("/lib/libselinux.so.1", O\_RDONLY)  = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\\0005\\0\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=91892, ...}) = 0
mmap2(NULL, 97112, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0xc25000
mmap2(0xc3b000, 8192, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x15) = 0xc3b000
close(3)                                = 0
open("/usr/lib/librpmio-4.4.so", O\_RDONLY) = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\`\\276\\0\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=396276, ...}) = 0
mmap2(NULL, 540192, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0xb64000
mmap2(0xbc3000, 12288, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x5e) = 0xbc3000
mmap2(0xbc6000, 138784, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_ANONYMOUS, -1, 0) = 0xbc6000
close(3)                                = 0
open("/usr/lib/libpopt.so.0", O\_RDONLY) = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\\260\\20\\0\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=29008, ...}) = 0
mmap2(NULL, 31856, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x7c5000
mmap2(0x7cc000, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x6) = 0x7cc000
close(3)                                = 0
open("/usr/lib/libsqlite3.so.0", O\_RDONLY) = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\\340=\\327\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=385180, ...}) = 0
mmap2(0xd6a000, 387072, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x110000
mmap2(0x16d000, 8192, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x5c) = 0x16d000
close(3)                                = 0
open("/usr/lib/libelf.so.1", O\_RDONLY)  = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0000\\35\\0\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=87508, ...}) = 0
mmap2(NULL, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_ANONYMOUS, -1, 0) = 0xb7f77000
mmap2(NULL, 90296, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x9cf000
mmap2(0x9e4000, 8192, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x14) = 0x9e4000
close(3)                                = 0
open("/lib/libm.so.6", O\_RDONLY)        = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\\0204\\0\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=206380, ...}) = 0
mmap2(NULL, 155760, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x16f000
mmap2(0x194000, 8192, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x24) = 0x194000
close(3)                                = 0
open("/usr/lib/libz.so.1", O\_RDONLY)    = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\\300\\245\\303\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=75028, ...}) = 0
mmap2(0xc39000, 76400, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x196000
mmap2(0x1a8000, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x11) = 0x1a8000
close(3)                                = 0
open("/usr/lib/libnss3.so", O\_RDONLY)   = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\\0mr\\0054\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=1306252, ...}) = 0
mmap2(0x5714000, 1310584, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x5714000
mmap2(0x584e000, 24576, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x139) = 0x584e000
close(3)                                = 0
open("/usr/lib/libplds4.so", O\_RDONLY)  = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0000\\312\\205\\0054\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=11460, ...}) = 0
mmap2(0x585c000, 8672, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x585c000
mmap2(0x585e000, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x2) = 0x585e000
close(3)                                = 0
open("/usr/lib/libplc4.so", O\_RDONLY)   = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\\360m\\205\\0054\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=15556, ...}) = 0
mmap2(0x5856000, 12744, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x5856000
mmap2(0x5859000, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x3) = 0x5859000
close(3)                                = 0
open("/usr/lib/libnspr4.so", O\_RDONLY)  = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0P\\227\\206\\0054\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=228028, ...}) = 0
mmap2(NULL, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_ANONYMOUS, -1, 0) = 0xb7f76000
mmap2(0x5861000, 232928, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x5861000
mmap2(0x5897000, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x36) = 0x5897000
mmap2(0x5898000, 7648, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_ANONYMOUS, -1, 0) = 0x5898000
close(3)                                = 0
open("/lib/libdl.so.2", O\_RDONLY)       = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0P\\n\\0\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=14644, ...}) = 0
mmap2(NULL, 12408, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x2a7000
mmap2(0x2a9000, 8192, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x1) = 0x2a9000
close(3)                                = 0
open("/lib/librt.so.1", O\_RDONLY)       = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\\200\\30\\0\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=42048, ...}) = 0
mmap2(NULL, 33324, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x7d0000
mmap2(0x7d7000, 8192, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x6) = 0x7d7000
close(3)                                = 0
open("/lib/libpthread.so.0", O\_RDONLY)  = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0000H\\0\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=123596, ...}) = 0
mmap2(NULL, 90592, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x1a9000
mmap2(0x1bc000, 8192, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x12) = 0x1bc000
mmap2(0x1be000, 4576, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_ANONYMOUS, -1, 0) = 0x1be000
close(3)                                = 0
open("/usr/lib/libbz2.so.1", O\_RDONLY)  = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\\240\\17\\364\\0034\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=71852, ...}) = 0
mmap2(0x3f40000, 69128, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x3f40000
mmap2(0x3f50000, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x10) = 0x3f50000
close(3)                                = 0
open("/lib/libc.so.6", O\_RDONLY)        = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\\320\_\\1\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=1603392, ...}) = 0
mmap2(NULL, 1324452, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x2ab000
mmap2(0x3e9000, 12288, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x13e) = 0x3e9000
mmap2(0x3ec000, 9636, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_ANONYMOUS, -1, 0) = 0x3ec000
close(3)                                = 0
open("/lib/libsepol.so.1", O\_RDONLY)    = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\\340\\256\\306\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=242880, ...}) = 0
mmap2(NULL, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_ANONYMOUS, -1, 0) = 0xb7f75000
mmap2(0xc68000, 286624, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0xc68000
mmap2(0xca3000, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x3a) = 0xca3000
mmap2(0xca4000, 40864, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_ANONYMOUS, -1, 0) = 0xca4000
close(3)                                = 0
open("/lib/libgcc\_s.so.1", O\_RDONLY)    = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\`\\26\\0\\0004\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=44992, ...}) = 0
mmap2(NULL, 48036, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x435000
mmap2(0x440000, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0xa) = 0x440000
close(3)                                = 0
open("/usr/lib/libnssutil3.so", O\_RDONLY) = 3
read(3, "\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0\\20\\350o\\0054\\0\\0\\0"..., 512) = 512
fstat64(3, {st\_mode=S\_IFREG|0755, st\_size=96764, ...}) = 0
mmap2(0x56fa000, 98028, PROT\_READ|PROT\_EXEC, MAP\_PRIVATE|MAP\_DENYWRITE, 3, 0) = 0x56fa000
mmap2(0x570f000, 12288, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_FIXED|MAP\_DENYWRITE, 3, 0x14) = 0x570f000
close(3)                                = 0
mmap2(NULL, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_ANONYMOUS, -1, 0) = 0xb7f74000
mmap2(NULL, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_ANONYMOUS, -1, 0) = 0xb7f73000
set\_thread\_area({entry\_number:-1 -> 6, base\_addr:0xb7f736d0, limit:1048575, seg\_32bit:1, contents:0, read\_exec\_only:0, limit\_in\_pages:1, seg\_not\_present:0, useable:1}) = 0
mprotect(0x3e9000, 8192, PROT\_READ)     = 0
mprotect(0x1bc000, 4096, PROT\_READ)     = 0
mprotect(0x7d7000, 4096, PROT\_READ)     = 0
mprotect(0x2a9000, 4096, PROT\_READ)     = 0
mprotect(0x194000, 4096, PROT\_READ)     = 0
mprotect(0xff9000, 4096, PROT\_READ)     = 0
munmap(0xb7f79000, 51424)               = 0
set\_tid\_address(0xb7f73718)             = 5604
set\_robust\_list(0xb7f73720, 0xc)        = 0
futex(0xbf9763c4, FUTEX\_WAKE\_PRIVATE, 1) = 0
rt\_sigaction(SIGRTMIN, {0x1ad3d0, \[\], SA\_SIGINFO}, NULL, 8) = 0
rt\_sigaction(SIGRT\_1, {0x1ad2e0, \[\], SA\_RESTART|SA\_SIGINFO}, NULL, 8) = 0
rt\_sigprocmask(SIG\_UNBLOCK, \[RTMIN RT\_1\], NULL, 8) = 0
getrlimit(RLIMIT\_STACK, {rlim\_cur=10240\*1024, rlim\_max=RLIM\_INFINITY}) = 0
uname({sys="Linux", node="wagon.localdomain", ...}) = 0
access("/etc/selinux/", F\_OK)           = 0
brk(0)                                  = 0x9e98000
brk(0x9eb9000)                          = 0x9eb9000
open("/etc/selinux/config", O\_RDONLY|O\_LARGEFILE) = 3
fstat64(3, {st\_mode=S\_IFREG|0644, st\_size=511, ...}) = 0
mmap2(NULL, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_ANONYMOUS, -1, 0) = 0xb7f85000
read(3, "# This file controls the state o"..., 4096) = 511
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7f85000, 4096)                = 0
open("/proc/mounts", O\_RDONLY|O\_LARGEFILE) = 3
fstat64(3, {st\_mode=S\_IFREG|0444, st\_size=0, ...}) = 0
mmap2(NULL, 4096, PROT\_READ|PROT\_WRITE, MAP\_PRIVATE|MAP\_ANONYMOUS, -1, 0) = 0xb7f85000
read(3, "rootfs / rootfs rw 0 0\\n/dev/root"..., 4096) = 587
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7f85000, 4096)                = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
\[root@wagon init.d\]#

2voto

Dot Net Pro UK Points 761

Même sans beaucoup d'investigation, à partir de votre description que quelques programmes ont commencé à se bloquer, puis ils ont commencé à fonctionner correctement alors que d'autres ont commencé à échouer, vous avez soit des modules de mémoire défectueux, soit un prélien cassé.

Tout d'abord, arrêtez toutes vos machines virtuelles, redémarrez l'hôte et exécutez un test de mémoire. Vous devez le faire depuis l'extérieur d'ESXi. Si vous trouvez des défauts de mémoire, c'est votre problème. Remplacez le matériel.

Si aucun défaut de mémoire n'a été trouvé, vérifiez que vous exécutez le dernier noyau disponible de CentOS pour votre architecture.

Redémarrer l'hôte et le serveur, le serveur en mode mono-utilisateur (passer "single" à Grub paramètres du noyau) et exécuter :

prelink -avf

Lorsque la liaison préalable est terminée, vous devez redémarrer le serveur. Vous pouvez également faire telinit u && init 3 pour reprendre le démarrage, mais il est préférable de redémarrer afin de s'assurer que tous les binaires seront rechargés avec leurs nouveaux mappages mémoire.

1voto

LuckySevens Points 586

C'est une supposition, mais essayez de désactiver se-linix et voyez si cela fonctionne.

Il ne devrait pas y avoir de ségrégation, mais il se peut qu'un fichier ne puisse pas être ouvert à cause de se-linux, ce que tar n'aurait jamais pensé pouvoir faire.

Sinon, vous devrez installer le rpm source pour tar, le construire avec le débogage, puis l'exécuter dans le débogueur pour voir pourquoi.

1voto

smartappers Points 11

Ok, donc pas aussi complexe que je le pensais. Le serveur a été compromis et le hacker de génie a foiré l'installation du root kit. Donc, l'effet était des binaires en défaut. Un autre effet est le trafic réseau inattendu du serveur. Merci à tous ceux qui ont répondu !

0voto

Matt Simmons Points 20098

D'accord, ça a l'air très amusant.

Tout d'abord, avez-vous deux boîtes identiques et à jour (dont l'une n'est pas en défaut) ?

Si c'est le cas, vérifiez le md5sum sur les binaires qui sont en défaut, assurez-vous qu'ils sont identiques.

Ensuite, exécutez ldd sur les binaires qui échouent, puis exécutez md5sum sur les bibliothèques pour voir si elles sont différentes.

Maintenant, en supposant que les bibliothèques sont les mêmes, quelque chose d'autre ne va pas, probablement l'environnement de la machine ou la configuration, mais voyons si le strace nous éclaire.

Pour citer votre parcours, vers la fin, vous avez :

 open("/proc/mounts", O_RDONLY|O_LARGEFILE) = 3
 fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f85000
 read(3, "rootfs / rootfs rw 0 0\n/dev/root"..., 4096) = 587
 read(3, "", 4096)                       = 0
 close(3)                                = 0
 munmap(0xb7f85000, 4096)                = 0

La ligne suivante est le message d'erreur.

Sur ma machine CentOS 5.3 (rpm version 4.4.2.3), mon rpm fait immédiatement cela :

open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=56458752, ...}) = 0
mmap(NULL, 56458752, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2b36f9d01000
close(3)                                = 0

Je pense donc que le problème se situe soit dans la fermeture de la mémoire après la lecture de /proc/mounts, soit dans l'ouverture de /usr/lib/locale/locale-archive. Puisque munmap() renvoie 0, je remonterais à l'arbre des locales.

Incidemment, si votre configuration exclut la locale, le prochain bloc que j'exécute est :

 open("/usr/lib/rpm/rpmpopt-4.4.2.3", O_RDONLY) = 3
 lseek(3, 0, SEEK_END)                   = 23100
 lseek(3, 0, SEEK_SET)                   = 0
 read(3, "#/*! \\page config_rpmpopt Defaul"..., 23100) = 23100
 close(3)        

Bonne chance et faites-nous savoir ce que vous trouvez.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X