dpu-utilities/0015-fix-read-write-fifo-failed-problem-and-update-rexec-.patch

62 lines
3.3 KiB
Diff
Raw Normal View History

From 402c5c17885db59b15ed06c1f1bf92f2378b6f90 Mon Sep 17 00:00:00 2001
From: liqiang <liqiang64@huawei.com>
Date: Sat, 16 Dec 2023 16:26:28 +0800
Subject: [PATCH] fix read/write fifo failed problem and update rexec whitelist
descriptor in readme
Signed-off-by: liqiang <liqiang64@huawei.com>
---
qtfs/README.md | 8 ++++----
qtfs/qtfs_server/server_fifo.c | 6 ++----
2 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/qtfs/README.md b/qtfs/README.md
index 3721f44..2ffdce6 100644
--- a/qtfs/README.md
+++ b/qtfs/README.md
@@ -134,13 +134,13 @@ Tips若完成测试环境的配置后无法通过客户端访问所挂载
1. rexec工具依赖上述udsproxyd服务使用udsproxyd提供的uds协同进行通信请确认udsproxyd正常启动。
-2. 配置白名单将qtfs/config/rexec/whitelist文件拷贝至/etc/rexec/下,请手动配置需要的白名单选项,在其中增加允许执行的二进制命令。
+2. 为rexec_server配置白名单将qtfs/config/rexec/whitelist文件拷贝至/etc/rexec/下请手动配置需要的白名单选项在其中增加允许执行的二进制命令请注意该白名单应该配置在rexec_server运行的系统上如果双向运行则两侧都需要配置rexec_server服务只接受该白名单列出的二进制拉起执行不在白名单中的请求会被rexec_server拒绝拉起。
-3. 在udsconnect中增加rexec通信socket所在目录白名单增加方式有两种
+3. 为rexec端配置uds白名单这个白名单只在需要调用rexec二进制的系统中配置如果是双向则都配置在udsconnect中增加rexec通信socket所在目录白名单增加方式有两种
- 1. 在/etc/qtfs/whitelist的`[udsconnect]`表项中增加`/var/run/rexec`修改后需要重新部署qtfs使其生效。
+ 1. 在qtfs_server端可以将/etc/qtfs/whitelist的`[udsconnect]`表项中增加`/var/run/rexec`修改后需要重新启动engine进程使其生效。
- 2. 进入源码目录`qtinfo/`,执行`make`编译得到二进制。使用qtcfg进行配置`qtcfg -w udsconnect -x /var/run/rexec`,配置完成后可通过`qtcfg -w udsconnect -z`查询是否生效
+ 2. 使用前述的qtcfg进行配置`qtcfg -w udsconnect -x /var/run/rexec`,配置完成后可通过`qtcfg -w udsconnect -z`查询是否生效。qtcfg可以在qtfs client或者server端动态添加白名单qtfs server端应该在engine拉起后执行。
4. 拉起rexec_server作为服务端无需参数
diff --git a/qtfs/qtfs_server/server_fifo.c b/qtfs/qtfs_server/server_fifo.c
index 1839a88..7e4320e 100644
--- a/qtfs/qtfs_server/server_fifo.c
+++ b/qtfs/qtfs_server/server_fifo.c
@@ -324,8 +324,7 @@ int fifo_proc_readable(struct fifo_event_t *evt)
log_err("read from fifo:%d failed, readlen:%d, errno:%d", evt->fd, readlen, errno);
ret = errno;
free(msg);
- if (errno == EPIPE)
- error_ret = FIFO_RET_DEL_BOTH;
+ error_ret = FIFO_RET_DEL_BOTH;
goto err_ack;
}
rsp->err = 0;
@@ -385,8 +384,7 @@ int fifo_proc_writeable(struct fifo_event_t *evt)
log_err("write to fifo failed, ret:%d errno:%d", ret, errno);
ret = errno;
free(msg);
- if (errno == EPIPE)
- error_ret = FIFO_RET_DEL_BOTH;
+ error_ret = FIFO_RET_DEL_BOTH;
goto err_ack;
}
rsp.err = 0;
--
2.37.1 (Apple Git-137.1)