summary refs log tree commit diff
path: root/synapse (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #2115 from matrix-org/erikj/dedupe_federation_replErik Johnston2017-04-127-130/+203
|\ | | | | Reduce federation replication traffic
| * CommentErik Johnston2017-04-121-2/+1
| |
| * Reuse get_interested_partiesErik Johnston2017-04-122-19/+8
| |
| * Move get_presence_list_* to SlaveStoreErik Johnston2017-04-113-24/+13
| |
| * CommentErik Johnston2017-04-112-1/+9
| |
| * Move get_interested_partiesErik Johnston2017-04-112-38/+36
| |
| * CommentsErik Johnston2017-04-112-9/+10
| |
| * Move get_interested_remotes back to presence handlerErik Johnston2017-04-112-38/+55
| |
| * CommentsErik Johnston2017-04-111-1/+14
| |
| * Reduce federation presence replication trafficErik Johnston2017-04-106-80/+139
| | | | | | | | | | | | | | | | This is mainly done by moving the calculation of where to send presence updates from the presence handler to the transaction queue, so we only need to send the presence event (and not the destinations) across the replication connection. Before we were duplicating by sending the full state across once per destination.
* | Merge pull request #2121 from matrix-org/paul/sent-transactions-metricPaul Evans2017-04-121-0/+3
|\ \ | | | | | | Add a counter metric for successfully-sent transactions
| * | Add a counter metric for successfully-sent transactionsPaul "LeoNerd" Evans2017-04-111-0/+3
| | |
* | | Merge pull request #2116 from matrix-org/erikj/dedupe_federation_repl2Erik Johnston2017-04-121-6/+24
|\ \ \ | | | | | | | | Dedupe KeyedEdu and Devices federation repl traffic
| * | | Add some commentsErik Johnston2017-04-121-0/+15
| | | |
| * | | Use generatorsErik Johnston2017-04-101-2/+2
| | | |
| * | | Dedupe KeyedEdu and Devices federation repl trafficErik Johnston2017-04-101-6/+9
| | |/ | |/|
* | | Merge pull request #2117 from matrix-org/erikj/remove_http_replicationErik Johnston2017-04-125-753/+0
|\ \ \ | | | | | | | | Remove HTTP replication APIs
| * | | Remove HTTP replication APIsErik Johnston2017-04-115-753/+0
| |/ /
* | | Merge pull request #2118 from matrix-org/erikj/no_devicesErik Johnston2017-04-121-0/+3
|\ \ \ | |_|/ |/| | Fix getting latest device IP for user with no devices
| * | Bail on where clause insteadErik Johnston2017-04-111-3/+4
| | |
| * | Don't bother with outer check for nowErik Johnston2017-04-111-3/+0
| | |
| * | Fix getting latest device IP for user with no devicesErik Johnston2017-04-111-0/+5
| | |
* | | Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2017-04-112-5/+5
|\ \ \ | |/ / |/| |
| * | When we do an invite rejection, save the signed leave event to the dbRichard van der Hoff2017-04-071-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During a rejection of an invite received over federation, we ask a remote server to make us a `leave` event, then sign it, then send that with `send_leave`. We were saving the *unsigned* version of the event (which has a different event id to the signed version) to our db (and sending it to the clients), whereas other servers in the room will have seen the *signed* version. We're not aware of any actual problems that caused, except that it makes the database confusing to look at and generally leaves the room in a weird state.
| * | Bump version and changelogErik Johnston2017-04-071-1/+1
| | |
* | | trust a hypothetical future riot.im ISMatthew Hodgson2017-04-101-0/+1
| |/ |/|
* | TypoErik Johnston2017-04-101-1/+1
| |
* | Merge pull request #2102 from DanielDent/add-auth-emailDavid Baker2017-04-102-1/+21
|\ \ | | | | | | Support authenticated SMTP
| * | Support authenticated SMTPDaniel Dent2017-04-052-1/+21
| | | | | | | | | | | | | | | | | | Closes (SYN-714) #1385 Signed-off-by: Daniel Dent <matrixcontrib@contactdaniel.net>
* | | Merge pull request #2109 from matrix-org/erikj/send_queue_fixErik Johnston2017-04-103-92/+245
|\ \ \ | | | | | | | | Fix up federation SendQueue and document types
| * | | Rename variableErik Johnston2017-04-101-7/+7
| | | |
| * | | Revert to sending the same data type as beforeErik Johnston2017-04-101-2/+2
| | | |
| * | | Change nameErik Johnston2017-04-101-2/+2
| | | |
| * | | CommentsErik Johnston2017-04-102-6/+8
| | | |
| * | | CommentErik Johnston2017-04-071-2/+15
| | | |
| * | | Add loggingErik Johnston2017-04-071-0/+8
| | | |
| * | | Fix up federation SendQueue and document typesErik Johnston2017-04-072-91/+221
| | | |
* | | | Up replication ping timeoutErik Johnston2017-04-101-2/+4
| | | |
* | | | CommentErik Johnston2017-04-071-0/+9
| | | |
* | | | Speed up get_current_state_idsErik Johnston2017-04-071-10/+17
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using _simple_select_list is fairly expensive for functions that return a lot of rows and/or get called a lot. (This is because it carefully constructs a list of dicts). get_current_state_ids gets called a lot on startup and e.g. when the IRC bridge decided to send tonnes of joins/leaves (as it invalidates the cache). We therefore replace it with a custon txn function that builds up the final result dict without building up and intermediate representation.
* | | Merge pull request #2107 from HarHarLinks/patch-1Erik Johnston2017-04-071-1/+1
|\ \ \ | | | | | | | | fix typo in synctl help
| * | | fix typo in synctl helpKim Brose2017-04-061-1/+1
| | | |
* | | | Merge pull request #2103 from matrix-org/erikj/no-double-encodeErik Johnston2017-04-075-47/+88
|\ \ \ \ | | | | | | | | | | Don't double encode replication data
| * | | | Document types of the replication streamsErik Johnston2017-04-061-28/+76
| | | | |
| * | | | Don't double json encode typing replication dataErik Johnston2017-04-052-6/+2
| | | | |
| * | | | Don't double json encode federation replication dataErik Johnston2017-04-052-13/+10
| | | | |
* | | | | Use iteritemsErik Johnston2017-04-061-2/+2
| | | | |
* | | | | Merge pull request #2106 from matrix-org/erikj/reduce_user_syncErik Johnston2017-04-061-4/+43
|\ \ \ \ \ | | | | | | | | | | | | Reduce rate of USER_SYNC repl commands
| * | | | | CommentErik Johnston2017-04-061-1/+1
| | | | | |
| * | | | | DocsErik Johnston2017-04-061-0/+7
| | | | | |
| * | | | | Don't immediately notify the master about users whose syncs have gone awayErik Johnston2017-04-051-4/+36
| |/ / / /
* | | | | Fix incorrect type when using InvalidateCacheCommandErik Johnston2017-04-061-1/+1
| | | | |
* | | | | Add log linesErik Johnston2017-04-051-1/+2
| | | | |
* | | | | Rearrange metricsErik Johnston2017-04-052-19/+31
| | | | |
* | | | | Fix typoErik Johnston2017-04-051-2/+2
| | | | |
* | | | | Fixup some metrics for tcp replErik Johnston2017-04-052-0/+19
|/ / / /
* | | | Merge pull request #2097 from matrix-org/erikj/repl_tcp_clientErik Johnston2017-04-0520-574/+580
|\ \ \ \ | | | | | | | | | | Move to using TCP replication
| * | | | Add commentErik Johnston2017-04-041-0/+5
| | | | |
| * | | | Add the appropriate amount of preserve_fnErik Johnston2017-04-044-17/+19
| | | | |
| * | | | Remove unused worker config optionErik Johnston2017-04-041-1/+0
| | | | |
| * | | | Shuffle and comment synchrotron presenceErik Johnston2017-04-041-9/+11
| | | | |
| * | | | Move where we ack federationErik Johnston2017-04-041-7/+16
| | | | |
| * | | | Update all the workers and master to use TCP replicationErik Johnston2017-04-039-401/+259
| | | | |
| * | | | Change slave storage to use new replication interfaceErik Johnston2017-04-0310-171/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As the TCP replication uses a slightly different API and streams than the HTTP replication. This breaks HTTP replication.
| * | | | Add basic replication client handler and factoryErik Johnston2017-04-031-0/+196
| | | | |
* | | | | Deduplicate new deviceinbox rows for replicationErik Johnston2017-04-041-4/+7
| |_|/ / |/| | |
* | | | Merge pull request #2098 from matrix-org/erikj/repl_tcp_fixErik Johnston2017-04-043-6/+15
|\ \ \ \ | | | | | | | | | | Advance replication streams even if nothing is listening
| * | | | Advance replication streams even if nothing is listeningErik Johnston2017-04-043-6/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise the streams don't advance and steadily fall behind, so when a worker does connect either a) they'll be streamed lots of old updates or b) the connection will fail as the streams are too far behind.
* | | | | Fiddle tcp replication loggingErik Johnston2017-04-041-2/+2
|/ / / /
* | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2017-04-0417-152/+228
|\ \ \ \ | |/ / / |/| | | | | | | erikj/repl_tcp_server
| * | | Merge pull request #2095 from matrix-org/rav/cull_log_preservesRichard van der Hoff2017-04-034-43/+31
| |\ \ \ | | | | | | | | | | Cull spurious PreserveLoggingContexts
| | * | | Remove spurious yieldRichard van der Hoff2017-04-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | In `MessageHandler`, remove `yield` on call to `Notifier.on_new_room_event`: it doesn't return anything anyway.
| | * | | Remove more spurious `PreserveLoggingContext`sRichard van der Hoff2017-04-031-24/+19
| | | | | | | | | | | | | | | | | | | | | | | | | Remove `PreserveLoggingContext` around calls to `Notifier.on_new_room_event`; there is no problem if the logcontext is set when calling it.
| | * | | Remove spurious PreserveLoggingContextRichard van der Hoff2017-04-031-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | In `on_new_room_event`, remove `PreserveLoggingContext` - we can call its subroutines with the logcontext set.
| | * | | preserve_fn some deferred-returning thingsRichard van der Hoff2017-04-031-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | In `Notifier._on_new_room_event`, `preserve_fn` around its subroutines which return deferreds, so that it is safe to call it with an active logcontext.
| | * | | Fix fixme in preserve_fnRichard van der Hoff2017-04-031-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | `preserve_fn` is no longer used as a decorator anywhere, so we can safely fix a fixme therein.
| | * | | Remove spurious @preserve_fn decoratorsRichard van der Hoff2017-04-031-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove `@preserve_fn` decorators on `on_new_room_event`, `_notify_pending_new_room_events`, `_on_new_room_event`, `on_new_event`, and `on_new_replication_data` - none of these functions return a deferred, and the decorator does nothing unless the wrapped function returns a deferred, so the decorator was a no-op.
| * | | | Merge remote-tracking branch 'origin/release-v0.20.0' into developRichard van der Hoff2017-04-032-5/+19
| |\ \ \ \ | | | |_|/ | | |/| |
| | * | | Accept join events from all serversRichard van der Hoff2017-04-032-5/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure that we accept join events from any server, rather than just the origin server, to make the federation join dance work correctly. (Fixes #1893).
| * | | | Merge branch 'release-v0.20.0' of github.com:matrix-org/synapse into developErik Johnston2017-04-031-1/+1
| |\| | | | | |/ / | |/| |
| | * | Bump version and changelog v0.20.0-rc1Erik Johnston2017-03-301-1/+1
| | | |
| * | | Merge pull request #2078 from APwhitehat/assertuserfriendlyErik Johnston2017-03-311-1/+2
| |\ \ \ | | | | | | | | | | add user friendly report of assertion error in synctl.py
| | * | | add user friendly report of assertion error in synctl.pyAnant Prakash2017-03-291-1/+2
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Anant Prakash <anantprakashjsr@gmail.com>
| * | | | Merge pull request #2011 from matrix-org/matthew/turn_allow_guestsErik Johnston2017-03-312-1/+12
| |\ \ \ \ | | | | | | | | | | | | add setting (on by default) to support TURN for guests
| | * | | | typoMatthew Hodgson2017-03-151-1/+1
| | | | | |
| | * | | | set default for turn_allow_guests correctlyMatthew Hodgson2017-03-151-1/+1
| | | | | |
| | * | | | add setting (on by default) to support TURN for guestsMatthew Hodgson2017-03-152-1/+12
| | | | | |
| * | | | | Merge pull request #1986 from matrix-org/matthew/enable_guest_3pErik Johnston2017-03-311-4/+4
| |\ \ \ \ \ | | | | | | | | | | | | | | enable guest access for the 3pl/3pid APIs
| | * | | | | switch to allow_guest=True for authing 3Ps as per PR feedbackMatthew Hodgson2017-03-311-0/+8
| | | | | | |
| | * | | | | enable guest access for the 3pl/3pid APIsMatthew Hodgson2017-03-121-8/+0
| | | | | | |
| * | | | | | Merge pull request #2075 from matrix-org/erikj/cache_speedErik Johnston2017-03-314-14/+45
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | Speed up cached function access
| | * | | | | | Remove unused instance variableErik Johnston2017-03-311-4/+0
| | | | | | | |
| | * | | | | | DocsErik Johnston2017-03-301-0/+5
| | | | | | | |
| | * | | | | | Revert log context changeErik Johnston2017-03-301-3/+0
| | | | | | | |
| | * | | | | | Doc new instance variablesErik Johnston2017-03-301-1/+8
| | | | | | | |
| | * | | | | | Manually calculate cache key as getcallargs is expensiveErik Johnston2017-03-301-6/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is because getcallargs recomputes the getargspec, amongst other things, which we don't need to do as its already been done
| | * | | | | | Don't convert to deferreds when not necessaryErik Johnston2017-03-305-8/+12
| | | | | | | |
| * | | | | | | Merge pull request #2076 from matrix-org/erikj/as_perfErik Johnston2017-03-311-18/+20
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Make AS's faster
| | * | | | | | | Add commentErik Johnston2017-03-291-1/+1
| | | | | | | | |
| | * | | | | | | Cache whether an AS is interested based on membersErik Johnston2017-03-281-1/+9
| | | | | | | | |
| | * | | | | | | Remove param and cast at call siteErik Johnston2017-03-281-8/+6
| | | | | | | | |
| | * | | | | | | Compile the regex's used in ASesErik Johnston2017-03-281-9/+5
| | | | | | | | |
| * | | | | | | | Speed up copy_and_replaceErik Johnston2017-03-301-3/+1
| | |_|_|_|_|/ / | |/| | | | | |
| * | | | | | | Merge pull request #2079 from matrix-org/erikj/push_regex_cacheErik Johnston2017-03-301-47/+57
| |\ \ \ \ \ \ \ | | |_|/ / / / / | |/| | | | | | Cache glob to regex at a higher level for push
| | * | | | | | Cache glob to regex at a higher level for pushErik Johnston2017-03-291-47/+57
| | | | | | | |
| * | | | | | | Fix the logcontext handling in the cache wrappers (#2077)Richard van der Hoff2017-03-302-16/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The cache wrappers had a habit of leaking the logcontext into the reactor while the lookup function was running, and then not restoring it correctly when the lookup function had completed. It's all the fault of `preserve_context_over_{fn,deferred}` which are basically a bit broken.
* | | | | | | | Always advance stream tokensErik Johnston2017-04-031-1/+4
| | | | | | | |
* | | | | | | | Use callbacks to notify tcp replication rather than deferredsErik Johnston2017-03-312-20/+12
| | | | | | | |
* | | | | | | | Add a timestamp to USER_SYNC commandErik Johnston2017-03-314-16/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This timestamp is used to indicate when the user last sync'd
* | | | | | | | Fix up presenceErik Johnston2017-03-311-1/+3
| | | | | | | |
* | | | | | | | Fix up docsErik Johnston2017-03-313-20/+4
| | | | | | | |
* | | | | | | | Remove user from process_presence when stops syncingErik Johnston2017-03-301-0/+1
| | | | | | | |
* | | | | | | | Add tcp replication listener type and hook it upErik Johnston2017-03-301-0/+11
| | | | | | | |
* | | | | | | | Add functions to presence to support remote syncsErik Johnston2017-03-301-0/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The TCP replication protocol streams deltas of who has started or stopped syncing. This is different from the HTTP API which periodically sends the full list of users who are syncing. This commit adds support for the new TCP style of sending deltas.
* | | | | | | | Add server side resource for tcp replicationErik Johnston2017-03-301-0/+300
| | | | | | | |
* | | | | | | | Initial TCP protocol implementationErik Johnston2017-03-303-0/+974
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This defines the low level TCP replication protocol
* | | | | | | | Define the various streams we will replicateErik Johnston2017-03-302-0/+423
| | | | | | | |
* | | | | | | | Make federation send queue take the current positionErik Johnston2017-03-302-16/+26
| | | | | | | |
* | | | | | | | Add a simple hook to wait for replication trafficErik Johnston2017-03-301-0/+6
| | | | | | | |
* | | | | | | | Add new storage functions for new replicationErik Johnston2017-03-305-4/+137
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new replication protocol will keep all the streams separate, rather than muxing multiple streams into one.
* | | | | | | Use txn.fetchall() so we can reuse txnErik Johnston2017-03-301-1/+1
| | | | | | |
* | | | | | | synctl.py: wait for synapse to stop before restarting (#2020)Anant Prakash2017-03-291-4/+43
|/ / / / / /
* | | | / / Increase cache size for _get_state_group_for_eventErik Johnston2017-03-291-1/+1
| |_|_|/ / |/| | | |
* | | | | Merge pull request #1849 from matrix-org/erikj/state_typoErik Johnston2017-03-291-3/+3
|\ \ \ \ \ | | | | | | | | | | | | Fix bug where current_state_events renamed to current_state_ids
| * | | | | Fix bug where current_state_events renamed to current_state_idsErik Johnston2017-01-231-3/+3
| | | | | |
* | | | | | Bail early if remote wouldn't be retried (#2064)Erik Johnston2017-03-291-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Bail early if remote wouldn't be retried * Don't always return true * Just use get_retry_limiter * Spelling
* | | | | | Merge pull request #2053 from matrix-org/erikj/e2e_one_time_upsertErik Johnston2017-03-291-9/+50
|\ \ \ \ \ \ | | | | | | | | | | | | | | Don't user upsert to persist new one time keys
| * | | | | | Decrank last commitErik Johnston2017-03-291-4/+5
| | | | | | |
| * | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2017-03-2937-588/+717
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | erikj/e2e_one_time_upsert
| * | | | | | | Correctly look up keyErik Johnston2017-03-291-6/+5
| | | | | | | |
| * | | | | | | The algorithm is part of the key idErik Johnston2017-03-281-4/+4
| | | | | | | |
| * | | | | | | Raise a more helpful exceptionErik Johnston2017-03-231-2/+4
| | | | | | | |
| * | | | | | | Don't user upsert to persist new one time keysErik Johnston2017-03-231-9/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead we no-op duplicate one time key uploads, an error if the key_id already exists but encodes a different key.
* | | | | | | | Merge pull request #2067 from matrix-org/erikj/notify_on_fedErik Johnston2017-03-291-0/+7
|\ \ \ \ \ \ \ \ | |_|/ / / / / / |/| | | | | | | Notify on new federation traffic
| * | | | | | | Notify on new federation trafficErik Johnston2017-03-271-0/+7
| | | | | | | |
* | | | | | | | Merge pull request #2063 from matrix-org/erikj/device_list_batchErik Johnston2017-03-282-0/+5
|\ \ \ \ \ \ \ \ | |_|_|_|/ / / / |/| | | | | | | Batch sending of device list pokes
| * | | | | | | Batch sending of device list pokesErik Johnston2017-03-242-0/+5
| |/ / / / / /
* | | | | | | TypoErik Johnston2017-03-271-1/+1
| | | | | | |
* | | | | | | Short circuit if all new events have same state groupErik Johnston2017-03-271-36/+51
|/ / / / / /
* | | | | | Merge pull request #2062 from matrix-org/erikj/presence_replicationErik Johnston2017-03-242-2/+3
|\ \ \ \ \ \ | | | | | | | | | | | | | | Use presence replication stream to invalidate cache
| * | | | | | Actually call invalidateErik Johnston2017-03-241-1/+1
| | | | | | |
| * | | | | | Use presence replication stream to invalidate cacheErik Johnston2017-03-242-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of using the cache invalidation replication stream to invalidate the _get_presence_cache, we can instead rely on the presence replication stream. This reduces the amount of replication traffic considerably.
* | | | | | | Merge pull request #2061 from matrix-org/erikj/add_transaction_storeErik Johnston2017-03-242-0/+4
|\| | | | | | | | | | | | | | | | | | | | Add slave transaction store to workers who send federation requests
| * | | | | | Add slave transaction storeErik Johnston2017-03-242-0/+4
| | | | | | |
* | | | | | | Merge pull request #2060 from matrix-org/erikj/cache_hosts_in_roomErik Johnston2017-03-242-2/+11
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Cache hosts in room
| * | | | | | | Cache hosts in roomErik Johnston2017-03-242-2/+11
| |/ / / / / /
* | | | | | | Merge pull request #2058 from matrix-org/rav/logcontext_leaks_2Richard van der Hoff2017-03-241-12/+16
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | try not to drop context after federation requests
| * | | | | | | try not to drop context after federation requestsRichard van der Hoff2017-03-231-12/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | preserve_context_over_fn uses a ContextPreservingDeferred, which only restores context for the duration of its callbacks, which isn't really correct, and means that subsequent operations in the same request can end up without their logcontexts.
* | | | | | | | Merge pull request #2057 from matrix-org/rav/missing_yield_2Richard van der Hoff2017-03-241-1/+1
|\ \ \ \ \ \ \ \ | |_|/ / / / / / |/| | | | | | | Add another missing yield on check_device_registered
| * | | | | | | Add another missing yield on check_device_registeredRichard van der Hoff2017-03-231-1/+1
| | | | | | | |
* | | | | | | | Merge pull request #2054 from matrix-org/erikj/user_iter_cursorErik Johnston2017-03-2417-129/+99
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Reduce some CPU work on DB threads
| * | | | | | | | Replace some calls to cursor_to_dictErik Johnston2017-03-243-39/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cursor_to_dict can be surprisinglh expensive for large result sets, so lets only call it when we need to.
| * | | | | | | | Use iter(items|values)Erik Johnston2017-03-243-51/+48
| | | | | | | | |
| * | | | | | | | User Cursor.__iter__ instead of fetchallErik Johnston2017-03-2315-39/+38
| | |_|/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | This prevents unnecessary construction of lists
* | | | | | | | Merge pull request #2055 from matrix-org/dbkr/fix_add_msisdn_requestTokenDavid Baker2017-03-241-1/+1
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Fix token request for addition of phone numbers
| * | | | | | | | Oops, remove unintentional changeDavid Baker2017-03-231-7/+0
| | | | | | | | |
| * | | | | | | | Fix token request for addition of phone numbersDavid Baker2017-03-232-1/+8
| | |/ / / / / / | |/| | | | | |
* | | | | | | | Merge pull request #2056 from matrix-org/dbkr/fix_invite_rejectDavid Baker2017-03-241-0/+7
|\ \ \ \ \ \ \ \ | |_|_|/ / / / / |/| | | | | | | Fix rejection of invites not reaching sync
| * | | | | | | Fix rejection of invites not reaching syncDavid Baker2017-03-231-0/+7
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Always allow the user to see their own leave events, otherwise they won't see the event if they reject an invite for a room whose history visibility is set such that they cannot see events before joining.
* | | | | | | Merge pull request #2050 from matrix-org/rav/federation_backoffRichard van der Hoff2017-03-239-314/+350
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | push federation retry limiter down to matrixfederationclient
| * | | | | | | Ignore backoff history for invites, aliases, and roomdirsRichard van der Hoff2017-03-236-14/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a param to the federation client which lets us ignore historical backoff data for federation queries, and set it for a handful of operations.
| * | | | | | | push federation retry limiter down to matrixfederationclientRichard van der Hoff2017-03-237-287/+278
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rather than having to instrument everywhere we make a federation call, make the MatrixFederationHttpClient manage the retry limiter.
| * | | | | | | MatrixFederationHttpClient: clean upRichard van der Hoff2017-03-231-17/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rename _create_request to _request, and push ascii-encoding of `destination` and `path` down into it
* | | | | | | | Merge pull request #2052 from matrix-org/rav/time_bound_deferredRichard van der Hoff2017-03-231-4/+6
|\ \ \ \ \ \ \ \ | |_|/ / / / / / |/| | | | | | | Fix time_bound_deferred to throw the right exception
| * | | | | | | Fix time_bound_deferred to throw the right exceptionRichard van der Hoff2017-03-231-4/+6
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to a failure to instantiate DeferredTimedOutError, time_bound_deferred would throw a CancelledError when the deferred timed out, which was rather confusing.
* | | | | | | Add jsonschema to python_dependencies.pypik2017-03-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: pik <alexander.maznev@gmail.com>
* | | | | | | use jsonschema.FormatChecker for RoomID and UserID stringspik2017-03-231-18/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * use a valid filter in rest/client/v2_alpha test Signed-off-by: pik <alexander.maznev@gmail.com>
* | | | | | | Add valid filter tests, flake8, fix typopik2017-03-231-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: pik <alexander.maznev@gmail.com>
* | | | | | | check_valid_filter using JSONSchemapik2017-03-231-93/+158
| |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add invalid filter tests Signed-off-by: pik <alexander.maznev@gmail.com>
* | | | | | Merge pull request #2048 from matrix-org/rav/missing_yieldRichard van der Hoff2017-03-231-1/+1
|\ \ \ \ \ \ | | | | | | | | | | | | | | Add a missing yield in device key upload
| * | | | | | Add a missing yield in device key uploadRichard van der Hoff2017-03-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (this would only very very rarely actually be a useful thing, so the main problem was the logcontext leak...)
* | | | | | | Fix a couple of logcontext leaksRichard van der Hoff2017-03-232-5/+5
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | Use preserve_fn to correctly manage the logcontexts around things we don't want to yield on.
* | | | | | Merge pull request #2044 from matrix-org/rav/crypto_docsRichard van der Hoff2017-03-222-4/+24
|\ \ \ \ \ \ | | | | | | | | | | | | | | fix up some key verif docstrings
| * | | | | | fix up some key verif docstringsRichard van der Hoff2017-03-212-4/+24
| | | | | | |
* | | | | | | Merge pull request #2042 from matrix-org/rav/fix_key_cachingRichard van der Hoff2017-03-221-63/+72
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | | Fix caching of remote servers' signature keys
| * | | | | | Fix caching of remote servers' signature keysRichard van der Hoff2017-03-221-63/+72
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `@cached` decorator on `KeyStore._get_server_verify_key` was missing its `num_args` parameter, which meant that it was returning the wrong key for any server which had more than one recorded key. By way of a fix, change the default for `num_args` to be *all* arguments. To implement that, factor out a common base class for `CacheDescriptor` and `CacheListDescriptor`.
* | | | | | Merge branch 'master' into developMatthew Hodgson2017-03-211-1/+1
|\ \ \ \ \ \ | |/ / / / / |/| | | | / | | |_|_|/ | |/| | |
| * | | | Bump changelog and version github/release-v0.19.3 release-v0.19.3Erik Johnston2017-03-201-1/+1
| | | | |
| * | | | Bump changelog and versions v0.19.3-rc2Erik Johnston2017-03-131-1/+1
| | | | |
| * | | | Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.19.3Erik Johnston2017-03-1339-223/+1320
| |\ \ \ \
| * | | | | Bump changelog and versionErik Johnston2017-03-081-1/+1
| | | | | |
* | | | | | Merge pull request #2033 from matrix-org/erikj/repl_speedErik Johnston2017-03-214-53/+38
|\ \ \ \ \ \ | | | | | | | | | | | | | | Don't send the full event json over replication
| * | | | | | PEP8Erik Johnston2017-03-202-3/+0
| | | | | | |
| * | | | | | Don't send the full event json over replicationErik Johnston2017-03-174-50/+38
| | | | | | |
* | | | | | | Add some debug to help diagnose weird federation issueRichard van der Hoff2017-03-201-1/+8
| | | | | | |
* | | | | | | Merge pull request #2026 from matrix-org/rav/logcontext_docsRichard van der Hoff2017-03-201-0/+10
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Logcontext docs
| * | | | | | | Logcontext docsRichard van der Hoff2017-03-171-0/+10
| |/ / / / / /
* | | | | | | Merge pull request #2027 from matrix-org/rav/logcontext_leaksRichard van der Hoff2017-03-2011-62/+86
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | A few fixes to logcontext things
| * | | | | | | Stop preserve_fn leaking context into the reactorRichard van der Hoff2017-03-182-34/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a bug in ``logcontext.preserve_fn`` which made it leak context into the reactor, and add a test for it. Also, get rid of ``logcontext.reset_context_after_deferred``, which tried to do the same thing but had its own, different, set of bugs.
| * | | | | | | Run the reactor with the sentinel logcontextRichard van der Hoff2017-03-188-16/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a class of 'Unexpected logcontext' messages, which were happening because the logcontext was somewhat arbitrarily swapping between the sentinel and the `run` logcontext.
| * | | | | | | Remove broken use of clock.call_laterRichard van der Hoff2017-03-181-12/+3
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | background_updates was using `call_later` in a way that leaked the logcontext into the reactor. We could have rewritten it to do it properly, but given that we weren't using the fancier facilities provided by `call_later`, we might as well just use `async.sleep`, which does the logcontext stuff properly.
* | | | | | | Avoid resetting state on rejected eventsRichard van der Hoff2017-03-172-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we get a rejected event, give it the same state_group as its prev_event, rather than no state_group at all. This should fix https://github.com/matrix-org/synapse/issues/1935.
* | | | | | | Refactoring and cleanupsRichard van der Hoff2017-03-175-80/+264
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A few non-functional changes: * A bunch of docstrings to document types * Split `EventsStore._persist_events_txn` up a bit. Hopefully it's a bit more readable. * Rephrase `EventFederationStore._update_min_depth_for_room_txn` to avoid mind-bending conditional. * Rephrase rejected/outlier conditional in `_update_outliers_txn` to avoid mind-bending conditional.
* | | | | | Merge pull request #2016 from matrix-org/rav/queue_pdus_during_joinRichard van der Hoff2017-03-172-24/+69
|\ \ \ \ \ \ | | | | | | | | | | | | | | Queue up federation PDUs while a room join is in progress
| * | | | | | Queue up federation PDUs while a room join is in progressRichard van der Hoff2017-03-151-24/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This just takes the existing `room_queues` logic and moves it out to `on_receive_pdu` instead of `_process_received_pdu`, which ensures that we don't start trying to fetch prev_events and whathaveyou until the join has completed.
| * | | | | | Implement reset_context_after_deferredRichard van der Hoff2017-03-151-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to correctly reset the context when we fire off a deferred we aren't going to wait for.
* | | | | | | CommentsErik Johnston2017-03-162-2/+4
| | | | | | |
* | | | | | | CommentErik Johnston2017-03-161-3/+8
| | | | | | |
* | | | | | | Don't recreate so many setsErik Johnston2017-03-1610-51/+42
| | | | | | |
* | | | | | | Implement no op for room stream in syncErik Johnston2017-03-161-4/+47
| | | | | | |
* | | | | | | Merge pull request #2014 from Half-Shot/hs/fix-appservice-presenceErik Johnston2017-03-151-1/+4
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Add fallback to last_active_ts if it beats the last sync time on a presence timeout.
| * | | | | | | Add a great comment to handle_timeout for active vs sync times.Will Hunt2017-03-151-0/+2
| | | | | | | |
| * | | | | | | Add fallback to last_active_ts if it beats the last sync time.Will Hunt2017-03-151-1/+2
| | | | | | | |
* | | | | | | | CommentErik Johnston2017-03-151-1/+3
| | | | | | | |
* | | | | | | | Cache set of users whose presence the other user should seeErik Johnston2017-03-151-13/+27
| | | | | | | |
* | | | | | | | CommentErik Johnston2017-03-152-0/+6
| | | | | | | |
* | | | | | | | Remove unused importErik Johnston2017-03-151-1/+0
| | | | | | | |
* | | | | | | | Format presence events on the edges instead of reformatting them multiple timesErik Johnston2017-03-157-39/+80
| | | | | | | |
* | | | | | | | Merge pull request #1997 from matrix-org/dbkr/cas_partialdownloadDavid Baker2017-03-151-1/+8
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | | Handle PartialDownloadError in CAS login
| * | | | | | | Handle PartialDownloadError in CAS loginDavid Baker2017-03-141-1/+8
| | | | | | | |
* | | | | | | | Fix assertion to stop transaction queue getting wedgedRichard van der Hoff2017-03-156-5/+29
| |_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... and update some docstrings to correctly reflect the types being used. get_new_device_msgs_for_remote can return a long under some circumstances, which was being stored in last_device_list_stream_id_by_dest, and was then upsetting things on the next loop.
* | | | | | | Add some metrics on notifierErik Johnston2017-03-151-0/+6
| | | | | | |
* | | | | | | Merge pull request #1994 from matrix-org/dbkr/msisdn_signin_2Erik Johnston2017-03-159-50/+412
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Phone number registration / login support v2
| * | | | | | | Use extend instead of +=David Baker2017-03-141-4/+4
| | | | | | | |
| * | | | | | | Oops, remove printDavid Baker2017-03-141-1/+0
| | | | | | | |
| * | | | | | | Fix registration for broken clientsDavid Baker2017-03-131-4/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only offer msisdn flows if the x_show_msisdn option is given.
| * | | | | | | Support registration / login with phone numberDavid Baker2017-03-139-50/+395
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes from https://github.com/matrix-org/synapse/pull/1971
* | | | | | | | Merge pull request #1992 from matrix-org/rav/fix_media_loopRichard van der Hoff2017-03-144-24/+121
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Fix routing loop when fetching remote media
| * | | | | | | | Address review commentsRichard van der Hoff2017-03-142-20/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - don't blindly proxy all HTTPRequestExceptions - log unexpected exceptions at error - avoid `isinstance` - improve docs on `from_http_response_exception`
| * | | | | | | | re-refactor exception heirarchyRichard van der Hoff2017-03-141-16/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Give CodeMessageException back its `msg` attribute, and use that to hold the HTTP status message for HttpResponseException.
| * | | | | | | | Fix routing loop when fetching remote mediaRichard van der Hoff2017-03-134-14/+102
| | |_|/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we proxy a media request to a remote server, add a query-param, which will tell the remote server to 404 if it doesn't recognise the server_name. This should fix a routing loop where the server keeps forwarding back to itself. Also improves the error handling on remote media fetches, so that we don't always return a rather obscure 502.
* | | | | | | | Merge pull request #2002 from matrix-org/erikj/dont_sync_by_defaultErik Johnston2017-03-141-13/+31
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Reduce number of spurious sync result generations.
| * | | | | | | | Reduce spurious calls to generate syncErik Johnston2017-03-141-13/+31
| | |_|/ / / / / | |/| | | | | |
* | | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2017-03-1425-590/+488
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | erikj/public_list_speed
| * | | | | | | Fix current_state_events table to not lieErik Johnston2017-03-141-3/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we try and persist two state events that have the same ancestor we calculate the wrong current state when persisting those events.
| * | | | | | | Merge pull request #1993 from matrix-org/luke/delete-devicesLuke Barnard2017-03-144-0/+139
| |\ \ \ \ \ \ \ | | |_|/ / / / / | |/| | | | | | Implement delete_devices API
| | * | | | | | Implement _simple_delete_many_txn, use it to delete devicesLuke Barnard2017-03-134-11/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (But this doesn't implement the same for deleting access tokens or e2e keys. Also respond to code review.
| | * | | | | | FlakeLuke Barnard2017-03-131-0/+2
| | | | | | | |
| | * | | | | | Implement delete_devices APILuke Barnard2017-03-131-0/+47
| | |/ / / / / | | | | | | | | | | | | | | | | | | | | | This implements the proposal here https://docs.google.com/document/d/1C-25Gqz3TXy2jIAoeOKxpNtmme0jI4g3yFGqv5GlAAk for deleting multiple devices at once in a single request.
| * | | | | | Merge pull request #1990 from matrix-org/rav/log_config_commentsRichard van der Hoff2017-03-131-5/+7
| |\ \ \ \ \ \ | | |/ / / / / | |/| | | | | Add helpful texts to logger config options
| | * | | | | Add helpful texts to logger config optionsRichard van der Hoff2017-03-131-5/+7
| | | | | | |
| * | | | | | Merge remote-tracking branch 'origin/develop' into rav/refactor_received_pduRichard van der Hoff2017-03-1322-423/+160
| |\| | | | |
| | * | | | | Merge pull request #1983 from matrix-org/rav/no_redirect_stdioRichard van der Hoff2017-03-139-14/+38
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | Add an option to disable stdio redirect
| | | * | | | | Add an option to disable stdio redirectRichard van der Hoff2017-03-101-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it tractable to run synapse under pdb.
| | | * | | | | Refactor logger config for workersRichard van der Hoff2017-03-109-13/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - to make it easier to add more config options.
| | * | | | | | Merge pull request #1982 from matrix-org/rav/sighup_for_logconfigRichard van der Hoff2017-03-131-10/+19
| | |\ \ \ \ \ \ | | | |_|_|/ / / | | |/| | | | | Reread log config on SIGHUP
| | | * | | | | Reread log config on SIGHUPRichard van der Hoff2017-03-101-10/+19
| | | |/ / / / | | | | | | | | | | | | | | | | | | | | | When we are using a log_config file, reread it on SIGHUP.
| | * | | | | Revert "Support registration & login with phone number"Erik Johnston2017-03-139-395/+50
| | | | | | |
| * | | | | | Move FederationServer._handle_new_pdu to FederationHandlerRichard van der Hoff2017-03-092-198/+198
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately this significantly increases the size of the already-rather-big FederationHandler, but the code fits more naturally here, and it paves the way for the tighter integration that I need between handling incoming PDUs and doing the join dance. Other than renaming the existing `FederationHandler.on_receive_pdu` to `_process_received_pdu` to make way for it, this just consists of the move, and replacing `self.handler` with `self` and `self` with `self.replication_layer`.
| * | | | | | Move sig check out of _handle_new_pduRichard van der Hoff2017-03-091-12/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we receive PDUs via `get_missing_events`, we have already checked their sigs, so there is no need to do it again.
| * | | | | | Factor _get_missing_events_for_pdu out of _handle_new_pduRichard van der Hoff2017-03-091-62/+82
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | This should be functionally identical: it just seeks to improve readability by reducing indentation.
* | | | | | Add new storage function to slave storeErik Johnston2017-03-131-0/+4
| | | | | |
* | | | | | CommentsErik Johnston2017-03-131-0/+12
| | | | | |
* | | | | | Assume rooms likely haven't changedErik Johnston2017-03-132-8/+14
| | | | | |
* | | | | | Get current state by using current_state_events tableErik Johnston2017-03-105-31/+52
| |/ / / / |/| | | |
* | | | | Fix it for the workersErik Johnston2017-03-101-0/+8
| | | | |
* | | | | Noop repated delete device inbox calls from /syncErik Johnston2017-03-102-4/+38
| | | | |
* | | | | Add setdefault key to ExpiringCacheErik Johnston2017-03-101-0/+7
|/ / / /
* | | / Fix docstringRichard van der Hoff2017-03-091-2/+1
| |_|/ |/| |
* | | Merge pull request #1971 from matrix-org/dbkr/msisdn_signinDavid Baker2017-03-099-50/+395
|\ \ \ | | | | | | | | Support registration & login with phone number