Richard van der Hoff
							
						 
						
							 
							
							
							
								
							
								4bd597d9fc 
								
							
								 
							
						 
						
							
							
								
								push federation retry limiter down to matrixfederationclient  
							
							 
							
							... 
							
							
							
							rather than having to instrument everywhere we make a federation call,
make the MatrixFederationHttpClient manage the retry limiter. 
							
						 
						
							2017-03-23 09:28:46 +00:00  
						
					 
				
					
						
							
							
								 
								Richard van der Hoff
							
						 
						
							 
							
							
							
								
							
								29ed09e80a 
								
							
								 
							
						 
						
							
							
								
								Fix assertion to stop transaction queue getting wedged  
							
							 
							
							... 
							
							
							
							... 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. 
							
						 
						
							2017-03-15 12:16:55 +00:00  
						
					 
				
					
						
							
							
								 
								Richard van der Hoff
							
						 
						
							 
							
							
							
								
							
								0c4cf9372b 
								
							
								 
							
						 
						
							
							
								
								Fix a race in transaction queue  
							
							 
							
							... 
							
							
							
							It was theoretically possible for a PDU to get queued and not sent for ages. On
closer inspection I think there were bigger problems elsewhere, but we might as
well fix this since it's easy. 
							
						 
						
							2017-02-20 16:46:25 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								df4ecff5a9 
								
							
								 
							
						 
						
							
							
								
								Correctly raise exceptions for ratelimitng. Ratelimit on 401  
							
							 
							
							
							
						 
						
							2017-02-01 15:42:19 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								ae7a132f38 
								
							
								 
							
						 
						
							
							
								
								Better handle 404 response for federation /send/  
							
							 
							
							
							
						 
						
							2017-01-31 13:40:09 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								51e9fe36e4 
								
							
								 
							
						 
						
							
							
								
								Fix up sending of m.device_list_update edus  
							
							 
							
							
							
						 
						
							2017-01-25 16:55:21 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								2367c5568c 
								
							
								 
							
						 
						
							
							
								
								Add basic implementation of local device list changes  
							
							 
							
							
							
						 
						
							2017-01-25 14:27:27 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								f878f64f43 
								
							
								 
							
						 
						
							
							
								
								Lower the not retrying host log line to debug  
							
							 
							
							
							
						 
						
							2017-01-17 17:20:39 +00:00  
						
					 
				
					
						
							
							
								 
								Mark Haines
							
						 
						
							 
							
							
							
								
							
								f784980d2b 
								
							
								 
							
						 
						
							
							
								
								Only send events that originate on this server.  
							
							 
							
							... 
							
							
							
							Or events that are sent via the federation "send_join" API.
This should match the behaviour from before v0.18.5 and #1635  landed. 
							
						 
						
							2017-01-05 11:26:30 +00:00  
						
					 
				
					
						
							
							
								 
								Mark Haines
							
						 
						
							 
							
							
							
								
							
								e02bdaf08b 
								
							
								 
							
						 
						
							
							
								
								Get the destinations from the state from before the event  
							
							 
							
							... 
							
							
							
							Rather than the state after then event. 
							
						 
						
							2017-01-04 15:17:15 +00:00  
						
					 
				
					
						
							
							
								 
								Mark Haines
							
						 
						
							 
							
							
							
								
							
								b6b67715ed 
								
							
								 
							
						 
						
							
							
								
								Send ALL membership events to the server that was affected.  
							
							 
							
							... 
							
							
							
							Send all membership changes to the server that was affected.
This ensures that if the last member of a room on a server
was kicked or banned they get told about it. 
							
						 
						
							2017-01-04 13:56:20 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								aaecffba3a 
								
							
								 
							
						 
						
							
							
								
								Correctly handle 500's and 429 on federation  
							
							 
							
							
							
						 
						
							2016-11-24 15:04:49 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								50934ce460 
								
							
								 
							
						 
						
							
							
								
								Comments  
							
							 
							
							
							
						 
						
							2016-11-21 16:55:23 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								9687e039e7 
								
							
								 
							
						 
						
							
							
								
								Remove explicit calls to send_pdu  
							
							 
							
							
							
						 
						
							2016-11-21 14:48:51 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								524d61bf7e 
								
							
								 
							
						 
						
							
							
								
								Fix tests  
							
							 
							
							
							
						 
						
							2016-11-21 11:53:02 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								7c9cdb2245 
								
							
								 
							
						 
						
							
							
								
								Store federation stream positions in the database  
							
							 
							
							
							
						 
						
							2016-11-21 11:33:08 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								f8ee66250a 
								
							
								 
							
						 
						
							
							
								
								Handle sending events and device messages over federation  
							
							 
							
							
							
						 
						
							2016-11-17 15:48:04 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								59ef517e6b 
								
							
								 
							
						 
						
							
							
								
								Use new federation_sender DI  
							
							 
							
							
							
						 
						
							2016-11-16 14:47:52 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								847d5db1d1 
								
							
								 
							
						 
						
							
							
								
								Add transaction queue and transport layer to DI  
							
							 
							
							
							
						 
						
							2016-11-16 14:47:52 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								daec6fc355 
								
							
								 
							
						 
						
							
							
								
								Move logic into transaction_queue  
							
							 
							
							
							
						 
						
							2016-11-16 14:47:52 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								0e830d3770 
								
							
								 
							
						 
						
							
							
								
								Rename transaction queue functions to send_*  
							
							 
							
							
							
						 
						
							2016-11-16 14:47:52 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								af4701b311 
								
							
								 
							
						 
						
							
							
								
								Fix incorrect attribute name  
							
							 
							
							
							
						 
						
							2016-09-09 17:36:56 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								464ffd1b5e 
								
							
								 
							
						 
						
							
							
								
								Comment  
							
							 
							
							
							
						 
						
							2016-09-09 17:17:23 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								327425764e 
								
							
								 
							
						 
						
							
							
								
								Add edu.type as part of key. Remove debug logging  
							
							 
							
							
							
						 
						
							2016-09-09 17:13:30 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								52b2318777 
								
							
								 
							
						 
						
							
							
								
								Clobber EDUs in send queue  
							
							 
							
							
							
						 
						
							2016-09-09 15:59:08 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								ab80d5e0a9 
								
							
								 
							
						 
						
							
							
								
								Drop replication log levels  
							
							 
							
							
							
						 
						
							2016-09-09 14:56:50 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								a6c6750166 
								
							
								 
							
						 
						
							
							
								
								Check if destination is ready for retry earlier  
							
							 
							
							
							
						 
						
							2016-09-09 13:46:05 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								4598682b43 
								
							
								 
							
						 
						
							
							
								
								Fix tightloop on sending transaction  
							
							 
							
							
							
						 
						
							2016-09-09 13:12:53 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								d2688d7f03 
								
							
								 
							
						 
						
							
							
								
								Correctly guard against multiple concurrent transactions  
							
							 
							
							
							
						 
						
							2016-09-09 11:44:36 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								b390756150 
								
							
								 
							
						 
						
							
							
								
								Update last_device_stream_id_by_dest if there is nothing to send  
							
							 
							
							
							
						 
						
							2016-09-09 11:00:15 +01:00  
						
					 
				
					
						
							
							
								 
								Mark Haines
							
						 
						
							 
							
							
							
								
							
								43954d000e 
								
							
								 
							
						 
						
							
							
								
								Add a new method to enqueue the device messages rather than sending a dummy EDU  
							
							 
							
							
							
						 
						
							2016-09-07 16:10:51 +01:00  
						
					 
				
					
						
							
							
								 
								Mark Haines
							
						 
						
							 
							
							
							
								
							
								cb98ac261b 
								
							
								 
							
						 
						
							
							
								
								Move the check for federated device_messages.  
							
							 
							
							... 
							
							
							
							Move the check into _attempt_new_transaction.
Only delete messages if there were messages to delete. 
							
						 
						
							2016-09-07 15:39:13 +01:00  
						
					 
				
					
						
							
							
								 
								Mark Haines
							
						 
						
							 
							
							
							
								
							
								31a07d2335 
								
							
								 
							
						 
						
							
							
								
								Add stream change caches for device messages  
							
							 
							
							
							
						 
						
							2016-09-07 15:27:07 +01:00  
						
					 
				
					
						
							
							
								 
								Mark Haines
							
						 
						
							 
							
							
							
								
							
								d4a35ada28 
								
							
								 
							
						 
						
							
							
								
								Send device messages over federation  
							
							 
							
							
							
						 
						
							2016-09-06 18:16:20 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								c315922b5f 
								
							
								 
							
						 
						
							
							
								
								PEP8  
							
							 
							
							
							
						 
						
							2016-08-10 16:34:10 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								ca8abfbf30 
								
							
								 
							
						 
						
							
							
								
								Clean up TransactionQueue  
							
							 
							
							
							
						 
						
							2016-08-10 16:24:16 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								3bc9629be5 
								
							
								 
							
						 
						
							
							
								
								Measure federation send transaction resources  
							
							 
							
							
							
						 
						
							2016-08-10 10:56:38 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								f6ebaf4a32 
								
							
								 
							
						 
						
							
							
								
								Run transaction queue on reactor  
							
							 
							
							... 
							
							
							
							This ensures that any CPU work that happens doesn't block message
sending. 
							
						 
						
							2016-05-09 10:10:06 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								2c1fbea531 
								
							
								 
							
						 
						
							
							
								
								Fix up logcontexts  
							
							 
							
							
							
						 
						
							2016-02-08 14:26:45 +00:00  
						
					 
				
					
						
							
							
								 
								Matthew Hodgson
							
						 
						
							 
							
							
							
								
							
								6c28ac260c 
								
							
								 
							
						 
						
							
							
								
								copyrights  
							
							 
							
							
							
						 
						
							2016-01-07 04:26:29 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								97d792b28f 
								
							
								 
							
						 
						
							
							
								
								Don't rearrange transaction_queue  
							
							 
							
							
							
						 
						
							2015-11-03 16:31:08 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								7ce264ce5f 
								
							
								 
							
						 
						
							
							
								
								Fix broken cache for getting retry times. This meant we retried remote destinations way more frequently than we should  
							
							 
							
							
							
						 
						
							2015-11-03 16:24:03 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								e70e8e053e 
								
							
								 
							
						 
						
							
							
								
								Add txn_id to some log lines  
							
							 
							
							
							
						 
						
							2015-05-22 14:44:02 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								1b446a5d85 
								
							
								 
							
						 
						
							
							
								
								Log less lines at INFO level, but include more helpful information  
							
							 
							
							
							
						 
						
							2015-05-22 14:29:57 +01:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								1942382246 
								
							
								 
							
						 
						
							
							
								
								Don't log enqueue_  
							
							 
							
							
							
						 
						
							2015-05-01 16:14:25 +01:00  
						
					 
				
					
						
							
							
								 
								Paul "LeoNerd" Evans
							
						 
						
							 
							
							
							
								
							
								128cf2daf7 
								
							
								 
							
						 
						
							
							
								
								Appease pep8  
							
							 
							
							
							
						 
						
							2015-03-12 16:24:51 +00:00  
						
					 
				
					
						
							
							
								 
								Paul "LeoNerd" Evans
							
						 
						
							 
							
							
							
								
							
								c782e893ec 
								
							
								 
							
						 
						
							
							
								
								Neater metrics from TransactionQueue  
							
							 
							
							
							
						 
						
							2015-03-12 16:24:51 +00:00  
						
					 
				
					
						
							
							
								 
								Paul "LeoNerd" Evans
							
						 
						
							 
							
							
							
								
							
								b0cf867319 
								
							
								 
							
						 
						
							
							
								
								Use _ instead of . as a metric namespacing separator, for Prometheus  
							
							 
							
							
							
						 
						
							2015-03-12 16:24:51 +00:00  
						
					 
				
					
						
							
							
								 
								Paul "LeoNerd" Evans
							
						 
						
							 
							
							
							
								
							
								f9478e475b 
								
							
								 
							
						 
						
							
							
								
								Rename Metrics' "keys" to "labels"  
							
							 
							
							
							
						 
						
							2015-03-12 16:24:51 +00:00  
						
					 
				
					
						
							
							
								 
								Paul "LeoNerd" Evans
							
						 
						
							 
							
							
							
								
							
								094803cf82 
								
							
								 
							
						 
						
							
							
								
								Put vector gauges on transaction queue pending PDU and EDU dicts  
							
							 
							
							
							
						 
						
							2015-03-12 16:24:50 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								abaf47bbb6 
								
							
								 
							
						 
						
							
							
								
								Fix bug in logging.  
							
							 
							
							
							
						 
						
							2015-03-10 10:28:29 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								98b867f7b7 
								
							
								 
							
						 
						
							
							
								
								Fix bug in logging.  
							
							 
							
							
							
						 
						
							2015-03-10 10:16:09 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								59362454dd 
								
							
								 
							
						 
						
							
							
								
								Must update pending_transactions map before yield'ing  
							
							 
							
							
							
						 
						
							2015-02-26 15:47:35 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								db215b7e00 
								
							
								 
							
						 
						
							
							
								
								Implement and use new batched get missing pdu  
							
							 
							
							
							
						 
						
							2015-02-23 13:58:02 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								a7925259a1 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.7.1  
							
							 
							
							
							
						 
						
							2015-02-18 13:57:55 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								446ef58992 
								
							
								 
							
						 
						
							
							
								
								Add errback to all deferreds in transaction_queue  
							
							 
							
							
							
						 
						
							2015-02-18 12:03:26 +00:00  
						
					 
				
					
						
							
							
								 
								Mark Haines
							
						 
						
							 
							
							
							
								
							
								2462aacd77 
								
							
								 
							
						 
						
							
							
								
								Restrict the destinations that synapse can talk to  
							
							 
							
							
							
						 
						
							2015-02-18 11:52:51 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								b68e4a729f 
								
							
								 
							
						 
						
							
							
								
								Discard destination 'localhost'  
							
							 
							
							
							
						 
						
							2015-02-18 11:32:39 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								47d3ff4cf8 
								
							
								 
							
						 
						
							
							
								
								Don't send failure to self  
							
							 
							
							
							
						 
						
							2015-02-18 11:30:37 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								e482541e1d 
								
							
								 
							
						 
						
							
							
								
								Fix pyflakes  
							
							 
							
							
							
						 
						
							2015-02-18 10:44:22 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								1be67eca8a 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'keyclient_retry_scheme' of github.com:matrix-org/synapse into develop  
							
							 
							
							
							
						 
						
							2015-02-18 10:34:40 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								9371019133 
								
							
								 
							
						 
						
							
							
								
								Try to only back off if we think we failed to connect to the remote  
							
							 
							
							
							
						 
						
							2015-02-17 18:13:34 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								2b8f1a956c 
								
							
								 
							
						 
						
							
							
								
								Add per server retry limiting.  
							
							 
							
							... 
							
							
							
							Factor out the pre destination retry logic from TransactionQueue so it
can be reused in both get_pdu and crypto.keyring 
							
						 
						
							2015-02-17 17:20:56 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								659ead082f 
								
							
								 
							
						 
						
							
							
								
								Format the response of transaction request in a nicer way  
							
							 
							
							
							
						 
						
							2015-02-17 15:11:44 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								72a4de2ce6 
								
							
								 
							
						 
						
							
							
								
								Use consumeErrors=True on all DeferredLists.  
							
							 
							
							... 
							
							
							
							This is so that the DeferredLists actually consume the error instead of
propogating down the non-existent errback chain. This should reduce the
number of unhandled errors we are seeing. 
							
						 
						
							2015-02-17 10:07:01 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								c8e1da930d 
								
							
								 
							
						 
						
							
							
								
								Log all the exits from _attempt_new_transaction  
							
							 
							
							
							
						 
						
							2015-02-10 17:30:46 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								ae46f10fc5 
								
							
								 
							
						 
						
							
							
								
								Apply sanity to the transport client interface. Convert 'make_join' and 'send_join' to accept iterables of destinations  
							
							 
							
							
							
						 
						
							2015-02-04 16:28:12 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								7b88619241 
								
							
								 
							
						 
						
							
							
								
								Split up replication_layer module into client, server and transaction queue  
							
							 
							
							
							
						 
						
							2015-01-26 10:45:24 +00:00  
						
					 
				
					
						
							
							
								 
								Erik Johnston
							
						 
						
							 
							
							
							
								
							
								ca65a9d03e 
								
							
								 
							
						 
						
							
							
								
								Split out TransactionQueue from replication layer  
							
							 
							
							
							
						 
						
							2015-01-22 16:37:08 +00:00