【问题标题】:Meld error with Datastax Enterprise与 Datastax Enterprise 合并错误
【发布时间】:2016-11-05 19:57:55
【问题描述】:

使用生命周期管理器配置 DSE 集群总是失败。正确安装主节点(也是运行 OpsCenter 的一个)。其他每个节点都无法执行安装(也是配置)任务。已仔细检查 SSH 凭据和端口。关于如何进一步调查和解决问题的任何想法都会很棒。

请原谅篇幅过长 - 试图提供所有相关信息。

Ubuntu 14.04.4, JRE:1.8.0.91, DSE 5.0.0

工作事件:

   ...
    "results": [
        {
            "event-subtype": "start",
            "event-type": "milestone",
            "message": "job started...",
            ...
        },
        {
            "event-subtype": "invocation",
            "event-type": "shell-command",
            "message": "Invoked command: if [ -x $(which yum) ] && [ -f /etc/redhat-release -o -f /etc/SuSE-release ]; then echo -n yum; elif [ -x $(which apt-get) ]; then echo -n apt; fi"
            ...
        },
        {
            "event-subtype": "uploaded-facts",
            "event-type": "milestone",
            "message": "Uploaded facts to OpsCenter server",
            ...
        },
        {
            "event-subtype": "meld-error",
            "event-type": "error",
            "message": "Unexpected error executing meld",
            ...
        },
        {
            "event-subtype": "MeldError",
            "event-type": "error",
            "message": "Meld failed on: name=\"NODE-2\" ssh-management-address=\"<IP>\" node-id=\"<node-id>\" job-id=\"<job-id>\" stdout=\"\r\n\" stderr=\"\"",
            ...
        }
    ]

opscenterd.log

