Summary: | emerge --getbinpkg hangs for a long time when binhost is unresponsive | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Alexey <alexey+gentoo> |
Component: | Binary packages support | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | alexey+gentoo |
Priority: | Normal | Keywords: | InVCS |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://github.com/gentoo/portage/pull/1301 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | 925481 | ||
Bug Blocks: |
Description
Alexey
2024-03-05 20:25:49 UTC
Please send SIGUSR1 to the emerge process to trigger the Python debugger. Then enter "bt" to obtain a call trace. (Pdb) bt
/usr/lib/python-exec/python3.11/emerge(88)<module>()
-> main()
/usr/lib/python-exec/python3.11/emerge(57)main()
-> retval = emerge_main()
/usr/lib/python3.11/site-packages/_emerge/main.py(1308)emerge_main()
-> return run_action(emerge_config)
/usr/lib/python3.11/site-packages/_emerge/actions.py(3479)run_action()
-> mytrees["bintree"].populate(
/usr/lib/python3.11/site-packages/portage/dbapi/bintree.py(934)populate()
-> self._populate_remote(
/usr/lib/python3.11/site-packages/portage/dbapi/bintree.py(1435)_populate_remote()
-> f = _urlopen(
/usr/lib/python3.11/site-packages/portage/util/_urlopen.py(62)urlopen()
-> hdl = opener.open(request)
/usr/lib/python3.11/urllib/request.py(519)open()
-> response = self._open(req, data)
/usr/lib/python3.11/urllib/request.py(536)_open()
-> result = self._call_chain(self.handle_open, protocol, protocol +
/usr/lib/python3.11/urllib/request.py(496)_call_chain()
-> result = func(*args)
/usr/lib/python3.11/urllib/request.py(1391)https_open()
-> return self.do_open(http.client.HTTPSConnection, req,
/usr/lib/python3.11/urllib/request.py(1348)do_open()
-> h.request(req.get_method(), req.selector, req.data, headers,
/usr/lib/python3.11/http/client.py(1298)request()
-> self._send_request(method, url, body, headers, encode_chunked)
/usr/lib/python3.11/http/client.py(1344)_send_request()
-> self.endheaders(body, encode_chunked=encode_chunked)
/usr/lib/python3.11/http/client.py(1293)endheaders()
-> self._send_output(message_body, encode_chunked=encode_chunked)
/usr/lib/python3.11/http/client.py(1052)_send_output()
-> self.send(msg)
/usr/lib/python3.11/http/client.py(990)send()
-> self.connect()
/usr/lib/python3.11/http/client.py(1463)connect()
-> super().connect()
/usr/lib/python3.11/http/client.py(956)connect()
-> self.sock = self._create_connection(
/usr/lib/python3.11/socket.py(836)create_connection()
-> sock.connect(sa)
> /usr/lib/python-exec/python3.11/emerge(28)debug_signal()->None
-> pdb.set_trace()
Looks like we could add a timeout parameter to the urlopen calls in portage.util._urlopen. So I just tried to reproduce this by black-holing an IPv6 address using nftables. It was a long wait, but after about 2 minutes, the following output was produced: !! Error fetching binhost package info from 'http://[2001:xxxx:xxxx:xxxx::69]' !!! <urlopen error [Errno 110] Connection timed out> When not configured explicitly, the kernel has a default connection timeout. The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/portage.git/commit/?id=b7e89f866a9a1d73ab72670d74e2292b05893849 commit b7e89f866a9a1d73ab72670d74e2292b05893849 Author: Mike Gilbert <floppym@gentoo.org> AuthorDate: 2024-03-06 04:01:27 +0000 Commit: Mike Gilbert <floppym@gentoo.org> CommitDate: 2024-03-06 18:19:31 +0000 util: set a timeout for urlopen calls A hung urlopen call can cause emerge to produce no output when fetching binhost data. Bug: https://bugs.gentoo.org/926221 Signed-off-by: Mike Gilbert <floppym@gentoo.org> lib/portage/util/_urlopen.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f1e53b9368c215451e3af78b557d8b86a2db9677 commit f1e53b9368c215451e3af78b557d8b86a2db9677 Author: Sam James <sam@gentoo.org> AuthorDate: 2024-04-28 00:31:29 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2024-04-28 00:31:29 +0000 sys-apps/portage: add 3.0.64 Closes: https://bugs.gentoo.org/925481 Closes: https://bugs.gentoo.org/675748 Closes: https://bugs.gentoo.org/712222 Closes: https://bugs.gentoo.org/920330 Closes: https://bugs.gentoo.org/925213 Closes: https://bugs.gentoo.org/925863 Closes: https://bugs.gentoo.org/925888 Closes: https://bugs.gentoo.org/925907 Closes: https://bugs.gentoo.org/926048 Closes: https://bugs.gentoo.org/926221 Closes: https://bugs.gentoo.org/927059 Closes: https://bugs.gentoo.org/927632 Signed-off-by: Sam James <sam@gentoo.org> sys-apps/portage/Manifest | 1 + sys-apps/portage/portage-3.0.64.ebuild | 242 +++++++++++++++++++++++++++++++++ 2 files changed, 243 insertions(+) |