Re: Squid-2.7 release notes updated

2008-03-13 Thread Mark Nottingham

That looks good to me.

I attached a patch for 2171, will try to get it tested ASAP.


On 12/03/2008, at 7:13 PM, Adrian Chadd wrote:

I've updated the Squid-2.7 release notes. I'd like to release  
Squid-2.7.STABLE1
this weekend. Its possible my Bugzilla searches haven't turned up  
all of the

relevant bugs to put in the release notes.

Let me know if you have any objections.

Thanks,



Adrian

--
- Xenion - http://www.xenion.com.au/ - VPS Hosting - Commercial  
Squid Support -
- $25/pm entry-level VPSes w/ capped bandwidth charges available in  
WA -


--
Mark Nottingham   [EMAIL PROTECTED]




Re: Time for squid 3.0 STABLE2 ?

2008-03-13 Thread Henrik Nordstrom
On Mon, 2008-03-10 at 14:12 +1300, Amos Jeffries wrote:

 As it stands we can call one or the other an up/down and leave things as-is.
 I'm minded to call 2.6 a 'down' of 3.0 and 3.0/2.7/2.6 downs of 3.1. I
 have not looked closely at the update script to see if thats right though.

As I said I don't think using the changesets as tracking method for
determining what needs porting from Squid-2 to 3 is appropriate. Better
to start with cf.data.pre differences between the two which should now
be found in the release notes, and work from there (which secondare may
include collecting relevant changesets)

The changesets works for new small things (i.e. bugfixes to common code)
but those have been quite faithfully ported and still are, and best
tracked via bugzilla.

Many of the missing features is not even found in the changesets, and
often require substantial effort to port or reimplement, here the
changesets is just one input. These is best tracked via the releasenotes
I think, or their own branches when each effort gets started.

Regards
Henrik



Re: What's in the NT branch

2008-03-13 Thread Henrik Nordstrom
On Tue, 2008-03-11 at 22:43 +0100, Guido Serassio wrote:

 This file comes from the original work of Romeo Anghelache.
 After some search, I have found the original one from Apache 1.3:
 http://svn.apache.org/viewvc/httpd/httpd/branches/1.3.x/src/os/win32/readdir.c?view=markup
 If I remember right, the Apache License is not good for Squid.

Correct. The Apache license is GPL incompatible due to minor stupid
things, but still incompatible.

 My final intention is to have all the code changes merged into 
 STABLE/HEAD, but currently Squid 3.0 doesn't work at all on native 
 Windows, so some heavy and separated development work is still need 
 to fix all problems before any merge.

That's fine. Such work should be done in a short lived development
branch, and then merged upstream when it builds and runs, before the
Windows release.

 If this first step will be successful, and I'm not so sure about this 
 positive result , then there will the IPv6 on Windows challenge ...

IPv6 on Windows is the same as above, but probably with more frequent
merges to trunk.


 I think that a more appropriate attribute for the Windows port is too 
 easily broken ... :-(
 It's a very acrobatic piece of code  :-)

I don't see how keeping a separate port branch helps that... it's more
of a sign that something needs redesign to support windows better.

What aspect of Windows do you see as the most fragile part?
- integrity of tha build/make/project files?
- the socket/filedescriptor emulation?
- rename of open files
- windows specific support features (i.e. service code, dns registry
glue etc)
- something else forgoten in the list above

Regards
Henrik



Re: Robustness project adjustments

2008-03-13 Thread Tsantilas Christos
Hi all,


Alex Rousskov wrote:
 Hello,
 
 This email describes upcoming changes in the Squid3 robustness
 project. The Squid3 robustness project has two related goals:
 
  ...
 
 The current design has been disculeassed at the London meeting, and a few
 adjustments were requested. This email attempts to summarize the
 adjusted design.

I have some questions about the adjustments.

 
 1. The assert() code will not throw exceptions by default. It will
 continue to call abort() as before. To enable the robustness feature, a
 squid.conf option will need to be set. (In the future, that option may
 contain a date value so that it automatically disables itself if the
 administrator forgot to do that after fixing the problem.)

As I can understand the assert() by default will abort squid as before.

In async-calls branch there is the assert_burst_max configuration
parameter which has a default value of 100. If set to 0 then the
assert() call aborts immediately squid.
Is it enough to set the default value  of assert_burst_max to 0 or we
need an extra  configuration parameter to enable/disable the feature?

 
 2. Assert() calls that are testing local, transaction-specific
 conditions will be manually converted to Must() calls. Must() always
 throws an exception. It is already used by the ICAP code. Must() name
 comes from IETF RFC MUST/SHOULD/MAY terminology. Suggestions for a
 better name are welcome. New code should use Must() whenever possible.

Assert() with capital A it is not a different function than assert(), OK?

If I am not wrong we should discover the safe cases and replace assert
calls with Must() calls. Am I right?

Must() call will have its current form (justs throws an exception) or
will get some of the features of assert() call (eg. assert_max_burst
feature)


I think Must is a good name, maybe in the future a Should() call
implemented which in addition allow squid to respond to the http client
with messages like the 500 Internal server error  etc :-)

 
 3. Transactions that can handle exceptions with a proper cleanup will
 continue to handle them without aborting Squid. Other transactions will
 abort Squid if an exception is thrown. This design remains unchanged
 compared to the original version: we are changing when exceptions can be
 thrown, not how they are handled.

