Thread (68 messages) 68 messages, 6 authors, 2021-10-15

Re: [dpdk-dev] [PATCH] telemetry: fix "in-memory" process socket conflicts

From: Power, Ciara <hidden>
Date: 2021-09-22 08:43:21

Hi Bruce,

-----Original Message-----
From: Richardson, Bruce <redacted>
Sent: Wednesday 15 September 2021 15:11
To: dev@dpdk.org
Cc: Power, Ciara <redacted>; Burakov, Anatoly
[off-list ref]; Richardson, Bruce
[off-list ref]; stable@dpdk.org; David Marchand
[off-list ref]
Subject: [PATCH] telemetry: fix "in-memory" process socket conflicts

When DPDK is run with --in-memory mode, multiple processes can run
simultaneously using the same runtime dir. This leads to each process
removing another process' telemetry socket as it started up, giving
unexpected behaviour.

This patch changes that behaviour to first check if the existing socket is active.
If not, it's an old socket to be cleaned up and can be removed. If it is active,
telemetry initialization fails and an error message is printed out giving
instructions on how to remove the error; either by using file-prefix to have a
different runtime dir (and therefore socket path) or by disabling telemetry if it
not needed.

Fixes: 6dd571fd07c3 ("telemetry: introduce new functionality")
Cc: stable@dpdk.org

Reported-by: David Marchand <redacted>
Signed-off-by: Bruce Richardson <redacted>
---
lib/telemetry/telemetry.c | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)
<snip>

Patch looks good overall, although I see CI is reporting some problems for FreeBSD:

../lib/telemetry/telemetry.c:435:21: error: incompatible pointer types passing 'struct sockaddr_un *' to parameter of type 'const struct sockaddr *' [-Werror,-Wincompatible-pointer-types]
                if (connect(sock, &sun, sizeof(sun)) == 0) {
                                  ^~~~
/usr/include/sys/socket.h:662:41: note: passing argument to parameter here
int     connect(int, const struct sockaddr *, socklen_t);
                                            ^
1 error generated.

Thanks,
Ciara
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help