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 <<a = href=3D"mailto:[email protected]" class=3D"">[email protected]</a>> = 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 5 08:30:18 = perdition.imap4s[99711]: __vanessa_socket_server_accept: Falla accept = con el error<br class=3D"">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<br class=3D"">Mar 5 08:30:18 = perdition.imap4s[99711]: __vanessa_socket_server_accept: 53<br = class=3D"">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<br class=3D"">Mar 5 08:30:18 = perdition.imap4s[99711]: __vanessa_socket_server_accept: Falla accept = con el error<br class=3D"">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<br class=3D"">Mar 5 08:30:18 = perdition.imap4s[99711]: __vanessa_socket_server_accept: 35<br = class=3D"">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<br class=3D"">Mar 5 08:30:18 = perdition.imap4s[99711]: __vanessa_socket_server_acceptv: EGOITZ STATUS = -----> 0<br class=3D"">Mar 5 08:30:18 perdition.imap4s[99711]: = main: vanessa_socket_server_accept<br class=3D"">Mar 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> = <<a href=3D"mailto:[email protected]" = class=3D"">mailto:[email protected]</a>><br class=3D""><a = href=3D"http://www.sarenet.es" class=3D"">www.sarenet.es</a> <<a = href=3D"http://www.sarenet.es/" = class=3D"">http://www.sarenet.es/</a>><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 <<a = href=3D"mailto:[email protected]" class=3D"">[email protected]</a>> = 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""> = EAGAIN =3D 53<br class=3D""> EWOULDBLOCK =3D 35<br = class=3D""><br class=3D"">2. If so is the problem that the listening = process exits if<br class=3D""> errno is EWOULDBLOCK?<br = class=3D""><br class=3D""> 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> = <<a href=3D"mailto:[email protected]" = class=3D"">mailto:[email protected]</a>> <<a = href=3D"mailto:[email protected]" class=3D"">mailto:[email protected]</a> = <<a href=3D"mailto:[email protected]" = class=3D"">mailto:[email protected]</a>>><br class=3D""><a = href=3D"http://www.sarenet.es" class=3D"">www.sarenet.es</a> <<a = href=3D"http://www.sarenet.es/" class=3D"">http://www.sarenet.es/</a>> = <<a href=3D"http://www.sarenet.es/" = class=3D"">http://www.sarenet.es/</a> <<a = href=3D"http://www.sarenet.es/" = class=3D"">http://www.sarenet.es/</a>>><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 <<a = href=3D"mailto:[email protected]" class=3D"">[email protected]</a> = <<a href=3D"mailto:[email protected]" = class=3D"">mailto:[email protected]</a>>> 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 < 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(&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 = < 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 *) &from, &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 = < 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 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 < 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 -----> 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 & O_NONBLOCK) && child &&<br = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span> fcntl(listen_socket, F_SETFL, opt) < 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 & O_NONBLOCK) = && (flag & VANESSA_SOCKET_NO_FORK || !child) &&<br = class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre"> = </span> fcntl(*g, F_SETFL, opt) < 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 && g < 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 & = 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 && g < = 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> <<a href=3D"mailto:[email protected]" = class=3D"">mailto:[email protected]</a>> <<a = href=3D"mailto:[email protected]" class=3D"">mailto:[email protected]</a> = <<a href=3D"mailto:[email protected]" = class=3D"">mailto:[email protected]</a>>><br class=3D""><a = href=3D"http://www.sarenet.es" class=3D"">www.sarenet.es</a> <<a = href=3D"http://www.sarenet.es/" class=3D"">http://www.sarenet.es/</a>> = <<a href=3D"http://www.sarenet.es/" = class=3D"">http://www.sarenet.es/</a> <<a = href=3D"http://www.sarenet.es/" = class=3D"">http://www.sarenet.es/</a>>><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==--