Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 92146 - TCPICK segfaults out when there's traffic
Summary: TCPICK segfaults out when there's traffic
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: AMD64 Project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-05-10 10:43 UTC by Chris Chance
Modified: 2005-06-25 03:32 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 Chris Chance 2005-05-10 10:43:35 UTC
i added the ~amd64 keyword to my machine and emerge tcpick... however whenever there is traffic on a port it seg faults and exists out.

Reproducible: Always
Steps to Reproduce:
1.add keyword ~amd64 to packages.keywords
2.emerge tcpick
3.tcpick

Actual Results:  
idl-metro ~ # tcpick -i eth0
Starting tcpick 0.2.1 at 2005-05-10 13:40 EDT
Timeout for connections is 600
tcpick: listening on eth0
Segmentation fault


Expected Results:  
Proper logging of eth0 traffic.

Portage 2.0.51.19 (default-linux/amd64/2004.3, gcc-3.4.3, glibc-2.3.4.20041102-
r1, 2.6.11-gentoo-r6 x86_64)
=================================================================
System uname: 2.6.11-gentoo-r6 x86_64 Intel(R) Xeon(TM) CPU 3.20GHz
Gentoo Base System version 1.6.11
Python:              dev-lang/python-2.3.4-r1 [2.3.4 (#1, Apr 21 2005, 
23:39:57)]
ccache version 2.3 [enabled]
dev-lang/python:     2.3.4-r1
sys-apps/sandbox:    [Not Present]
sys-devel/autoconf:  2.59-r6, 2.13
sys-devel/automake:  1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.5
sys-devel/binutils:  2.15.92.0.2-r8
sys-devel/libtool:   1.5.16
virtual/os-headers:  2.6.8.1-r4
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CFLAGS="-O3 -march=nocona -pipe -ffast-math -mfpmath=sse,387"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/
config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O3 -march=nocona -pipe -ffast-math -mfpmath=sse,387"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distlocks sandbox strict"
GENTOO_MIRRORS="http://open-systems.ufl.edu/mirrors/gentoo 
ftp://ftp.ussg.iu.edu/pub/linux/gentoo http://gentoo.mirrors.tds.net/gentoo 
ftp://gentoo.mirrors.tds.net/gentoo http://gentoo.seren.com/gentoo"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="amd64 apache2 bsh chroot extensions gd hardened hardenedphp ipv6 jpeg 
memlimit multilib ncurses nptl pam pax php pie readline ssl tcpd userlocales 
xml xml2xmlrpc xsl zlib userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, 
PORTDIR_OVERLAY
------------------------------------ STRACE ------------------

