mirror of
https://passt.top/passt
synced 2025-11-16 16:15:11 +01:00
flow, repair: Wait for a short while for passt-repair to connect
...and time out after that. This will be needed because of an upcoming
change to passt-repair enabling it to start before passt is started,
on both source and target, by means of an inotify watch.
Once the inotify watch triggers, passt-repair will connect right away,
but we have no guarantees that the connection completes before we
start the migration process, so wait for it (for a reasonable amount
of time).
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
(cherry picked from commit c8b520c062)
This commit is contained in:
parent
24117b65dc
commit
283b18f6b1
3 changed files with 54 additions and 0 deletions
21
flow.c
21
flow.c
|
|
@ -930,6 +930,22 @@ static int flow_migrate_source_rollback(struct ctx *c, unsigned max_flow,
|
|||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* flow_migrate_need_repair() - Do we need to set repair mode for any flow?
|
||||
*
|
||||
* Return: true if repair mode is needed, false otherwise
|
||||
*/
|
||||
static bool flow_migrate_need_repair(void)
|
||||
{
|
||||
union flow *flow;
|
||||
unsigned i;
|
||||
|
||||
foreach_established_tcp_flow(i, flow, FLOW_MAX)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* flow_migrate_repair_all() - Turn repair mode on or off for all flows
|
||||
* @c: Execution context
|
||||
|
|
@ -985,6 +1001,9 @@ int flow_migrate_source_pre(struct ctx *c, const struct migrate_stage *stage,
|
|||
(void)stage;
|
||||
(void)fd;
|
||||
|
||||
if (flow_migrate_need_repair())
|
||||
repair_wait(c);
|
||||
|
||||
if ((rc = flow_migrate_repair_all(c, true)))
|
||||
return -rc;
|
||||
|
||||
|
|
@ -1101,6 +1120,8 @@ int flow_migrate_target(struct ctx *c, const struct migrate_stage *stage,
|
|||
if (!count)
|
||||
return 0;
|
||||
|
||||
repair_wait(c);
|
||||
|
||||
if ((rc = flow_migrate_repair_all(c, true)))
|
||||
return -rc;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue