Re: [squid-users] Squid 3.x and wccp2_router crash

From: Don Brearley <donbrearley_at_hibbing.edu>
Date: Thu, 19 Dec 2013 10:30:38 -0600

Hi Amos,

I applied your patch to 3.3.9 and recompiled/reinstalled. Same issue
persists. Here is your
requested information:

root_at_hib-wccp-1:~ # gdb /usr/sbin/squid
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for
details.
This GDB was configured as "amd64-marcel-freebsd"...
(gdb) run -NYCd3
Starting program: /usr/sbin/squid -NYCd3
[New LWP 100158]
[New Thread 803407400 (LWP 100158/squid)]
2013/12/19 10:27:40| Starting Squid Cache version 3.3.9 for
amd64-unknown-freebsd9.2...
2013/12/19 10:27:40| Process ID 69641
2013/12/19 10:27:40| Process Roles: master worker
2013/12/19 10:27:40| With 11095 file descriptors available
2013/12/19 10:27:40| Initializing IP Cache...
2013/12/19 10:27:40| DNS Socket created at [::], FD 5
2013/12/19 10:27:40| DNS Socket created at 0.0.0.0, FD 6
2013/12/19 10:27:40| Adding domain XXXX from /etc/resolv.conf
2013/12/19 10:27:40| Adding nameserver XXXX from /etc/resolv.conf
2013/12/19 10:27:40| Adding nameserver XXXX from /etc/resolv.conf
2013/12/19 10:27:40| Logfile: opening log
daemon:/var/log/squid/access_log
2013/12/19 10:27:40| Logfile Daemon: opening log
/var/log/squid/access_log
2013/12/19 10:27:40| WARNING: no_suid: setuid(0): (1) Operation not
permitted
2013/12/19 10:27:40| WARNING: no_suid: setuid(0): (1) Operation not
permitted
2013/12/19 10:27:41| Unlinkd pipe opened on FD 12
2013/12/19 10:27:41| Store logging disabled
2013/12/19 10:27:41| Swap maxSize 1048576 + 262144 KB, estimated 100824
objects
2013/12/19 10:27:41| Target number of buckets: 5041
2013/12/19 10:27:41| Using 8192 Store buckets
2013/12/19 10:27:41| Max Mem size: 262144 KB
2013/12/19 10:27:41| Max Swap size: 1048576 KB
2013/12/19 10:27:41| Rebuilding storage in /cache (dirty log)
2013/12/19 10:27:41| Using Least Load store dir selection
2013/12/19 10:27:41| Set Current Directory to /usr/var/cache/squid
2013/12/19 10:27:41| Loaded Icons.
2013/12/19 10:27:41| Accepting WCCPv2 messages on port 2048, FD 15.
2013/12/19 10:27:41| Initialising all WCCPv2 lists
2013/12/19 10:27:41| HTCP Disabled.
2013/12/19 10:27:41| Squid plugin modules loaded: 0
2013/12/19 10:27:41| Accepting HTTP Socket connections at
local=[::]:3128 remote=[::] FD 16 flags=9
2013/12/19 10:27:41| Done reading /cache swaplog (0 entries)
2013/12/19 10:27:41| Store rebuilding is 0.00% complete
2013/12/19 10:27:41| Finished rebuilding storage from disk.
2013/12/19 10:27:41| 0 Entries scanned
2013/12/19 10:27:41| 0 Invalid entries.
2013/12/19 10:27:41| 0 With invalid flags.
2013/12/19 10:27:41| 0 Objects loaded.
2013/12/19 10:27:41| 0 Objects expired.
2013/12/19 10:27:41| 0 Objects cancelled.
2013/12/19 10:27:41| 0 Duplicate URLs purged.
2013/12/19 10:27:41| 0 Swapfile clashes avoided.
2013/12/19 10:27:41| Took 0.02 seconds ( 0.00 objects/sec).
2013/12/19 10:27:41| Beginning Validation Procedure
2013/12/19 10:27:41| Completed Validation Procedure
2013/12/19 10:27:41| Validated 0 Entries
2013/12/19 10:27:41| store_swap_size = 0.00 KB
2013/12/19 10:27:42| storeLateRelease: released 0 objects
2013/12/19 10:27:42| Ip::Address::GetSockAddr : Cannot convert non-IPv4
to IPv4. from [::]
Assertion failed: (false), function GetSockAddr, file Address.cc, line
966.

