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 +++
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.
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
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.