speced / bikeshed

:bike: A preprocessor for anyone writing specifications that converts source files into actual specs.

Home Page:https://speced.github.io/bikeshed

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

bikeshed echidna seems broken

frivoal opened this issue · comments

 $ bikeshed echidna --u [redacted] --p [redacted] --decision https://wiki.csswg.org/spec/publish

Traceback (most recent call last):
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/site-packages/urllib3/connectionpool.py", line 449, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/site-packages/urllib3/connectionpool.py", line 444, in _make_request
    httplib_response = conn.getresponse()
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/http/client.py", line 1375, in getresponse
    response.begin()
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/http/client.py", line 318, in begin
    version, status, reason = self._read_status()
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/http/client.py", line 279, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/socket.py", line 705, in readinto
    return self._sock.recv_into(b)
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/ssl.py", line 1274, in recv_into
    return self.read(nbytes, buffer)
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/ssl.py", line 1130, in read
    return self._sslobj.read(len, buffer)
TimeoutError: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/site-packages/requests/adapters.py", line 487, in send
    resp = conn.urlopen(
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/site-packages/urllib3/connectionpool.py", line 787, in urlopen
    retries = retries.increment(
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/site-packages/urllib3/util/retry.py", line 550, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/site-packages/urllib3/packages/six.py", line 770, in reraise
    raise value
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/site-packages/urllib3/connectionpool.py", line 703, in urlopen
    httplib_response = self._make_request(
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/site-packages/urllib3/connectionpool.py", line 451, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/site-packages/urllib3/connectionpool.py", line 340, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='labs.w3.org', port=443): Read timed out. (read timeout=3)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/florian/.pyenv/versions/3.10.12/bin/bikeshed", line 8, in <module>
    sys.exit(main())
  File "/Users/florian/src/bikeshed/bikeshed/cli.py", line 459, in main
    handleEchidna(options, extras)
  File "/Users/florian/src/bikeshed/bikeshed/cli.py", line 534, in handleEchidna
    publish.publishEchidna(
  File "/Users/florian/src/bikeshed/bikeshed/publish.py", line 36, in publishEchidna
    r = requests.post(
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/site-packages/requests/api.py", line 115, in post
    return request("post", url, data=data, json=json, **kwargs)
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/site-packages/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
  File "/Users/florian/.pyenv/versions/3.10.12/lib/python3.10/site-packages/requests/adapters.py", line 533, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='labs.w3.org', port=443): Read timed out. (read timeout=3)

note: on the same machine, using --just-tar and then curling the file to echidna manually does work.

@tabatkins can you have a look at this? this is kind of annoying

I know it's not broken in general, as I've seen people publishing with Echidna recently. Is it just one spec you're having trouble with? Or just one machine?

I've most recently had the problem on css-text-4, and I think it was the same spec last time as well. But I don't think I have done another spec in the meanwhile, so I don't know if it is tied to a particular spec. It could be tied to my machine though. I'll try another machine / another spec and report back next time I have an opportunity.

If the stack trace above gives you any idea of why I should try, either as a fix, or as a means to get more information, hints welcome.

By the way, I've tried installing bikeshed under different versions of python through pyenv (3.11 and 3.12.1), and that made no difference.

Just ran this on a different machine, and I still have the same problem.

What spec are you publishing? Ultimately, the error is almost certainly outside of my domain - as you can see from the trace, it's a network timeout. So, something is taking too long in the communication between you and the w3c. Maybe I can make the timeout controllable so you can try to let it run longer?

I was trying css-text-4. controllable timeout might help. I don't know if it's something specific to the spec, or something about how I set up by environments (though I cannot think of what would affect timeouts).
Is there something I can do (short of full on debugging the python app) that would give more info about what is timing out / breaking?