Hi Hoang,
Yes, but the code for collecting data in the stack was different with "native" 
tipc-config vs. now, when tipc-config in reality is using the same code as 
"tipc" just via the "compat" layer.
Not sure when this changed was done, but probably at the uplift to sp2.

///jon


> -----Original Message-----
> From: Hoang Le <hoang.h...@dektech.com.au>
> Sent: 9-Apr-19 04:14
> To: Jon Maloy <jon.ma...@ericsson.com>; ma...@donjonn.com;
> ying....@windriver.com; tipc-discussion@lists.sourceforge.net
> Subject: RE: [net] tipc: missing entries in name table of publications
> 
> Hi Jon,
> 
> In my reproduction, I'm seeing the problem either tipc-config.
> I guest almost systems were not using as special service type as my test, then
> all node state service type fit in one skb.
> 
> Regards,
> Hoang
> -----Original Message-----
> From: Jon Maloy <jon.ma...@ericsson.com>
> Sent: Tuesday, April 9, 2019 5:39 AM
> To: Hoang Huu Le <hoang.h...@dektech.com.au>; ma...@donjonn.com;
> ying....@windriver.com; tipc-discussion@lists.sourceforge.net
> Subject: RE: [net] tipc: missing entries in name table of publications
> 
> Nice job. I am just flabbergasted by the fact that this seems to be a bug that
> has always been around, and still it wasn't seen until now, with all the
> systems with huge name tables we have running around in the world.
> Maybe most people are still using "tipc-config"....
> 
> Acked-by: Jon Maloy <jon.ma...@ericsson.com>
> 
> 
> > -----Original Message-----
> > From: Hoang Le <hoang.h...@dektech.com.au>
> > Sent: 8-Apr-19 07:08
> > To: Jon Maloy <jon.ma...@ericsson.com>; ma...@donjonn.com;
> > ying....@windriver.com; tipc-discussion@lists.sourceforge.net
> > Subject: [net] tipc: missing entries in name table of publications
> >
> > When binding multiple services with specific type 1Ki, 2Ki.., this
> > leads to some entries in the name table of publications missing when
> > listed out via 'tipc name show'.
> >
> > The problem is at identify zero last_type conditional provided via
> > netlink. The first is initial 'type' when starting name table
> > dummping. The second is continuously with zero type (node state
> > service type). Then, lookup function failure to finding node state service
> type next iteration.
> >
> > To solve this, adding more conditional to marked as dirty type and
> > lookup correct service type for the next iteration instead of select
> > the first service as initial 'type' zero.
> >
> > Signed-off-by: Hoang Le <hoang.h...@dektech.com.au>
> > ---
> >  net/tipc/name_table.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/net/tipc/name_table.c b/net/tipc/name_table.c index
> > bff241f03525..89993afe0fbd 100644
> > --- a/net/tipc/name_table.c
> > +++ b/net/tipc/name_table.c
> > @@ -909,7 +909,8 @@ static int tipc_nl_service_list(struct net *net,
> > struct tipc_nl_msg *msg,
> >     for (; i < TIPC_NAMETBL_SIZE; i++) {
> >             head = &tn->nametbl->services[i];
> >
> > -           if (*last_type) {
> > +           if (*last_type ||
> > +               (!i && *last_key && (*last_lower == *last_key))) {
> >                     service = tipc_service_find(net, *last_type);
> >                     if (!service)
> >                             return -EPIPE;
> > --
> > 2.17.1
> 



_______________________________________________
tipc-discussion mailing list
tipc-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tipc-discussion

Reply via email to