Files
ProxmoxVE/ct
Robbie Trencheny 05fdd15406 [FIX] Shelfmark: internal bypasser never starts under the gevent worker (#16495)
* Shelfmark: fix internal bypasser under the gevent worker

The internal captcha bypasser never worked on this install. Shelfmark is served
by gunicorn's GeventWebSocketWorker, and DOCKERMODE controls whether the bypass
browser runs in a helper process "isolated from gunicorn/gevent" (upstream's
_get_via_subprocess). With DOCKERMODE=false the SeleniumBase CDP browser starts
inside the monkey-patched loop, its asyncio websocket never connects, and every
bypass dies at "Pure CDP browser startup timed out after 45s" — searches then
burn their whole retry budget and surface as "mirrors are blocked".

Set DOCKERMODE=true for deployment type 1, and migrate existing installs on
update. The flag is misnamed upstream: it gates gevent isolation, not Docker.

Also drop chromium.service. Nothing in Shelfmark connects to port 9222 — the
bypasser launches its own browser on a random port — so it only consumed
~226MB. With DOCKERMODE enabled it is additionally killed by Shelfmark's
orphan-process reaper (pkill -f chromium) on every bypass and respawned by
systemd, since an LXC shares its PID namespace.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Ln3yVj3sWHG2c6T78W1we

* Shelfmark: address review — one check, drop comments

Collapse the chromium.service removal and the DOCKERMODE migration into the
single internal-bypasser check, as every affected install has both. Guard the
disable so a second update run does not fail on the removed unit, matching
esphome.sh. Drop the explanatory comments.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Ln3yVj3sWHG2c6T78W1we

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-16 20:43:14 +02:00
..
2026-08-16 14:58:42 +02:00
2026-06-13 18:43:15 +02:00
2026-06-13 18:43:15 +02:00
2026-07-16 18:01:44 +10:00
2026-06-13 18:43:15 +02:00
2026-06-13 18:43:15 +02:00
2026-06-14 14:32:06 +02:00
2026-06-14 14:32:06 +02:00
2026-07-27 20:41:01 +10:00
2026-06-14 14:32:06 +02:00
2026-06-27 21:07:03 +02:00
2026-07-27 10:52:43 +02:00
2026-07-27 10:32:20 +02:00
2026-06-14 14:32:06 +02:00
2026-08-14 16:03:28 +02:00
2026-08-10 09:11:15 +02:00
2026-08-14 16:07:15 +02:00
2026-07-20 11:55:01 +02:00
2026-07-14 14:16:10 +02:00
2026-08-04 23:02:28 +02:00
2026-07-05 22:28:00 +02:00
2026-08-14 22:08:21 +02:00
2026-08-08 12:37:57 +10:00
2026-07-17 14:30:55 +02:00
2026-06-17 10:12:39 +02:00
2026-07-13 17:39:10 +02:00
2026-07-11 20:00:36 +02:00
2026-07-27 10:51:17 +02:00
2026-08-14 16:07:03 +02:00
2026-08-14 15:57:31 +02:00
2026-07-15 20:55:10 +10:00
2026-07-27 09:53:27 +02:00
2026-08-15 23:33:58 +02:00
2026-07-26 18:53:08 +02:00
2026-08-07 19:41:33 +02:00
2026-07-28 13:36:40 +02:00
2026-07-28 13:36:40 +02:00
2026-08-15 13:36:27 +10:00
2026-07-30 10:06:57 +02:00
2026-07-27 10:31:10 +02:00
2026-07-28 13:36:40 +02:00
2026-08-01 21:18:48 +02:00
2026-08-14 22:12:35 +02:00
2026-07-26 19:04:53 +02:00
2026-08-15 23:41:31 +02:00
2026-07-27 10:03:11 +02:00
2026-07-16 09:01:53 +02:00
2026-07-10 10:57:27 +02:00
2026-08-12 13:45:10 +02:00
2026-08-13 08:58:35 +02:00
2026-07-28 13:36:40 +02:00
2026-08-10 09:10:56 +02:00
2026-08-10 09:07:32 +02:00
2026-07-27 12:50:46 +02:00
2026-07-14 14:15:32 +02:00