Oneric
13e2a811ec
Avoid accumulation of stale data in websockets
...
We’ve received reports of some specific instances slowly accumulating
more and more binary data over time up to OOMs and globally setting
ERL_FULLSWEEP_AFTER=0 has proven to be an effective countermeasure.
However, this incurs increased cpu perf costs everywhere and is
thus not suitable to apply out of the box.
Apparently long-lived Phoenix websocket processes are known to
often cause exactly this by getting into a state unfavourable
for the garbage collector.
Therefore it seems likely affected instances are using timeline
streaming and do so in just the right way to trigger this. We
can tune the garbage collector just for websocket processes
and use a more lenient value of 20 to keep the added perf cost
in check.
Testing on one affected instance appears to confirm this theory
Ref.:
https://www.erlang.org/doc/man/erlang#ghlink-process_flag-2-idp226
https://blog.guzman.codes/using-phoenix-channels-high-memory-usage-save-money-with-erlfullsweepafter
https://git.pleroma.social/pleroma/pleroma/-/merge_requests/4060
Tested-by: bjo
2024-06-22 22:22:33 +02:00
Tusooa Zhu
95e4018c1a
Disconnect streaming sessions when token is revoked
...
Use Websockex to replace websocket_client
Test that server will disconnect websocket upon token revocation
Lint
Execute session disconnect in background
Refactor streamer test
allow multi-streams
rebase websocket change
2022-08-27 19:07:48 +01:00
floatingghost
11ec9daa5b
API compatibility with fedibird, frontend config ( #163 )
...
Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/163
2022-08-17 00:22:59 +00:00
floatingghost
cb6e7359af
add bubble timeline ( #100 )
...
Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/100
2022-07-22 14:55:38 +00:00
Haelwenn (lanodan) Monnier
a17910a6c6
CI: Bump lint stage to elixir-1.12
...
Elixir 1.12 changed formatting rules, this allows to avoid having to rollback to run `mix format`
2021-10-06 08:11:05 +02:00
Haelwenn (lanodan) Monnier
c4439c630f
Bump Copyright to 2021
...
grep -rl '# Copyright © .* Pleroma' * | xargs sed -i 's;Copyright © .* Pleroma .*;Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/ >;'
2021-01-13 07:49:50 +01:00
Ivan Tashkinov
60b025b782
[ #2074 ] OAuth scope checking in Streaming API.
2020-09-19 19:16:55 +03:00
rinpatch
01fa68fe45
Websocket handler: fix never matching code on failed auth
...
`:cowboy_req.reply` does not return tuples since 2.0, see
https://ninenines.eu/docs/en/cowboy/2.4/manual/cowboy_req.reply/
2020-09-10 21:26:52 +03:00
rinpatch
e16e8f9816
Websocket handler: do not raise if handler is terminated before switching protocols
...
Closes #2131
2020-09-10 21:14:23 +03:00
rinpatch
cb06e98da2
websocket handler: Do not log client ping frames as errors
2020-09-10 21:14:23 +03:00
href
e6d8cacf2d
Expand and authorize streams in Streamer directly
2020-05-12 18:04:47 +02:00
href
e2b15e8ad3
Fix streamer timeout ( closes #1753 ).
...
Cowboy handles automatically responding to the client's ping, but
doesn't automatically send a :ping frame to the client.
2020-05-11 16:51:34 +02:00
rinpatch
eb1f2fcbc6
Streamer: Fix wrong argument order when rendering activities to authenticated user
...
Closes #1747
2020-05-07 16:13:24 +03:00
href
9491ba3e49
Streamer rework
2020-05-07 09:13:32 +00:00
Mark Felder
05da5f5cca
Update Copyrights
2020-03-03 16:44:49 -06:00
kaniini
733b73b71c
Apply suggestion to lib/pleroma/web/mastodon_api/websocket_handler.ex
2019-10-18 04:36:37 +00:00
kPherox
5bd0717de2
Add Sec-WebSocket-Protocol
to response header
2019-10-15 21:09:44 +09:00
Egor Kislitsyn
96816ceaa2
Revert "Merge branch 'revert-4fabf83a' into 'develop'"
...
This reverts commit fe7fd33126
, reversing
changes made to 4fabf83ad0
.
2019-09-16 17:55:04 +07:00
kaniini
c623b4324d
Revert "Merge branch 'streamer-refactoring' into 'develop'"
...
This reverts merge request !1653
2019-09-16 09:09:21 +00:00
Steven Fuchs
aab264db82
Streamer refactoring
2019-09-16 07:44:03 +00:00
Haelwenn (lanodan) Monnier
e174614eb9
MastoAPI Streaming: Keep compatibility with access_token
2019-07-07 08:49:29 +02:00
KokaKiwi
a7885748c7
MastoAPI streaming: Replace access_token with Sec-WebSocket-Protocol
2019-07-06 20:29:17 +02:00
Maksim
a04bf131e0
[ #570 ] add user:notification stream
2019-06-16 10:33:25 +00:00
Egor
b9cdf6d3b9
Use User.get_cached*
everywhere
2019-04-22 07:20:43 +00:00
Egor Kislitsyn
1b3d921921
change Repo.get(User, id)
=> User.get_by_id(id)
2019-04-02 17:01:26 +07:00
Haelwenn (lanodan) Monnier
a3a9cec483
[Credo] fix Credo.Check.Readability.AliasOrder
2019-03-13 04:26:54 +01:00
William Pitcock
28b4093233
mastodon websocket: return errors using ok, not stop
2019-02-28 16:23:55 +00:00
William Pitcock
388a3f4ca2
mastodon websocket: bring back infinity timeout
2019-02-28 16:23:24 +00:00
William Pitcock
f1d37a5e23
mastodon websocket: use pattern match to get query data, robustly handle errors
2019-02-28 16:02:48 +00:00
William Pitcock
bc53dff5b6
mastodon api: websocket: update code for cowboy 2.x
2019-02-28 15:44:12 +00:00
Haelwenn (lanodan) Monnier
6a6a5b3251
de-group alias/es
2019-02-09 16:31:17 +01:00
Haelwenn (lanodan) Monnier
8bcfac93a8
Make credo happy
2019-02-09 14:59:20 +01:00
William Pitcock
980b5288ed
update copyright years to 2019
2018-12-31 15:41:47 +00:00
William Pitcock
2791ce9a1f
add license boilerplate to pleroma core
2018-12-23 20:56:42 +00:00
href
77b5154c82
Cowboy handler for Mastodon WebSocket
2018-12-17 17:06:18 +01:00