[Bug 4326] New: Race Condition in HgWeb?

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Fri Aug 8 22:57:08 UTC 2014


http://bz.selenic.com/show_bug.cgi?id=4326

          Priority: normal
            Bug ID: 4326
                CC: mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: Race Condition in HgWeb?
          Severity: bug
    Classification: Unclassified
                OS: Windows
          Reporter: sgrinwis at gmail.com
          Hardware: PC
            Status: UNCONFIRMED
           Version: 3.1
         Component: hgweb
           Product: Mercurial

Apache 2.2.27 (Win64) mod_wsgi/3.5  Python 2.7.8 

Issue seems an awful lot like 3953,  however, it was fixed in 2.6, and I'm
seeing this issue in 2.7.

If we sync a lot of different repos at once,  we get HTTP 500 errors being
thrown, with tracebacks like this in the apache logs:

mod_wsgi (pid=460): Exception occurred processing WSGI script
'E:/webroot/hgweb.wsgi'.
Traceback (most recent call last):
File "C:\\Python27\\lib\\site-packages\\mercurial\\hgweb\\hgwebdir_mod.py",
line 153, in __call__
  return self.run_wsgi(req)
File "C:\\Python27\\lib\\site-packages\\mercurial\\hgweb\\hgwebdir_mod.py",
line 218, in run_wsgi
  return hgweb(repo).run_wsgi(req)
File "C:\\Python27\\lib\\site-packages\\mercurial\\hgweb\\hgweb_mod.py", line
68, in __init__
  r.baseui.setconfig('ui', 'report_untrusted', 'off', 'hgweb')
File "C:\\Python27\\lib\\site-packages\\mercurial\\ui.py", line 165, in
setconfig
  cfg.set(section, name, value, source)
File "C:\\Python27\\lib\\site-packages\\mercurial\\config.py", line 64, in set
  self._data[section][item] = value
File "C:\\Python27\\lib\\site-packages\\mercurial\\util.py", line 237, in
__setitem__
  self._list.remove(key)
ValueError: list.remove(x): x not in list


Or:

 mod_wsgi (pid=460): Exception occurred processing WSGI script
'E:/webroot/hgweb.wsgi'.
 Traceback (most recent call last):
   File "C:\\Python27\\lib\\site-packages\\mercurial\\hgweb\\hgwebdir_mod.py",
line 153, in __call__
     return self.run_wsgi(req)
   File "C:\\Python27\\lib\\site-packages\\mercurial\\hgweb\\hgwebdir_mod.py",
line 218, in run_wsgi
     return hgweb(repo).run_wsgi(req)
   File "C:\\Python27\\lib\\site-packages\\mercurial\\hgweb\\hgweb_mod.py",
line 68, in __init__
     r.baseui.setconfig('ui', 'report_untrusted', 'off', 'hgweb')
   File "C:\\Python27\\lib\\site-packages\\mercurial\\ui.py", line 165, in
setconfig
     cfg.set(section, name, value, source)
   File "C:\\Python27\\lib\\site-packages\\mercurial\\config.py", line 64, in
set
     self._data[section][item] = value
   File "C:\\Python27\\lib\\site-packages\\mercurial\\util.py", line 237, in
__setitem__
     self._list.remove(key)



We're throwing several of these a second on average.  Can reproduce at will.

Does not happen at low loads,  only when around hundred simultaneous syncs are
happening do we see this issue.

Anything I can do to help, let me know.

--Steve

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



More information about the Mercurial-devel mailing list