/var/log/opscenter/opscenterd.log-2016-07-02 16:34:16,848 [opscenterd]  INFO: Install job started for node name="NODE-2" ssh-management-address="<IP>" node-id="<node-id>" (async-thread-macro-53)
/var/log/opscenter/opscenterd.log-2016-07-02 16:34:16,850 [opscenterd]  INFO: using ssh-private-key (async-thread-macro-53)
/var/log/opscenter/opscenterd.log-2016-07-02 16:34:18,478 [opscenterd]  INFO: Received milestone from node name="NODE-2" ssh-management-address="<IP>" node-id="<node-id>" message="Uploaded facts to OpsCenter server" job-id="a630c081-6ac1-4b00-ac08-18fef320e0d5" (MainThread)
/var/log/opscenter/opscenterd.log:2016-07-02 16:34:18,675 [opscenterd] ERROR: Received error from node event-subtype="meld-error" job-id="a630c081-6ac1-4b00-ac08-18fef320e0d5" name="NODE-2" traceback="Traceback (most recent call last):
/var/log/opscenter/opscenterd.log:  File \"meld.py\", line 3313, in run
/var/log/opscenter/opscenterd.log-    rc = engine.go()
/var/log/opscenter/opscenterd.log:  File \"meld.py\", line 2991, in go
/var/log/opscenter/opscenterd.log-    self.file_manager.get_config_files()
/var/log/opscenter/opscenterd.log:  File \"meld.py\", line 1280, in get_config_files
/var/log/opscenter/opscenterd.log-    {\"accept\": \"application/json\"})
/var/log/opscenter/opscenterd.log:  File \"meld.py\", line 598, in get
/var/log/opscenter/opscenterd.log-    return json.loads(response.read())
/var/log/opscenter/opscenterd.log-  File \"/usr/lib/python2.7/socket.py\", line 351, in read
/var/log/opscenter/opscenterd.log-    data = self._sock.recv(rbufsize)
/var/log/opscenter/opscenterd.log-  File \"/usr/lib/python2.7/httplib.py\", line 549, in read
/var/log/opscenter/opscenterd.log-    return self._read_chunked(amt)
/var/log/opscenter/opscenterd.log-  File \"/usr/lib/python2.7/httplib.py\", line 609, in _read_chunked
/var/log/opscenter/opscenterd.log-    value.append(self._safe_read(amt))
/var/log/opscenter/opscenterd.log-  File \"/usr/lib/python2.7/httplib.py\", line 666, in _safe_read
/var/log/opscenter/opscenterd.log-    raise IncompleteRead(''.join(s), amt)
/var/log/opscenter/opscenterd.log:IncompleteRead: IncompleteRead(4153 bytes read, 4039 more expected)" ssh-management-address="<IP>" node-id="<node-id>" event-type="error" message="Unexpected error executing meld" (MainThread)
/var/log/opscenter/opscenterd.log-2016-07-02 16:34:18,892 [opscenterd] ERROR: Install job a630c081-6ac1-4b00-ac08-18fef320e0d5 failed! (async-thread-macro-54)
/var/log/opscenter/opscenterd.log:2016-07-02 16:34:19,105 [opscenterd] ERROR: Meld failed on: name="NODE-2" ssh-management-address="<IP>" node-id="<node-id>" job-id="a630c081-6ac1-4b00-ac08-18fef320e0d5" stdout="
/var/log/opscenter/opscenterd.log-" stderr="" (async-thread-macro-53)

谢谢

编辑:捕获 NODE2 和 master 之间的 HTTP 流量。传输配置文件时发生错误。其中之一由于某种原因没有完全转移。 json 看起来很合理,直到出现一些乱码。

 {"filename": "dse.yaml", "contents": {"internode_messaging_options": {"client_worker_threads": 16, "port": 8609, "server_worker_threads": 16, "server_acceptor_thread

Yvatv+~UK{.kMI4^QOrqQTDX_3"DPm,v!"H&M$!1M7

LRYCs{l>-df;cj

W6C9dq

配置文件有效并且在主节点上工作。只有复制失败。

【问题讨论】:

  • 这个未解决的问题可能与此相关:stackoverflow.com/questions/38153032
  • 请确认您可以使用提供给 LCM 的 IP 和凭据登录到节点 2
  • 是的,已确认。 LCM 也可以登录,通过 ssh 存放一个 meld.py。然后,meld.py 通过 HTTP 传输一些配置文件,但传输失败。请查看编辑。
  • 考虑使用 OpsCenter 标签和 datastax 标签来标记未来的 opscenter/LCM 问题,因为一些 OpsCenter 开发人员会密切关注该标签。我对您的帖子进行了建议的编辑,以在此处添加该标签。
  • 当然,还没有意识到它的存在

标签: datastax datastax-enterprise opscenter datastax-startup


【解决方案1】:

此处为 OpsCenter LCM 开发人员。您的问题是由 LCM 已知问题列表中的 OPSC-8851 引起的:http://docs.datastax.com/en/opscenter/6.0/opsc/release_notes/opscReleaseNotes600.html

这仅在某些网络条件下触发,并且被发现距离太近而无法在 6.0.0 中修复。虽然这是一个高优先级,但很快将在后续版本中修复。不幸的是,我不认为你可以做任何事情来解决这个问题。如果您是 DataStax 客户,您可以联系支持人员并可能立即获得补丁来解决此问题...否则我唯一能建议的就是观看即将发布的发行说明。

编辑:我还应该注意,在我们的测试中,问题是间歇性的。 LCM 的设计目的是让您可以安全地重新运行失败的作业(也就是幂等),因此除了最极端的情况外,您也可以通过重新运行您的作业来解决这个问题。

【讨论】:

  • 感谢您的回复。这看起来很合理。将等待下一个错误修复版本确认。
  • 重新运行作业似乎并不能解决我的问题 - 到现在已经尝试重新运行几天了 :) 那么可能是一个不同的问题。
  • 更有可能是同一问题的更极端情况。如前所述,它与网络状况有关,并且您的连接可能会导致病态行为。对于新功能的介绍体验不佳,我们深表歉意。这是一个丑陋的错误。我希望您在解决此问题后再试一次。
  • 我会的。我对 4.8.x 有过很好的体验,并且非常期待对其进行扩展。感谢您提供出色的产品。
【解决方案2】:

您可以为监听地址指定私有 IP,为广播地址指定 0.0.0.0,LCM 应该能够正确配置。

【讨论】:

  • 听起来很有趣。您能否添加更多信息 - 我在哪里让他更改 - C* yaml、opscenter 设置或 LCM 设置?我对工具集不太熟悉。
  • 任何事情都值得一试,但我相当确定错误的 IP 地址设置不会导致 IncompleteRead 错误。您会看到 DSE 无法启动,但此错误是由 meld 未能成功下载某些内容引起的......各种 DSE ip 设置不适用于那里(除了 ssh-management-address 足够正确以 ssh 进入并启动融合)。
猜你喜欢
  • 2012-10-04
  • 1970-01-01
  • 2014-08-17
  • 2023-03-28
  • 2016-03-22
  • 2017-05-09
  • 2023-03-20
  • 2015-08-25
  • 2014-09-12
相关资源
最近更新 更多