Page MenuHomePhabricator

Upgrade cvn fleet from Debian 11 Bullseye to Debian 13 Trixie
Closed, ResolvedPublic

Description

T306066: Cloud VPS "cvn" project Stretch deprecation

Debian 11 is not being phased out yet, but WMF CI is removing PHP 7.4 as we speak, which means in order to maintain useful code coverage of tools like cvn-stillalive, we'll want to be running a newer PHP version, and I'm not about to maintain some local package override, so we might as well do the Debian upgrade a bit earlier than usual and get it over with.

Ref https://gerrit.wikimedia.org/r/c/integration/config/+/1127098/4/zuul/layout.yaml

    name: labs/countervandalism/stillalive
-   - name: composer-test-php74-to-php83
+   - name: composer-test-php81-to-php83

Instances

Useful links


Admin CC:
User:AntiCompositeNumber @AntiCompositeNumber
User:Azariv @Az1568
User:Barras @Barras
User:Cameron11598 @Cameron11598
User:Krinkle @Krinkle
User:Rxy @Rxy

Details

Related Changes in Gerrit:
SubjectAuthorRepoBranchLines +/-
Krinklelabs/countervandalism/cvn-infrastructuremaster+39 -12
Krinklelabs/countervandalism/stillalivemaster+25 -26
Krinklelabs/countervandalism/stillalivemaster+19 -27
Krinklelabs/countervandalism/cvn-infrastructuremaster+404 -357
Krinklelabs/countervandalism/stillalivemaster+15 -17
Krinklelabs/countervandalism/cvn-infrastructuremaster+9 -25
Krinklelabs/countervandalism/stillalivemaster+1 -1
Krinklelabs/countervandalism/stillalivemaster+4 -12
Krinklelabs/countervandalism/stillalivemaster+1 -1
Krinklelabs/countervandalism/stillalivemaster+363 -379
Krinklelabs/countervandalism/cvn-infrastructuremaster+1 -11
Krinklelabs/countervandalism/stillalivemaster+12 -4
Krinklelabs/countervandalism/stillalivemaster+9 K -4 K
Krinklelabs/countervandalism/cvn-infrastructuremaster+5 -5
Krinklelabs/countervandalism/cvn-infrastructuremaster+1 -0
Krinklelabs/countervandalism/cvn-infrastructuremaster+6 -5
Krinklelabs/countervandalism/cvn-infrastructuremaster+7 -8
Krinklelabs/countervandalism/cvn-infrastructuremaster+1 -0
Krinklelabs/countervandalism/cvn-infrastructuremaster+1 -4
Show related patches Customize query in gerrit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change #1149737 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/cvn-infrastructure@master] docroot: Fix link to Grafana dashboard, remove old Nagf link

https://gerrit.wikimedia.org/r/1149737

