ceph / ceph-medic

find common issues in ceph clusters
MIT License
22 stars 18 forks source link

Collecting ceph socket info breaks when connection is refused #132

Closed alfredodeza closed 5 years ago

alfredodeza commented 5 years ago
  File "/home/alfredo/.virtualenvs/tmp/bin/ceph-medic", line 7, in <module>
    exec(compile(f.read(), __file__, 'exec'))
  File "/tmp/ceph-medic/bin/ceph-medic", line 6, in <module>
    main.Medic()
  File "/tmp/ceph-medic/ceph_medic/main.py", line 45, in __init__
    self.main(argv)
  File "/tmp/ceph-medic/ceph_medic/decorators.py", line 46, in newfunc
    return f(*a, **kw)
  File "/tmp/ceph-medic/ceph_medic/main.py", line 145, in main
    parser.dispatch()
  File "/home/alfredo/.virtualenvs/tmp/lib/python3.6/site-packages/tambo-0.4.0-py3.6.egg/tambo/dispatcher.py", line 21, in dispatch
    result = instance.main()
  File "/tmp/ceph-medic/ceph_medic/check.py", line 82, in main
    collector.collect()
  File "/tmp/ceph-medic/ceph_medic/collector.py", line 196, in collect
    metadata[node_type][hostname] = get_node_metadata(conn, hostname, cluster_nodes)
  File "/tmp/ceph-medic/ceph_medic/collector.py", line 141, in get_node_metadata
    node_metadata['ceph']['sockets'] = collect_socket_info(conn, node_metadata)
  File "/tmp/ceph-medic/ceph_medic/collector.py", line 278, in collect_socket_info
    result[socket]['config'] = remote.commands.daemon_socket_config(conn, socket)
  File "/tmp/ceph-medic/ceph_medic/remote/commands.py", line 61, in daemon_socket_config
    result = json.loads(output[0])
IndexError: list index out of range

What needs to happen here is to guard against this problem and a non-zero exit status on the ceph_socket_version function.

alfredodeza commented 5 years ago

Same thing for the daemon_socket_config function, it isn't guarding against a non-zero exit status