- Jul 15, 2020
-
-
href authored
-
href authored
-
href authored
-
href authored
-
href authored
-
href authored
-
rinpatch authored
The new pooling code just removes the connection when it's down, there is no need to reconnect a connection that is just sitting idle, better just open a new one next time it's needed
-
rinpatch authored
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
-
rinpatch authored
When the application restarts (which happens after certain config changes), the limiters are not destroyed, so `ConcurrentLimiter.new` will produce {:error, :existing}
-
rinpatch authored
There is no need for streaming the body if there is no body
-
rinpatch authored
-
rinpatch authored
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
-
rinpatch authored
`: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.
-
rinpatch authored
-
rinpatch authored
-
rinpatch authored
-
rinpatch authored
-
rinpatch authored
-
rinpatch authored
-
rinpatch authored
-
rinpatch authored
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
-
rinpatch authored
-
rinpatch authored
-
rinpatch authored
-
rinpatch authored
Fixes race conditions in limit enforcement by putting worker processes in a DynamicSupervisor
-
rinpatch authored
Sometimes connections died before being released to the pool, resulting in MatchErrors
-
rinpatch authored
-
rinpatch authored
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
-
lain authored
AP C2S tests: Make sure you can't use another user's AP id See merge request pleroma/pleroma!2767
-
- Jul 14, 2020
-
-
feld authored
Support for hosts with scheme in MediaProxy whitelist setting Closes #1922 See merge request pleroma/pleroma!2754
-
feld authored
Fix in-db configuration in dev environment See merge request pleroma/pleroma!2764
-
feld authored
[#1940] Reinstated OAuth-less `admin_token` authentication Closes #1940 See merge request pleroma/pleroma!2760
-
Ivan Tashkinov authored
[#1940] Added `admin_token` param (as `admin_api_params/0`) to existing Admin API OpenAPI operations.
-
feld authored
-
feld authored
Transmogrifier: filtering weirdness in address fields Closes #1916 See merge request pleroma/pleroma!2762
-
rinpatch authored
Migrate in-db config after updating to Oban 2.0 See merge request pleroma/pleroma!2765
-
rinpatch authored
Previously, in-db configuration only worked when `warnings_as_errors` was disabled because re-compiling scrubbers on application restart created a warning about module conflicts. This patch fixes that by enabling `ignore_module_conflict` option of the compiler at runtime, and enables `warnings_as_errors` in prod since there is no reason to keep it disabled anymore.
-
rinpatch authored
-
Ivan Tashkinov authored
[#1940] Applied rate limit for requests with bad `admin_token`. Added doc warnings on `admin_token` setting.
-