# [OmniOS-discuss] [developer] How to release reserved TCP port binding in BOUND state

Youzhong Yang youzhong at gmail.com
Tue Nov 4 18:32:34 UTC 2014

- Previous message: [OmniOS-discuss] [developer] How to release reserved TCP port binding in BOUND state
- Next message: [OmniOS-discuss] [developer] How to release reserved TCP port binding in BOUND state
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

    Hi Marcel,

    I really appreciate your input. We will try to find out what is wrong in
    connmgr_get() which caused port leaking.

    In the meantime, we want to change clnt_cots_do_bindresvport from 1 to 0
    through mdb so that new connection will start using non-reserved port,

    http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/rpc/clnt_cots.c#508

    Will dynamically changing this variable have any side effect?

    Thanks,
    -Youzhong

    On Mon, Nov 3, 2014 at 4:50 PM, Marcel Telka <marcel at telka.sk> wrote:

    > Hi Youzhong,
    >
    > On Mon, Nov 03, 2014 at 04:14:55PM -0500, Youzhong Yang via
    > illumos-developer wrote:
    > > Hello,
    > >
    > > We are having a very strange issue on one of servers. The issue is that
    > > fcntl locking over NFS returns 'no locks available' immediately.
    > >
    > > dtrace shows that bindresvport() returns error code 125 (EADDRINUSE):
    > >
    > > # dtrace -n 'fbt:rpcmod:bindresvport:return /arg1 != 0/ {stack();
    > > printf("ret = %d", arg1);}'
    > >   9  52692              bindresvport:return
    > >               rpcmod`connmgr_get+0x560
    > >               rpcmod`connmgr_wrapget+0x63
    > >               rpcmod`clnt_cots_kcallit+0x198
    > >               rpcmod`rpcbind_getaddr+0x245
    > >               klmmod`update_host_rpcbinding+0x4f
    > >               klmmod`nlm_host_get_rpc+0x6d
    > >               klmmod`nlm_do_lock+0x10d
    > >               klmmod`nlm4_lock_4_svc+0x2a
    > >               klmmod`nlm_dispatch+0xe6
    > >               klmmod`nlm_prog_4+0x34
    > >               rpcmod`svc_getreq+0x1c1
    > >               rpcmod`svc_run+0x146
    > >               rpcmod`svc_do_run+0x8e
    > >               nfs`nfssys+0xf1
    > >               unix`_sys_sysenter_post_swapgs+0x149
    > > ret = 125
    > >
    > > netstat shows that 501 reserved ports are in BOUND state:
    > >
    > > # netstat -an | grep BOUND
    > >       *.935                *.*                0      0 1049740      0
    > BOUND
    > >       *.801                *.*                0      0 1049740      0
    > BOUND
    > >       *.798                *.*                0      0 1049740      0
    > BOUND
    > >       *.561                *.*                0      0 1049740      0
    > BOUND
    > >       *.613                *.*                0      0 1049740      0
    > BOUND
    > >       ....
    > > # netstat -an | grep BOUND | wc -l
    > >      501
    > >
    > > Has anyone seen this similar issue? is it possible to unbind those
    > reserved
    > > ports? Rebooting the server is our last resort.
    > >
    > > Any advice would be very much appreciated.
    >
    > I faced similar issue in connmgr_get().  It is filed as #1616 and the
    > problem
    > is that the dead connection is not properly closed (there seems to be
    > missing
    > connmgr_cancelconn() call somewhere), so the client could properly
    > reconnect.
    > Unfortunately, I had no time to finish the analysis of this bug.
    >
    >
    > HTH
    >
    > --
    > +-------------------------------------------+
    > | Marcel Telka   e-mail:   marcel at telka.sk  |
    > |                homepage: http://telka.sk/ |
    > |                jabber:   marcel at jabber.sk |
    > +-------------------------------------------+
    >
    -------------- next part --------------
    An HTML attachment was scrubbed...
    URL: <http://lists.omniti.com/pipermail/omnios-discuss/attachments/20141104/24240421/attachment-0001.html>

- Previous message: [OmniOS-discuss] [developer] How to release reserved TCP port binding in BOUND state
- Next message: [OmniOS-discuss] [developer] How to release reserved TCP port binding in BOUND state
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

More information about the OmniOS-discuss mailing list