OK.

 
 4. We will continue to work on the transaction cleanup code.
 
 Corrections and improvements are welcome.
 
 


Regards,
Christos


Re: What's in the NT branch

2008-03-13 Thread Guido Serassio

Hi Henrik,

At 12:59 13/03/2008, Henrik Nordstrom wrote:

On Tue, 2008-03-11 at 22:43 +0100, Guido Serassio wrote:

 This file comes from the original work of Romeo Anghelache.
 After some search, I have found the original one from Apache 1.3:
 
http://svn.apache.org/viewvc/httpd/httpd/branches/1.3.x/src/os/win32/readdir.c?view=markup

 If I remember right, the Apache License is not good for Squid.

Correct. The Apache license is GPL incompatible due to minor stupid
things, but still incompatible.


So we should find another one. May be that the version included into 
the MinGW runtime could be fine. I will test it, but I don't know when ...




 My final intention is to have all the code changes merged into
 STABLE/HEAD, but currently Squid 3.0 doesn't work at all on native
 Windows, so some heavy and separated development work is still need
 to fix all problems before any merge.

That's fine. Such work should be done in a short lived development
branch, and then merged upstream when it builds and runs, before the
Windows release.

 If this first step will be successful, and I'm not so sure about this
 positive result , then there will the IPv6 on Windows challenge ...

IPv6 on Windows is the same as above, but probably with more frequent
merges to trunk.

 I think that a more appropriate attribute for the Windows port is too
 easily broken ... :-(
 It's a very acrobatic piece of code  :-)

I don't see how keeping a separate port branch helps that... it's more
of a sign that something needs redesign to support windows better.


Too much times something like this is happened:

- Update from CVS of my work dir
- Fix of build problems
- Commit of fixes
- Finished the little time that I have available for development, 
usually during weekend

- Hope to do some test/debug during the next weekend
- During the next week someone commit changes in the source
- Update from CVS of my work dir (again during weekend)
- Fix of NEW build problems
- Commit of fixes
- Finished again the little time that I have available for 
development just for fix NEW problems .


This is very disappointing and is the reason because I like to have a 
separated branch 


I think that the main problem here is that there is still only one 
Windows developer and this developer is not a full time developer: 
I'm mainly a consultant, not a developer.



What aspect of Windows do you see as the most fragile part?


The main problem is in the code that is touched from others developers.


- integrity of tha build/make/project files?


Not big problems here, usually the fix is add/remove a source file 
some the build project. But sometimes things was worse: i.e. the move 
from perl to awk for preprocessing.



- the socket/filedescriptor emulation?


Many times very big problems here, and also with proprietary IPC and 
IPv6 support.
This is the section where currently Squid 3.0 is failing on Windows. 
I think that the forward port of the all 2.6+ related enhancements 
could help the Squid 3.0 Windows support.



- rename of open files


No problems here.


- windows specific support features (i.e. service code, dns registry
glue etc)


Usually not so big problems here, because all the code is in Windows 
specific sources.



- something else forgoten in the list above


Different C/C++ compiler not always compatible with gcc and a totally 
different run time library not based on glibc and not Posix 
compliant. And many times this is a very big problem, true for both 
Visual Studio and MinGW native environments.


Regards

Guido



-

Guido Serassio
Acme Consulting S.r.l. - Microsoft Certified Partner
Via Lucia Savarino, 1   10098 - Rivoli (TO) - ITALY
Tel. : +39.011.9530135  Fax. : +39.011.9781115
Email: [EMAIL PROTECTED]
WWW: http://www.acmeconsulting.it/



Re: What's in the NT branch

2008-03-13 Thread Henrik Nordstrom
On Thu, 2008-03-13 at 20:48 +0100, Guido Serassio wrote:
 Too much times something like this is happened:
 
 - Update from CVS of my work dir
 - Fix of build problems
 - Commit of fixes
 - Finished the little time that I have available for development, 
 usually during weekend
 - Hope to do some test/debug during the next weekend
 - During the next week someone commit changes in the source
 - Update from CVS of my work dir (again during weekend)
 - Fix of NEW build problems
 - Commit of fixes
 - Finished again the little time that I have available for 
 development just for fix NEW problems .

So why do you update your workdir if you only want to test the stuff you
had last weekend?

You'll get extact the same breakage when updating your branch (i.e.
running cvsmerge in the CVS setup, or bzr merge in the new bzr setup),
so I am sorry but I don't see why keeping a shared branch helps this.

