Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 56169 - tcptraceroute segfaults consistently
Summary: tcptraceroute segfaults consistently
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All All
: High normal (vote)
Assignee: Gentoo Netmon project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-07-05 13:40 UTC by Blu3
Modified: 2004-08-16 04:05 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 Blu3 2004-07-05 13:40:32 UTC
(is this an x86_64 bug? as in 64bit?)

Kernel 2.6.7, vanilla.

This pops up on dmesg when I try to run tcptraceroute.  Would someone mind explaining why this is being reported in kernel messages?

tcptraceroute[2148]: segfault at 000012500050f6d0 rip 0000002a957f79ec rsp 0000007fbffff020 error 6

#define ENXIO            6      /* No such device or address */


write(2, "Selected device cable, address 24.250.19.246", 44Selected device cable, address 24.250.19.246) = 44
write(2, ", port 35611", 12, port 35611)            = 12
write(2, " for outgoing packets\n", 22 for outgoing packets
) = 22
socket(PF_PACKET, SOCK_RAW, 768)        = 5
ioctl(5, 0x8933, 0x7fbffff420)          = 0
ioctl(5, 0x8927, 0x7fbffff420)          = 0
ioctl(5, 0x8933, 0x7fbffff420)          = 0
bind(5, {sa_family=AF_PACKET, proto=0x03, if1, pkttype=PACKET_HOST, addr(0)={0, }, 20) = 0
getsockopt(5, SOL_SOCKET, SO_ERROR, "\0\0\0\0", [216172855128227844]) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 6
ioctl(6, 0x8915, 0x7fbffff630)          = 0
ioctl(6, 0x891b, 0x7fbffff630)          = 0
close(6)                                = 0
setsockopt(5, SOL_SOCKET, 0x1a /* SO_??? */, "\1\0\0\0\0\0\0\0\260\270x\225*\0\0\0", 16) = 0
fcntl(5, F_GETFL)                       = 0x2 (flags O_RDWR|O_LARGEFILE)
fcntl(5, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
recvfrom(5, 0x7fbffff62f, 1, 32, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
fcntl(5, F_SETFL, O_RDWR)               = 0
setsockopt(5, SOL_SOCKET, 0x1a /* SO_??? */, "\27\0P\0\0\0\0\0\0\370P\0\0\0\0\0", 16) = 0
fcntl(5, F_SETFL, O_RDONLY|O_NONBLOCK)  = 0
getuid()                                = 0
setuid(0)                               = 0
write(2, "Tracing the path to slashdot.org (66.35.250.150) on TCP port 80, 30 hops max", 76Tracing the path to slashdot.org (66.35.250.150) on TCP port 80, 30 hops max) = 76
write(2, "\n", 1
)                       = 1
sendto(4, "E\0\0(]\364\0\0\1\6\0\0\30\372\23\366B#\372\226\213\33\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 40, 0, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("66.35.250.150")}, 16) = 40
select(6, [5], NULL, NULL, {3, 0})      = 1 (in [5], left {2, 980000})
recvfrom(5, "\0\16\246c\363\202\0\6*\313,p\10\0E\300\0008UM\0\0\377\1\306\302\n\4h\1\30\372\23\366\v\0i\224\0\0\0\0E\0\0(]\364\0\0\1\6\3622\30\372\23\366B#\372\226\213\33\0P\0\0\0\0", 106, MSG_TRUNC, {sa_family=AF_PACKET, proto=0x800, if1, pkttype=PACKET_HOST, addr(6)={1, 00062acb2c70}, [20]) = 70
ioctl(5, 0x8906, 0x7fbfffeff0)          = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

Note from David Miller on LKML:

>ioctl(5, 0x8906, 0x7fbfffeff0)          = 0
>> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
>> +++ killed by SIGSEGV +++


0x8906 is SIOCGSTAMP, aparently the app isn't using a large enough
structure to capture the timestamp, and the kernel is thus overwriting
some critical part of the stack causing it to crash.
Comment 1 Eldad Zack (RETIRED) gentoo-dev 2004-07-05 15:50:53 UTC
can you attach your .config for the kernel you're running?

can you try to run this under different kernels?

are you by any chance using 4K stacks?

and also, post the "emerge info" output, and the version of tcptraceroute you are using.


I don't know yet, but my guess is this will probably need to go upstream.
Comment 2 Blu3 2004-07-05 17:10:36 UTC
*  net-analyzer/tcptraceroute [ Masked ]
      Latest version available: 1.5_beta5
      Latest version installed: 1.4-r3

4k stacks are only on i386, this is x86_64

same result on different kernels

.config will get attached

Scott linux-2.6.7 # emerge info
Portage 2.0.50-r8 (gcc34-amd64-2004.1, gcc-3.4.0, glibc-2.3.3_pre20040207-r0,2.3.3_pre20040420-r0,2.3.3_pre20040529-r0,2.3.4.20040605-r0, 2.6.7)
=================================================================
System uname: 2.6.7 x86_64 5
Gentoo Base System version 1.5.1
Autoconf: sys-devel/autoconf-2.59-r4
Automake: sys-devel/automake-1.8.5-r1,sys-devel/automake-1.8.5
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="no"
CFLAGS="-fPIC -mtune=opteron -march=opteron -O3 -pipe -fexpensive-optimizations -ffast-math -mfpmath=sse,387 -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.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="-fPIC -mtune=opteron -march=opteron -O3 -pipe -fexpensive-optimizations -ffast-math -mfpmath=sse,387 -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache keepwork sandbox"
GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="GAPING_SECURITY_HOLE S3TC X X509 aac acpi acpi4linux aim alsa amd64 apache2 arts artswrappersuid audiofile avantgo avi bluetooth caps cddb cdf cdr chroot cle266 crypt cups devfs26 dga distcache divx4linux dnd dv dvb dvd dvdr encode esd ethereal faad fam fax ffmpeg fftw flash flexresp fmod foomaticdb freetype fs gd gdbm geoip gif gimp gimpprint glade glut gmp gphoto2 gpm gps gstreamer gtk gtk2 gtkhtml icq idea ieee1394 imagemagick imap imlib imlib2 ipv6 irda irmc jabber jack jack-caps jack-tmpfs java javascript jbig jpeg kadu-modules kadu-voice kde lcms libg++ libgda libwww lirc live ltsp mbox mcal md5sum mdb memlimit mikmod mmap mng mozcalendar mozilla mozinterfaceinfo mozp3p mozsvg mpeg mpeg4 mpi mplayer msn multilib multitarget ncurses nls nptl ntlm nvidia nviz oav odbc offensive oggvorbis openal opengl oscar oss pam parse-clocks pcap pdflib perl php pic plotutils png pnp portaudio postgres ppds pthreads python quicktime readline remote samba scanner sdl slang slp sndfile snmp socks5 sox speedo speex spell ssl t1lib tcpd theora tiff timidity transcode transparent-proxy truetype type1 usb v4l v4l2 wifi wmf xgetdefault xine xinerama xml2 xmms xosd xprint xrandr xv xvid yahoo yaz zlib zvbi"


also of note, if MALLOC_CHECK_ is set, it doesn't segfault at all.  I suspect if this is run through valgrind that it'll show up.
Comment 3 Blu3 2004-07-05 17:12:35 UTC
note, this is possibly fixed in 1.5beta
Comment 4 Eldad Zack (RETIRED) gentoo-dev 2004-07-06 00:28:20 UTC
Too bad I don't have a x86_64 machine to play around with.

So, the recent version is working good for you? I'll add a ~amd64 keyword if so.

Also, try to emerge 1.4 with a toned down CFLAGS and see if that helps, and maybe you can locate the offensive flag (if that's the case)
Comment 5 Eldad Zack (RETIRED) gentoo-dev 2004-08-16 04:05:20 UTC
I've moved beta5 to stable (on x86)

Please re-open this if it occurs on beta5 as well.