{"action":"created","issue":{"url":"https://api.github.com/repos/rabbitmq/rabbitmq-mqtt/issues/91","repository_url":"https://api.github.com/repos/rabbitmq/rabbitmq-mqtt","labels_url":"https://api.github.com/repos/rabbitmq/rabbitmq-mqtt/issues/91/labels{/name}","comments_url":"https://api.github.com/repos/rabbitmq/rabbitmq-mqtt/issues/91/comments","events_url":"https://api.github.com/repos/rabbitmq/rabbitmq-mqtt/issues/91/events","html_url":"https://github.com/rabbitmq/rabbitmq-mqtt/issues/91","id":167712468,"number":91,"title":"Client ID tracking is node-local","user":{"login":"dcovello","id":14099354,"avatar_url":"https://avatars.githubusercontent.com/u/14099354?v=3","gravatar_id":"","url":"https://api.github.com/users/dcovello","html_url":"https://github.com/dcovello","followers_url":"https://api.github.com/users/dcovello/followers","following_url":"https://api.github.com/users/dcovello/following{/other_user}","gists_url":"https://api.github.com/users/dcovello/gists{/gist_id}","starred_url":"https://api.github.com/users/dcovello/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcovello/subscriptions","organizations_url":"https://api.github.com/users/dcovello/orgs","repos_url":"https://api.github.com/users/dcovello/repos","events_url":"https://api.github.com/users/dcovello/events{/privacy}","received_events_url":"https://api.github.com/users/dcovello/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-07-26T21:09:10Z","updated_at":"2016-07-27T07:14:25Z","closed_at":null,"body":"**Description of Issue**\r\nIt looks like RabbitMQ MQTTT brokers will properly handle multiple mqtt connections with duplicate client id's by disconnecting the older connection, establishing the newer one and logging the following message :\r\n\r\n> MQTT disconnecting duplicate client id \"\"\r\n\r\n\r\n_My current RabbitMQ setup involves mosquitto MQTT clients connecting to a HAProxy Loadbalancer which balances connections between the RabbitMQ-MQTT brokers on a rabbitmq cluster._ \r\n\r\n\r\nHowever, it does not seem to be disconnecting duplicate client ID's across a clustered RabbitMQ setup. I am currently able to connect multiple mqtt clients with the same client ID to a rabbitMQ Cluster as long as they are not connected to the same node.\r\n\r\nThis is currently a problem in my scenario where my mosquitto clients consistently experience unstable network conditions which will cause them to lose internet connection and reconnect later on with the same client ID. If this reconnection occurs within the keepalive interval and is balanced to a different rabbitmq node I will have two connections with same client ID existing until the keepalive interval expires and kills the initial connection.\r\n\r\nDoing some research into this issue I found the following chat from 2014/15 which describes someone else experiencing this exact scenario :\r\nhttps://groups.google.com/forum/#!topic/rabbitmq-users/ecLWQhHBg1g\r\n\r\nHowever following up on Michael Klishins final response I looked through the changelog and the rabbitmq issue history and was not able to find any documentation referencing this issue.  I then recreated the scenario myself with a test environment using the versions listed below. \r\n\r\nWas the issue fixed somewhere that I somehow overlooked in the newer versions of rabbitmq?\r\n\r\n**Versions**\r\nHA-Proxy version 1.5.14 2015/07/02\r\nMosquitto 1.4.9\r\nRabbitMQ 3.5.6\r\nErlang 17.5\r\n\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/rabbitmq/rabbitmq-mqtt/issues/comments/235505376","html_url":"https://github.com/rabbitmq/rabbitmq-mqtt/issues/91#issuecomment-235505376","issue_url":"https://api.github.com/repos/rabbitmq/rabbitmq-mqtt/issues/91","id":235505376,"user":{"login":"michaelklishin","id":1090,"avatar_url":"https://avatars.githubusercontent.com/u/1090?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelklishin","html_url":"https://github.com/michaelklishin","followers_url":"https://api.github.com/users/michaelklishin/followers","following_url":"https://api.github.com/users/michaelklishin/following{/other_user}","gists_url":"https://api.github.com/users/michaelklishin/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelklishin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelklishin/subscriptions","organizations_url":"https://api.github.com/users/michaelklishin/orgs","repos_url":"https://api.github.com/users/michaelklishin/repos","events_url":"https://api.github.com/users/michaelklishin/events{/privacy}","received_events_url":"https://api.github.com/users/michaelklishin/received_events","type":"User","site_admin":false},"created_at":"2016-07-27T07:14:25Z","updated_at":"2016-07-27T07:14:25Z","body":"Correct, client IDs are checked from a node-local source. https://github.com/rabbitmq/rabbitmq-server/issues/500 will make tracking cluster-wide much easier."}}
{"actor":{"display_login":"michaelklishin"}}