Page MenuHomePhabricator

WikibaseLexeme submodule is not available
Open, Stalled, HighPublicBUG REPORT

Description

The submodule WikibaseLexeme included into the repository mediawiki/extensions is not available, making it unclonable (with submodule recursion).

Event Timeline

Reedy changed the task status from Open to Stalled.Fri, Nov 7, 3:23 AM
Reedy subscribed.

What do you mean it's not available? Temporarily it failed? Permanently?

What error message?

What branch are you using?

[submodule "WikibaseLexeme"]
	path = WikibaseLexeme
	url = https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseLexeme
	branch = .

https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseLexeme is not found.

/usr/bin/git pull --recurse-submodules is aborted on master branch.

$ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseLexeme
Cloning into 'WikibaseLexeme'...
remote: Counting objects: 1221, done
remote: Finding sources: 100% (18/18)
remote: Getting sizes: 100% (13/13)
remote: Compressing objects: 100% (667753/667753)
remote: Total 40375 (delta 5), reused 40362 (delta 1)
Receiving objects: 100% (40375/40375), 11.34 MiB | 9.22 MiB/s, done.
Resolving deltas: 100% (31124/31124), done.
[acko@foo ~]$ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseLexeme
Cloning into 'WikibaseLexeme'...
remote: Counting objects: 1221, done
remote: Finding sources: 100% (18/18)
remote: Getting sizes: 100% (13/13)
remote: Compressing objects: 100% (667753/667753)
remote: Total 40375 (delta 5), reused 40362 (delta 1)
Receiving objects: 100% (40375/40375), 11.34 MiB | 6.45 MiB/s, done.
Resolving deltas: 100% (31124/31124), done.
[acko@foo ~]$

For future reference, please include clear steps to reproduce something somewhere with no space left for interpretation. Thanks.

/usr/bin/git clone --recurse-submodules https://gerrit.wikimedia.org/r/mediawiki/extensions
…
Cloning into '/var/mediawiki/extensions/WikibaseLexeme/resources/special/new-lexeme'...
fatal: unable to access 'https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git/': The requested URL returned error: 403
fatal: clone of 'https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git' into submodule path '/var/mediawiki/extensions/WikibaseLexeme/resources/special/new-lexeme' failed
Failed to clone 'resources/special/new-lexeme'. Retry scheduled
Cloning into '/var/mediawiki/extensions/WikibaseLexeme/resources/special/new-lexeme'...
fatal: unable to access 'https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git/': The requested URL returned error: 403
fatal: clone of 'https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git' into submodule path '/var/mediawiki/extensions/WikibaseLexeme/resources/special/new-lexeme' failed
Failed to clone 'resources/special/new-lexeme' a second time, aborting
fatal: Failed to recurse into submodule path 'WikibaseLexeme'

https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git is not cloneable, because it requires user login to Phabricator to access:

Login Required
You must log in to take this action.

Should a bug with WikibaseLexeme be registered instead?

A_smart_kitten subscribed.

Ah, so ext:WikibaseLexeme's .gitmodules points to Diffusion:

[submodule "resources/special/new-lexeme"]
	path = resources/special/new-lexeme
	url = https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git

This feels like maybe T374926: [EPIC][Infra] Move Wikibase and WikibaseLexeme Git submodules to suitable Git host, but combined with the effects of the latter part of T408956#11341971 (non-public) or something similar.

Ah, thanks.

[acko@foo ~]$ git clone https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git
Cloning into 'new-lexeme-special-page'...
fatal: unable to access 'https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git/': The requested URL returned error: 403

That is interesting, because the Phabricator Diffusion management UI says that this URI should allow read only access:

Screenshot From 2025-11-07 09-37-53.png (794×1 px, 121 KB)

https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git is not cloneable, because it requires user login to Phabricator to access:

Login Required
You must log in to take this action.

That is a side effect of T409175: Diffusion code view: Hide last change date for anonymous users && display login dialog on every page, and I would naïvely expect that log-in requirement to only affect the web interface (maybe I am wrong though).

Are you sure that there is a relation between git clone failing on the command line for code checkout, and the web interface in a browser asking you to log in for code browsing?

Are you sure that there is a relation between git clone failing on the command line for code checkout, and the web interface in a browser asking you to log in for code browsing?

I would naïvely presume that code checkout is a kind of code browsing. But the question is, rather, to the admins of that server.

(Adding tags for visibility, though I assume this needs to be either addressed on the Phabricator side, or resolved as part of T372458 / T374926 like @A_smart_kitten mentioned.)

Reedy renamed this task from WikibaseLexeme not available to WikibaseLexeme submodule is not available.Fri, Nov 7, 12:20 PM
Aklapper triaged this task as High priority.Fri, Nov 7, 2:43 PM
Aklapper added a project: Regression.

This seems to depend on the path. /source/ works (that's a 404 on web, always been), /diffusion/ does not (that's the new login dialog on web)?:

