Hi,

I applied the final MHD update to my project.
Still some strange result.

Below is my MHD log generated by my custom send_param_adaptor()

15:31:58/000 {16138} [ INFO]  message repeated 8042083 times, MHD: socket
483 - 12165 bytes tried, but ret = -1, errno = 11
15:32:09/000 {16138} [ INFO]  message repeated 8534594 times, MHD: socket
483 - 12165 bytes tried, but ret = -1, errno = 11
15:32:20/000 {16138} [ INFO]  message repeated 8542227 times, MHD: socket
483 - 12165 bytes tried, but ret = -1, errno = 11
15:32:31/000 {16138} [ INFO]  message repeated 8546356 times, MHD: socket
483 - 12165 bytes tried, but ret = -1, errno = 11
15:32:32/889 {16132} [ INFO]  MHD: socket 479 - 385 bytes tried, but ret =
-1, errno = 104
15:32:32/889 {16138} [ INFO]  MHD: socket 483 - 12165 bytes tried, but ret
= -1, errno = 11
15:32:32/889 {16132} [ INFO]  MHD: Failed to send data: Connection reset by
peer
(intentionally omitted)
15:32:34/648 {16138} [ INFO]  MHD: socket 483 - 12165 bytes tried, but ret
= -1, errno = 11
15:32:34/648 {16132} [ INFO]  MHD: Failed to send data: Connection reset by
peer
15:32:34/648 {16138} [ INFO]  MHD: socket 483 - 12165 bytes tried, but ret
= -1, errno = 11
15:32:45/000 {16138} [ INFO]  message repeated 8033311 times, MHD: socket
483 - 12165 bytes tried, but ret = -1, errno = 11

As you see, there are too many erroneous repeats on the socket even in
error case. (errno is 11 (EAGAIN))
In such a case, I don't know what to do.


Thanks in advance.



------
weon


2014-10-30 0:53 GMT+09:00 Christian Grothoff <[email protected]>:

> On 10/29/2014 08:42 AM, Taehwan Weon wrote:
> > While testing our web-server (based on MHD 0.9.38), sometimes, I found
> > heavy cpu load.
> > It caused by infinite send_cls() calls because send call in send_cls()
> > returned -1 with errno of 0.
> >
> > I read and read again send() manual page, but there is no mention about
> the
> > case that send() returns -1 with errno of 0.
>
> I agree, that's why our logic doesn't quite expect that. But, nobody
> said libc/kernel isn't allowed to have bugs ;-).  So my suggestion would
> be this: I modify MHD to handle this (by closing the connection, don't
> see what else we can do), and you should please take it up with CentOS,
> asking them to fix that send() call. (What might be relevant these days:
> is this using GNU libc or diet libc / ulibc?)
>
> > My current environment is:
> >      OS Kernel :  2.6.32-358.11.5.el6.x86_64 (CentOS)
> >      MHD options:  MHD_USE_POLL_INTERNALLY |
> MHD_USE_THREAD_PER_CONNECTION|
> > MHD_USE_DEBUG;
> >
> >
> > Any help will be highly appreciated.
>
> I've patched MHD in SVN 34391, please let us know if that helps (note
> that IF the kernel does return -1 on send() with no errno, the new logic
> should simply close the connection).
>
> Happy hacking!
>
> Christian
>
>


-- 

*원 태환*ㅣ 부사장/COO

 (주)솔박스

서울시 강남구 역삼동 747-2 해성빌딩 7층

*T* 02-2182-3600     *F* 02-2058-2651

*M* 010-3335-8258  *E* [email protected]

Reply via email to