i'm using v4.11.0 release of iproute2 and kernel 3.10.105, simply
running

        $ ss
        Netid  State      Recv-Q Send-Q Local Address:Port                 Peer 
Address:Port
        tcp    CLOSE-WAIT 434    0      10.0.0.1:47931                
65.49.18.136:https
        tcp    CLOSE-WAIT 432    0      10.0.0.1:47932                
65.49.18.136:https
        tcp    CLOSE-WAIT 434    0      10.0.0.1:47931                
65.49.18.136:https
        tcp    CLOSE-WAIT 432    0      10.0.0.1:47932                
65.49.18.136:https

as you can see, there's one duplicate entry of each  tcp  socket,
however,  if  i  explicitly  specify  tcp socket by adding the -t
switch,

        $ ss -t
        State      Recv-Q Send-Q Local Address:Port                 Peer 
Address:Port
        CLOSE-WAIT 434    0      10.0.0.1:47931                
65.49.18.136:https
        CLOSE-WAIT 432    0      10.0.0.1:47932                
65.49.18.136:https

the duplication is gone.

this problem also occurs on  git  master,  but  not  on  iproute2
v4.3.0,  so  i  did  a  git bisect and found out the commit which
caused this is 9f66764e308e9c645b3fb2d1cfbb7fb207eb5de1,  and  by
revert this commit on git master, i.e. removing

                                        err = rtnl_dump_done(rth, h);
                                        if (err < 0)
                                                return -1;

these 3 lines of code of lib/libnetlink.c, the problem is gone.

since  i'm not familiar with the source code, i doubt this is the
right way to solve the problem, what's your suggestions? thanks.

Reply via email to