> On 8 May 2018, at 18:19, Jim Jagielski <j...@jagunet.com> wrote:
> 
> I am under the impression is that we should likely restore mod_slotmem_shm
> back to its "orig" condition, either:
> 
>    o 
> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c?view=markup&pathrev=1822341
>  <http://svn.apache.org/viewvc?view=revision&revision=1822341>
>    o 
> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c?view=markup&pathrev=1782069
>  
> <http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c?view=markup&pathrev=1782069>
> 
> and try to rework all of this. I fear that all the subsequent work has really 
> made this module extremely fragile. We need, IMO, a very minimal fix for PR 
> 62044
> 
> Just for the heck of it, didn't r1822341 
> <http://svn.apache.org/viewvc?view=revision&revision=1822341> actually *FIX* 
> the PR? 


Hi,


To follow-up as the reporter of 62044, the original problem was a segmentation 
fault due to an entirely different 3rd party vendor module, which Apache 2.4.32 
magically fixed, no idea how. However, the segfaults meant that the SHMs and/or 
SHM placeholder files weren't getting correctly cleaned up on restarts (in 
2.4.29). I think it is important for httpd to handle the segfault case well 
because 3rd party modules can cause problems that httpd can’t anticipate. 
Ultimately, httpd is creating a bunch of persistent external state that it 
should make an effort to deal with cleanly when httpd stops unexpectedly and is 
subsequently restarted.

We restart/reload Apache frequently enough that preserving balancer state is 
useful but not critical.

I think you will find it difficult to re-work effectively unless you can 
identify representative test cases possibly including a segfault.

For me the most important characteristics of the fix were (a) to more 
accurately identify genuine virtual host changes (rather than simple line 
number shifts) that might invalidate balancer state and at least in some cases, 
to pick up existing SHMs left-over from the last httpd start. 

- Mark

Reply via email to