[jboss-jira] [JBoss JIRA] (WFCORE-1401) TCP Syslog handler cannot log some messages after reconnect
James Perkins (JIRA)
issues at jboss.org
Thu Feb 18 17:37:00 EST 2016
[ https://issues.jboss.org/browse/WFCORE-1401?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James Perkins closed WFCORE-1401.
---------------------------------
Resolution: Rejected
This is the expected behavior. Here's what happens in the {{org.jboss.logmanager.handlers.SyslogHandler}}.
* First message when the server is down is sent and no error is raised by the {{java.net.Socket}} therefore the syslog handler thinks all is okay
* A second message is sent this time the {{java.net.Socket}} throws a {{java.net.SocketException: Broken pipe}}. The syslog handler reports this and the socket attempts to reconnect, but the message is not sent again.
* The third message succeeds because the connection has once again been resestablished
This works in your second scenario as well because the socket keeps attempting to connect. A successful connection is made by the time you send your third message. There is a possibility the message might not be sent until the fourth or fifth message even. It all depends on when the socket is reconnected.
That said there is a setting, {{blockOnReconnect}} which defaults to {{false}}, that will guarantee the third message is logged. The handler will block until a connection has been reestablished. I would however only suggest this be used wrapped in an {{async-handler}} as you could stall the entire server until the connection has been reestablished.
> TCP Syslog handler cannot log some messages after reconnect
> -----------------------------------------------------------
>
> Key: WFCORE-1401
> URL: https://issues.jboss.org/browse/WFCORE-1401
> Project: WildFly Core
> Issue Type: Bug
> Components: Logging
> Reporter: Ondrej Lukas
> Assignee: James Perkins
> Attachments: logging-deployment.war
>
>
> In case when logging to syslog through TCP protocol is configured and syslog port becomes unreachable then after syslog restart some messages can be thrown away.
> It seems syslog handler needs to another two logs for correct closing original TCP connection. In case when syslog is restarted and
> * no message is logged during syslog is unreachable then the first two messages will not be logged to syslog after syslog is running again
> * one message is attempted to be logged during syslog is unreachable then the first message will not be logged to syslog after syslog is running again
> * two and more messages are attempted to be logged during syslog is unreachable then everything is logged correctly after syslog is running again
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jboss-jira
mailing list