[jira] [Commented] (LOG4NET-415) RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164

2016-05-27 Thread Jose Luis Pedrosa (JIRA)

[ 
https://issues.apache.org/jira/browse/LOG4NET-415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15304149#comment-15304149
 ] 

Jose Luis Pedrosa commented on LOG4NET-415:
---

Hi

Is there any way to get this patch applied to log4net? should I do a PR or 
something? would it help?

Rgds

JL

> RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164
> --
>
> Key: LOG4NET-415
> URL: https://issues.apache.org/jira/browse/LOG4NET-415
> Project: Log4net
>  Issue Type: Bug
>  Components: Appenders
>Affects Versions: 1.2.13
> Environment: Any Windows environment
>Reporter: Jose Luis Pedrosa
>  Labels: RemoteSyslogAppender
> Attachments: LOG4NET-415.patch, MessageLostTest.cs, 
> MessageLostTest.cs, MessageLostTestAsync.cs, RemoteSyslogNonBlockingV3.patch, 
> RemoteSyslogNonBlockingv2.patch
>
>
> Sending UDP packages may block for some time in specific circumstances:
> 1) Next hop in network level 3 can't be resolved by ARP.
> 2) Datagram size exceeds FastSendDatagramThreshold configured size.
> When sending packets bigger than FastSendDatagramThreshold, the OS waits 
> until the packet is actually sent, if the If the syslog (or the next hop to 
> reach the syslog) is in the same VLAN/Subnet the OS tries to resolve by ARP 
> the Ip of the configured syslog, this may take up to 3 seconds, slowing down 
> the whole application, which in some cases can lead to outages (timeouts, DB 
> locks...).
> Also the fact that each carriage return generates the headers of the packet 
> again, that can lead to a significant overhead in some scenarios, for 
> instance when loggign HTTP requests to a remote syslog, every header will go 
> in a different message. Also some logging may require characters that are now 
> skipped in patch:  https://issues.apache.org/jira/browse/LOG4NET-370
> I'm adding a patch that
> 1) Moves the use of UDPClient to Non blocking sockets, which eliminates the 
> blocking. 
> 2) Adds a configuration field to decide if you want Strict RFC Behaviour or 
> not (with default Strict).
> Please your feedback, thanks in advance
> Jose Luis



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (LOG4NET-415) RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164

2014-01-21 Thread Jose Luis Pedrosa (JIRA)

 [ 
https://issues.apache.org/jira/browse/LOG4NET-415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jose Luis Pedrosa updated LOG4NET-415:
--

Attachment: RemoteSyslogNonBlockingV3.patch

 RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164
 --

 Key: LOG4NET-415
 URL: https://issues.apache.org/jira/browse/LOG4NET-415
 Project: Log4net
  Issue Type: Bug
  Components: Appenders
Affects Versions: 1.2.13
 Environment: Any Windows environment
Reporter: Jose Luis Pedrosa
  Labels: RemoteSyslogAppender
 Attachments: LOG4NET-415.patch, MessageLostTest.cs, 
 MessageLostTest.cs, MessageLostTestAsync.cs, RemoteSyslogNonBlockingV3.patch, 
 RemoteSyslogNonBlockingv2.patch


 Sending UDP packages may block for some time in specific circumstances:
 1) Next hop in network level 3 can't be resolved by ARP.
 2) Datagram size exceeds FastSendDatagramThreshold configured size.
 When sending packets bigger than FastSendDatagramThreshold, the OS waits 
 until the packet is actually sent, if the If the syslog (or the next hop to 
 reach the syslog) is in the same VLAN/Subnet the OS tries to resolve by ARP 
 the Ip of the configured syslog, this may take up to 3 seconds, slowing down 
 the whole application, which in some cases can lead to outages (timeouts, DB 
 locks...).
 Also the fact that each carriage return generates the headers of the packet 
 again, that can lead to a significant overhead in some scenarios, for 
 instance when loggign HTTP requests to a remote syslog, every header will go 
 in a different message. Also some logging may require characters that are now 
 skipped in patch:  https://issues.apache.org/jira/browse/LOG4NET-370
 I'm adding a patch that
 1) Moves the use of UDPClient to Non blocking sockets, which eliminates the 
 blocking. 
 2) Adds a configuration field to decide if you want Strict RFC Behaviour or 
 not (with default Strict).
 Please your feedback, thanks in advance
 Jose Luis



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (LOG4NET-415) RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164

