On 03/29/2018 03:25 PM, Tiwei Bie wrote:
On Thu, Mar 29, 2018 at 02:19:35PM +0200, Maxime Coquelin wrote:
Hi Tiwei,
On 03/06/2018 11:43 AM, Tiwei Bie wrote:
Signed-off-by: Tiwei Bie <tiwei....@intel.com>
Could you please elaborate a bit more why this is needed?
Is it fixing a real issue or just an improvement?
My bad, I really should write a more useful commit log..
I saw your comments on this mail:
http://dpdk.org/ml/archives/dev/2018-March/094201.html
Thank you so much! :-)
It's fixing an issue I met when adding the vDPA support.
SIGPIPE would be generated when sending messages via a
closed slave fd, and it will terminate the process by
default. But as a library, we shouldn't crash the process
in this case, instead we just need to return with an error.
I didn't meet this issue without my vDPA related changes,
so I didn't put a fixline on it. That is to say, I'm
treating it as an improvement.
Great, thanks for the details!
I'll apply the patch with below commit message.
Maxime
Below is the commit log for your reference:
------ START HERE ------
vhost: do not generate signal when sendmsg fails
More precisely, do not generate a SIGPIPE signal if the peer
has closed the connection. Otherwise, it will terminate the
process by default. As a library, we should avoid terminating
the application process when error happens and just need to
return with an error.
------ END HERE ------
Thanks again! :-)
Best regards,
Tiwei Bie
Thanks!
Maxime
---
lib/librte_vhost/socket.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_vhost/socket.c b/lib/librte_vhost/socket.c
index 0354740fa..d703d2114 100644
--- a/lib/librte_vhost/socket.c
+++ b/lib/librte_vhost/socket.c
@@ -181,7 +181,7 @@ send_fd_message(int sockfd, char *buf, int buflen, int
*fds, int fd_num)
}
do {
- ret = sendmsg(sockfd, &msgh, 0);
+ ret = sendmsg(sockfd, &msgh, MSG_NOSIGNAL);
} while (ret < 0 && errno == EINTR);
if (ret < 0) {