Open Bug 1941591 Opened 1 month ago

test_integrated_hgrepo_apply_patch_newline_bug fails with newer mercurial versions

Categories

(Conduit :: Lando, defect)

defect

Tracking

(Not tracked)

People

(Reporter: zeid, Unassigned)

References

Details

Relevant test output (Python 3.12, mercurial 6.9):

------------------------------ Captured log call -------------------------------
ERROR    lando.main.scm.hg:hg.py:515 'NoneType' object has no attribute 'pid'
Traceback (most recent call last):
  File "/home/runner/work/lando/lando/src/lando/main/scm/hg.py", line 453, in run_hg
    return self._run_hg(args)
           ^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/lando/lando/src/lando/main/scm/hg.py", line 496, in _run_hg
    raise hglib.error.CommandError(args, ret, out, err)
hglib.error.CommandError: (255, b'applying /tmp/tmpwaad5b6m', b'patching file test-file\nHunk #1 FAILED at 0\n1 out of 1 hunks FAILED -- saving rejects to file test-file.rej\nabort: patch failed to apply')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/work/lando/lando/src/lando/main/scm/hg.py", line 255, in apply_patch
    self.run_hg(import_cmd + [f_diff.name])
  File "/home/runner/work/lando/lando/src/lando/main/scm/hg.py", line 455, in run_hg
    raise HgException.from_hglib_error(exc) from exc
lando.main.scm.hg.HgPatchConflict: hg error in cmd: hg import --no-commit -s 95 /tmp/tmpwaad5b6m: applying /tmp/tmpwaad5b6m