2014-01-09 Thread Jose Luis Pedrosa (JIRA)

[ 
https://issues.apache.org/jira/browse/LOG4NET-415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13866538#comment-13866538
 ] 

Jose Luis Pedrosa commented on LOG4NET-415:
---

Hi Cauchy,

Because of your result tests, I am quite convinced that non-blocking is better 
for this scenario:

Use Non-Blocking send 10 message, 3733 failed (3.73 %), use 1.396 seconds.
Vs
Use BeginSend send 10 message, 0 failed (.00 %), use 2.576 seconds.

The behaviour I want to achieve is fire and forget and don't block the main 
thread. The async took double of time! 
Also I think we need to understand the use case, it's for logging over UDP. In 
extreme scenarios as the one we are using here, I'd radther higher message lost 
rate than longer execution. Also I would expect a higher CPU using async vs 
non-blocking, I think that is the reason why you loose less messages in async 
mode, because it takes more time to do the same.

But I don't think anybody wants to log from a single application 100K messages 
per second, Imagine that in any real application (some of the one we know).  I 
think even for really high values 10k per second, the lost would be almost 0.

Also in your test you receive more messages because async is slower! so you 
take double of time, then double send. Blocking false maximizes what you can 
send per second and loosing messages if it exceeds your capacity, I think that 
is the best behaviour.

If you want to do a final test for the good shake of testing, you can try log 
at fixed rate, (100, 1000, 2500, 5000 ) per second, and see when you start 
loosing. But for what I've seen now, non-blocking achieves better the behaviour 
that I'd want.

Rgds

JL


 RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164
 --

 Key: LOG4NET-415
 URL: https://issues.apache.org/jira/browse/LOG4NET-415
 Project: Log4net
  Issue Type: Bug
  Components: Appenders
Affects Versions: 1.2.13
 Environment: Any Windows environment
Reporter: Jose Luis Pedrosa
  Labels: RemoteSyslogAppender
 Attachments: LOG4NET-415.patch, MessageLostTest.cs, 
 MessageLostTest.cs, MessageLostTestAsync.cs, RemoteSyslogNonBlockingv2.patch


 Sending UDP packages may block for some time in specific circumstances:
 1) Next hop in network level 3 can't be resolved by ARP.
 2) Datagram size exceeds FastSendDatagramThreshold configured size.
 When sending packets bigger than FastSendDatagramThreshold, the OS waits 
 until the packet is actually sent, if the If the syslog (or the next hop to 
 reach the syslog) is in the same VLAN/Subnet the OS tries to resolve by ARP 
 the Ip of the configured syslog, this may take up to 3 seconds, slowing down 
 the whole application, which in some cases can lead to outages (timeouts, DB 
 locks...).
 Also the fact that each carriage return generates the headers of the packet 
 again, that can lead to a significant overhead in some scenarios, for 
 instance when loggign HTTP requests to a remote syslog, every header will go 
 in a different message. Also some logging may require characters that are now 
 skipped in patch:  https://issues.apache.org/jira/browse/LOG4NET-370
 I'm adding a patch that
 1) Moves the use of UDPClient to Non blocking sockets, which eliminates the 
 blocking. 
 2) Adds a configuration field to decide if you want Strict RFC Behaviour or 
 not (with default Strict).
 Please your feedback, thanks in advance
 Jose Luis



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (LOG4NET-415) RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164