Mentioned in SAL (#countervandalism) [2025-05-23T19:45:52Z] <Krinkle> Create cvn-apache11 (debian-12.0-bookworm, g4.cores2.ram4.disk20), T395164)

Change #1149739 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/cvn-infrastructure@master] setup: Adopt version-neutral php package aliases, remove unused php-apcu-bc

https://gerrit.wikimedia.org/r/1149739

Change #1149738 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/cvn-infrastructure@master] setup: Restore `git clone` of cvn-infrastructure repo

https://gerrit.wikimedia.org/r/1149738

Change #1149738 merged by Krinkle:

[labs/countervandalism/cvn-infrastructure@master] setup: Restore `git clone` of cvn-infrastructure repo

https://gerrit.wikimedia.org/r/1149738

Change #1149737 merged by Krinkle:

[labs/countervandalism/cvn-infrastructure@master] docroot: Fix link to Grafana dashboard, remove old Nagf link

https://gerrit.wikimedia.org/r/1149737

Change #1149739 merged by Krinkle:

[labs/countervandalism/cvn-infrastructure@master] setup: Adopt version-neutral php package aliases, remove unused php-apcu-bc

https://gerrit.wikimedia.org/r/1149739

Change #1149744 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/cvn-infrastructure@master] setup: Autodiscover the /etc/php/X.Y directory

https://gerrit.wikimedia.org/r/1149744

Mentioned in SAL (#countervandalism) [2025-05-23T20:22:24Z] <Krinkle> Change cvn.wmflabs.org web proxy from cvn-apache10 to cvn-apache11, T395164

Mentioned in SAL (#countervandalism) [2025-05-23T20:29:04Z] <Krinkle> Change cvn.wmcloud.org web proxy from cvn-apache10 to cvn-apache11, T395164

Change #1149744 merged by Krinkle:

[labs/countervandalism/cvn-infrastructure@master] setup: Autodiscover the /etc/php/X.Y directory

https://gerrit.wikimedia.org/r/1149744

Mentioned in SAL (#countervandalism) [2025-05-26T17:57:21Z] <Krinkle> Delete cvn-apache10 instance (replaced/shutdown 2 days ago), ref T395164

Change #1150745 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/cvn-infrastructure@master] setup: Add `sudo mkdir -p /etc/cron.hourly`

https://gerrit.wikimedia.org/r/1150745

Change #1150745 merged by Krinkle:

[labs/countervandalism/cvn-infrastructure@master] setup: Install `cron` by default

https://gerrit.wikimedia.org/r/1150745

Change #1150753 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/cvn-infrastructure@master] setup: Remove redundant ca-certificates-mono workaround

https://gerrit.wikimedia.org/r/1150753

Change #1150756 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/cvn-infrastructure@master] mysql_cvnclerkbot.sql: Dump fresh backup

https://gerrit.wikimedia.org/r/1150756

Change #1150756 merged by Krinkle:

[labs/countervandalism/cvn-infrastructure@master] mysql_cvnclerkbot.sql: Dump fresh backup

https://gerrit.wikimedia.org/r/1150756

Change #1150764 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/stillalive@master] Commit ulrichsg/getopt-php 3.4.0 to fix fatal "Array and string offset access syntax with curly"

https://gerrit.wikimedia.org/r/1150764

Change #1150764 merged by jenkins-bot:

[labs/countervandalism/stillalive@master] Commit ulrichsg/getopt-php 3.4.0 to fix fatal "Array and string offset access syntax with curly"

https://gerrit.wikimedia.org/r/1150764

Change #1150768 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/stillalive@master] Move CVNBot17 (cvn-wikivoyage) from cvn-app12 to cvn-app13

https://gerrit.wikimedia.org/r/1150768

Change #1150768 merged by jenkins-bot:

[labs/countervandalism/stillalive@master] Move CVNBot17 (cvn-wikivoyage) from cvn-app12 to cvn-app13

https://gerrit.wikimedia.org/r/1150768

Change #1151809 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/stillalive@master] Revert "Move CVNBot17 (cvn-wikivoyage) from cvn-app12 to cvn-app13"

https://gerrit.wikimedia.org/r/1151809

Change #1151809 merged by jenkins-bot:

[labs/countervandalism/stillalive@master] Revert "Move CVNBot17 (cvn-wikivoyage) from cvn-app12 to cvn-app13"

https://gerrit.wikimedia.org/r/1151809

Change #1151809 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/stillalive@master] Revert "Move CVNBot17 (cvn-wikivoyage) from cvn-app12 to cvn-app13"

https://gerrit.wikimedia.org/r/1151809

Reason for revert: Bot keeps going into a boot loop.

cvn-app13 CVNBot.exe[5403]: ERROR [Thread Pool Worker] CVNBot.Program [CVNBot17] Caught unhandled exception in global catcher
Mono.Data.Sqlite.SqliteException (0x80004005): Attempt to write a read-only database
  at Mono.Data.Sqlite.SQLite3.Reset
  at Mono.Data.Sqlite.SQLite3.Step
  at Mono.Data.Sqlite.SqliteDataReader.NextResult
  at Mono.Data.Sqlite.SqliteDataReader..ctor
  at (wrapper remoting-invoke-with-check)
  at Mono.Data.Sqlite.SqliteCommand.ExecuteReader
  at Mono.Data.Sqlite.SqliteCommand.ExecuteNonQuery
  at CVNBo.ListManager.CollectGarbage (System.Object stateInfo)
  at System.Threading.Timer+Scheduler.TimerCB (System.Object o)
  at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem
  at System.Threading.ThreadPoolWorkQueue.Dispatch
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback

Two issues:

  • For some reason, when run on the Debian 12, the database is almost immediately read-only preventing writes. Might be that the threads are locking each other out, but works fine on Debian 11.
  • For some reason, when it self-restarts on Debian 12, we end up with two processes, causing it to grow and clone out of control until the server grinds to a halt. Could be all sorts of issues, but again, restarts work fine on Debian 11.

What I'll start with, is to try to build/run with dotnet instead of msbuild/mono. Perhaps this is a known issue that has since been fixed.

Change #1150753 merged by Krinkle:

[labs/countervandalism/cvn-infrastructure@master] setup: Remove redundant ca-certificates-mono workaround

https://gerrit.wikimedia.org/r/1150753

Change #1173380 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/stillalive@master] vendor: Fix return type deprecation warning on PHP 8.4

https://gerrit.wikimedia.org/r/1173380

Change #1173384 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/stillalive@master] build: Update php-parallel-lint to fix PHP 8.4 deprecation warning

https://gerrit.wikimedia.org/r/1173384

Change #1173380 merged by jenkins-bot:

[labs/countervandalism/stillalive@master] vendor: Update ulrichsg/getopt-php to fix PHP 8.4 deprecation warning

https://gerrit.wikimedia.org/r/1173380

Change #1173384 merged by jenkins-bot:

[labs/countervandalism/stillalive@master] build: Update php-parallel-lint to fix PHP 8.4 deprecation warning

https://gerrit.wikimedia.org/r/1173384

Change #1173391 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/stillalive@master] build: Update phan to fix crash on PHP 8.4

https://gerrit.wikimedia.org/r/1173391

Change #1173391 merged by jenkins-bot:

[labs/countervandalism/stillalive@master] build: Update phan to fix crash on PHP 8.4

https://gerrit.wikimedia.org/r/1173391

Seems like the WMCS deadline for this has snuck up on us a bit.

Do we have any known blockers still? Are you (@Krinkle) working on it or should I start working on it?

Looking at https://openstack-browser.toolforge.org/project/cvn, cvn-app13 and cvn-app14 have been created on Bookworm. Would it make more sense to go directly to Trixie instead?

Sure, feel free to destroy those and re-create with Trixie.

The "new" cvn-app Bookworm hosts aren't in use yet because we haven't decided between msbuild (invest effort in getting the old thing to run on the new OS, leaves local dev unsolved or hard to setup) and dotnet (various blockers and unknowns in making CVNBot compile and run properly, see example problem above).

Rather than invest in backporting old Mono to new Debian, or invest in migrating CVNBot to the newer dotnet/msbuild ecosystem; I'm instead picking up T327136: Rewrite CVNBot in Python, which feels like a better use of time.

There's a few bugs to work through, but I'm hopeful this should get us running within a couple more weeks.

Mentioned in SAL (#countervandalism) [2026-09-01T18:01:17Z] <Krinkle> Delete cvn-app13 and cvn-app14 (empty Debian 12 Bookworm instances), to be replaced with Debian 13 Trixie. ref T395164

Krinkle renamed this task from Upgrade cvn fleet from Debian 11 Bullseye to Debian 12 Bookworm (PHP 7.4 > PHP 8.2) to Upgrade cvn fleet from Debian 11 Bullseye to Debian 13 Trixie (PHP 7.4 > PHP 8.4).Sep 1 2026, 6:02 PM
Krinkle triaged this task as High priority.

Change #1333282 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/cvn-infrastructure@master] apache-config: Include wildcard to ease testing

https://gerrit.wikimedia.org/r/1333282

Change #1333282 merged by Krinkle:

[labs/countervandalism/cvn-infrastructure@master] apache-config: Include wildcard to ease testing

https://gerrit.wikimedia.org/r/1333282

Mentioned in SAL (#countervandalism) [2026-09-02T02:14:03Z] <Krinkle> Switch cvn.wmflabs.org and cvn.wmcloud.org web proxy from cvn-apache11 to cvn-apache12, ref T395164

Change #1333458 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/cvn-infrastructure@master] docs: Update runbook for CVNBot python and rewrite in markdown

https://gerrit.wikimedia.org/r/1333458

Change #1333553 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/stillalive@master] Switch CVNClerkBot to cvn-app15

https://gerrit.wikimedia.org/r/1333553

Change #1333553 merged by jenkins-bot:

[labs/countervandalism/stillalive@master] Switch CVNClerkBot to cvn-app15

https://gerrit.wikimedia.org/r/1333553

Change #1333458 merged by Krinkle:

[labs/countervandalism/cvn-infrastructure@master] docs: Update runbook for CVNBot python, rewrite in markdown

https://gerrit.wikimedia.org/r/1333458

Change #1333592 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/stillalive@master] Move all cvn-app12 tasks to cvn-app15

https://gerrit.wikimedia.org/r/1333592

Change #1333592 merged by jenkins-bot:

[labs/countervandalism/stillalive@master] Move all cvn-app12 tasks to cvn-app15

https://gerrit.wikimedia.org/r/1333592

Change #1333620 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/stillalive@master] Move all cvn-app12 tasks to cvn-app16

https://gerrit.wikimedia.org/r/1333620

Change #1333620 merged by jenkins-bot:

[labs/countervandalism/stillalive@master] Move all cvn-app12 tasks to cvn-app16

https://gerrit.wikimedia.org/r/1333620

Change #1333655 had a related patch set uploaded (by Krinkle; author: Krinkle):

[labs/countervandalism/cvn-infrastructure@master] docs: Write "Move all bots" section

https://gerrit.wikimedia.org/r/1333655

Krinkle removed a project: Patch-For-Review.
Krinkle updated the task description. (Show Details)

Mentioned in SAL (#countervandalism) [2026-09-02T08:08:27Z] <Krinkle> Delete cvn-app10 and cvn-app12, ref T395164

Krinkle renamed this task from Upgrade cvn fleet from Debian 11 Bullseye to Debian 13 Trixie (PHP 7.4 > PHP 8.4) to Upgrade cvn fleet from Debian 11 Bullseye to Debian 13 Trixie.Sep 2 2026, 8:11 AM
Krinkle updated the task description. (Show Details)
Krinkle updated the task description. (Show Details)

Change #1333655 merged by Krinkle:

[labs/countervandalism/cvn-infrastructure@master] docs: Write "Move all bots" section

https://gerrit.wikimedia.org/r/1333655