Skip to main content

Agent Reference & Logs

Agent State Diagrams

The diagrams in this section show the steps that an Agent transitions through during installation, startup, and execution. This can be useful for flagging or debugging issues related to Agent operation.

Binary Installation

Upon installing the binary associated with an Agent, the Connection associated with the Agent looks for whether a connection file exists to determine configuration. If not available, configuration information is collected in a wizard (graphical for Windows, CLI for Linux) and a Connection configuration file is stored to a local file based on these inputs.

Agent installation execution flow

If the binary associated with the Agent is re-run, the Agent will attempt to use the previous configuration (found in the same directory as the binary) if available. This can be convenient if there is a need re-install an Agent; to avoid using the existing connection configuration, remove the existing configuration file.

Connection Startup

The Connection startup processes follows the config validation execution flow described in the prior section. These steps are executed by the service that is created immediately after an Agent binary has been run.

Agent startup execution flow
  • Create OS signal handling: Signal handlers specific to the OS are created for handling system events (for example, to halt execution)
  • Load conn obj from yaml: Load the configuration file created during installation to the Connection
  • Validate configuration: The Agent validates that the configuration file is valid
  • Upload local and OS service logs: Local logs are for the Agent Connection are uploaded. Note: this log upload occurs on a best efforts basis prior to health checks conducted in the subsequent step, and so may fail if the computer lacks connectivity with Ganymede Cloud
  • Health check: Connectivity to Ganymede cloud and ability for the Agent to access local watch directory is established
  • Register connection: Connection registers its configuration with Ganymede Cloud, sets its runtime state to EXECUTING, and its connection state to LIVE
  • Start status ping: Status ping thread starts executing. This thread also handles version updates and responds to Ganymede Cloud requests to shut down (e.g. - if a user disables the Agent in the Ganymede web app)
  • Execute pipeline: Connection executes its stated purpose (e.g. - scans local directory for new/modified files and uploads them)

Execution

Connections associated with an Agent pass through runtime states shown below. The activities described in Connection Startup occur in the INITIALIZATION connection runtime state. Transitions between the different states can be found in Connection log messages.