2014-01-08 Thread Jose Luis Pedrosa (JIRA)

 [ 
https://issues.apache.org/jira/browse/LOG4NET-415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jose Luis Pedrosa updated LOG4NET-415:
--

Attachment: RemoteSyslogNonBlockingv2.patch

 RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164
 --

 Key: LOG4NET-415
 URL: https://issues.apache.org/jira/browse/LOG4NET-415
 Project: Log4net
  Issue Type: Bug
  Components: Appenders
Affects Versions: 1.2.13
 Environment: Any Windows environment
Reporter: Jose Luis Pedrosa
  Labels: RemoteSyslogAppender
 Attachments: LOG4NET-415.patch, MessageLostTest.cs, 
 RemoteSyslogNonBlockingv2.patch


 Sending UDP packages may block for some time in specific circumstances:
 1) Next hop in network level 3 can't be resolved by ARP.
 2) Datagram size exceeds FastSendDatagramThreshold configured size.
 When sending packets bigger than FastSendDatagramThreshold, the OS waits 
 until the packet is actually sent, if the If the syslog (or the next hop to 
 reach the syslog) is in the same VLAN/Subnet the OS tries to resolve by ARP 
 the Ip of the configured syslog, this may take up to 3 seconds, slowing down 
 the whole application, which in some cases can lead to outages (timeouts, DB 
 locks...).
 Also the fact that each carriage return generates the headers of the packet 
 again, that can lead to a significant overhead in some scenarios, for 
 instance when loggign HTTP requests to a remote syslog, every header will go 
 in a different message. Also some logging may require characters that are now 
 skipped in patch:  https://issues.apache.org/jira/browse/LOG4NET-370
 I'm adding a patch that
 1) Moves the use of UDPClient to Non blocking sockets, which eliminates the 
 blocking. 
 2) Adds a configuration field to decide if you want Strict RFC Behaviour or 
 not (with default Strict).
 Please your feedback, thanks in advance
 Jose Luis



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (LOG4NET-415) RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164

2014-01-08 Thread Jose Luis Pedrosa (JIRA)

[ 
https://issues.apache.org/jira/browse/LOG4NET-415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13865410#comment-13865410
 ] 

Jose Luis Pedrosa commented on LOG4NET-415:
---

Hi,

Cauchy/Dongsheng, please send the patch in attached code, otherwise the 
comments are harder to follow.

1) I did this test using Log4net log.info (instead of sending just on a raw 
socket) and 0 packet lost or exceptions over millions of messages. 
Anyway I don't think this would happen in any other scenario than a thread 
sending messages continously, actually i did that test, only printing one byte 
to the console every 1 messages, and 0 lost.
In any case, a while loop for extraordinary long messages blocks is a good 
idea.  Despite the current log4net version does not check that.

2) Stefan: Any feedback about the CF framework and the strict option?

Rgds

JL


 RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164
 --

 Key: LOG4NET-415
 URL: https://issues.apache.org/jira/browse/LOG4NET-415
 Project: Log4net
  Issue Type: Bug
  Components: Appenders
Affects Versions: 1.2.13
 Environment: Any Windows environment
Reporter: Jose Luis Pedrosa
  Labels: RemoteSyslogAppender
 Attachments: LOG4NET-415.patch, MessageLostTest.cs, 
 RemoteSyslogNonBlockingv2.patch


 Sending UDP packages may block for some time in specific circumstances:
 1) Next hop in network level 3 can't be resolved by ARP.
 2) Datagram size exceeds FastSendDatagramThreshold configured size.
 When sending packets bigger than FastSendDatagramThreshold, the OS waits 
 until the packet is actually sent, if the If the syslog (or the next hop to 
 reach the syslog) is in the same VLAN/Subnet the OS tries to resolve by ARP 
 the Ip of the configured syslog, this may take up to 3 seconds, slowing down 
 the whole application, which in some cases can lead to outages (timeouts, DB 
 locks...).
 Also the fact that each carriage return generates the headers of the packet 
 again, that can lead to a significant overhead in some scenarios, for 
 instance when loggign HTTP requests to a remote syslog, every header will go 
 in a different message. Also some logging may require characters that are now 
 skipped in patch:  https://issues.apache.org/jira/browse/LOG4NET-370
 I'm adding a patch that
 1) Moves the use of UDPClient to Non blocking sockets, which eliminates the 
 blocking. 
 2) Adds a configuration field to decide if you want Strict RFC Behaviour or 
 not (with default Strict).
 Please your feedback, thanks in advance
 Jose Luis



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (LOG4NET-415) RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164

2014-01-08 Thread Jose Luis Pedrosa (JIRA)

[ 
https://issues.apache.org/jira/browse/LOG4NET-415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13865462#comment-13865462
 ] 

Jose Luis Pedrosa commented on LOG4NET-415:
---

Hi Cauchy

If you apply  the patch to the code, you would realize that it is already 
inside a try/catch block with log4net error handling this exception. It was 
already there in the trunk.

