Article delegate-en/3949 of [1-5169] on the server localhost:119
  upper oldest olders older1 this newer1 newers latest
search
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
[Reference:<_A3948@delegate-en.ML_>]
Newsgroups: mail-lists.delegate-en

[DeleGate-En] Re: intermittent 'abort: caught SIGPIPE' during startup
03 Apr 2008 01:10:50 GMT feedback@delegate.org (Yutaka Sato)
The DeleGate Project


Hi,

On 04/03/08(01:03) you Brent Beck <pjyhqbdyi-i3inxhmkmzfr.ml@ml.delegate.org> wrote
in <_A3948@delegate-en.ML_>
 |> ## log excerpt using debug/verbose logging...  
 |> 
 |> 04/02 11:05:12.76 [27421] 0+0: --INITIALIZATION DONE-00000000--00X:
 |> 9.7.7 on Linux/2.4.9-e.12smp--
 |> 04/02 11:05:12.76 [27421] 0+0: PollIn.POLLHUP (8) errno=0
 |> 04/02 11:05:12.76 [27421] 0+0: PollIn.POLLHUP (8) errno=0
 |> 04/02 11:05:12.76 [27421] 0+0: ## left connected but dead [8]
 |> 04/02 11:05:12.76 [27421] 0+0: --beDaemon:[8]0 parent=1/1
 |> 04/02 11:05:12.76 [27421] 0+0:
 |> dirfopen(/var/spool/delegate-nobody/adm/svstats9/_xxxxsrpxy01%3A80_,r+):
 |> 83409d8 [8]
 |> 04/02 11:05:12.76 [27421] 0+0: 
 |> ### HTMLCONV configuration:
...
 |> 04/02 11:05:12.76 [27421] 0+0: dirfopen(/var/log/stdout.log,a): 0 [-1]
 |> 04/02 11:05:12.76 [27421] 0+0: abort: caught SIGPIPE

Oh, maybe I understand your case:

 1) the standard output from your DeleGate is directed to some pipe or socket
 2) you don't have permission to create or write your "/var/log/stdout.log"
 3) the pipe or socket is closed till here
 4) something is written by DeleGate to the stderr
 5) it causes SIGPIPE and exit

If this is the case, changing one of above conditions will solve the problem. 

> 1) the standard output from your DeleGate is directed to some pipe or socket
> 2) you don't have permission to create or write your "/var/log/stdout.log"

  You are setting your log directory (LOGDIR="/var/log") owned by root 
  (not recommended) while running your DeleGate as "nobody" (recommended).

> 3) the pipe or socket is closed till here
> 4) something is written by DeleGate to the stderr

  It might be the message informing the error of fopen and could be
  escaped as the enclosed patch.

> 5) it causes SIGPIPE and exit

  Maybe it should be ignored in the main process of DeleGate.

Cheers,
Yutaka
--
  9 9   Yutaka Sato <y.sato@delegate.org> http://delegate.org/y.sato/
 ( ~ )  National Institute of Advanced Industrial Science and Technology
_<   >_ 1-1-4 Umezono, Tsukuba, Ibaraki, 305-8568 Japan
Do the more with the less -- B. Fuller


diff -cr delegate9.7.7/src/log.c ./src/log.c
*** delegate9.7.7/src/log.c	2007-10-30 21:33:26.000000000 +0900
--- ./src/log.c	2008-04-03 08:48:16.000000000 +0900
***************
*** 710,715 ****
--- 710,716 ----
  	}
  	if( fp == NOLOG )
  	if( Logf->l_filters && streq(Logf->l_filters,"STDOUTLOG") ){
+ 		if( isatty(fileno(stderr)) )
  		fprintf(stderr,"\r\n#### [%d] cannot open STDOUTLOG: %s\r\n",
  			getpid(),file);
  	}

  admin search upper oldest olders older1 this newer1 newers latest
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
@_@V