Program received signal SIGABRT, Aborted.
[Switching to Thread 803407400 (LWP 100158/squid)]
0x0000000802cbe23c in thr_kill () from /lib/libc.so.7

(gdb) backtrace
#0 0x0000000802cbe23c in thr_kill () from /lib/libc.so.7
#1 0x0000000802d6263b in abort () from /lib/libc.so.7
#2 0x0000000802d45d35 in __assert () from /lib/libc.so.7
#3 0x00000000006805e7 in Ip::Address::GetSockAddr (this=0x7fffffffd8e0,
buf=@0x7fffffffd910) at Address.cc:966
#4 0x0000000000#5 0x00000000006df030 in Comm::DoSelect (msec=) at ModKqueue.cc:301
#6 0x0000000000679c9d in CommSelectEngine::checkEvents (this=,
timeout=0) at comm.cc:2088
#7 0x0000000000523ccc in EventLoop::checkEngine (this=0x7fffffffda70,
engine=0x7fffffffdaf0, primary=) at EventLoop.cc:52
#8 0x0000000000523ee5 in EventLoop::runOnce (this=0x7fffffffda70) at
EventLoop.cc:126
#9 0x00000000005240a8 in EventLoop::run (this=0x7fffffffda70) at
EventLoop.cc:96
#10 0x0000000000598f53 in SquidMain (argc=2, argv=) at main.cc:1520
#11 0x00000000005992b8 in SquidMainSafe (argc=, argv=) at main.cc:1242
#12 0x00000000004b6941 in _start ()
#13 0x00000008009cf000 in ?? ()
#14 0x0000000000000000 in ?? ()

(gdb) frame 4
#4 0x0000000000604e8f in wccp2HandleUdp (sock=15, not_used=) at
wccp2.cc:1182
1182 from_tmp.GetSockAddr(from);

(gdb) print len
$1 = -1

(gdb) print from
$2 = {sin_len = 255 '�', sin_family = 255 '�', sin_port = 65535,
sin_addr = {s_addr = 4294967295}, sin_zero = "��������"}

(gdb) print from_tmp
$3 = {m_SocketAddr = {sin6_len = 0 '\0', sin6_family = 0 '\0', sin6_port
= 0, sin6_flowinfo = 0, sin6_addr = {__u6_addr = {__u6_addr8 = '\0' ,
__u6_addr16 = {0, 0,
          0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}, sin6_scope_id
= 0}, static STRLEN_IP4A = , static STRLEN_IP4R = 28, static STRLEN_IP4S
= ,
  static MAX_IP4_STRLEN = , static STRLEN_IP6A = , static STRLEN_IP6R =
75, static STRLEN_IP6S = ,
  static MAX_IP6_STRLEN = , static v4_localhost = {__u6_addr =
{__u6_addr8 =
"\000\000\000\000\000\000\000\000\000\000��\177\000\000\001",
__u6_addr16 = {0, 0, 0, 0, 0,
        65535, 127, 256}, __u6_addr32 = {0, 0, 4294901760, 16777343}}},
static v4_anyaddr = {__u6_addr = {__u6_addr8 =
"\000\000\000\000\000\000\000\000\000\000��\000\000\000",
      __u6_addr16 = {0, 0, 0, 0, 0, 65535, 0, 0}, __u6_addr32 = {0, 0,
4294901760, 0}}}, static v4_noaddr = {__u6_addr = {
      __u6_addr8 = "\000\000\000\000\000\000\000\000\000\000������",
__u6_addr16 = {0, 0, 0, 0, 0, 65535, 65535, 65535}, __u6_addr32 = {0, 0,
4294901760, 4294967295}}},
  static v6_noaddr = {__u6_addr = {__u6_addr8 = '�' , __u6_addr16 =
{65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535}, __u6_addr32 =
{4294967295, 4294967295,
        4294967295, 4294967295}}}}

(gdb)

I hope you find this useful :) Thank you for your work on this issue!

- Don
Received on Thu Dec 19 2013 - 16:32:33 MST

This archive was generated by hypermail 2.2.0 : Fri Dec 20 2013 - 12:00:06 MST