idl-metro ~ # strace tcpick
execve("/usr/bin/tcpick", ["tcpick"], [/* 26 vars */]) = 0
uname({sys="Linux", node="idl-metro", ...}) = 0
brk(0)                                  = 0x555555661000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x2aaaaaac1000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=27789, ...}) = 0
mmap(NULL, 27789, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2aaaaaac2000
close(3)                                = 0
open("/usr/lib/libpcap.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220J\0\0"..., 640) = 640
fstat(3, {st_mode=S_IFREG|0755, st_size=189392, ...}) = 0
mmap(NULL, 1237712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x2aaaaabc2000
mprotect(0x2aaaaabee000, 1057488, PROT_NONE) = 0
mmap(0x2aaaaacc2000, 188416, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0x2aaaaacc2000
mmap(0x2aaaaacf0000, 720, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2aaaaacf0000
close(3)                                = 0
open("/lib/tls/libc.so.6", O_RDONLY)    = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0.\310\1\0"..., 640) = 640
lseek(3, 64, SEEK_SET)                  = 64
read(3, "\6\0\0\0\5\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0"..., 616) = 616
lseek(3, 680, SEEK_SET)                 = 680
read(3, "\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\6\0\0\0"..., 32) = 32
fstat(3, {st_mode=S_IFREG|0755, st_size=1275544, ...}) = 0
lseek(3, 64, SEEK_SET)                  = 64
read(3, "\6\0\0\0\5\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0"..., 616) = 616
mmap(NULL, 2244552, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x2aaaaacf1000
mprotect(0x2aaaaae0c000, 1085384, PROT_NONE) = 0
mmap(0x2aaaaaef1000, 131072, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x100000) = 0x2aaaaaef1000
mmap(0x2aaaaaf11000, 16328, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2aaaaaf11000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x2aaaaaf15000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x2aaaaaf16000
mprotect(0x2aaaaaf0b000, 12288, PROT_READ) = 0
arch_prctl(ARCH_SET_FS, 0x2aaaaaf15ca0) = 0
munmap(0x2aaaaaac2000, 27789)           = 0
open("/dev/urandom", O_RDONLY)          = 3
read(3, "\322\256iYYa\345\"", 8)        = 8
close(3)                                = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x2aaaaaac2000
write(1, "important: `man 8 tcpick\' explai"..., 57important: `man 8 tcpick' 
explains all options available
) = 57
brk(0)                                  = 0x555555661000
brk(0x555555682000)                     = 0x555555682000
setitimer(ITIMER_REAL, {it_interval={1, 1}, it_value={1, 1}}, NULL) = 0
rt_sigaction(SIGALRM, {0x55555555c223, [ALRM], SA_RESTORER|SA_RESTART, 
0x2aaaaad1fa70}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {0x55555555c8bd, [INT], SA_RESTORER|SA_RESTART, 
0x2aaaaad1fa70}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTERM, {0x55555555c8bd, [TERM], SA_RESTORER|SA_RESTART, 
0x2aaaaad1fa70}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGQUIT, {0x55555555c8bd, [QUIT], SA_RESTORER|SA_RESTART, 
0x2aaaaad1fa70}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGHUP, {0x55555555c8bd, [HUP], SA_RESTORER|SA_RESTART, 
0x2aaaaad1fa70}, {SIG_DFL}, 8) = 0
open("/etc/localtime", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1267, ...}) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=1267, ...}) = 0
mmap(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x2aaaaaac3000
read(3, "TZif\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\4\0"..., 131072) = 
1267
close(3)                                = 0
munmap(0x2aaaaaac3000, 131072)          = 0
open("/etc/localtime", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1267, ...}) = 0
close(3)                                = 0
write(1, "Starting tcpick 0.2.1 at 2005-05"..., 46Starting tcpick 0.2.1 at 2005-
05-10 13:44 EDT
) = 46
write(1, "Timeout for connections is 600\n", 31Timeout for connections is 600
) = 31
socket(PF_NETLINK, SOCK_RAW, 0)         = 3
bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(3, {sa_family=AF_NETLINK, pid=21500, groups=00000000}, 
[68719476748]) = 0
sendto(3, "\24\0\0\0\22\0\1\3\356\362\200B\0\0\0\0\0\0\0\0", 20, 0, 
{sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov
(1)=[{"\360\0\0\0\20\0\2\0\356\362\200B\374S\0\0\0\0\1\0\1\0\0"..., 4096}], 
msg_controllen=0, msg_flags=0}, 0) = 2116
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov
(1)=[{"\24\0\0\0\3\0\2\0\356\362\200B\374S\0\0\0\0\0\0\1\0\0\0"..., 4096}], 
msg_controllen=0, msg_flags=0}, 0) = 20
sendto(3, "\24\0\0\0\26\0\1\3\357\362\200B\0\0\0\0\0\332\377\377", 20, 0, 
{sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov
(1)=[{"D\0\0\0\24\0\2\0\357\362\200B\374S\0\0\2\35\200\0\1\0\0"..., 4096}], 
msg_controllen=0, msg_flags=0}, 0) = 1088
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov
(1)=[{"\24\0\0\0\3\0\2\0\357\362\200B\374S\0\0\0\0\0\0\1\0\0\0"..., 4096}], 
msg_controllen=0, msg_flags=0}, 0) = 20
close(3)                                = 0
write(1, "tcpick: listening on eth0\n", 26tcpick: listening on eth0
) = 26
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
ioctl(3, SIOCGIFADDR, {ifr_name="eth0", ifr_addr={AF_INET, inet_addr
("72.252.15.246")}}) = 0
ioctl(3, SIOCGIFNETMASK, {ifr_name="eth0", ifr_netmask={AF_INET, inet_addr
("255.255.255.248")}}) = 0
close(3)                                = 0
socket(PF_PACKET, SOCK_RAW, 768)        = 3
ioctl(3, SIOCGIFINDEX, {ifr_name="lo", ifr_index=6}) = 0
ioctl(3, SIOCGIFHWADDR, {ifr_name="eth0", ifr_hwaddr=00:11:2f:7a:c5:bc}) = 0
ioctl(3, SIOCGIFINDEX, {ifr_name="eth0", ifr_index=1}) = 0
bind(3, {sa_family=AF_PACKET, proto=0x03, if1, pkttype=PACKET_HOST, addr(0)=
{0, }, 20) = 0
getsockopt(3, SOL_SOCKET, SO_ERROR, [17179869184], [4]) = 0
setsockopt(3, SOL_PACKET, PACKET_ADD_MEMBERSHIP, "\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0
\0", 16) = 0
recvfrom(3, "\0\2?0\215\310\0\4#\255\352K\10\0E\20\0|<\5@\0@\6\227\242"..., 
8192, MSG_TRUNC, {sa_family=AF_PACKET, proto=0x800, if3, 
pkttype=PACKET_OUTGOING, addr(6)={1, 000423adea4b}, [20]) = 138
ioctl(3, SIOCGSTAMP, 0x7fffffffda50)    = 0
recvfrom(3, "\0\2?0\215\310\0\4#\255\352K\10\0E\20\0|<\7@\0@\6\227\240"..., 
8192, MSG_TRUNC, {sa_family=AF_PACKET, proto=0x800, if3, 
pkttype=PACKET_OUTGOING, addr(6)={1, 000423adea4b}, [20]) = 138
ioctl(3, SIOCGSTAMP, 0x7fffffffda50)    = 0
recvfrom(3, "\0\21/z\305\274\0\10\243\3209`\10\0E\0\0000\313\201@\0"..., 8192, 
MSG_TRUNC, {sa_family=AF_PACKET, proto=0x800, if1, pkttype=PACKET_HOST, addr(6)=
{1, 0008a3d03960}, [20]) = 62
ioctl(3, SIOCGSTAMP, 0x7fffffffda50)    = 0
recvfrom(3, "\0\21/z\305\274\0\10\243\3209`\10\0E\0\0\201\212W\0\0."..., 8192, 
MSG_TRUNC, {sa_family=AF_PACKET, proto=0x800, if1, pkttype=PACKET_HOST, addr(6)=
{1, 0008a3d03960}, [20]) = 143
ioctl(3, SIOCGSTAMP, 0x7fffffffda50)    = 0
recvfrom(3, "\0\10\243\3209`\0\21/z\305\274\10\0E\5\0F\331`\0\0\33\21"..., 
8192, MSG_TRUNC, {sa_family=AF_PACKET, proto=0x800, if1, 
pkttype=PACKET_OUTGOING, addr(6)={1, 00112f7ac5bc}, [20]) = 84
ioctl(3, SIOCGSTAMP, 0x7fffffffda50)    = 0
recvfrom(3, "\0\10\243\3209`\0\21/z\305\274\10\0E\0\0(?C\0\0}\6\226"..., 8192, 
MSG_TRUNC, {sa_family=AF_PACKET, proto=0x800, if1, pkttype=PACKET_OUTGOING, addr
(6)={1, 00112f7ac5bc}, [20]) = 54
ioctl(3, SIOCGSTAMP, 0x7fffffffda50)    = 0
recvfrom(3, "\0\10\243\3209`\0\21/z\305\274\10\0E\0\0(?D\0\0}\6\226"..., 8192, 
MSG_TRUNC, {sa_family=AF_PACKET, proto=0x800, if1, pkttype=PACKET_OUTGOING, addr
(6)={1, 00112f7ac5bc}, [20]) = 54
ioctl(3, SIOCGSTAMP, 0x7fffffffda50)    = 0
recvfrom(3, "\0\21/z\305\274\0\10\243\3209`\10\0E\0\5\334tL@\0p\006"..., 8192, 
MSG_TRUNC, {sa_family=AF_PACKET, proto=0x800, if1, pkttype=PACKET_HOST, addr(6)=
{1, 0008a3d03960}, [20]) = 1514
ioctl(3, SIOCGSTAMP, 0x7fffffffda50)    = 0
recvfrom(3, "\0\10\243\3209`\0\21/z\305\274\10\0E\0\0<\315\211\0\0="..., 8192, 
MSG_TRUNC, {sa_family=AF_PACKET, proto=0x800, if1, pkttype=PACKET_OUTGOING, addr
(6)={1, 00112f7ac5bc}, [20]) = 74
ioctl(3, SIOCGSTAMP, 0x7fffffffda50)    = 0
open("/etc/nsswitch.conf", O_RDONLY)    = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=497, ...}) = 0
mmap(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x2aaaaaac3000
read(4, "# /etc/nsswitch.conf:\n# $Header:"..., 131072) = 497
read(4, "", 131072)                     = 0
close(4)                                = 0
munmap(0x2aaaaaac3000, 131072)          = 0
open("/etc/ld.so.cache", O_RDONLY)      = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=27789, ...}) = 0
mmap(NULL, 27789, PROT_READ, MAP_PRIVATE, 4, 0) = 0x2aaaaaac3000
close(4)                                = 0
open("/lib/tls/x86_64/libnss_db.so.2", O_RDONLY) = -1 ENOENT (No such file or 
directory)
stat("/lib/tls/x86_64", 0x7fffffffcff0) = -1 ENOENT (No such file or directory)
open("/lib/tls/libnss_db.so.2", O_RDONLY) = -1 ENOENT (No such file or 
directory)
stat("/lib/tls", {st_mode=S_IFDIR|0755, st_size=392, ...}) = 0
open("/lib/x86_64/libnss_db.so.2", O_RDONLY) = -1 ENOENT (No such file or 
directory)
stat("/lib/x86_64", 0x7fffffffcff0)     = -1 ENOENT (No such file or directory)
open("/lib/libnss_db.so.2", O_RDONLY)   = -1 ENOENT (No such file or directory)
stat("/lib", {st_mode=S_IFDIR|0755, st_size=4104, ...}) = 0
open("/usr/lib/tls/x86_64/libnss_db.so.2", O_RDONLY) = -1 ENOENT (No such file 
or directory)
stat("/usr/lib/tls/x86_64", 0x7fffffffcff0) = -1 ENOENT (No such file or 
directory)
open("/usr/lib/tls/libnss_db.so.2", O_RDONLY) = -1 ENOENT (No such file or 
directory)
stat("/usr/lib/tls", 0x7fffffffcff0)    = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64/libnss_db.so.2", O_RDONLY) = -1 ENOENT (No such file or 
directory)
stat("/usr/lib/x86_64", 0x7fffffffcff0) = -1 ENOENT (No such file or directory)
open("/usr/lib/libnss_db.so.2", O_RDONLY) = -1 ENOENT (No such file or 
directory)
stat("/usr/lib", {st_mode=S_IFDIR|0755, st_size=17456, ...}) = 0
munmap(0x2aaaaaac3000, 27789)           = 0
open("/etc/ld.so.cache", O_RDONLY)      = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=27789, ...}) = 0
mmap(NULL, 27789, PROT_READ, MAP_PRIVATE, 4, 0) = 0x2aaaaaac3000
close(4)                                = 0
open("/lib/libnss_files.so.2", O_RDONLY) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220#\0\0"..., 640) = 640
lseek(4, 624, SEEK_SET)                 = 624
read(4, "\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\4\0\0\0"..., 32) = 32
fstat(4, {st_mode=S_IFREG|0755, st_size=44360, ...}) = 0
mmap(NULL, 1090536, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 
0x2aaaaaf17000
mprotect(0x2aaaaaf21000, 1049576, PROT_NONE) = 0
mmap(0x2aaaab017000, 45056, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0) = 0x2aaaab017000
close(4)                                = 0
munmap(0x2aaaaaac3000, 27789)           = 0
open("/etc/services", O_RDONLY)         = 4
fcntl(4, F_GETFD)                       = 0
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
fstat(4, {st_mode=S_IFREG|0644, st_size=29278, ...}) = 0
mmap(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x2aaaaaac3000
read(4, "# /etc/services:\n# $Id: services"..., 131072) = 29278
read(4, "", 131072)                     = 0
close(4)                                = 0
munmap(0x2aaaaaac3000, 131072)          = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Comment 1 Danny van Dyk (RETIRED) gentoo-dev 2005-05-15 14:43:09 UTC
phi / # tcpick -i eth0
Starting tcpick 0.2.1 at 2005-05-15 23:44 CEST
Timeout for connections is 600
tcpick: listening on eth0

485 packets captured
0 tcp sessions detected

Not reproducible on my system. ATs, please test on a stable system.
Comment 2 Chris Chance 2005-05-15 20:29:28 UTC
Well not much i can add besides the strace... that i did ... only difference i can think of is the fact my pc is handling close to 1000pps
Comment 3 Danny van Dyk (RETIRED) gentoo-dev 2005-06-25 03:32:21 UTC
Ok, then let's go an debug it properly :-)

Please run this:
  FEATURES="nostrip" CFLAGS="-O0 -ggdb -g3" CXXFLAGS="-O0 -ggdb -g3" emerge
net-analyzer/tcpick

After that:
  ulimit -c unlimited   # allows core dumps to be dropped
  gdb tcpick            # starts gdb
and type in:
  run -i eth0           # runs tcpick inside gdb

In case of a segfault, tcpcik will dump a "core" file. Please attach this to the
Bug. Further, when running tcpick in gdb, a segfault will throw you back into
gdb console. When this happens, just type in
  bt
and add the output here.

Please reopen this BUG when you attach additional info.