Bug 4546

Summary: Frysk Source window appears to have a file descriptor leak
Product: frysk Reporter: Rick Moseley <rmoseley>
Component: generalAssignee: Unassigned <frysk-bugzilla>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: unspecified   
Target Milestone: ---   
Host: Target:
Build: Last reconfirmed:
Bug Depends on:    
Bug Blocks: 1633    

Description Rick Moseley 2007-05-24 21:47:17 UTC
After bringing up a frysk source window, if you look at the "/proc/FRYSKPID/fd"
directory you will see *many* duplicate file decriptors.  Here is an example of
a recent run:

ls -la /proc/8157/fd
total 0
dr-x------ 2 rmoseley rmoseley  0 May 24 10:43 .
dr-xr-xr-x 5 rmoseley rmoseley  0 May 24 10:43 ..
lrwx------ 1 rmoseley rmoseley 64 May 24 10:45 0 -> /dev/pts/4
lrwx------ 1 rmoseley rmoseley 64 May 24 10:45 1 -> /dev/pts/4
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 10 -> pipe:[33117]
l-wx------ 1 rmoseley rmoseley 64 May 24 10:45 11 -> pipe:[33117]
l-wx------ 1 rmoseley rmoseley 64 May 24 10:45 12 ->
/home/rmoseley/.frysk/logs/frysk_core_event.log.111
l-wx------ 1 rmoseley rmoseley 64 May 24 10:45 13 ->
/home/rmoseley/.frysk/logs/frysk_monitor_error.log
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 14 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 15 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 16 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 17 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 18 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 19 -> /home/rmoseley/mcvet
lrwx------ 1 rmoseley rmoseley 64 May 24 10:43 2 -> /dev/pts/4
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 20 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 21 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 22 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 23 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 24 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 25 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 26 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 27 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 28 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 29 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 3 ->
/usr/share/java/gnu-crypto-2.1.0.jar
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 30 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 31 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 32 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 33 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 34 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 35 -> /lib/libpthread-2.4.so
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 36 -> /lib/libpthread-2.4.so
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 37 -> /lib/libpthread-2.4.so
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 38 -> /lib/libc-2.4.so
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 39 -> /lib/libc-2.4.so
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 4 ->
/usr/share/java/gnu-crypto-2.1.0.jar
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 40 -> /lib/libc-2.4.so
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 41 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 42 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 43 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 44 -> /home/rmoseley/mcvet
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 5 -> /usr/share/java/jsse-1.0.1.jar
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 6 -> /usr/share/java/jsse-1.0.1.jar
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 7 -> /usr/share/java/bcprov-1.34.jar
lr-x------ 1 rmoseley rmoseley 64 May 24 10:45 8 -> /usr/share/java/bcprov-1.34.jar
lrwx------ 1 rmoseley rmoseley 64 May 24 10:45 9 -> socket:[33115]


Is there a fd leak somewheres of are these really necessary?
Comment 1 Nurdin Premji 2007-05-29 14:54:25 UTC
I am not sure what the exact steps were to do this, but after some dwfl patching
to use frysk to get memory, (and the creation of a dwfl factory), I see the
following immediately after opening the source window on an funit-child. (See
Bug #4535 for a possible patch to get source window opening on funit-child.)

 ls -al /proc/31596/fd/
total 0
dr-x------ 2 nurdin 501  0 May 29 10:42 .
dr-xr-xr-x 5 nurdin 501  0 May 29 10:42 ..
lrwx------ 1 nurdin 501 64 May 29 10:43 0 -> /dev/pts/0
lrwx------ 1 nurdin 501 64 May 29 10:43 1 -> /dev/pts/0
lr-x------ 1 nurdin 501 64 May 29 10:43 10 -> /lib/libc-2.5.so
lr-x------ 1 nurdin 501 64 May 29 10:43 12 ->
/localhome/nurdin/build-work/frysk-core/frysk/pkglibdir/funit-child
lrwx------ 1 nurdin 501 64 May 29 10:42 2 -> /dev/pts/0
lrwx------ 1 nurdin 501 64 May 29 10:43 3 -> socket:[1731799]
lr-x------ 1 nurdin 501 64 May 29 10:43 4 -> pipe:[1731801]
l-wx------ 1 nurdin 501 64 May 29 10:43 5 -> pipe:[1731801]
l-wx------ 1 nurdin 501 64 May 29 10:43 7 ->
/localhome/nurdin/.frysk/logs/frysk_core_event.log.37
l-wx------ 1 nurdin 501 64 May 29 10:43 8 ->
/localhome/nurdin/.frysk/logs/frysk_monitor_error.log
lr-x------ 1 nurdin 501 64 May 29 10:43 9 ->
/localhome/nurdin/build-work/frysk-core/frysk/pkglibdir/funit-child
Comment 2 Rick Moseley 2007-08-01 19:42:41 UTC
Fixed by Nurdin.