On 16/06/17 18:32, Andreas Weigel wrote:
Hi Alex,

any chances this could be considered a bug or stability fix (as in the v4 roadmap's "additions are limited to") and apply it to v4 as well? :)


By changing the v4 release notes I assumed an implicit request for backporting.

However, the content of that change is enough for me to -1 veto this patch.

It is explicitly adding a regression in a very necessary behaviour for startup sequences running what is effectively "squid --foreground -z && squid". We will regress to the state of having race conditions as multiple independent sets of workers are spawned and collide with each others /dev/shm and whether or not the disk cache is formatted before Squid starts accepting client connections.

The original notes wording (and --foreground design) was intended to be clear that in that made a Squid SMP-enabled instance operate as a consistent / atomic whole. **No background parts still operating after the main process exit()'s**.


Also, there are (or will be) installations containing "squid --foreground -N " due to the way some OS provide default options (using the new --foreground by default) and allow admin to extend them in a separate config file (usually with -N hacks from legacy installs).

- the updated documentation implies that --foreground actively creates workers. Which will leave anyone with that config confused about what happens if they are both required (--foreground "and creates worker kids") and prohibited (-N). Yet Squid runs with nary a message about problems.


I am quite surprised you did not hit these issues yourself already. Perhapse you are not using sufficiently large (or slow) disk caches to see the race condition?

Amos


Regards,
Andreas

On 15.06.2017 17:35, Alex Rousskov wrote:
On 06/15/2017 04:57 AM, Andreas Weigel wrote:
 From discussion on squid-dev, the following behavior is implemented by
this patch:

* -N: The initial process is a master and a worker process.
   No kids.
   No daemonimization.

* --foreground: The initial process is the master process.
   One or more worker kids (depending on workers=N).
   No daemonimization.

* neither: The initial process double-forks the master process.
   One or more worker kids (depending on workers=N).
   Daemonimization.

The Release Notes for v4 were updated to reflect the corrected behavior.
I appreciate you making this revision despite our disagreement regarding
the appropriateness of renaming/polishing changes in this patch.

I will commit this revised patch to v5 if there are no objections.


Thank you,

Alex.


_______________________________________________
squid-dev mailing list
squid-dev@lists.squid-cache.org
http://lists.squid-cache.org/listinfo/squid-dev

Reply via email to