code: g...@github.com:FDio/vpp.git master : 1a41a35b27da6921d6d86a9f1ad5f1b46e1185f7
if i close tls session which is not in thread 0, VPP will assert error. Below is more Info: > > > > DBGvpp# sh session verbose > > > > Connection State Rx-f > Tx-f > > > > [0:0][CT:J] 0.0.0.0:5005->0.0.0.0:0 LISTEN 0 > 0 > > > > [0:1][TLS] app_wrk 1 engine 2 tcp 0:20 0 > > > > [0:2][T] 0.0.0.0:5005->0.0.0.0:0 LISTEN 0 > 0 > > > > Thread 0: active sessions 3 > > > > > > > > Connection State Rx-f > Tx-f > > > > [1:0][T] 192.168.7.100:5005->192.168.7.101:54206 ESTABLISHED 0 > 0 > > > > [1:1][TLS] app_wrk 1 index 0 engine 2 tcp 1:0 state: 4 0 > 0 > > > > Thread 1: active sessions 2 > > DBGvpp# *clear session thread 1 session 0* > > 0: /home/dev/code/vpp-master/src/plugins/tlsopenssl/tls_openssl.c:72 > (openssl_ctx_get) assertion `! pool_is_free > (openssl_main.ctx_pool[vlib_get_thread_index ()], _e)' fails > > > > Program received signal SIGABRT, Aborted. > > > > 0x00007ffff4a12337 in __GI_raise (sig=sig@entry=6) at > ../nptl/sysdeps/unix/sysv/linux/raise.c:55 > > > > 55 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig); > > > > Missing separate debuginfos, use: debuginfo-install > libgcc-4.8.5-39.el7.x86_64 libuuid-2.23.2-61.el7.x86_64 > numactl-libs-2.0.12-3.el7.x86_64 > > > > (gdb) bt > > > > #0 0x00007ffff4a12337 in __GI_raise (sig=sig@entry=6) at > ../nptl/sysdeps/unix/sysv/linux/raise.c:55 > > > > #1 0x00007ffff4a13a28 in __GI_abort () at abort.c:90 > > > > #2 0x000000000040765a in os_panic () at > /home/dev/code/vpp-master/src/vpp/vnet/main.c:355 > > > > #3 0x00007ffff585ab29 in debugger () at > /home/dev/code/vpp-master/src/vppinfra/error.c:84 > > > > #4 0x00007ffff585aef8 in _clib_error (how_to_die=2, function_name=0x0, > line_number=0, fmt=0x7fffc9a96a40 "%s:%d (%s) assertion `%s' fails") at > /home/dev/code/vpp-master/src/vppinfra/error.c:143 > > > > #5 0x00007fffc9a9110e in openssl_ctx_get (ctx_index=0) at > /home/dev/code/vpp-master/src/plugins/tlsopenssl/tls_openssl.c:71 > > > > #6 0x00007ffff747f20b in tls_ctx_get (ctx_handle=1073741824) at > /home/dev/code/vpp-master/src/vnet/tls/tls.c:298 > > > > #7 0x00007ffff747f522 in tls_session_disconnect_callback > (tls_session=0x7fffdaaa54c0) at > /home/dev/code/vpp-master/src/vnet/tls/tls.c:389 > > > > #8 0x00007ffff7445b9a in app_worker_close_notify (app_wrk=0x7fffda55d280, > s=0x7fffdaaa54c0) at > /home/dev/code/vpp-master/src/vnet/session/application_worker.c:324 > > > > #9 0x00007ffff744a45b in clear_session (s=0x7fffdaaa54c0) at > /home/dev/code/vpp-master/src/vnet/session/session_cli.c:594 > > > > #10 0x00007ffff744a681 in clear_session_command_fn (vm=0x7ffff66b3d80 > <vlib_global_main>, input=0x7fffda82af00, cmd=0x7fffda3ff2c0) at > /home/dev/code/vpp-master/src/vnet/session/session_cli.c:635 > > > > #11 0x00007ffff63c5105 in vlib_cli_dispatch_sub_commands > (vm=0x7ffff66b3d80 <vlib_global_main>, cm=0x7ffff66b3fb0 > <vlib_global_main+560>, input=0x7fffda82af00, parent_command_index=59) at > /home/dev/code/vpp-master/src/vlib/cli.c:645 > > > > #12 0x00007ffff63c4f9a in vlib_cli_dispatch_sub_commands > (vm=0x7ffff66b3d80 <vlib_global_main>, cm=0x7ffff66b3fb0 > <vlib_global_main+560>, input=0x7fffda82af00, parent_command_index=0) at > /home/dev/code/vpp-master/src/vlib/cli.c:606 > > > > #13 0x00007ffff63c5530 in vlib_cli_input (vm=0x7ffff66b3d80 > <vlib_global_main>, input=0x7fffda82af00, function=0x7ffff646b44c > <unix_vlib_cli_output>, function_arg=0) at > /home/dev/code/vpp-master/src/vlib/cli.c:746 > > > > #14 0x00007ffff6471626 in unix_cli_process_input (cm=0x7ffff66b4720 > <unix_cli_main>, cli_file_index=0) at > /home/dev/code/vpp-master/src/vlib/unix/cli.c:2572 > > > > #15 0x00007ffff6472198 in unix_cli_process (vm=0x7ffff66b3d80 > <vlib_global_main>, rt=0x7fffda7ea000, f=0x0) at > /home/dev/code/vpp-master/src/vlib/unix/cli.c:2688 > > > > #16 0x00007ffff6412884 in vlib_process_bootstrap (_a=140736833976688) at > /home/dev/code/vpp-master/src/vlib/main.c:1472 > > > > #17 0x00007ffff587b9a0 in clib_calljmp () from > /home/dev/code/vpp-master/build-root/install-vpp_debug-native/vpp/lib/libvppinfra.so.20.01 > > > > > #18 0x00007fffd8fef940 in ?? () > > > > #19 0x00007ffff641298c in vlib_process_startup (vm=0x7ffff66b3d80 > <vlib_global_main>, p=0x267, f=0x0) at > /home/dev/code/vpp-master/src/vlib/main.c:1494 > > The reason is that: *tls_ctx_t* struct is create in openssl_main.ctx_pool[1], but when close form cli, it search from openssl_main.ctx_pool[0], and lead to crash The ctx_index isi 32bits, and can support 4Gs ctx, but in practice we not need so much. I think we can use the high 8bits for thread info, and left 24bits for pool index, because 4Ms ctx is already enough!
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#14164): https://lists.fd.io/g/vpp-dev/message/14164 Mute This Topic: https://lists.fd.io/mt/34487071/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-