Discussion:
gsad eating all CPU
Rainer Sokoll
2014-09-13 17:23:58 UTC
Permalink
Hi,

I know this is a known issue. Once a browser connects to gsad, the daemon eats all CPU.

What I do not understand:

~# ps x | grep gsad
23037 ? Sl 31:38 /usr/sbin/gsad --listen=0.0.0.0 --port=9392 --mlisten=127.0.0.1 --mport=9390

~# strace -p 23037
Process 23037 attached
select(0, NULL, NULL, NULL, NULL

(Nothing more)

~# strace -f -p 23037
Process 23037 attached with 24 threads
[pid 23120] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 23110] select(26, [25], [], NULL, NULL <unfinished ...>
[pid 23109] select(25, [24], [], NULL, NULL <unfinished ...>
[pid 23074] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 23073] select(23, [22], [], NULL, NULL <unfinished ...>
[pid 23072] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 23071] select(21, [20], [], NULL, NULL <unfinished ...>
[pid 23070] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 23069] select(19, [18], [], NULL, NULL <unfinished ...>
[pid 23068] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 23067] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 23066] select(16, [15], [], NULL, NULL <unfinished ...>
[pid 23065] select(15, [14], [], NULL, NULL <unfinished ...>
[pid 23064] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 23063] select(13, [12], [], NULL, NULL <unfinished ...>
[pid 23062] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 23056] select(11, [10], [], NULL, NULL <unfinished ...>
[pid 23120] <... clock_gettime resumed> {103865, 810027250}) = 0
[pid 23110] <... select resumed> ) = 1 (in [25])
[pid 23109] <... select resumed> ) = 1 (in [24])
[pid 23120] select(27, [26], [], NULL, NULL <unfinished ...>
[pid 23110] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 23120] <... select resumed> ) = 1 (in [26])
[pid 23110] <... clock_gettime resumed> {103865, 810688899}) = 0
[pid 23120] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 23110] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 23120] <... clock_gettime resumed> {103865, 810997480}) = 0
[pid 23110] <... clock_gettime resumed> {103865, 811169595}) = 0
[pid 23120] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 23110] select(26, [25], [], NULL, NULL <unfinished ...>
[pid 23120] <... clock_gettime resumed> {103865, 811476998}) = 0
[pid 23110] <... select resumed> ) = 1 (in [25])
[pid 23120] select(27, [26], [], NULL, NULL <unfinished ...>
[pid 23110] clock_gettime(CLOCK_MONOTONIC, <unfinished ...>
[pid 23120] <... select resumed> ) = 1 (in [26])
[pid 23110] <... clock_gettime resumed> {103865, 812050323}) = 0

(repeated endless)

What I do not understand:
The children’s PIDs are decreased from 23120 to 23056 and then all starts again with 23120. Why that?

Then:
proc# find . -name exe -type l | xargs ls -l 2>/dev/null | grep gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23037/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23039/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23050/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23051/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23052/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23054/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23055/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23056/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23062/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23063/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23064/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23065/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23066/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23067/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23068/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23069/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23070/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23071/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23072/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23073/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23074/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23109/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23110/exe -> /usr/sbin/gsad
lrwxrwxrwx 1 root root 0 Sep 13 19:17 ./23037/task/23120/exe -> /usr/sbin/gsad

Does that mean that PID 2307 has 23 threads, all pointing back to gsad?

Rainer
Jan-Oliver Wagner
2014-10-06 13:32:01 UTC
Permalink
Post by Rainer Sokoll
I know this is a known issue. Once a browser connects to gsad, the daemon eats all CPU.
this doesn't happen for me. How do you observe this?
Post by Rainer Sokoll
~# ps x | grep gsad
...
I use htop and then treeview to have a quick view on parent-child
relationsships. Perhaps this explains situation better?
--
Dr. Jan-Oliver Wagner | ++49-541-335084-0 | http://www.greenbone.net/
Greenbone Networks GmbH, Neuer Graben 17, 49074 Osnabrück | AG Osnabrück, HR B
202460
Geschäftsführer: Lukas Grunwald, Dr. Jan-Oliver Wagner
Loading...