{"action":"created","issue":{"url":"https://api.github.com/repos/matrix-org/synapse/issues/2335","repository_url":"https://api.github.com/repos/matrix-org/synapse","labels_url":"https://api.github.com/repos/matrix-org/synapse/issues/2335/labels{/name}","comments_url":"https://api.github.com/repos/matrix-org/synapse/issues/2335/comments","events_url":"https://api.github.com/repos/matrix-org/synapse/issues/2335/events","html_url":"https://github.com/matrix-org/synapse/issues/2335","id":240677097,"number":2335,"title":"When a client times itself out, synapse should stop processing the request (or intelligently continue)","user":{"login":"turt2live","id":1190097,"avatar_url":"https://avatars2.githubusercontent.com/u/1190097?v=4","gravatar_id":"","url":"https://api.github.com/users/turt2live","html_url":"https://github.com/turt2live","followers_url":"https://api.github.com/users/turt2live/followers","following_url":"https://api.github.com/users/turt2live/following{/other_user}","gists_url":"https://api.github.com/users/turt2live/gists{/gist_id}","starred_url":"https://api.github.com/users/turt2live/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/turt2live/subscriptions","organizations_url":"https://api.github.com/users/turt2live/orgs","repos_url":"https://api.github.com/users/turt2live/repos","events_url":"https://api.github.com/users/turt2live/events{/privacy}","received_events_url":"https://api.github.com/users/turt2live/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-07-05T14:50:35Z","updated_at":"2018-03-22T22:02:17Z","closed_at":"2018-03-22T22:02:17Z","author_association":"CONTRIBUTOR","body":"Sample case: riot-android stacks up initial sync requests due to client side timeouts (https://github.com/vector-im/riot-android/issues/1413). This eventually leads to a large number of ongoing calculations that have the potential to bring down the server due to resources (RAM, mostly).\r\n\r\nInstead of recalculating everything on every new request, synapse should stop processing the canceled request (including postgres queries). Ideally however, instead of canceling the request it should continue processing the request but not start new calculations when the same request comes in.\r\n\r\nFor example: \r\n* Client initial syncs\r\n* Client times itself out\r\n* Client initial syncs again - Don't start fresh, just block on the first request and wait for it to finish"},"comment":{"url":"https://api.github.com/repos/matrix-org/synapse/issues/comments/375472187","html_url":"https://github.com/matrix-org/synapse/issues/2335#issuecomment-375472187","issue_url":"https://api.github.com/repos/matrix-org/synapse/issues/2335","id":375472187,"user":{"login":"turt2live","id":1190097,"avatar_url":"https://avatars2.githubusercontent.com/u/1190097?v=4","gravatar_id":"","url":"https://api.github.com/users/turt2live","html_url":"https://github.com/turt2live","followers_url":"https://api.github.com/users/turt2live/followers","following_url":"https://api.github.com/users/turt2live/following{/other_user}","gists_url":"https://api.github.com/users/turt2live/gists{/gist_id}","starred_url":"https://api.github.com/users/turt2live/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/turt2live/subscriptions","organizations_url":"https://api.github.com/users/turt2live/orgs","repos_url":"https://api.github.com/users/turt2live/repos","events_url":"https://api.github.com/users/turt2live/events{/privacy}","received_events_url":"https://api.github.com/users/turt2live/received_events","type":"User","site_admin":false},"created_at":"2018-03-22T22:02:17Z","updated_at":"2018-03-22T22:02:17Z","author_association":"CONTRIBUTOR","body":"Synapse does this already as far as I can tell, so something else was going wrong at the time. If it happens again, I'll open a new issue with more information."}}
{"actor":{"display_login":"turt2live"}}