1. Информация о дефекте
[Операционная система версия] (например, openEuler-22.03-LTS, используйте команду "cat /etc/os-release")
openeulerversion=openEuler-22.03-LTS-SP3
compiletime=2023-12-30-12-21-52
gccversion=10.3.1-49.oe2203sp3
kernelversion=5.10.0-182.0.0.95.oe2203sp3
openjdkversion=1.8.0.392.b08-3.oe2203sp3
[Версия ядра] (например, kernel-5.10.0-60.138.0.165, используйте команду "uname -r")
5.10.0-182.0.0.95.oe2203sp3.aarch64
[Программа и её версия] (например, kernel-5.10.0-60.138.0.165, используйте команду "rpm -q имя_пакета")
dpdk-21.11-79.aarch64
gazelle-1.0.2-80.oe2203sp3.aarch64
[Шаги воспроизведения проблемы]: Опишите конкретные действия
use_ltran=0
kni_switch=0
flow_bifurcation=0
low_power_mode=0
tcp_conn_count=1500
mbuf_count_per_conn=138
send_ring_size = 32
recv_ring_size = 128
read_connect_number = 4
rpc_number = 4
nic_read_number = 128
nic_rxqueue_size = 4096
nic_txqueue_size = 2048
num_cpus="23"
app_bind_numa=1
main_thread_affinity=0
host_addr="124.88.112.13"
mask_addr="255.255.0.0"
gateway_addr="124.88.0.1"
devices="24:8a:07:b7:36:96"
tuple_filter=0
num_process=1
process_numa="0,1"
process_idx=0
listen_shadow=1
nic_vlan_mode=-1
bond_mode=6
# MAC-адреса рабочих станций объединения, разделённые точкой с запятой, поддерживаются только два MAC-адреса
# bond_slave_mac="aa:bb:cc:dd:ee:ff;gg:hh:ii:jj:kk:ll"
rpc_msg_max=4096
udp_enable=1
bond_slave_mac="24:8a:07:b7:36:96;24:8a:07:b7:36:97"
stack_thread_mode="run-to-wakeup"
# режим ltran требует добавления "--map-perfect" и "--legacy-mem" в dpdk_args
use_ltran=0
kni_switch=0
flow_bifurcation=0
low_power_mode=0
# необходимое количество mbuf = tcp_conn_count * mbuf_count_per_conn
tcp_conn_count=1500
mbuf_count_per_conn=300
# размер кольцевого буфера отправки, по умолчанию 32, максимум 2048
send_ring_size = 32
# размер кольцевого буфера приема, по умолчанию 128, максимум 2048
recv_ring_size = 128
# параметры протокола стека потока на каждом цикле
# чтение данных из протокола стека в recv_ring
read_connect_number = 4
# количество обрабатываемых RPC сообщений
rpc_number = 4
# количество пакетов NIC для чтения
nic_read_number = 128
nic_rxqueue_size = 4096
nic_txqueue_size = 2048
# каждый ядро процессора запускает поток протокола стека.
num_cpus="23"
# привязка основного потока приложения к NUMA в epoll/poll.
app_bind_numa=1
# установка аффинитет основного потока приложения DPDK.
main_thread_affinity=0
host_addr="124.88.31.121"
mask_addr="255.255.0.0"
gateway_addr="124.88.0.1"
devices="24:8a:07:b7:39:ca"
# 0: использовать правило RSS
# 1: использовать правило TCP-кортежа для указания пакета в очередь NIC
tuple_filter=0
# tuple_filter=1, ниже указаны действительные конфигурации
num_process=1
process_numa="0,1"
process_idx=0
# tuple_filter=0, ниже указаны действительные конфигурации
listen_shadow=1
# режим VLAN; поддерживаются значения от -1 до 4094, -1 — отключен
nic_vlan_mode=-1
# режим объединения; поддерживаются только режимы объединения 4 или 6, -1 — отключен
bond_mode=6# MAC-адреса рабочих станций объединения, разделённые точкой с запятой, поддерживаются только два MAC-адреса
# bond_slave_mac="aa:bb:cc:dd:ee:ff;gg:hh:ii:jj:kk:ll"
rpc_msg_max=4096
udp_enable=1
bond_slave_mac="24:8a:07:b7:39:ca;24:8a:07:b7:39:cb"```
**[Фактический результат]**, пожалуйста, опишите результат проблемы и её влияние.
Корневой сбой был вызван командой `/root/example -a server -D tcp -i 124.88.112.13 -p 33333 -P 262144 -t 100 -c 30`.
Программа была прервана сигналом SIGSEGV (ошибка раздела памяти).
```(gdb) bt
#0 0x0000ffffb918d008 в del_sock_event_nolock() из /usr/lib64/liblstack.so
#1 0x0000ffffb918d06c в del_sock_event() из /usr/lib64/liblstack.so
#2 0x0000ffffb91a0c28 в do_lwip_read_from_stack() из /usr/lib64/liblstack.so
#3 0x0000000000401c38 в read_api(fd=1955,
buffer_in=0xfffee4001600 "stuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghij"... , length=262144, api=0x408c80 "readwrite")
в /root/yinbin/gazelle_rpm_build/update_example_of_9.82.1.253_data/gitee/gazelle/examples/src/business.c:27
#4 0x0000000000402304 в server_ans_read(client_addr=0xffff827c7158,
buffer_in=0xfffee4001600 "stuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghij"... , server_base_info=<синтетический указатель>, socket_fd=1955)
в /root/yinbin/gazelle_rpm_build/update_example_of_9.82.1.253_data/gitee/gazelle/examples/src/business.c:167
#5 server_ans(fd=1955, pktlen=<оптимизировано>, api=0x408c80 "readwrite", domain=domain@entry=0x409238 "tcp")
в /root/yinbin/gazelle_rpm_build/update_example_of_9.82.1.253_data/gitee/gazelle/examples/src/business.c:252
#6 0x0000000000407a6c в sersum_process_tcp_accept_event(curr_epev=0x36bedc90, server_unit=0x36beda50)
в /root/yinbin/gazelle_rpm_build/update_example_of_9.82.1.253_data/gitee/gazelle/examples/src/server.c:696
#7 sersum_process_epollin_event(curr_epev=0x36bedc90, server_unit=0x36beda50)
в /root/yinbin/gazelle_rpm_build/update_example_of_9.82.1.253_data/gitee/gazelle/examples/src/server.c:734
#8 sersum_proc_epevs(server_unit=server_unit@entry=0x36beda50)
в /root/yinbin/gazelle_rpm_build/update_example_of_9.82.1.253_data/gitee/gazelle/examples/src/server.c:761
#9 0x0000000000407cc0 в sersum_create_and_run(arg=0x36beda50) в /root/yinbin/gazelle_rpm_build/update_example_of_9.82.1.253_data/gitee/gazelle/examples/src/server.c:784
#10 0x0000ffffb8fa2308 в start_thread (arg=0xfffff91914d0) в pthread_create.c:443
#11 0x0000ffffb9009b1c в thread_start () в ../../sysdeps/unix/sysv/linux/aarch64/clone.S:79
``` **[Ожидаемый результат]**, пожалуйста, опишите ожидаемый результат и его влияние.
Программа должна завершиться корректно.
Вход Перед тем как оставить комментарий