Re: Squid SMP on MacOS

2013-02-24 Thread Robert Collins
On 25 February 2013 18:24, Alex Rousskov
 wrote:
> On 02/24/2013 10:02 PM, Amos Jeffries wrote:
>
>> I'm trying to get the MacOS builds of Squid going again but having some
>> problems with shm_open() in the Rock storage unit-tests.
>>
>> 1) MacOS defines the max name length we can pass to shm_open() at 30
>> bytes. "/squid-testRock__testRockSearch" being 35 or so bytes.
>>   Cutting the definition in testRock.cc down so it becomes
>> "/squid-testRock_Search" resolves that, but then we hit (2).
>
> That TESTDIR name is wrong because it is used for more than just
> "search" testing. I bet the Rock name mimicked the UFS test name, but
> the UFS name is wrong too, for the same reason. We should use
> "cppUnitTestRock" and "cppUnitTestUfs" or something similarly unique and
> short, I guess.

We should use a random name; squidtest-10-bytes-of-entropy should do
it. Random because we don't want tests running in parallel to step on
each other on jenkins slaves.

>
>> 2) With the short string above and the current settings sent to
>> shm_open() in src/ipc/mem/Segment.cc line 73 MacOS shm_open() starts
>> responding with EINVAL.
>
>> theFD = shm_open(theName.termedBuf(), O_CREAT | O_RDWR | O_TRUNC,
>>  S_IRUSR | S_IWUSR);
>
>
> Sounds like some of the five shm_open() flags we are using successfully
> elsewhere do not work on MacOS. I do not know which flag(s) do not work,
> and we have no MacOS boxes in the lab, so we cannot experiment or read
> documentation.
>
> I assume shared segment opening fails with similar symptoms when used
> outside of unit tests (e.g., with a shared memory cache)? If so, please
> feel free to disable shared memory support on MacOS (do not define
> HAVE_SHM?) until somebody who needs it can find the right combination of
> flags.

+1

-Rob
-- 
Robert Collins 
Distinguished Technologist
HP Cloud Services


Re: Squid SMP on MacOS

2013-02-24 Thread Alex Rousskov
On 02/24/2013 10:02 PM, Amos Jeffries wrote:

> I'm trying to get the MacOS builds of Squid going again but having some
> problems with shm_open() in the Rock storage unit-tests.
> 
> 1) MacOS defines the max name length we can pass to shm_open() at 30
> bytes. "/squid-testRock__testRockSearch" being 35 or so bytes.
>   Cutting the definition in testRock.cc down so it becomes
> "/squid-testRock_Search" resolves that, but then we hit (2).

That TESTDIR name is wrong because it is used for more than just
"search" testing. I bet the Rock name mimicked the UFS test name, but
the UFS name is wrong too, for the same reason. We should use
"cppUnitTestRock" and "cppUnitTestUfs" or something similarly unique and
short, I guess.


> 2) With the short string above and the current settings sent to
> shm_open() in src/ipc/mem/Segment.cc line 73 MacOS shm_open() starts
> responding with EINVAL.

> theFD = shm_open(theName.termedBuf(), O_CREAT | O_RDWR | O_TRUNC,
>  S_IRUSR | S_IWUSR);


Sounds like some of the five shm_open() flags we are using successfully
elsewhere do not work on MacOS. I do not know which flag(s) do not work,
and we have no MacOS boxes in the lab, so we cannot experiment or read
documentation.

I assume shared segment opening fails with similar symptoms when used
outside of unit tests (e.g., with a shared memory cache)? If so, please
feel free to disable shared memory support on MacOS (do not define
HAVE_SHM?) until somebody who needs it can find the right combination of
flags.


Thank you,

Alex.



Squid SMP on MacOS

2013-02-24 Thread Amos Jeffries
I'm trying to get the MacOS builds of Squid going again but having some 
problems with shm_open() in the Rock storage unit-tests.


1) MacOS defines the max name length we can pass to shm_open() at 30 
bytes. "/squid-testRock__testRockSearch" being 35 or so bytes.
  Cutting the definition in testRock.cc down so it becomes 
"/squid-testRock_Search" resolves that, but then we hit (2).


2) With the short string above and the current settings sent to 
shm_open() in src/ipc/mem/Segment.cc line 73 MacOS shm_open() starts 
responding with EINVAL.


  Any ideas?


Amos


Build failed in Jenkins: 3.HEAD-ppc-MacOS-Leopard #91

