Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 72919 - amandad segfaults (via inetd) while running amcheck
Summary: amandad segfaults (via inetd) while running amcheck
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: PPC64 Linux
: High major (vote)
Assignee: Robin Johnson
URL:
Whiteboard:
Keywords:
: 72921 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-11-30 06:12 UTC by Matthias Wegener
Modified: 2005-02-17 11:55 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Matthias Wegener 2004-11-30 06:12:07 UTC
hi,

amandad segfaults with 2.4.4_p3 (_p4 also) when running amcheck on a linux ppc64.
inetd is set up and listening on the three necessary ports:
tcp        0      0 0.0.0.0:10082           0.0.0.0:*               LISTEN      24203/inetd         
tcp        0      0 0.0.0.0:10083           0.0.0.0:*               LISTEN      24203/inetd    
udp        0      0 0.0.0.0:10080           0.0.0.0:*                           24203/inetd      

config files seem to be ok. here is the output of amcheck:
amanda@transporter amanda $ amcheck G5
Amanda Tape Server Host Check
-----------------------------
WARNING: holding disk /etc/amanda/dumps: only 55532944 KB free (90071992547409920 KB requested)
amcheck-server: slot 3: date X        label G5-03 (new tape)
NOTE: skipping tape-writable test
Tape G5-03 label ok
Server check took 33.762 seconds

Amanda Backup Client Hosts Check
--------------------------------
WARNING: transporter: selfcheck reply timed out.
Client check: 1 host checked in 180.935 seconds, 1 problem found

(brought to you by Amanda 2.4.4p4)

while amcheck runs, amandad segfaults several times. I'll attach the interessting part of the strace (-f).


