XmlRpcException при регистрации агента сборки TeamCity

Я установил агент сборки TeamCity на свою машину несколькими различными способами - с помощью Java Web Start и ручного распространения.zip. И то и другое приводит к жизнеспособной установке, так как я один или два раза смог правильно подключиться и зарегистрироваться на сервере TeamCity. Однако при перезапуске (<install_location>/bin/agent.sh stop...<install_location>/bin/agent.sh start) Я получаю следующую ошибку в teamcity-agent.log (с дополнительной отладкой, включенной в файле конфигурации log4j).

    [2013-04-03 09: 05: 09,870] DEBUG - jetbrains.buildServer.XMLRPC - faultStringjava.lang.RuntimeException: org.jdom.input.JDOMParseException: Ошибка в строке 28: структуры документа XML должны начинаться и заканчиваться в одной и той же сущности.faultCode0 
    [2013-04-03 09:05:09,878]  DEBUG - buildServer.AGENT.registration - jetbrains.buildServer.xmlrpc.RemoteCallException: Вызовите http://teamcityserver:8080/RPC2 buildServer.registerAgent3: org.apache.xmlrpc.XmlRpcException: java.lang.RuntimeException: org.jdom.input.JDOMParseException: Ошибка в строке 28: структуры документа XML должны начинаться и заканчиваться в пределах одной и той же сущности. 
    jetbrains.buildServer.xmlrpc.RemoteCallException: Вызовите http: // teamcityserver: 8080 / RPC2 buildServer.registerAgent3: org.apache.xmlrpc.XmlRpcException: java.lang.RuntimeException: org.jdom.input.JDOMParse_Exception Структуры документа должны начинаться и заканчиваться в одном и том же объекте.
      at jetbrains.buildServer.xmlrpc.AbstractXmlRpcTarget.call(AbstractXmlRpcTarget.java:94) по адресу jetbrains.buildServer.agent.impl.ServerXmlRpcProxy.registerAgent3(ServerXmlRpcProxy.javaildg.InglIglImplImpBerg.Ru.Imp_BB).java:776) в jetbrains.buildServer.agent.impl.BuildAgentImpl.registerOnBuildServer(BuildAgentImpl.java:748) в jetbrains.buildServer.agent.impl.ServerMonitor.run(ServerMonitor.java:71) вызвано xmlrpc.XmlRpcException: java.lang.RuntimeException: org.jdom.input.JDOMParseException: ошибка в строке 28: структуры документа XML должны начинаться и заканчиваться в пределах одной и той же сущности. на org.apache.xmlrpc.XmlRpcClientResponseProcessor.decodeException(XmlRpcClientResponseProcessor.java:104) в org.apache.xmlrpc.XmlRpcClientResponseProcessor.decodeResponse(XmlRpcClientResponseProcessor.java:71) в org.apache.xmlrpc.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:73) в org.apache.xmlrpc.TCXmlRpcClient$1.execute(TCXmlRpcClient.java:89) в org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:194) в org.apache.xmlrclient Xxp.client.Xlip.lib:185) по адресу org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:178) по адресу jetbrains.buildServer.xmlrpc.impl.CommonsXmlRpcTargetImpl$1.execute(CommonsXmlRpcTargetxp.tjp.tb.tc.tc.tx.tx.tx.tx.tb.tx.tb.tx.tx.tb.tx.tx.tx.tx.tx.tx.tx.tb). (AbstractXmlRpcTarget.java:84)
      ... еще 4 [2013-04-03 09:05:09,878]   WARN - buildServer.AGENT.registration - Вызовите http: // teamcityserver: 8080 / RPC2 buildServer.registerAgent3: org.apache. xmlrpc.XmlRpcException: java.lang.RuntimeException: org.jdom.input.JDOMParseException: ошибка в строке 2 8: структуры документа XML должны начинаться и заканчиваться в одной и той же сущности. 
    [2013-04-03 09:05:09,878] ПРЕДУПРЕЖДЕНИЕ - buildServer.AGENT.registration - Возможно, соединение с сервером TeamCity потеряно. Буду пытаться его восстановить. За подробностями обращайтесь к logs/teamcity-agent.log (если только вы не используете пользовательские логи). 

Это рассматриваемый xml согласно журналам с дополнительной отладкой xmlrpc:

<?xml version="1.0"?><methodCall><methodName>buildServer.registerAgent3</methodName><params><param><value><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<agentDetails agentName="aaronhbox_0" agentPort="9090" authToken="" osName="Linux, version 3.5.0-17-generic">
  <alternativeAddresses>
    <address>10.2.1.232</address>
    <address>192.168.225.1</address>
    <address>192.168.80.1</address>
  </alternativeAddresses>
  <availableRunners>
    <runner runType="Ant" />
    <runner runType="Duplicator" />
    <runner runType="gradle-runner" />
    <runner runType="Inspection" />
    <runner runType="Ipr" />
    <runner runType="JPS" />
    <runner runType="Maven2" />
    <runner runType="rake-runner" />
    <runner runType="simpleRunner" />
  </availableRunners>
  <availableVcs>
    <vcs name="perforce" />
    <vcs name="mercurial" />
    <vcs name="jetbrains.git" />
    <vcs name="svn" />
    <vcs name="cvs" />
  </availableVcs>
  <buildParameters>
    <param name="env.COLORTERM" value="gnome-terminal" />
    <param name="env.COMP_WORDBREAKS"><![CDATA["'><;|]]></value></param></params></methodCall> 

Только однажды я смог перезапустить агент и снова подключить его правильно. Как правило, я могу установить его, запустить его один раз, а затем перезапустить, что дает эту ошибку. Есть идеи?

1 ответ

Решение

Похоже, форматирование COMP_WORDBREAKS Переменная окружения связывалась со структурой xml и не позволяла полностью сгенерировать сообщение запроса xml.

COMP_WORDBREAKS значение на моей машине "'><;|&(:, Размещение следующей строки в файле buildAgent.properties решило эту проблему и позволило агенту правильно зарегистрироваться.

env.COMP_WORDBREAKS=

Я не вижу никаких побочных эффектов от внесения этого изменения; агент теперь, кажется, ведет себя правильно.

Другие вопросы по тегам