can you create test case for us? On Thu, 18 Oct 2018 at 14:55, gyanesh patra <[email protected]> wrote:
> Hi, > We are curious if there is any solution in the pipeline for this issue of > iplookuptable insert, i.e. crash at buffer_alloc_multi() ? Any pointer > will be really helpful. > If it will help, we can create an issue in github too. > Thanks for the help. > > Regards, > P Gyanesh Kumar Patra > > On Tue, Sep 11, 2018 at 12:17 PM Maxim Uvarov <[email protected]> > wrote: > >> odp prints happen on places where ODP_DBG("print something") is placed. >> It's just additional debug information. >> Also you can increase stack with ulimit -s unlimited and run valgrind to >> that app. But I generated core on adding to table random values I saw >> segfault and gdb pointed to that function. >> >> Maxim. >> >> >> >> >> On 11 September 2018 at 18:03, Fabricio RodrÃguez <[email protected]> >> wrote: >> >>> Hi Maxim, >>> >>> I have tried the patch that you sent, but the issue continues. >>> >>> Also was trying enabling the debug flags at ODP but for some reason, I >>> can not see any print, you have any suggestion of how to see the ODP debug >>> prints when using an ODP library from an external application?. >>> >>> Regards, >>> >>> Fabricio >>> >>> >>> El mar., 11 sept. 2018 a las 10:44, Maxim Uvarov (< >>> [email protected]>) escribió: >>> >>>> Gyanesh, >>>> >>>> I tried to add some random data to ip lookup table and found that it >>>> breaks it's own stack due to recursion. >>>> >>>> I have no idea if it's your case or not. Probably not because you have >>>> buffer_alloc_multi in stack trace and I do not see that. >>>> >>>> You can test this patch: >>>> https://github.com/Linaro/odp/pull/700 >>>> >>>> Maxim. >>>> >>>> On 10.09.2018 20:01, gyanesh patra wrote: >>>> > We tried it as: >>>> > #define ENTRY_NUM_SUBTREE(1 << 12) >>>> > >>>> > But it didn't work. We couldn't increase it anymore without adding >>>> > more RAM to system. >>>> > One point to consider is that, this same thing was working with ODP >>>> > 1.16 code, but with ODP 1.19 version it is not working. >>>> > >>>> > P Gyanesh Kumar Patra >>>> > >>>> > >>>> > On Mon, Sep 10, 2018 at 12:31 PM Maxim Uvarov < >>>> [email protected] >>>> > <mailto:[email protected]>> wrote: >>>> > >>>> > did you try to increase? >>>> > >>>> > /* The size of one L2\L3 subtree */ >>>> > #define ENTRY_NUM_SUBTREE(1 << 8) >>>> > ./helper/iplookuptable.c >>>> > >>>> > On 10 September 2018 at 18:27, gyanesh patra >>>> > <[email protected] <mailto:[email protected]>> >>>> wrote: >>>> > >>>> > We are using ODP library from an external application. hence i >>>> > dont have a simple test code to reproduce it. >>>> > But to give a perspective: >>>> > - the value size as 12 >>>> > - the ip prefix is 32 >>>> > The crash is happening around 159th entry. If the prefix is >>>> > changed to 16, the crash happens at around 496th entry. >>>> > Regards, >>>> > P Gyanesh Kumar Patra >>>> > >>>> > >>>> > On Mon, Sep 10, 2018 at 12:16 PM Maxim Uvarov >>>> > <[email protected] <mailto:[email protected]>> >>>> wrote: >>>> > >>>> > do you have some test code to reproduce it? >>>> > >>>> > On 10 September 2018 at 18:06, gyanesh patra >>>> > <[email protected] >>>> > <mailto:[email protected]>> wrote: >>>> > >>>> > Hi, >>>> > ODP is crashing at buffer_alloc_multi() while >>>> > inserting into iplookuptable. >>>> > >>>> > The backtrace is as below: (gdb) bt #0 >>>> buffer_alloc_multi >>>> > (pool=0x7fffd5420c00, >>>> > buf_hdr=buf_hdr@entry=0x7fff55fa8bb0, >>>> > max_num=max_num@entry=1) at odp_pool.c:700 #1 >>>> > 0x0000000000433083 in >>>> > odp_buffer_alloc (pool_hdl=pool_hdl@entry=0x9) at >>>> > odp_pool.c:861 #2 >>>> > 0x0000000000703732 in cache_alloc_new_pool >>>> > (type=CACHE_TYPE_TRIE, >>>> > tbl=<optimized out>) at iplookuptable.c:223 #3 >>>> > cache_get_buffer >>>> > (type=CACHE_TYPE_TRIE, tbl=<optimized out>) at >>>> > iplookuptable.c:248 #4 >>>> > trie_insert_node (nexthop=<optimized out>, >>>> > cidr=<optimized out>, >>>> > ip=<optimized out>, root=<optimized out>, >>>> > tbl=<optimized out>) at >>>> > iplookuptable.c:317 #5 odph_iplookup_table_put_value >>>> > (tbl=<optimized out>, >>>> > key=<optimized out>, value=<optimized out>) at >>>> > iplookuptable.c:686 >>>> > >>>> > Am i looking at any limitation to iplookuptable >>>> > implementaion here? If any >>>> > other details are needed, please let us know. >>>> > >>>> > Regards, >>>> > P Gyanesh Kumar Patra >>>> > >>>> > >>>> > >>>> >>>> >>