I don't mind you having as many private branches for testing as you like
to support your own workflow (thats after all one of the points why we
selected bzr), but I do mind having stable binary releases made from a
possibly different tree, or including sources not seen in the main tree.

 What aspect of Windows do you see as the most fragile part?
 
 The main problem is in the code that is touched from others developers.

I would say the main problem is code changes only tested on one
developers platform and not Windows..


 - the socket/filedescriptor emulation?
 
 Many times very big problems here, and also with proprietary IPC and 
 IPv6 support.
 This is the section where currently Squid 3.0 is failing on Windows. 
 I think that the forward port of the all 2.6+ related enhancements 
 could help the Squid 3.0 Windows support.

Which Squid-2 changes do you have in mind there?

 - something else forgoten in the list above
 
 Different C/C++ compiler not always compatible with gcc and a totally 
 different run time library not based on glibc and not Posix 
 compliant. And many times this is a very big problem, true for both 
 Visual Studio and MinGW native environments.

Yes, and this will always be seen for as long as we develop for more
than one platform and compiler. But see above for my counter argument
here..

Regards
Henrik



Re: What's in the NT branch

2008-03-13 Thread Alex Rousskov
On Thu, 2008-03-13 at 20:48 +0100, Guido Serassio wrote:

 Too much times something like this is happened:
 
 - Update from CVS of my work dir
 - Fix of build problems
 - Commit of fixes
 - Finished the little time that I have available for development, 
 usually during weekend
 - Hope to do some test/debug during the next weekend
 - During the next week someone commit changes in the source
 - Update from CVS of my work dir (again during weekend)
 - Fix of NEW build problems
 - Commit of fixes
 - Finished again the little time that I have available for 
 development just for fix NEW problems .
 
 This is very disappointing and is the reason because I like to have a 
 separated branch 

Having a separate branch will not fix the above problem, it will only
mask it. It is pretty much the same as if you were to stop updating from
HEAD: the problems will accumulate and become more difficult to fix when
you decide to merge.

I think it is perfectly fine to have a private branch if you want to
commit often and merge infrequently. I just would not expect that to
save you time or nerve cells, unfortunately.

 I think that the main problem here is that there is still only one 
 Windows developer and this developer is not a full time developer: 
 I'm mainly a consultant, not a developer.

I think the main problem is that folks committing changes have no sane
way of testing those changes on Windows. We do not see Windows-specific
bugs and have no sane way of detecting them. Thus, we cannot fix them.

What we should probably do as a first step is to setup a Windows machine
and compile Squid there as a part of nightly regression tests (and
on-demand). Commits failing regression tests will be backed out.

Can you provide and configure such a machine for remote ssh access to a
restricted account that will run your regression test script? We can
then integrate that with the Unix regression test bench.

If you cannot provide the machine with remote access, can you be
responsible for configuring the [virtual] machine that I will provide?
If yes, please let me know what Windows version it should run and what
is the best way to enable you to access it for configuration.

Thank you,

Alex.




Bzr commits

2008-03-13 Thread Alex Rousskov
On Thu, 2008-03-13 at 13:49 -0600, [EMAIL PROTECTED]
wrote:
 http://www.squid-cache.org/bugs/show_bug.cgi?id=2186
 
 --- Comment #9 from Bernhard Schmidt [EMAIL PROTECTED]  2008-03-13 13:49:20 
 ---
 Seems to work now, thanks. Applied without changes to BZR

Berni,

Are you talking about some private bzr branch that you are
maintaining? Or did I stop receiving emails generated by Squid commits?
Do I need to subscribe somewhere to receive them?

Thank you,

Alex.




Re: Robustness project adjustments

2008-03-13 Thread Alex Rousskov
On Thu, 2008-03-13 at 21:15 +0200, Tsantilas Christos wrote:
  
  1. The assert() code will not throw exceptions by default. It will
  continue to call abort() as before. To enable the robustness feature, a
  squid.conf option will need to be set. (In the future, that option may
  contain a date value so that it automatically disables itself if the
  administrator forgot to do that after fixing the problem.)
 
 As I can understand the assert() by default will abort squid as before.

