mesosphere / marathon-lb

Marathon-lb is a service discovery & load balancing tool for DC/OS
Apache License 2.0
449 stars 300 forks source link

marathon-lb causes an exception when using COMMAND as health check protocol #62

Closed bodiug closed 8 years ago

bodiug commented 8 years ago

It looks like marathon-lb is breaking when you use COMMAND as a health check protocol... See below for the error marathon-lb is throwing:

marathon-lb: Reconnecting...
marathon-lb: setting default value for HAPROXY_HEAD
marathon-lb: setting default value for HAPROXY_HTTP_FRONTEND_HEAD
marathon-lb: setting default value for HAPROXY_HTTP_FRONTEND_APPID_HEAD
marathon-lb: setting default value for HAPROXY_HTTPS_FRONTEND_HEAD
marathon-lb: setting default value for HAPROXY_FRONTEND_HEAD
marathon-lb: setting default value for HAPROXY_BACKEND_REDIRECT_HTTP_TO_HTTPS
marathon-lb: setting default value for HAPROXY_BACKEND_HEAD
marathon-lb: setting default value for HAPROXY_HTTP_FRONTEND_ACL
marathon-lb: setting default value for HAPROXY_HTTP_FRONTEND_APPID_ACL
marathon-lb: setting default value for HAPROXY_HTTPS_FRONTEND_ACL
marathon-lb: setting default value for HAPROXY_BACKEND_HTTP_OPTIONS
marathon-lb: setting default value for HAPROXY_BACKEND_HTTP_HEALTHCHECK_OPTIONS
marathon-lb: setting default value for HAPROXY_BACKEND_TCP_HEALTHCHECK_OPTIONS
marathon-lb: setting default value for HAPROXY_BACKEND_STICKY_OPTIONS
marathon-lb: setting default value for HAPROXY_BACKEND_SERVER_OPTIONS
marathon-lb: setting default value for HAPROXY_BACKEND_SERVER_HTTP_HEALTHCHECK_OPTIONS
marathon-lb: setting default value for HAPROXY_BACKEND_SERVER_TCP_HEALTHCHECK_OPTIONS
marathon-lb: setting default value for HAPROXY_FRONTEND_BACKEND_GLUE
marathon-lb: fetching apps
marathon-lb: GET http://tst-marathon-app.service.ams4.consul:8080/v2/apps?embed=apps.tasks
marathon-lb: got apps ['/stretch', '/tst-foo-app', '/tst-logredis', '/tst-innogate-app-mark', '/mesos-consul']
marathon-lb: Caught exception
Traceback (most recent call last):
  File "/marathon-lb/marathon_lb.py", line 1163, in <module>
    args.ssl_certs)
  File "/marathon-lb/marathon_lb.py", line 1083, in process_sse_events
    ssl_certs)
  File "/marathon-lb/marathon_lb.py", line 949, in __init__
    self.reset_from_tasks()
  File "/marathon-lb/marathon_lb.py", line 954, in reset_from_tasks
    self.__apps = get_apps(self.__marathon)
  File "/marathon-lb/marathon_lb.py", line 876, in get_apps
    appId, servicePort, get_health_check(app, i))
  File "/marathon-lb/marathon_lb.py", line 850, in get_health_check
    if check['portIndex'] == portIndex:
KeyError: 'portIndex'

Funny thing is, there are no HAPROXY labels specified when launching this task with Marathon.

wleese commented 8 years ago

+1

brndnmtthws commented 8 years ago

This was fixed in #45.