[Bug 6612] New: Python 3.10: PY_SSIZE_T_CLEAN macro must be defined for '#' formats

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Fri Nov 12 02:55:30 UTC 2021


https://bz.mercurial-scm.org/show_bug.cgi?id=6612

            Bug ID: 6612
           Summary: Python 3.10: PY_SSIZE_T_CLEAN macro must be defined
                    for '#' formats
           Product: Mercurial
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: fsmonitor
          Assignee: bugzilla at mercurial-scm.org
          Reporter: mhentges at mozilla.com
                CC: mercurial-devel at mercurial-scm.org
    Python Version: ---

To reproduce:

1. Install Python 3.10
2. Build/install HG such that it uses Python 3.10
3. Use the following minimal `.hgrc`:
```
[extensions]
blackbox =
fsmonitor = 
```
4. In the `hg` repo: `hg up`

```
~/d/hg % ./hg up
obsolete feature not enabled but 274483 markers found!
** unknown exception encountered, please report by visiting
** https://mercurial-scm.org/wiki/BugTracker
** Python 3.10.0 (default, Oct  4 2021, 00:00:00) [GCC 11.2.1 20210728 (Red Hat
11.2.1-1)]
** Mercurial Distributed SCM (version 5.9.3)
** Extensions loaded: blackbox, fsmonitor
Traceback (most recent call last):
  File "/home/mitch/dev/hg/hgext/fsmonitor/__init__.py", line 830, in _state
    self.repo._watchmanclient.command(
  File "/home/mitch/dev/hg/hgext/fsmonitor/watchmanclient.py", line 119, in
command
    return self._command(*args)
  File "/home/mitch/dev/hg/hgext/fsmonitor/watchmanclient.py", line 106, in
_command
    return self._watchmanclient.query(*watchmanargs)
  File "/home/mitch/dev/hg/hgext/fsmonitor/pywatchman/__init__.py", line 1156,
in query
    self._connect()
  File "/home/mitch/dev/hg/hgext/fsmonitor/pywatchman/__init__.py", line 1024,
in _connect
    self.sockpath = self._resolvesockname()
  File "/home/mitch/dev/hg/hgext/fsmonitor/pywatchman/__init__.py", line 1007,
in _resolvesockname
    result = bser.loads(stdout)
SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/mitch/dev/hg/./hg", line 61, in <module>
    dispatch.run()
  File "/home/mitch/dev/hg/mercurial/dispatch.py", line 144, in run
    status = dispatch(req)
  File "/home/mitch/dev/hg/mercurial/dispatch.py", line 250, in dispatch
    status = _rundispatch(req)
  File "/home/mitch/dev/hg/mercurial/dispatch.py", line 294, in _rundispatch
    ret = _runcatch(req) or 0
  File "/home/mitch/dev/hg/mercurial/dispatch.py", line 470, in _runcatch
    return _callcatch(ui, _runcatchfunc)
  File "/home/mitch/dev/hg/mercurial/dispatch.py", line 480, in _callcatch
    return scmutil.callcatch(ui, func)
  File "/home/mitch/dev/hg/mercurial/scmutil.py", line 153, in callcatch
    return func()
  File "/home/mitch/dev/hg/mercurial/dispatch.py", line 460, in _runcatchfunc
    return _dispatch(req)
  File "/home/mitch/dev/hg/mercurial/dispatch.py", line 1273, in _dispatch
    return runcommand(
  File "/home/mitch/dev/hg/mercurial/dispatch.py", line 918, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/home/mitch/dev/hg/mercurial/dispatch.py", line 1285, in _runcommand
    return cmdfunc()
  File "/home/mitch/dev/hg/mercurial/dispatch.py", line 1271, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
  File "/home/mitch/dev/hg/mercurial/util.py", line 1886, in check
    return func(*args, **kwargs)
  File "/home/mitch/dev/hg/mercurial/commands.py", line 7848, in update
    ret = hg.updatetotally(
  File "/home/mitch/dev/hg/mercurial/hg.py", line 1180, in updatetotally
    ret = _update(repo, checkout, updatecheck=updatecheck)
  File "/home/mitch/dev/hg/mercurial/hg.py", line 1099, in update
    stats = mergemod.update(repo[node], updatecheck=updatecheck)
  File "/home/mitch/dev/hg/mercurial/merge.py", line 2196, in update
    return _update(
  File "/home/mitch/dev/hg/hgext/fsmonitor/__init__.py", line 890, in
wrapupdate
    with state_update(
  File "/home/mitch/dev/hg/hgext/fsmonitor/__init__.py", line 788, in __enter__
    self.enter()
  File "/home/mitch/dev/hg/hgext/fsmonitor/__init__.py", line 803, in enter
    self.need_leave = self._state(b'state-enter', hex(self.oldnode))
  File "/home/mitch/dev/hg/hgext/fsmonitor/__init__.py", line 849, in _state
    self.repo.ui.log(
  File "/home/mitch/dev/hg/mercurial/ui.py", line 2126, in log
    msg = msgfmt % msgargs
TypeError: %b requires a bytes-like object, or an object that implements
__bytes__, not 'SystemError'
```

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list