Como solucionar a mensagem de erro "contradiz trabalhos existentes" do systemd

5

Olhando pelos registros do meu sistema, vejo a seguinte mensagem em /var/log/messages :

Sep  2 15:29:15 <myhostname> systemd[1]: Requested transaction contradicts existing jobs: File exists

Então, minha pergunta é: Como solucionar esse erro? Que passos devo dar para entender o que isso significa, o que está causando isso, se é algo para se preocupar e, em caso afirmativo, como corrigi-lo?

E qual é o significado da mensagem "A transação solicitada contradiz os trabalhos existentes"? Eu suspeito que deve haver antecedentes conceituais que estão faltando. Em qualquer caso, essa mensagem de erro sugere algumas próximas etapas do candidato para diagnosticar a causa dessa mensagem de erro e entender o que está causando isso?

Li os documentos do systemd, mas não os achei úteis com isso. Seria ótimo ter um guia geral sobre o que procurar: Suspeito que isso possa ser útil para outras pessoas que também experimentam a mensagem "... contradiz os trabalhos existentes".

    
por D.W. 03.09.2013 / 00:46

1 resposta

2

Para obter mais informações sobre esse erro para fins de solução de problemas, comece executando o comando:

$ journalctl -ab

Isto irá despejar alguns logs detalhados do diário do sistema.

Além disso, provavelmente houve outro erro diretamente na frente daquele que informou a você qual serviço, especificamente, está tendo um problema. Tente diagnosticar esse serviço também (usando o firewalld como exemplo):

$ systemctl status firewalld.service

Especificamente, essa linha vem do código systemd para ativação de transação:

link

E especificamente, quanto às transações do systemd (do man systemd):

   systemd has a minimal transaction system: if a unit is requested to start up
   or shut down it will add it and all its dependencies to a temporary
   transaction. Then, it will verify if the transaction is consistent (i.e.
   whether the ordering of all units is cycle-free). If it is not, systemd will
   try to fix it up, and removes non-essential jobs from the transaction that
   might remove the loop. Also, systemd tries to suppress non-essential jobs in
   the transaction that would stop a running service. Finally it is checked
   whether the jobs of the transaction contradict jobs that have already been
   queued, and optionally the transaction is aborted then. If all worked out and
   the transaction is consistent and minimized in its impact it is merged with
   all already outstanding jobs and added to the run queue. Effectively this
   means that before executing a requested operation, systemd will verify that
   it makes sense, fixing it if possible, and only failing if it really cannot
   work.

Então, combinando tudo isso, acho que há algo mais próximo dessa entrada de log que está tentando inicializar, mas já tem um arquivo de bloqueio (possivelmente obsoleto) que precisa ser limpo. / p>     

por 15.09.2013 / 08:45