Rainer Sokoll
2014-09-13 17:23:58 UTC
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
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