03aa8995e9
When tested on Linux 5.8 kernel and configure spdk with debug mode (--enable-debug), and test SPDK NVMe-oF tcp transport, and we see the coredump in sock_map_release with the following statements: assert(entry->ref > 0); After debug, I can confirm that the placement_id value got from the following function (sock->net_impl->get_placement_id) changes. It means that: When the sock is added into the poll group (spdk_sock_group_add_sock), we get the placement_id (named as Value(begin)); and when the sock is removed from the poll group (spdk_sock_group_remove_sock), we get the plaemednt_id on the same sock (named as Vaule(end)). I found that Value(begin) ! = Value(end). So our solution is for a socket, we will get placement_id once, then we can solve this issue. Signed-off-by: Ziye Yang <ziye.yang@intel.com> Change-Id: Ia1d0cf39247b53410260561aca5af38130cc0abb Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3983 Community-CI: Mellanox Build Bot Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> |
||
---|---|---|
.. | ||
Makefile | ||
net_framework.c | ||
sock_rpc.c | ||
sock.c | ||
spdk_sock.map |