Bug 1795951 - prunerepo fails to build with Python 3.9: failures in %check
Summary: prunerepo fails to build with Python 3.9: failures in %check
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: prunerepo
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: clime
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: PYTHON39
TreeView+ depends on / blocked
 
Reported: 2020-01-29 10:10 UTC by Miro Hrončok
Modified: 2020-02-03 10:12 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-02-03 06:38:06 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Miro Hrončok 2020-01-29 10:10:24 UTC
prunerepo fails to build with Python 3.9.0a3.

============================ test basic functionality ============================
rm: cannot remove '/builddir/build/BUILD/prunerepo/tests/base/repo-test': No such file or directory
+ /builddir/build/BUILD/prunerepo/tests/../prunerepo --verbose .
warning: /builddir/build/BUILD/prunerepo/tests/base/repo-test/0-oldestbuild/example-1.0.1-1.fc23.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 3a1ce3e4: NOKEY
warning: /builddir/build/BUILD/prunerepo/tests/base/repo-test/2-secondlatestpkg/example-debuginfo-1.0.2-2.fc23.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 3a1ce3e4: NOKEY
warning: /builddir/build/BUILD/prunerepo/tests/base/repo-test/2-secondlatestpkg/example-1.0.2-2.fc23.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 3a1ce3e4: NOKEY
warning: /builddir/build/BUILD/prunerepo/tests/base/repo-test/0-oldestbuild/example-debuginfo-1.0.1-1.fc23.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 3a1ce3e4: NOKEY
GLib: Critical: g_async_queue_lock: assertion 'queue' failed
GLib: Critical: g_async_queue_push_unlocked: assertion 'queue' failed
GLib: Critical: _g_async_queue_get_mutex: assertion 'queue' failed
Removing obsoleted packages...
Executing: dnf repoquery --repofrompath=prunerepo_query,/builddir/build/BUILD/prunerepo/tests/base/repo-test --repo=prunerepo_query --refresh --queryformat=%{location} --quiet --setopt=skip_if_unavailable=False --latest-limit=1
Executing: dnf repoquery --repofrompath=prunerepo_query,/builddir/build/BUILD/prunerepo/tests/base/repo-test --repo=prunerepo_query --refresh --queryformat=%{location} --quiet --setopt=skip_if_unavailable=False
Removing: /builddir/build/BUILD/prunerepo/tests/base/repo-test/0-oldestbuild/example-1.0.1-1.fc23.src.rpm
Removing: /builddir/build/BUILD/prunerepo/tests/base/repo-test/0-oldestbuild/example-1.0.1-1.fc23.src.rpm
Removing: /builddir/build/BUILD/prunerepo/tests/base/repo-test/0-oldestbuild/example-1.0.1-1.fc23.x86_64.rpm
Removing: /builddir/build/BUILD/prunerepo/tests/base/repo-test/2-secondlatestpkg/example-1.0.2-2.fc23.src.rpm
Removing: /builddir/build/BUILD/prunerepo/tests/base/repo-test/2-secondlatestpkg/example-1.0.2-2.fc23.src.rpm
Removing: /builddir/build/BUILD/prunerepo/tests/base/repo-test/2-secondlatestpkg/example-debuginfo-1.0.2-2.fc23.x86_64.rpm
Removing: /builddir/build/BUILD/prunerepo/tests/base/repo-test/2-secondlatestpkg/example-1.0.2-2.fc23.src.rpm
Removing: /builddir/build/BUILD/prunerepo/tests/base/repo-test/2-secondlatestpkg/example-1.0.2-2.fc23.src.rpm
Removing: /builddir/build/BUILD/prunerepo/tests/base/repo-test/2-secondlatestpkg/example-1.0.2-2.fc23.x86_64.rpm
Removing: /builddir/build/BUILD/prunerepo/tests/base/repo-test/0-oldestbuild/example-1.0.1-1.fc23.src.rpm
Removing: /builddir/build/BUILD/prunerepo/tests/base/repo-test/0-oldestbuild/example-1.0.1-1.fc23.src.rpm
Removing: /builddir/build/BUILD/prunerepo/tests/base/repo-test/0-oldestbuild/example-debuginfo-1.0.1-1.fc23.x86_64.rpm
Recreating repository...
Executing: /usr/bin/createrepo_c --database --update --local-sqlite --cachedir /tmp/ --workers 8 .
> ls 0-oldestbuild/*.rpm
ls: cannot access '0-oldestbuild/*.rpm': No such file or directory
> ls 1-norpmsinside/*.rpm
ls: cannot access '1-norpmsinside/*.rpm': No such file or directory
> ls 2-secondlatestpkg/*.rpm
ls: cannot access '2-secondlatestpkg/*.rpm': No such file or directory
> [[ `ls 3-latestpkg/example-1.0.3-2.fc23.src.rpm 3-latestpkg/example-1.0.3-2.fc23.x86_64.rpm 3-latestpkg/example-debuginfo-1.0.3-2.fc23.x86_64.rpm | wc -l` == 3 ]]
> [[ `listpkgsbyfs` == `listpkgsbyrepo` ]]
fail.
RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.zXwAju (%check)

For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.9/fedora-rawhide-x86_64/01197840-prunerepo/

For all our attempts to build prunerepo with Python 3.9, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.9/package/prunerepo/

Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.9:
https://copr.fedorainfracloud.org/coprs/g/python/python3.9/

Let us know here if you have any questions.

Python 3.9 will be included in Fedora 33. To make that update smoother, we're building Fedora packages with early pre-releases of Python 3.9.
A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon.
We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.

Comment 1 Pavel Raiskup 2020-01-29 14:55:19 UTC
Hey @clime, I fixed "assigned_to" flag here to correct email addres,
do you receive the emails by default?

Comment 2 clime7 2020-01-30 12:34:59 UTC
Probably not by default. Thank for assigning. Will check.

Comment 3 clime7 2020-02-03 06:29:10 UTC
I tried mock -r fedora-rawhide-python39 --enablerepo=local --rebuild /home/clime/releng/prunerepo/prunerepo-1.17-2.fc32.src.rpm according to the instructions on the copr page but it builds fine for me:

...
Finish: rpmbuild prunerepo-1.17-2.fc32.src.rpm
Finish: build phase for prunerepo-1.17-2.fc32.src.rpm
INFO: Done(/home/clime/releng/prunerepo/prunerepo-1.17-2.fc32.src.rpm) Config(fedora-rawhide-python39) 4 minutes 27 seconds
INFO: Results and/or logs in: /var/lib/mock/fedora-rawhide-python39/result
Finish: run

All tests passed.

Idk what was wrong there :(. Either:


function listpkgsbyrepo {
        dnf repoquery --repofrompath=test_prunerepo,$testrepo --repo=test_prunerepo --refresh --quiet --queryformat '%{location}' | sort
}

or

function listpkgsbyfs {
        find . -name '*.rpm' | cut -c 3- | sort
}

didn't return the right results.

Comment 4 Miro Hrončok 2020-02-03 06:38:06 UTC
Thanks. It worked in copr for the second time as well, probably something is just flaky, or the planets were wrongly aligned before.

Comment 5 Pavel Raiskup 2020-02-03 08:47:13 UTC
(In reply to clime7 from comment #3)
> Idk what was wrong there :(. Either:
> 
> function listpkgsbyrepo {
>         dnf repoquery --repofrompath=test_prunerepo,$testrepo
> --repo=test_prunerepo --refresh --quiet --queryformat '%{location}' | sort

skip_if_unavailable again?

> }
> 
> or
> 
> function listpkgsbyfs {
>         find . -name '*.rpm' | cut -c 3- | sort
> }
> 
> didn't return the right results.

Locale?

I'm asking because such problems can lead to fatal problems on copr-backend.

Comment 6 clime7 2020-02-03 10:09:28 UTC
(In reply to Pavel Raiskup from comment #5)
> (In reply to clime7 from comment #3)
> > Idk what was wrong there :(. Either:
> > 
> > function listpkgsbyrepo {
> >         dnf repoquery --repofrompath=test_prunerepo,$testrepo
> > --repo=test_prunerepo --refresh --quiet --queryformat '%{location}' | sort
> 
> skip_if_unavailable again?

That is a probable reason, yes. It makes test more susceptible to failure.

> 
> > }
> > 
> > or
> > 
> > function listpkgsbyfs {
> >         find . -name '*.rpm' | cut -c 3- | sort
> > }
> > 
> > didn't return the right results.
> 
> Locale?

Locale shouldn't be the problem. it is the same for both of the commands.

> 
> I'm asking because such problems can lead to fatal problems on copr-backend.

I think the problem here is that the test can fail occassionaly but when it succeeds,
it still means something. I will add skip_if_unavailable=false to the listpkgsbyrepo
function for the dnf command. I think it will resolve this issue for the future.

Comment 7 clime7 2020-02-03 10:12:07 UTC
Actually, i will need to revisit what the exact behavior of dnf is for that opt.


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