On 2/28/2018 6:19 PM, Burakov, Anatoly wrote:
On 28-Feb-18 1:58 AM, Tan, Jianfeng wrote:
Hi Anatoly,
-----Original Message-----
From: Burakov, Anatoly
Sent: Tuesday, February 27, 2018 10:36 PM
To: dev@dpdk.org
Cc: Tan, Jianfeng
Subject: [PATCH v3 4/5] eal: prevent secondary process init while
sending
messages
Currently, it is possible to spin up a secondary process while
either sendmsg or request is in progress. Fix this by adding
directory locks during init, sendmsg and requests.
Could you give a more detailed example for this issue?
And why locking the directory can help?
Thanks,
Jianfeng
Consider this. You start a request. Since sending this out takes
non-zero amount of time, and you're waiting for process to reply each
time you send a message, there's a non-zero chance where contents of
/var/run may change and another socket file may appear that wasn't
there when we started sending out those messages.
OK, I see the issue now. When primary broadcasts a request and another
secondary joins, then if that request will be delivered to the new
secondary, it's an undefined behavior.
This is simply making sending requests atomic, if you will. Honestly,
i can't think of a situation where this might be a problem, but it
just doesn't feel right, so i fixed it :)
The way seems a little overkill to me. But I did not find a better way :-)
Thanks,
Jianfeng