diff --git a/docs/libraries/workflow/DEVELOPING.md b/docs/libraries/workflow/DEVELOPING.md index 647fb5a4a6..e7d9633e43 100644 --- a/docs/libraries/workflow/DEVELOPING.md +++ b/docs/libraries/workflow/DEVELOPING.md @@ -17,7 +17,7 @@ If you run in to a too many retries error on a workflow, then: For a single workflow: ```sql -UPDATE db_workflow.workflows SET wake_immediate = true WHERE workflow_id = 'MY_ID':uuid; +UPDATE db_workflow.workflows SET wake_immediate = true WHERE workflow_id = 'MY_ID'; ``` For all workflows of a type: @@ -26,12 +26,11 @@ For all workflows of a type: UPDATE db_workflow.workflows SET wake_immediate = true WHERE workflow_name = 'MY_NAME'; ``` - # Visualize entire workflow history ```sql WITH workflow_events AS ( - SELECT '1db61ba2-6271-40a5-9a38-e6fa212e6f7d'::uuid AS workflow_id + SELECT 'WORKFLOW_ID'::uuid AS workflow_id ) SELECT location, 'activity' AS t, activity_name, input, output, forgotten FROM db_workflow.workflow_activity_events, workflow_events @@ -69,7 +68,7 @@ ORDER BY location ASC; ```sql WITH workflow_ids AS ( - SELECT 'WORKFLOW_ID':uuid AS workflow_id + SELECT 'WORKFLOW_ID'::uuid AS workflow_id ), delete_activity_events AS ( DELETE FROM db_workflow.workflow_activity_events diff --git a/infra/tf/grafana/grafana_dashboards/chirp-workflow.json b/infra/tf/grafana/grafana_dashboards/chirp-workflow.json index a664c5adfb..fc0d3230f0 100644 --- a/infra/tf/grafana/grafana_dashboards/chirp-workflow.json +++ b/infra/tf/grafana/grafana_dashboards/chirp-workflow.json @@ -410,7 +410,7 @@ "editorMode": "code", "expr": "sum by (workflow_name, error_code) (rivet_chirp_workflow_dead{workflow_name=~\"[[workflow_name]]\"})", "instant": false, - "legendFormat": "(workflow_name) {{error_code}}", + "legendFormat": "({{workflow_name}}) {{error_code}}", "range": true, "refId": "A" } diff --git a/lib/bolt/cli/src/commands/cluster/server.rs b/lib/bolt/cli/src/commands/cluster/server.rs index 01f7e17e2e..4cfa0bd044 100644 --- a/lib/bolt/cli/src/commands/cluster/server.rs +++ b/lib/bolt/cli/src/commands/cluster/server.rs @@ -10,7 +10,7 @@ pub enum SubCommand { /// The name id of the cluster #[clap(index = 1)] cluster: String, - #[clap(long)] + #[clap(long, short = 's')] server_id: Option, #[clap(long, short = 'p')] pool: Option, @@ -24,7 +24,7 @@ pub enum SubCommand { /// The name id of the cluster #[clap(index = 1)] cluster: String, - #[clap(long)] + #[clap(long, short = 's')] server_id: Option, #[clap(long, short = 'p')] pool: Option, @@ -38,7 +38,7 @@ pub enum SubCommand { /// The name id of the cluster #[clap(index = 1)] cluster: String, - #[clap(long)] + #[clap(long, short = 's')] server_id: Option, #[clap(long, short = 'p')] pool: Option, @@ -52,7 +52,7 @@ pub enum SubCommand { /// The name id of the cluster #[clap(index = 1)] cluster: String, - #[clap(long)] + #[clap(long, short = 's')] server_id: Option, #[clap(long, short = 'p')] pool: Option, @@ -66,7 +66,7 @@ pub enum SubCommand { /// The name id of the cluster #[clap(index = 1)] cluster: String, - #[clap(long)] + #[clap(long, short = 's')] server_id: Option, #[clap(long, short = 'p')] pool: Option, @@ -80,7 +80,7 @@ pub enum SubCommand { /// The name id of the cluster #[clap(index = 1)] cluster: String, - #[clap(long)] + #[clap(long, short = 's')] server_id: Option, #[clap(long, short = 'p')] pool: Option, diff --git a/lib/chirp-workflow/core/src/builder/workflow/signal.rs b/lib/chirp-workflow/core/src/builder/workflow/signal.rs index c2d7706067..eea70006a0 100644 --- a/lib/chirp-workflow/core/src/builder/workflow/signal.rs +++ b/lib/chirp-workflow/core/src/builder/workflow/signal.rs @@ -75,7 +75,7 @@ impl<'a, T: Signal + Serialize> SignalBuilder<'a, T> { let event = self.ctx.current_history_event(); // Signal sent before - if let Some(event) = event { + let signal_id = if let Some(event) = event { // Validate history is consistent let Event::SignalSend(signal) = event else { return Err(WorkflowError::HistoryDiverged(format!( @@ -97,7 +97,7 @@ impl<'a, T: Signal + Serialize> SignalBuilder<'a, T> { tracing::debug!(name=%self.ctx.name(), id=%self.ctx.workflow_id(), signal_name=%signal.name, signal_id=%signal.signal_id, "replaying signal dispatch"); - Ok(signal.signal_id) + signal.signal_id } // Send signal else { @@ -149,10 +149,12 @@ impl<'a, T: Signal + Serialize> SignalBuilder<'a, T> { (None, true) => return Err(BuilderError::NoWorkflowIdOrTags.into()), } - // Move to next event - self.ctx.inc_location(); + signal_id + }; - Ok(signal_id) - } + // Move to next event + self.ctx.inc_location(); + + Ok(signal_id) } } diff --git a/svc/pkg/cluster/src/workflows/server/install/mod.rs b/svc/pkg/cluster/src/workflows/server/install/mod.rs index d22b50643d..9911e8543a 100644 --- a/svc/pkg/cluster/src/workflows/server/install/mod.rs +++ b/svc/pkg/cluster/src/workflows/server/install/mod.rs @@ -97,6 +97,7 @@ struct InstallOverSshInput { #[activity(InstallOverSsh)] #[timeout = 120] +#[max_retries = 10] async fn install_over_ssh(ctx: &ActivityCtx, input: &InstallOverSshInput) -> GlobalResult<()> { let public_ip = input.public_ip; let private_key_openssh =