On Mon, 19 Sep 2011 23:45:58 +0100, Andrew Beverley wrote:
On Mon, 2011-09-19 at 10:49 +1200, Amos Jeffries wrote:
 The session helper in Squid-3 is concurrent.

Ah, okay.

 The user_key is the opaque
 channel-ID. (Probably should be renamed to match the protocol
 documentation).
http://wiki.squid-cache.org/Features/AddonHelpers#Access_Control_.28ACL.29

I've renamed to channel_id

The correct way to fix this is to detect the segfault case add a stderr
 ERROR: message that the helper is concurrent and requires a config
 update.

I've added a fatal error message to STDERR, but I can't get it to output
anywhere (see below).

 stderr should appear in cache.log whenever sent.

Hmmm, it doesn't seem to be.

 Most of the lines so
 far appear to be debug messages

Does that include the failure to open a database? This is written to
STDERR as per any other message, but it does not make it anywhere.

, which depend on the -d option to
 display.

Do you mean the -d option to the Squid binary? If so, this doesn't seem
to make any difference; it just prints all the log messages to the
display as well as the log file.

-d parameter of the helper binary. stderr is piped to cache.log at level-0. Thus the need for a separate switch to enable lots of debug from the helper.



I've tried increasing the log level to 9, but to no avail.

Also....the .8 manual needs to mention the concurrency rather than just
 implying it in the example config.

Done. Also, the following page should be updated:

http://wiki.squid-cache.org/ConfigExamples/Portal/Splash

I'm happy to do it myself, if you can give me wiki edit rights?

Sure. Just need to know what username you login with.


 The helper version should get a bump
 to 1.1 as well.

Done in the manual. Is it specified anywhere else as well?

I've also added:

- A new option: "-h". This causes a "hard" timeout, regardless of user activity. This is because, for many uses of a splash page (adverts etc)
one would want the message to displayed every n hours, regardless of
user activity (certainly that is my requirement).

-h is reserved for display of "help" / usage() texts.

-T would probably be better for an absolute timeout.


- A db->sync command. I have found that with more than one child
started, that they do not necessarily share data because each child's
data has not been flushed to disk. This fixes that. However, I am not
sure whether it has other implications, such as much greater disk
overhead. Do you think it should be a configurable option?

IMO that is just something that should happen. So not configurable unless we have to disable it for someone.


Is there anything else that needs updating? RELEASENOTES.html?

Not at this point. I'll get the Changelog entry during release processing.


Please find attached updated patch for comment.

Okay. The audit (ominous drums):

ext_session_acl.8:
* " (unless -h is specified).". Please make a separate sentence. Something like "Also supports fixed length timeouts for regular splash page displays." (if you can think of any other useful scenario than regular splash pages that can be mentioned too.)

* rather than calling the new mode "Hard timeout". It's a "Periodic" or "Fixed length" timeout ... something a bit more descriptive like that. ** Needs to explain how it interacts with -a mode. ie I would expect LOGOUT or timeout to terminate the session. Explicit LOGIN required for a new one to start.

ext_session_acl.cc: (modulo the -h ==> -T change requested)
* in getopt() format syntax ':' indicates a value is received for the option. What you coded is "t:b:a?h?". * I think you should make -t and -T both optional arguments which are interchangeable. ("t:T:b:a?")
  case 'T':
    hard-timeout=1;
  case 't':
    ... process timeout value
    break;


Other than that okay.

Amos

Reply via email to