Connection Runtime State transitions
Connection Runtime StateDescription
INITIALIZINGConnection has not completed its registration to API Server.
EXECUTINGAgent has registered Connection, and shared that the state of the Connection is LIVE.
RUNTIME_UPDATEProcessor from Agent is being updated. The processor is the code that executes the user-defined code.
FULL_UPDATEA full update of the Connection is being performed; the prior Agent executable is being uninstalled and a new Agent executable is being installed.
SHUTDOWN_STARTEDConnection shutdown started (Connection has shared that it's state is SHUTDOWN with API server)
SHUTDOWN_COMPLETEConnection shutdown is complete

 

Connection StateDescription
LIVEConnection is active.
SHUTDOWNConnection stopped and shut down. Will require manual intervention to restart.
UPDATINGConnection is in the middle of an update.

Logging

The table below shows log messsages that can be found in Agents / Connections. These can be found in the UI by navigating to the relevant Connection.

  • Message: message received from Agent
  • Description: contextualized version of message emitted by Agent
  • Section: section within Agent code generating message
  • Logging Level: level of severity that log indicates
  • OS: operating system that the message pertains to, if applicable
  • Associated Error Type: associated Agent error type, if applicable

Logging Level

Logging LevelDescription
INTERNALInternal systems messages are written locally, but not presented in the web UI.
DEBUGFor debugging Connection activity, but unnecessary for interpreting typical behavior.
INFOInformational messages for contextualizing Connection behavior, but does not reflect changes to Connection state or interaction with Ganymede web server.
ACTIVITYRegards changes to state or operations performed by the Agent.
ERRORIndicates failure of Agent to perform an intended operation. Note that the Connection may continue to function after observing errors, if the specific error is one that the Connection is able to recover from.

System-generated messages

For Agent Connections v4.8+, the messages below are logged on method calls within the Connection, and can be used to trace through the thread stack and call stack.

MessageDescriptionSectionLogging LevelAssociated Error Type
Calling {method name} with args={args}, kwargs={kwargs} from {caller method name} in thread {thread name} with native ID: {thread native ID}Log message upon entering method. Thread native ID is the thread ID assigned by the system kernel.ConnectionInfoN/A
Exited call to method {method name} with args={args}, kwargs={kwargs} in thread {thread name} with native ID: {thread native ID}.Log message upon exiting method.ConnectionInfoN/A
Exception in {method name} with args={args}, kwargs={kwargs} in thread {thread name} with native ID: {native ID}: {error}, ID: {thread ID}, Alive: {thread is alive}, Daemon: {thread is daemon}, Active Count: {number of active threads}, Parent Name: {parent thread name}, Parent Thread ID: {parent thread ID}, Parent Thread Native ID: {parent thread native ID}, Called by: {caller method name},\nRuntime state: {Connection runtime state}, Environment: {Connection environment}ConnectionErrorException

OS-agnostic messages

The messages in the table below are OS-agnostic messages that are printed depending on the code path executed in a Connection, categorized by runtime state.

Initializing

MessageDescriptionRun StageConnection Runtime StateLogging LevelAssociated Error Type
Setting new version because the config is being set from cliConnection StartupINITIALIZINGInfoN/A
New connection version: {agent_version}, name: {name}, core version: {version}Generate a new config for the connection when run from CLIConnection StartupINITIALIZINGInfoN/A
New connection version: {version}Update connection versionConnection StartupINITIALIZINGInfoN/A
Loading Agent config to Connection. Agent version: {agent_version}, Agent codebase version: {agent_codebase_version}Loading yaml config from Agent to ConnectionConnection StartupINITIALIZINGInfoN/A
Attempting to read config from cli but the file has not been created. Expected location: {path to config}Connection StartupINITIALIZINGErrorException
Connection successfully initializedSignal handler initialized, logger initialized, and, if agent is a Virtualization Agent, Agent has app ID.Register ConnectionINITIALIZINGInfoN/A
Virtualization Agent requires the app_id to be set. Only found these vars {variables} for connection {id} of agent {agent id}Connection marked as a virtualization Connection, but does not have an app_id for virtualization.Register ConnectionINITIALIZINGErrorTypeError
Skipping status ping {id} with {runtime_state}Connection did not start successfully. Agent is entering shutdown state, so will not start status ping thread.Start Status PingINITIALIZINGInfoN/A
Skipping status ping health check {id} with {runtime state}Connection did not start successfully. Agent is entering shutdown state, so will not start status ping health check thread.Start Status PingINITIALIZINGInfoN/A
Unable to ping API Server at {api_url.geturl()}Health CheckINITIALIZINGErrorN/A
Unable to ping Pub/Server API ServerUnable to ping Pub/Server for Ganymede Cloud.Health CheckINITIALIZINGErrorN/A
Unable to ping GCS API ServerHealth CheckINITIALIZINGErrorN/A
Stopping and disabling connection service. It will not resume without user intervention. Exe: {exe location}. Reason: Health checks did not pass, agent functionality limited. Connection service must shut down until this is resolved.Startup health check did not run successfully. The health check is described on https://docs.ganymede.bio/app/configuration/AgentSystemRequirements#testing-connectivity. Stopping and disabling service.Health CheckINITIALIZINGInfoException
Stopping and disabling connection service. It will not resume without user intervention. Exe: {exe location}. Reason: Agent cannot be found in api-server. Connection service must shut down.Either unable to register connection or share that connection state is live. Had an ApiException in internal Agent API communication with 404 status code.Register ConnectionINITIALIZINGErroropenapi_client.ApiException with 404 status code
Unable to register connection.Either unable to register connection or share that connection state is live. Did not have an ApiException in internal Agent API communication with 404 status code.Register ConnectionINITIALIZINGErrorException (other than openapi_client.ApiException with 404 status code)
Starting new connection {id} with labels {labels} and vars {variables}Registering connectionRegister ConnectionINITIALIZINGInfoN/A
Starting status ping {id} with {runtime_state}Starting status pingStart Status PingINITIALIZINGInfoN/A
Full connection before trigger: {connection info}Displays connection info just before entering the EXECUTING state.Execute PipelineINITIALIZINGInfoN/A
Stdout log is empty. No need to upload.Log is not being uploaded to Ganymede Cloud because it is empty.Upload local and OS service logsINITIALIZINGDebugN/A
About to upload log {upload_name=}Upload local and OS service logsINITIALIZINGInfoN/A
Successfully uploaded log {upload_name=}Upload local and OS service logsINITIALIZINGInfoN/A
Unable to write log file {file_name} to cloud as {upload_name}. Expected runtime will continue. Error {error}Unable to upload log to Ganymede Cloud.Upload local and OS service logsINITIALIZINGErrorN/A
Testing communication to {hostname}Testing network connectivity to ensure Connection functionality.Health CheckINITIALIZINGInfoN/A
Failed to reach {hostname} because {status code}Unable to reach {hostname}; received {status code} during communication.Health CheckINITIALIZINGInfoN/A
Failed to reach {hostname} because {error}Unable to reach {hostname}; due to {error}.Health CheckINITIALIZINGInfoN/A
Testing communication to {hostname} has concludedSuccessfully reached external endpoint {hostname}.Health CheckINITIALIZINGInfoN/A
Log file already exists, so will not upload again: {upload_location}Upload local and OS service logsINITIALIZINGInfoN/A

Executing

MessageDescriptionRun StageConnection Runtime StateLogging LevelAssociated Error Type
Continuing to loop here. Restarting count. liveness_ping is still runningLiveness ping has cycled through another 100 calls (conducted every 30s by default)ExecutionEXECUTINGInfoN/A
Status ping health check is not running. Starting it again.Either ping health check is not running or ping heal check thread is not aliveExecutionEXECUTINGInfoN/A
Starting agent full update to agent version {agent version}Full update has been requested, and will be spawned in new thread to preserve nominal behavior.ExecutionEXECUTINGInfoN/A
Starting agent runtime update to version {agent version}Runtime update process started. This updates the connection runtime if configuration to update to is valid, Agent is set to auto update, and update would be non-breaking.ExecutionEXECUTINGInfoN/A
Error verifying the stateUnable to verify state of ConnectionUpdateExecutionEXECUTINGErrorN/A
An update is available but is considered a breaking changeA runtime update was attempted, but would be a breaking change and therefore not executed.ExecutionEXECUTINGDebugN/A
Invalid state to complete full update.No state received for updating agent during full update, so set connection runtime state to EXECUTING to allow the prior connection to continue operating.ExecutionEXECUTINGErrorN/A
Unable to import new processor successfully because Agent spec or spec loader is None. Skipping reload to try again on next update.Unable to import agent spec from file location during attempted Agent runtime update.ExecutionEXECUTINGErrorN/A
Unable to import new processor module from Agent spec. Skipping reload to try again on next update.Unable to import processor module from Agent spec during attempted Agent runtime updateExecutionEXECUTINGErrorN/A
Writing the new config files is complete. Reloading config.Updated processor module has been loaded for runtime update. Will now reload config.ExecutionEXECUTINGInfoN/A
Connection running version {version} with id: {id} running agent version {agent_version} on core version {agent_codebase_version}Setting runtime state to EXECUTING and executing trigger instance.ExecutionEXECUTINGInfoN/A
Error at top level of pipeline execution. Should continue to next loop to resume operations. Error: {error}Exception occurred during execution of trigger instance.ExecutionEXECUTINGErrorN/A
Pipeline loop has iterated without update or exception.No exception received during trigger instance execution, and connection runtime state has not been set to RUNTIME_UPDATE.ExecutionEXECUTINGInfoN/A
Pipeline loop has exited. Shutdown process will proceed.Shutdown did not succeed. Forcing exit; Connection runtime state will be set to SHUTDOWN_STARTED and shutdown will commence if not already set to SHUTDOWN_COMPLETE.ExecutionEXECUTINGInfoN/A
Shutdown did not succeed in allotted time. Forcing exit.Shutdown did not succeed cleanly within 15 seconds; exiting Connection process with a System exit.ExecutionEXECUTING or SHUTDOWN_STARTEDErrorN/A
File exists and not using it. Appending timestamp for new location: {upload_location}File already exists in Ganymede storage, so timestampping file for upload.ExecutionEXECUTINGInfoN/A
Uploading new file filename: {param.filename}, content type: {param.content_type}. {use_existing_file=}Saving file to cloudExecutionEXECUTINGInfoN/A
Returning upload location because it already exists and set to reuse: {upload_location} {use_existing_file=}Duplicate file exists in Ganymede storage; will reference existing file.ExecutionEXECUTINGDebugN/A
Uploading new file to {upload_location} of size {file_size} in chunks. Should timeout every {timeout} seconds per chunk to allow larger files.ExecutionEXECUTINGInfoN/A
Uploaded new file to: {upload_location} has completedExecutionEXECUTINGInfoN/A
Unable to find the source of the executableExecutionEXECUTINGErrorException

Runtime update

MessageDescriptionRun StageConnection Runtime StateLogging LevelAssociated Error Type
No need to update. Already in progress {runtime state}Either runtime update or full update already in progressExecutionFULL_UPDATE or RUNTIME_UPDATEInfoN/A
Reloading new config into connection complete {self.to_dict()}Reloaded config, updated agent version, and set connection runtime state to RUNTIME_UPDATE.ExecutionRUNTIME_UPDATEInfoN/A
The connection files were updated. Going to prepare those to be imported next loop.No exception received during trigger instance execution, and connection runtime state has been set to RUNTIME_UPDATE. As a result, the updated connection files will be imported in the next loop.ExecutionRUNTIME_UPDATEInfoN/A

Full update

MessageDescriptionRun StageConnection Runtime StateLogging LevelAssociated Error Type
Stopping and uninstalling connection service. It will not resume without user intervention. Reason: Starting full update. Removing and yielding to running upgrade.Stopping existing Connection to perform full updateExecutionFULL_UPDATEInfoN/A
Full update process dispatched. Moving to next ping cycle while new agent version loads.Full agent update process started on a new thread. This process involves attempting to set connection runtime state to FULL_UPDATE, getting a verified asset, writing the config to the connection file, and starting the service with the new agent version. When complete, a message will be logged indicating that full agent update has been completed successfully.ExecutionFULL_UPDATEInfoN/A
No need to update. Already in progress {runtime state}Either runtime update or full update already in progressExecutionFULL_UPDATE or RUNTIME_UPDATEInfoN/A
Starting full agent update process. Current Core Version {agent codebase version} and Agent Version {agent version}. Upgrading to Agent version {new Agent state}Connection runtime state has been set to FULL UPDATE.ExecutionFULL_UPDATEInfoN/A
Full agent update has been completed successfully.A verified asset has been retrieved corresponding to the desired new state, a config has been written to the connection file, and the service with the new state has been started successfully.ExecutionFULL_UPDATEInfoN/A
Error starting service during full Agent update, rolling back full update: Error {error}Connection runtime state was set to full update, but could not execute update. An attempt to roll back the full update will now start.ExecutionFULL_UPDATEErrorN/A
Killing new exe {bin location} because of failure to conduct full update.Full update rolled back; service stopped and shut down.ExecutionFULL_UPDATEInfoN/A
Service killed. Need to delete bin {bin location}Service stopped and shut down; attempting to remove agent binary from local machine.ExecutionFULL_UPDATEInfoN/A
Binary {bin_location} should now be deleted.Binary should be deleted in the course of rolling back full update. Connection state will be set back to LIVE and runtime state to EXECUTING.ExecutionFULL_UPDATEInfoN/A
Stopping and disabling connection service. It will not resume without user intervention. Exe: {exe_location}. Reason: Full update was not able to be successfully rolled back. Connection service must shut down to avoid entering an unknown state.Full update rollback was not successful. Service will now be shut down and disabled.ExecutionFULL_UPDATEErrorN/A
Running cleanup for service name {service_name_to_uninstall}Starting existing connection uninstall for full update.ExecutionFULL_UPDATEInfoN/A
Stopping and uninstalling connection service. It will not resume without user intervention. Reason: Starting full update. Removing and yielding to running upgrade.Starting existing connection uninstall for full update.ExecutionFULL_UPDATEInfoN/A
The exe {old exe location} could not be stopped because of {error}.Uninstall of existing connection for full update unsuccessful.ExecutionFULL_UPDATEErrorN/A
The entity {full_path} was not recognized as a file or directory. Did not remove.Could not uninstall existing connection during cleanup of full update because path to old exe location is not valid.ExecutionFULL_UPDATEErrorN/A
The entity {full_path} could not be removed because of {error}.Could not uninstall existing connection during cleanup of full update because path to old exe location is not valid.ExecutionFULL_UPDATEErrorN/A

Shutdown started or shutdown complete

MessageDescriptionRun StageConnection Runtime StateLogging LevelAssociated Error Type
Unable to set state to shutdown in api server: {error}Failure to set connection state to SHUTDOWN_COMPLETE after state had been set to SHUTDOWN_STARTEDExecutionSHUTDOWN_STARTEDErrorException
Stopping and disabling connection service. It will not resume without user intervention. Exe: {exe location}. Reason: API Server requested shutdownExecutionSHUTDOWN_STARTEDErrorN/A
Shutdown did not succeed in allotted time. Forcing exit.Shutdown did not succeed cleanly within 15 seconds; exiting Connection process with a System exit.ExecutionEXECUTING or SHUTDOWN_STARTEDErrorN/A
Connection {id} has complete shutdown_connectionConnection state has been set to SHUTDOWN_COMPLETEExecutionSHUTDOWN_COMPLETEInfoN/A

Non-Stage Specific

MessageDescriptionRun StageConnection Runtime StateLogging LevelAssociated Error Type
Unable to send log to API Server. Log: {log}Cannot send log to Ganymede Cloud.VariousVariousErrorException
Shutdown being complete in another thread. Skipping.Attempted to start shutdown, but observed that shutdown is being completed in another thread, so will not continue shutdown in current thread.VariousVariousDebugN/A
Continuing to loop here. Restarting count. Sleep is still going with length of {length} expected. Should have escaped at {length*10}Sleep for (by default) 10 minutes.VariousVariousInfoN/A
Escaping a sleep function because of a request to shutdown.Exiting sleep function because Connection is shut downVariousVariousInfoN/A
The service account path ({path}) for Ganymede Cloud does not exist.Path to service account file does not exist.VariousVariousErrorN/A
Unable to read SA because of error. Will use cache but cannot guarantee it is the latest. Error: {error}Cannot obtain service account, but have cached service account info which the connection will attempt to use.VariousVariousInfoN/A
Unable to read SA because of error. Will use cache but cannot guarantee it is the latest. Error: {error}Cannot obtain service account, and do not have cached version to use.VariousVariousInfoN/A
Service account file is emptyVariousVariousErrorException
Unable to load the service account from file. Error {error}VariousVariousErrorException

Windows-specific

MessageDescriptionRun StageConnection Runtime StateLogging LevelAssociated Error Type
Executing pipeline for ({Windows service name}) with display name {Windows service display name}. {agent codebase version}, {agent version}VariousVariousInfoN/A
Shutdown being complete in another thread. Skipping.Attempt to shut down connection, but Connection runtime state is already marked as SHUTDOWN_COMPLETE in current thread, so will not attempt to shut down connection again.ExecutionSHUTDOWN_COMPLETEInfoN/A
Request to shutdown received by signal handler. StoppingConnection runtime state marked as SHUTDOWN_STARTEDExecutionSHUTDOWN_STARTEDInfoN/A
Process closed by operating system.Ctrl+C, Ctrl+Break, or Ctrl+Close event detectedVariousSHUTDOWN_STARTEDInfoN/A
Received a non-shutdown signal. Will not shutdown; ID: {reason} - Message {signal_msg}Ctrl+Logoff event detectedVariousSHUTDOWN_STARTEDInfoN/A
Computer has shut down.Ctrl+Shutdown event detectedVariousSHUTDOWN_STARTEDInfoN/A
Received a non-shutdown signal. Will not shutdown but {reason} is the signal ID, {signal_msg} is python's attempt to interpret the signal IDReceived a Windows event which is not a shutdown signal, so will not shut down.VariousVariousInfoN/A
Request to shutdown received, stopping Connection. signal: {reason} - Message {signal_msg}Shutting down ConnectionVariousSHUTDOWN_STARTEDInfoN/A
Going to create event subscription using query {self.filter_query}.Creating subscription for Windows Event ServiceExecute PipelineINITIALIZINGInfoN/A
Going to load init event files using query {self.filter_query}.Loading initial event files for Windows Event ServiceExecute PipelineINITIALIZINGInfoN/A
Unable to load init event logs for query {self.filter_query}. This error will not block execution of main pipeline. Error: {error}Unable to upload initial event logs for Windows Event Service to Ganymede Cloud.Execute PipelineINITIALIZINGErrorN/A
No Windows events were found. Skipping uploadNo windows events were detected, so skipping upload of Windows Events to Ganymede Cloud.Execute PipelineINITIALIZINGDebugN/A
Found a new windows event to log. Formatting.Execute PipelineINITIALIZINGDebugN/A
Found a new windows event to log: {str(new_evt)}Found a new event and successfully formatted event for loggingExecute PipelineINITIALIZINGDebugN/A
Unable to render log as-is. Event handle: {event handle}. Error: {error}Could not render Windows Event for logging.Execute PipelineINITIALIZINGErrorN/A
Successfully queried {query_handle}Successfully queried for Windows event logsExecute PipelineINITIALIZINGInfoN/A
Running as scriptRunning Windows connection as a scriptConnection StartupINITIALIZINGInfoN/A
Executing pipeline for ({Windows service name}) with display name {Windows service display name}. {agent codebase version}, {agent version}Connection StartupINITIALIZINGInfoN/A
Unable to start service.Unable to execute pipeline for Windows serviceConnection StartupINITIALIZINGErrorException
Running service command: {args}Executing service command for Windows connection.Connection StartupINITIALIZINGInfoN/A
The connection has not been properly loaded. The necessary information is missing. Path {env.get_abs_external_path(env.conn_config_fn)}Either Connection config file does not exist or the command provided to execute service is not either the install or launch service commands.Load conn obj from yamlINITIALIZINGErrorException
Setting new version because the service command is installUpdating Connection version because the command requested is install.Load conn obj from yamlINITIALIZINGInfoN/A
Setting service to the parameter passed in for cleanup {service_name}Setting Windows service to the parameter passed in for cleaning up service.Load conn obj from yamlINITIALIZINGInfoN/A
service cmd {service_cmd} not implemented yetPlaceholder for handling status and diagnostics commandsLoad conn obj from yamlINITIALIZINGInfoN/A
Installer run is complete. Output: {results.stdout}, Error: {results.stderr}, Return Code: {results.returncode}Successfully ran installer executableVariousVariousInfoN/A
Unable to start service. Output: {error stdout}, Error: {error stderr}, Code: {return code}CalledProcessError when trying to start service using subprocess.runVariousVariousErrorsubprocess.CalledProcessError
Unable to start service.Exception other than CalledProcessError when trying to start service using subprocess.runVariousVariousErrorException other than subprocess.CalledProcessError
Stopped service {exe_location} is complete. Output: {result.stdout}, Error: {result.stderr}, Return Code: {result.returncode}Able to successfully stop service for ConnectionExecutionVariousInfoN/A
Disabled service {exe_location} is complete. Output: {result.stdout}, Error: {result.stderr}, Return Code: {result.returncode}Able to successfully disable service for ConnectionExecutionVariousInfoN/A
Unable to destroy service. Output: {error stdout}, Error: {error stderr}, Code: {return code}Unable to destroy service (stop and disable service) when attempted when trying to do so using subprocess.run due to subprocess.CalledProcessErrorExecutionVariousErrorsubprocess.CalledProcessError
Unable to destroy service: {reason}Unable to destroy service (stop and disable service) when attempted when trying to do so using subprocess.run for an exception reason other than subprocess.CalledProcessError. The exception reason will be noted in a subsequent message.ExecutionVariousErrorException other than subprocess.CalledProcessError
Starting the uninstall process for {id=} / {version=} / {service_name=} at {exe_location=}Attempt uninstall of connection (using subprocess.run)ExecutionVariousInfoN/A
Completed the uninstall process for {service name} from {exe_location=}. Output: {result.stdout}, Error: {result.stderr}, Return Code: {result.returncode}Uninstall completeExecutionVariousDebugN/A
Unable to uninstall service. Output: {error stdout}, Error: {error stderr}, Code: {return code}CalledProcessError when trying to uninstall connection using subprocess.runExecutionVariousErrorsubprocess.CalledProcessError
Unable to uninstall service: {reason}Unable to uninstall connection for an exception type other than subprocess.CalledProcessError. The reason is logged in a subsequent message as an exception. Connection is shut down.ExecutionVariousErrorException

Linux-specific

MessageDescriptionRun StageConnection Runtime StateLogging LevelAssociated Error Type
Failed to initialize connectionFailed to initialize LinuxConnection objectVariousINITIALIZINGErrorN/A
Shutdown being complete in another thread. SkippingAttempted to start shutdown, but observed that shutdown is being completed in another thread, so will not continue shutdown in current thread.VariousVariousInfoN/A
Request to shutdown received by signal handler, stoppingConnection runtime state marked as SHUTDOWN_STARTEDVariousVariousInfoN/A
Message {signal_msg} - Signal: {reason}Signal received by ConnectionVariousVariousInfoN/A
Starting connection service. Binary: {bin_location}Starting Linux Connection serviceExecutionEXECUTINGInfoN/A
Killing connection service. Binary: {bin_location}Stopping and shutting down Linux Connection serviceExecutionEXECUTINGInfoN/A