Re: error log providers, multiple vhosts, mod_syslog

2013-11-06 Thread William A. Rowe Jr.
On Wed, 6 Nov 2013 10:05:25 -0500
Jeff Trawick  wrote:
> 
> What are the thoughts around handling stderr?
> 
> In some cases it is just junk if not wrapped in a proper message
> (i.e., there can be a requirement that error log be completely
> parseable and/or a requirement that stderr has timestamps or other
> info).  But it seems to require a thread of execution to implement
> that in order to avoid blocking the writer.  (Recently I encountered
> a situation where a third-party module called some library during
> httpd init that wrote an initialization message directly to stderr,
> and the message was stuck in the stdio buffer and forked into every
> child process for later, multiple appearances :) )
> 
> I guess an error log provider could be given the opportunity to route
> stderr wherever it wants, but that doesn't handle the existing
> suckage of random, un-timestamped stuff in the log for normal
> configurations.  I guess you could have mod_stderr that may or may
> not be enabled if you wanted stderr handled more cleanly (groan),
> whether or not you had a provider for ap_log calls.

The windows nt event logging logic faced the same issue (and was the
reason for the early _commit() call :), so stderr is shifted to a pipe
to 'decorate' it into the event log queue, which would look very similar
for timestamps/other annotations into a syslog provider.


Re: mod_proxy reverse proxying and AH01179: balancer slotmem_create failed

2013-11-06 Thread Jim Jagielski
try this:


slotmem.patch
Description: Binary data


On Nov 6, 2013, at 9:59 AM, Thomas Eckert  wrote:

> It is not mentioned specifically in the configuration files, so it defaults 
> to "Off" according to 
> http://httpd.apache.org/docs/current/mod/mod_proxy.html#balancerpersist
> 
> 
> On Wed, Nov 6, 2013 at 3:44 PM, Jim Jagielski  wrote:
> Is BalancerPersist Off or On?
> 
> Those .shm files should only stick around if we want to
> persist state across restarts.
> 
> On Nov 6, 2013, at 8:39 AM, Thomas Eckert  wrote:
> 
> > As of late I'm seeing a lot of
> >
> >   AH01179: balancer slotmem_create failed
> >
> > error messages which prevent apache2 from starting. I do have
> >
> >   DefaultRuntimeDir /var/run/apache2
> >
> > set. For some reasons there appear to be "left-over" .shm files in the 
> > DefaultRunTimeDir between stop-starts/restarts which then get picked up by 
> > mod_slotmem when mod_proxy asks it for shared memory. Unfortunately, those 
> > .shm files sometimes have the wrong size and get rejected by the 
> > mod_slotmem code due to size mismatch.
> >
> > To me it looks like this situation suffers from the same issue as reported 
> > in https://issues.apache.org/bugzilla/show_bug.cgi?id=55449
> > though I only have one user (nobody) for all the worker processes.
> >
> > I get the systems back up and running by deleting all .shm files in the 
> > DefaultRunTimeDir between stop-starts/restarts but this seems fragile to 
> > me. Another workaround, as crude as it is, seems to be disabling the 
> > reusing of existing shared memory segments by setting
> >
> >   fbased = 0;
> >
> > in modules/slotmem/mod_slotmem_shm.c in slotmem_create().
> >
> > Neither of those two appraoches seems "right" to me. I do need at least a 
> > temporary workaround since this is causing major havoc.
> 
> 



apache sql module with suexec

2013-11-06 Thread Donatas Abraitis
Hello,

I'm trying to write a module which would work with httpd.worker. It will
per-request fetch row from mysql returning documentroot, servername, user,
group.

How can I setuid(), setgid()?