(...)
[pid 27184] close(1018)                 = -1 EBADF (Bad file descriptor)
[pid 27184] close(1019)                 = -1 EBADF (Bad file descriptor)
[pid 27184] close(1020)                 = -1 EBADF (Bad file descriptor)
[pid 27184] close(1021)                 = -1 EBADF (Bad file descriptor)
[pid 27184] close(1022)                 = -1 EBADF (Bad file descriptor)
[pid 27184] close(1023)                 = -1 EBADF (Bad file descriptor)
[pid 27184] brk(0)                      = 0x10015000
[pid 27184] brk(0x10036000)             = 0x10036000
[pid 27184] socket(PF_UNIX, SOCK_STREAM, 0) = 3
[pid 27184] fcntl(3, F_GETFL)           = 0x2 (flags O_RDWR)
[pid 27184] fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
[pid 27184] connect(3, {sa_family=AF_UNIX, path="/var/run/nscd/socket"}, 110) = 0
[pid 27184] poll([{fd=3, events=POLLOUT|POLLERR|POLLHUP, revents=POLLOUT}], 1, 5000) = 1
[pid 27184] writev(3, [{"\0\0\0\2\0\0\0\v\0\0\0\7", 12}, {"passwd\0", 7}], 2) = 19
[pid 27184] poll([{fd=3, events=POLLIN|POLLERR|POLLHUP, revents=POLLIN|POLLHUP}], 1, 5000) = 1
[pid 27184] recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\0\0\0\200\0/n", 7}], msg_controllen=0, msg_flags=0}, 0) = 0
[pid 27184] close(3)                    = 0
[pid 27184] socket(PF_UNIX, SOCK_STREAM, 0) = 3
[pid 27184] fcntl(3, F_GETFL)           = 0x2 (flags O_RDWR)
[pid 27184] fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
[pid 27184] connect(3, {sa_family=AF_UNIX, path="/var/run/nscd/socket"}, 110) = 0
[pid 27184] poll([{fd=3, events=POLLOUT|POLLERR|POLLHUP, revents=POLLOUT}], 1, 5000) = 1
[pid 27184] writev(3, [{"\0\0\0\2\0\0\0\0\0\0\0\7", 12}, {"amanda\0", 7}], 2) = 19
[pid 27184] poll([{fd=3, events=POLLIN|POLLERR|POLLHUP, revents=POLLIN|POLLHUP}], 1, 5000) = 1
[pid 27184] read(3, "\0\0\0\2\0\0\0\1\0\0\0\7\0\0\0\2\0\0\0W\0\0\0W\0\0\0\34"..., 36) = 36
[pid 27184] read(3, "amanda\0x\0added by portage for am"..., 65) = 65
[pid 27184] close(3)                    = 0
[pid 27184] umask(077)                  = 022
[pid 27184] access("/var/spool/amanda/tmp", F_OK) = 0
[pid 27184] chdir("/var/spool/amanda/tmp") = 0
[pid 27184] stat(".", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
[pid 27184] stat("core", 0x1fffffbf300) = -1 ENOENT (No such file or directory)
[pid 27184] geteuid()                   = 87
[pid 27184] gettimeofday({1101823477, 235308}, {18446743816011513856, 2199023253832}) = 0
[pid 27184] select(1, [0], NULL, NULL, {30, 0}) = 1 (in [0], left {30, 0})
[pid 27184] recvfrom(0, "Amanda 2.4 REQ HANDLE 000-000000"..., 65503, 0, {sa_family=AF_INET, sin_port=htons(545), sin_addr=inet_addr("192.168.1.20")}, [16]) = 125
[pid 27184] sendto(0, "Amanda 2.4 ACK HANDLE 000-000000"..., 58, 0, {sa_family=AF_INET, sin_port=htons(545), sin_addr=inet_addr("192.168.1.20")}, 16) = 58
[pid 27184] socket(PF_UNIX, SOCK_STREAM, 0) = 3
[pid 27184] fcntl(3, F_GETFL)           = 0x2 (flags O_RDWR)
[pid 27184] fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
[pid 27184] connect(3, {sa_family=AF_UNIX, path="/var/run/nscd/socket"}, 110) = 0
[pid 27184] poll([{fd=3, events=POLLOUT|POLLERR|POLLHUP, revents=POLLOUT}], 1, 5000) = 1
[pid 27184] writev(3, [{"\0\0\0\2\0\0\0\r\0\0\0\6", 12}, {"hosts\0", 6}], 2) = 18
[pid 27184] poll([{fd=3, events=POLLIN|POLLERR|POLLHUP, revents=POLLIN|POLLHUP}], 1, 5000) = 1
[pid 27184] recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\0\0\0\200\0\7", 6}], msg_controllen=0, msg_flags=0}, 0) = 0
[pid 27184] close(3)                    = 0
[pid 27184] socket(PF_UNIX, SOCK_STREAM, 0) = 3
[pid 27184] fcntl(3, F_GETFL)           = 0x2 (flags O_RDWR)
[pid 27184] fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
[pid 27184] connect(3, {sa_family=AF_UNIX, path="/var/run/nscd/socket"}, 110) = 0
[pid 27184] poll([{fd=3, events=POLLOUT|POLLERR|POLLHUP, revents=POLLOUT}], 1, 5000) = 1
[pid 27184] writev(3, [{"\0\0\0\2\0\0\0\6\0\0\0\4", 12}, {"\300\250\1\24", 4}], 2) = 16
[pid 27184] poll([{fd=3, events=POLLIN|POLLERR|POLLHUP, revents=POLLIN|POLLHUP}], 1, 5000) = 1
[pid 27184] read(3, "\0\0\0\2\0\0\0\1\0\0\0\f\0\0\0\0\0\0\0\2\0\0\0\4\0\0\0"..., 32) = 32
[pid 27184] readv(3, [{"transporter\0", 12}, {"\300\250\1\24", 4}], 2) = 16
[pid 27184] read(3, NULL, 0)            = 0
[pid 27184] close(3)                    = 0
[pid 27184] gettimeofday({1101823477, 237865}, NULL) = 0
[pid 27184] getpid()                    = 27184
[pid 27184] open("/etc/resolv.conf", O_RDONLY) = 3
[pid 27184] fstat(3, {st_mode=S_IFREG|0644, st_size=88, ...}) = 0
[pid 27184] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x8000024000
[pid 27184] read(3, "domain bauwelt\n#nameserver 137.1"..., 4096) = 88
[pid 27184] read(3, "", 4096)           = 0
[pid 27184] close(3)                    = 0
[pid 27184] munmap(0x8000024000, 4096)  = 0
[pid 27184] socket(PF_UNIX, SOCK_STREAM, 0) = 3
[pid 27184] fcntl(3, F_GETFL)           = 0x2 (flags O_RDWR)
[pid 27184] fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
[pid 27184] connect(3, {sa_family=AF_UNIX, path="/var/run/nscd/socket"}, 110) = 0
[pid 27184] poll([{fd=3, events=POLLOUT|POLLERR|POLLHUP, revents=POLLOUT}], 1, 5000) = 1
[pid 27184] writev(3, [{"\0\0\0\2\0\0\0\4\0\0\0\f", 12}, {"transporter\0", 12}], 2) = 24
[pid 27184] poll([{fd=3, events=POLLIN|POLLERR|POLLHUP, revents=POLLIN|POLLHUP}], 1, 5000) = 1
[pid 27184] read(3, "\0\0\0\2\0\0\0\1\0\0\0\f\0\0\0\0\0\0\0\2\0\0\0\4\0\0\0"..., 32) = 32
[pid 27184] readv(3, [{"transporter\0", 12}, {"\300\250\1\24", 4}], 2) = 16
[pid 27184] read(3, NULL, 0)            = 0
[pid 27184] close(3)                    = 0
[pid 27184] getuid()                    = 87
[pid 27184] socket(PF_UNIX, SOCK_STREAM, 0) = 3
[pid 27184] fcntl(3, F_GETFL)           = 0x2 (flags O_RDWR)
[pid 27184] fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
[pid 27184] connect(3, {sa_family=AF_UNIX, path="/var/run/nscd/socket"}, 110) = 0
[pid 27184] poll([{fd=3, events=POLLOUT|POLLERR|POLLHUP, revents=POLLOUT}], 1, 5000) = 1
[pid 27184] writev(3, [{"\0\0\0\2\0\0\0\1\0\0\0\3", 12}, {"87\0", 3}], 2) = 15
[pid 27184] poll([{fd=3, events=POLLIN|POLLERR|POLLHUP, revents=POLLIN|POLLHUP}], 1, 5000) = 1
[pid 27184] read(3, "\0\0\0\2\0\0\0\1\0\0\0\7\0\0\0\2\0\0\0W\0\0\0W\0\0\0\34"..., 36) = 36
[pid 27184] read(3, "amanda\0x\0added by portage for am"..., 65) = 65
[pid 27184] close(3)                    = 0
[pid 27184] open("/var/spool/amanda/.amandahosts", O_RDONLY) = 3
[pid 27184] fstat(3, {st_mode=S_IFREG|0644, st_size=47, ...}) = 0
[pid 27184] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x8000024000
[pid 27184] read(3, "transporter.bauwelt.de\tamanda\nlo"..., 4096) = 47
[pid 27184] read(3, "", 4096)           = 0
[pid 27184] close(3)                    = 0
[pid 27184] munmap(0x8000024000, 4096)  = 0
[pid 27184] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
Process 27184 detached
<... select resumed> )                  = ? ERESTARTNOHAND (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, [WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV], WNOHANG, NULL) = 27184
time([1101823477])                      = 1101823477
open("/etc/localtime", O_RDONLY)        = 10
fstat(10, {st_mode=S_IFREG|0644, st_size=837, ...}) = 0
close(10)                               = 0
open("/etc/localtime", O_RDONLY)        = 10
fstat(10, {st_mode=S_IFREG|0644, st_size=837, ...}) = 0
close(10)                               = 0
open("/etc/localtime", O_RDONLY)        = 10
fstat(10, {st_mode=S_IFREG|0644, st_size=837, ...}) = 0
close(10)                               = 0
getpid()                                = 24203
rt_sigaction(SIGPIPE, {0x8000195ab8, [], 0}, {SIG_IGN}, 8) = 0
send(3, "<28>Nov 30 15:04:37 inetd[24203]"..., 82, 0) = 82
rt_sigaction(SIGPIPE, {SIG_IGN}, NULL, 8) = 0
wait4(-1, 0x1fffffbe758, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff)        = -1 EINTR (Interrupted system call)
rt_sigprocmask(SIG_BLOCK, [HUP ALRM CHLD], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
select(10, [4 5 6 7 8 9], NULL, NULL, NULL <unfinished ...>

syslog says:
Nov 30 15:04:37 [inetd] /usr/libexec/amandad (pid 27184): exit signal 11
Nov 30 15:05:38 [inetd] /usr/libexec/amandad (pid 27499): exit signal 11
Nov 30 15:06:39 [inetd] /usr/libexec/amandad (pid 27500): exit signal 11


Reproducible: Always
Steps to Reproduce:
1. Setup amanda, including inetd
2. Run amcheck
3. Watch it fail

Actual Results:  
amcheck tells me
WARNING: transporter: selfcheck reply timed out. 
(an error, that - according to the amanda-faq - may occur, if inetd is not set 
up properly)

Expected Results:  
amcheck should tell me, that everything is fine ;)

transporter root # emerge info
Portage 2.0.51-r3 (default-ppc64-2004.3, gcc-3.4.1, glibc-2.3.4.20041102-r0, 2.
6.9 ppc64)
=================================================================
System uname: 2.6.9 ppc64 PPC970FX, altivec supported
Gentoo Base System version 1.4.16
Autoconf: sys-devel/autoconf-2.59-r5
Automake: sys-devel/automake-1.8.5-r1
Binutils: sys-devel/binutils-2.15.90.0.3-r3
Headers:  sys-kernel/linux26-headers-2.6.8.1-r1
Libtools: sys-devel/libtool-1.5.2-r7
ACCEPT_KEYWORDS="ppc64"
AUTOCLEAN="yes"
CFLAGS="-O2"
CHOST="powerpc64-unknown-linux-gnu"
COMPILER=""
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/
config /var/bind /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache distlocks sandbox"
GENTOO_MIRRORS="http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="berkdb bitmap-fonts cups dvd f77 foomaticdb fortran gdbm gif imlib jpeg 
libwww mitshm nls oggvorbis oss pam perl png ppc64 python readline sdl slang ssl 
tcpd truetype xv"
Comment 1 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2004-11-30 15:28:24 UTC
could you please compile Amanda with CFLAGS="-g" and repeat the test to get a core file, and then post up a backtrace from gdb using it?
Comment 2 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2004-11-30 15:30:07 UTC
*** Bug 72921 has been marked as a duplicate of this bug. ***
Comment 3 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2004-12-01 14:56:12 UTC
please keep all of your messages on the bug tracker.
it makes it possible for other people with the problem to reference them later.

1. run:
CFLAGS="-g" CPPFLAGS="-g" USE="debug" FEATURES="nostrip keepwork keeptemp noclean" emerge amanda
2. open up /etc/limits, add a new line at the end:
* C50000000
3. restart [x]inetd (make sure only one of them is running)
4. run 'amcheck -c G5'
5. it should time out as in your original bug, and now you can go and look for a file named 'core' or 'core.PID'. it may be in root's home directory, or in amanda's home directory, or somewhere else (I suggest running 'updatedb'  and 'locate').
6. run 'gdb /usr/libexec/amandad corefile' (ensure the correct path to the corefile from #5).
7. in gdb, run 'bt' and give me the output of everything from the start of running gdb to the end of the 'bt' output.
Comment 4 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2004-12-07 17:06:57 UTC
ping
Comment 5 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2005-02-14 04:28:12 UTC
no response from user.
closing.