2013-02-24 Thread noc
See 

--
[...truncated 6972 lines...]
-n Testing ../../src/peer_proxy_negotiate_auth.h ...
Ok.
-n Testing ../../src/peer_sourcehash.h ...
Ok.
-n Testing ../../src/peer_userhash.h ...
Ok.
-n Testing ../../src/protos.h ...
Ok.
-n Testing ../../src/redirect.h ...
Ok.
-n Testing ../../src/refresh.h ...
Ok.
-n Testing ../../src/repl_modules.h ...
Ok.
-n Testing ../../src/send-announce.h ...
Ok.
-n Testing ../../src/snmp_agent.h ...
Ok.
-n Testing ../../src/snmp_core.h ...
Ok.
-n Testing ../../src/stat.h ...
Ok.
-n Testing ../../src/stmem.h ...
Ok.
-n Testing ../../src/store_digest.h ...
Ok.
-n Testing ../../src/store_key_md5.h ...
Ok.
-n Testing ../../src/store_log.h ...
Ok.
-n Testing ../../src/store_rebuild.h ...
Ok.
-n Testing ../../src/store_swapin.h ...
Ok.
-n Testing ../../src/swap_log_op.h ...
Ok.
-n Testing ../../src/tools.h ...
Ok.
-n Testing ../../src/typedefs.h ...
Ok.
-n Testing ../../src/unlinkd.h ...
Ok.
-n Testing ../../src/urn.h ...
Ok.
-n Testing ../../src/wccp.h ...
Ok.
-n Testing ../../src/wccp2.h ...
Ok.
-n Testing ../../src/whois.h ...
Ok.
-n Testing ../../src/win32.h ...
Ok.
-n Testing ../../src/wordlist.h ...
Ok.
-n Testing ../../src/DiskIO/DiskFile.h ...
Ok.
-n Testing ../../src/DiskIO/DiskIOModule.h ...
Ok.
-n Testing ../../src/DiskIO/DiskIOStrategy.h ...
Ok.
-n Testing ../../src/DiskIO/IORequestor.h ...
Ok.
-n Testing ../../src/DiskIO/ReadRequest.h ...
Ok.
-n Testing ../../src/DiskIO/WriteRequest.h ...
Ok.
-n Testing ../../src/DiskIO/AIO/AIODiskFile.h ...
Ok.
-n Testing ../../src/DiskIO/AIO/AIODiskIOModule.h ...
Ok.
-n Testing ../../src/DiskIO/AIO/AIODiskIOStrategy.h ...
Ok.
-n Testing ../../src/DiskIO/AIO/aio_win32.h ...
Ok.
-n Testing ../../src/DiskIO/AIO/async_io.h ...
Ok.
-n Testing ../../src/DiskIO/Blocking/BlockingDiskIOModule.h ...
Ok.
-n Testing ../../src/DiskIO/Blocking/BlockingFile.h ...
Ok.
-n Testing ../../src/DiskIO/Blocking/BlockingIOStrategy.h ...
Ok.
-n Testing ../../src/DiskIO/DiskDaemon/DiskDaemonDiskIOModule.h ...
Ok.
-n Testing ../../src/DiskIO/DiskDaemon/DiskdAction.h ...
Ok.
-n Testing ../../src/DiskIO/DiskDaemon/DiskdFile.h ...
Ok.
-n Testing ../../src/DiskIO/DiskDaemon/DiskdIOStrategy.h ...
Ok.
-n Testing ../../src/DiskIO/DiskDaemon/diomsg.h ...
Ok.
-n Testing ../../src/DiskIO/DiskThreads/CommIO.h ...
Ok.
-n Testing ../../src/DiskIO/DiskThreads/DiskThreads.h ...
Ok.
-n Testing ../../src/DiskIO/DiskThreads/DiskThreadsDiskFile.h ...
Ok.
-n Testing ../../src/DiskIO/DiskThreads/DiskThreadsDiskIOModule.h ...
Ok.
-n Testing ../../src/DiskIO/DiskThreads/DiskThreadsIOStrategy.h ...
Ok.
-n Testing ../../src/DiskIO/IpcIo/IpcIoDiskIOModule.h ...
Ok.
-n Testing ../../src/DiskIO/IpcIo/IpcIoFile.h ...
Ok.
-n Testing ../../src/DiskIO/IpcIo/IpcIoIOStrategy.h ...
Ok.
-n Testing ../../src/DiskIO/Mmapped/MmappedDiskIOModule.h ...
Ok.
-n Testing ../../src/DiskIO/Mmapped/MmappedFile.h ...
Ok.
-n Testing ../../src/DiskIO/Mmapped/MmappedIOStrategy.h ...
Ok.
..
OK (2)
PASS: tests/testACLMaxUserIP
.
OK (1)
PASS: tests/testBoilerplate
..
OK (2)
PASS: tests/testCacheManager
.
OK (1)
PASS: tests/testDiskIO
..Actual Text:
Last event to run: last event