I have fetched these user/group from DB using mod_dbd module and now want
to set using suEXEC these user/group.

   apr_uid_t _uid;
   apr_gid_t _gid;
   apr_uid_current(&_uid, &_gid, r->pool);
   ap_log_rerror(APLOG_MARK, APLOG_CRIT, 0, r, "apt_user/group:
%d/%d", _uid, _gid);

   if(setuid(500)) {
  ap_log_rerror(APLOG_MARK, APLOG_CRIT, 0, r, "apt_user:
%d", getuid());
   }

Apache log gives:

[Wed Nov 06 10:16:42 2013] [crit] [client X] user: ton
[Wed Nov 06 10:16:42 2013] [crit] [client X] apt_user/group: 48/48
[Wed Nov 06 10:16:42 2013] [crit] [client X] apt_user: 48
[Wed Nov 06 10:16:42 2013] [crit] [client X] group: group-ton

-- 
Donatas


Re: error log providers, multiple vhosts, mod_syslog

2013-11-06 Thread Jeff Trawick
On Tue, Oct 29, 2013 at 7:04 AM, Jeff Trawick  wrote:

> On Tue, Oct 29, 2013 at 5:30 AM, Jan Kaluža  wrote:
>
>> On 10/25/2013 03:37 PM, Jeff Trawick wrote:
>>
>>> I'm hoping to get back to this discussion "soon."  I also have a 2.4.x
>>> patch I've played with that is roughly in sync with trunk (though syslog
>>> logging support isn't a provider in the 2.4.x version).
>>>
>>
>> Does your patch fix stderr logging? I wanted to write proof of concept
>> logger as described by Rüdiger below, but I didn't manage to find a time
>> for it recently :(. If you have working solution for that, I wouldn't waste
>> my time :).
>>
>>
> No, I just have a backport to 2.4.x with accommodation for syslog.
>

What are the thoughts around handling stderr?

In some cases it is just junk if not wrapped in a proper message (i.e.,
there can be a requirement that error log be completely parseable and/or a
requirement that stderr has timestamps or other info).  But it seems to
require a thread of execution to implement that in order to avoid blocking
the writer.  (Recently I encountered a situation where a third-party module
called some library during httpd init that wrote an initialization message
directly to stderr, and the message was stuck in the stdio buffer and
forked into every child process for later, multiple appearances :) )

I guess an error log provider could be given the opportunity to route
stderr wherever it wants, but that doesn't handle the existing suckage of
random, un-timestamped stuff in the log for normal configurations.  I guess
you could have mod_stderr that may or may not be enabled if you wanted
stderr handled more cleanly (groan), whether or not you had a provider for
ap_log calls.



>
>
>
>
>> Thanks,
>> Jan Kaluza
>>
>>
>>> On Thu, Oct 17, 2013 at 8:33 AM, Plüm, Rüdiger, Vodafone Group
>>> mailto:ruediger.pl...@vodafone.com>>
>>> wrote:
>>>
>>>
>>>
>>>  > -Original Message-
>>>  > From: Jan Kaluža
>>>  > Sent: Donnerstag, 17. Oktober 2013 13:21
>>>  > To: dev@httpd.apache.org 
>>>  > Subject: Re: error log providers, multiple vhosts, mod_syslog
>>>  >
>>>  > There's another problem with log providers and vhosts and I think
>>> I have
>>>  > no idea how to fix it without doing dirty hacks...
>>>  >
>>>  > The problem is with ap_open_logs function, which does following:
>>>  >
>>>  > 1. Main server log is opened (open_error_log()). If this log uses
>>> error
>>>  > log provider, s_main->error_log is set to NULL.
>>>  >
>>>  > 2. When there is no s_main->error_log, stderr is redirected to
>>> /dev/null.
>>>
>>> Hmm. This points out another issue when using an error log provider
>>> for the main server log:
>>> We lose everything that the server or other programs like
>>> CGI-scripts write to the stderr FD as it
>>> is simply written to /dev/null. Don't we need to have a separate
>>> process in this case that
>>> like a piped logger reads from the reading end of the "stderr pipe"
>>> and writes it
>>> via ap_server_conf->errorlog_provider->writer to the log?
>>>
>>>  >
>>>  > 3. Error logs for vhosts are opened (another open_error_log()).
>>> If there
>>>  > is some problem when opening these logs, any ap_log_error() call
>>> is sent
>>>  > to /dev/null.
>>>
>>> Wouldn't it try to call s->errorlog_provider->writer in line 1196
>>> and Segfault if s->errorlog_provider
>>> is NULL because of some bad "classic" configuration that simply
>>> failed?
>>>
>>> Regards
>>>
>>> Rüdiger
>>>
>>>
>>>
>>>
>>> --
>>> Born in Roswell... married an alien...
>>> http://emptyhammock.com/
>>>
>>
>>
>
>
> --
> Born in Roswell... married an alien...
> http://emptyhammock.com/
>



-- 
Born in Roswell... married an alien...
http://emptyhammock.com/


Re: mod_proxy reverse proxying and AH01179: balancer slotmem_create failed

2013-11-06 Thread Thomas Eckert
It is not mentioned specifically in the configuration files, so it defaults
to "Off" according to
http://httpd.apache.org/docs/current/mod/mod_proxy.html#balancerpersist


On Wed, Nov 6, 2013 at 3:44 PM, Jim Jagielski  wrote:

> Is BalancerPersist Off or On?
>
> Those .shm files should only stick around if we want to
> persist state across restarts.
>
> On Nov 6, 2013, at 8:39 AM, Thomas Eckert 
> wrote:
>
> > As of late I'm seeing a lot of
> >
> >   AH01179: balancer slotmem_create failed
> >
> > error messages which prevent apache2 from starting. I do have
> >
> >   DefaultRuntimeDir /var/run/apache2
> >
> > set. For some reasons there appear to be "left-over" .shm files in the
> DefaultRunTimeDir between stop-starts/restarts which then get picked up by
> mod_slotmem when mod_proxy asks it for shared memory. Unfortunately, those
> .shm files sometimes have the wrong size and get rejected by the
> mod_slotmem code due to size mismatch.
> >
> > To me it looks like this situation suffers from the same issue as
> reported in https://issues.apache.org/bugzilla/show_bug.cgi?id=55449
> > though I only have one user (nobody) for all the worker processes.
> >
> > I get the systems back up and running by deleting all .shm files in the
> DefaultRunTimeDir between stop-starts/restarts but this seems fragile to
> me. Another workaround, as crude as it is, seems to be disabling the
> reusing of existing shared memory segments by setting
> >
> >   fbased = 0;
> >
> > in modules/slotmem/mod_slotmem_shm.c in slotmem_create().
> >
> > Neither of those two appraoches seems "right" to me. I do need at least
> a temporary workaround since this is causing major havoc.
>
>


Re: mod_proxy reverse proxying and AH01179: balancer slotmem_create failed

2013-11-06 Thread Jim Jagielski
Is BalancerPersist Off or On?

Those .shm files should only stick around if we want to
persist state across restarts.

On Nov 6, 2013, at 8:39 AM, Thomas Eckert  wrote:

> As of late I'm seeing a lot of
> 
>   AH01179: balancer slotmem_create failed
> 
> error messages which prevent apache2 from starting. I do have
> 
>   DefaultRuntimeDir /var/run/apache2
> 
> set. For some reasons there appear to be "left-over" .shm files in the 
> DefaultRunTimeDir between stop-starts/restarts which then get picked up by 
> mod_slotmem when mod_proxy asks it for shared memory. Unfortunately, those 
> .shm files sometimes have the wrong size and get rejected by the mod_slotmem 
> code due to size mismatch.
> 
> To me it looks like this situation suffers from the same issue as reported in 
> https://issues.apache.org/bugzilla/show_bug.cgi?id=55449
> though I only have one user (nobody) for all the worker processes.
> 
> I get the systems back up and running by deleting all .shm files in the 
> DefaultRunTimeDir between stop-starts/restarts but this seems fragile to me. 
> Another workaround, as crude as it is, seems to be disabling the reusing of 
> existing shared memory segments by setting
> 
>   fbased = 0;
> 
> in modules/slotmem/mod_slotmem_shm.c in slotmem_create().
> 
> Neither of those two appraoches seems "right" to me. I do need at least a 
> temporary workaround since this is causing major havoc.



mod_proxy reverse proxying and AH01179: balancer slotmem_create failed

2013-11-06 Thread Thomas Eckert
As of late I'm seeing a lot of

  AH01179: balancer slotmem_create failed

error messages which prevent apache2 from starting. I do have

  DefaultRuntimeDir /var/run/apache2

set. For some reasons there appear to be "left-over" .shm files in the
DefaultRunTimeDir between stop-starts/restarts which then get picked up by
mod_slotmem when mod_proxy asks it for shared memory. Unfortunately, those
.shm files sometimes have the wrong size and get rejected by the
mod_slotmem code due to size mismatch.

To me it looks like this situation suffers from the same issue as reported
in https://issues.apache.org/bugzilla/show_bug.cgi?id=55449
though I only have one user (nobody) for all the worker processes.

I get the systems back up and running by deleting all .shm files in the
DefaultRunTimeDir between stop-starts/restarts but this seems fragile to
me. Another workaround, as crude as it is, seems to be disabling the
reusing of existing shared memory segments by setting

  fbased = 0;

in modules/slotmem/mod_slotmem_shm.c in slotmem_create().

Neither of those two appraoches seems "right" to me. I do need at least a
temporary workaround since this is causing major havoc.