Commit graph

1,047 commits

Author SHA1 Message Date
Lain Soykaf
7d1cc56a78
Merge remote-tracking branch 'origin/develop' into audit-mix-audit-report
Conflict resolution notes:

- mix.lock: kept this branch's versions for cowlib, h2, hackney and hpax.
  Those upgrades are the point of the branch; develop is still on hackney
  1.20.1.

- .woodpecker/docker-armv7.yaml: accepted develop's deletion. It only
  existed here to build mdex_native on armv7, and mdex was already
  replaced with earmark again.

- lib/pleroma/reverse_proxy.ex: took develop's version. It independently
  grew request_with_constraints/5 and the invalid-status close, which
  supersede the equivalent fixes on this branch. Re-applied this branch's
  recv_timeout seeding, which develop does not have.

- lib/pleroma/gun/connection_pool/worker.ex and
  lib/pleroma/reverse_proxy/client/tesla.ex: took develop's versions. The
  gun pool rework (#7934) already guards the demonitor and makes
  release_conn/cancel_stream exit-safe, and it splits the Tesla client's
  graceful release from its abort path, so this branch's changes there are
  obsolete.

That leaves the client leak fix as a Hackney-only concern, which
stream_body/1 now handles the same way the gun client does.
2026-07-25 19:54:48 +04:00
Lain Soykaf
24bdd9774a
fix(reverse_proxy): release the HTTP client on every outcome
Three paths obtained a client ref and abandoned it without closing:
the content-length rejection in call/3, the invalid-status clause in
request/4, and the success branch of response/6.

Under Hackney 4 an abandoned ref is a permanent process leak. A conn
that finishes or errors without an explicit stop parks in `closed` or
`connected` and never terminates: closed/3 only arms its stop timer for
pooled conns, `connected` gets no state_timeout when idle_timeout is
infinity, and a non-pooled conn monitors hackney_conn_sup rather than
its caller, so the owner-DOWN cleanup never fires. Each parked process
pins every refc binary it read, which for proxied video is tens of MB.

Releasing on every outcome means the gun client must stop releasing in
stream_body/1, or the ref would be removed twice.

Hackney does reclaim a pooled connection itself for a response that
cannot carry a body (204, 304, HEAD), so those refs are marked and left
alone; stopping one would evict a connection another request may
already hold. The mark is gated on the request actually being pooled,
since a direct or proxy-tunnelled conn is never checked in and leaks
unless we stop it.
2026-07-25 18:46:43 +04:00
Lain Soykaf
9a6c2f909d
Merge remote-tracking branch 'origin/develop' into issue-3379-favourites-order 2026-07-25 10:31:57 +04:00
lain
cc1b95c88e Merge pull request 'Rework Gun connection pooling' (#7934) from issue-2263-gun-validation into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7934
2026-07-25 05:44:39 +00:00
Lain Soykaf
d5f48101b8
fix(media-proxy): safely detect extensionless images 2026-07-25 00:06:03 +04:00
lain
9b8aa2e2ee Merge pull request 'Woodpecker CI: Unify Docker builds, add arm32v7 to multi-arch images' (#7919) from woodpecker-armv7-fixups into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7919
2026-07-24 18:12:46 +00:00
lain
c2b8c67808 Merge pull request 'Improve RSS compliance' (#7932) from fix-rss into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7932
2026-07-24 17:33:40 +00:00
lain
a790e08a6c Merge pull request 'hashtag-timeline-fix' (#7938) from mkljczk/pleroma:hashtag-timeline-fix into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7938
2026-07-24 15:29:25 +00:00
lain
c20c0ee867 Merge branch 'develop' into architecture-quick-wins 2026-07-24 14:09:44 +00:00
Lain Soykaf
868723e371
fix(streaming): preserve followed domain exception 2026-07-24 16:01:46 +04:00
Lain Soykaf
3abe4ebfbd
perf(oauth): avoid duplicate user preload 2026-07-24 16:01:34 +04:00
Lain Soykaf
08c8571c59
fix(workers): avoid dynamic publisher atoms 2026-07-24 16:01:24 +04:00
Lain Soykaf
c3fe61c2f5
fix(user): correct cache key invalidation 2026-07-24 16:01:13 +04:00
nicole mikołajczyk
efb43a02fa changelog
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-07-24 00:59:15 +02:00
Lain Soykaf
bf477c1a53
fix(deps): replace mdex with earmark parser 2026-07-23 13:02:28 +04:00
Lain Soykaf
d090aeb2bb
fix(http): forward plain HTTP proxy requests 2026-07-22 20:35:51 +04:00
nicole mikołajczyk
2a56a02d9a changelog
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-07-21 01:26:06 +02:00
Phantasm
a30298c1eb StaticNotFoundPlug: Move 404 on non-existing static files to a new plug
This fixes preferred frontends not working (returning 404 on most static
frontend files).
2026-07-20 15:18:49 +00:00
Phantasm
7d4b53bf48
Woodpecker CI: include armv7 arch in combined Docker tags 2026-07-20 16:49:53 +02:00
Phantasm
6ec04af08c Merge pull request 'Woodpecker CI: Build Vix in unit testing pipelines, do not build arm32v7 images in MRs' (#7936) from ci-build-vix into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7936
2026-07-20 09:28:05 +00:00
Phantasm
ac08f0487f
Woodpecker CI: Do not build arm/v7 in PR, simplify 2026-07-20 11:17:09 +02:00
Phantasm
bde0e3e353
Woodpecker CI: Build Vix in unit test pipelines instead of downloading 2026-07-20 11:16:25 +02:00
Phantasm
a2eea6768c Merge pull request 'Dockerfile: update base images to fix problems with SSL handshakes' (#7930) from eal/pleroma:develop into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7930
2026-07-20 09:08:59 +00:00
Phantasm
e2f744bd68
Merge branch 'develop' into gitlab-mr-iid-4381 2026-07-18 20:47:03 +02:00
Phantasm
d383c453a1
Elixir 1.19: Added features changelog (ConfigDB blacklist) 2026-07-18 16:10:22 +02:00
eal
7de1affda8 Dockerfile: update base images to fix problems with SSL handshakes
My instance has been having problems with push federation since
updating to v2.10.2, using the docker image. Posts are not reaching
their destination instance until some other interaction initiates a
fetch from source.

The logs contain lots of errors such as:

```
pleroma    | 09:34:40.885 [notice] TLS :client: In state :wait_cert_cr at ssl_handshake.erl:2158 generated CLIENT ALERT: Fatal - Unsupported Certificate
pleroma    |  - {:key_usage_mismatch,
pleroma    |  {{:Extension, {2, 5, 29, 15}, true, [:keyCertSign, :cRLSign]},
pleroma    |   {:Extension, {2, 5, 29, 37}, false, [{1, 3, 6, 1, 5, 5, 7, 3, 1}]}}}
```

This erlang/OTP issue seems to be the same problem:
https://github.com/erlang/otp/issues/9208

The erlang version committed here was selected after discussion in the
merge request.

I have not noticed any federation problems with an image built from
this dockerfile.
2026-07-18 11:15:45 +03:00
Lain Soykaf
b862254889
fix(deps): update Gun to 2.4.1 2026-07-17 21:09:13 +04:00
Lain Soykaf
d0d6c986f4
docs(http): document Gun pool behavior 2026-07-17 20:35:40 +04:00
Mark Felder
f4b415c54e Improve RSS compliance
The core feed reader issue was that RSS 2.0 <link> is a simple text
element and can only appear once per <item>.
By having multiple <link> tags with rel attributes, parsers were
getting confused and resolving entries to the wrong URL.
Now each item has exactly one <link>: the post URL. Everything else
uses valid <atom:link> or dedicated extension elements where
appropriate.
2026-07-10 16:57:13 +00:00
Lain Soykaf
9154f6fe3c
fix(deps): replace earmark with mdex 2026-07-02 11:31:54 +04:00
Lain Soykaf
a96fb31a89
fix(deps): update hackney 2026-07-02 10:57:12 +04:00
Lain Soykaf
28d7ac3a43
fix(deps): update decimal 2026-07-02 10:50:20 +04:00
Lain Soykaf
ab49f00090
chore(deps): update jason 2026-07-02 10:48:06 +04:00
Lain Soykaf
604e2ad849
fix(deps): remove unused quic lock 2026-07-02 10:40:53 +04:00
Lain Soykaf
d964737d75
fix(deps): update postgrex 2026-07-02 10:39:34 +04:00
Lain Soykaf
dc28528588
fix(deps): update cowboy 2026-07-02 10:36:53 +04:00
Lain Soykaf
eae1311bc2
fix(deps): update cowlib 2026-07-02 10:35:41 +04:00
Lain Soykaf
4d1044e2d1
fix(deps): update plug_cowboy 2026-07-02 10:33:50 +04:00
Lain Soykaf
dcc5a33f4d
fix(deps): update phoenix 2026-07-02 10:31:34 +04:00
Lain Soykaf
f6cc4c144b
fix(deps): update plug 2026-07-02 10:27:21 +04:00
Lain Soykaf
fa7986a267
fix(deps): update bandit 2026-07-02 10:26:12 +04:00
Lain Soykaf
7e54b0935b
chore(deps): add mix audit 2026-07-02 10:20:59 +04:00
Phantasm
70c79ad512
Merge branch 'develop' into gitlab-mr-iid-4381 2026-06-30 00:31:51 +02:00
nicole mikołajczyk
b0ae451942 Merge pull request 'Allow attaching emojis to user lists' (#7929) from mkljczk/pleroma:list-emoji into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7929
2026-06-29 12:51:43 +00:00
nicole mikołajczyk
c6d1cead83 Allow attaching emojis to user lists
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-06-23 16:08:52 +02:00
Phantasm
07c65adb0c
Grouped Notifications: Add feature flag to instance view and nodeinfo 2026-06-10 22:54:06 +02:00
lain
98cd1bbb9a Merge pull request 'Add grouped notifications API' (#7910) from issue-7905-grouped-notifications into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7910
Reviewed-by: Phantasm <phnt@noreply.git.pleroma.social>
2026-06-05 09:23:26 +00:00
Lain Soykaf
a84d16831f
Fix account favourites ordering 2026-05-25 18:09:18 +04:00
lain
aa16f40f09 Merge pull request 'Prepared FE E2E Docker image' (#7884) from docker-e2e-image into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7884
2026-05-25 12:33:27 +00:00
lain
33fdc59bc1 Merge branch 'develop' into issue-7887-featured-collection 2026-05-25 11:24:10 +00:00