Page MenuHomePhabricator

transferbot crashes on Page Forms pages in the "Form" namespace
Closed, InvalidPublicBUG REPORT

Description

Steps to Reproduce:

MW 1.34
PF 4.9.5
SMW 3.2.0
VEForAll 0.1 (3032e34) 14:14, 3 October 2019

transferbot works great for all pages on all other namespaces except "Form"

If I run:

python3 pwb.py transferbot -family:MyWikiA -lang:en -tofamily:MyWikiB -tolang:en -page:"Template:MyTemplate"

no problem.. but if I run

python3 pwb.py transferbot -family:MyWikiA -lang:en -tofamily:MyWikiB -tolang:en -page:"Form:MyForm"

Actual Results:

    Page transfer configuration
    ---------------------------
    Source: MyWikiA:en
    Target: MyWikiB:en

    Generator of pages to transfer: -page:Form:MyForm

    Prefix for transferred pages: (none)

Moving [[en:Form:MyForm]] to [[MyWikiB:en:Form:MyForm]]...
ERROR: An error occurred for uri https://serveraddress/MyWikiB/api.php
ERROR: Traceback (most recent call last):
  File "/usr/lib/python3.5/site-packages/urllib3/connectionpool.py", line 426, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/lib/python3.5/site-packages/urllib3/connectionpool.py", line 421, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib64/python3.5/http/client.py", line 1198, in getresponse
    response.begin()
  File "/usr/lib64/python3.5/http/client.py", line 297, in begin
    version, status, reason = self._read_status()
  File "/usr/lib64/python3.5/http/client.py", line 258, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib64/python3.5/socket.py", line 576, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib64/python3.5/ssl.py", line 937, in recv_into
    return self.read(nbytes, buffer)
  File "/usr/lib64/python3.5/ssl.py", line 799, in read
    return self._sslobj.read(len, buffer)
  File "/usr/lib64/python3.5/ssl.py", line 583, in read
    v = self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.5/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/usr/lib/python3.5/site-packages/urllib3/connectionpool.py", line 725, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "/usr/lib/python3.5/site-packages/urllib3/util/retry.py", line 403, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3.5/site-packages/urllib3/packages/six.py", line 735, in reraise
    raise value
  File "/usr/lib/python3.5/site-packages/urllib3/connectionpool.py", line 677, in urlopen
    chunked=chunked,
  File "/usr/lib/python3.5/site-packages/urllib3/connectionpool.py", line 428, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3.5/site-packages/urllib3/connectionpool.py", line 336, in _raise_timeout
    self, url, "Read timed out. (read timeout=%s)" % timeout_value
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='serveraddress', port=443): Read timed out. (read timeout=45)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/rkevans/pywikibot/core_stable/pywikibot/data/api.py", line 1732, in _http_request
    body=body, headers=headers)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/tools/__init__.py", line 1797, in wrapper
    return obj(*__args, **__kw)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/comms/http.py", line 315, in request
    r = fetch(baseuri, method, params, body, headers, **kwargs)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/comms/http.py", line 519, in fetch
    error_handling_callback(request)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/comms/http.py", line 404, in error_handling_callback
    raise request.data
  File "/home/rkevans/pywikibot/core_stable/pywikibot/comms/http.py", line 382, in _http_process
    **http_request.kwargs)
  File "/usr/lib/python3.5/site-packages/requests/sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3.5/site-packages/requests/sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3.5/site-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='serveraddress', port=443): Read timed out. (read timeout=45)

WARNING: Waiting 5 seconds before retrying.
^C^CTraceback (most recent call last):
  File "pwb.py", line 390, in <module>
    if not main():
  File "pwb.py", line 385, in main
    file_package)
  File "pwb.py", line 101, in run_python_file
    main_mod.__dict__)
  File "./scripts/transferbot.py", line 190, in <module>
    main()
  File "./scripts/transferbot.py", line 179, in main
    edithistpage.put(historytable, summary=summary)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/tools/__init__.py", line 1797, in wrapper
    return obj(*__args, **__kw)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/tools/__init__.py", line 1797, in wrapper
    return obj(*__args, **__kw)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/page/__init__.py", line 1381, in put
    **kwargs)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/tools/__init__.py", line 1797, in wrapper
    return obj(*__args, **__kw)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/tools/__init__.py", line 1797, in wrapper
    return obj(*__args, **__kw)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/page/__init__.py", line 1303, in save
    cc=apply_cosmetic_changes, quiet=quiet, **kwargs)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/page/__init__.py", line 136, in wrapper
    handle(func, self, *args, **kwargs)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/page/__init__.py", line 115, in handle
    func(self, *args, **kwargs)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/page/__init__.py", line 1314, in _save
    watch=watch, bot=botflag, **kwargs)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/site/__init__.py", line 1339, in callee
    return fn(self, *args, **kwargs)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/site/__init__.py", line 5383, in editpage
    result = req.submit()
  File "/home/rkevans/pywikibot/core_stable/pywikibot/data/api.py", line 1982, in submit
    paramstring)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/data/api.py", line 1754, in _http_request
    self.wait()
  File "/home/rkevans/pywikibot/core_stable/pywikibot/data/api.py", line 2110, in wait
    pywikibot.sleep(self.retry_wait)
  File "/home/rkevans/pywikibot/core_stable/pywikibot/__init__.py", line 1328, in sleep
    time.sleep(secs)

Expected Results:

Pages moved notice

Event Timeline

Yout bot is not the current stable. A new release was deployed on 1st November.

Anyway there is a socket timeout during waitting 5 seconds, seems connection has been lost then.

This is an upstream issue. All we can do with Timeouts is to retry.