Rgds 

JL


 RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164
 --

 Key: LOG4NET-415
 URL: https://issues.apache.org/jira/browse/LOG4NET-415
 Project: Log4net
  Issue Type: Bug
  Components: Appenders
Affects Versions: 1.2.13
 Environment: Any Windows environment
Reporter: Jose Luis Pedrosa
  Labels: RemoteSyslogAppender
 Attachments: LOG4NET-415.patch, MessageLostTest.cs, 
 RemoteSyslogNonBlockingv2.patch


 Sending UDP packages may block for some time in specific circumstances:
 1) Next hop in network level 3 can't be resolved by ARP.
 2) Datagram size exceeds FastSendDatagramThreshold configured size.
 When sending packets bigger than FastSendDatagramThreshold, the OS waits 
 until the packet is actually sent, if the If the syslog (or the next hop to 
 reach the syslog) is in the same VLAN/Subnet the OS tries to resolve by ARP 
 the Ip of the configured syslog, this may take up to 3 seconds, slowing down 
 the whole application, which in some cases can lead to outages (timeouts, DB 
 locks...).
 Also the fact that each carriage return generates the headers of the packet 
 again, that can lead to a significant overhead in some scenarios, for 
 instance when loggign HTTP requests to a remote syslog, every header will go 
 in a different message. Also some logging may require characters that are now 
 skipped in patch:  https://issues.apache.org/jira/browse/LOG4NET-370
 I'm adding a patch that
 1) Moves the use of UDPClient to Non blocking sockets, which eliminates the 
 blocking. 
 2) Adds a configuration field to decide if you want Strict RFC Behaviour or 
 not (with default Strict).
 Please your feedback, thanks in advance
 Jose Luis



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (LOG4NET-415) RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164

2014-01-08 Thread Jose Luis Pedrosa (JIRA)

[ 
https://issues.apache.org/jira/browse/LOG4NET-415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13865497#comment-13865497
 ] 

Jose Luis Pedrosa commented on LOG4NET-415:
---

Cauchy

This is UDP, Fire and forget, you don't block your bussiness for logging. 
Failures are better than retries, TCP vs UDP, And again this is a very very 
exotic scenario that It's not possible to reproduce using the whole .log4net 
(only raw socket send in a loop to make it happen)

Async involves more threads going on on your application and more memory 
consumption.

Async is good when you need to know when your invokation has completed and you 
need to do something afterwards, which is not the case.

Rgds


 RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164
 --

 Key: LOG4NET-415
 URL: https://issues.apache.org/jira/browse/LOG4NET-415
 Project: Log4net
  Issue Type: Bug
  Components: Appenders
Affects Versions: 1.2.13
 Environment: Any Windows environment
Reporter: Jose Luis Pedrosa
  Labels: RemoteSyslogAppender
 Attachments: LOG4NET-415.patch, MessageLostTest.cs, 
 RemoteSyslogNonBlockingv2.patch


 Sending UDP packages may block for some time in specific circumstances:
 1) Next hop in network level 3 can't be resolved by ARP.
 2) Datagram size exceeds FastSendDatagramThreshold configured size.
 When sending packets bigger than FastSendDatagramThreshold, the OS waits 
 until the packet is actually sent, if the If the syslog (or the next hop to 
 reach the syslog) is in the same VLAN/Subnet the OS tries to resolve by ARP 
 the Ip of the configured syslog, this may take up to 3 seconds, slowing down 
 the whole application, which in some cases can lead to outages (timeouts, DB 
 locks...).
 Also the fact that each carriage return generates the headers of the packet 
 again, that can lead to a significant overhead in some scenarios, for 
 instance when loggign HTTP requests to a remote syslog, every header will go 
 in a different message. Also some logging may require characters that are now 
 skipped in patch:  https://issues.apache.org/jira/browse/LOG4NET-370
 I'm adding a patch that
 1) Moves the use of UDPClient to Non blocking sockets, which eliminates the 
 blocking. 
 2) Adds a configuration field to decide if you want Strict RFC Behaviour or 
 not (with default Strict).
 Please your feedback, thanks in advance
 Jose Luis



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (LOG4NET-415) RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164

2014-01-07 Thread Jose Luis Pedrosa (JIRA)

