|
|
be5118 |
From 1aa2c06015e15f707ba9f874d5a5ea49fd450745 Mon Sep 17 00:00:00 2001
|
|
|
be5118 |
From: Victor Toso <victortoso@redhat.com>
|
|
|
be5118 |
Date: Wed, 1 Dec 2021 20:07:22 +0100
|
|
|
be5118 |
Subject: [PATCH 2/3] vdagent: udscs: limit retry to connect to vdagentd
|
|
|
be5118 |
|
|
|
be5118 |
Related: https://bugzilla.redhat.com/show_bug.cgi?id=2005802
|
|
|
be5118 |
Related: https://bugzilla.redhat.com/show_bug.cgi?id=2028013
|
|
|
be5118 |
Signed-off-by: Victor Toso <victortoso@redhat.com>
|
|
|
be5118 |
---
|
|
|
be5118 |
src/vdagent/vdagent.c | 21 +++++++++++++++++++++
|
|
|
be5118 |
1 file changed, 21 insertions(+)
|
|
|
be5118 |
|
|
|
be5118 |
diff --git a/src/vdagent/vdagent.c b/src/vdagent/vdagent.c
|
|
|
be5118 |
index fd08522..0d3945e 100644
|
|
|
be5118 |
--- a/src/vdagent/vdagent.c
|
|
|
be5118 |
+++ b/src/vdagent/vdagent.c
|
|
|
be5118 |
@@ -42,11 +42,14 @@
|
|
|
be5118 |
#include "clipboard.h"
|
|
|
be5118 |
#include "display.h"
|
|
|
be5118 |
|
|
|
be5118 |
+#define MAX_RETRY_CONNECT_SYSTEM_AGENT 60
|
|
|
be5118 |
+
|
|
|
be5118 |
typedef struct VDAgent {
|
|
|
be5118 |
VDAgentClipboards *clipboards;
|
|
|
be5118 |
VDAgentDisplay *display;
|
|
|
be5118 |
struct vdagent_file_xfers *xfers;
|
|
|
be5118 |
UdscsConnection *conn;
|
|
|
be5118 |
+ gint udscs_num_retry;
|
|
|
be5118 |
|
|
|
be5118 |
GMainLoop *loop;
|
|
|
be5118 |
} VDAgent;
|
|
|
be5118 |
@@ -378,9 +381,27 @@ static gboolean vdagent_init_async_cb(gpointer user_data)
|
|
|
be5118 |
daemon_read_complete, daemon_error_cb,
|
|
|
be5118 |
debug);
|
|
|
be5118 |
if (agent->conn == NULL) {
|
|
|
be5118 |
+ if (agent->udscs_num_retry == MAX_RETRY_CONNECT_SYSTEM_AGENT) {
|
|
|
be5118 |
+ syslog(LOG_WARNING,
|
|
|
be5118 |
+ "Failed to connect to spice-vdagentd at %s (tried %d times)",
|
|
|
be5118 |
+ vdagentd_socket, agent->udscs_num_retry);
|
|
|
be5118 |
+ goto err_init;
|
|
|
be5118 |
+ }
|
|
|
be5118 |
+ if (agent->udscs_num_retry == 0) {
|
|
|
be5118 |
+ /* Log only when it fails and at the end */
|
|
|
be5118 |
+ syslog(LOG_DEBUG,
|
|
|
be5118 |
+ "Failed to connect with spice-vdagentd. Trying again in 1s");
|
|
|
be5118 |
+ }
|
|
|
be5118 |
+ agent->udscs_num_retry++;
|
|
|
be5118 |
g_timeout_add_seconds(1, vdagent_init_async_cb, agent);
|
|
|
be5118 |
return G_SOURCE_REMOVE;
|
|
|
be5118 |
}
|
|
|
be5118 |
+ if (agent->udscs_num_retry != 0) {
|
|
|
be5118 |
+ syslog(LOG_DEBUG,
|
|
|
be5118 |
+ "Connected with spice-vdagentd after %d attempts",
|
|
|
be5118 |
+ agent->udscs_num_retry);
|
|
|
be5118 |
+ }
|
|
|
be5118 |
+ agent->udscs_num_retry = 0;
|
|
|
be5118 |
g_object_set_data(G_OBJECT(agent->conn), "agent", agent);
|
|
|
be5118 |
|
|
|
be5118 |
agent->display = vdagent_display_create(agent->conn, debug, x11_sync);
|
|
|
be5118 |
--
|
|
|
be5118 |
2.33.1
|
|
|
be5118 |
|