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