[Bug 4920] New: TypeError: unsupported operand type(s) for -: '_demandmod' and 'int'
mercurial-bugs at selenic.com
mercurial-bugs at selenic.com
Mon Oct 26 21:48:08 UTC 2015
https://bz.mercurial-scm.org/show_bug.cgi?id=4920
Bug ID: 4920
Summary: TypeError: unsupported operand type(s) for -:
'_demandmod' and 'int'
Product: Mercurial
Version: 3.5.2
Hardware: PC
OS: Linux
Status: UNCONFIRMED
Severity: bug
Priority: normal
Component: Mercurial
Assignee: bugzilla at selenic.com
Reporter: gabor.stefanik at nng.com
CC: mercurial-devel at selenic.com
Ran into this when trying to run Mercurial inside an unusual Python virtual
environment. Google shows a few other users running into it as well, though
very hard to reproduce. Apparently it occurs if the Python regex library is
loaded after demandimport is active, and perhaps even then only on certain
Python versions.
Full backtrace:
File "/home/repo/nngutils_hg/python27/bin/hg", line 43, in <module>
mercurial.util.setbinary(fp)
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 114, in __getattribute__
self._load()
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 86, in _load
mod = _hgextimport(_import, head, globals, locals, None, level)
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 55, in _hgextimport
return importfunc(name, globals, *args)
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/util.py",
line 30, in <module>
cachestat = platform.cachestat
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 114, in __getattribute__
self._load()
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 86, in _load
mod = _hgextimport(_import, head, globals, locals, None, level)
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 55, in _hgextimport
return importfunc(name, globals, *args)
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/posix.py",
line 206, in <module>
normcasespec = encoding.normcasespecs.lower
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 114, in __getattribute__
self._load()
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 86, in _load
mod = _hgextimport(_import, head, globals, locals, None, level)
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 55, in _hgextimport
return importfunc(name, globals, *args)
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/encoding.py",
line 68, in <module>
except locale.Error:
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 114, in __getattribute__
self._load()
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 86, in _load
mod = _hgextimport(_import, head, globals, locals, None, level)
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 55, in _hgextimport
return importfunc(name, globals, *args)
File "/home/repo/nngutils_hg/python27/lib/python2.7/locale.py", line 182, in
<module>
_percent_re = re.compile(r'%(?:\((?P<key>.*?)\))?'
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 114, in __getattribute__
self._load()
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 86, in _load
mod = _hgextimport(_import, head, globals, locals, None, level)
File
"/home/repo/nngutils_hg/python27/lib/python2.7/site-packages/mercurial/demandimport.py",
line 55, in _hgextimport
return importfunc(name, globals, *args)
File "/home/repo/nngutils_hg/python27/lib/python2.7/re.py", line 222, in
<module>
_pattern_type = type(sre_compile.compile("", 0))
File "/home/repo/nngutils_hg/python27/lib/python2.7/sre_compile.py", line
502, in compile
code = _code(p, flags)
File "/home/repo/nngutils_hg/python27/lib/python2.7/sre_compile.py", line
484, in _code
_compile_info(code, p, flags)
File "/home/repo/nngutils_hg/python27/lib/python2.7/sre_compile.py", line
363, in _compile_info
lo, hi = pattern.getwidth()
File "/home/repo/nngutils_hg/python27/lib/python2.7/sre_parse.py", line 174,
in getwidth
self.width = min(lo, MAXREPEAT - 1), min(hi, MAXREPEAT)
TypeError: unsupported operand type(s) for -: '_demandmod' and 'int'
Fairly easy to fix - '_sre' nees to be added to be the demandimport blacklist.
# HG changeset patch
# User gstefanik
# Date 1445894342 -3600
# Mon Oct 26 22:19:02 2015 +0100
# Branch hg
# Node ID 21139c6df629cee1ee9d9509da201b6693d80bf3
# Parent 30c5bca51750f0c2950f0d49395a3d28a88da72c
fix _demandmod error on linux
diff -r 30c5bca51750 -r 21139c6df629 mercurial/demandimport.py
--- a/mercurial/demandimport.py Mon Oct 26 20:21:40 2015 +0100
+++ b/mercurial/demandimport.py Mon Oct 26 22:19:02 2015 +0100
@@ -170,6 +170,7 @@
# raise ImportError if x not defined
'__main__',
'_ssl', # conditional imports in the stdlib, issue1964
+ '_sre',
'rfc822',
'mimetools',
# setuptools 8 expects this module to explode early when not on windows
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Mercurial-devel
mailing list