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?
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
Fixed by Nurdin.