Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-07-15 | Ensure connections error get known by the caller | href | |
2020-07-15 | ConnectionPool.Worker: Open gun conn in continue instead of init | href | |
2020-07-15 | Connection Pool: fix LRFU implementation to not actually be LRU | rinpatch | |
The numbers of the native time unit were so small the CRF was always 1, making it an LRU. This commit switches the time to miliseconds and changes the time delta multiplier to the one yielding mostly highest hit rates according to the paper | |||
2020-07-15 | Request limiter setup: consider {:error, :existing} a success | rinpatch | |
When the application restarts (which happens after certain config changes), the limiters are not destroyed, so `ConcurrentLimiter.new` will produce {:error, :existing} | |||
2020-07-15 | FollowRedirects: Unconditionally release the connection if there is an error | rinpatch | |
There is no need for streaming the body if there is no body | |||
2020-07-15 | Gun adapter helper: fix wildcard cert issues on OTP 23 | rinpatch | |
See https://bugs.erlang.org/browse/ERL-1260 for more info. The ssl match function is basically copied from mint, except that `:string.lowercase/1` was replaced by `:string.casefold`. It was a TODO in mint's code, so might as well do it since we don't need to support OTP <20. Closes #1834 | |||
2020-07-15 | Add documentation for new connection pool settings and remove some | rinpatch | |
`:retry_timeout` and `:retry` got removed because reconnecting on failure is something the new pool intentionally doesn't do. `:max_overflow` had to go in favor of `:max_waiting`, I didn't reuse the key because the settings are very different in their behaviour. `:checkin_timeout` got removed in favor of `:connection_acquisition_wait`, I didn't reuse the key because the settings are somewhat different. I didn't do any migrations/deprecation warnings/changelog entries because these settings were never in stable. | |||
2020-07-15 | Use erlang monotonic time for CRF calculation | rinpatch | |
2020-07-15 | Adapter Helper: Use built-in ip address type | rinpatch | |
2020-07-15 | HTTP: Implement max request limits | rinpatch | |
2020-07-15 | Use a custom pool-aware FollowRedirects middleware | rinpatch | |
2020-07-15 | Connection pool: fix connections being supervised by gun_sup | rinpatch | |
2020-07-15 | Connection pool: Add client death tracking | rinpatch | |
While running this in production I noticed a number of ghost processes with all their clients dead before they released the connection, so let's track them to log it and remove them from clients | |||
2020-07-15 | Connection pool: Fix a possible infinite recursion if the pool is exhausted | rinpatch | |
2020-07-15 | Connection pool: implement logging and telemetry events | rinpatch | |
2020-07-15 | Connection Pool: register workers using :via | rinpatch | |
2020-07-15 | Connection pool: Fix race conditions in limit enforcement | rinpatch | |
Fixes race conditions in limit enforcement by putting worker processes in a DynamicSupervisor | |||
2020-07-15 | Connection pool: check that there actually is a result | rinpatch | |
Sometimes connections died before being released to the pool, resulting in MatchErrors | |||
2020-07-15 | Connection Pool: don't enforce pool limits if no new connection needs to be ↵ | rinpatch | |
opened | |||
2020-07-15 | Refactor gun pooling and simplify adapter option insertion | rinpatch | |
This patch refactors gun pooling to use Elixir process registry and simplifies adapter option insertion. Having the pool use process registry instead of a GenServer has a number of advantages: - Simpler code: the initial implementation adds about half the lines of code it deletes - Concurrency: unlike a GenServer, ETS-based registry can handle multiple checkout/checkin requests at the same time - Precise and easy idle connection clousure: current proposal for closing idle connections in the GenServer-based pool needs to filter through all connections once a minute and compare their last active time with closing time. With Elixir process registry this can be done by just using `Process.send_after`/`Process.cancel_timer` in the worker process. - Lower memory footprint: In my tests `gun-memory-leak` branch uses about 290mb on peak load (250 connections) and 235mb on idle (5-10 connections). Registry-based pool uses 210mb on idle and 240mb on peak load | |||
2020-07-15 | Create Question: Add context field to create | Haelwenn (lanodan) Monnier | |
2020-07-15 | {Answer,Question}Validator: Keep both actor and attributedTo for now but ↵ | Haelwenn (lanodan) Monnier | |
sync them | |||
2020-07-15 | Fix attachments in polls | Haelwenn (lanodan) Monnier | |
2020-07-15 | Fixup for EctoType module move | Haelwenn (lanodan) Monnier | |
2020-07-15 | QuestionValidator: Use AttachmentValidator | Haelwenn (lanodan) Monnier | |
2020-07-15 | CreateGenericValidator: add expires_at | Haelwenn (lanodan) Monnier | |
2020-07-15 | SideEffects: port ones from ActivityPub.do_create and ActivityPub.insert | Haelwenn (lanodan) Monnier | |
2020-07-15 | question_validator: remove conversation field | Haelwenn (lanodan) Monnier | |
2020-07-15 | question_validator: fix for mastodon poll expiration | Haelwenn (lanodan) Monnier | |
Mastodon activities do not have a "closed" field, this could be seen on https://pouet.it/users/lanodan_tmp/statuses/104345126997708380 which runs Mastodon 3.1.4 (SDF runs 3.1.2) | |||
2020-07-15 | create_question_validator: remove validate_recipients_match | Haelwenn (lanodan) Monnier | |
2020-07-15 | fetcher: Reinject Question through validator | Haelwenn (lanodan) Monnier | |
2020-07-15 | fetcher: more descriptive variable names | Haelwenn (lanodan) Monnier | |
2020-07-15 | Fix multiple-choice poll detection | Haelwenn (lanodan) Monnier | |
2020-07-15 | transmogrifier_test: test date, anyOf and oneOf completely | Haelwenn (lanodan) Monnier | |
2020-07-15 | QuestionOptionsValidator: inline schema for replies | Haelwenn (lanodan) Monnier | |
2020-07-15 | AnswerValidator: Create | Haelwenn (lanodan) Monnier | |
2020-07-15 | QuestionValidator: Create | Haelwenn (lanodan) Monnier | |
2020-07-14 | Email admins when a new unapproved account is up for review | Alex Gleason | |
2020-07-14 | Merge remote-tracking branch 'upstream/develop' into by-approval | Alex Gleason | |
2020-07-14 | Add :approval_pending to User @type account_status | Alex Gleason | |
2020-07-14 | AdminAPI: Add `PATCH /api/pleroma/admin/users/approve` endpoint | Alex Gleason | |
2020-07-14 | AdminAPI: Filter users by `need_approval` | Alex Gleason | |
2020-07-14 | AdminAPI: Return `approval_pending` with users | Alex Gleason | |
2020-07-14 | Include port in host for signatures | Maksim Pechnikov | |
2020-07-14 | Lint and fix test to match new log message | Mark Felder | |
2020-07-14 | Improve error messages | Mark Felder | |
2020-07-14 | AdminAPI: Return `registration_reason` with users | Alex Gleason | |
2020-07-14 | Merge branch 'feature/1922-media-proxy-whitelist' into 'develop' | feld | |
Support for hosts with scheme in MediaProxy whitelist setting Closes #1922 See merge request pleroma/pleroma!2754 | |||
2020-07-14 | Merge branch 'fix/scrubber-recompile-warnings-as-errors' into 'develop' | feld | |
Fix in-db configuration in dev environment See merge request pleroma/pleroma!2764 | |||
2020-07-14 | Merge branch '1940-admin-token-oauthless-auth' into 'develop' | feld | |
[#1940] Reinstated OAuth-less `admin_token` authentication Closes #1940 See merge request pleroma/pleroma!2760 |