When trying to run a mtr on FreeBSD, this error always occurs: Error decoding localhost address mtr: Failure to start mtr-packet: Invalid argument This occurs with the mtr-0.93_1 package and the mtr-nox11-0.93_1 package SO version: 12.1-RELEASE-p2 FreeBSD 12.1-RELEASE-p2 GENERIC amd64
The same problem was reported in bug #243121 and fixed in mtr 0.93_1. I have no idea what happened on your box. Could you give more information about your configuration? And please confirm: - /usr/local/sbin/mtr-packet has setuid bit - You do not have an old installation with outdated binaries. % ls -la /usr/local/sbin/mtr-packet -r-sr-xr-x 1 root wheel 39920 Jul 27 23:18 /usr/local/sbin/mtr-packet*
(In reply to Sunpoet Po-Chuan Hsieh from comment #1) After updating or freebsd moved to run mtr The settings were as you mentioned. Installing a system from a FreeBSD 12.1 ISO a few months ago.
Please confirm if the problem still exists in mtr 0.94.
Hello I tested it on my FreeBSD router which is in the version: 12.1-RELEASE-p10 FreeBSD 12.1-RELEASE-p10 GENERIC amd64 Curious that I have other FreeBSD servers in the same version that this does not occur. # mtr 1.1.1.1 Error decoding localhost address (connect failed/Network is unreachable) mtr: Failure to start mtr-packet: Invalid argument The above test was done in version 0.94 and in version mtr-nox11-0.94
I cannot reproduce this problem. If you have any non-default configuration (e.g. options), please revert it and try again. Thanks!
In this moment this problem not occur anymore
FYI, I can reproduce this with mtr-nox11 0.95_1 on my 14.0-RELEASE-p3. I use a pretty strict set of pf rules. The extra line it emits is: mtr-packet: Unable to send with swapped length: Invalid argument before mtr: Failure to start mtr-packet: Invalid argument the relevant truss output is: write(4,"1 check-support feature send-pro"...,35) = 35 (0x23) mtr-packet: Unable to send with swapped length: Invalid argument read(5,0x820fbc870,4095) = 0 (0x0) mtr: write(2,"mtr: ",5) = 5 (0x5) Failure to start mtr-packetwrite(2,"Failure to start mtr-packet",27) = 27 (0x1b) : write(2,": ",2) = 2 (0x2) issetugid() = 0 (0x0) fstatat(AT_FDCWD,"/usr/share/nls/C/libc.cat",0x820fbe6d0,0x0) ERR#2 'No such file or directory' fstatat(AT_FDCWD,"/usr/share/nls/libc/C",0x820fbe6d0,0x0) ERR#2 'No such file or directory' fstatat(AT_FDCWD,"/usr/local/share/nls/C/libc.cat",0x820fbe6d0,0x0) ERR#2 'No such file or directory' fstatat(AT_FDCWD,"/usr/local/share/nls/libc/C",0x820fbe6d0,0x0) ERR#2 'No such file or directory' Invalid argument write(2,"Invalid argument\n",17) = 17 (0x11) close(1) = 0 (0x0) close(2) = 0 (0x0) exit(0x1) Just out of curiosity, I sent an example output to mtr-packet used with truss, here's the output: # echo "42 send-probe ip-4 127.0.0.1"|truss mtr-packet mmap(0x0,135168,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 43654991314944 (0x27b438400000) mprotect(0x2651aa9a0000,4096,PROT_READ) = 0 (0x0) issetugid() = 0 (0x0) sigfastblock(0x1,0x2651aa9a2ba0) = 0 (0x0) open("/etc/libmap.conf",O_RDONLY|O_CLOEXEC,07020030030) = 3 (0x3) fstat(3,{ mode=-rw-r--r-- ,inode=230746,size=35,blksize=4096 }) = 0 (0x0) read(3,"includedir /usr/local/etc/libmap"...,35) = 35 (0x23) close(3) = 0 (0x0) open("/usr/local/etc/libmap.d",O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC,0165) ERR#2 'No such file or directory' open("/var/run/ld-elf.so.hints",O_RDONLY|O_CLOEXEC,010007134) = 3 (0x3) read(3,"Ehnt\^A\0\0\0\M^@\0\0\0\M^A\0\0"...,128) = 128 (0x80) fstat(3,{ mode=-r--r--r-- ,inode=348065,size=257,blksize=4096 }) = 0 (0x0) pread(3,"/lib:/usr/lib:/usr/lib/compat:/u"...,129,0x80) = 129 (0x81) close(3) = 0 (0x0) open("/lib/libncursesw.so.9",O_RDONLY|O_CLOEXEC|O_VERIFY,00) = 3 (0x3) fstat(3,{ mode=-r--r--r-- ,inode=230056,size=220720,blksize=131072 }) = 0 (0x0) mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34941136896 (0x822a77000) mmap(0x0,233472,PROT_NONE,MAP_GUARD,-1,0x0) = 34945355776 (0x822e7d000) mmap(0x822e7d000,77824,PROT_READ,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0) = 34945355776 (0x822e7d000) mmap(0x822e90000,143360,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x12000) = 34945433600 (0x822e90000 ) mmap(0x822eb3000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x34000) = 34945576960 (0x822eb3000) mmap(0x822eb4000,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x34000) = 34945581056 (0x822eb4000) munmap(0x822a77000,4096) = 0 (0x0) close(3) = 0 (0x0) open("/lib/libm.so.5",O_RDONLY|O_CLOEXEC|O_VERIFY,00) = 3 (0x3) fstat(3,{ mode=-r--r--r-- ,inode=229918,size=236928,blksize=131072 }) = 0 (0x0) mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34947686400 (0x8230b6000) mmap(0x0,249856,PROT_NONE,MAP_GUARD,-1,0x0) = 34959273984 (0x823bc3000) mmap(0x823bc3000,77824,PROT_READ,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0) = 34959273984 (0x823bc3000) mmap(0x823bd6000,159744,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x12000) = 34959351808 (0x823bd6000 ) mmap(0x823bfd000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x38000) = 34959511552 (0x823bfd000) mmap(0x823bfe000,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x38000) = 34959515648 (0x823bfe000) munmap(0x8230b6000,4096) = 0 (0x0) close(3) = 0 (0x0) open("/lib/libc.so.7",O_RDONLY|O_CLOEXEC|O_VERIFY,00) = 3 (0x3) fstat(3,{ mode=-r--r--r-- ,inode=329310,size=1946744,blksize=131072 }) = 0 (0x0) mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34980495360 (0x825000000) mmap(0x0,4194304,PROT_NONE,MAP_GUARD,-1,0x0) = 34964271104 (0x824087000) mmap(0x824087000,540672,PROT_READ,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0) = 34964271104 (0x824087000) mmap(0x82410b000,1347584,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x83000) = 34964811776 (0x82410b00 0) mmap(0x824254000,40960,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x1cb000) = 34966159360 (0x824254000) mmap(0x82425e000,28672,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x1d4000) = 34966200320 (0x82425e000) mmap(0x824265000,2236416,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,-1,0x0) = 34966228992 (0x824265000) munmap(0x825000000,4096) = 0 (0x0) close(3) = 0 (0x0) open("/lib/libtinfow.so.9",O_RDONLY|O_CLOEXEC|O_VERIFY,00) = 3 (0x3) fstat(3,{ mode=-r--r--r-- ,inode=229558,size=255512,blksize=131072 }) = 0 (0x0) mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) = 34983145472 (0x825287000) mmap(0x0,270336,PROT_NONE,MAP_GUARD,-1,0x0) = 34991431680 (0x825a6e000) mmap(0x825a6e000,126976,PROT_READ,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x0) = 34991431680 (0x825a6e000) mmap(0x825a8d000,114688,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREFAULT_READ,3,0x1e000) = 34991558656 (0x825a8d000 ) mmap(0x825aa9000,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x39000) = 34991673344 (0x825aa9000) mmap(0x825aae000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFAULT_READ,3,0x3d000) = 34991693824 (0x825aae000) mmap(0x825aaf000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANON,-1,0x0) = 34991697920 (0x825aaf000) munmap(0x825287000,4096) = 0 (0x0) close(3) = 0 (0x0) mprotect(0x824254000,36864,PROT_READ) = 0 (0x0) mprotect(0x825aa9000,16384,PROT_READ) = 0 (0x0) mprotect(0x824254000,36864,PROT_READ|PROT_WRITE) = 0 (0x0) mprotect(0x824254000,36864,PROT_READ) = 0 (0x0) readlink("/etc/malloc.conf",0x8210c9500,1024) ERR#2 'No such file or directory' issetugid() = 0 (0x0) mmap(0x0,2097152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(21),-1,0x0) = 43654993412096 (0x27b438600000) mmap(0x0,2097152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-1,0x0) = 43654995509248 (0x27b438800000) mmap(0x0,4194304,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(21),-1,0x0) = 43654997606400 (0x27b438a00000) socket(PF_INET,SOCK_RAW,IPPROTO_RAW) = 3 (0x3) setsockopt(3,IPPROTO_IP,IP_HDRINCL,0x8210c988c,4) = 0 (0x0) socket(PF_INET,SOCK_RAW,IPPROTO_ICMP) = 4 (0x4) socket(PF_INET6,SOCK_RAW,IPPROTO_ICMPV6) = 5 (0x5) socket(PF_INET6,SOCK_RAW,IPPROTO_UDP) = 6 (0x6) socket(PF_INET6,SOCK_RAW,IPPROTO_ICMPV6) = 7 (0x7) getgid() = 0 (0x0) setgid(0x0) = 0 (0x0) getuid() = 0 (0x0) setuid(0x0) = 0 (0x0) geteuid() = 0 (0x0) getuid() = 0 (0x0) getegid() = 0 (0x0) getgid() = 0 (0x0) fcntl(4,F_GETFL,) = 2 (0x2) fcntl(4,F_SETFL,O_RDWR|O_NONBLOCK) = 0 (0x0) fcntl(7,F_GETFL,) = 2 (0x2) fcntl(7,F_SETFL,O_RDWR|O_NONBLOCK) = 0 (0x0) socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP) = 8 (0x8) connect(8,{ AF_INET 127.0.0.1:1 },16) = 0 (0x0) getsockname(8,{ AF_INET 127.0.0.1:52086 },0x8210c72fc) = 0 (0x0) close(8) = 0 (0x0) getpid() = 60034 (0xea82) sendto(3,"E\0\0\^\\0\0\0\0\M^?\^A\0\0\^?\0"...,28,0,{ AF_INET 127.0.0.1:0 },16) ERR#13 'Permission denied' getpid() = 60034 (0xea82) sendto(3,"E\0\^\\0\0\0\0\0\M^?\^A\0\0\^?\0"...,28,0,{ AF_INET 127.0.0.1:0 },16) ERR#22 'Invalid argument' mtr-packet: write(2,"mtr-packet: ",12) = 12 (0xc) Unable to send with swapped lengthwrite(2,"Unable to send with swapped leng"...,34) = 34 (0x22) : write(2,": ",2) = 2 (0x2) issetugid() = 0 (0x0) fstatat(AT_FDCWD,"/usr/share/nls/C/libc.cat",0x8210c70f0,0x0) ERR#2 'No such file or directory' fstatat(AT_FDCWD,"/usr/share/nls/libc/C",0x8210c70f0,0x0) ERR#2 'No such file or directory' fstatat(AT_FDCWD,"/usr/local/share/nls/C/libc.cat",0x8210c70f0,0x0) ERR#2 'No such file or directory' fstatat(AT_FDCWD,"/usr/local/share/nls/libc/C",0x8210c70f0,0x0) ERR#2 'No such file or directory' Invalid argument write(2,"Invalid argument\n",17) = 17 (0x11) exit(0x1) process exit, rval = 1 Not sure what gives.