In [[https://gerrit.wikimedia.org/r/c/mediawiki/extensions/CampaignEvents/+/1162644 | r1162644]] we tried adding the CLDR extension as a hard dependency of CampaignEvents using:
```lang=json
"requires": {
"MediaWiki": ">= 1.45",
"extensions": {
"cldr"CLDR": "*"
}
},
```
(NoteThis works in an existing wiki, the dependency should be declared as `CLDR`but fails when running the installer, but that is not the point here)e.g.
This caused the CI jobs to get stuck with something like (from https://integration.wikimedia.org/ci/job/quibble-vendor-mysql-php81/14375/console):
```lines=10
15:33:34 <<< Finish: npm install in /workspace/src, in 9.296 s
15:33:34
15:33:35 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 10s elapsed, 1/2 completed
15:33:45 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 20s elapsed, 1/2 completed
15:33:55 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 30s elapsed, 1/2 completed
15:34:05 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 40s elapsed, 1/2 completed
15:34:15 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 50s elapsed, 1/2 completed
15:34:25 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 60s elapsed, 1/2 completed
15:34:35 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 70s elapsed, 1/2 completed
15:34:45 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 80s elapsed, 1/2 completed
15:34:55 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 90s elapsed, 1/2 completed
15:35:05 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 100s elapsed, 1/2 completed
15:35:15 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 110s elapsed, 1/2 completed
15:35:25 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 120s elapsed, 1/2 completed
15:35:35 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 130s elapsed, 1/2 completed
15:35:45 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 140s elapsed, 1/2 completed
15:35:55 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 150s elapsed, 1/2 completed
15:36:05 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 160s elapsed, 1/2 completed
15:36:15 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 170s elapsed, 1/2 completed
15:36:25 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 180s elapsed, 1/2 completed
15:36:53 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 190s elapsed, 1/2 completed
15:37:28 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 212s elapsed, 1/2 completed
15:37:38 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 251s elapsed, 1/2 completed
15:38:10 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 261s elapsed, 1/2 completed
15:38:10 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 271s elapsed, 1/2 completed
15:38:12 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 282s elapsed, 1/2 completed
15:38:21 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 292s elapsed, 1/2 completed
15:38:33 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 303s elapsed, 1/2 completed
15:39:15 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 313s elapsed, 1/2 completed
15:39:15 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 323s elapsed, 1/2 completed
15:39:15 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 334s elapsed, 1/2 completed
15:39:22 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 344s elapsed, 1/2 completed
15:39:26 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 355s elapsed, 1/2 completed
15:39:43 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 365s elapsed, 1/2 completed
15:39:51 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 376s elapsed, 1/2 completed
15:39:57 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 386s elapsed, 1/2 completed
15:40:04 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 397s elapsed, 1/2 completed
15:40:29 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 407s elapsed, 1/2 completed
15:40:29 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 418s elapsed, 1/2 completed
15:41:16 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 429s elapsed, 1/2 completed
15:41:16 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 439s elapsed, 1/2 completed
15:41:37 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 449s elapsed, 1/2 completed
15:41:43 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 460s elapsed, 1/2 completed
15:41:43 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 470s elapsed, 1/2 completed
15:41:43 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 481s elapsed, 1/2 completed
15:41:43 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 491s elapsed, 1/2 completed
15:41:58 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 501s elapsed, 1/2 completed
15:42:24 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 512s elapsed, 1/2 completed
15:42:24 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 522s elapsed, 1/2 completed
15:42:24 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 532s elapsed, 1/2 completed
15:42:36 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 543s elapsed, 1/2 completed
15:42:47 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 553s elapsed, 1/2 completed
15:42:58 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 563s elapsed, 1/2 completed
15:43:06 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 574s elapsed, 1/2 completed
15:44:25 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 584s elapsed, 1/2 completed
15:44:25 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 595s elapsed, 1/2 completed
15:44:25 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 605s elapsed, 1/2 completed
15:44:25 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 616s elapsed, 1/2 completed
15:44:25 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 626s elapsed, 1/2 completed
15:44:25 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 637s elapsed, 1/2 completed
15:44:25 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 647s elapsed, 1/2 completed
15:44:45 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 658s elapsed, 1/2 completed
15:44:45 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 669s elapsed, 1/2 completed
15:45:06 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 679s elapsed, 1/2 completed
15:45:24 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 690s elapsed, 1/2 completed
15:45:24 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 700s elapsed, 1/2 completed
15:46:00 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 711s elapsed, 1/2 completed
15:46:01 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 721s elapsed, 1/2 completed
15:46:01 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 732s elapsed, 1/2 completed
15:46:14 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 742s elapsed, 1/2 completed
15:46:35 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 753s elapsed, 1/2 completed
15:46:35 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 763s elapsed, 1/2 completed
15:46:35 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 774s elapsed, 1/2 completed
15:46:35 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 784s elapsed, 1/2 completed
15:46:59 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 795s elapsed, 1/2 completed
15:46:59 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 805s elapsed, 1/2 completed
15:47:01 INFO:quibble.commands:>>> Start: Install MediaWiki, db=<MySQL /workspace/db/quibble-mysql-azck89sc/socket>
15:47:01 php maintenance/install.php --scriptpath= --server=http://127.0.0.1:9413 --dbtype=mysql --dbname=wikidb --dbuser=wikiuser --dbpass=secret --dbserver=localhost:/workspace/db/quibble-mysql-azck89sc/socket --with-extensions --pass=testwikijenkinspass TestWiki WikiAdmin
15:47:01 <<< Finish: Install MediaWiki, db=<MySQL /workspace/db/quibble-mysql-azck89sc/socket>, in 815.556 s
15:47:01
15:47:01 INFO:quibble.commands:<<< Finish: Run Post-dependency install, pre-database dependent steps in parallel (concurrency=2):
15:47:01 * Install MediaWiki, db=<MySQL /workspace/db/quibble-mysql-azck89sc/socket>
15:47:01 * npm install in /workspace/src, in 815.613 s
15:47:01 INFO:backend.MySQL:Terminating MySQL
15:47:01 DEBUG:quibble.util:Waiting for Post-dependency install, pre-database dependent steps: 815s elapsed, 1/2 completed
15:47:01 Traceback (most recent call last):
15:47:01 File "/usr/local/bin/quibble", line 8, in <module>
15:47:01 sys.exit(main())
15:47:01 File "/usr/local/lib/python3.9/dist-packages/quibble/cmd.py", line 998, in main
15:47:01 cmd.execute(
15:47:01 File "/usr/local/lib/python3.9/dist-packages/quibble/cmd.py", line 636, in execute
15:47:01 quibble.commands.execute_command(command)
15:47:01 File "/usr/local/lib/python3.9/dist-packages/quibble/commands.py", line 48, in execute_command
15:47:01 command.execute()
15:47:01 File "/usr/local/lib/python3.9/dist-packages/quibble/commands.py", line 1327, in execute```
15:47:01 raise error$ php maintenance/install.php --scriptpath= --server=http://127.0.0.1:9413 --dbtype=mysql --dbname=wikidb --dbuser=wikiuser --dbpass=secret --dbserver=localhost:/workspace/db/quibble-mysql-ihy80989/socket --with-extensions --pass=testwikijenkinspass TestWiki WikiAdmin
15:47:01 FileNotFoundError: [Errno 2] No such file or directory: '/workspace/src/LocalSettings.php' -> '/workspace/src/LocalSettings-installer.php' Error: A dependency error was encountered while installing the extension "CampaignEvents": Could not find the registration file for the extension "CLDR"
```
Further debugging (see comments) showed that this is a bug in the MW installerIf I try specifying the dependency using the directory name `cldr` (lowercase) instead of the extension name, the installer will just get stuck and eventually OOM.