lain
5221879c35
Fix linting.
2020-08-05 15:40:32 +02:00
Mark Felder
0f9aecbca4
Remove fallback to local database when LDAP is unavailable.
...
In many environments this will not work as the LDAP password and the copy stored in Pleroma will stay synchronized.
2020-08-05 08:18:16 -05:00
Mark Felder
f7146583e5
Remove LDAP mail attribute as a requirement for registering an account
2020-08-05 08:15:57 -05:00
lain
f889400d05
Questions: Move fixes to validators.
2020-08-05 14:51:33 +02:00
lain
b5f0cef156
Apply 1 suggestion(s) to 1 file(s)
2020-08-05 11:33:21 +00:00
lain
70522989d9
Apply 1 suggestion(s) to 1 file(s)
2020-08-05 11:14:58 +00:00
lain
00c4c6a382
CommonValidations: Remove superfluous function
...
The `is_active` functionality was integrated into the presence
checker.
2020-08-05 12:24:34 +02:00
Roman Chvanikov
6f60ac9f41
Refactor config
2020-08-05 13:00:49 +03:00
lain
19c108170e
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into features/poll-validation
2020-08-05 11:12:14 +02:00
MK Fain
f341a8e142
Update filter_view.ex to return whole_word actual value
2020-08-05 02:01:27 +00:00
Karol Kosek
577b11167c
templates/layout/app.html.eex: fix link color
2020-08-05 00:01:30 +02:00
rinpatch
b1b6a7dfa8
Merge branch 'deactivated-user-posts' into 'develop'
...
Deactivated user posts
Closes #2011
See merge request pleroma/pleroma!2845
2020-08-04 19:17:30 +00:00
rinpatch
fede37e4c6
Merge branch 'chore/consolidate-rich-media-http' into 'develop'
...
Consolidate construction of Rich Media Parser HTTP requests
See merge request pleroma/pleroma!2827
2020-08-04 19:16:38 +00:00
Egor Kislitsyn
91fbb5b21f
Fix ActivityExpirationPolicy
2020-08-04 18:26:37 +04:00
lain
878c7f3f30
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into features/poll-validation
2020-08-04 15:28:41 +02:00
lain
532d6f94ae
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into frontend-bundles-downloads
2020-08-04 15:10:36 +02:00
Haelwenn (lanodan) Monnier
0f088d8ce3
question_validator: Allow content to be an empty-string (blank)
2020-08-04 14:29:16 +02:00
lain
1a00713744
CommonValidations: Treat deactivated users as not present.
2020-08-04 14:17:03 +02:00
Roman Chvanikov
56e9bf3393
Unify Config.get behaviour for atom/list key param
2020-08-04 14:35:47 +03:00
lain
28584bb224
Merge branch 'email-blacklist' into 'develop'
...
Add email blacklist, fixes #1404
Closes #1404
See merge request pleroma/pleroma!2837
2020-08-04 11:00:30 +00:00
Alex Gleason
4f57e85ab9
Email blacklist: Update phrasing again
2020-08-03 22:20:49 -05:00
Alex Gleason
058daf498f
Email blacklist: Update response phrasing
2020-08-03 19:57:53 -05:00
lain
e3953923ac
Merge branch 'fixes_1957_add_option_to_send_user_chatmessage_instead_of_dm' into 'develop'
...
fixes 1957 Add option to send user chatmessage instead of dm
Closes #1957
See merge request pleroma/pleroma!2782
2020-08-03 21:01:56 +00:00
Mark Felder
016d8d6c56
Consolidate construction of Rich Media Parser HTTP requests
2020-08-03 12:37:31 -05:00
lain
56b5b9aa27
Merge branch 'follower-mrf-again' into 'develop'
...
Follower mrf again
See merge request pleroma/pleroma!2833
2020-08-03 14:22:11 +00:00
lain
5876d5123c
Merge branch 'object-age-fix' into 'develop'
...
MRF Object Age Policy: Don't break on messages without cc/to
See merge request pleroma/pleroma!2840
2020-08-03 12:50:10 +00:00
lain
10c792110e
MRF Object Age Policy: Don't break on messages without cc/to
2020-08-03 14:12:32 +02:00
Alex Gleason
dc88b6f091
Add email blacklist, fixes #1404
2020-08-02 14:53:42 -05:00
Ilja
f671d7e68c
Add welcome chatmessages
...
* I added the option in config/config.exs
* created a new module lib/pleroma/user/welcome_chat_message.ex
* Added it to the registration flow
* added to the cheatsheet
* added to the config/description.ex
* added to the Changelog.md
2020-08-02 15:54:59 +02:00
lain
70951d042b
Merge branch '1985-unobtrusive-autologin-on-registration' into 'develop'
...
[#1985 ] Prevented force login on registration if account approval and/or email confirmation needed
Closes #1985
See merge request pleroma/pleroma!2823
2020-08-01 15:58:17 +00:00
rinpatch
45be1fe00e
ConnectionPool: fix gun open errors being returned without an error tuple
...
When gun shuts down due to the host being unreachable, the worker
process shuts down with the same shutdown reason since they are linked.
Gun doesn't have error tuples in it's shutdown reason though, so we need
to handle it in get_conn.
Closes #2008
2020-08-01 18:02:26 +03:00
Roman Chvanikov
4bf44b7d65
Don't override user-agent header if it's been set
2020-08-01 10:04:25 +03:00
lain
4b18a07392
Revert "Merge branch 'revert-1ac0969c' into 'develop'"
...
This reverts merge request !2825
2020-07-31 15:18:04 +00:00
lain
010d77ec85
Revert "Merge branch 'mrf-silence-2' into 'develop'"
...
This reverts merge request !2820
2020-07-31 15:17:09 +00:00
lain
1ac0969c72
Merge branch 'mrf-silence-2' into 'develop'
...
MRF silencing alternative solution
See merge request pleroma/pleroma!2820
2020-07-31 14:43:33 +00:00
Haelwenn (lanodan) Monnier
ac2598307d
Merge remote-tracking branch 'pleroma/develop' into features/poll-validation
2020-07-31 13:57:21 +02:00
Ivan Tashkinov
27b0a8b155
[ #1985 ] Prevented force login on registration if account approval and/or email confirmation needed.
...
Refactored login code in OAuthController, reused in AccountController. Added tests.
2020-07-31 14:13:38 +03:00
lain
1dd162a5f7
SimplePolicy: Fix problem with DM leaks.
2020-07-31 09:57:30 +02:00
Haelwenn
d1cf1108ac
Merge branch 'render-preview-cards-in-chats' into 'develop'
...
Render preview cards in chats
See merge request pleroma/pleroma!2816
2020-07-30 20:08:03 +00:00
Haelwenn
87fe31fb5c
Merge branch '1993-confirm-users-on-registration' into 'develop'
...
AccountController: Don't explicitly ask to keep users unconfirmed.
Closes #1993
See merge request pleroma/pleroma!2809
2020-07-30 20:01:04 +00:00
lain
a3c37379e9
ChatMessage schema: Add preview cards.
2020-07-30 19:57:45 +02:00
lain
781b270863
ChatMessageReferenceView: Display preview cards.
2020-07-30 19:57:26 +02:00
lain
873ff5ce14
Merge branch 'hide-reactions' into 'develop'
...
Let favourites and emoji reactions optionally be hidden
See merge request pleroma/pleroma!2804
2020-07-30 12:41:47 +00:00
Mark Felder
33f0427809
Expose seconds_valid in Pleroma Captcha API endpoint
2020-07-29 16:07:22 -05:00
Alex Gleason
702f0fb822
Merge remote-tracking branch 'upstream/develop' into mrf-silence
2020-07-29 13:01:16 -05:00
Alex Gleason
93638935d7
SimpleMRF: :silence --> :followers_only
2020-07-29 12:58:08 -05:00
Alex Gleason
d8a01c9432
Merge remote-tracking branch 'upstream/develop' into hide-reactions
2020-07-29 12:43:39 -05:00
lain
dc36d6e9d2
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into frontend-bundles-admin
2020-07-29 16:24:22 +02:00
lain
d9bf2c58df
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into 1993-confirm-users-on-registration
2020-07-29 14:42:09 +02:00
Haelwenn
269b61a240
Merge branch '1996-dont-break-on-chatmessages' into 'develop'
...
EnsureRePrepended: Don't break on chat messages.
Closes #1996
See merge request pleroma/pleroma!2808
2020-07-29 12:20:04 +00:00
lain
de5c7e20a3
Merge branch 'bugfix/remote-user-atom' into 'develop'
...
feed/user_controller: Return 404 when the user is remote
Closes #1911
See merge request pleroma/pleroma!2811
2020-07-29 12:16:20 +00:00
Haelwenn (lanodan) Monnier
2e27847573
feed/user_controller: Return 404 when the user is remote
2020-07-29 14:02:02 +02:00
lain
79f9ddd8b7
Merge branch 'by-approval' into 'develop'
...
Registrations "by approval" mode
Closes #1931
See merge request pleroma/pleroma!2757
2020-07-29 11:27:26 +00:00
lain
66974e17a0
Endpoint: Serve a dynamically configured admin interface
2020-07-29 13:03:04 +02:00
lain
6a25f72a75
FrontendStatic: Work correctly for other frontend types.
2020-07-29 13:02:48 +02:00
lain
c25c21dd22
AccountController: Don't explicitly ask to keep users unconfirmed.
...
Confirmation is set in User.register_changeset based on the config
settings.
2020-07-29 11:47:03 +02:00
lain
edf8b6abfe
EnsureRePrepended: Don't break on chat messages.
2020-07-29 10:53:08 +02:00
Alex Gleason
2a99e7df8e
SimpleMRF silence: optimize, work okay with nil values in addressing
2020-07-28 20:32:58 -05:00
Alex Gleason
3c90f7f715
SimpleMRF: Let instances be silenced
2020-07-28 19:06:42 -05:00
rinpatch
dab1d8c98e
gun ConnectionPool: Re-add a missing cast for remove_client
2020-07-28 23:48:41 +03:00
Alex Gleason
3b7c454418
Let favourites and emoji reactions optionally be hidden
2020-07-28 14:58:30 -05:00
rinpatch
4ce6179dc7
gun ConnectionPool: replace casts with calls
...
The slowdown from this is most likely immesurable, however it eliminates
possible false positives when tracking dead clients.
2020-07-28 20:49:48 +03:00
lain
ad5c42628a
FrontendStatic: Add plug to serve frontends based on configuration.
2020-07-28 17:35:16 +02:00
lain
14c28dcbd1
InstanceStatic: Refactor.
2020-07-28 15:44:47 +02:00
lain
e5ac9534aa
Merge branch 'cleanup/masto_fe-default_settings' into 'develop'
...
masto_fe_view: Remove @default_settings
See merge request pleroma/pleroma!2799
2020-07-28 07:41:44 +00:00
Alex Gleason
f688c8df82
Fix User.registration_reason HTML sanitizing issues
2020-07-27 20:36:31 -05:00
Alex Gleason
f43518eb74
Lint, fix test
2020-07-27 19:22:31 -05:00
Alex Gleason
6f44a0ee84
Add configurable registration_reason limit
2020-07-27 15:13:34 -05:00
Alex Gleason
6747bf2e16
Merge remote-tracking branch 'upstream/develop' into by-approval
2020-07-27 12:29:18 -05:00
lain
e1a1c8e7de
Merge branch 'develop' into 'cleanup/masto_fe-default_settings'
...
# Conflicts:
# lib/pleroma/web/views/masto_fe_view.ex
2020-07-27 16:35:47 +00:00
Haelwenn (lanodan) Monnier
4a6389316d
masto_fe_view: Remove @default_settings
2020-07-27 17:59:13 +02:00
lain
9e6f4694dd
Pipeline: Unify embedded_object / object_data, move to validator.
2020-07-27 16:39:50 +02:00
lain
762c9ea564
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into embedded-object-federation
2020-07-27 16:19:45 +02:00
lain
2a3abfd326
Merge branch 'issue/1934-welcome-email' into 'develop'
...
[#1934 ] welcome email
See merge request pleroma/pleroma!2786
2020-07-27 12:34:36 +00:00
lain
0d5d1c62ef
Apply 1 suggestion(s) to 1 file(s)
2020-07-27 12:24:41 +00:00
Haelwenn
64b21cee14
Merge branch 'fix/reverse-proxy-no-body-connection-leak' into 'develop'
...
ReverseProxy: Fix a gun connection leak when there is an error with no body
See merge request pleroma/pleroma!2798
2020-07-27 08:20:46 +00:00
Alex Gleason
6931dbfa58
Merge remote-tracking branch 'upstream/develop' into by-approval
2020-07-26 15:46:14 -05:00
rinpatch
6bf8eee5f9
ReverseProxy tesla client: remove handling of old_conn
...
This is no longer relevant because we use a custom
FollowRedirects middleware now
2020-07-26 20:52:00 +03:00
rinpatch
d4fbec62a3
ReverseProxy: Fix a gun connection leak when there is an error with no
...
body
- Modify `close/1` function to do the same thing it does for hackney,
which is - close the client rather than the whole connection
- Release the connection when there is no body to chunk
2020-07-26 19:30:17 +03:00
Alibek Omarov
6107440ea0
OpenAPI: remove accidentally pasted buffer data
2020-07-26 13:59:46 +00:00
Alibek Omarov
b31844d6e0
OpenAPI: Replace actor_id by account_id to follow ChatMessage schema
2020-07-26 13:54:56 +00:00
Lain Soykaf
3d13fb05f8
Side Effects: On undoing, put information about the undone object.
2020-07-24 14:40:22 +02:00
Lain Soykaf
91f3cf9bc6
Pipeline: Add embedded object federation.
2020-07-24 14:06:41 +02:00
Maksim Pechnikov
61ef1fca4b
remove duplicate module
2020-07-24 08:35:06 +03:00
feld
51627a10e5
Merge branch 'unblock-domain-via-query' into 'develop'
...
Allow unblocking a domain via query params
Closes #1971
See merge request pleroma/pleroma!2783
2020-07-23 20:06:11 +00:00
Mark Felder
4bfad0b483
Support blocking via query parameters as well and document the change.
2020-07-23 12:59:40 -05:00
Haelwenn
6100b90209
Merge branch '1976-status-view-fixes' into 'develop'
...
StatusView: Handle badly formatted emoji reactions.
Closes #1976
See merge request pleroma/pleroma!2788
2020-07-23 16:58:36 +00:00
Maksim Pechnikov
67ab9a7928
Merge branch 'develop' into issue/1934-welcome-email
2020-07-23 16:36:27 +03:00
lain
76aa49a0c5
Merge branch '1973-chats-fix-with-restrict-unauthenticated' into 'develop'
...
[#1973 ] Fixed accounts rendering in GET /api/v1/pleroma/chats with truish :restrict_unauthenticated setting
Closes #1973
See merge request pleroma/pleroma!2791
2020-07-23 12:52:02 +00:00
Ivan Tashkinov
9ea51a6de5
[ #2791 ] AccountView: renamed `:force` option to `:skip_visibility_check`.
2020-07-23 15:08:30 +03:00
lain
b2ba70eec4
Merge branch 'bugfix/mrf-reject-logging' into 'develop'
...
Fix #783 : Make MRF reject log as info level instead of error
Closes #783
See merge request pleroma/pleroma!2758
2020-07-23 11:08:29 +00:00
lain
250e0369c7
Merge branch 'issue/1878' into 'develop'
...
[#1878 ] fix reset confirmation email in admin section
See merge request pleroma/pleroma!2751
2020-07-23 10:56:33 +00:00
lain
a81581472f
Merge branch 'linkify' into 'develop'
...
Fix Linkify
See merge request pleroma/pleroma!2792
2020-07-23 10:28:52 +00:00
Maksim Pechnikov
7991ddad58
added warning to use old keys
2020-07-23 09:01:37 +03:00
Ivan Tashkinov
6f5f7af607
[ #1973 ] Fixed accounts rendering in GET /api/v1/pleroma/chats with truish :restrict_unauthenticated.
...
Made `Pleroma.Web.MastodonAPI.AccountView.render("show.json", _)` demand :for or :force option in order to prevent incorrect rendering of empty map instead of expected user representation with truish :restrict_unauthenticated setting.
2020-07-22 19:06:00 +03:00
lain
1c9752cff4
Merge branch 'fix/pleroma-api-emoji-packs' into 'develop'
...
Fix /api/pleroma/emoji/packs index endpoint.
See merge request pleroma/pleroma!2777
2020-07-22 15:09:32 +00:00
Maksim Pechnikov
db0224d174
added check user email for welcome email
2020-07-22 16:00:49 +03:00
Lain Soykaf
0cb9e1da74
StatusView: Handle badly formatted emoji reactions.
2020-07-22 14:44:06 +02:00
Maksim Pechnikov
5879d36854
fix sender for welcome email
2020-07-22 15:34:47 +03:00
Mark Felder
341a8f3500
Skip the correct plug
2020-07-21 17:26:59 -05:00
lain
5b1eeb06d8
Revert "Merge branch 'revert-2b5d9eb1' into 'develop'"
...
This reverts merge request !2784
2020-07-21 22:18:17 +00:00
lain
696c13ce54
Revert "Merge branch 'linkify' into 'develop'"
...
This reverts merge request !2677
2020-07-21 22:17:34 +00:00
Mark Felder
97c60b6a43
Merge branch 'develop' into fix/pleroma-api-emoji-packs
2020-07-21 16:25:45 -05:00
lain
2b5d9eb105
Merge branch 'linkify' into 'develop'
...
AutoLinker --> Linkify, update to latest version
See merge request pleroma/pleroma!2677
2020-07-21 19:35:43 +00:00
lain
fa2421dd7e
Merge branch 'gopher-fix' into 'develop'
...
Gopher: using atom keys in search params
See merge request pleroma/pleroma!2775
2020-07-21 19:31:03 +00:00
Egor Kislitsyn
bdb3375933
Allow unblocking a domain via query params
2020-07-21 16:06:46 +04:00
Maksim Pechnikov
3edaecae96
added welcome email
2020-07-21 09:25:53 +03:00
Alex Gleason
204dddcfaa
Pleroma.Formatter can have partial updates
2020-07-20 13:45:05 -05:00
href
4bac25e6f5
Don't enable Pleroma.HTTP.Middleware.FollowRedirects unless Gun is used
2020-07-18 13:17:38 +02:00
KokaKiwi
7ce722ce3e
Fix /api/pleroma/emoji/packs index endpoint.
2020-07-18 12:55:04 +02:00
Haelwenn
10d46235cf
Merge branch 'fix-1958' into 'develop'
...
OpenAPI: Add :id to follower/following endpoints, fixes #1958
Closes #1958
See merge request pleroma/pleroma!2772
2020-07-17 18:54:30 +00:00
Alex Gleason
48f8b26c92
OpenAPI: Add :id to follower/following endpoints, fixes #1958
2020-07-17 12:35:28 -05:00
Alex Gleason
5756843736
Fully delete users with status :approval_pending
2020-07-17 12:19:41 -05:00
Mark Felder
20a496d2cb
Expose the post formats in /api/v1/instance
2020-07-17 10:45:41 -05:00
Alexander Strizhakov
af376cbffb
using atom keys in search params
2020-07-17 18:06:05 +03:00
Mark Felder
62438530e2
TOTP length is configurable, so we can't hardcode this here.
2020-07-17 08:19:49 -05:00
Alex Gleason
5e74556703
Sanitize `reason` param in POST /api/v1/accounts
2020-07-16 20:25:53 -05:00
Alex Gleason
38425ebdbf
Merge remote-tracking branch 'upstream/develop' into linkify
2020-07-16 14:51:36 -05:00
Mark Felder
3be64556db
Improve TOTP token and recovery input fields in OAuth login
2020-07-16 13:11:03 -05:00
Alex Gleason
9ce95fa68f
Use `approval_required` in /api/v1/instance
2020-07-15 17:04:30 -05:00
Mark Felder
b2d398b1d0
Merge branch 'develop' into refactor/gun-pool-registry
2020-07-15 13:34:27 -05:00
Mark Felder
9d30bacace
Merge branch 'develop' into refactor/notification_settings
2020-07-15 09:30:23 -05:00
rinpatch
0fe36b311c
Merge branch 'features/mrf-reasons' into 'develop'
...
Add rejection reason to our MRFs
See merge request pleroma/pleroma!2759
2020-07-15 14:00:22 +00:00
Haelwenn (lanodan) Monnier
d29b8997f4
MastoAPI: fix & test giving MRF reject reasons
2020-07-15 15:25:33 +02:00
rinpatch
7115c5f82e
ConnectionPool.Worker: do not stop with an error when there is a timeout
...
This produced error log messages about GenServer termination
every time the connection was not open due to a timeout.
Instead we stop with `{:shutdown, <gun_error>}` since shutting down
when the connection can't be established is normal behavior.
2020-07-15 15:58:08 +03:00
href
6d583bcc3b
Set a default timeout for Gun adapter timeout
2020-07-15 15:26:35 +03:00
href
afd378f84c
host is now useless
2020-07-15 15:26:35 +03:00
href
ce1a42bd04
Simplify TLS opts
...
- `verify_fun` is not useful now
- use `customize_check_hostname` (OTP 20+ so OK)
- `partial_chain` is useless as of OTP 21.1 (wasn't there, but hackney/..
uses it)
2020-07-15 15:26:35 +03:00
href
53ba6815b1
parentheses...
2020-07-15 15:26:35 +03:00
href
23d714ed30
Fix race in enforcer/reclaimer start
2020-07-15 15:26:35 +03:00
href
6a0f2bdf8c
Ensure connections error get known by the caller
2020-07-15 15:26:35 +03:00
href
46dd276d68
ConnectionPool.Worker: Open gun conn in continue instead of init
2020-07-15 15:26:35 +03:00
rinpatch
a705637dcf
Connection Pool: fix LRFU implementation to not actually be LRU
...
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 15:26:35 +03:00
rinpatch
9b73c35ca8
Request limiter setup: consider {:error, :existing} a success
...
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 15:26:35 +03:00
rinpatch
12fa5541f0
FollowRedirects: Unconditionally release the connection if there is an error
...
There is no need for streaming the body if there is no body
2020-07-15 15:26:35 +03:00
rinpatch
37f1e781cb
Gun adapter helper: fix wildcard cert issues on OTP 23
...
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 15:26:35 +03:00
rinpatch
007843b75e
Add documentation for new connection pool settings and remove some
...
`: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 15:26:35 +03:00
rinpatch
7882f28569
Use erlang monotonic time for CRF calculation
2020-07-15 15:26:35 +03:00
rinpatch
00926a63fb
Adapter Helper: Use built-in ip address type
2020-07-15 15:26:35 +03:00
rinpatch
4128e3a84a
HTTP: Implement max request limits
2020-07-15 15:26:35 +03:00
rinpatch
94c8f3cfaf
Use a custom pool-aware FollowRedirects middleware
2020-07-15 15:26:35 +03:00
rinpatch
281ddd5e37
Connection pool: fix connections being supervised by gun_sup
2020-07-15 15:26:35 +03:00
rinpatch
1b15cb066c
Connection pool: Add client death tracking
...
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 15:26:35 +03:00
rinpatch
e94ba05e52
Connection pool: Fix a possible infinite recursion if the pool is exhausted
2020-07-15 15:26:35 +03:00
rinpatch
7738fbbaf5
Connection pool: implement logging and telemetry events
2020-07-15 15:26:25 +03:00
rinpatch
0ffde499b8
Connection Pool: register workers using :via
2020-07-15 15:24:47 +03:00
rinpatch
ec9d0d146b
Connection pool: Fix race conditions in limit enforcement
...
Fixes race conditions in limit enforcement by putting worker processes
in a DynamicSupervisor
2020-07-15 15:17:27 +03:00
rinpatch
d08b157699
Connection pool: check that there actually is a result
...
Sometimes connections died before being released to the pool, resulting
in MatchErrors
2020-07-15 15:17:27 +03:00
rinpatch
fffbcffb8c
Connection Pool: don't enforce pool limits if no new connection needs to be opened
2020-07-15 15:17:27 +03:00
rinpatch
58a4f350a8
Refactor gun pooling and simplify adapter option insertion
...
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 15:17:27 +03:00