Operation\tNext Execution \tWeight\tCallback Valid?
test event   \t0.000 sec\t0\t N/A
test event2  \t0.000 sec\t0\t N/A


OK (6)
PASS: tests/testEvent
...
OK (3)
PASS: tests/testEventLoop
PASS: tests/test_http_range
.
OK (5)
PASS: tests/testHttpParser
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
.
OK (1)
PASS: tests/testHttpReply
.
OK (13)
PASS: tests/testHttpRequest
SKIP: HttpReply.cc HttpReply (not implemented).
SKIP: HttpReply.cc HttpReply (not implemented).
SKIP: cache_cf.cc operator void* (not implemented).
SKIP: HttpReply.cc HttpReply (not implemented).
SKIP: HttpReply.cc HttpReply (not implemented).
...
OK (11)
PASS: tests/testStore

OK (4)
PASS: tests/testString
stub time| persistent connection module initialized
..
OK (10)
PASS: tests/testURL
.
OK (1)
PASS: tests/testConfigParser
...
OK (3)
PASS: tests/testStatHist
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc 

[RFC] OpenSSL capability detection

2013-02-24 Thread Amos Jeffries
As you may be aware OpenSSL had some API changes which we dutifully 
wrote #if-#else conditional code for using the mechanisms provided by 
OpenSSL for the purpose.


Then somebody in Fedora or RHEL decided to back-port the functionality 
into their older OpenSSL version. This corrupted the Fedora 17 release 
for a short while, just long enough to corrupt the main RHEL 5.* and 6.* 
distributions, and it now seems to have spread into the CentOS 6.* 
distributions as well.


We are urgently needing somebody to write a ./configure-time test to 
detect these old corrupted OpenSSL packages which present 1.0.0d API 
functionality and AC_DEFINE a macro which can be added to the #if-#else 
conditionals such that they are built using the 1.0.0d+ API of OpenSSL.


Any takers?

Amos



Jenkins build is back to normal : 3.HEAD-amd64-opensuse #410

2013-02-24 Thread noc
See 



Build failed in Jenkins: 3.HEAD-ppc-MacOS-Leopard #90

2013-02-24 Thread noc
See 