[ 
https://issues.apache.org/jira/browse/LOG4NET-415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13864040#comment-13864040
 ] 

Jose Luis Pedrosa commented on LOG4NET-415:
---

Hi all,

Please also note that in the http://tools.ietf.org/html/rfc5424 (a newer syslog 
specification) specifies that all encoding should be UTF8.
Maybe we should change the parameter name to control which specification is 
followed.



 RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164
 --

 Key: LOG4NET-415
 URL: https://issues.apache.org/jira/browse/LOG4NET-415
 Project: Log4net
  Issue Type: Bug
  Components: Appenders
Affects Versions: 1.2.13
 Environment: Any Windows environment
Reporter: Jose Luis Pedrosa
  Labels: RemoteSyslogAppender
 Attachments: LOG4NET-415.patch


 Sending UDP packages may block for some time in specific circumstances:
 1) Next hop in network level 3 can't be resolved by ARP.
 2) Datagram size exceeds FastSendDatagramThreshold configured size.
 When sending packets bigger than FastSendDatagramThreshold, the OS waits 
 until the packet is actually sent, if the If the syslog (or the next hop to 
 reach the syslog) is in the same VLAN/Subnet the OS tries to resolve by ARP 
 the Ip of the configured syslog, this may take up to 3 seconds, slowing down 
 the whole application, which in some cases can lead to outages (timeouts, DB 
 locks...).
 Also the fact that each carriage return generates the headers of the packet 
 again, that can lead to a significant overhead in some scenarios, for 
 instance when loggign HTTP requests to a remote syslog, every header will go 
 in a different message. Also some logging may require characters that are now 
 skipped in patch:  https://issues.apache.org/jira/browse/LOG4NET-370
 I'm adding a patch that
 1) Moves the use of UDPClient to Non blocking sockets, which eliminates the 
 blocking. 
 2) Adds a configuration field to decide if you want Strict RFC Behaviour or 
 not (with default Strict).
 Please your feedback, thanks in advance
 Jose Luis



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (LOG4NET-415) RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164

2014-01-07 Thread Jose Luis Pedrosa (JIRA)

[ 
https://issues.apache.org/jira/browse/LOG4NET-415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13864131#comment-13864131
 ] 

Jose Luis Pedrosa commented on LOG4NET-415:
---

Hi Stefan,

Thanks for your answer,
About CF: In the MS page i looked before sending the patch it said it was 
supported, that is why I removed the ifdef markers, but indeed i did not test 
against that platform. 

About Strict mode, the issue it is trying to address is: avoid a lot of extra 
data when logging things that contains new line (IE: HTTP SOAP requests with 
headers), indeed the patch does not provide RFC5424 compliance. But I am quite 
confident this can be useful for multiple scenarios (An stack trace of an 
exception for isntance).

So my opinion is:
This Strict mode (maybe rename the variable to, SplitByNewLine) is useful in 
various scenarios, and later create another SyslogAppender for RFC5424  or add 
a parameter/variable to specify the RFC compliance it should use, Like 
SyslogVersion = RFC5424|RFC3164.  I think the option of RFC3164 and  split 
(or not) by lines would be still usefull.

What do you think about it? 

Rgds

JL

 RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164
 --

 Key: LOG4NET-415
 URL: https://issues.apache.org/jira/browse/LOG4NET-415
 Project: Log4net
  Issue Type: Bug
  Components: Appenders
Affects Versions: 1.2.13
 Environment: Any Windows environment
Reporter: Jose Luis Pedrosa
  Labels: RemoteSyslogAppender
 Attachments: LOG4NET-415.patch


 Sending UDP packages may block for some time in specific circumstances:
 1) Next hop in network level 3 can't be resolved by ARP.
 2) Datagram size exceeds FastSendDatagramThreshold configured size.
 When sending packets bigger than FastSendDatagramThreshold, the OS waits 
 until the packet is actually sent, if the If the syslog (or the next hop to 
 reach the syslog) is in the same VLAN/Subnet the OS tries to resolve by ARP 
 the Ip of the configured syslog, this may take up to 3 seconds, slowing down 
 the whole application, which in some cases can lead to outages (timeouts, DB 
 locks...).
 Also the fact that each carriage return generates the headers of the packet 
 again, that can lead to a significant overhead in some scenarios, for 
 instance when loggign HTTP requests to a remote syslog, every header will go 
 in a different message. Also some logging may require characters that are now 
 skipped in patch:  https://issues.apache.org/jira/browse/LOG4NET-370
 I'm adding a patch that
 1) Moves the use of UDPClient to Non blocking sockets, which eliminates the 
 blocking. 
 2) Adds a configuration field to decide if you want Strict RFC Behaviour or 
 not (with default Strict).
 Please your feedback, thanks in advance
 Jose Luis



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (LOG4NET-415) RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164

