This is an archive of the discontinued Mercurial Phabricator instance.

wireprotoserver: support logging SSH server I/O to a file descriptor
ClosedPublic

Authored by indygreg on Feb 26 2018, 4:16 PM.

Details

Summary

We will soon introduce a debug command and tests for low-level I/O
behavior of the SSH wire protocol.

To facilitate this, we need to instrument the SSH server so it
can log its I/O as events occur.

We teach the SSH server to convert its stdout and stderr file objects
into file object proxies. We configure these proxies to log to a
file descriptor whose file number is specified via a config option.
The idea is to have a future debug command start the SSH server
process with access to an extra file descriptor that can be used
by the server process to log I/O. Monitoring only the write I/O
will be more robust than monitoring both writes and reads from the
client process because read operations are not deterministic. This
will matter for tests that capture raw I/O activity.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

indygreg created this revision.Feb 26 2018, 4:16 PM
indygreg updated this revision to Diff 6248.Mar 1 2018, 11:30 AM
durin42 accepted this revision.Mar 1 2018, 4:13 PM
This revision is now accepted and ready to land.Mar 1 2018, 4:13 PM
This revision was automatically updated to reflect the committed changes.