Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Builtin FSMonitor Part 1 #1040

Closed

Commits on Sep 20, 2021

  1. trace2: add trace2_child_ready() to report on background children

    Create "child_ready" event to capture the state of a child process
    created in the background.
    
    When a child command is started a "child_start" event is generated in
    the Trace2 log.  For normal synchronous children, a "child_exit" event
    is later generated when the child exits or is terminated.  The two events
    include information, such as the "child_id" and "pid", to allow post
    analysis to match-up the command line and exit status.
    
    When a child is started in the background (and may outlive the parent
    process), it is not possible for the parent to emit a "child_exit"
    event.  Create a new "child_ready" event to indicate whether the
    child was successfully started.  Also include the "child_id" and "pid"
    to allow similar post processing.
    
    This will be used in a later commit with the new "start_bg_command()".
    
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    jeffhostetler committed Sep 20, 2021
    Configuration menu
    Copy the full SHA
    f88e9fe View commit details
    Browse the repository at this point in the history
  2. simple-ipc: preparations for supporting binary messages.

    Add `command_len` argument to the Simple IPC API.
    
    In my original Simple IPC API, I assumed that the request would always
    be a null-terminated string of text characters.  The `command`
    argument was just a `const char *`.
    
    I found a caller that would like to pass a binary command to the
    daemon, so I am amending the Simple IPC API to receive `const char
    *command, size_t command_len` arguments.
    
    I considered changing the `command` argument to be a `void *`, but the
    IPC layer simply passes it to the pkt-line layer which takes a `const
    char *`, so to avoid confusion I left it as is.
    
    Note, the response side has always been a `struct strbuf` which
    includes the buffer and length, so we already support returning a
    binary answer.  (Yes, it feels a little weird returning a binary
    buffer in a `strbuf`, but it works.)
    
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    jeffhostetler committed Sep 20, 2021
    Configuration menu
    Copy the full SHA
    258baa0 View commit details
    Browse the repository at this point in the history
  3. simple-ipc: move definition of ipc_active_state outside of ifdef

    From: Carlo Marcelo Arenas Belón <carenas@gmail.com>
    
    Move the declartion of the `enum ipc_active_state` type outside of
    the SUPPORTS_SIMPLE_IPC ifdef.
    
    A later commit will introduce the `fsmonitor_ipc__*()` API and stub in
    a "mock" implementation that requires this enum in some function
    signatures.
    
    Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    jeffhostetler committed Sep 20, 2021
    Configuration menu
    Copy the full SHA
    c94b4cb View commit details
    Browse the repository at this point in the history
  4. simple-ipc/ipc-win32: add trace2 debugging

    Create "ipc-debug" category events to log unexpected errors
    when creating Simple-IPC connections.
    
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    jeffhostetler committed Sep 20, 2021
    Configuration menu
    Copy the full SHA
    82b6ce0 View commit details
    Browse the repository at this point in the history
  5. simple-ipc/ipc-win32: add Windows ACL to named pipe

    Set an ACL on the named pipe to allow the well-known group EVERYONE
    to read and write to the IPC server's named pipe.  In the event that
    the daemon was started with elevation, allow non-elevated clients
    to communicate with the daemon.
    
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    jeffhostetler committed Sep 20, 2021
    Configuration menu
    Copy the full SHA
    faf6034 View commit details
    Browse the repository at this point in the history
  6. run-command: create start_bg_command

    Create a variation of `run_command()` and `start_command()` to launch a command
    into the background and optionally wait for it to become "ready" before returning.
    
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    jeffhostetler committed Sep 20, 2021
    Configuration menu
    Copy the full SHA
    0822118 View commit details
    Browse the repository at this point in the history
  7. t/helper/simple-ipc: convert test-simple-ipc to use start_bg_command

    Convert test helper to use `start_bg_command()` when spawning a server
    daemon in the background rather than blocks of platform-specific code.
    
    Also, while here, remove _() translation around error messages since
    this is a test helper and not Git code.
    
    Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
    jeffhostetler committed Sep 20, 2021
    Configuration menu
    Copy the full SHA
    6b7a058 View commit details
    Browse the repository at this point in the history