{"action":"opened","issue":{"url":"https://api.github.com/repos/crossbario/crossbar/issues/499","labels_url":"https://api.github.com/repos/crossbario/crossbar/issues/499/labels{/name}","comments_url":"https://api.github.com/repos/crossbario/crossbar/issues/499/comments","events_url":"https://api.github.com/repos/crossbario/crossbar/issues/499/events","html_url":"https://github.com/crossbario/crossbar/issues/499","id":114479392,"number":499,"title":"Dangling wamp sessions","user":{"login":"rafzi","id":7032201,"avatar_url":"https://avatars.githubusercontent.com/u/7032201?v=3","gravatar_id":"","url":"https://api.github.com/users/rafzi","html_url":"https://github.com/rafzi","followers_url":"https://api.github.com/users/rafzi/followers","following_url":"https://api.github.com/users/rafzi/following{/other_user}","gists_url":"https://api.github.com/users/rafzi/gists{/gist_id}","starred_url":"https://api.github.com/users/rafzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rafzi/subscriptions","organizations_url":"https://api.github.com/users/rafzi/orgs","repos_url":"https://api.github.com/users/rafzi/repos","events_url":"https://api.github.com/users/rafzi/events{/privacy}","received_events_url":"https://api.github.com/users/rafzi/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-11-01T16:39:04Z","updated_at":"2015-11-01T16:39:04Z","closed_at":null,"body":"In a certain case crossbar will keep WAMP sessions forever. This is while using the autoping feature.\r\n\r\n- WAMP client does not send GOODBYE.\r\n- WAMP client sends websocket shutdown: Frame with opcode = close. (status = 1000)\r\n- The connection is lost. Crossbar will not receive a RST. This can happen on application crashes or problems on the physical connection.\r\n\r\nCrossbar does not send any more autopings, which makes sense because the autopings are on websocket level and the socket is closed.\r\n\r\nBut the socket and WAMP session stay alive which is bad in a production environment. Especially if you implement some quotas based on number of sessions (session.on_join, session.on_leave)."}}