Correct.

 In async-calls branch there is the assert_burst_max configuration
 parameter which has a default value of 100. If set to 0 then the
 assert() call aborts immediately squid.
 Is it enough to set the default value  of assert_burst_max to 0 or we
 need an extra  configuration parameter to enable/disable the feature?

It is enough to change the default, I think.

  2. Assert() calls that are testing local, transaction-specific
  conditions will be manually converted to Must() calls. Must() always
  throws an exception. It is already used by the ICAP code. Must() name
  comes from IETF RFC MUST/SHOULD/MAY terminology. Suggestions for a
  better name are welcome. New code should use Must() whenever possible.
 
 Assert() with capital A it is not a different function than assert(), OK?

Same function; I should not have capitalized it, sorry.

 If I am not wrong we should discover the safe cases and replace assert
 calls with Must() calls. Am I right?

Correct.

 Must() call will have its current form (justs throws an exception) or
 will get some of the features of assert() call (eg. assert_max_burst
 feature)

Must() call retains its current form. Must() exceptions will be either
handled by the current job or kill Squid. In the second case, it would
be nice to print something intelligent before abort()ing, I guess.

 I think Must is a good name, maybe in the future a Should() call
 implemented which in addition allow squid to respond to the http client
 with messages like the 500 Internal server error  etc :-)

Not exactly. Should() is for proceeding further with a debugging message
printed to cache.log if the condition fails. Unlike Must(), Should()
returns a boolean value so that the caller can detect and handle the
minor inconsistency. Should() is quite handy, but unrelated to
robustness issues.

May() is a no-op, just like in RFCs.
 
  3. Transactions that can handle exceptions with a proper cleanup will
  continue to handle them without aborting Squid. Other transactions will
  abort Squid if an exception is thrown. This design remains unchanged
  compared to the original version: we are changing when exceptions can be
  thrown, not how they are handled.
 
 OK.
 
  
  4. We will continue to work on the transaction cleanup code.

HTH,

Alex.




Re: Bzr commits

2008-03-13 Thread Bernhard Schmidt

Hi Alex,


http://www.squid-cache.org/bugs/show_bug.cgi?id=2186

--- Comment #9 from Bernhard Schmidt [EMAIL PROTECTED]  2008-03-13 13:49:20 
---
Seems to work now, thanks. Applied without changes to BZR



Are you talking about some private bzr branch that you are
maintaining? Or did I stop receiving emails generated by Squid commits?
Do I need to subscribe somewhere to receive them?


Sorry, I think that was a misunderstanding. The patch applies fine to my 
local checkout (I think that means 'branch'), so there are no 
differences between your codebase and my local codebase (which is BZR 
trunk).


I don't have any right to commit code to the repository and I certainly 
don't want or need that right :-)


Bernhard


bzr commit stuff?

2008-03-13 Thread Adrian Chadd
Has anyone actually committed to the bzr tree? I haven't seen any commit
messages.



adrian



Re: bzr commit stuff?

2008-03-13 Thread Amos Jeffries

Adrian Chadd wrote:

Has anyone actually committed to the bzr tree? I haven't seen any commit
messages.



Henrik and Robert committed the release script updates before messages 
were done. Since Robert said the commit messages were supposed to be 
done I don't think anyone has.


Amos
--
Please use Squid 2.6STABLE17+ or 3.0STABLE1+
There are serious security advisories out on all earlier releases.


Re: bzr commit stuff?

2008-03-13 Thread Amos Jeffries

Amos Jeffries wrote:

Adrian Chadd wrote:

Has anyone actually committed to the bzr tree? I haven't seen any commit
messages.



Henrik and Robert committed the release script updates before messages 
were done. Since Robert said the commit messages were supposed to be 
done I don't think anyone has.


Amos


Just committed a trivial grammar change to the release notes. Lets see 
if that gets notified. Revision 8881.



On a side note. Henrik, are you able to get the maintainers .update 
scripts pulling the changesets from bzr?
 I'm not here this weekend to look it over and I think the revison 
counter has taken a step backward between VCS so something will need to 
be worked out now to cope with the future overlap.


Amos
--
Please use Squid 2.6STABLE17+ or 3.0STABLE1+
There are serious security advisories out on all earlier releases.


Re: bzr commit stuff?

2008-03-13 Thread Alex Rousskov
On Fri, 2008-03-14 at 12:34 +0900, Adrian Chadd wrote:
 Has anyone actually committed to the bzr tree? I haven't seen any commit
 messages.

I have not committed or seen any messages either. I still need to find
and read the instructions :-(

Commit messages are still being sent to [EMAIL PROTECTED],
right?

Alex.