Ubuntu 16.04 / bin / kill bug?

2

Eu instalei recentemente o Ubuntu 16.04 na máquina virtual usando o VMware. Para testar meu código MapReduce, também instalei o hadoop 2.7.3 e configurei um cluster de nó único.

Quando executo o algoritmo MapReduce, todo processo, incluindo NameNode, DataNode, ResourceManager, NodeManager e a sessão ssh que estou usando, é eliminado sem qualquer aviso.

Para investigar, criei um script wrapper que registra os parâmetros de entrada do processo / bin / kill depois que eu movi / bin / kill para / bin / temp / kill

date >> /home/user/log.txt
echo "$@" >> /home/user/log.txt
echo "$#" >> /home/user/log.txt
w >> /home/user/log.txt
/bin/temp/kill $@

Após o trabalho MapReduce ser iniciado, todo processo é eliminado e a contenção do arquivo de log é a seguinte:

Sun Aug 28 03:39:19 KST 2016
-0 -18953
2
03:39:19 up 14 min,  1 user,  load average: 4.74, 2.65, 1.78
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user   tty1                      03:36    3:27   0.06s  0.06s -bash

Sun Aug 28 03:39:19 KST 2016
-15 -18844
2
03:39:19 up 14 min,  1 user,  load average: 4.74, 2.65, 1.78
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user   tty1                      03:36    3:27   0.06s  0.00s     /usr/bin/clear_console -q

Assim que "kill -0 -1xxxx" é chamado, meus processados são eliminados devido ao bug de kill informado em link

Eu adicionei ps ax & gt; & gt; /home/user/log.txt e processo com pid 18844 foi

 18844 ?        Ss     0:00 /bin/bash -c /usr/lib/jvm/default-java/bin/java -Djava.io.tmpdir=/usr/local/hadoop-datastore/hadoop-2.7.3/nm-local-dir/usercache/user/appcache/application_1472323092836_0001/container_1472323092836_0001_01_000001/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/usr/local/hadoop-2.7.3/logs/userlogs/application_1472323092836_0001/container_1472323092836_0001_01_000001 -Dyarn.app.container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA -Dhadoop.root.logfile=syslog -Xmx1024m org.apache.hadoop.mapreduce.v2.app.MRAppMaster 1>/usr/local/hadoop-2.7.3/logs/userlogs/application_1472323092836_0001/container_1472323092836_0001_01_000001/stdout 2>/usr/local/hadoop-2.7.3/logs/userlogs/application_1472323092836_0001/container_1472323092836_0001_01_000001/stderr

Acho que algum daemon hadoop como o NodeManager queria matar o YarnChild, já que o YarnChild usa mais memória do que pode usar. Mas isso resulta em matar todos os processos.

Q1. Qual é o significado de matar um processo cujo id de processo é inteiro negativo? Por que não é um número positivo como o processo normal tem?

Q2. Se for outro bug do Hadoop que invoca kill com um pid negativo, como posso encontrar qual processo invoca como "kill -15 -18844"? Eu quero encontrar o processo e relatar o bug para a comunidade do hadoop.

Eu recompilei / bin / kill do procps-ng 3.3.12 e tudo funciona bem. Obrigado.

    
por Yoonjae Park 27.08.2016 / 20:54

0 respostas