Article delegate-en <_A4272@delegate-en.ML_>
  upper oldest olders older1 this newer1 newers latest
search
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
[delegate-en/4272] [Reference:<_A4271@delegate-en.ML_>]
Newsgroups: mail-lists.delegate-en

[DeleGate-En] Re: -Etw option causes random disconnections with tcprelay.
22 Dec 2008 09:07:40 GMT feedback@delegate.org (Yutaka Sato)
The DeleGate Project


Hi,

In message <_A4271@delegate-en.ML_> on 12/22/08(14:31:53)
you "Sunil S" <pv4iabdyi.ml@ml.delegate.org> wrote:
 |I run a specialist (tcprelay) on one of my boxes.  Clients are able to
 |connect to it for a short duration (a couple of minutes maximum) after
 |which connection to client is closed unexpectedly.
 | 
 |Earlier the service was hosted with 9.8.4-pre1 with a patch you had
 |supplied with additional option "-Etw".
 |(http://www.delegate.org/-fsx/search?jump=0.4114.http://www.delegate.org/mail-lists/delegate-en/041/41&index=dgmlEn).
 |I had seen that 9.9.0 retains the code for this option.  If I remove the
 |"-Etw" option, the random disconnection does not happen.  But, user
 |is able to connect beyond the specified time window too.
 | 
 |Mail from delegate about the problem (edited to remove IP addresses) is
 |quoted at the bottom.  Please help.

I could reproduce it on Linux.  It was caused by the stack-overflow in the
small stack of a thread to watch the timeout. It will be fixed by extending
the stack as the enclosed patch in the next release (9.9.1-pre4).
Thank you.

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

*** src/service.c	Sun Dec 21 21:00:31 2008
--- /nfs/delegate.all/service.c	Mon Dec 22 17:55:39 2008
***************
*** 1963,1969 ****
--- 1963,1972 ----
  	int sy[2],tid,rcode;
  
  	Socketpair(sy);
+ 	/*
  	tid = thread_fork(0,STX_tid,"TSwatcher",(IFUNCP)TSwatcher,Conn,sy[0]);
+ 	*/
+ 	tid = thread_fork(0x40000,STX_tid,"TSwatcher",(IFUNCP)TSwatcher,Conn,sy[0]);
  	rcode = (*svfunc)(Conn,0,0,FromC,ToC,DST_PROTO,DST_HOST,DST_PORT,"");
  	close(sy[1]);
  	thread_wait(tid,15*1000);

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