Description of problem: When there is at least one process in the system running that has many open file descriptors and many threads lsof -nP takes a a lot of time to run and produces huge output. Version-Release number of selected component (if applicable): lsof-4.87-4.el7.x86_64 How reproducible: Always Steps to Reproduce: 1. lsof -nP Actual results: Takes a long time to traverse all threads of all processes. Expected results: Only traverse processes, unless -K flag is given.
Created attachment 1267267 [details] Sample program to illustrate the problem.
Created attachment 1267268 [details] Patch to only list threads/tasks if the -K flag is given.
Example running standard and patches lsof in an EL7 desktop session: Standard EL7 lsof: $) time lsof -nP | wc -c 14117646 real 0m1.430s user 0m0.648s sys 0m0.789s $) ./fd-and-threads & [1] 30452 $) time lsof -nP | wc -c 75110357 real 0m13.096s user 0m4.128s sys 0m8.968s $) Patched lsof: $) time lsof -nP | wc -c 1748246 real 0m0.214s user 0m0.087s sys 0m0.131s $) ./fd-and-threads & [1] 31585 $) time lsof -nP | wc -c 1822372 real 0m0.247s user 0m0.087s sys 0m0.162s $) time lsof -nPK | wc -c 68403949 real 0m12.946s user 0m4.125s sys 0m8.828s $)
Created attachment 1399440 [details] Proposed backport patch Patch to ignore threads if -Ki flag is given. Change backported from upstream. lsof always displayed threads by default (documented in manpage).
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2018:3046