[acko@foo ~]$ git clone https://phabricator.wikimedia.org/diffusion/MW/mediawiki.git
Cloning into 'mediawiki'...
fatal: unable to access 'https://phabricator.wikimedia.org/diffusion/MW/mediawiki.git/': The requested URL returned error: 403
[acko@foo ~]$ git clone https://phabricator.wikimedia.org/source/mediawiki.git
Cloning into 'mediawiki'...
[...]
Updating files: 100% (12077/12077), done.
[acko@foo ~]$

My theory is that this could be related to the path handling in PhabricatorDiffusionApplication::getRoutes(). Which I hadn't expected.

I'd prefer to revert T409175: Diffusion code view: Hide last change date for anonymous users && display login dialog on every page for now in https://gitlab.wikimedia.org/repos/phabricator/phabricator/-/merge_requests/107

$ GIT_TRACE_CURL=1 git clone https://phabricator.wikimedia.org/diffusion/MW/mediawiki.git
Cloning into 'mediawiki'...
[...]
Recv data: <!DOCTYPE html>.<html lang="en">.<meta charset="utf-8">.<tit
Recv data: le>Wikimedia Error</title>.<style>.* { margin: 0; padding: 0
[...]
Recv data:  class="content-text">.<h1>Error</h1>..<p>Our servers are cu
Recv data: rrently under maintenance or experiencing a technical issue<
Recv data: /p>.</div>.</div>.<div class="footer"><p>If you report this 
Recv data: error to the Wikimedia System Administrators, please include
Recv data:  the details below.</p><p class="text-muted"><code>Request s
[...]
fatal: unable to access 'https://phabricator.wikimedia.org/diffusion/MW/mediawiki.git/': The requested URL returned error: 403

Maybe I'm missing something, but this seems like a block from the SRE side of things (rather than from the Phab code)? That's why I assumed it might be related to the change mentioned in the latter part of T408956#11341971.

Uh, thanks! Let's CC collaboration-services for potential input. I'm especially curious about the /diffusion/ vs /source/ URI differences in behavior.

That is caused by a system in front of Phabricator which prevents crawlers browsing Diffusion (as I described at T408956#11335166). That was put in place early this week. I missed we had some repositories being cloned from Phabricator and those should be exempt, notably git-upload-pack service should always be allowed:

GIT_CURL_VERBOSE=2 git clone https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git/ |& grep GET
18:13:39.378185 http.c:913              == Info: [HTTP/2] [1] [:method: GET]
18:13:39.378235 http.c:872              => Send header: GET /diffusion/NLSP/new-lexeme-special-page.git/info/refs?service=git-upload-pack HTTP/2
hashar added a parent task: Restricted Task.Fri, Nov 7, 5:18 PM

Indeed there is nothing to fix or change on a configuration level of Diffusion or Phabricator itself.

Maybe maybe some day anti-abuse measures in requestctl could be loosened again, however currently I consider overall availability of a service like Phabricator more important than individual repository cloning via Diffusion.

The proper fix for the problem described in this task is to have the Wikibase team fix T374926: [EPIC][Infra] Move Wikibase and WikibaseLexeme Git submodules to suitable Git host.

I'm also getting people on mediawiki.org support complaining about this btw.

If you run into this problem and need an immediate workaround, you can probably configure your git client to remap the url with something like:

git config --global url.https://github.com/wmde/WikibaseDataModel.git.insteadof https://phabricator.wikimedia.org/source/wikibase-data-model.git
git config --global url.https://github.com/wmde/DataValuesJavaScript.git.insteadof https://phabricator.wikimedia.org/source/datavalues-javascript.git
git config --global url.https://github.com/wmde/WikibaseSerializationJavaScript.git.insteadof https://phabricator.wikimedia.org/source/wikibase-serialization.git

Which will be persisted in your .gitconfig as

[url "https://github.com/wmde/WikibaseDataModelJavascript.git"]
        insteadof = https://phabricator.wikimedia.org/source/wikibase-data-model.git
[url "https://github.com/wmde/DataValuesJavaScript.git"]
        insteadof = https://phabricator.wikimedia.org/source/datavalues-javascript.git
[url "https://github.com/wmde/WikibaseSerializationJavaScript.git"]
        insteadof = https://phabricator.wikimedia.org/source/wikibase-serialization.git

This begs the question.. maybe we should do this in the opposite direction for wikimedia production, thus immediately having everyone on the GitHub urls, and only WMF replacing the urls for their situation ? Should be easy to have that controlled in puppet I think ?

I'm currently blocked from updating my train-dev development environment because I can't clone https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git from offsite.

dancy@base:/train-dev/scap$ git clone https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git /tmp/xxx
Cloning into '/tmp/xxx'...
fatal: unable to access 'https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git/': The requested URL returned error: 403