Estou tentando descobrir por que o Eclipse está girando, então decidi acionar o Strace.
Eu encontrei o processo do eclipse usando:
$ ps ax | grep java
5546 ? Sl 19:04 /usr/bin/java ... [arguments omitted]
Ao executar strace
nesse processo, vejo que ele está aguardando outro processo:
$ sudo strace -p 5546
Process 5546 attached - interrupt to quit
futex(0x7f6c416679d0, FUTEX_WAIT, 5547, NULL^C <unfinished ...>
Process 5546 detached
Curiosamente, o processo 5547 não aparece em ps
(alguém pode me dizer por quê?), mas eu posso strace
. É repetidamente cuspindo muitas falhas EAGAIN (com o sucesso ocasional)
read(16, 0x7f6c41664d10, 16) = -1 EAGAIN (Resource temporarily unavailable)
recvfrom(15, 0x7f6c3815f2e4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
clock_gettime(CLOCK_MONOTONIC, {67410, 357843264}) = 0
poll([{fd=16, events=POLLIN}, {fd=15, events=POLLIN}, {fd=68, events=POLLIN}, {fd=128, events=POLLIN}, {fd=69, events=POLLIN}], 5, 0) = 0 (Timeout)
read(16, 0x7f6c41664cb0, 16) = -1 EAGAIN (Resource temporarily unavailable)
recvfrom(15, 0x7f6c3815f2e4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
...
A partir da saída, parece que está pesquisando os descritores de arquivos 16, 15, 68, 128 e 69. Particularmente, os erros EAGAIN
são provenientes dos fds 15 e 6, como visto no read(2)
e recvfrom(2)
chamadas.
Como posso encontrar mais informações sobre esses fds? Eu tentei lsof -p 5547
, mas nenhuma saída foi impressa. Eu suspeito que estes são soquetes que estão abertos para algum site, mas por que ele está girando em um loop com EAGAIN
falhas é intrigante ...