github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 0e57a69f14581a09c64220452225efd10842985d https://github.com/dreamwidth/dreamwidth/commit/0e57a69f14581a09c64220452225efd10842985d Author: Mark Smith mark@dreamwidth.org Date: 2026-02-21 (Sat, 21 Feb 2026)

Changed paths: M cgi-bin/Plack/Middleware/DW/SubdomainFunction.pm

Log Message:


Tidy SubdomainFunction.pm

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 558458c9ab5c5548f20b6b380857292cc8350203 https://github.com/dreamwidth/dreamwidth/commit/558458c9ab5c5548f20b6b380857292cc8350203 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-20 (Fri, 20 Feb 2026)

Changed paths: M cgi-bin/Plack/Middleware/DW/Auth.pm M cgi-bin/Plack/Middleware/DW/SubdomainFunction.pm

Log Message:


Handle userpics subdomain in Plack middleware

The 'userpics' SUBDOMAIN_FUNCTION (e.g., v.dreamwidth.org) was not handled by SubdomainFunction middleware, causing userpic URLs to fall through to the Auth middleware which triggered unnecessary domain session cookie bounces. Under Apache, userpic_trans handles these directly without any auth flow.

Rewrite PATH_INFO from /{picid}/{userid} to /userpic/{picid}/{userid} to match DW::Controller::Userpic's route, and skip the domain session bounce since userpics are public images that don't need authentication.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 0c0f75384cb09c6515b5381d9873105581cad595 https://github.com/dreamwidth/dreamwidth/commit/0c0f75384cb09c6515b5381d9873105581cad595 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-20 (Fri, 20 Feb 2026)

Changed paths: M cgi-bin/LJ/Protocol.pm M cgi-bin/LJ/S2/ReplyPage.pm M cgi-bin/LJ/Talk.pm

Log Message:


Skip forced captcha on high-comment entries less than 30 days old

The 5k-comment captcha threshold was meant to slow bots targeting specific entries, but most spam hits old/abandoned journals while active anon memes are the ones suffering from the forced captcha.

Entries posted within the last 30 days can now receive up to the full 10k comments without a forced captcha. Entries older than 30 days keep the existing 5k threshold. All other captcha triggers (rate limiting, journal settings, spam heuristics) are unchanged.

Also refactors require_captcha_test to accept an LJ::Entry object instead of a bare ditemid, since the entry is already available at all call sites.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

Commit: e78529d60c5e457534481f350c381821dc5810fd https://github.com/dreamwidth/dreamwidth/commit/e78529d60c5e457534481f350c381821dc5810fd Author: Mark Smith mark@dreamwidth.org Date: 2026-02-20 (Fri, 20 Feb 2026)

Changed paths: M .gitignore

Log Message:


Add .worktrees/ to .gitignore

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

Compare: https://github.com/dreamwidth/dreamwidth/compare/86a23512cf4a...e78529d60c5e

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 86a23512cf4aca54a77dd38f26348c19a338d83d https://github.com/dreamwidth/dreamwidth/commit/86a23512cf4aca54a77dd38f26348c19a338d83d Author: Nova sda1@umbc.edu Date: 2026-02-20 (Fri, 20 Feb 2026)

Changed paths: M cgi-bin/LJ/S2/EntryPage.pm

Log Message:


