Re: Issues with Perdition 2.1 in FreeBSD

Egoitz Aurrekoetxea <[email protected]> Fri, 6 Mar 2015 14:50:58 +0100
Newsgroups gmane.mail.perdition.user
Message-ID <[email protected]>
--===============0072637545==
Content-Type: multipart/alternative; boundary="Apple-Mail=_1629E6DE-AB25-4DFA-8721-DF6E80636A7F"


--Apple-Mail=_1629E6DE-AB25-4DFA-8721-DF6E80636A7F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

cat /usr/include/errno.h | grep 53
#define	ECONNABORTED	53		/* Software caused connection =
abort */

That=E2=80=99s it :)



Egoitz Aurrekoetxea
Departamento de sistemas
944 209 470
Parque Tecnol=C3=B3gico. Edificio 103
48170 Zamudio (Bizkaia)
[email protected] <mailto:[email protected]>
www.sarenet.es <http://www.sarenet.es/>
Antes de imprimir este correo electr=C3=B3nico piense si es necesario =
hacerlo.

> El 6/3/2015, a las 14:27, Simon Horman <[email protected]> escribi=C3=B3=
:
>=20
> On Fri, Mar 06, 2015 at 01:46:52PM +0100, Egoitz Aurrekoetxea wrote:
>> Good morning,
>>=20
>> Thanks a lot for your help.
>>=20
>> If I=E2=80=99m taking a look to errno.h :=20
>>=20
>> cat /usr/include/errno.h | grep EAGA
>> 					/* 11 was EAGAIN */
>> #define	EAGAIN		35		/* Resource temporarily =
unavailable */
>> #define	EWOULDBLOCK	EAGAIN		/* Operation would block =
*/
>>=20
>> So, both are the same perhaps in FreeBSD??
>=20
> It seems so. What is the name associated with error 53 on your system?
>=20
>> The parent process exists in the order shown below, let me see you =
the corresponding output with the patch below (the literals in the dying =
moment) :=20
>>=20
>> Mar  5 08:30:18 perdition.imap4s[99711]: =
__vanessa_socket_server_accept: Falla accept con el error
>> Mar  5 08:30:18 perdition.imap4s[99711]: =
__vanessa_socket_server_accept: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> Mar  5 08:30:18 perdition.imap4s[99711]: =
__vanessa_socket_server_accept: 53
>> Mar  5 08:30:18 perdition.imap4s[99711]: =
__vanessa_socket_server_accept: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> Mar  5 08:30:18 perdition.imap4s[99711]: =
__vanessa_socket_server_accept: Falla accept con el error
>> Mar  5 08:30:18 perdition.imap4s[99711]: =
__vanessa_socket_server_accept: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> Mar  5 08:30:18 perdition.imap4s[99711]: =
__vanessa_socket_server_accept: 35
>> Mar  5 08:30:18 perdition.imap4s[99711]: =
__vanessa_socket_server_accept: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> Mar  5 08:30:18 perdition.imap4s[99711]: =
__vanessa_socket_server_acceptv: EGOITZ STATUS -----> 0
>> Mar  5 08:30:18 perdition.imap4s[99711]: main: =
vanessa_socket_server_accept
>> Mar  5 08:30:18 perdition.imap4s[99711]: Fatal error accepting child =
connection. Exiting.
>>=20
>> And no=E2=80=A6 I have no idea=E2=80=A6 Should say instead one =
clarification; we have updated this machines to FreeBSD 10.1-RELEASE-p6 =
and Perdition 2.1 (with Vanessa=E2=80=99s versions shown in previous =
email) last week
>> just, when the problems began. Have been taking a look at FreeBSD =
source code and SVN but am not being able to see any kind of =
modification in accept() syscall=E2=80=A6
>>=20
>> Thank you so much,
>> Best regards,
>>=20
>>=20
>> Egoitz Aurrekoetxea
>> Departamento de sistemas
>> 944 209 470
>> Parque Tecnol=C3=B3gico. Edificio 103
>> 48170 Zamudio (Bizkaia)
>> [email protected] <mailto:[email protected]>
>> www.sarenet.es <http://www.sarenet.es/>
>> Antes de imprimir este correo electr=C3=B3nico piense si es necesario =
hacerlo.
>>=20
>>> El 6/3/2015, a las 12:45, Simon Horman <[email protected]> =
escribi=C3=B3:
>>>=20
>>> Hi Egoitz,
>>>=20
>>> I'd like to try and clarify the situation.
>>>=20
>>> 1. Is the following correct?
>>>=20
>>>  EAGAIN =3D 53
>>>  EWOULDBLOCK =3D 35
>>>=20
>>> 2. If so is the problem that the listening process exits if
>>>  errno is EWOULDBLOCK?
>>>=20
>>>  If so do you have any idea why EWOULDBLOCK is being returned?
>>>=20
>>> On Fri, Mar 06, 2015 at 10:34:00AM +0100, Egoitz Aurrekoetxea wrote:
>>>> I had forgotten, the versions of Vanessa are :=20
>>>>=20
>>>> libvanessa_adt-0.0.9
>>>> libvanessa_logger-0.0.10
>>>> libvanessa_socket-0.0.12
>>>>=20
>>>> Perhaps I should check for this patch if errno is not EAGAIN and is =
EWOULDBLOCK for allowing Perdition parent process to fail if errno is =
EWOULDBLOCK??=20
>>>>=20
>>>> At this stage I=E2=80=99m still trying to see if this patch solves =
the issue=E2=80=A6.
>>>>=20
>>>> Best regards,
>>>>=20
>>>>=20
>>>> Egoitz Aurrekoetxea
>>>> Departamento de sistemas
>>>> 944 209 470
>>>> Parque Tecnol=C3=B3gico. Edificio 103
>>>> 48170 Zamudio (Bizkaia)
>>>> [email protected] <mailto:[email protected]> =
<mailto:[email protected] <mailto:[email protected]>>
>>>> www.sarenet.es <http://www.sarenet.es/> <http://www.sarenet.es/ =
<http://www.sarenet.es/>>
>>>> Antes de imprimir este correo electr=C3=B3nico piense si es =
necesario hacerlo.
>>>>=20
>>>>> El 5/3/2015, a las 16:59, Egoitz Aurrekoetxea <[email protected] =
<mailto:[email protected]>> escribi=C3=B3:
>>>>>=20
>>>>> God afternoon,
>>>>>=20
>>>>> I=E2=80=99m running some issues in a FreeBSD 10.1 RELENG machine =
with Perdition 2.1. Once or twice a day the parent process of POP3 or =
IMAP4 service dies. After doing some=20
>>>>> investigations have seen the problem comes when at =
vanessa_socket_server.c file at __vanessa_socket_server_accept() when it =
does the accept(). It seems accept() is failing=20
>>>>> with 53 (which continues) and later with 35 (talking about errno =
of course) with which exits with -1. So later is returning to =
__vanessa_socket_server_acceptv() and this one returns to=20
>>>>> vanessa_socket_server_acceptv due to :=20
>>>>>=20
>>>>> if (child < 0)
>>>>> 		return status;
>>>>>=20
>>>>> At this function (the last one) does exist :=20
>>>>>=20
>>>>> 			child =3D __vanessa_socket_server_acceptv(&g, =
ufds[i].fd,
>>>>> 						listen_socketv,=20
>>>>> 						maximum_connections,=20
>>>>> 						return_from, return_to, =
flag);
>>>>> 			VANESSA_LOGGER_DEBUG("EGOITZ 1E");
>>>>> 			if (child < 0) {
>>>>> 				VANESSA_LOGGER_DEBUG(
>>>>> 					=
"__vanessa_socket_server_acceptv");
>>>>> 				goto err;
>>>>>=20
>>>>>=20
>>>>> Perhaps this file be (please ignore the debugging literals) could =
be like this ?
>>>>>=20
>>>>> --- vanessa_socket_server.c	2010-06-22 09:21:37.000000000 =
+0200
>>>>> +++ vanessa_socket_server.c	2015-03-05 16:50:25.000000000 =
+0100
>>>>> @@ -388,10 +388,20 @@
>>>>> 		addrlen =3D sizeof(from);
>>>>> 		*g =3D accept(listen_socket, (struct sockaddr *) &from, =
&addrlen);
>>>>> 		if (*g  < 0) {
>>>>> +			char codigo[20];
>>>>> +			sprintf(codigo, "%d", errno);
>>>>> +			VANESSA_LOGGER_DEBUG("Falla accept con el =
error");
>>>>> +			=
VANESSA_LOGGER_DEBUG("=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D");
>>>>> +			VANESSA_LOGGER_DEBUG(codigo);
>>>>> +			=
VANESSA_LOGGER_DEBUG("=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D");		=09
>>>>> +			if (errno =3D=3D EAGAIN)=20
>>>>> +			{
>>>>> +				VANESSA_LOGGER_DEBUG("TENEMOS UN =
EAGAIN");
>>>>> +			}
>>>>> 			if(errno =3D=3D EINTR || errno =3D=3D =
ECONNABORTED) {
>>>>> 				continue; /* Ignore EINTR  and =
ECONNABORTED */
>>>>> 			}
>>>>> -			if (errno =3D=3D EAGAIN || errno =3D=3D =
EWOULDBLOCK)
>>>>> +			if (errno =3D=3D EWOULDBLOCK || errno =3D=3D =
EAGAIN)
>>>>> 				return -1; /* Don't log EAGAIN or =
EWOULDBLOCK */
>>>>> 			VANESSA_LOGGER_DEBUG_ERRNO("accept");
>>>>> 			return(-1);
>>>>> @@ -551,7 +561,10 @@
>>>>> 							flag);
>>>>> 	if (child < 0) {
>>>>> 		if (errno =3D=3D EAGAIN || errno =3D=3D EWOULDBLOCK)
>>>>> +		{
>>>>> 			status =3D 0;
>>>>> +			VANESSA_LOGGER_DEBUG("EGOITZ STATUS -----> 0");
>>>>> +		}
>>>>> 		else {
>>>>> 			=
VANESSA_LOGGER_DEBUG("__vanessa_socket_server_accept");
>>>>> 			status =3D -1;
>>>>> @@ -561,6 +574,7 @@
>>>>> 	if (!(opt & O_NONBLOCK) && child &&
>>>>> 	    fcntl(listen_socket, F_SETFL, opt) < 0) {
>>>>> 		VANESSA_LOGGER_DEBUG_ERRNO("fcntl: F_SETFL 2");
>>>>> +		VANESSA_LOGGER_DEBUG("ERROR 0000001 AAAAA");
>>>>> 		status =3D -1;
>>>>> 	}
>>>>>=20
>>>>> @@ -570,6 +584,7 @@
>>>>> 	if (!(opt & O_NONBLOCK) && (flag & VANESSA_SOCKET_NO_FORK || =
!child) &&
>>>>> 	    fcntl(*g, F_SETFL, opt) < 0) {
>>>>> 		VANESSA_LOGGER_DEBUG_ERRNO("fcntl: F_SETFL 3");
>>>>> +		VANESSA_LOGGER_DEBUG("ERROR 0000002 BBBB");
>>>>> 		status =3D -1;
>>>>> 	}
>>>>> =09
>>>>> @@ -632,6 +647,10 @@
>>>>> 					=
"__vanessa_socket_server_acceptv");
>>>>> 				goto err;
>>>>> 			}
>>>>> +			if (!child && g < 0)
>>>>> +			{
>>>>> +				break;
>>>>> +			}=09
>>>>> 			if (flag & VANESSA_SOCKET_NO_FORK || !child) {
>>>>> 				status =3D g;
>>>>> 				goto out;
>>>>>=20
>>>>> Mainly talking about :=20
>>>>>=20
>>>>> +			if (!child && g < 0)
>>>>> +			{
>>>>> +				break;
>>>>> +			}=09
>>>>>=20
>>>>> That way polling again socket fds instead of exiting and stop =
servicing the affected protocol in each case (POP3 or IMAP4)??
>>>>>=20
>>>>> Have done this last modification without having the luck of having =
an abnormal termination again, in order to check if this works=E2=80=A6
>>>>>=20
>>>>> Has anyone have noticed about something similar?.
>>>>>=20
>>>>> Thank you so much,
>>>>> Regards,=20
>>>>>=20
>>>>>=20
>>>>> Egoitz Aurrekoetxea
>>>>> Departamento de sistemas
>>>>> 944 209 470
>>>>> Parque Tecnol=C3=B3gico. Edificio 103
>>>>> 48170 Zamudio (Bizkaia)
>>>>> [email protected] <mailto:[email protected]> =
<mailto:[email protected] <mailto:[email protected]>>
>>>>> www.sarenet.es <http://www.sarenet.es/> <http://www.sarenet.es/ =
<http://www.sarenet.es/>>
>>>>> Antes de imprimir este correo electr=C3=B3nico piense si es =
necesario hacerlo.
>>>>>=20
>>>>> ______________________________________________
>>>>> Perdition-users mailing list
>>>>> [email protected]
>>>>> http://lists.vergenet.net/listinfo/perdition-users
>>>>=20
>>>=20
>>>> ______________________________________________
>>>> Perdition-users mailing list
>>>> [email protected]
>>>> http://lists.vergenet.net/listinfo/perdition-users
>>=20


--Apple-Mail=_1629E6DE-AB25-4DFA-8721-DF6E80636A7F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div style=3D"margin: 0px; font-size: 10px; font-family: =
Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);" =
class=3D"">cat /usr/include/errno.h | grep 53</div><div style=3D"margin: =
0px; font-size: 10px; font-family: Monaco; color: rgb(245, 245, 245); =
background-color: rgb(0, 0, 0);" class=3D"">#define<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>ECONNABORTED<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>53<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		</span>/* Software caused =
connection abort */</div><div class=3D""><br class=3D""></div><div =
class=3D"">That=E2=80=99s it :)</div><div class=3D"">
<style class=3D"">
body {
	font-family:Helvetica, Arial, sans-serif;
	font-size:12px;
	color:#333;
}
.moz-signature { color:#333!important; }
.firmasarenet {
	font-family:Helvetica, Arial, sans-serif;
	text-align:left;
	color:#333333;
}
.titulosarenet {
	font-family:Helvetica, Arial, sans-serif;
	font-weight:bold;
	font-size:12px;
	color:#333333;
}
.textosarenet {
	font-family:Helvetica, Arial, sans-serif;
	font-weight:bold;
	font-size:12px;
	color:#333333;
}
.dptosarenet { }
.imgsarenet { margin:0px 0px 10px 0px }
.imgsarenet img { }
.lnksarenet {
	color:#007AC4!important;
	font-size:12px;
	line-height:1.2;
	text-decoration:underline;
}
.firmasarenet a { color:#007ac4!important }
.imprimirsarenet {
	font-family:Helvetica, Arial, sans-serif;
	font-weight:normal;
	font-size:10px;
	line-height:1.2;
	color:#006600
}
</style>
<br class=3D"">
<br class=3D"">
<div style=3D"clear:both; text-align:left;" class=3D"firmasarenet">
  <div style=3D"margin:0 0 10px 0" class=3D"imgsarenet"><img =
src=3D"http://www.sarenet.es/estaticos/LogoSarenetEmails.png?13022013" =
alt=3D"sarenet" class=3D""></div>
  <div style=3D"font-family:Helvetica, Arial, sans-serif; =
font-weight:bold; font-size:14px; color:#333333" =
class=3D"titulosarenet"><strong class=3D"">Egoitz =
Aurrekoetxea</strong></div>
  <div style=3D"font-family:Helvetica, Arial, sans-serif; =
font-weight:normal; font-size:12px; color:#333333" =
class=3D"dptosarenet">Departamento de sistemas</div>
  <div style=3D"font-family:Helvetica, Arial, sans-serif; =
font-weight:normal; font-size:12px; color:#333333" =
class=3D"textosarenet">944 209 470<br class=3D"">Parque Tecnol=C3=B3gico. =
Edificio 103<br class=3D"">48170 Zamudio (Bizkaia)</div>
  <div style=3D"font-family:Helvetica, Arial, sans-serif; =
font-weight:normal; font-size:12px; color:#007AC4; line-height:1.2" =
class=3D"lnksarenet"><a id=3D"mailto" style=3D" font-size:12px; =
color:#007AC4; text-decoration:underline;" =
href=3D"mailto:[email protected]" class=3D""><label id=3D"label_email" =
class=3D"">[email protected]</label></a></div>
  <div style=3D"font-family:Helvetica, Arial, sans-serif; =
font-weight:normal; font-size:12px; color:#007AC4; line-height:1.2" =
class=3D"lnksarenet"><a href=3D"http://www.sarenet.es" style=3D" =
font-size:12px; color:#007AC4; text-decoration:underline;" =
class=3D"">www.sarenet.es</a></div>
  <br class=3D"">
  <div style=3D"font-family:Helvetica, Arial, sans-serif; =
font-weight:normal; font-size:10px; color:#A0C361" =
class=3D"imprimirsarenet">Antes de imprimir este correo electr=C3=B3nico =
piense si es necesario hacerlo.</div>
</div>

</div>
<br class=3D""><div style=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">El 6/3/2015, a las 14:27, Simon Horman &lt;<a =
href=3D"mailto:[email protected]" class=3D"">[email protected]</a>&gt; =
escribi=C3=B3:</div><br class=3D"Apple-interchange-newline"><div =
class=3D"">On Fri, Mar 06, 2015 at 01:46:52PM +0100, Egoitz Aurrekoetxea =
wrote:<br class=3D""><blockquote type=3D"cite" class=3D"">Good =
morning,<br class=3D""><br class=3D"">Thanks a lot for your help.<br =
class=3D""><br class=3D"">If I=E2=80=99m taking a look to errno.h : <br =
class=3D""><br class=3D"">cat /usr/include/errno.h | grep EAGA<br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>/* 11 was EAGAIN */<br class=3D"">#define<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>EAGAIN<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>35<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>/* Resource temporarily unavailable */<br class=3D"">#define<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>EWOULDBLOCK<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>EAGAIN<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>/* =
Operation would block */<br class=3D""><br class=3D"">So, both are the =
same perhaps in FreeBSD??<br class=3D""></blockquote><br class=3D"">It =
seems so. What is the name associated with error 53 on your system?<br =
class=3D""><br class=3D""><blockquote type=3D"cite" class=3D"">The =
parent process exists in the order shown below, let me see you the =
corresponding output with the patch below (the literals in the dying =
moment) : <br class=3D""><br class=3D"">Mar &nbsp;5 08:30:18 =
perdition.imap4s[99711]: __vanessa_socket_server_accept: Falla accept =
con el error<br class=3D"">Mar &nbsp;5 08:30:18 perdition.imap4s[99711]: =
__vanessa_socket_server_accept: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br class=3D"">Mar &nbsp;5 08:30:18 =
perdition.imap4s[99711]: __vanessa_socket_server_accept: 53<br =
class=3D"">Mar &nbsp;5 08:30:18 perdition.imap4s[99711]: =
__vanessa_socket_server_accept: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br class=3D"">Mar &nbsp;5 08:30:18 =
perdition.imap4s[99711]: __vanessa_socket_server_accept: Falla accept =
con el error<br class=3D"">Mar &nbsp;5 08:30:18 perdition.imap4s[99711]: =
__vanessa_socket_server_accept: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br class=3D"">Mar &nbsp;5 08:30:18 =
perdition.imap4s[99711]: __vanessa_socket_server_accept: 35<br =
class=3D"">Mar &nbsp;5 08:30:18 perdition.imap4s[99711]: =
__vanessa_socket_server_accept: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br class=3D"">Mar &nbsp;5 08:30:18 =
perdition.imap4s[99711]: __vanessa_socket_server_acceptv: EGOITZ STATUS =
-----&gt; 0<br class=3D"">Mar &nbsp;5 08:30:18 perdition.imap4s[99711]: =
main: vanessa_socket_server_accept<br class=3D"">Mar &nbsp;5 08:30:18 =
perdition.imap4s[99711]: Fatal error accepting child connection. =
Exiting.<br class=3D""><br class=3D"">And no=E2=80=A6 I have no idea=E2=80=
=A6 Should say instead one clarification; we have updated this machines =
to FreeBSD 10.1-RELEASE-p6 and Perdition 2.1 (with Vanessa=E2=80=99s =
versions shown in previous email) last week<br class=3D"">just, when the =
problems began. Have been taking a look at FreeBSD source code and SVN =
but am not being able to see any kind of modification in accept() =
syscall=E2=80=A6<br class=3D""><br class=3D"">Thank you so much,<br =
class=3D"">Best regards,<br class=3D""><br class=3D""><br =
class=3D"">Egoitz Aurrekoetxea<br class=3D"">Departamento de sistemas<br =
class=3D"">944 209 470<br class=3D"">Parque Tecnol=C3=B3gico. Edificio =
103<br class=3D"">48170 Zamudio (Bizkaia)<br class=3D""><a =
href=3D"mailto:[email protected]" class=3D"">[email protected]</a> =
&lt;<a href=3D"mailto:[email protected]" =
class=3D"">mailto:[email protected]</a>&gt;<br class=3D""><a =
href=3D"http://www.sarenet.es" class=3D"">www.sarenet.es</a> &lt;<a =
href=3D"http://www.sarenet.es/" =
class=3D"">http://www.sarenet.es/</a>&gt;<br class=3D"">Antes de =
imprimir este correo electr=C3=B3nico piense si es necesario hacerlo.<br =
class=3D""><br class=3D""><blockquote type=3D"cite" class=3D"">El =
6/3/2015, a las 12:45, Simon Horman &lt;<a =
href=3D"mailto:[email protected]" class=3D"">[email protected]</a>&gt; =
escribi=C3=B3:<br class=3D""><br class=3D"">Hi Egoitz,<br class=3D""><br =
class=3D"">I'd like to try and clarify the situation.<br class=3D""><br =
class=3D"">1. Is the following correct?<br class=3D""><br class=3D""> =
&nbsp;EAGAIN =3D 53<br class=3D""> &nbsp;EWOULDBLOCK =3D 35<br =
class=3D""><br class=3D"">2. If so is the problem that the listening =
process exits if<br class=3D""> &nbsp;errno is EWOULDBLOCK?<br =
class=3D""><br class=3D""> &nbsp;If so do you have any idea why =
EWOULDBLOCK is being returned?<br class=3D""><br class=3D"">On Fri, Mar =
06, 2015 at 10:34:00AM +0100, Egoitz Aurrekoetxea wrote:<br =
class=3D""><blockquote type=3D"cite" class=3D"">I had forgotten, the =
versions of Vanessa are : <br class=3D""><br =
class=3D"">libvanessa_adt-0.0.9<br class=3D"">libvanessa_logger-0.0.10<br =
class=3D"">libvanessa_socket-0.0.12<br class=3D""><br class=3D"">Perhaps =
I should check for this patch if errno is not EAGAIN and is EWOULDBLOCK =
for allowing Perdition parent process to fail if errno is EWOULDBLOCK?? =
<br class=3D""><br class=3D"">At this stage I=E2=80=99m still trying to =
see if this patch solves the issue=E2=80=A6.<br class=3D""><br =
class=3D"">Best regards,<br class=3D""><br class=3D""><br =
class=3D"">Egoitz Aurrekoetxea<br class=3D"">Departamento de sistemas<br =
class=3D"">944 209 470<br class=3D"">Parque Tecnol=C3=B3gico. Edificio =
103<br class=3D"">48170 Zamudio (Bizkaia)<br class=3D""><a =
href=3D"mailto:[email protected]" class=3D"">[email protected]</a> =
&lt;<a href=3D"mailto:[email protected]" =
class=3D"">mailto:[email protected]</a>&gt; &lt;<a =
href=3D"mailto:[email protected]" class=3D"">mailto:[email protected]</a> =
&lt;<a href=3D"mailto:[email protected]" =
class=3D"">mailto:[email protected]</a>&gt;&gt;<br class=3D""><a =
href=3D"http://www.sarenet.es" class=3D"">www.sarenet.es</a> &lt;<a =
href=3D"http://www.sarenet.es/" class=3D"">http://www.sarenet.es/</a>&gt; =
&lt;<a href=3D"http://www.sarenet.es/" =
class=3D"">http://www.sarenet.es/</a> &lt;<a =
href=3D"http://www.sarenet.es/" =
class=3D"">http://www.sarenet.es/</a>&gt;&gt;<br class=3D"">Antes de =
imprimir este correo electr=C3=B3nico piense si es necesario hacerlo.<br =
class=3D""><br class=3D""><blockquote type=3D"cite" class=3D"">El =
5/3/2015, a las 16:59, Egoitz Aurrekoetxea &lt;<a =
href=3D"mailto:[email protected]" class=3D"">[email protected]</a> =
&lt;<a href=3D"mailto:[email protected]" =
class=3D"">mailto:[email protected]</a>&gt;&gt; escribi=C3=B3:<br =
class=3D""><br class=3D"">God afternoon,<br class=3D""><br =
class=3D"">I=E2=80=99m running some issues in a FreeBSD 10.1 RELENG =
machine with Perdition 2.1. Once or twice a day the parent process of =
POP3 or IMAP4 service dies. After doing some <br class=3D"">investigations=
 have seen the problem comes when at vanessa_socket_server.c file at =
__vanessa_socket_server_accept() when it does the accept(). It seems =
accept() is failing <br class=3D"">with 53 (which continues) and later =
with 35 (talking about errno of course) with which exits with -1. So =
later is returning to __vanessa_socket_server_acceptv() and this one =
returns to <br class=3D"">vanessa_socket_server_acceptv due to : <br =
class=3D""><br class=3D"">if (child &lt; 0)<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>return =
status;<br class=3D""><br class=3D"">At this function (the last one) =
does exist : <br class=3D""><br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>child =3D =
__vanessa_socket_server_acceptv(&amp;g, ufds[i].fd,<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>listen_socketv, <br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>maximum_connections, <br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>return_from, return_to, flag);<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>VANESSA_LOGGER_DEBUG("EGOITZ 1E");<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>if (child =
&lt; 0) {<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>VANESSA_LOGGER_DEBUG(<br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>"__vanessa_socket_server_acceptv");<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>goto =
err;<br class=3D""><br class=3D""><br class=3D"">Perhaps this file be =
(please ignore the debugging literals) could be like this ?<br =
class=3D""><br class=3D"">--- vanessa_socket_server.c<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>2010-06-22 09:21:37.000000000 +0200<br class=3D"">+++ =
vanessa_socket_server.c<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>2015-03-05 16:50:25.000000000 =
+0100<br class=3D"">@@ -388,10 +388,20 @@<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>addrlen =3D=
 sizeof(from);<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>*g =3D accept(listen_socket, =
(struct sockaddr *) &amp;from, &amp;addrlen);<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>if (*g =
&nbsp;&lt; 0) {<br class=3D"">+<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>char codigo[20];<br =
class=3D"">+<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>sprintf(codigo, "%d", errno);<br class=3D"">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>VANESSA_LOGGER_DEBUG("Falla accept con el error");<br =
class=3D"">+<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>VANESSA_LOGGER_DEBUG("=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D");<br class=3D"">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>VANESSA_LOGGER_DEBUG(codigo);<br class=3D"">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>VANESSA_LOGGER_DEBUG("=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D");<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><br class=3D"">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>if (errno =
=3D=3D EAGAIN) <br class=3D"">+<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>{<br class=3D"">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>VANESSA_LOGGER_DEBUG("TENEMOS UN EAGAIN");<br class=3D"">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>}<br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>if(errno =3D=3D EINTR || errno =3D=3D ECONNABORTED) {<br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>continue; /* Ignore EINTR &nbsp;and ECONNABORTED */<br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>}<br class=3D"">-<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>if (errno =3D=3D EAGAIN || errno =
=3D=3D EWOULDBLOCK)<br class=3D"">+<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>if (errno =3D=3D EWOULDBLOCK || =
errno =3D=3D EAGAIN)<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>return -1; /* Don't log EAGAIN or =
EWOULDBLOCK */<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	=
</span>VANESSA_LOGGER_DEBUG_ERRNO("accept");<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>return(-1);<br class=3D"">@@ -551,7 +561,10 @@<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>flag);<br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>if (child &lt; 0) {<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>if (errno =3D=3D EAGAIN || errno =
=3D=3D EWOULDBLOCK)<br class=3D"">+<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>{<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>status =3D =
0;<br class=3D"">+<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>VANESSA_LOGGER_DEBUG("EGOITZ =
STATUS -----&gt; 0");<br class=3D"">+<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>}<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>else {<br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>VANESSA_LOGGER_DEBUG("__vanessa_socket_server_accept");<br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>status =3D -1;<br class=3D"">@@ -561,6 +574,7 @@<br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>if (!(opt &amp; O_NONBLOCK) &amp;&amp; child &amp;&amp;<br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;&nbsp;&nbsp;fcntl(listen_socket, F_SETFL, opt) &lt; 0) =
{<br class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>VANESSA_LOGGER_DEBUG_ERRNO("fcntl: F_SETFL 2");<br =
class=3D"">+<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>VANESSA_LOGGER_DEBUG("ERROR 0000001 AAAAA");<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>status =3D =
-1;<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>}<br class=3D""><br class=3D"">@@ =
-570,6 +584,7 @@<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>if (!(opt &amp; O_NONBLOCK) =
&amp;&amp; (flag &amp; VANESSA_SOCKET_NO_FORK || !child) &amp;&amp;<br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span> &nbsp;&nbsp;&nbsp;fcntl(*g, F_SETFL, opt) &lt; 0) {<br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>VANESSA_LOGGER_DEBUG_ERRNO("fcntl: F_SETFL 3");<br =
class=3D"">+<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>VANESSA_LOGGER_DEBUG("ERROR 0000002 BBBB");<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>status =3D =
-1;<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>}<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><br =
class=3D"">@@ -632,6 +647,10 @@<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>"__vanessa_socket_server_acceptv");<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>goto =
err;<br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>}<br class=3D"">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>if =
(!child &amp;&amp; g &lt; 0)<br class=3D"">+<span class=3D"Apple-tab-span"=
 style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>{<br class=3D"">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>break;<br =
class=3D"">+<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>}<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><br class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>if (flag &amp; =
VANESSA_SOCKET_NO_FORK || !child) {<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>status =3D =
g;<br class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
	</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>goto out;<br class=3D""><br class=3D"">Mainly talking about : <br =
class=3D""><br class=3D"">+<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>if (!child &amp;&amp; g &lt; =
0)<br class=3D"">+<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>{<br class=3D"">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>break;<br =
class=3D"">+<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>}<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><br class=3D""><br class=3D"">That way polling again socket fds =
instead of exiting and stop servicing the affected protocol in each case =
(POP3 or IMAP4)??<br class=3D""><br class=3D"">Have done this last =
modification without having the luck of having an abnormal termination =
again, in order to check if this works=E2=80=A6<br class=3D""><br =
class=3D"">Has anyone have noticed about something similar?.<br =
class=3D""><br class=3D"">Thank you so much,<br class=3D"">Regards, <br =
class=3D""><br class=3D""><br class=3D"">Egoitz Aurrekoetxea<br =
class=3D"">Departamento de sistemas<br class=3D"">944 209 470<br =
class=3D"">Parque Tecnol=C3=B3gico. Edificio 103<br class=3D"">48170 =
Zamudio (Bizkaia)<br class=3D""><a href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a> &lt;<a href=3D"mailto:[email protected]" =
class=3D"">mailto:[email protected]</a>&gt; &lt;<a =
href=3D"mailto:[email protected]" class=3D"">mailto:[email protected]</a> =
&lt;<a href=3D"mailto:[email protected]" =
class=3D"">mailto:[email protected]</a>&gt;&gt;<br class=3D""><a =
href=3D"http://www.sarenet.es" class=3D"">www.sarenet.es</a> &lt;<a =
href=3D"http://www.sarenet.es/" class=3D"">http://www.sarenet.es/</a>&gt; =
&lt;<a href=3D"http://www.sarenet.es/" =
class=3D"">http://www.sarenet.es/</a> &lt;<a =
href=3D"http://www.sarenet.es/" =
class=3D"">http://www.sarenet.es/</a>&gt;&gt;<br class=3D"">Antes de =
imprimir este correo electr=C3=B3nico piense si es necesario hacerlo.<br =
class=3D""><br =
class=3D"">______________________________________________<br =
class=3D"">Perdition-users mailing list<br class=3D""><a =
href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a><br =
class=3D"">http://lists.vergenet.net/listinfo/perdition-users<br =
class=3D""></blockquote><br class=3D""></blockquote><br =
class=3D""><blockquote type=3D"cite" =
class=3D"">______________________________________________<br =
class=3D"">Perdition-users mailing list<br class=3D""><a =
href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a><br =
class=3D"">http://lists.vergenet.net/listinfo/perdition-users<br =
class=3D""></blockquote></blockquote><br =
class=3D""></blockquote></div></blockquote></div><br =
class=3D""></body></html>=

--Apple-Mail=_1629E6DE-AB25-4DFA-8721-DF6E80636A7F--

--===============0072637545==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

______________________________________________
Perdition-users mailing list
[email protected]
http://lists.vergenet.net/listinfo/perdition-users

--===============0072637545==--