linkchecker/linkcheck
Nathan Arthur 6499b7b233 Fix a major thread-safety bug in AnchorCheck
The threading issue has been there for years, but I didn't notice it
until after I thought I was done, while I was doing manual testing
(with threads re-enabled).

The problem was with storing URL-specific state (.anchors) on the
AnchorCheck object itself, because there's only one global AnchorCheck
object, so all the threads are competing to use that one simgle variable
(self.anchors).

The solution was to create a new object to hold .anchors, for each
processed URL.
2022-10-03 19:33:05 +01:00
..
bookmarks Stop using biplist 2020-10-12 19:55:46 +01:00
cache Remove linkcheck.checker.proxysupport 2021-12-13 19:25:23 +00:00
checker Enable AnchorCheck to be used with local files 2022-10-03 19:33:05 +01:00
command Finish documenting the use of XDG_CONFIG_HOME and XDG_DATA_HOME 2022-08-23 19:21:53 +01:00
configuration add option to ignore specific errors for specific URLs 2022-09-25 22:52:04 +02:00
data Merge pull request #668 from cjmayo/defaults 2022-09-28 19:36:44 +01:00
director Fix typos 2022-09-02 17:20:02 +08:00
htmlutil Fix srcset parsing 2022-09-07 21:24:23 +02:00
logger Fix typos 2022-09-02 17:20:02 +08:00
network Fix formatting and typos in docstrings 2020-07-25 16:35:48 +01:00
parser Run black on linkcheck/ 2020-05-30 17:01:36 +01:00
plugins Fix a major thread-safety bug in AnchorCheck 2022-10-03 19:33:05 +01:00
__init__.py Install translation catalogs in the package data 2021-12-30 19:27:04 +00:00
__main__.py Generate linkchecker command using an entry point 2021-12-20 19:34:58 +00:00
ansicolor.py Fix formatting and typos in docstrings 2020-07-25 16:35:48 +01:00
better_exchook2.py Backport tabs to spaces from better_exchook.py 2020-08-22 17:17:02 +01:00
cmdline.py Run black on linkcheck/ 2020-05-30 17:01:36 +01:00
colorama.py Restore better_exchook2.py and colorama.py to pre-Black state 2020-06-03 20:06:36 +01:00
containers.py Convert to Python 3 super() 2020-06-03 20:06:36 +01:00
cookies.py Run black on linkcheck/ 2020-05-30 17:01:36 +01:00
decorators.py Fix typos 2022-09-02 17:20:02 +08:00
dummy.py Run black on linkcheck/ 2020-05-30 17:01:36 +01:00
fileutil.py Fix typos 2022-09-02 17:20:02 +08:00
ftpparse.py Fix typos 2022-09-02 17:20:02 +08:00
httputil.py Use cryptography.x509.not_valid_after 2022-09-05 19:20:19 +01:00
i18n.py Correct a typo in i18n.py 2022-08-24 19:10:41 +03:00
lc_cgi.py Disable status logging in WSGI application 2021-01-28 19:20:24 +00:00
loader.py Use pkgutil to simplify loader.get_package_modules() 2021-12-30 19:27:04 +00:00
lock.py Replace deprecated Thread.getName() and Condition.notifyAll() 2021-11-16 19:45:38 +00:00
log.py Run black on linkcheck/ 2020-05-30 17:01:36 +01:00
logconf.py Fix remaining flake8 violations in linkcheck/ 2020-05-30 17:01:36 +01:00
memoryutil.py Fix formatting and typos in docstrings 2020-07-25 16:35:48 +01:00
mimeutil.py Detect sitemaps that do not start with an XML declaration 2020-08-11 19:35:56 +01:00
robotparser2.py Fix typos 2022-09-02 17:20:02 +08:00
socketutil.py Remove spaces after names in function definitions 2020-05-16 20:19:42 +01:00
strformat.py Fix typos 2022-09-02 17:20:02 +08:00
threader.py Convert to Python 3 super() 2020-06-03 20:06:36 +01:00
trace.py Replace deprecated Thread.getName() and Condition.notifyAll() 2021-11-16 19:45:38 +00:00
url.py Fix typos 2022-09-02 17:20:02 +08:00