Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Improve exception handling for background processes | Richard van der Hoff | 2018-04-27 | 1 | -11/+14 |
| | | | | | | | | | | | | | | | | | | 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. | ||||
* | Refactor ResponseCache usage | Richard van der Hoff | 2018-04-12 | 1 | -7/+1 |
| | | | | | | | | | | | | | | | Adds a `.wrap` method to ResponseCache which wraps up the boilerplate of a (get, set) pair, and then use it throughout the codebase. This will be largely non-functional, but does include the following functional changes: * federation_server.on_context_state_request: drops use of _server_linearizer which looked redundant and could cause incorrect cache misses by yielding between the get and the set. * RoomListHandler.get_remote_public_room_list(): fixes logcontext leaks * the wrap function includes some logging. I'm hoping this won't be too noisy on production. | ||||
* | Add metrics for ResponseCache | Richard van der Hoff | 2018-04-10 | 1 | -1/+2 |
| | |||||
* | Replace some type checks with six type checks | Adrian Tschira | 2018-04-07 | 1 | -1/+3 |
| | | | | Signed-off-by: Adrian Tschira <nota@notafile.com> | ||||
* | Extract group_id from the dict for multiple use | Luke Barnard | 2017-11-16 | 1 | -4/+5 |
| | |||||
* | Remove unused GROUP_ID_REGEX | Luke Barnard | 2017-11-16 | 1 | -2/+0 |
| | |||||
* | Document get_groups_for_user | Luke Barnard | 2017-11-16 | 1 | -0/+6 |
| | |||||
* | Flake8 | Luke Barnard | 2017-11-16 | 1 | -1/+1 |
| | |||||
* | Use a generator instead of a list | Luke Barnard | 2017-11-16 | 1 | -2/+2 |
| | |||||
* | Check group_id belongs to this domain | Luke Barnard | 2017-11-16 | 1 | -3/+11 |
| | |||||
* | Add automagical AS Publicised Group(s) | Luke Barnard | 2017-11-16 | 1 | -0/+22 |
| | | | | | | | | | | | | | | | | via registration file "users" namespace: ```YAML ... namespaces: users: - exclusive: true regex: '.*luke.*' group_id: '+all_the_lukes:hsdomain' ... ``` This is part of giving App Services their own groups for matching users. With this, ghost users will be given the appeareance that they are in a group and that they have publicised the fact, but _only_ from the perspective of the `get_publicised_groups_for_user` API. | ||||
* | Do logcontexts outside ResponseCache | Erik Johnston | 2017-10-25 | 1 | -3/+7 |
| | |||||
* | replace 'except:' with 'except Exception:' | Richard van der Hoff | 2017-10-23 | 1 | -1/+1 |
| | | | | what could possibly go wrong | ||||
* | Make get_if_app_services_interested_in_user faster | Erik Johnston | 2017-05-18 | 1 | -0/+10 |
| | |||||
* | Add comment | Erik Johnston | 2017-03-29 | 1 | -1/+1 |
| | |||||
* | Cache whether an AS is interested based on members | Erik Johnston | 2017-03-28 | 1 | -1/+9 |
| | |||||
* | Remove param and cast at call site | Erik Johnston | 2017-03-28 | 1 | -8/+6 |
| | |||||
* | Compile the regex's used in ASes | Erik Johnston | 2017-03-28 | 1 | -9/+5 |
| | |||||
* | Rename network_id to instance_id on client side | Erik Johnston | 2016-12-12 | 1 | -1/+1 |
| | |||||
* | Don't include appservice id | Erik Johnston | 2016-12-06 | 1 | -1/+0 |
| | |||||
* | Add new API appservice specific public room list | Erik Johnston | 2016-12-06 | 2 | -0/+12 |
| | |||||
* | Allow Configurable Rate Limiting Per AS | Luke Barnard | 2016-10-18 | 1 | -1/+6 |
| | | | | This adds a flag loaded from the registration file of an AS that will determine whether or not its users are rate limited (by ratelimit in _base.py). Needed for IRC bridge reasons - see https://github.com/matrix-org/matrix-appservice-irc/issues/240. | ||||
* | Log if rejecting 3PE query metadata result due to type check | Paul "LeoNerd" Evans | 2016-09-09 | 1 | -4/+11 |
| | |||||
* | Reject malformed 3PE query metadata results earlier in AS API handling code | Paul "LeoNerd" Evans | 2016-09-09 | 1 | -2/+10 |
| | |||||
* | Use None instead of the empty string | Kegan Dougal | 2016-08-30 | 1 | -5/+5 |
| | | | | Change how we validate the 'url' field as a result. | ||||
* | Flake8 | Kegan Dougal | 2016-08-30 | 1 | -0/+1 |
| | |||||
* | Allow application services to have an optional 'url' | Kegan Dougal | 2016-08-30 | 1 | -0/+11 |
| | | | | | | If 'url' is not specified, they will not be pushed for events or queries. This is useful for bots who simply wish to reserve large chunks of user/alias namespace, and don't care about being pushed for events. | ||||
* | Just sprintf the 'kind' argument into uri directly | Paul "LeoNerd" Evans | 2016-08-25 | 1 | -3/+1 |
| | |||||
* | Move ThirdPartyEntityKind into api.constants so the expectation becomes that ↵ | Paul "LeoNerd" Evans | 2016-08-25 | 1 | -1/+1 |
| | | | | the value is significant | ||||
* | Root the 3PE lookup API within /_matrix/app/unstable instead of at toplevel | Paul "LeoNerd" Evans | 2016-08-25 | 1 | -3/+16 |
| | |||||
* | Merge pull request #1041 from matrix-org/paul/third-party-lookup | Paul Evans | 2016-08-25 | 2 | -2/+26 |
|\ | | | | | Extend 3PE lookup APIs for metadata query | ||||
| * | appease pep8 | Paul "LeoNerd" Evans | 2016-08-25 | 1 | -3/+2 |
| | | |||||
| * | Implement a ResponseCache around 3PE lookup metadata lookups | Paul "LeoNerd" Evans | 2016-08-25 | 1 | -11/+21 |
| | | |||||
| * | Kill PROTOCOL_META since I'm not using it any more | Paul "LeoNerd" Evans | 2016-08-25 | 1 | -7/+0 |
| | | |||||
| * | Actually query over AS API for 3PE lookup metadata | Paul "LeoNerd" Evans | 2016-08-25 | 1 | -0/+20 |
| | | |||||
| * | Initial hack at the 3PN protocols metadata lookup API | Paul "LeoNerd" Evans | 2016-08-24 | 1 | -0/+2 |
| | | |||||
| * | Move 3PU/3PL lookup APIs into /thirdparty containing entity | Paul "LeoNerd" Evans | 2016-08-24 | 1 | -2/+2 |
| | | |||||
* | | Preserve some logcontexts | Erik Johnston | 2016-08-24 | 1 | -3/+3 |
|/ | |||||
* | Move validation logic for AS 3PE query response into ApplicationServiceApi ↵ | Paul "LeoNerd" Evans | 2016-08-18 | 1 | -1/+42 |
| | | | | class, to keep the handler logic neater | ||||
* | Avoid so much copypasta between 3PU and 3PL query by unifying around a ↵ | Paul "LeoNerd" Evans | 2016-08-18 | 1 | -14/+11 |
| | | | | ThirdPartyEntityKind enumeration | ||||
* | Minor syntax neatenings | Paul "LeoNerd" Evans | 2016-08-18 | 1 | -2/+2 |
| | |||||
* | Copypasta the 3PU support code to also do 3PL | Paul "LeoNerd" Evans | 2016-08-18 | 1 | -0/+11 |
| | |||||
* | Filter 3PU lookups by only ASes that declare knowledge of that protocol | Paul "LeoNerd" Evans | 2016-08-18 | 1 | -1/+8 |
| | |||||
* | Merge remote-tracking branch 'origin/develop' into paul/thirdpartylookup | Paul "LeoNerd" Evans | 2016-08-18 | 2 | -70/+72 |
|\ | |||||
| * | Make notify_interested_services faster | Erik Johnston | 2016-08-17 | 1 | -39/+42 |
| | | |||||
| * | Change name of metric | Matrix | 2016-08-17 | 1 | -1/+1 |
| | | |||||
| * | Move Measure block inside loop | Erik Johnston | 2016-08-17 | 1 | -9/+9 |
| | | |||||
| * | Clean up _ServiceQueuer | Erik Johnston | 2016-08-17 | 1 | -31/+30 |
| | | |||||
* | | Since empty lookups now return 200/empty list not 404, we can safely log ↵ | Paul "LeoNerd" Evans | 2016-08-18 | 1 | -3/+2 |
| | | | | | | | | failures as exceptions | ||||
* | | Don't catch the return-value-as-exception that @defer.inlineCallbacks will use | Paul "LeoNerd" Evans | 2016-08-18 | 1 | -1/+1 |
| | | |||||
* | | Actually make 3PU lookup calls out to ASes | Paul "LeoNerd" Evans | 2016-08-18 | 1 | -1/+10 |
| | | |||||
* | | Thread 3PU lookup through as far as the AS API object; which currently noöps it | Paul "LeoNerd" Evans | 2016-08-17 | 1 | -0/+3 |
|/ | |||||
* | Move the AS handler out of the Handlers object. | Mark Haines | 2016-05-31 | 1 | -7/+7 |
| | | | | | | Access it directly from the homeserver itself. It already wasn't inheriting from BaseHandler storing it on the Handlers object was already somewhat dubious. | ||||
* | Remove some unused functions (#711) | Mark Haines | 2016-04-08 | 1 | -5/+0 |
| | | | | | | | | * Remove some unused functions * get_room_events_stream is only used in tests * is_exclusive_room might actually be something we want | ||||
* | Fix flake8 warnings for new flake8 | Daniel Wagner-Hall | 2016-02-02 | 1 | -1/+1 |
| | |||||
* | copyrights | Matthew Hodgson | 2016-01-07 | 3 | -3/+3 |
| | |||||
* | Cap the time to retry txns to appservices to 8.5 minutes | Kegan Dougal | 2015-10-21 | 1 | -2/+2 |
| | | | | | | | | | | | There's been numerous issues with people playing around with their application service and then not receiving events from their HS for ages due to backoff timers reaching crazy heights (albeit capped at < 1 day). Reduce the max time between pokes to be 8.5 minutes (2^9 secs) which is quick enough for people to wait it out (avg wait time being 4.25 min) but long enough to actually give the AS breathing room if it needs it. | ||||
* | Make the appservice use 'users_in_room' rather than get_room_members since ↵ | Mark Haines | 2015-05-22 | 1 | -3/+3 |
| | | | | it is cached | ||||
* | Fix more AS sender ID thinkos. | Kegan Dougal | 2015-04-01 | 1 | -1/+4 |
| | | | | | | Specifically, the ASes own user ID wasn't being treated as 'exclusive' so a human could nab it. Also, the HS would needlessly send user queries to the AS for its own user ID. | ||||
* | Merge branch 'develop' into application-services-registration-script | Kegan Dougal | 2015-04-01 | 1 | -1/+4 |
|\ | |||||
| * | Fix thinko whereby events *for the AS specifically* were not passed on. | Kegan Dougal | 2015-03-31 | 1 | -1/+4 |
| | | | | | | | | | | This was caused by not explicitly checking the service.sender field. This has now been fixed and a regression test has been added. | ||||
* | | Fix tests and missing returns on deferreds. | Kegan Dougal | 2015-03-31 | 1 | -1/+1 |
|/ | |||||
* | Fixes from PR comments | Kegan Dougal | 2015-03-26 | 1 | -1/+2 |
| | |||||
* | Implement ServiceQueuer with tests. | Kegan Dougal | 2015-03-16 | 1 | -16/+30 |
| | |||||
* | Replace EventGrouper for ServiceQueuer to move to push-based txns. Fix tests ↵ | Kegan Dougal | 2015-03-16 | 1 | -28/+33 |
| | | | | and add stub tests for ServiceQueuer. | ||||
* | Wrap polling/retry blocks in try/excepts to avoid sending to other ASes ↵ | Kegan Dougal | 2015-03-16 | 1 | -29/+39 |
| | | | | breaking permanently should an error occur. | ||||
* | Minor PR comment tweaks. | Kegan Dougal | 2015-03-16 | 1 | -2/+2 |
| | |||||
* | Fix remaining scheduler bugs. Add more informative logging. | Kegan Dougal | 2015-03-10 | 2 | -35/+25 |
| | |||||
* | Bug fixes whilst putting it all together | Kegan Dougal | 2015-03-09 | 2 | -1/+4 |
| | |||||
* | Use seconds; start gluing in the AS scheduler into the AS handler. | Kegan Dougal | 2015-03-09 | 1 | -2/+2 |
| | |||||
* | Assign the AS ID from the database; replace old placeholder txn id. | Kegan Dougal | 2015-03-06 | 1 | -2/+2 |
| | |||||
* | Upper bound the backoff. | Kegan Dougal | 2015-03-06 | 1 | -1/+3 |
| | |||||
* | Apply clarity and docstrings | Kegan Dougal | 2015-03-06 | 1 | -1/+1 |
| | |||||
* | Finish synapse.appservice.scheduler implementation. | Kegan Dougal | 2015-03-06 | 2 | -51/+51 |
| | | | | | With tests to assert behaviour. Not hooked up yet. Stub datastore methods not implemented yet. | ||||
* | Add some loggers | Kegan Dougal | 2015-03-06 | 1 | -0/+10 |
| | |||||
* | Flesh out more stub functions. | Kegan Dougal | 2015-03-06 | 2 | -8/+34 |
| | |||||
* | Add stub ApplicationServiceTransactionStore. Bootstrap Recoverers. Fill in ↵ | Kegan Dougal | 2015-03-06 | 1 | -7/+43 |
| | | | | stub Transaction functions. | ||||
* | Add more tests; fix bugs. | Kegan Dougal | 2015-03-06 | 1 | -2/+2 |
| | |||||
* | Start adding some tests | Kegan Dougal | 2015-03-06 | 1 | -10/+13 |
| | |||||
* | Rejig structure given the appservice_handler already filters the correct ↵ | Kegan Dougal | 2015-03-06 | 1 | -59/+85 |
| | | | | ASes to use. | ||||
* | Minor tweaks | Kegan Dougal | 2015-03-05 | 1 | -7/+9 |
| | |||||
* | Add stub architecture for txn reliability. | Kegan Dougal | 2015-03-05 | 1 | -10/+111 |
| | |||||
* | Add stub scheduler module for txn reliability | Kegan Dougal | 2015-03-05 | 1 | -0/+68 |
| | |||||
* | Add txn_id kwarg to push methods | Kegan Dougal | 2015-03-05 | 1 | -4/+9 |
| | |||||
* | Add functions to return whether an AS has exclusively claimed a matching ↵ | Kegan Dougal | 2015-02-27 | 1 | -3/+20 |
| | | | | namespace. | ||||
* | Convert expected format for AS regex to include exclusivity. | Kegan Dougal | 2015-02-27 | 1 | -7/+19 |
| | | | | | Previously you just specified the regex as a string, now it expects a JSON object with a 'regex' key and an 'exclusive' boolean, as per spec. | ||||
* | Minor tweaks based on PR feedback. | Kegan Dougal | 2015-02-11 | 1 | -3/+3 |
| | |||||
* | PEP8-ify | Kegan Dougal | 2015-02-11 | 1 | -2/+0 |
| | |||||
* | Notify ASes for events sent by other users in a room which an AS user is a ↵ | Kegan Dougal | 2015-02-11 | 1 | -4/+13 |
| | | | | part of. | ||||
* | Fix bugs so lazy room joining works as intended. | Kegan Dougal | 2015-02-09 | 1 | -3/+3 |
| | |||||
* | Register a user account for the AS when the AS registers. Add 'sender' ↵ | Kegan Dougal | 2015-02-09 | 1 | -1/+2 |
| | | | | column to AS table. | ||||
* | Fix user query checks. HS>AS pushing now works. | Kegan Dougal | 2015-02-05 | 1 | -8/+13 |
| | |||||
* | Serialize events before sending to ASes | Kegan Dougal | 2015-02-05 | 1 | -0/+10 |
| | |||||
* | Glue AS work to general event notifications. Add more exception handling ↵ | Kegan Dougal | 2015-02-05 | 2 | -2/+11 |
| | | | | when poking ASes. | ||||
* | Add hs_token column and generate a different token f.e application service. | Kegan Dougal | 2015-02-05 | 2 | -6/+8 |
| | |||||
* | Impl push_bulk function | Kegan Dougal | 2015-02-05 | 1 | -1/+18 |
| | |||||
* | Update user/alias query APIs to use new format of SimpleHttpClient.get_json | Kegan Dougal | 2015-02-04 | 1 | -8/+7 |
| | |||||
* | Add query_user/alias APIs. | Kegan Dougal | 2015-02-04 | 1 | -4/+43 |
| | |||||
* | Begin to add unit tests for appservice glue and regex testing. | Kegan Dougal | 2015-02-04 | 1 | -2/+12 |
| | |||||
* | Add stub ApplicationServiceApi and glue it with the handler. | Kegan Dougal | 2015-02-04 | 2 | -1/+23 |
| | |||||
* | Add appservice package and move ApplicationService into it. | Kegan Dougal | 2015-02-03 | 2 | -0/+134 |