Add per-entry OpenGraph meta tags for public entries (#3522)

Emit og:title, og:type, og:url, og:site_name, og:description, og:image, article:published_time, article:author, and article:tag for public journal entries so that Discord, Slack, Facebook, and other services can generate meaningful link previews.

Only public entries get these tags — non-public entries keep the existing site-wide defaults (DW logo) to avoid content leakage. All attribute values are escaped with LJ::ehtml(). The entry OG block is prepended to head_content so the entry-specific og:image takes precedence over the site-wide fallback from Page().

Fixes #2206

Co-authored-by: Novalinium nova@noblejury.com Co-authored-by: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 722aca660143d17125cf5f95365e3d8272f5773c https://github.com/dreamwidth/dreamwidth/commit/722aca660143d17125cf5f95365e3d8272f5773c Author: Mark Smith mark@dreamwidth.org Date: 2026-02-20 (Fri, 20 Feb 2026)

Changed paths: M htdocs/js/jquery.shortcuts.nextentry.js

Log Message:


Fix k shortcut sometimes not scrolling to previous entry

prevPageEntry() used a strict < comparison with no tolerance, so if the scroll position landed even 1px past an entry's top (due to sub-pixel rounding or animation overshoot), pressing k would "scroll" to the entry already on screen, appearing to do nothing. Add the same 50px tolerance that nextPageEntry() already uses.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 472e7ca0671a6f37896549ef3e935b8cfdd52f03 https://github.com/dreamwidth/dreamwidth/commit/472e7ca0671a6f37896549ef3e935b8cfdd52f03 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-16 (Mon, 16 Feb 2026)

Changed paths: M bin/worker/ses-incoming-email

Log Message:


Fix SES worker to expect S3 action notifications

The SNS notification now comes from the S3 action's topic_arn (terraform change), so receipt.action will always be type S3. Revert the non-S3 skip to a proper error since it would indicate a misconfiguration.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

Commit: 4895912982e33afbf41b439bc7d38d1a625b25b7 https://github.com/dreamwidth/dreamwidth/commit/4895912982e33afbf41b439bc7d38d1a625b25b7 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-17 (Tue, 17 Feb 2026)

Changed paths: M bin/worker/dw-embeds M cgi-bin/DW/Task.pm M cgi-bin/DW/TaskQueue.pm M cgi-bin/DW/TaskQueue/SQS.pm M t/taskqueue-dedup.t

Log Message:


Add max_retries support to TaskQueue to avoid DLQ pileup

Failed SQS tasks that exceed the receive count threshold are now marked complete instead of being left for the dead letter queue. The SQS layer passes ApproximateReceiveCount through to tasks, and start_work checks it against a configurable max_retries option. Applied to dw-embeds where unreachable remote hosts cause repeated failures that fill the DLQ.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

Compare: https://github.com/dreamwidth/dreamwidth/compare/6792621c5547...4895912982e3

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 6792621c554719720fc25eba12b4ea612264cb73 https://github.com/dreamwidth/dreamwidth/commit/6792621c554719720fc25eba12b4ea612264cb73 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-16 (Mon, 16 Feb 2026)

Changed paths: M bin/worker/ses-incoming-email M cgi-bin/DW/IncomingEmail.pm

Log Message:


Fix log levels in SES incoming email pipeline

  • Skip non-S3 action notifications at info level (expected duplicate from SNS action, not an error)
  • Empty email data is warn, not error
  • No support category match is info, not error (normal for non-support mail)

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: def63d7f03f190bc1a99d4fd648fa0f1424b6960 https://github.com/dreamwidth/dreamwidth/commit/def63d7f03f190bc1a99d4fd648fa0f1424b6960 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-16 (Mon, 16 Feb 2026)

Changed paths: A .github/workflows/tasks/worker-ses-incoming-email-service.json R .github/workflows/worker-build.yml R .github/workflows/worker-deploy.yml M .github/workflows/worker22-deploy.yml M config/update-workflows.py

Log Message:


Deprecate 18.04 workers

Also add deploy for new ses-incoming-email worker.

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: bba49ec2ee390e6882eda0b8004c6c57beacad9e https://github.com/dreamwidth/dreamwidth/commit/bba49ec2ee390e6882eda0b8004c6c57beacad9e Author: Mark Smith mark@dreamwidth.org Date: 2026-02-16 (Mon, 16 Feb 2026)

Changed paths: A bin/worker/ses-incoming-email A cgi-bin/DW/IncomingEmail.pm M cgi-bin/DW/Task/IncomingEmail.pm M config/workers.json A t/incoming-email.t

Log Message:


Add SES incoming email worker and shared processing pipeline

Extract email processing logic from DW::Task::IncomingEmail into DW::IncomingEmail so both the legacy TaskQueue worker and the new SES-based worker share the same pipeline. Remove obsolete spam filtering (subject heuristics, body checks, virus signatures, bounce detection) — SES handles this upstream now.

New components: - DW::IncomingEmail: shared processing (MIME parsing, hooks, post-by-email, alias forwarding with From-rewriting, support routing, multi-domain normalization via [profile] lj::INCOMING_EMAIL_DOMAINS) - bin/worker/ses-incoming-email: SQS-polling worker that receives SNS notifications from SES, fetches email from S3, checks SES spam/virus verdicts, and delegates to DW::IncomingEmail - t/incoming-email.t: tests for process flow, From-rewriting with per-sender SHA256 hash, and domain normalization

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 09b2fa09012b1edc5f23883029cf12a5a045bcc4 https://github.com/dreamwidth/dreamwidth/commit/09b2fa09012b1edc5f23883029cf12a5a045bcc4 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-16 (Mon, 16 Feb 2026)

Changed paths: M config/workers.json

Log Message:


Add SQS queue names, so we can target autoscaling to queue depth

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: e18e34f910eb489a5d0daa40f93e2024cff9bbc2 https://github.com/dreamwidth/dreamwidth/commit/e18e34f910eb489a5d0daa40f93e2024cff9bbc2 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-16 (Mon, 16 Feb 2026)

Changed paths: M .github/workflows/ci.yml M t/plack-auth.t M t/plack-integration.t M t/plack-media.t M t/plack-subdomain.t M t/plack-sysban.t

Log Message:


Expand CI to run plack, cleaner, and routing tests

Rename the workflow to "CI (fast)" and add plack integration, text cleaner, and routing test steps. Fix pre-existing test failures caused by the rate-limiting middleware interfering with unrelated tests: mock DW::RateLimit, session resolution, sysban, and uniq cookie in tests that don't exercise those concerns. Fix routing mock in sysban and subdomain tests to return 0 (handled) instead of undef (which fell through to BML). Suppress 'used only once' warnings across plack test files.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 7f5a36ba49391219cb773eeb2ee5248be3b9ac09 https://github.com/dreamwidth/dreamwidth/commit/7f5a36ba49391219cb773eeb2ee5248be3b9ac09 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-16 (Mon, 16 Feb 2026)

Changed paths: M cgi-bin/Plack/Middleware/DW/Auth.pm M t/plack-auth.t

Log Message:


Fix domain session cookie bounce not firing under Plack

When a user's domain session cookie is stale (e.g. after re-login gives them a new session ID), the Plack Auth middleware detected the mismatch and set the bounce URL but never actually redirected. The page would render as logged-out instead of bouncing through /misc/get_domain_session to refresh the cookie.

Add the redirect check to the Auth middleware's else branch so all Plack-served pages (journal views, controllers, etc.) get the bounce. Also fix pre-existing test failures in plack-auth.t where MockUser was missing the userid method needed by the RateLimit middleware.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 2c6ed3dd318302532b2c0133e45b97cd1c0b8a1d https://github.com/dreamwidth/dreamwidth/commit/2c6ed3dd318302532b2c0133e45b97cd1c0b8a1d Author: Mark Smith mark@dreamwidth.org Date: 2026-02-16 (Mon, 16 Feb 2026)

Changed paths: M config/workers.json

Log Message:


Update some worker knobs for autoscaling

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 3fd45fe55656253ccaed8ddc4c334fbbe58dea9c https://github.com/dreamwidth/dreamwidth/commit/3fd45fe55656253ccaed8ddc4c334fbbe58dea9c Author: Mark Smith mark@dreamwidth.org Date: 2026-02-16 (Mon, 16 Feb 2026)

Changed paths: M .gitignore R terraform/cluster.tf R terraform/iam.tf R terraform/import.sh R terraform/load-balancing.tf R terraform/locals.tf R terraform/providers.tf R terraform/proxy.tf R terraform/security-groups.tf R terraform/web.tf R terraform/workers.tf

Log Message:


Remove terraform from repo

Moving to a private repo. This has limited utility for public viewing, and I want to import our more sensitive configurations.

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 7fcb2afac08b97a4cb7f1905055a4fc9e7aeb7b4 https://github.com/dreamwidth/dreamwidth/commit/7fcb2afac08b97a4cb7f1905055a4fc9e7aeb7b4 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-15 (Sun, 15 Feb 2026)

Changed paths: M .github/workflows/web-build.yml M .github/workflows/web22-build.yml

Log Message:


Add app.psgi to web build workflow path triggers

Changes to the Plack entrypoint weren't triggering automatic web image rebuilds.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 081042e7a5b88b3eae282f82dcb6bf1bfcd4fc3c https://github.com/dreamwidth/dreamwidth/commit/081042e7a5b88b3eae282f82dcb6bf1bfcd4fc3c Author: Mark Smith mark@dreamwidth.org Date: 2026-02-15 (Sun, 15 Feb 2026)

Changed paths: M app.psgi M t/plack-subdomain.t

Log Message:


Fix journal subdomain root URI showing homepage instead of journal

DW::Routing->call() in app.psgi was called without a username, so it always used the 'app' role. The homepage route (registered as app-only via /index) matched '/' on journal subdomains, returning a defined value that prevented the journal rendering block from running.

Pass the journal username (from dw.journal_user, set by SubdomainFunction middleware) to routing so it uses the 'user' role, where app-only routes like the homepage don't match.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: ef55ebecc55780c8bda7b40475f05425fc9a3fe7 https://github.com/dreamwidth/dreamwidth/commit/ef55ebecc55780c8bda7b40475f05425fc9a3fe7 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-15 (Sun, 15 Feb 2026)

Changed paths: M cgi-bin/LJ/SynSuck.pm

Log Message:


Fix double-delay causing failcount to increment twice per check

Move delay() calls after set_prop() so that if set_prop throws an exception, the exception handler in DW::Task::SynSuck is the only caller of delay(), not a second one on top of an already-completed delay().

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 55d1983593d30fd637a0f5303249894099cc5790 https://github.com/dreamwidth/dreamwidth/commit/55d1983593d30fd637a0f5303249894099cc5790 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-15 (Sun, 15 Feb 2026)

Changed paths: R bin/maint/synsuck.pl M bin/maint/taskinfo.txt M bin/upgrading/update-db-general.pl M cgi-bin/DW/Controller/Misc.pm M cgi-bin/DW/Task/SynSuck.pm M cgi-bin/LJ/Console/Command/SynEdit.pm M cgi-bin/LJ/Feed.pm M cgi-bin/LJ/SynSuck.pm

Log Message:


Add exponential backoff for dead syndicated feeds

Dead feeds (HTTP errors, DNS failures, parse errors) were polled every 1-3 hours forever with no escalation. Add a failcount column to the syndicated table and apply exponential backoff: base_delay * 2^min(failcount, 7), capped at 30 days. Dead feeds settle into ~monthly polling instead of ~2,920 wasted requests per year.

Three backoff modes: escalate (feed/account errors), reset (success or not-modified), hold (our infrastructure issues like nodb/posterror). Reset failcount on URL change (syn_edit), feed merge, and REST ping.

Also converts SynSuck verbose print statements to Log::Log4perl, removes the now-drained legacy synsuck.pl maint worker, and fixes an out-of-scope $user reference in parse_items_from_feed().

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 591882659c62d6a2773aa4050b5ec36ee3bf84f5 https://github.com/dreamwidth/dreamwidth/commit/591882659c62d6a2773aa4050b5ec36ee3bf84f5 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-15 (Sun, 15 Feb 2026)

Changed paths: R .github/workflows/tasks/worker-synsuck-service.json M .github/workflows/worker-deploy.yml M .github/workflows/worker22-deploy.yml R bin/worker/synsuck M cgi-bin/LJ/SynSuck.pm M config/workers.json

Log Message:


Remove old TheSchwartz synsuck worker (fully drained)

The SQS-based dw-synsuck worker has been running in production and the TheSchwartz queue is fully drained. Remove the old worker script, ECS task definition, deploy workflow entries, and workers.json config. Also clean up dead cond_debug calls in LJ::SynSuck.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 1b24c1ccf3b8b16e581c478bde4c70c0af428f01 https://github.com/dreamwidth/dreamwidth/commit/1b24c1ccf3b8b16e581c478bde4c70c0af428f01 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-15 (Sun, 15 Feb 2026)

Changed paths: M cgi-bin/DW/Task/SynSuck.pm

Log Message:


Handle unhandled exceptions in SynSuck worker via delay()

When LJ::SynSuck::update_feed() dies with an unhandled exception (e.g. "Hour '24' out of range"), the normal delay() call is never reached, so checknext is never updated. The scheduler immediately re-enqueues the same feed, creating a tight infinite retry loop.

Now the worker catches the exception, calls delay() to push checknext 6 hours into the future with laststatus='exception', and returns COMPLETED. This matches how every other error path in SynSuck already works and is better than the old TheSchwartz behavior (which retried 3 times over 90 minutes then silently gave up without updating checknext or laststatus).

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

Profile

karzilla: a green fist above the word SMASH! (Default)
Karzilla, Destroyer of Bugs

November 2022

S M T W T F S
  12345
678910 1112
13141516171819
20212223242526
27282930   

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 22nd, 2026 07:18 am
Powered by Dreamwidth Studios