[nanomsg] Re: tracking down pipe/anon inode leaks

  • From: "Jason E. Aten" <j.e.aten@xxxxxxxxx>
  • To: nanomsg <nanomsg@xxxxxxxxxxxxx>
  • Date: Fri, 23 Jan 2015 16:24:07 -0800

On linux, looking in /proc/PID/fd, it looks the leaked fd are eventfd.

from /proc
lr-x------ 1 vagrant vagrant 64 Jan 24 00:13 0 -> /dev/null
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 1 -> /dev/pts/5
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 10 -> socket:[170235]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 11 -> anon_inode:[eventfd]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 12 -> socket:[173591]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 13 -> anon_inode:[eventfd]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 14 -> anon_inode:[eventfd]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 15 -> anon_inode:[eventfd]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 16 -> anon_inode:[eventfd]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 17 -> anon_inode:[eventfd]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 18 -> anon_inode:[eventfd]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 19 -> anon_inode:[eventfd]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 2 -> /dev/pts/5
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 20 -> anon_inode:[eventfd]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 21 -> anon_inode:[eventfd]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 22 -> anon_inode:[eventfd]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 23 -> anon_inode:[eventfd]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 3 -> /dev/tty
lr-x------ 1 vagrant vagrant 64 Jan 24 00:13 4 -> /dev/urandom
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 5 -> anon_inode:[eventfd]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 6 -> anon_inode:[eventpoll]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 7 -> anon_inode:[eventfd]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 8 -> socket:[173551]
lrwx------ 1 vagrant vagrant 64 Jan 24 00:13 9 -> anon_inode:[eventpoll]
vagrant@precise64:/proc/15001/fd$


On Fri, Jan 23, 2015 at 3:20 PM, Jason E. Aten <j.e.aten@xxxxxxxxx> wrote:

> Does anyone have tips or tricks for tracking down leaking file
> descriptors?  According to lsof, they appear to be pipes (OSX) and
> "anonymous inodes" (Linux).  Any suggestions? I'm at a loss.
>
> Details: I'm using push/pull nanomsg (updated yesterday; most recent from
> github) sockets between a client and a server. It looks like every client
> connection to the server results in the server leaking more file
> descriptors. On OSX, I see pipes left open. condensed "lsof -p 34334 -Fnt"
> output shows these are leaked (OSX):
>
> tPIPE:n->0x95df5be7a4700aff
>
> tPIPE:n->0x95df5be7a46fee1f
>
> tPIPE:n->0x95df5be79ddeb75f
>
> tPIPE:n->0x95df5be7a16570df
>
> tPIPE:n->0x95df5be7a165702f
>
> tPIPE:n->0x95df5be79ddeae6f
>
> tPIPE:n->0x95df5be7a47006df
>
> tPIPE:n->0x95df5be7ada5a0ff
>
> tPIPE:n->0x95df5be7a165912f
>
> tPIPE:n->0x95df5be7a46ff0df
>
> tPIPE:n->0x95df5be7ac4c2ecf
>
> tPIPE:n->0x95df5be7ac4c499f
>
> tPIPE:n->0x95df5be7a470041f
>
> tPIPE:n->0x95df5be7ac4c554f
>
> tPIPE:n->0x95df5be7a46ffbdf
>
> tPIPE:n->0x95df5be7a46ff39f
>
> tPIPE:n->0x95df5be7a46fe94f
>
> tPIPE:n->0x95df5be7a165a1af
>
> tPIPE:n->0x95df5be7a470057f
>
> tPIPE:n->0x95df5be7a46fe68f
>
> On Linux it is anonymous inodes that are leaking. Output from "lsof -p
> 2332 -Fnt":
>
>
> t0000:nanon_inode
>
> t0000:nanon_inode
>
> t0000:nanon_inode
>
> t0000:nanon_inode
>
> t0000:nanon_inode
>
> t0000:nanon_inode
>
> t0000:nanon_inode
>
> t0000:nanon_inode
>
> t0000:nanon_inode
>
> t0000:nanon_inode
>
>
>


-- 

Best regards,
Jason

--
Jason E. Aten, Ph.D.
j.e.aten@xxxxxxxxx
650-429-8602
linkedin: https://www.linkedin.com/pub/jason-e-aten-ph-d/18/313/45a

Other related posts: