09957ce0e4 
								
									
								
							
								 
							
						 
						
							
							
								
								Implement per-room message retention policies  
							
							
							
						 
						
							2019-11-04 17:09:22 +00:00  
				
					
						
							
							
								 
						
							
							
								020add5099 
								
									
								
							
								 
							
						 
						
							
							
								
								Update black to 19.10b0 ( #6304 )  
							
							... 
							
							
							
							* update version of black and also fix the mypy config being overridden 
							
						 
						
							2019-11-01 02:43:24 +11:00  
				
					
						
							
							
								 
						
							
							
								dfe0cd71b6 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #6294  from matrix-org/erikj/add_state_storage  
							
							... 
							
							
							
							Add StateGroupStorage interface 
							
						 
						
							2019-10-31 16:17:53 +01:00  
				
					
						
							
							
								 
						
							
							
								54fef094b3 
								
									
								
							
								 
							
						 
						
							
							
								
								Remove usage of deprecated logger.warn method from codebase ( #6271 )  
							
							... 
							
							
							
							Replace every instance of `logger.warn` with `logger.warning` as the former is deprecated. 
							
						 
						
							2019-10-31 10:23:24 +00:00  
				
					
						
							
							
								 
						
							
							
								69f0054ce6 
								
							
								 
							
						 
						
							
							
								
								Port to use state storage  
							
							
							
						 
						
							2019-10-30 14:46:54 +00:00  
				
					
						
							
							
								 
						
							
							
								3ca4c7c516 
								
							
								 
							
						 
						
							
							
								
								Use new EventPersistenceStore  
							
							
							
						 
						
							2019-10-23 16:15:03 +01:00  
				
					
						
							
							
								 
						
							
							
								034db2ba21 
								
							
								 
							
						 
						
							
							
								
								Fix dummy event insertion consent bug ( #6053 )  
							
							... 
							
							
							
							Fixes  #5905  
						
							2019-09-26 11:47:53 +01:00  
				
					
						
							
							
								 
						
							
							
								57dd41a45b 
								
									
								
							
								 
							
						 
						
							
							
								
								Fix comments  
							
							... 
							
							
							
							Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> 
							
						 
						
							2019-09-11 13:54:50 +01:00  
				
					
						
							
							
								 
						
							
							
								c64c3bb4c5 
								
							
								 
							
						 
						
							
							
								
								Fix how we check for self redaction  
							
							
							
						 
						
							2019-09-11 11:18:04 +01:00  
				
					
						
							
							
								 
						
							
							
								54ce81c86d 
								
							
								 
							
						 
						
							
							
								
								Allow use of different ratelimits for admin redactions.  
							
							... 
							
							
							
							This is useful to allow room admins to quickly deal with a large number
of abusive messages. 
							
						 
						
							2019-09-11 10:46:38 +01:00  
				
					
						
							
							
								 
						
							
							
								c998f25006 
								
									
								
							
								 
							
						 
						
							
							
								
								Apply suggestions from code review  
							
							... 
							
							
							
							Co-Authored-By: Erik Johnston <erik@matrix.org> 
							
						 
						
							2019-08-23 10:28:54 +01:00  
				
					
						
							
							
								 
						
							
							
								9ba32f6573 
								
							
								 
							
						 
						
							
							
								
								Exempt bot users  
							
							
							
						 
						
							2019-08-23 09:56:31 +01:00  
				
					
						
							
							
								 
						
							
							
								886eceba3e 
								
							
								 
							
						 
						
							
							
								
								Return user_type in get_user_by_id  
							
							
							
						 
						
							2019-08-23 09:14:52 +01:00  
				
					
						
							
							
								 
						
							
							
								cf89266b98 
								
							
								 
							
						 
						
							
							
								
								Deny redaction of events in a different room.  
							
							... 
							
							
							
							We already correctly filter out such redactions, but we should also deny
them over the CS API. 
							
						 
						
							2019-07-31 16:12:27 +01:00  
				
					
						
							
							
								 
						
							
							
								f30a71a67b 
								
									
								
							
								 
							
						 
						
							
							
								
								Stop trying to fetch events with event_id=None. ( #5753 )  
							
							... 
							
							
							
							`None` is not a valid event id, so queuing up a database fetch for it seems
like a silly thing to do.
I considered making `get_event` return `None` if `event_id is None`, but then
its interaction with `allow_none` seemed uninituitive, and strong typing ftw. 
							
						 
						
							2019-07-24 13:16:18 +01:00  
				
					
						
							
							
								 
						
							
							
								4806651744 
								
									
								
							
								 
							
						 
						
							
							
								
								Replace returnValue with return ( #5736 )  
							
							
							
						 
						
							2019-07-23 23:00:55 +10:00  
				
					
						
							
							
								 
						
							
							
								9c70a02a9c 
								
									
								
							
								 
							
						 
						
							
							
								
								Ignore redactions of m.room.create events ( #5701 )  
							
							
							
						 
						
							2019-07-17 19:08:02 +01:00  
				
					
						
							
							
								 
						
							
							
								463b072b12 
								
									
								
							
								 
							
						 
						
							
							
								
								Move logging utilities out of the side drawer of util/ and into logging/ ( #5606 )  
							
							
							
						 
						
							2019-07-04 00:07:04 +10:00  
				
					
						
							
							
								 
						
							
							
								32e7c9e7f2 
								
									
								
							
								 
							
						 
						
							
							
								
								Run Black. ( #5482 )  
							
							
							
						 
						
							2019-06-20 19:32:02 +10:00  
				
					
						
							
							
								 
						
							
							
								554609288b 
								
							
								 
							
						 
						
							
							
								
								Run as background process and fix comments  
							
							
							
						 
						
							2019-06-19 11:33:03 +01:00  
				
					
						
							
							
								 
						
							
							
								b42f90470f 
								
							
								 
							
						 
						
							
							
								
								Add experimental option to reduce extremities.  
							
							... 
							
							
							
							Adds new config option `cleanup_extremities_with_dummy_events` which
periodically sends dummy events to rooms with more than 10 extremities.
THIS IS REALLY EXPERIMENTAL. 
							
						 
						
							2019-06-18 15:02:18 +01:00  
				
					
						
							
							
								 
						
							
							
								f874b16b2e 
								
							
								 
							
						 
						
							
							
								
								Add plugin APIs for implementations of custom event rules.  
							
							
							
						 
						
							2019-06-14 18:16:03 +01:00  
				
					
						
							
							
								 
						
							
							
								d16f5574b6 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #5220  from matrix-org/erikj/dont_bundle_live_events  
							
							... 
							
							
							
							Don't bundle aggregations with events in /sync or /events or state queries 
							
						 
						
							2019-05-24 10:36:31 +01:00  
				
					
						
							
							
								 
						
							
							
								4cb577c23f 
								
							
								 
							
						 
						
							
							
								
								Don't bundle aggs for /state and /members etc APIs  
							
							
							
						 
						
							2019-05-24 09:52:33 +01:00  
				
					
						
							
							
								 
						
							
							
								44b8ba484e 
								
							
								 
							
						 
						
							
							
								
								Fix words  
							
							
							
						 
						
							2019-05-21 16:51:45 +01:00  
				
					
						
							
							
								 
						
							
							
								c7ec06e8a6 
								
							
								 
							
						 
						
							
							
								
								Block attempts to annotate the same event twice  
							
							
							
						 
						
							2019-05-20 17:39:05 +01:00  
				
					
						
							
							
								 
						
							
							
								b54b03f9e1 
								
							
								 
							
						 
						
							
							
								
								Allow client event serialization to be async  
							
							
							
						 
						
							2019-05-14 11:58:01 +01:00  
				
					
						
							
							
								 
						
							
							
								1473058b5e 
								
									
								
							
								 
							
						 
						
							
							
								
								Do checks on aliases for incoming m.room.aliases events ( #5128 )  
							
							... 
							
							
							
							Follow-up to #5124 
Also added a bunch of checks to make sure everything (both the stuff added on #5124  and this PR) works as intended. 
							
						 
						
							2019-05-08 17:01:30 +01:00  
				
					
						
							
							
								 
						
							
							
								4a4d5c4fd6 
								
									
								
							
								 
							
						 
						
							
							
								
								Fix grammar and document get_current_users_in_room ( #4998 )  
							
							
							
						 
						
							2019-04-03 14:32:20 +01:00  
				
					
						
							
							
								 
						
							
							
								54a87a7b08 
								
									
								
							
								 
							
						 
						
							
							
								
								Collect room-version variations into one place ( #4969 )  
							
							... 
							
							
							
							Collect all the things that make room-versions different to one another into
one place, so that it's easier to define new room versions. 
							
						 
						
							2019-04-01 10:24:38 +01:00  
				
					
						
							
							
								 
						
							
							
								cd62981a6a 
								
							
								 
							
						 
						
							
							
								
								Revert spurious delete  
							
							
							
						 
						
							2019-03-20 17:51:27 +00:00  
				
					
						
							
							
								 
						
							
							
								aa959a6c07 
								
							
								 
							
						 
						
							
							
								
								Use flags  
							
							
							
						 
						
							2019-03-20 17:40:29 +00:00  
				
					
						
							
							
								 
						
							
							
								7d47cc1305 
								
							
								 
							
						 
						
							
							
								
								Move requester check into assert_accepted_privacy_policy  
							
							
							
						 
						
							2019-03-20 17:08:36 +00:00  
				
					
						
							
							
								 
						
							
							
								74c46d81fa 
								
							
								 
							
						 
						
							
							
								
								Only require consent for events with an associated request  
							
							... 
							
							
							
							There are a number of instances where a server or admin may puppet a
user to join/leave rooms, which we don't want to fail if the user has
not consented to the privacy policy. We fix this by adding a check to
test if the requester has an associated access_token, which is used as a
proxy to answer the question of whether the action is being done on
behalf of a real request from the user. 
							
						 
						
							2019-03-20 16:50:23 +00:00  
				
					
						
							
							
								 
						
							
							
								88f0675967 
								
							
								 
							
						 
						
							
							
								
								fix test_auto_create_auto_join_where_no_consent ( #4886 )  
							
							
							
						 
						
							2019-03-19 11:38:59 +00:00  
				
					
						
							
							
								 
						
							
							
								3064952939 
								
									
								
							
								 
							
						 
						
							
							
								
								Fix incorrect log about not persisting duplicate state event. ( #4776 )  
							
							... 
							
							
							
							We were logging this when it was not true. 
							
						 
						
							2019-03-01 16:47:12 +00:00  
				
					
						
							
							
								 
						
							
							
								a696c48133 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'develop' of github.com:matrix-org/synapse into erikj/redactions_eiah  
							
							
							
						 
						
							2019-01-29 22:00:33 +00:00  
				
					
						
							
							
								 
						
							
							
								5891a6edc8 
								
							
								 
							
						 
						
							
							
								
								Correctly set context.app_service  
							
							
							
						 
						
							2019-01-29 12:09:10 +00:00  
				
					
						
							
							
								 
						
							
							
								7709d2bd16 
								
							
								 
							
						 
						
							
							
								
								Implement rechecking of redactions  
							
							
							
						 
						
							2019-01-29 11:56:20 +00:00  
				
					
						
							
							
								 
						
							
							
								be47cfa9c9 
								
							
								 
							
						 
						
							
							
								
								Refactor event building into EventBuilder  
							
							... 
							
							
							
							This is so that everything is done in one place, making it easier to
change the event format based on room version 
							
						 
						
							2019-01-29 11:13:00 +00:00  
				
					
						
							
							
								 
						
							
							
								073f6c2e5e 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #4494  from matrix-org/erikj/fixup_event_validator  
							
							... 
							
							
							
							Split up event validation between event and builder 
							
						 
						
							2019-01-29 10:55:07 +00:00  
				
					
						
							
							
								 
						
							
							
								d758d5310e 
								
							
								 
							
						 
						
							
							
								
								Correctly use default room version if none is set  
							
							
							
						 
						
							2019-01-28 17:26:39 +00:00  
				
					
						
							
							
								 
						
							
							
								b872c7b1b4 
								
							
								 
							
						 
						
							
							
								
								Split up event validation between event and builder  
							
							... 
							
							
							
							The validator was being run on the EventBuilder objects, and so the
validator only checked a subset of fields. With the upcoming
EventBuilder refactor even fewer fields will be there to validate.
To get around this we split the validation into those that can be run
against an EventBuilder and those run against a fully fledged event. 
							
						 
						
							2019-01-28 17:00:14 +00:00  
				
					
						
							
							
								 
						
							
							
								ae2a957dba 
								
							
								 
							
						 
						
							
							
								
								Pass through room version to event auth  
							
							
							
						 
						
							2019-01-25 18:31:41 +00:00  
				
					
						
							
							
								 
						
							
							
								a50cf929c1 
								
							
								 
							
						 
						
							
							
								
								Require event format version to parse or create events  
							
							
							
						 
						
							2019-01-25 10:32:19 +00:00  
				
					
						
							
							
								 
						
							
							
								be6a7e47fa 
								
									
								
							
								 
							
						 
						
							
							
								
								Revert "Require event format version to parse or create events"  
							
							
							
						 
						
							2019-01-25 10:23:51 +00:00  
				
					
						
							
							
								 
						
							
							
								f431ff3fb8 
								
							
								 
							
						 
						
							
							
								
								Require event format version to parse or create events  
							
							
							
						 
						
							2019-01-23 20:21:33 +00:00  
				
					
						
							
							
								 
						
							
							
								9b827c40ca 
								
									
								
							
								 
							
						 
						
							
							
								
								Log some bits about event creation ( #4121 )  
							
							... 
							
							
							
							I found these helpful in debugging my room upgrade tests. 
							
						 
						
							2018-10-31 15:42:23 +00:00  
				
					
						
							
							
								 
						
							
							
								cb53ce9d64 
								
									
								
							
								 
							
						 
						
							
							
								
								Refactor state group lookup to reduce DB hits ( #4011 )  
							
							... 
							
							
							
							Currently when fetching state groups from the data store we make two
hits two the database: once for members and once for non-members (unless
request is filtered to one or the other). This adds needless load to the
datbase, so this PR refactors the lookup to make only a single database
hit. 
							
						 
						
							2018-10-25 17:49:55 +01:00  
				
					
						
							
							
								 
						
							
							
								e7a16c6210 
								
							
								 
							
						 
						
							
							
								
								Remove redundant run_as_background_process() from pusherpool  
							
							... 
							
							
							
							`on_new_notifications` and `on_new_receipts` in `HttpPusher` and `EmailPusher`
now always return synchronously, so we can remove the `defer.gatherResults` on
their results, and the `run_as_background_process` wrappers can be removed too
because the PusherPool methods will now complete quickly enough. 
							
						 
						
							2018-10-22 16:12:11 +01:00  
				
					
						
							
							
								 
						
							
							
								8174c6725b 
								
							
								 
							
						 
						
							
							
								
								Avoid reraise, to improve stacktraces  
							
							
							
						 
						
							2018-10-01 18:50:34 +01:00  
				
					
						
							
							
								 
						
							
							
								c144252a8c 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #3710  from matrix-org/rav/logcontext_for_pusher_updates  
							
							... 
							
							
							
							Fix logcontexts for running pushers 
							
						 
						
							2018-08-17 16:21:49 +01:00  
				
					
						
							
							
								 
						
							
							
								66f7dc8c87 
								
							
								 
							
						 
						
							
							
								
								Fix logcontexts for running pushers  
							
							... 
							
							
							
							First of all, avoid resetting the logcontext before running the pushers, to fix
the "Starting db txn 'get_all_updated_receipts' from sentinel context" warning.
Instead, give them their own "background process" logcontexts. 
							
						 
						
							2018-08-17 00:32:39 +01:00  
				
					
						
							
							
								 
						
							
							
								372bf073c1 
								
							
								 
							
						 
						
							
							
								
								block event creation and room creation on hitting resource limits  
							
							
							
						 
						
							2018-08-16 21:25:16 +01:00  
				
					
						
							
							
								 
						
							
							
								2f78f432c4 
								
							
								 
							
						 
						
							
							
								
								speed up /members and add at= and membership params ( #3568 )  
							
							
							
						 
						
							2018-08-15 16:35:22 +01:00  
				
					
						
							
							
								 
						
							
							
								b37c472419 
								
									
								
							
								 
							
						 
						
							
							
								
								Rename async to async_helpers because `async` is a keyword on Python 3.7 ( #3678 )  
							
							
							
						 
						
							2018-08-10 23:50:21 +10:00  
				
					
						
							
							
								 
						
							
							
								729b672823 
								
							
								 
							
						 
						
							
							
								
								Use new helper base class for ReplicationSendEventRestServlet  
							
							
							
						 
						
							2018-07-31 14:32:23 +01:00  
				
					
						
							
							
								 
						
							
							
								536bc63a4e 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge branch 'develop' into erikj/client_apis_move  
							
							
							
						 
						
							2018-07-24 09:57:05 +01:00  
				
					
						
							
							
								 
						
							
							
								0faa3223cd 
								
							
								 
							
						 
						
							
							
								
								Fix missing attributes on workers.  
							
							... 
							
							
							
							This was missed during the transition from attribute to getter for
getting state from context. 
							
						 
						
							2018-07-23 16:28:00 +01:00  
				
					
						
							
							
								 
						
							
							
								0b0b24cb82 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'develop' of github.com:matrix-org/synapse into erikj/client_apis_move  
							
							
							
						 
						
							2018-07-23 13:21:15 +01:00  
				
					
						
							
							
								 
						
							
							
								e42510ba63 
								
							
								 
							
						 
						
							
							
								
								Use new getters  
							
							
							
						 
						
							2018-07-23 13:17:22 +01:00  
				
					
						
							
							
								 
						
							
							
								5c88bb722f 
								
							
								 
							
						 
						
							
							
								
								Move PaginationHandler to its own file  
							
							
							
						 
						
							2018-07-20 15:32:23 +01:00  
				
					
						
							
							
								 
						
							
							
								0ecf68aedc 
								
							
								 
							
						 
						
							
							
								
								Move check_in_room_or_world_readable to Auth  
							
							
							
						 
						
							2018-07-20 15:30:59 +01:00  
				
					
						
							
							
								 
						
							
							
								7c712f95bb 
								
							
								 
							
						 
						
							
							
								
								Combine Limiter and Linearizer  
							
							... 
							
							
							
							Linearizer was effectively a Limiter with max_count=1, so rather than
maintaining two sets of code, let's combine them. 
							
						 
						
							2018-07-20 13:11:43 +01:00  
				
					
						
							
							
								 
						
							
							
								8462c26485 
								
							
								 
							
						 
						
							
							
								
								Improvements to the Limiter  
							
							... 
							
							
							
							* give them names, to improve logging
* use a deque rather than a list for efficiency 
							
						 
						
							2018-07-20 12:50:27 +01:00  
				
					
						
							
							
								 
						
							
							
								8cb8df55e9 
								
							
								 
							
						 
						
							
							
								
								Split MessageHandler into read only and writers  
							
							... 
							
							
							
							This will let us call the read only parts from workers, and so be able
to move some APIs off of master, e.g. the `/state` API. 
							
						 
						
							2018-07-18 15:33:03 +01:00  
				
					
						
							
							
								 
						
							
							
								ea752bdd99 
								
							
								 
							
						 
						
							
							
								
								s/becuase/because/g  
							
							
							
						 
						
							2018-07-10 17:58:18 +01:00  
				
					
						
							
							
								 
						
							
							
								49af402019 
								
							
								 
							
						 
						
							
							
								
								run isort  
							
							
							
						 
						
							2018-07-09 16:09:20 +10:00  
				
					
						
							
							
								 
						
							
							
								6350bf925e 
								
									
								
							
								 
							
						 
						
							
							
								
								Attempt to be more performant on PyPy ( #3462 )  
							
							
							
						 
						
							2018-06-28 14:49:57 +01:00  
				
					
						
							
							
								 
						
							
							
								0269367f18 
								
							
								 
							
						 
						
							
							
								
								allow non-consented users to still part rooms (to let us autopart them)  
							
							
							
						 
						
							2018-06-25 17:56:10 +01:00  
				
					
						
							
							
								 
						
							
							
								07cad26d65 
								
									
								
							
								 
							
						 
						
							
							
								
								Remove all global reactor imports & pass it around explicitly ( #3424 )  
							
							
							
						 
						
							2018-06-25 14:08:28 +01:00  
				
					
						
							
							
								 
						
							
							
								77ac14b960 
								
									
								
							
								 
							
						 
						
							
							
								
								Pass around the reactor explicitly ( #3385 )  
							
							
							
						 
						
							2018-06-22 09:37:10 +01:00  
				
					
						
							
							
								 
						
							
							
								a61738b316 
								
									
								
							
								 
							
						 
						
							
							
								
								Remove run_on_reactor ( #3395 )  
							
							
							
						 
						
							2018-06-14 18:27:37 +10:00  
				
					
						
							
							
								 
						
							
							
								4a9cbdbc15 
								
							
								 
							
						 
						
							
							
								
								Exempt AS-registered users from doing gdpr  
							
							
							
						 
						
							2018-05-29 19:54:32 +01:00  
				
					
						
							
							
								 
						
							
							
								17a70cf6e9 
								
							
								 
							
						 
						
							
							
								
								Misc. py3 fixes  
							
							... 
							
							
							
							Signed-off-by: Adrian Tschira <nota@notafile.com> 
							
						 
						
							2018-05-24 20:20:33 +02:00  
				
					
						
							
							
								 
						
							
							
								a0b3946fe2 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge branch 'release-v0.30.0' into rav/localpart_in_consent_uri  
							
							
							
						 
						
							2018-05-23 16:06:03 +01:00  
				
					
						
							
							
								 
						
							
							
								3ff6f50eac 
								
							
								 
							
						 
						
							
							
								
								Use the localpart in the consent uri  
							
							... 
							
							
							
							... because it's shorter. 
							
						 
						
							2018-05-23 15:28:23 +01:00  
				
					
						
							
							
								 
						
							
							
								82191b08f6 
								
							
								 
							
						 
						
							
							
								
								Support for putting %(consent_uri)s in messages  
							
							... 
							
							
							
							Make it possible to put the URI in the error message and the server notice that
get sent by the server 
							
						 
						
							2018-05-23 15:24:31 +01:00  
				
					
						
							
							
								 
						
							
							
								a5e2941aad 
								
							
								 
							
						 
						
							
							
								
								Reject attempts to send event before privacy consent is given  
							
							... 
							
							
							
							Returns an M_CONSENT_NOT_GIVEN error (cf
https://github.com/matrix-org/matrix-doc/issues/1252 ) if consent is not yet
given. 
							
						 
						
							2018-05-22 12:00:47 +01:00  
				
					
						
							
							
								 
						
							
							
								5f27ed75ad 
								
							
								 
							
						 
						
							
							
								
								Make purge_history operate on tokens  
							
							... 
							
							
							
							As we're soon going to change how topological_ordering works 
							
						 
						
							2018-05-15 16:23:50 +01:00  
				
					
						
							
							
								 
						
							
							
								ca7211104e 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'release-v0.28.1' into develop  
							
							
							
						 
						
							2018-05-01 18:16:57 +01:00  
				
					
						
							
							
								 
						
							
							
								33f469ba19 
								
							
								 
							
						 
						
							
							
								
								Apply some limits to depth to counter abuse  
							
							... 
							
							
							
							* When creating a new event, cap its depth to 2^63 - 1
* When receiving events, reject any without a sensible depth
As per https://docs.google.com/document/d/1I3fi2S-XnpO45qrpCsowZv8P8dHcNZ4fsBsbOW7KABI  
							
						 
						
							2018-05-01 17:54:19 +01:00  
				
					
						
							
							
								 
						
							
							
								453adf00b6 
								
							
								 
							
						 
						
							
							
								
								pep8; remove spurious import  
							
							
							
						 
						
							2018-04-27 14:32:08 +01:00  
				
					
						
							
							
								 
						
							
							
								fc149b4eeb 
								
							
								 
							
						 
						
							
							
								
								Merge remote-tracking branch 'origin/develop' into rav/use_run_in_background  
							
							
							
						 
						
							2018-04-27 14:31:23 +01:00  
				
					
						
							
							
								 
						
							
							
								2a13af23bc 
								
							
								 
							
						 
						
							
							
								
								Use run_in_background in preference to preserve_fn  
							
							... 
							
							
							
							While I was going through uses of preserve_fn for other PRs, I converted places
which only use the wrapped function once to use run_in_background, to avoid
creating the function object. 
							
						 
						
							2018-04-27 12:55:51 +01:00  
				
					
						
							
							
								 
						
							
							
								41d4b07a53 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #3142  from matrix-org/rav/reraise  
							
							... 
							
							
							
							reraise exceptions more carefully 
							
						 
						
							2018-04-27 12:16:19 +01:00  
				
					
						
							
							
								 
						
							
							
								6493b22b42 
								
							
								 
							
						 
						
							
							
								
								reraise exceptions more carefully  
							
							... 
							
							
							
							We need to be careful (under python 2, at least) that when we reraise an
exception after doing some error handling, we actually reraise the original
exception rather than anything that might have been raised (and handled) during
the error handling. 
							
						 
						
							2018-04-27 11:40:06 +01:00  
				
					
						
							
							
								 
						
							
							
								9255a6cb17 
								
							
								 
							
						 
						
							
							
								
								Improve exception handling for background processes  
							
							... 
							
							
							
							There were a bunch of places where we fire off a process to happen in the
background, but don't have any exception handling on it - instead relying on
the unhandled error being logged when the relevent deferred gets
garbage-collected.
This is unsatisfactory for a number of reasons:
 - logging on garbage collection is best-effort and may happen some time after
   the error, if at all
 - it can be hard to figure out where the error actually happened.
 - it is logged as a scary CRITICAL error which (a) I always forget to grep for
   and (b) it's not really CRITICAL if a background process we don't care about
   fails.
So this is an attempt to add exception handling to everything we fire off into
the background. 
							
						 
						
							2018-04-27 11:07:40 +01:00  
				
					
						
							
							
								 
						
							
							
								639480e14a 
								
							
								 
							
						 
						
							
							
								
								Avoid creating events with huge numbers of prev_events  
							
							... 
							
							
							
							In most cases, we limit the number of prev_events for a given event to 10
events. This fixes a particular code path which created events with huge
numbers of prev_events. 
							
						 
						
							2018-04-16 18:41:37 +01:00  
				
					
						
							
							
								 
						
							
							
								f8e8ec013b 
								
							
								 
							
						 
						
							
							
								
								Note why we're limiting concurrent event sends  
							
							
							
						 
						
							2018-04-10 14:00:46 +01:00  
				
					
						
							
							
								 
						
							
							
								e5082494eb 
								
							
								 
							
						 
						
							
							
								
								Limit concurrent event sends for a room  
							
							
							
						 
						
							2018-04-09 12:07:39 +01:00  
				
					
						
							
							
								 
						
							
							
								05630758f2 
								
							
								 
							
						 
						
							
							
								
								Use static JSONEncoders  
							
							... 
							
							
							
							using json.dumps with custom options requires us to create a new JSONEncoder on
each call. It's more efficient to create one upfront and reuse it. 
							
						 
						
							2018-03-29 23:13:33 +01:00  
				
					
						
							
							
								 
						
							
							
								fa72803490 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'master' of github.com:matrix-org/synapse into develop  
							
							
							
						 
						
							2018-03-19 11:41:01 +00:00  
				
					
						
							
							
								 
						
							
							
								926ba76e23 
								
							
								 
							
						 
						
							
							
								
								Replace ujson with simplejson  
							
							
							
						 
						
							2018-03-15 23:43:31 +00:00  
				
					
						
							
							
								 
						
							
							
								d0fcc48f9d 
								
							
								 
							
						 
						
							
							
								
								extra_users is actually a list of UserIDs  
							
							
							
						 
						
							2018-03-13 11:20:06 +00:00  
				
					
						
							
							
								 
						
							
							
								e48c7aac4d 
								
							
								 
							
						 
						
							
							
								
								Add transactional API to history purge  
							
							... 
							
							
							
							Make the purge request return quickly, and allow scripts to poll for updates. 
							
						 
						
							2018-03-12 16:22:55 +00:00  
				
					
						
							
							
								 
						
							
							
								1708412f56 
								
							
								 
							
						 
						
							
							
								
								Return an error when doing two purges on a room  
							
							... 
							
							
							
							Queuing up purges doesn't sound like a good thing. 
							
						 
						
							2018-03-12 16:22:54 +00:00  
				
					
						
							
							
								 
						
							
							
								f8bfcd7e0d 
								
							
								 
							
						 
						
							
							
								
								Provide a means to pass a timestamp to purge_history  
							
							
							
						 
						
							2018-03-05 14:37:23 +00:00  
				
					
						
							
							
								 
						
							
							
								f381d63813 
								
							
								 
							
						 
						
							
							
								
								Check event auth on the worker  
							
							
							
						 
						
							2018-03-01 10:18:37 +00:00  
				
					
						
							
							
								 
						
							
							
								6b8604239f 
								
							
								 
							
						 
						
							
							
								
								Correctly send ratelimit and extra_users params  
							
							
							
						 
						
							2018-03-01 10:08:39 +00:00  
				
					
						
							
							
								 
						
							
							
								f756f961ea 
								
							
								 
							
						 
						
							
							
								
								Fixup comments  
							
							
							
						 
						
							2018-03-01 10:05:27 +00:00  
				
					
						
							
							
								 
						
							
							
								28e973ac11 
								
							
								 
							
						 
						
							
							
								
								Calculate push actions on worker  
							
							
							
						 
						
							2018-02-28 18:02:30 +00:00  
				
					
						
							
							
								 
						
							
							
								b96278d6fe 
								
							
								 
							
						 
						
							
							
								
								Ensure that we delete staging push actions on errors  
							
							
							
						 
						
							2018-02-15 15:47:06 +00:00  
				
					
						
							
							
								 
						
							
							
								c0c9327fe0 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2854  from matrix-org/erikj/event_create_worker  
							
							... 
							
							
							
							Create a worker for event creation 
							
						 
						
							2018-02-13 18:07:10 +00:00  
				
					
						
							
							
								 
						
							
							
								10b34dbb9a 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2858  from matrix-org/rav/purge_updates  
							
							... 
							
							
							
							delete_local_events for purge_room_history 
							
						 
						
							2018-02-09 14:11:00 +00:00  
				
					
						
							
							
								 
						
							
							
								74fcbf741b 
								
							
								 
							
						 
						
							
							
								
								delete_local_events for purge_history  
							
							... 
							
							
							
							Add a flag which makes the purger delete local events 
							
						 
						
							2018-02-09 13:07:41 +00:00  
				
					
						
							
							
								 
						
							
							
								671540dccf 
								
							
								 
							
						 
						
							
							
								
								rename delete_old_state -> purge_history  
							
							... 
							
							
							
							(beacause it deletes more than state) 
							
						 
						
							2018-02-09 13:07:41 +00:00  
				
					
						
							
							
								 
						
							
							
								50fe92cd26 
								
							
								 
							
						 
						
							
							
								
								Move presence handling into handle_new_client_event  
							
							... 
							
							
							
							As we want to have it run on the main synapse instance 
							
						 
						
							2018-02-07 10:34:09 +00:00  
				
					
						
							
							
								 
						
							
							
								24dd73028a 
								
							
								 
							
						 
						
							
							
								
								Add replication http endpoint for event sending  
							
							
							
						 
						
							2018-02-07 10:32:32 +00:00  
				
					
						
							
							
								 
						
							
							
								e3624fad5f 
								
							
								 
							
						 
						
							
							
								
								Remove pointless ratelimit check  
							
							... 
							
							
							
							The intention was for the check to be called as early as possible in the
request, but actually was called just before the main ratelimit check,
so was fairly pointless. 
							
						 
						
							2018-02-07 10:30:25 +00:00  
				
					
						
							
							
								 
						
							
							
								3e1e69ccaf 
								
							
								 
							
						 
						
							
							
								
								Update copyright  
							
							
							
						 
						
							2018-02-06 16:40:38 +00:00  
				
					
						
							
							
								 
						
							
							
								770b2252ca 
								
							
								 
							
						 
						
							
							
								
								s/_create_new_client_event/create_new_client_event/  
							
							
							
						 
						
							2018-02-06 16:40:30 +00:00  
				
					
						
							
							
								 
						
							
							
								5ff3d23564 
								
							
								 
							
						 
						
							
							
								
								Split event creation into a separate handler  
							
							
							
						 
						
							2018-02-05 16:01:48 +00:00  
				
					
						
							
							
								 
						
							
							
								eaaabc6c4f 
								
							
								 
							
						 
						
							
							
								
								replace 'except:' with 'except Exception:'  
							
							... 
							
							
							
							what could possibly go wrong 
							
						 
						
							2017-10-23 15:52:32 +01:00  
				
					
						
							
							
								 
						
							
							
								b78bae2d51 
								
							
								 
							
						 
						
							
							
								
								fix isinstance  
							
							
							
						 
						
							2017-10-11 14:49:09 +01:00  
				
					
						
							
							
								 
						
							
							
								c3b7a45e84 
								
							
								 
							
						 
						
							
							
								
								Allow error strings from spam checker  
							
							
							
						 
						
							2017-10-11 14:39:22 +01:00  
				
					
						
							
							
								 
						
							
							
								535cc49f27 
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2466  from matrix-org/erikj/groups_merged  
							
							... 
							
							
							
							Initial Group Implementation 
							
						 
						
							2017-10-11 13:20:07 +01:00  
				
					
						
							
							
								 
						
							
							
								bc7f3eb32f 
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #2483  from jeremycline/unfreeze-ujson-dump  
							
							... 
							
							
							
							Unfreeze event before serializing with ujson 
							
						 
						
							2017-10-11 13:18:52 +01:00  
				
					
						
							
							
								 
						
							
							
								27955056e0 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'develop' into erikj/groups_merged  
							
							
							
						 
						
							2017-10-02 16:20:41 +01:00  
				
					
						
							
							
								 
						
							
							
								cafb8de132 
								
									
								
							
								 
							
						 
						
							
							
								
								Unfreeze event before serializing with ujson  
							
							... 
							
							
							
							In newer versions of https://github.com/esnme/ultrajson , ujson does not
serialize frozendicts (introduced in esnme/ultrajson@53f85b1 ). Although
the PyPI version is still 1.35, Fedora ships with a build from commit
esnme/ultrajson@2f1d487 . This causes the serialization to fail if the
distribution-provided package is used.
This runs the event through the unfreeze utility before serializing it.
Thanks to @ignatenkobrain for tracking down the root cause.
fixes  #2351 
Signed-off-by: Jeremy Cline <jeremy@jcline.org> 
							
						 
						
							2017-09-30 11:22:37 -04:00  
				
					
						
							
							
								 
						
							
							
								8090fd4664 
								
							
								 
							
						 
						
							
							
								
								Fix /joined_members to work with AS users  
							
							
							
						 
						
							2017-09-28 10:09:32 +01:00  
				
					
						
							
							
								 
						
							
							
								adec03395d 
								
							
								 
							
						 
						
							
							
								
								Fix bug where /joined_members didn't check user was in room  
							
							
							
						 
						
							2017-09-27 15:14:39 +01:00  
				
					
						
							
							
								 
						
							
							
								6cd5fcd536 
								
							
								 
							
						 
						
							
							
								
								Make the spam checker a module  
							
							
							
						 
						
							2017-09-26 19:20:23 +01:00  
				
					
						
							
							
								 
						
							
							
								5ed109d59f 
								
							
								 
							
						 
						
							
							
								
								PoC for filtering spammy events ( #2456 )  
							
							... 
							
							
							
							Demonstration of how you might add some hooks to filter out spammy events. 
							
						 
						
							2017-09-19 12:20:11 +01:00  
				
					
						
							
							
								 
						
							
							
								bf81f3cf2c 
								
							
								 
							
						 
						
							
							
								
								Split out profile handler to fix tests  
							
							
							
						 
						
							2017-08-25 14:34:56 +01:00  
				
					
						
							
							
								 
						
							
							
								5a7f561a9b 
								
							
								 
							
						 
						
							
							
								
								Fix bug where pusherpool didn't start and broke some rooms  
							
							... 
							
							
							
							Since we didn't instansiate the PusherPool at start time it could fail
at run time, which it did for some users.
This may or may not fix things for those users, but it should happen at
start time and stop the server from starting. 
							
						 
						
							2017-07-06 17:55:51 +01:00  
				
					
						
							
							
								 
						
							
							
								1bce3e6b35 
								
							
								 
							
						 
						
							
							
								
								Remove unused variables  
							
							
							
						 
						
							2017-06-26 14:03:27 +01:00  
				
					
						
							
							
								 
						
							
							
								fcf01dd88e 
								
							
								 
							
						 
						
							
							
								
								Reject local events that don't round trip the DB  
							
							
							
						 
						
							2017-06-19 11:33:40 +01:00  
				
					
						
							
							
								 
						
							
							
								cafe659f72 
								
							
								 
							
						 
						
							
							
								
								Store ActionGenerator in HomeServer  
							
							
							
						 
						
							2017-05-19 10:09:56 +01:00  
				
					
						
							
							
								 
						
							
							
								66d8ffabbd 
								
							
								 
							
						 
						
							
							
								
								Faster push rule calculation via push specific cache  
							
							... 
							
							
							
							We add a push rule specific cache that ensures that we can reuse
calculated push rules appropriately when a user join/leaves. 
							
						 
						
							2017-05-17 16:55:40 +01:00  
				
					
						
							
							
								 
						
							
							
								b990b2fce5 
								
							
								 
							
						 
						
							
							
								
								Add per user ratelimiting overrides  
							
							
							
						 
						
							2017-05-10 11:05:43 +01:00  
				
					
						
							
							
								 
						
							
							
								3e5a62ecd8 
								
							
								 
							
						 
						
							
							
								
								Add more granular event send metrics  
							
							
							
						 
						
							2017-05-02 14:23:26 +01:00  
				
					
						
							
							
								 
						
							
							
								34e682d385 
								
							
								 
							
						 
						
							
							
								
								Fix invite state to always include all events  
							
							
							
						 
						
							2017-04-26 16:18:08 +01:00  
				
					
						
							
							
								 
						
							
							
								7eb9f34cc3 
								
							
								 
							
						 
						
							
							
								
								Remove spurious yield  
							
							... 
							
							
							
							In `MessageHandler`, remove `yield` on call to `Notifier.on_new_room_event`:
it doesn't return anything anyway. 
							
						 
						
							2017-04-03 15:44:19 +01:00  
				
					
						
							
							
								 
						
							
							
								10e48d8310 
								
							
								 
							
						 
						
							
							
								
								Don't clobber a displayname or avatar_url if provided by an m.room.member event  
							
							
							
						 
						
							2017-01-24 18:06:07 +00:00  
				
					
						
							
							
								 
						
							
							
								3b4de17d2b 
								
							
								 
							
						 
						
							
							
								
								Comment  
							
							
							
						 
						
							2017-01-10 14:05:53 +00:00  
				
					
						
							
							
								 
						
							
							
								586f474a44 
								
							
								 
							
						 
						
							
							
								
								Don't block messages sending on bumping presence  
							
							
							
						 
						
							2017-01-10 12:46:00 +00:00  
				
					
						
							
							
								 
						
							
							
								d53a80af25 
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #1620  from matrix-org/erikj/concurrent_room_access  
							
							... 
							
							
							
							Limit the number of events that can be created on a given room concurrently 
							
						 
						
							2016-12-12 10:30:23 +00:00  
				
					
						
							
							
								 
						
							
							
								f8ee66250a 
								
							
								 
							
						 
						
							
							
								
								Handle sending events and device messages over federation  
							
							
							
						 
						
							2016-11-17 15:48:04 +00:00  
				
					
						
							
							
								 
						
							
							
								64038b806c 
								
							
								 
							
						 
						
							
							
								
								Comments  
							
							
							
						 
						
							2016-11-11 10:42:08 +00:00  
				
					
						
							
							
								 
						
							
							
								2bd4513a4d 
								
							
								 
							
						 
						
							
							
								
								Limit the number of events that can be created on a given room concurretnly  
							
							
							
						 
						
							2016-11-10 16:44:35 +00:00  
				
					
						
							
							
								 
						
							
							
								a4632783fb 
								
							
								 
							
						 
						
							
							
								
								Sample correctly  
							
							
							
						 
						
							2016-11-08 11:20:26 +00:00  
				
					
						
							
							
								 
						
							
							
								eeda4e618c 
								
							
								 
							
						 
						
							
							
								
								Limit the number of prev_events of new events  
							
							
							
						 
						
							2016-11-08 11:02:29 +00:00  
				
					
						
							
							
								 
						
							
							
								d04e2ff3a4 
								
							
								 
							
						 
						
							
							
								
								Fix incredubly slow back pagination query  
							
							... 
							
							
							
							If a client didn't specify a from token when paginating backwards
synapse would attempt to query the (global) maximum topological token.
This a) doesn't make much sense since they're room specific and b) there
are no indices that lets postgres do this efficiently. 
							
						 
						
							2016-10-24 13:35:51 +01:00  
				
					
						
							
							
								 
						
							
							
								f2f74ffce6 
								
							
								 
							
						 
						
							
							
								
								Comment  
							
							
							
						 
						
							2016-10-19 14:21:28 +01:00  
				
					
						
							
							
								 
						
							
							
								550308c7a1 
								
							
								 
							
						 
						
							
							
								
								Check whether to ratelimit sooner to avoid work  
							
							
							
						 
						
							2016-10-19 10:45:24 +01:00  
				
					
						
							
							
								 
						
							
							
								87528f0756 
								
							
								 
							
						 
						
							
							
								
								Support /initialSync in synchrotron worker  
							
							
							
						 
						
							2016-09-21 11:46:28 +01:00  
				
					
						
							
							
								 
						
							
							
								69a2d4e38c 
								
							
								 
							
						 
						
							
							
								
								Use get_joined_users_from_context instead of manually looking up hosts  
							
							
							
						 
						
							2016-09-05 13:44:40 +01:00  
				
					
						
							
							
								 
						
							
							
								c10cb581c6 
								
							
								 
							
						 
						
							
							
								
								Correctly handle the difference between prev and current state  
							
							
							
						 
						
							2016-08-31 14:26:22 +01:00  
				
					
						
							
							
								 
						
							
							
								a3dc1e9cbe 
								
							
								 
							
						 
						
							
							
								
								Replace context.current_state with context.current_state_ids  
							
							
							
						 
						
							2016-08-25 17:32:22 +01:00