Public bug reported:

Binary package hint: busybox

Hi,

I have a compelling use case that requires that I have automated remote
syslogging capability in the Debian-Installer, as I need to be able to
get installation telemetry and status information from remote installs.

If you at Launchpad bug #160071, you will see that merely restarting
BusyBox's syslog for networking support is insufficient once networking
has been activated. Bug #160071, which ultimately pertains to libdebian-
installer, would be irrelevant if BusyBox's syslogd implementation
actually behaved like the sysklogd software it is modeled after.

The discrepancy in behavior is as follows: Sysklogd uses least effort
delivery mechanisms. If the remote logging host cannot be reached, it
does not block I/O, and it does not attempt to retransmit data. Also, if
the remote logging host cannot be resolved, DNS resolution is deferred
and periodically reattempted. This means that actual sysklogd can be
started with remote logging support before the networking stack has been
activated---e.g., from init.d. On the other hand, BusyBox's
implementation uses best effort delivery mechanisms. BusyBox's cannot be
started with remote logging support before the stack has been enabled,
as it will abort if DNS resolution fails. Secondly, if DNS resolution
works and the remote host cannot be reached, BusyBox's attempts to
resend and sleeps between redelivery attempts with an exponentially-
growing delay.

BusyBox's documentation explicitly states that the software's goal is to
conform as closely as possible to the behavior of the original software.
Per what I have described here, this is definitely a violation of that.
I had a discussion with one of the BusyBox maintainers about this, and
he patched BusyBox's SVN TRUNK version to fix this. With his help, I
took the ethos of his patch and wrote a similar one for the version of
BusyBox that Debian and Ubuntu use.

Attached to this bug is a debdiff patch to the BusyBox source package
that makes its syslogd implementation behavior conform to the actual
behavior of sysklogd, whose behavior it's modeled after.

Give that logging support is needed before networking has been
activated, it cannot be controlled by a preseed file fetched by HTTP.
What I have done then is to modify the rootskel's syslogd starting
script to get the remote logging host and port from the kernel's command
line---/proc/cmdline. I will be filing a separate bug for rootskel
within the next hour.

This is probably most useful to systems administrators and engineers who
are engaging in mass- and remote-deployment applications of Ubuntu
server and workstation.

I have tested this out with the latest Debian-Installer, and everything
appears to work as expected. I plan on submitting this upstream into
Debian within the next few weeks. Since the code freeze for the Hardy
Heron release is fast I approaching, I am submitting this patch to
Ubuntu first in hopes that it can be ushered in very quickly. I will be
working with my friends involved with Debian project to get this
included in the near future to keep the amount of delta between the two
projects low.

Let me know if you have any questions. Let's do what we can to get this
incorporated relatively quickly.

Cheers,

Matt

** Affects: busybox (Ubuntu)
     Importance: Undecided
         Status: New

-- 
BusyBox's Syslog Remote Logging Implementation Does Not Behave Like Actual 
Sysklogd with Least Effort Delivery Behavior
https://bugs.launchpad.net/bugs/184126
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to