Hello, i just ran into sth weird. I manually applied the glibc update and replaced:
glibc-2.2.93-5.i686.rpm glibc-common-2.2.93-5.i386.rpm glibc-devel-2.2.93-5.i386.rpm with the updates: glibc-2.3.2-4.80.i686.rpm glibc-common-2.3.2-4.80.i386.rpm glibc-devel-2.3.2-4.80.i386.rpm Simply everything still works well - except the amavisd-new startscript in /etc/init.d (as I recognized during reboot - as it suddenly locked the box at the attempt to start amavisd-new). There was ofcourse no way to ctrl-c this and so I had to boot into rescue mode to deactivate amavisd during the init process. As I then figured out is amavisd-new still working great when I start it manually but using it's initscript it magically hangs in a stage where the line: <snip> Starting amavisd: + shift + initlog -q -c '/usr/local/sbin/amavisd -c /usr/local/etc/amavis/amavisd.conf' </snip> gets called (as I saw with `sh -vx amavisd start`). Practically all other scripts call `initlog` too - but only this one fails. :/ I've attached 2 straces to this mail: amavisd-new.with.2.3.2-4.80GLIBCi686_WORKS_NOT - showing that it somehow deadloops.... I ctrl-c'ed there to break the strace recording amavisd-new.with.2.2.93-5GLIBCi686_WORKS_PERFECT - shows how perfectly it normally works. The amavisd initscript is attached too - for those who might have some clue why it won't work after the glibc update. PS: I can ofcourse reproduce the above straces when I upgrade to glibc-2.3.2 again .... and it then magically works again when I downgrade to glibc-2.2.3 initlog is originally from: [EMAIL PROTECTED] init.d]# rpm -qf /sbin/initlog initscripts-6.95-1 Thanks in advance to anyone who can shed some light on this :) Best regards, Frank Reppin -- *no sig*
execve("/sbin/initlog", ["initlog", "-q", "-c", "/usr/local/sbin/amavisd -c /usr/local/etc/amavis/amavisd.conf start"], [/* 22 vars */]) = 0 uname({sys="Linux", node="cisco", ...}) = 0 brk(0) = 0x8050aac open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=30346, ...}) = 0 old_mmap(NULL, 30346, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000 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\300Y\1"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1292588, ...}) = 0 old_mmap(NULL, 1298244, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4001c000 old_mmap(0x40152000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x136000) = 0x40152000 old_mmap(0x40157000, 8004, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40157000 close(3) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40159000 munmap(0x40014000, 30346) = 0 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=30313968, ...}) = 0 mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4015a000 mmap2(NULL, 204800, PROT_READ, MAP_PRIVATE, 3, 0x8e1) = 0x4035a000 brk(0) = 0x8050aac brk(0x8051aac) = 0x8051aac brk(0) = 0x8051aac brk(0x8052000) = 0x8052000 mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0x922) = 0x40014000 close(3) = 0 open("/etc/initlog.conf", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=658, ...}) = 0 read(3, "# /etc/initlog.conf\n#\n# initlog "..., 658) = 658 close(3) = 0 brk(0) = 0x8052000 brk(0x8053000) = 0x8053000 brk(0) = 0x8053000 brk(0x8054000) = 0x8054000 pipe([3, 4]) = 0 pipe([5, 6]) = 0 pipe([7, 8]) = 0 open("/dev/null", O_WRONLY) = 9 getpid() = 6211 fork() = 31882 close(4) = 0 close(6) = 0 close(9) = 0 brk(0) = 0x8054000 brk(0x8056000) = 0x8056000 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(31882, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = -1 EINTR (Interrupted system call) --- SIGINT (Interrupt) --- +++ killed by SIGINT +++
execve("/sbin/initlog", ["initlog", "-q", "-c", "/usr/local/sbin/amavisd -c /usr/local/etc/amavis/amavisd.conf start"], [/* 22 vars */]) = 0 uname({sys="Linux", node="cisco", ...}) = 0 brk(0) = 0x8050aac open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=31355, ...}) = 0 old_mmap(NULL, 31355, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40013000 close(3) = 0 open("/lib/i686/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\220Y\1"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=1395734, ...}) = 0 old_mmap(0x42000000, 1239844, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x42000000 mprotect(0x42126000, 35620, PROT_NONE) = 0 old_mmap(0x42126000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x126000) = 0x42126000 old_mmap(0x4212b000, 15140, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4212b000 close(3) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4001b000 munmap(0x40013000, 31355) = 0 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=30314256, ...}) = 0 mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001c000 mmap2(NULL, 204800, PROT_READ, MAP_PRIVATE, 3, 0x8e1) = 0x4021c000 brk(0) = 0x8050aac brk(0x8051aac) = 0x8051aac brk(0x8052000) = 0x8052000 mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0x922) = 0x40013000 close(3) = 0 open("/etc/initlog.conf", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=658, ...}) = 0 read(3, "# /etc/initlog.conf\n#\n# initlog "..., 658) = 658 close(3) = 0 brk(0x8053000) = 0x8053000 brk(0x8054000) = 0x8054000 pipe([3, 4]) = 0 pipe([5, 6]) = 0 pipe([7, 8]) = 0 open("/dev/null", O_WRONLY) = 9 getpid() = 519 fork() = 2340 close(4) = 0 close(6) = 0 close(9) = 0 brk(0x8056000) = 0x8056000 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(2340, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 0 wait4(2340, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI, revents=POLLHUP}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 1 wait4(2340, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI, revents=POLLHUP}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 1 wait4(2340, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 poll([{fd=3, events=POLLIN|POLLPRI, revents=POLLHUP}, {fd=5, events=POLLIN|POLLPRI}], 2, 500) = 1 wait4(2340, 0xbffff82c, WNOHANG, NULL) = 0 nanosleep({0, 500000}, NULL) = 0 --- SIGCHLD (Child exited) --- poll([{fd=3, events=POLLIN|POLLPRI, revents=POLLHUP}, {fd=5, events=POLLIN|POLLPRI, revents=POLLHUP}], 2, 500) = 2 wait4(2340, [WIFEXITED(s) && WEXITSTATUS(s) == 0], WNOHANG, NULL) = 2340 _exit(0) = ?
#!/bin/sh # # amavisd This script controls the amavisd-new daemon. # (to be used with version amavisd-new-20020630 or later) # # chkconfig: 2345 79 28 # description: amavisd is an interface between MTA and content checkers # processname: amavisd # pidfile: /var/amavis/amavisd.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network #prog="/opt/amavisd-new/sbin/amavisd" prog="/usr/local/sbin/amavisd" prog_base="$(basename ${prog})" prog_config_file="/usr/local/etc/amavis/amavisd.conf" # Source configuration. [ -e /etc/sysconfig/${prog_base} ] && . /etc/sysconfig/${prog_base} ## Check that networking is up. #[ ${NETWORKING} = "no" ] && exit 0 RETVAL=0 # See how we were called. case "$1" in start) action $"Starting ${prog_base}:" ${prog} -c ${prog_config_file} RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/${prog_base} echo ;; stop) action $"Shutting down ${prog_base}:" ${prog} -c ${prog_config_file} stop RETVAL=$? if [ $RETVAL -eq 0 ] ; then echo "${prog_base} stopped" rm -f /var/lock/subsys/${prog_base} else echo fi ;; status) status ${prog_base} RETVAL=$? ;; restart) $0 stop $0 start RETVAL=$? ;; reload) action $"Reloading ${prog_base}:" ${prog} -c ${prog_config_file} reload RETVAL=$? ;; *) echo "Usage: $0 {start|stop|status|restart|reload}" exit 1 esac exit $RETVAL