Page MenuHomePhabricator

doctest fails due to server maxlag
Closed, ResolvedPublic

Description

All CI doctests fails because of server maxlag errors (T421642)

8:29:30 =================================== FAILURES ===================================
18:29:30 ________________ [doctest] pywikibot.page._wikibase.LexemePage _________________
18:29:30 2248 Wikibase entity of type 'lexeme'.
18:29:30 2249 
18:29:30 2250     Basic usage sample:
18:29:30 2251 
18:29:30 2252     >>> import pywikibot
18:29:30 2253     >>> repo = pywikibot.Site('wikidata')
18:29:30 UNEXPECTED EXCEPTION: SkipTest('Maximum retries attempted due to maxlag without success.')
18:29:30 Traceback (most recent call last):
18:29:30   File "/opt/pyenv/versions/3.10.20/lib/python3.10/doctest.py", line 1350, in __run
18:29:30     exec(compile(example.source, filename, "single",
18:29:30   File "<doctest pywikibot.page._wikibase.LexemePage[1]>", line 1, in <module>
18:29:30   File "/src/pywikibot/__init__.py", line 266, in Site
18:29:30     _sites[key] = interface(code=code, fam=fam, user=user)
18:29:30   File "/src/pywikibot/site/_datasite.py", line 41, in __init__
18:29:30     super().__init__(*args, **kwargs)
18:29:30   File "/src/pywikibot/site/_apisite.py", line 136, in __init__
18:29:30     self.login(cookie_only=True)
18:29:30   File "/src/pywikibot/site/_apisite.py", line 392, in login
18:29:30     if self.userinfo['name'] == self.user():
18:29:30   File "/src/pywikibot/site/_apisite.py", line 670, in userinfo
18:29:30     uidata = uirequest.submit()
18:29:30   File "/src/pywikibot/data/api/_requests.py", line 1221, in submit
18:29:30     raise unittest.SkipTest(msg)
18:29:30 unittest.case.SkipTest: Maximum retries attempted due to maxlag without success.
18:29:30 /src/pywikibot/page/_wikibase.py:2253: UnexpectedException
18:29:30 ----------------------------- Captured stderr call -----------------------------
18:29:30 Sleeping for 6.5 seconds, 2026-04-03 16:24:20
18:29:30 Sleeping for 13.1 seconds, 2026-04-03 16:24:27
18:29:30 Sleeping for 19.6 seconds, 2026-04-03 16:24:40
18:29:30 Sleeping for 26.2 seconds, 2026-04-03 16:25:00
18:29:30 Sleeping for 33.2 seconds, 2026-04-03 16:25:26
18:29:30 _________ [doctest] pywikibot.site._apisite.APISite.is_uploaddisabled __________
18:29:30 3111 Return True if upload is disabled on site.
18:29:30 3112 
18:29:30 3113         **Example:**
18:29:30 3114 
18:29:30 3115         >>> site = pywikibot.Site('commons')
18:29:30 3116         >>> site.is_uploaddisabled()
18:29:30 3117         False
18:29:30 3118         >>> site = pywikibot.Site('wikidata')
18:29:30 UNEXPECTED EXCEPTION: SkipTest('Maximum retries attempted due to maxlag without success.')
18:29:30 Traceback (most recent call last):
18:29:30   File "/opt/pyenv/versions/3.10.20/lib/python3.10/doctest.py", line 1350, in __run
18:29:30     exec(compile(example.source, filename, "single",
18:29:30   File "<doctest pywikibot.site._apisite.APISite.is_uploaddisabled[2]>", line 1, in <module>
18:29:30   File "/src/pywikibot/__init__.py", line 266, in Site
18:29:30     _sites[key] = interface(code=code, fam=fam, user=user)
18:29:30   File "/src/pywikibot/site/_datasite.py", line 41, in __init__
18:29:30     super().__init__(*args, **kwargs)
18:29:30   File "/src/pywikibot/site/_apisite.py", line 136, in __init__
18:29:30     self.login(cookie_only=True)
18:29:30   File "/src/pywikibot/site/_apisite.py", line 392, in login
18:29:30     if self.userinfo['name'] == self.user():
18:29:30   File "/src/pywikibot/site/_apisite.py", line 670, in userinfo
18:29:30     uidata = uirequest.submit()
18:29:30   File "/src/pywikibot/data/api/_requests.py", line 1221, in submit
18:29:30     raise unittest.SkipTest(msg)
18:29:30 unittest.case.SkipTest: Maximum retries attempted due to maxlag without success.
18:29:30 /src/pywikibot/site/_apisite.py:3118: UnexpectedException
18:29:30 ----------------------------- Captured stderr call -----------------------------
18:29:30 Sleeping for 6.6 seconds, 2026-04-03 16:26:00
18:29:30 Sleeping for 13.5 seconds, 2026-04-03 16:26:07
18:29:30 Sleeping for 20.3 seconds, 2026-04-03 16:26:20
18:29:30 Sleeping for 27.1 seconds, 2026-04-03 16:26:41
18:29:30 Sleeping for 34.9 seconds, 2026-04-03 16:27:08
18:29:30 ________ [doctest] pywikibot.site._apisite.APISite.page_from_repository ________
18:29:30 1351 Return a Page for this site object specified by Wikibase item.
18:29:30 1352 
18:29:30 1353         Usage:
18:29:30 1354 
18:29:30 1355         >>> site = pywikibot.Site('wikipedia:zh')
18:29:30 1356         >>> page = site.page_from_repository('Q131303')
18:29:30 UNEXPECTED EXCEPTION: SkipTest('Maximum retries attempted due to maxlag without success.')
18:29:30 Traceback (most recent call last):
18:29:30   File "/opt/pyenv/versions/3.10.20/lib/python3.10/doctest.py", line 1350, in __run
18:29:30     exec(compile(example.source, filename, "single",
18:29:30   File "<doctest pywikibot.site._apisite.APISite.page_from_repository[1]>", line 1, in <module>
18:29:30   File "/src/pywikibot/site/_apisite.py", line 1394, in page_from_repository
18:29:30     if not self.has_data_repository:
18:29:30   File "/src/pywikibot/site/_apisite.py", line 1296, in has_data_repository
18:29:30     return self.data_repository() is not None
18:29:30   File "/src/pywikibot/site/_apisite.py", line 1328, in data_repository
18:29:30     return pywikibot.Site(url=url, user=self.username(),
18:29:30   File "/src/pywikibot/__init__.py", line 217, in Site
18:29:30     code, fam = _code_fam_from_url(url, fam)
18:29:30   File "/src/pywikibot/__init__.py", line 121, in _code_fam_from_url
18:29:30     code = family.from_url(url)
18:29:30   File "/src/pywikibot/family.py", line 633, in from_url
18:29:30     site = pywikibot.Site(code, self.name)
18:29:30   File "/src/pywikibot/__init__.py", line 266, in Site
18:29:30     _sites[key] = interface(code=code, fam=fam, user=user)
18:29:30   File "/src/pywikibot/site/_datasite.py", line 41, in __init__
18:29:30     super().__init__(*args, **kwargs)
18:29:30   File "/src/pywikibot/site/_apisite.py", line 136, in __init__
18:29:30     self.login(cookie_only=True)
18:29:30   File "/src/pywikibot/site/_apisite.py", line 392, in login
18:29:30     if self.userinfo['name'] == self.user():
18:29:30   File "/src/pywikibot/site/_apisite.py", line 670, in userinfo
18:29:30     uidata = uirequest.submit()
18:29:30   File "/src/pywikibot/data/api/_requests.py", line 1221, in submit
18:29:30     raise unittest.SkipTest(msg)
18:29:30 unittest.case.SkipTest: Maximum retries attempted due to maxlag without success.
18:29:30 /src/pywikibot/site/_apisite.py:1356: UnexpectedException
18:29:30 ----------------------------- Captured stderr call -----------------------------
18:29:30 Sleeping for 7.0 seconds, 2026-04-03 16:27:43
18:29:30 Sleeping for 13.9 seconds, 2026-04-03 16:27:50
18:29:30 Sleeping for 21.1 seconds, 2026-04-03 16:28:04
18:29:30 Sleeping for 28.1 seconds, 2026-04-03 16:28:25
18:29:30 Sleeping for 35.1 seconds, 2026-04-03 16:28:54
18:29:30 =============================== warnings summary ===============================
18:29:30 pywikibot/backports.py::pywikibot.backports.RLock
18:29:30   <doctest pywikibot.backports.RLock[2]>:1: _NotImplementedWarning: pywikibot.backports.RLock.count is deprecated since release 10.2.0.
18:29:30 
18:29:30 pywikibot/bot.py::pywikibot.bot.handle_args
18:29:30   <doctest pywikibot.bot.handle_args[0]>:1: UserWarning: Site objects have been created before arguments were handled
18:29:30 
18:29:30 pywikibot/bot.py::pywikibot.bot.handle_args
18:29:30   <doctest pywikibot.bot.handle_args[2]>:1: UserWarning: Site objects have been created before arguments were handled
18:29:30 
18:29:30 pywikibot/data/api/_requests.py::pywikibot.data.api._requests.Request
18:29:30   <doctest pywikibot.data.api._requests.Request[0]>:1: RuntimeWarning: Request() invoked without a site; setting to wikipedia:test
18:29:30 
18:29:30 pywikibot/page/_toolforge.py::pywikibot.page._toolforge.WikiBlameMixin.main_authors
18:29:30   <doctest pywikibot.page._toolforge.WikiBlameMixin.main_authors[3]>:1: FutureWarning: pywikibot.page._toolforge.WikiBlameMixin.main_authors is deprecated since release 9.3.0; use authorsship instead.
18:29:30 
18:29:30 pywikibot/site/_apisite.py::pywikibot.site._apisite.APISite.protection_levels
18:29:30   <doctest pywikibot.site._apisite.APISite.protection_levels[1]>:1: FutureWarning: pywikibot.site._apisite.APISite.protection_levels is deprecated since release 10.5.0; use the 'restrictions' property instead.
18:29:30 
18:29:30 pywikibot/site/_apisite.py::pywikibot.site._apisite.APISite.protection_types
18:29:30   <doctest pywikibot.site._apisite.APISite.protection_types[1]>:1: FutureWarning: pywikibot.site._apisite.APISite.protection_types is deprecated since release 10.5.0; use the 'restrictions' property instead.
18:29:30 
18:29:30 -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
18:29:30 =========================== short test summary info ============================
18:29:30 FAILED pywikibot/page/_wikibase.py::pywikibot.page._wikibase.LexemePage
18:29:30 FAILED pywikibot/site/_apisite.py::pywikibot.site._apisite.APISite.is_uploaddisabled
18:29:30 FAILED pywikibot/site/_apisite.py::pywikibot.site._apisite.APISite.page_from_repository
18:29:30 ======= 3 failed, 69 passed, 2 skipped, 7 warnings in 442.83s (0:07:22) ========
18:29:30 ERROR: InvocationError for command /src/.tox/doctest-py310/bin/python -m pytest pywikibot --doctest-modules '--ignore-glob=*gui.py' '--ignore-glob=*memento.py' (exited with code 1)
18:29:30 ___________________________________ summary ____________________________________
18:29:30 ERROR:   doctest-py310: commands failed
18:29:30 ERROR: InvocationError for command /opt/pyenv/versions/3.9.25/bin/tox -e doctest-py310 (exited with code 1)
18:29:30 ___________________________________ summary ____________________________________
18:29:30 ERROR:   doctest: commands failed

Event Timeline

Xqt triaged this task as High priority.Apr 3 2026, 5:28 PM
Xqt updated the task description. (Show Details)

Change #1268064 had a related patch set uploaded (by Xqt; author: Xqt):

[pywikibot/core@master] tests: Increase maxlag parameter for doctest

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

Change #1268064 merged by Xqt:

[pywikibot/core@master] tests: Increase maxlag parameter for doctest

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

Change #1268132 had a related patch set uploaded (by Xqt; author: Xqt):

[pywikibot/core@master] Revert "tests: Increase maxlag parameter for doctest"

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

Change #1268132 merged by jenkins-bot:

[pywikibot/core@master] Revert "tests: Increase maxlag parameter for doctest"

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

Change #1268238 had a related patch set uploaded (by Xqt; author: Xqt):

[pywikibot/core@master] tests: Increase maxlag parameter for doctest

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

Change #1268238 merged by Xqt:

[pywikibot/core@master] tests: Increase maxlag parameter for doctest

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

Seen again, but now at GitHub

=================================== FAILURES ===================================
________________ [doctest] pywikibot.page._wikibase.LexemePage _________________
2248 Wikibase entity of type 'lexeme'.
2249 
2250     Basic usage sample:
2251 
2252     >>> import pywikibot
2253     >>> repo = pywikibot.Site('wikidata')
UNEXPECTED EXCEPTION: SkipTest('Maximum retries attempted due to maxlag without success.')
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.12.13/x64/lib/python3.12/doctest.py", line 1368, in __run
    exec(compile(example.source, filename, "single",
  File "<doctest pywikibot.page._wikibase.LexemePage[1]>", line 1, in <module>
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/__init__.py", line 274, in Site
    _sites[key] = interface(code=code, fam=fam, user=user)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/site/_datasite.py", line 41, in __init__
    super().__init__(*args, **kwargs)
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/site/_apisite.py", line 136, in __init__
    self.login(cookie_only=True)
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/site/_apisite.py", line 392, in login
    if self.userinfo['name'] == self.user():
       ^^^^^^^^^^^^^
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/site/_apisite.py", line 670, in userinfo
    uidata = uirequest.submit()
             ^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/data/api/_requests.py", line 1221, in submit
    raise unittest.SkipTest(msg)
unittest.case.SkipTest: Maximum retries attempted due to maxlag without success.
/home/runner/work/pywikibot/pywikibot/pywikibot/page/_wikibase.py:2253: UnexpectedException
----------------------------- Captured stderr call -----------------------------
Sleeping for 5.0 seconds, 2026-05-17 09:36:18
Sleeping for 5.0 seconds, 2026-05-17 09:36:23
Sleeping for 5.0 seconds, 2026-05-17 09:36:28
Sleeping for 6.6 seconds, 2026-05-17 09:36:33
Sleeping for 8.2 seconds, 2026-05-17 09:36:40
_________ [doctest] pywikibot.site._apisite.APISite.is_uploaddisabled __________
3137 Return True if upload is disabled on site.
3138 
3139         **Example:**
3140 
3141         >>> site = pywikibot.Site('commons')
3142         >>> site.is_uploaddisabled()
3143         False
3144         >>> site = pywikibot.Site('wikidata')
UNEXPECTED EXCEPTION: SkipTest('Maximum retries attempted due to maxlag without success.')
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.12.13/x64/lib/python3.12/doctest.py", line 1368, in __run
    exec(compile(example.source, filename, "single",
  File "<doctest pywikibot.site._apisite.APISite.is_uploaddisabled[2]>", line 1, in <module>
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/__init__.py", line 274, in Site
    _sites[key] = interface(code=code, fam=fam, user=user)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/site/_datasite.py", line 41, in __init__
    super().__init__(*args, **kwargs)
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/site/_apisite.py", line 136, in __init__
    self.login(cookie_only=True)
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/site/_apisite.py", line 392, in login
    if self.userinfo['name'] == self.user():
       ^^^^^^^^^^^^^
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/site/_apisite.py", line 670, in userinfo
    uidata = uirequest.submit()
             ^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/data/api/_requests.py", line 1221, in submit
    raise unittest.SkipTest(msg)
unittest.case.SkipTest: Maximum retries attempted due to maxlag without success.
/home/runner/work/pywikibot/pywikibot/pywikibot/site/_apisite.py:3144: UnexpectedException

Change #1288115 had a related patch set uploaded (by Xqt; author: Xqt):

[pywikibot/core@master] tests: Increase maxlag parameter for GutHub doctest

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

Change #1288115 merged by Xqt:

[pywikibot/core@master] tests: Increase maxlag parameter for GutHub doctest

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