2014-01-06 Thread Jose Luis Pedrosa (JIRA)
Jose Luis Pedrosa created LOG4NET-415:
-

 Summary: RemoteSyslogAppender may block for ARP resolution + 
Improvement Strict RFC3164
 Key: LOG4NET-415
 URL: https://issues.apache.org/jira/browse/LOG4NET-415
 Project: Log4net
  Issue Type: Bug
  Components: Appenders
Affects Versions: 1.2.13
 Environment: Any windows Windows environment
Reporter: Jose Luis Pedrosa


Sending UDP packages may block for some time in specific circumstances:
1) Next hop in network level 3 can't be resolved by ARP.
2) Datagram size exceeds FastSendDatagramThreshold configured size.

When sending packets bigger than FastSendDatagramThreshold, the OS waits until 
the packet is actually sent, if the If the syslog (or the next hop to reach the 
syslog) is in the same VLAN/Subnet the OS tries to resolve by ARP the Ip of the 
configured syslog, this may take up to 3 seconds, slowing down the whole 
application, which in some cases can lead to outages (timeouts, DB locks...).

Also the fact that each carriage return generates the headers of the packet 
again, that can lead to a significant overhead in some scenarios, for instance 
when loggign HTTP requests to a remote syslog, every header will go in a 
different message. Also some logging may require characters that are now 
skipped in patch:  https://issues.apache.org/jira/browse/LOG4NET-370


I'm adding a patch that
1) Moves the use of UDPClient to Non blocking sockets, which eliminates the 
blocking. 
2) Adds a configuration field to decide if you want Strict RFC Behaviour or not 
(with default Strict).

Please your feedback, thanks in advance

Jose Luis





--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (LOG4NET-415) RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164

2014-01-06 Thread Jose Luis Pedrosa (JIRA)

 [ 
https://issues.apache.org/jira/browse/LOG4NET-415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jose Luis Pedrosa updated LOG4NET-415:
--

Environment: Any Windows environment  (was: Any windows Windows environment)

 RemoteSyslogAppender may block for ARP resolution + Improvement Strict RFC3164
 --

 Key: LOG4NET-415
 URL: https://issues.apache.org/jira/browse/LOG4NET-415
 Project: Log4net
  Issue Type: Bug
  Components: Appenders
Affects Versions: 1.2.13
 Environment: Any Windows environment
Reporter: Jose Luis Pedrosa
  Labels: RemoteSyslogAppender
 Attachments: LOG4NET-415.patch


 Sending UDP packages may block for some time in specific circumstances:
 1) Next hop in network level 3 can't be resolved by ARP.
 2) Datagram size exceeds FastSendDatagramThreshold configured size.
 When sending packets bigger than FastSendDatagramThreshold, the OS waits 
 until the packet is actually sent, if the If the syslog (or the next hop to 
 reach the syslog) is in the same VLAN/Subnet the OS tries to resolve by ARP 
 the Ip of the configured syslog, this may take up to 3 seconds, slowing down 
 the whole application, which in some cases can lead to outages (timeouts, DB 
 locks...).
 Also the fact that each carriage return generates the headers of the packet 
 again, that can lead to a significant overhead in some scenarios, for 
 instance when loggign HTTP requests to a remote syslog, every header will go 
 in a different message. Also some logging may require characters that are now 
 skipped in patch:  https://issues.apache.org/jira/browse/LOG4NET-370
 I'm adding a patch that
 1) Moves the use of UDPClient to Non blocking sockets, which eliminates the 
 blocking. 
 2) Adds a configuration field to decide if you want Strict RFC Behaviour or 
 not (with default Strict).
 Please your feedback, thanks in advance
 Jose Luis



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)