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.
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.
- 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 | Description |
---|---|
INITIALIZING | Connection has not completed its registration to API Server. |
EXECUTING | Agent has registered Connection, and shared that the state of the Connection is LIVE. |
RUNTIME_UPDATE | Processor from Agent is being updated. The processor is the code that executes the user-defined code. |
FULL_UPDATE | A full update of the Connection is being performed; the prior Agent executable is being uninstalled and a new Agent executable is being installed. |
SHUTDOWN_STARTED | Connection shutdown started (Connection has shared that it's state is SHUTDOWN with API server) |
SHUTDOWN_COMPLETE | Connection shutdown is complete |
Connection State | Description |
---|---|
LIVE | Connection is active. |
SHUTDOWN | Connection stopped and shut down. Will require manual intervention to restart. |
UPDATING | Connection 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 Level | Description |
---|---|
INTERNAL | Internal systems messages are written locally, but not presented in the web UI. |
DEBUG | For debugging Connection activity, but unnecessary for interpreting typical behavior. |
INFO | Informational messages for contextualizing Connection behavior, but does not reflect changes to Connection state or interaction with Ganymede web server. |
ACTIVITY | Regards changes to state or operations performed by the Agent. |
ERROR | Indicates 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.
Message | Description | Section | Logging Level | Associated 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. | Connection | Info | N/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. | Connection | Info | N/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} | Connection | Error | Exception |
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
Message | Description | Run Stage | Connection Runtime State | Logging Level | Associated Error Type |
---|---|---|---|---|---|
Setting new version because the config is being set from cli | Connection Startup | INITIALIZING | Info | N/A | |
New connection version: {agent_version}, name: {name}, core version: {version} | Generate a new config for the connection when run from CLI | Connection Startup | INITIALIZING | Info | N/A |
New connection version: {version} | Update connection version | Connection Startup | INITIALIZING | Info | N/A |
Loading Agent config to Connection. Agent version: {agent_version}, Agent codebase version: {agent_codebase_version} | Loading yaml config from Agent to Connection | Connection Startup | INITIALIZING | Info | N/A |
Attempting to read config from cli but the file has not been created. Expected location: {path to config} | Connection Startup | INITIALIZING | Error | Exception | |
Connection successfully initialized | Signal handler initialized, logger initialized, and, if agent is a Virtualization Agent, Agent has app ID. | Register Connection | INITIALIZING | Info | N/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 Connection | INITIALIZING | Error | TypeError |
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 Ping | INITIALIZING | Info | N/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 Ping | INITIALIZING | Info | N/A |
Unable to ping API Server at {api_url.geturl()} | Health Check | INITIALIZING | Error | N/A | |
Unable to ping Pub/Server API Server | Unable to ping Pub/Server for Ganymede Cloud. | Health Check | INITIALIZING | Error | N/A |
Unable to ping GCS API Server | Health Check | INITIALIZING | Error | N/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 Check | INITIALIZING | Info | Exception |
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 Connection | INITIALIZING | Error | openapi_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 Connection | INITIALIZING | Error | Exception (other than openapi_client.ApiException with 404 status code) |
Starting new connection {id} with labels {labels} and vars {variables} | Registering connection | Register Connection | INITIALIZING | Info | N/A |
Starting status ping {id} with {runtime_state} | Starting status ping | Start Status Ping | INITIALIZING | Info | N/A |
Full connection before trigger: {connection info} | Displays connection info just before entering the EXECUTING state. | Execute Pipeline | INITIALIZING | Info | N/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 logs | INITIALIZING | Debug | N/A |
About to upload log {upload_name=} | Upload local and OS service logs | INITIALIZING | Info | N/A | |
Successfully uploaded log {upload_name=} | Upload local and OS service logs | INITIALIZING | Info | N/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 logs | INITIALIZING | Error | N/A |
Testing communication to {hostname} | Testing network connectivity to ensure Connection functionality. | Health Check | INITIALIZING | Info | N/A |
Failed to reach {hostname} because {status code} | Unable to reach {hostname}; received {status code} during communication. | Health Check | INITIALIZING | Info | N/A |
Failed to reach {hostname} because {error} | Unable to reach {hostname}; due to {error}. | Health Check | INITIALIZING | Info | N/A |
Testing communication to {hostname} has concluded | Successfully reached external endpoint {hostname}. | Health Check | INITIALIZING | Info | N/A |
Log file already exists, so will not upload again: {upload_location} | Upload local and OS service logs | INITIALIZING | Info | N/A |
Executing
Message | Description | Run Stage | Connection Runtime State | Logging Level | Associated Error Type |
---|---|---|---|---|---|
Continuing to loop here. Restarting count. liveness_ping is still running | Liveness ping has cycled through another 100 calls (conducted every 30s by default) | Execution | EXECUTING | Info | N/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 alive | Execution | EXECUTING | Info | N/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. | Execution | EXECUTING | Info | N/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. | Execution | EXECUTING | Info | N/A |
Error verifying the state | Unable to verify state of ConnectionUpdate | Execution | EXECUTING | Error | N/A |
An update is available but is considered a breaking change | A runtime update was attempted, but would be a breaking change and therefore not executed. | Execution | EXECUTING | Debug | N/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. | Execution | EXECUTING | Error | N/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. | Execution | EXECUTING | Error | N/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 update | Execution | EXECUTING | Error | N/A |
Writing the new config files is complete. Reloading config. | Updated processor module has been loaded for runtime update. Will now reload config. | Execution | EXECUTING | Info | N/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. | Execution | EXECUTING | Info | N/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. | Execution | EXECUTING | Error | N/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. | Execution | EXECUTING | Info | N/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. | Execution | EXECUTING | Info | N/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. | Execution | EXECUTING or SHUTDOWN_STARTED | Error | N/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. | Execution | EXECUTING | Info | N/A |
Uploading new file filename: {param.filename}, content type: {param.content_type}. {use_existing_file=} | Saving file to cloud | Execution | EXECUTING | Info | N/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. | Execution | EXECUTING | Debug | N/A |
Uploading new file to {upload_location} of size {file_size} in chunks. Should timeout every {timeout} seconds per chunk to allow larger files. | Execution | EXECUTING | Info | N/A | |
Uploaded new file to: {upload_location} has completed | Execution | EXECUTING | Info | N/A | |
Unable to find the source of the executable | Execution | EXECUTING | Error | Exception |
Runtime update
Message | Description | Run Stage | Connection Runtime State | Logging Level | Associated Error Type |
---|---|---|---|---|---|
No need to update. Already in progress {runtime state} | Either runtime update or full update already in progress | Execution | FULL_UPDATE or RUNTIME_UPDATE | Info | N/A |
Reloading new config into connection complete {self.to_dict()} | Reloaded config, updated agent version, and set connection runtime state to RUNTIME_UPDATE. | Execution | RUNTIME_UPDATE | Info | N/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. | Execution | RUNTIME_UPDATE | Info | N/A |
Full update
Message | Description | Run Stage | Connection Runtime State | Logging Level | Associated 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 update | Execution | FULL_UPDATE | Info | N/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. | Execution | FULL_UPDATE | Info | N/A |
No need to update. Already in progress {runtime state} | Either runtime update or full update already in progress | Execution | FULL_UPDATE or RUNTIME_UPDATE | Info | N/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. | Execution | FULL_UPDATE | Info | N/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. | Execution | FULL_UPDATE | Info | N/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. | Execution | FULL_UPDATE | Error | N/A |
Killing new exe {bin location} because of failure to conduct full update. | Full update rolled back; service stopped and shut down. | Execution | FULL_UPDATE | Info | N/A |
Service killed. Need to delete bin {bin location} | Service stopped and shut down; attempting to remove agent binary from local machine. | Execution | FULL_UPDATE | Info | N/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. | Execution | FULL_UPDATE | Info | N/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. | Execution | FULL_UPDATE | Error | N/A |
Running cleanup for service name {service_name_to_uninstall} | Starting existing connection uninstall for full update. | Execution | FULL_UPDATE | Info | N/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. | Execution | FULL_UPDATE | Info | N/A |
The exe {old exe location} could not be stopped because of {error}. | Uninstall of existing connection for full update unsuccessful. | Execution | FULL_UPDATE | Error | N/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. | Execution | FULL_UPDATE | Error | N/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. | Execution | FULL_UPDATE | Error | N/A |
Shutdown started or shutdown complete
Message | Description | Run Stage | Connection Runtime State | Logging Level | Associated 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_STARTED | Execution | SHUTDOWN_STARTED | Error | Exception |
Stopping and disabling connection service. It will not resume without user intervention. Exe: {exe location}. Reason: API Server requested shutdown | Execution | SHUTDOWN_STARTED | Error | N/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. | Execution | EXECUTING or SHUTDOWN_STARTED | Error | N/A |
Connection {id} has complete shutdown_connection | Connection state has been set to SHUTDOWN_COMPLETE | Execution | SHUTDOWN_COMPLETE | Info | N/A |
Non-Stage Specific
Message | Description | Run Stage | Connection Runtime State | Logging Level | Associated Error Type |
---|---|---|---|---|---|
Unable to send log to API Server. Log: {log} | Cannot send log to Ganymede Cloud. | Various | Various | Error | Exception |
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. | Various | Various | Debug | N/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. | Various | Various | Info | N/A |
Escaping a sleep function because of a request to shutdown. | Exiting sleep function because Connection is shut down | Various | Various | Info | N/A |
The service account path ({path}) for Ganymede Cloud does not exist. | Path to service account file does not exist. | Various | Various | Error | N/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. | Various | Various | Info | N/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. | Various | Various | Info | N/A |
Service account file is empty | Various | Various | Error | Exception | |
Unable to load the service account from file. Error {error} | Various | Various | Error | Exception |
Windows-specific
Message | Description | Run Stage | Connection Runtime State | Logging Level | Associated Error Type |
---|---|---|---|---|---|
Executing pipeline for ({Windows service name}) with display name {Windows service display name}. {agent codebase version}, {agent version} | Various | Various | Info | N/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. | Execution | SHUTDOWN_COMPLETE | Info | N/A |
Request to shutdown received by signal handler. Stopping | Connection runtime state marked as SHUTDOWN_STARTED | Execution | SHUTDOWN_STARTED | Info | N/A |
Process closed by operating system. | Ctrl+C, Ctrl+Break, or Ctrl+Close event detected | Various | SHUTDOWN_STARTED | Info | N/A |
Received a non-shutdown signal. Will not shutdown; ID: {reason} - Message {signal_msg} | Ctrl+Logoff event detected | Various | SHUTDOWN_STARTED | Info | N/A |
Computer has shut down. | Ctrl+Shutdown event detected | Various | SHUTDOWN_STARTED | Info | N/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 ID | Received a Windows event which is not a shutdown signal, so will not shut down. | Various | Various | Info | N/A |
Request to shutdown received, stopping Connection. signal: {reason} - Message {signal_msg} | Shutting down Connection | Various | SHUTDOWN_STARTED | Info | N/A |
Going to create event subscription using query {self.filter_query}. | Creating subscription for Windows Event Service | Execute Pipeline | INITIALIZING | Info | N/A |
Going to load init event files using query {self.filter_query}. | Loading initial event files for Windows Event Service | Execute Pipeline | INITIALIZING | Info | N/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 Pipeline | INITIALIZING | Error | N/A |
No Windows events were found. Skipping upload | No windows events were detected, so skipping upload of Windows Events to Ganymede Cloud. | Execute Pipeline | INITIALIZING | Debug | N/A |
Found a new windows event to log. Formatting. | Execute Pipeline | INITIALIZING | Debug | N/A | |
Found a new windows event to log: {str(new_evt)} | Found a new event and successfully formatted event for logging | Execute Pipeline | INITIALIZING | Debug | N/A |
Unable to render log as-is. Event handle: {event handle}. Error: {error} | Could not render Windows Event for logging. | Execute Pipeline | INITIALIZING | Error | N/A |
Successfully queried {query_handle} | Successfully queried for Windows event logs | Execute Pipeline | INITIALIZING | Info | N/A |
Running as script | Running Windows connection as a script | Connection Startup | INITIALIZING | Info | N/A |
Executing pipeline for ({Windows service name}) with display name {Windows service display name}. {agent codebase version}, {agent version} | Connection Startup | INITIALIZING | Info | N/A | |
Unable to start service. | Unable to execute pipeline for Windows service | Connection Startup | INITIALIZING | Error | Exception |
Running service command: {args} | Executing service command for Windows connection. | Connection Startup | INITIALIZING | Info | N/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 yaml | INITIALIZING | Error | Exception |
Setting new version because the service command is install | Updating Connection version because the command requested is install. | Load conn obj from yaml | INITIALIZING | Info | N/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 yaml | INITIALIZING | Info | N/A |
service cmd {service_cmd} not implemented yet | Placeholder for handling status and diagnostics commands | Load conn obj from yaml | INITIALIZING | Info | N/A |
Installer run is complete. Output: {results.stdout}, Error: {results.stderr}, Return Code: {results.returncode} | Successfully ran installer executable | Various | Various | Info | N/A |
Unable to start service. Output: {error stdout}, Error: {error stderr}, Code: {return code} | CalledProcessError when trying to start service using subprocess.run | Various | Various | Error | subprocess.CalledProcessError |
Unable to start service. | Exception other than CalledProcessError when trying to start service using subprocess.run | Various | Various | Error | Exception 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 Connection | Execution | Various | Info | N/A |
Disabled service {exe_location} is complete. Output: {result.stdout}, Error: {result.stderr}, Return Code: {result.returncode} | Able to successfully disable service for Connection | Execution | Various | Info | N/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.CalledProcessError | Execution | Various | Error | subprocess.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. | Execution | Various | Error | Exception other than subprocess.CalledProcessError |
Starting the uninstall process for {id=} / {version=} / {service_name=} at {exe_location=} | Attempt uninstall of connection (using subprocess.run) | Execution | Various | Info | N/A |
Completed the uninstall process for {service name} from {exe_location=}. Output: {result.stdout}, Error: {result.stderr}, Return Code: {result.returncode} | Uninstall complete | Execution | Various | Debug | N/A |
Unable to uninstall service. Output: {error stdout}, Error: {error stderr}, Code: {return code} | CalledProcessError when trying to uninstall connection using subprocess.run | Execution | Various | Error | subprocess.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. | Execution | Various | Error | Exception |
Linux-specific
Message | Description | Run Stage | Connection Runtime State | Logging Level | Associated Error Type |
---|---|---|---|---|---|
Failed to initialize connection | Failed to initialize LinuxConnection object | Various | INITIALIZING | Error | N/A |
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. | Various | Various | Info | N/A |
Request to shutdown received by signal handler, stopping | Connection runtime state marked as SHUTDOWN_STARTED | Various | Various | Info | N/A |
Message {signal_msg} - Signal: {reason} | Signal received by Connection | Various | Various | Info | N/A |
Starting connection service. Binary: {bin_location} | Starting Linux Connection service | Execution | EXECUTING | Info | N/A |
Killing connection service. Binary: {bin_location} | Stopping and shutting down Linux Connection service | Execution | EXECUTING | Info | N/A |