[
https://issues.apache.org/jira/browse/TINKERPOP-2810?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17624763#comment-17624763
]
ASF GitHub Bot commented on TINKERPOP-2810:
-------------------------------------------
jared-schreibman-cdisc commented on PR #1839:
URL: https://github.com/apache/tinkerpop/pull/1839#issuecomment-1292662839
I came here to support this change. There is a bug currently when attempting
to build gremlin within a docker image.
**Describe the bug**
Using docker, when installing latest gremlin, downstream dependency
`aiohttp` when building wheel due to bug in earlier version:
https://github.com/aio-libs/aiohttp/issues/6600
**To Reproduce**
Create docker image with:
```
FROM python:3
RUN pip install gremlinpython
```
It's also seen with:
```
FROM python:3
RUN pip install aiohttp==3.8.1
```
**Expected behavior**
Wheel builds successfully
**Logs/tracebacks**
```
[2/2] RUN pip install gremlinpython:
#4 1.115 Collecting gremlinpython
#4 1.196 Downloading gremlinpython-3.6.1-py2.py3-none-any.whl (73 kB)
#4 1.222 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.3/73.3 kB 2.6 MB/s
eta 0:00:00
#4 1.285 Collecting nest-asyncio
#4 1.301 Downloading nest_asyncio-1.5.6-py3-none-any.whl (5.2 kB)
#4 1.488 Collecting aiohttp<=3.8.1,>=3.8.0
#4 1.509 Downloading aiohttp-3.8.1.tar.gz (7.3 MB)
#4 2.187 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.3/7.3 MB 10.8 MB/s
eta 0:00:00
#4 2.340 Installing build dependencies: started
#4 3.451 Installing build dependencies: finished with status 'done'
#4 3.452 Getting requirements to build wheel: started
#4 3.604 Getting requirements to build wheel: finished with status 'done'
#4 3.605 Installing backend dependencies: started
#4 3.994 Installing backend dependencies: finished with status 'done'
#4 3.994 Preparing metadata (pyproject.toml): started
#4 4.142 Preparing metadata (pyproject.toml): finished with status 'done'
#4 4.178 Collecting aenum<4.0.0,>=1.4.5
#4 4.192 Downloading aenum-3.1.11-py3-none-any.whl (131 kB)
#4 4.211 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 131.5/131.5 kB 8.4
MB/s eta 0:00:00
#4 4.232 Collecting isodate<1.0.0,>=0.6.0
#4 4.246 Downloading isodate-0.6.1-py2.py3-none-any.whl (41 kB)
#4 4.252 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.7/41.7 kB 8.9 MB/s
eta 0:00:00
#4 4.282 Collecting attrs>=17.3.0
#4 4.298 Downloading attrs-22.1.0-py2.py3-none-any.whl (58 kB)
#4 4.307 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.8/58.8 kB 7.5 MB/s
eta 0:00:00
#4 4.358 Collecting charset-normalizer<3.0,>=2.0
#4 4.375 Downloading charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
#4 4.519 Collecting multidict<7.0,>=4.5
#4 4.536 Downloading multidict-6.0.2.tar.gz (50 kB)
#4 4.545 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 50.3/50.3 kB 5.3 MB/s
eta 0:00:00
#4 4.556 Installing build dependencies: started
#4 5.277 Installing build dependencies: finished with status 'done'
#4 5.279 Getting requirements to build wheel: started
#4 5.403 Getting requirements to build wheel: finished with status 'done'
#4 5.404 Preparing metadata (pyproject.toml): started
#4 5.535 Preparing metadata (pyproject.toml): finished with status 'done'
#4 5.557 Collecting async-timeout<5.0,>=4.0.0a3
#4 5.573 Downloading async_timeout-4.0.2-py3-none-any.whl (5.8 kB)
#4 5.660 Collecting yarl<2.0,>=1.0
#4 5.686 Downloading yarl-1.8.1.tar.gz (172 kB)
#4 5.702 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 172.3/172.3 kB 11.5
MB/s eta 0:00:00
#4 5.716 Installing build dependencies: started
#4 6.445 Installing build dependencies: finished with status 'done'
#4 6.448 Getting requirements to build wheel: started
#4 6.571 Getting requirements to build wheel: finished with status 'done'
#4 6.572 Preparing metadata (pyproject.toml): started
#4 6.699 Preparing metadata (pyproject.toml): finished with status 'done'
#4 6.750 Collecting frozenlist>=1.1.1
#4 6.768 Downloading frozenlist-1.3.1.tar.gz (66 kB)
#4 6.774 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.4/66.4 kB 10.8
MB/s eta 0:00:00
#4 6.782 Installing build dependencies: started
#4 7.512 Installing build dependencies: finished with status 'done'
#4 7.512 Getting requirements to build wheel: started
#4 7.641 Getting requirements to build wheel: finished with status 'done'
#4 7.643 Preparing metadata (pyproject.toml): started
#4 7.770 Preparing metadata (pyproject.toml): finished with status 'done'
#4 7.794 Collecting aiosignal>=1.1.2
#4 7.809 Downloading aiosignal-1.2.0-py3-none-any.whl (8.2 kB)
#4 7.836 Collecting six
#4 7.852 Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
#4 7.907 Collecting idna>=2.0
#4 7.925 Downloading idna-3.4-py3-none-any.whl (61 kB)
#4 7.930 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 kB 15.0
MB/s eta 0:00:00
#4 7.934 Building wheels for collected packages: aiohttp, frozenlist,
multidict, yarl
#4 7.934 Building wheel for aiohttp (pyproject.toml): started
#4 8.131 Building wheel for aiohttp (pyproject.toml): finished with status
'error'
#4 8.135 error: subprocess-exited-with-error
#4 8.135
#4 8.135 × Building wheel for aiohttp (pyproject.toml) did not run
successfully.
#4 8.135 │ exit code: 1
#4 8.135 ╰─> [107 lines of output]
#4 8.135 *********************
#4 8.135 * Accelerated build *
#4 8.135 *********************
#4 8.135 running bdist_wheel
#4 8.135 running build
#4 8.135 running build_py
#4 8.135 creating build
#4 8.135 creating build/lib.linux-aarch64-cpython-311
#4 8.135 creating build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/web_routedef.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/client_ws.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/payload.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/web_request.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/web_ws.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/helpers.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/cookiejar.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/http.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/worker.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/client_exceptions.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/http_websocket.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/abc.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/tcp_helpers.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/hdrs.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/client_proto.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/web_exceptions.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/http_writer.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/web_protocol.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/formdata.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/tracing.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/web.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/locks.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/web_server.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/client.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/web_urldispatcher.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/connector.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/resolver.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/streams.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/web_response.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/typedefs.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/log.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/test_utils.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/pytest_plugin.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/http_parser.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/__init__.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/web_fileresponse.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/payload_streamer.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/web_app.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/client_reqrep.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/base_protocol.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/web_log.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/web_middlewares.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/multipart.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/web_runner.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/http_exceptions.py ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 running egg_info
#4 8.135 writing aiohttp.egg-info/PKG-INFO
#4 8.135 writing dependency_links to
aiohttp.egg-info/dependency_links.txt
#4 8.135 writing requirements to aiohttp.egg-info/requires.txt
#4 8.135 writing top-level names to aiohttp.egg-info/top_level.txt
#4 8.135 reading manifest file 'aiohttp.egg-info/SOURCES.txt'
#4 8.135 reading manifest template 'MANIFEST.in'
#4 8.135 warning: no files found matching 'aiohttp' anywhere in
distribution
#4 8.135 warning: no previously-included files matching '*.pyc' found
anywhere in distribution
#4 8.135 warning: no previously-included files matching '*.pyd' found
anywhere in distribution
#4 8.135 warning: no previously-included files matching '*.so' found
anywhere in distribution
#4 8.135 warning: no previously-included files matching '*.lib' found
anywhere in distribution
#4 8.135 warning: no previously-included files matching '*.dll' found
anywhere in distribution
#4 8.135 warning: no previously-included files matching '*.a' found
anywhere in distribution
#4 8.135 warning: no previously-included files matching '*.obj' found
anywhere in distribution
#4 8.135 warning: no previously-included files found matching
'aiohttp/*.html'
#4 8.135 no previously-included directories found matching
'docs/_build'
#4 8.135 adding license file 'LICENSE.txt'
#4 8.135 writing manifest file 'aiohttp.egg-info/SOURCES.txt'
#4 8.135 copying aiohttp/_cparser.pxd ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/_find_header.c ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/_find_header.h ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/_find_header.pxd ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/_headers.pxi ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/_helpers.c ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/_helpers.pyi ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/_helpers.pyx ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/_http_parser.c ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/_http_parser.pyx ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/_http_writer.c ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/_http_writer.pyx ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/_websocket.c ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/_websocket.pyx ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 copying aiohttp/py.typed ->
build/lib.linux-aarch64-cpython-311/aiohttp
#4 8.135 creating build/lib.linux-aarch64-cpython-311/aiohttp/.hash
#4 8.135 copying aiohttp/.hash/_cparser.pxd.hash ->
build/lib.linux-aarch64-cpython-311/aiohttp/.hash
#4 8.135 copying aiohttp/.hash/_find_header.pxd.hash ->
build/lib.linux-aarch64-cpython-311/aiohttp/.hash
#4 8.135 copying aiohttp/.hash/_helpers.pyi.hash ->
build/lib.linux-aarch64-cpython-311/aiohttp/.hash
#4 8.135 copying aiohttp/.hash/_helpers.pyx.hash ->
build/lib.linux-aarch64-cpython-311/aiohttp/.hash
#4 8.135 copying aiohttp/.hash/_http_parser.pyx.hash ->
build/lib.linux-aarch64-cpython-311/aiohttp/.hash
#4 8.135 copying aiohttp/.hash/_http_writer.pyx.hash ->
build/lib.linux-aarch64-cpython-311/aiohttp/.hash
#4 8.135 copying aiohttp/.hash/_websocket.pyx.hash ->
build/lib.linux-aarch64-cpython-311/aiohttp/.hash
#4 8.135 copying aiohttp/.hash/hdrs.py.hash ->
build/lib.linux-aarch64-cpython-311/aiohttp/.hash
#4 8.135 running build_ext
#4 8.135 building 'aiohttp._websocket' extension
#4 8.135 creating build/temp.linux-aarch64-cpython-311
#4 8.135 creating build/temp.linux-aarch64-cpython-311/aiohttp
#4 8.135 gcc -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall
-fPIC -I/usr/local/include/python3.11 -c aiohttp/_websocket.c -o
build/temp.linux-aarch64-cpython-311/aiohttp/_websocket.o
#4 8.135 aiohttp/_websocket.c:198:12: fatal error: longintrepr.h: No
such file or directory
#4 8.135 198 | #include "longintrepr.h"
#4 8.135 | ^~~~~~~~~~~~~~~
#4 8.135 compilation terminated.
#4 8.135 error: command '/usr/bin/gcc' failed with exit code 1
#4 8.135 [end of output]
#4 8.135
#4 8.135 note: This error originates from a subprocess, and is likely not
a problem with pip.
#4 8.136 ERROR: Failed building wheel for aiohttp
#4 8.137 Building wheel for frozenlist (pyproject.toml): started
#4 9.115 Building wheel for frozenlist (pyproject.toml): finished with
status 'done'
#4 9.115 Created wheel for frozenlist:
filename=frozenlist-1.3.1-cp311-cp311-linux_aarch64.whl size=152878
sha256=144c31f2c56a53b9dd755f12869d37bc383b235ea704c3d101bd7173d352a030
#4 9.115 Stored in directory:
/root/.cache/pip/wheels/dd/ff/59/33d53277b012a9778a407f112dde27d418298fee9114052e91
#4 9.117 Building wheel for multidict (pyproject.toml): started
#4 9.877 Building wheel for multidict (pyproject.toml): finished with
status 'done'
#4 9.878 Created wheel for multidict:
filename=multidict-6.0.2-cp311-cp311-linux_aarch64.whl size=119089
sha256=f3fcfd50f695cf1aaadbbd04ef8b03abfe181fd28339827863e12be85a77f98d
#4 9.879 Stored in directory:
/root/.cache/pip/wheels/bb/18/4e/b073a52aef8b5c6f46950894ee61b705f922cbc5ee1331771c
#4 9.881 Building wheel for yarl (pyproject.toml): started
#4 11.61 Building wheel for yarl (pyproject.toml): finished with status
'done'
#4 11.61 Created wheel for yarl:
filename=yarl-1.8.1-cp311-cp311-linux_aarch64.whl size=273833
sha256=b51db15a08a64dbf4b2480a06a586a5cae3b413a2129a51f57dd8dd4a8a9fedc
#4 11.61 Stored in directory:
/root/.cache/pip/wheels/bc/b0/1c/df8ff385943c6989a1bf3ec78cbbe295bf14c35db10aaa0e3d
#4 11.61 Successfully built frozenlist multidict yarl
#4 11.61 Failed to build aiohttp
#4 11.61 ERROR: Could not build wheels for aiohttp, which is required to
install pyproject.toml-based projects
```
**Python Version**
3
**aiohttp Version**
<3.8.2
**Additional context**
When updating the version to at least 3.8.2, this error goes away.
> gremlinpython aiohttp dependency requirement too strict
> -------------------------------------------------------
>
> Key: TINKERPOP-2810
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2810
> Project: TinkerPop
> Issue Type: Bug
> Components: python
> Affects Versions: 3.6.1
> Reporter: Gunther Vogel
> Priority: Major
>
> Currently, the requirements specify aiohttp >= 3.8.0, <= 3.8.1, disallowing
> newer bugfix releases of aiohttp (current version is 3.8.3). Following the
> general semantic versioning rules, the upper bound should be <4.0.0 (disallow
> breaking changes).
> The current requirements are the result of TINKERPOP-2668 which only had the
> goal of avoiding the bug contained in versions <= 3.7.4.
> Fixing aiohttp at a non-current bugfix release step increases the maintenance
> effort needed to get an error-free overall library setup; in my case,
> gremlinpython is not even used directly, but just pulled in by awswrangler.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)