--
[...truncated 6972 lines...]
-n Testing ../../src/peer_proxy_negotiate_auth.h ...
Ok.
-n Testing ../../src/peer_sourcehash.h ...
Ok.
-n Testing ../../src/peer_userhash.h ...
Ok.
-n Testing ../../src/protos.h ...
Ok.
-n Testing ../../src/redirect.h ...
Ok.
-n Testing ../../src/refresh.h ...
Ok.
-n Testing ../../src/repl_modules.h ...
Ok.
-n Testing ../../src/send-announce.h ...
Ok.
-n Testing ../../src/snmp_agent.h ...
Ok.
-n Testing ../../src/snmp_core.h ...
Ok.
-n Testing ../../src/stat.h ...
Ok.
-n Testing ../../src/stmem.h ...
Ok.
-n Testing ../../src/store_digest.h ...
Ok.
-n Testing ../../src/store_key_md5.h ...
Ok.
-n Testing ../../src/store_log.h ...
Ok.
-n Testing ../../src/store_rebuild.h ...
Ok.
-n Testing ../../src/store_swapin.h ...
Ok.
-n Testing ../../src/swap_log_op.h ...
Ok.
-n Testing ../../src/tools.h ...
Ok.
-n Testing ../../src/typedefs.h ...
Ok.
-n Testing ../../src/unlinkd.h ...
Ok.
-n Testing ../../src/urn.h ...
Ok.
-n Testing ../../src/wccp.h ...
Ok.
-n Testing ../../src/wccp2.h ...
Ok.
-n Testing ../../src/whois.h ...
Ok.
-n Testing ../../src/win32.h ...
Ok.
-n Testing ../../src/wordlist.h ...
Ok.
-n Testing ../../src/DiskIO/DiskFile.h ...
Ok.
-n Testing ../../src/DiskIO/DiskIOModule.h ...
Ok.
-n Testing ../../src/DiskIO/DiskIOStrategy.h ...
Ok.
-n Testing ../../src/DiskIO/IORequestor.h ...
Ok.
-n Testing ../../src/DiskIO/ReadRequest.h ...
Ok.
-n Testing ../../src/DiskIO/WriteRequest.h ...
Ok.
-n Testing ../../src/DiskIO/AIO/AIODiskFile.h ...
Ok.
-n Testing ../../src/DiskIO/AIO/AIODiskIOModule.h ...
Ok.
-n Testing ../../src/DiskIO/AIO/AIODiskIOStrategy.h ...
Ok.
-n Testing ../../src/DiskIO/AIO/aio_win32.h ...
Ok.
-n Testing ../../src/DiskIO/AIO/async_io.h ...
Ok.
-n Testing ../../src/DiskIO/Blocking/BlockingDiskIOModule.h ...
Ok.
-n Testing ../../src/DiskIO/Blocking/BlockingFile.h ...
Ok.
-n Testing ../../src/DiskIO/Blocking/BlockingIOStrategy.h ...
Ok.
-n Testing ../../src/DiskIO/DiskDaemon/DiskDaemonDiskIOModule.h ...
Ok.
-n Testing ../../src/DiskIO/DiskDaemon/DiskdAction.h ...
Ok.
-n Testing ../../src/DiskIO/DiskDaemon/DiskdFile.h ...
Ok.
-n Testing ../../src/DiskIO/DiskDaemon/DiskdIOStrategy.h ...
Ok.
-n Testing ../../src/DiskIO/DiskDaemon/diomsg.h ...
Ok.
-n Testing ../../src/DiskIO/DiskThreads/CommIO.h ...
Ok.
-n Testing ../../src/DiskIO/DiskThreads/DiskThreads.h ...
Ok.
-n Testing ../../src/DiskIO/DiskThreads/DiskThreadsDiskFile.h ...
Ok.
-n Testing ../../src/DiskIO/DiskThreads/DiskThreadsDiskIOModule.h ...
Ok.
-n Testing ../../src/DiskIO/DiskThreads/DiskThreadsIOStrategy.h ...
Ok.
-n Testing ../../src/DiskIO/IpcIo/IpcIoDiskIOModule.h ...
Ok.
-n Testing ../../src/DiskIO/IpcIo/IpcIoFile.h ...
Ok.
-n Testing ../../src/DiskIO/IpcIo/IpcIoIOStrategy.h ...
Ok.
-n Testing ../../src/DiskIO/Mmapped/MmappedDiskIOModule.h ...
Ok.
-n Testing ../../src/DiskIO/Mmapped/MmappedFile.h ...
Ok.
-n Testing ../../src/DiskIO/Mmapped/MmappedIOStrategy.h ...
Ok.
..
OK (2)
PASS: tests/testACLMaxUserIP
.
OK (1)
PASS: tests/testBoilerplate
..
OK (2)
PASS: tests/testCacheManager
.
OK (1)
PASS: tests/testDiskIO
..Actual Text:
Last event to run: last event

Operation\tNext Execution \tWeight\tCallback Valid?
test event   \t0.000 sec\t0\t N/A
test event2  \t0.000 sec\t0\t N/A


OK (6)
PASS: tests/testEvent
...
OK (3)
PASS: tests/testEventLoop
PASS: tests/test_http_range
.
OK (5)
PASS: tests/testHttpParser
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
.
OK (1)
PASS: tests/testHttpReply
.
OK (13)
PASS: tests/testHttpRequest
SKIP: HttpReply.cc HttpReply (not implemented).
SKIP: HttpReply.cc HttpReply (not implemented).
SKIP: cache_cf.cc operator void* (not implemented).
SKIP: HttpReply.cc HttpReply (not implemented).
SKIP: HttpReply.cc HttpReply (not implemented).
...
OK (11)
PASS: tests/testStore

OK (4)
PASS: tests/testString
stub time| persistent connection module initialized
..
OK (10)
PASS: tests/testURL
.
OK (1)
PASS: tests/testConfigParser
...
OK (3)
PASS: tests/testStatHist
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc enumInit (not implemented).
SKIP: StatHist.cc