Hi, Could you replace s->session_index by s->session_index ? : 1 in the patch?
Regards, Florin > On Oct 24, 2022, at 12:23 AM, Zhang Dongya <fortitude.zh...@gmail.com> wrote: > > Hi list, > > Recently I am testing my TCP application in a plugin, what I did is to > initiate a TCP client in my plugin, however, when I build the debug image and > test, the vpp > will crash and complaint about out of memory. > > After doing some research, it seems the following code may cause the crash: > > always_inline session_t * > ho_session_alloc (void) > { > session_t *s; > ASSERT (vlib_get_thread_index () == 0); > s = session_alloc (0); > s->session_state = SESSION_STATE_CONNECTING; > s->flags |= SESSION_F_HALF_OPEN; > /* Not ideal. Half-opens are only allocated from main with worker barrier > * but can be cleaned up, i.e., session_half_open_free, from main without > * a barrier. In debug images, the free_bitmap can grow while workers peek > * the sessions pool, e.g., session_half_open_migrate_notify, and as a > * result crash while validating the session. To avoid this, grow the bitmap > * now. */ > if (CLIB_DEBUG) > { > session_t *sp = session_main.wrk[0].sessions; > clib_bitmap_validate (pool_header (sp)->free_bitmap, s->session_index); > } > return s; > } > > since the clib_bitmap_validate is defined as: > > /* Make sure that a bitmap is at least n_bits in size */ > #define clib_bitmap_validate(v,n_bits) \ > clib_bitmap_vec_validate ((v), ((n_bits) - 1) / BITS (uword)) > > > The first half open session have a session_index with zero, so 0-1 will make > a overflow which cause it try to allocate (UINT64_MAX-1)/ 64 memory which make > the vppinfra abort. > > I think we should modify the code above with s->session_index + 1, if that's > correct, I will submit a patch later. > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#22065): https://lists.fd.io/g/vpp-dev/message/22065 Mute This Topic: https://lists.fd.io/mt/94529335/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-