Bug 1708136 - python-pyrsistent fails to build with Python 3.8
Summary: python-pyrsistent fails to build with Python 3.8
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: python-pyrsistent
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Itamar Reis Peixoto
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1609770
Blocks: PYTHON38
TreeView+ depends on / blocked
 
Reported: 2019-05-09 08:33 UTC by Miro Hrončok
Modified: 2019-05-28 11:25 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2019-05-28 10:50:50 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Full log from Copr (121.96 KB, text/plain)
2019-05-09 08:33 UTC, Miro Hrončok
no flags Details

Description Miro Hrončok 2019-05-09 08:33:39 UTC
Created attachment 1566034 [details]
Full log from Copr

python-pyrsistent 0.15.1-1.fc31 fails to build with Python 3.8.0a4:


gcc -pthread -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g build/temp.linux-x86_64-3.8/pvectorcmodule.o -L/usr/lib64 -o /builddir/build/BUILD/pyrsistent-0.15.1/pvectorc.cpython-38-x86_64-linux-gnu.so
Traceback (most recent call last):
  File "setup.py", line 66, in <module>
    setup(
  File "/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 145, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib64/python3.8/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib64/python3.8/distutils/dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "/usr/lib64/python3.8/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.8/site-packages/ptr.py", line 164, in run
    return self.run_tests()
  File "/usr/lib/python3.8/site-packages/ptr.py", line 175, in run_tests
    result_code = __import__('pytest').main()
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 60, in main
    config = _prepareconfig(args, plugins)
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 200, in _prepareconfig
    return pluginmanager.hook.pytest_cmdline_parse(
  File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 289, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 68, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 59, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/lib/python3.8/site-packages/_pytest/helpconfig.py", line 93, in pytest_cmdline_parse
    config = outcome.get_result()
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 679, in pytest_cmdline_parse
    self.parse(args)
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 896, in parse
    self._preparse(args, addopts=addopts)
  File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 841, in _preparse
    self.pluginmanager.load_setuptools_entrypoints("pytest11")
  File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 274, in load_setuptools_entrypoints
    plugin = ep.load()
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2434, in load
    return self.resolve()
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2440, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3.8/site-packages/hypothesis/__init__.py", line 29, in <module>
    from hypothesis.core import given, find, example, seed, reproduce_failure, PrintSettings
  File "/usr/lib/python3.8/site-packages/hypothesis/core.py", line 37, in <module>
    import hypothesis.strategies as st
  File "/usr/lib/python3.8/site-packages/hypothesis/strategies.py", line 20, in <module>
    from hypothesis._strategies import (
  File "/usr/lib/python3.8/site-packages/hypothesis/_strategies.py", line 265, in <module>
    def nothing():
  File "/usr/lib/python3.8/site-packages/hypothesis/_strategies.py", line 182, in cacheable
    def cached_strategy(*args, **kwargs):
  File "/usr/lib/python3.8/site-packages/hypothesis/internal/reflection.py", line 617, in accept
    return impersonate(target)(
  File "/usr/lib/python3.8/site-packages/hypothesis/internal/reflection.py", line 603, in accept
    f.__code__ = update_code_location(
  File "/usr/lib/python3.8/site-packages/hypothesis/internal/compat.py", line 409, in update_code_location
    return type(code)(*unpacked)
TypeError: an integer is required (got type bytes)

Full log attached.

Comment 1 Fabio Valentini 2019-05-09 09:13:44 UTC
That's interesting.

The failure occurs in %check, but why is it rebuilding things in %check, as well?

Also, from the traceback, it looks like no actual code from pyrsistent is involved in the crash, but only pytest and hypothesis.

Comment 2 Miro Hrončok 2019-05-09 11:03:30 UTC
> The failure occurs in %check, but why is it rebuilding things in %check, as well?

When a package is built, it runs %check as well. I don't understand the question, could you rephrase?

> Also, from the traceback, it looks like no actual code from pyrsistent is involved in the crash, but only pytest and hypothesis.

Indeed. It might be a hypothesis bug. Will check with hypothesis upstream.

Comment 3 Miro Hrončok 2019-05-09 11:15:48 UTC
Upstream changed that code. Trying to update hypothesis (bz1609770) and see if it helps.

Comment 4 Miro Hrončok 2019-05-09 11:24:31 UTC
That helps.

There is also another problem:

error: File not found: /builddir/build/BUILDROOT/python-pyrsistent-0.15.1-1.fc31.x86_64/usr/lib64/python3.8/site-packages/pvectorc.cpython-3?m-*.so

Mind if I push the fix for the second problem directly? The "m" is no longer there. See https://bugs.python.org/issue36707

Comment 5 Fabio Valentini 2019-05-09 13:37:02 UTC
> > The failure occurs in %check, but why is it rebuilding things in %check, as well?

>When a package is built, it runs %check as well. I don't understand the question, could you rephrase?

I know. I meant that it looks like the binary is built twice - once in %build, and once in %check.

> Mind if I push the fix for the second problem directly?

Feel free to push the fix directly.

Comment 6 Miro Hrončok 2019-05-09 13:55:54 UTC
> I know. I meant that it looks like the binary is built twice - once in %build, and once in %check.

Seems so. Better to call pytest directly with PYTHONPATH set to buildroot instead of setup.py test I guess.

> Feel free to push the fix directly.

Done.

Comment 7 Fabio Valentini 2019-05-28 11:15:58 UTC
Thanks for following up on this - so the error really was in hypothesis?

Comment 8 Miro Hrončok 2019-05-28 11:25:50 UTC
Yes indeed. When I updated hypothesis, I've retested all bugs that were affected and closed them. python-pyrsistent built fine.


Note You need to log in before you can comment on or make changes to this bug.