Re: [squid-users] Building squid 3.1.0.13 on MS-Windows (minGW)

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Mon, 17 Aug 2009 00:25:03 +1200

CC'ing to squi-dev. This really should be over there.
Maybe Guido can help.

Nevil Thatcher wrote:
> I have attempted this on 2 Widows PC's the First (work) Windows XP and at hoem Windows 7
>
> Using squid -X I get the following output
>
> C:\squid\sbin>squid -X
> 2009/08/16 20:18:11.683| command-line -X overrides: ALL,7
> 2009/08/16 20:18:11.683| signal: sig=31 func=sigusr2_handle: (0) No error
> 2009/08/16 20:18:11.683| CacheManager::registerAction: registering legacy mem
> 2009/08/16 20:18:11.683| CacheManager::findAction: looking for action mem
> 2009/08/16 20:18:11.683| Action not found.
> 2009/08/16 20:18:11.683| CacheManager::registerAction: registered mem
> 2009/08/16 20:18:11.683| aclDestroyACLs: invoked
> 2009/08/16 20:18:11.683| ACL::Prototype::Registered: invoked for type src
> 2009/08/16 20:18:11.683| ACL::Prototype::Registered: yes
> 2009/08/16 20:18:11.683| ACL::FindByName 'all'
> 2009/08/16 20:18:11.683| ACL::FindByName found no match
> 2009/08/16 20:18:11.683| aclParseAclLine: Creating ACL 'all'
> 2009/08/16 20:18:11.683| ACL::Prototype::Factory: cloning an object for type 'src'
> 2009/08/16 20:18:11.683| aclIpParseIpData: all
> 2009/08/16 20:18:11.683| aclIpParseIpData: magic 'all' found.
> 2009/08/16 20:18:11.683| aclParseAccessLine: looking for ACL name 'all'
> 2009/08/16 20:18:11.683| ACL::FindByName 'all'
> 2009/08/16 20:18:11.683| Processing Configuration File: c:/squid/etc/squid.conf(depth 0)
> 2009/08/16 20:18:11.683| Processing: 'acl manager proto cache_object'
> 2009/08/16 20:18:11.683| ACL::Prototype::Registered: invoked for type proto
> 2009/08/16 20:18:11.683| ACL::Prototype::Registered: yes
> 2009/08/16 20:18:11.683| ACL::FindByName 'manager'
> 2009/08/16 20:18:11.683| ACL::FindByName found no match
> 2009/08/16 20:18:11.698| aclParseAclLine: Creating ACL 'manager'
> 2009/08/16 20:18:11.698| ACL::Prototype::Factory: cloning an object for type 'proto'
> 2009/08/16 20:18:11.698| Processing: 'acl localhost src 127.0.0.1/32'
> 2009/08/16 20:18:11.698| ACL::Prototype::Registered: invoked for type src
> 2009/08/16 20:18:11.698| ACL::Prototype::Registered: yes
> 2009/08/16 20:18:11.698| ACL::FindByName 'localhost'
> 2009/08/16 20:18:11.698| ACL::FindByName found no match
> 2009/08/16 20:18:11.698| aclParseAclLine: Creating ACL 'localhost'
> 2009/08/16 20:18:11.698| ACL::Prototype::Factory: cloning an object for type 'src'
> 2009/08/16 20:18:11.698| aclIpParseIpData: 127.0.0.1/32
> 2009/08/16 20:18:11.698| aclIpParseIpData: '127.0.0.1/32' matched: SCAN3-v4: %[0123456789.]/%[0123456789.]
> 2009/08/16 20:18:11.698| aclIpParseIpData: *addr1:1 addr1:127.0.0.1 q->addr1: 0.0.0.0
> 2009/08/16 20:18:11.698| aclIpParseIpData: unknown first address in '127.0.0.1/32'
> 2009/08/16 20:18:11.698| leave_suid: PID 4208 called
> FATAL: Bungled squid.conf line 2: acl localhost src 127.0.0.1/32
> Squid Cache (Version 3.1.0.13): Terminated abnormally.
> CPU Usage: 0.016 seconds = 0.000 user + 0.016 sys
> Maximum Resident Size: 5676 KB
> Page faults with physical i/o: 1459
>
>
> Note: I added an extra debug statement above the point it is failing
>
> /* Decode addr1 */
> debugs(28, 0, "aclIpParseIpData: *addr1:" << *addr1 << " addr1:" << addr1 << " q->addr1: " << q->addr1);
> if (!*addr1 || !(q->addr1 = addr1)) {
> debugs(28, 0, "aclIpParseIpData: unknown first address in '" << t << "'");
> delete q;
> self_destruct();
> return NULL;

Your statement needs to be below as well. Before the failure point the
q->addr1 is empty.

It's also high time the IpAddress.cc code debugs were activated.
If you can add this patch some other things will start to show:

=== modified file 'src/ip/IpAddress.cc'
--- src/ip/IpAddress.cc 2009-04-07 13:51:57 +0000
+++ src/ip/IpAddress.cc 2009-08-16 12:12:14 +0000
@@ -36,6 +36,7 @@

  #include "config.h"
  #include "ip/IpAddress.h"
+#include "Debug.h"
  #include "util.h"

@@ -56,15 +57,6 @@
  #error "INET6 defined but has been deprecated! Try running bootstrap
and configure again."
  #endif

-/* We want to use the debug routines when running as module of squid. */
-/* otherwise fallback to printf if those are not available. */
-#ifndef SQUID_DEBUG
-# define debugs(a,b,c) // drop.
-#else
-#warning "IpAddress built with Debugs!!"
-# include "../src/Debug.h"
-#endif
-
  #if !USE_IPV6
  // So there are some places where I will drop to using Macros too.
  // At least I can restrict them to this file so they don't corrupt
the app with C code.

Amos

>
> -----Original Message-----
> From: Amos Jeffries [mailto:squid3_at_treenet.co.nz]
> Sent: Sunday, 16 August 2009 2:22 PM
> To: Nevil Thatcher
> Cc: squid-users_at_squid-cache.org
> Subject: Re: [squid-users] Building squid 3.1.0.13 on MS-Windows (minGW)
>
> Nevil Thatcher wrote:
>> I have tried downgrading
>>
>> minGW runtime from 3.15.2 to 3.14
>> w32api 3.13 to 3.11
>>
>> and rebuild - no change to result, squid still fails to start with error:
>>
>> 2009/08/16 11:41:30| aclIpParseIpData: unknown first address in '127.0.0.1/32'
>> FATAL: Bungled squid.conf line 2: acl localhost src 127.0.0.1/32
>> Squid Cache (Version 3.1.0.13): Terminated abnormally.
>> CPU Usage: 0.016 seconds = 0.000 user + 0.016 sys
>> Maximum Resident Size: 5644 KB
>> Page faults with physical i/o: 1461
>>
>>
>> I alos download squid-3.0.18STABLE src and compiled using same build environment and this worked successfully.
>>
>> So it appears to be something with the squid 3.1 build??
>
> Yes. 3.1 introduces a few different functions for IPv6. The parsing
> syntax is also sightly different.
>
> The first thing to try is see what the parse shows when squid is run
> with the -X option. There should be some lines above the error
> indicating whether the IP text was converted to anything.
>
>
>
> What version of windows is this?
> (I'm not familiar with the API numberings vs releases)
>
> It may be one of the functions needs a windows wrapper. There are a
> small set of these in compat/os/mswin.h (look for "namespace Squid" to
> see how its done.
>
> It is a bit strange that that does not appear at build time though.
>
> Amos
>
>> Cheers
>> Nevil
>> -----Original Message-----
>> From: Nevil Thatcher [mailto:nevilth_at_nat.com.au]
>> Sent: Saturday, 15 August 2009 5:15 PM
>> To: 'Henrik Nordstrom'
>> Cc: 'squid-users_at_squid-cache.org'
>> Subject: RE: [squid-users] Building squid 3.1.0.13 on MS-Windows (minGW)
>>
>> Hi Henrik,
>>
>> We are using MinGW 5.1.4
>>
>> I tried compiling with ac_cv_func_inet_pton=no but no change in behaviour.
>>
>>
>> I will try to get a previous version of MinGW and try that
>>
>> Cheers
>> Nevil
>>
>> -----Original Message-----
>> From: Henrik Nordstrom [mailto:henrik_at_henriknordstrom.net]
>> Sent: Saturday, 15 August 2009 8:30 AM
>> To: Nevil Thatcher
>> Cc: squid-users_at_squid-cache.org
>> Subject: Re: [squid-users] Building squid 3.1.0.13 on MS-Windows (minGW)
>>
>> lör 2009-08-15 klockan 07:45 +1000 skrev Nevil Thatcher:
>>
>>> 2009/08/14 22:45:11| aclIpParseIpData: unknown first address in
>>> '127.0.0.1/32'
>>> FATAL: Bungled squid.conf line 2: acl localhost src 127.0.0.1/32
>> Sounds like inet_pton is broken in your MinGW install somehow.. or that
>> inet_pton is not what we expect it to be...
>>
>> Which MinGW version are you using?
>>
>> Also try adding ac_cv_func_inet_pton=no to your configure line, forcing
>> it to use the bundled inet_pton version instead of what is provided by
>> MinGW.
>>
>> Regards
>> Henrik
>>
>>
>
>

-- 
Please be using
   Current Stable Squid 2.7.STABLE6 or 3.0.STABLE18
   Current Beta Squid 3.1.0.13
Received on Sun Aug 16 2009 - 12:25:21 MDT

This archive was generated by hypermail 2.2.0 : Mon Aug 17 2009 - 12:00:03 MDT