patching file test-file
Hunk #1 FAILED at 0
1 out of 1 hunks FAILED -- saving rejects to file test-file.rej
abort: patch failed to apply

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/runner/work/lando/lando/src/lando/main/scm/hg.py", line 307, in for_pull
    yield self
  File "/home/runner/work/lando/lando/src/lando/api/tests/test_hg.py", line 238, in test_integrated_hgrepo_apply_patch_newline_bug
    repo.apply_patch(
  File "/home/runner/work/lando/lando/src/lando/main/scm/hg.py", line 267, in apply_patch
    self.run_hg(import_cmd + [f_diff.name])
  File "/home/runner/work/lando/lando/src/lando/main/scm/hg.py", line 453, in run_hg
    return self._run_hg(args)
           ^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/lando/lando/src/lando/main/scm/hg.py", line 473, in _run_hg
    ret = self.hg_repo.runcommand(
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/hglib/client.py", line 192, in runcommand
    channel, data = self._readchannel()
                    ^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/hglib/client.py", line 152, in _readchannel
    raise error.ServerError('server exited with status %d: %s'
hglib.error.ServerError: server exited with status 1: b'** Unknown exception encountered with possibly-broken third-party extension "set_landing_system" (version N/A)\n** which supports versions 5.5 of Mercurial.\n** Please disable "set_landing_system" and try your action again.\n** If that fixes the bug please report it to the extension author.\n** Python 3.12.8 (main, Dec  4 2024, 06:19:59) [GCC 11.4.0]\n** Mercurial Distributed SCM (version 6.9)\n** Extensions loaded: purge, rebase, set_landing_system, strip\n** ProgrammingError: calling `set_untracked` outside of a `changing_files`\nTraceback (most recent call last):\n  File "/home/runner/work/lando/lando/env/bin/hg", line 61, in <module>\n    dispatch.run()\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 143, in run\n    status = dispatch(req)\n             ^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 232, in dispatch\n    status = _rundispatch(req)\n             ^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 276, in _rundispatch\n    ret = _runcatch(req) or 0\n          ^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 457, in _runcatch\n    return _callcatch(ui, _runcatchfunc)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 467, in _callcatch\n    return scmutil.callcatch(ui, func)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/scmutil.py", line 177, in callcatch\n    return func()\n           ^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 447, in _runcatchfunc\n    return _dispatch(req)\n           ^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 1272, in _dispatch\n    return runcommand(\n           ^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 905, in runcommand\n    ret = _runcommand(ui, options, cmd, d)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 1284, in _runcommand\n    return cmdfunc()\n           ^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 1270, in <lambda>\n    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/util.py", line 1957, in check\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/commands.py", line 6710, in serve\n    return server.runservice(opts, initfn=service.init, runfn=service.run)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/server.py", line 167, in runservice\n    return runfn()\n           ^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/commandserver.py", line 461, in run\n    return sv.serve()\n           ^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/commandserver.py", line 395, in serve\n    while self.serveone():\n          ^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/commandserver.py", line 369, in serveone\n    handler(self)\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/commandserver.py", line 350, in runcommand\n    ret = self._dispatchcommand(req) & 255\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/commandserver.py", line 289, in _dispatchcommand\n    return dispatch.dispatch(req)\n           ^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 232, in dispatch\n    status = _rundispatch(req)\n             ^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 276, in _rundispatch\n    ret = _runcatch(req) or 0\n          ^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 457, in _runcatch\n    return _callcatch(ui, _runcatchfunc)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 467, in _callcatch\n    return scmutil.callcatch(ui, func)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/scmutil.py", line 177, in callcatch\n    return func()\n           ^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 447, in _runcatchfunc\n    return _dispatch(req)\n           ^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 1272, in _dispatch\n    return runcommand(\n           ^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 905, in runcommand\n    ret = _runcommand(ui, options, cmd, d)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 1284, in _runcommand\n    return cmdfunc()\n           ^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 1270, in <lambda>\n    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/util.py", line 1957, in check\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/commands.py", line 4319, in import_\n    msg, node, rej = cmdutil.tryimportone(\n                     ^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/cmdutil.py", line 2050, in tryimportone\n    patch.patch(\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/patch.py", line 2450, in patch\n    return _externalpatch(\n           ^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/patch.py", line 2363, in _externalpatch\n    scmutil.marktouched(repo, files, similarity)\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/scmutil.py", line 1427, in marktouched\n    _markchanges(repo, unknown + forgotten, deleted, renames)\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/scmutil.py", line 1503, in _markchanges\n    wctx.forget(deleted)\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/context.py", line 1741, in forget\n    if not ds.set_untracked(f):\n           ^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dirstate.py", line 91, in wrap\n    return func(self, *args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dirstate.py", line 112, in wrap\n    raise error.ProgrammingError(msg)\nmercurial.error.ProgrammingError: calling `set_untracked` outside of a `changing_files`'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/runner/work/lando/lando/src/lando/main/scm/hg.py", line 513, in _clean_and_close
    self.clean_repo()
  File "/home/runner/work/lando/lando/src/lando/main/scm/hg.py", line 536, in clean_repo
    self.run_hg(["--quiet", "revert", "--no-backup", "--all"])
  File "/home/runner/work/lando/lando/src/lando/main/scm/hg.py", line 453, in run_hg
    return self._run_hg(args)
           ^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/lando/lando/src/lando/main/scm/hg.py", line 466, in _run_hg
    "hg_pid": self.hg_repo.server.pid,
              ^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'pid'
=============================== warnings summary ===============================
env/lib/python3.12/site-packages/josepy/util.py:26
  /home/runner/work/lando/lando/env/lib/python3.12/site-packages/josepy/util.py:26: DeprecationWarning: CSR support in pyOpenSSL is deprecated. You should use the APIs in cryptography.
    def __init__(self, wrapped: Union[crypto.X509, crypto.X509Req]) -> None:

env/lib/python3.12/site-packages/_pytest/fixtures.py:1313
  /home/runner/work/lando/lando/env/lib/python3.12/site-packages/_pytest/fixtures.py:1313: PytestRemovedIn9Warning: Marks applied to fixtures have no effect
  See docs: https://docs.pytest.org/en/stable/deprecations.html#applying-a-mark-to-a-fixture-function
    return fixture_marker(fixture_function)

src/lando/dockerflow/tests/test_dockerflow.py::test_dockerflow_version_endpoint_response
src/lando/dockerflow/tests/test_dockerflow.py::test_dockerflow_version_matches_disk_contents
src/lando/tests/test_version.py::test_version
  /home/runner/work/lando/lando/env/lib/python3.12/site-packages/setuptools_scm/git.py:167: UserWarning: "/home/runner/work/lando/lando" is shallow and may cause errors
    warnings.warn(f'"{wd.path}" is shallow and may cause errors')

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

---------- coverage: platform linux, python 3.12.8-final-0 -----------
Coverage HTML written to dir htmlcov

=========================== short test summary info ============================
FAILED src/lando/api/tests/test_hg.py::test_integrated_hgrepo_apply_patch_newline_bug - hglib.error.ServerError: server exited with status 1: b'** Unknown exception encountered with possibly-broken third-party extension "set_landing_system" (version N/A)\n** which supports versions 5.5 of Mercurial.\n** Please disable "set_landing_system" and try your action again.\n** If that fixes the bug please report it to the extension author.\n** Python 3.12.8 (main, Dec  4 2024, 06:19:59) [GCC 11.4.0]\n** Mercurial Distributed SCM (version 6.9)\n** Extensions loaded: purge, rebase, set_landing_system, strip\n** ProgrammingError: calling `set_untracked` outside of a `changing_files`\nTraceback (most recent call last):\n  File "/home/runner/work/lando/lando/env/bin/hg", line 61, in <module>\n    dispatch.run()\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 143, in run\n    status = dispatch(req)\n             ^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 232, in dispatch\n    status = _rundispatch(req)\n             ^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 276, in _rundispatch\n    ret = _runcatch(req) or 0\n          ^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 457, in _runcatch\n    return _callcatch(ui, _runcatchfunc)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 467, in _callcatch\n    return scmutil.callcatch(ui, func)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/scmutil.py", line 177, in callcatch\n    return func()\n           ^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 447, in _runcatchfunc\n    return _dispatch(req)\n           ^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 1272, in _dispatch\n    return runcommand(\n           ^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 905, in runcommand\n    ret = _runcommand(ui, options, cmd, d)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 1284, in _runcommand\n    return cmdfunc()\n           ^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 1270, in <lambda>\n    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/util.py", line 1957, in check\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/commands.py", line 6710, in serve\n    return server.runservice(opts, initfn=service.init, runfn=service.run)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/server.py", line 167, in runservice\n    return runfn()\n           ^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/commandserver.py", line 461, in run\n    return sv.serve()\n           ^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/commandserver.py", line 395, in serve\n    while self.serveone():\n          ^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/commandserver.py", line 369, in serveone\n    handler(self)\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/commandserver.py", line 350, in runcommand\n    ret = self._dispatchcommand(req) & 255\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/commandserver.py", line 289, in _dispatchcommand\n    return dispatch.dispatch(req)\n           ^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 232, in dispatch\n    status = _rundispatch(req)\n             ^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 276, in _rundispatch\n    ret = _runcatch(req) or 0\n          ^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 457, in _runcatch\n    return _callcatch(ui, _runcatchfunc)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 467, in _callcatch\n    return scmutil.callcatch(ui, func)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/scmutil.py", line 177, in callcatch\n    return func()\n           ^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 447, in _runcatchfunc\n    return _dispatch(req)\n           ^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 1272, in _dispatch\n    return runcommand(\n           ^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 905, in runcommand\n    ret = _runcommand(ui, options, cmd, d)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 1284, in _runcommand\n    return cmdfunc()\n           ^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dispatch.py", line 1270, in <lambda>\n    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/util.py", line 1957, in check\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/commands.py", line 4319, in import_\n    msg, node, rej = cmdutil.tryimportone(\n                     ^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/cmdutil.py", line 2050, in tryimportone\n    patch.patch(\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/patch.py", line 2450, in patch\n    return _externalpatch(\n           ^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/patch.py", line 2363, in _externalpatch\n    scmutil.marktouched(repo, files, similarity)\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/scmutil.py", line 1427, in marktouched\n    _markchanges(repo, unknown + forgotten, deleted, renames)\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/scmutil.py", line 1503, in _markchanges\n    wctx.forget(deleted)\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/context.py", line 1741, in forget\n    if not ds.set_untracked(f):\n           ^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dirstate.py", line 91, in wrap\n    return func(self, *args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/home/runner/work/lando/lando/env/lib/python3.12/site-packages/mercurial/dirstate.py", line 112, in wrap\n    raise error.ProgrammingError(msg)\nmercurial.error.ProgrammingError: calling `set_untracked` outside of a `changing_files`'
You need to log in before you can comment on or make changes to this bug.