#1823 SRPM build failure from distgit, cannot reproduce locally, possibly old packages in chroot
Closed: Fixed 3 years ago by msuchy. Opened 3 years ago by churchyard.

The package python-sqlalchemy fails to create SRPM from Fedora Rawhide distgit.

The error is:

Running: copr-distgit-client srpm --outputdir /var/lib/copr-rpmbuild/results

cmd: ['copr-distgit-client', 'srpm', '--outputdir', '/var/lib/copr-rpmbuild/results']
cwd: /var/lib/copr-rpmbuild/workspace/workdir-87yz1e_p/python-sqlalchemy
rc: 1
stdout: 
stderr: INFO: Checked call: rpmbuild -bs /var/lib/copr-rpmbuild/workspace/workdir-87yz1e_p/python-sqlalchemy/./python-sqlalchemy.spec --define 'dist %nil' --define '_sourcedir /var/lib/copr-rpmbuild/workspace/workdir-87yz1e_p/python-sqlalchemy/.' --define '_srcrpmdir /var/lib/copr-rpmbuild/results' --define '_disable_source_fetch 1'
error: line 74: %package -n python3-sqlalchemy+mssql
: package python3-sqlalchemy+mssql already exists
Traceback (most recent call last):
  File "/usr/bin/copr-distgit-client", line 10, in <module>
    main()
  File "/usr/lib/python3.9/site-packages/copr_distgit_client.py", line 336, in main
    srpm(args, config)
  File "/usr/lib/python3.9/site-packages/copr_distgit_client.py", line 267, in srpm
    check_call(command)
  File "/usr/lib/python3.9/site-packages/copr_distgit_client.py", line 40, in check_call
    subprocess.check_call(cmd)
  File "/usr/lib64/python3.9/subprocess.py", line 373, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['rpmbuild', '-bs', '/var/lib/copr-rpmbuild/workspace/workdir-87yz1e_p/python-sqlalchemy/./python-sqlalchemy.spec', '--define', 'dist %nil', '--define', '_sourcedir /var/lib/copr-rpmbuild/workspace/workdir-87yz1e_p/python-sqlalchemy/.', '--define', '_srcrpmdir /var/lib/copr-rpmbuild/results', '--define', '_disable_source_fetch 1']' returned non-zero exit status 1.

Copr build error: INFO: Checked call: rpmbuild -bs /var/lib/copr-rpmbuild/workspace/workdir-87yz1e_p/python-sqlalchemy/./python-sqlalchemy.spec --define 'dist %nil' --define '_sourcedir /var/lib/copr-rpmbuild/workspace/workdir-87yz1e_p/python-sqlalchemy/.' --define '_srcrpmdir /var/lib/copr-rpmbuild/results' --define '_disable_source_fetch 1'
error: line 74: %package -n python3-sqlalchemy+mssql
: package python3-sqlalchemy+mssql already exists
Traceback (most recent call last):
  File "/usr/bin/copr-distgit-client", line 10, in <module>
    main()
  File "/usr/lib/python3.9/site-packages/copr_distgit_client.py", line 336, in main
    srpm(args, config)
  File "/usr/lib/python3.9/site-packages/copr_distgit_client.py", line 267, in srpm
    check_call(command)
  File "/usr/lib/python3.9/site-packages/copr_distgit_client.py", line 40, in check_call
    subprocess.check_call(cmd)
  File "/usr/lib64/python3.9/subprocess.py", line 373, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['rpmbuild', '-bs', '/var/lib/copr-rpmbuild/workspace/workdir-87yz1e_p/python-sqlalchemy/./python-sqlalchemy.spec', '--define', 'dist %nil', '--define', '_sourcedir /var/lib/copr-rpmbuild/workspace/workdir-87yz1e_p/python-sqlalchemy/.', '--define', '_srcrpmdir /var/lib/copr-rpmbuild/results', '--define', '_disable_source_fetch 1']' returned non-zero exit status 1.

I cannot reproduce this locally with neither copr-distgit-client srpm nor rpmbuild -bs python-sqlalchemy.spec --define 'dist %nil' --define '_sourcedir .' --define '_disable_source_fetch 1'.

Could yu please help me debug this issue? E.g. what happens when you run this on the same wroker?

rpm --eval '%python_extras_subpkg -n python3-sqlalchemy -i %{python3_sitelib}/*.egg-info mssql_pymssql mssql_pyodbc'

And what is the version of python-srpm-macros?

There was a fix in python-srpm-macros wrt this months ago:

https://bodhi.fedoraproject.org/updates/FEDORA-2021-4afa5ada33
https://bodhi.fedoraproject.org/updates/FEDORA-2021-7aa3f311d5


I executed that rpm --eval on one of our builders

[root@ip- ~]# rpm --eval '%python_extras_subpkg -n python3-sqlalchemy -i %{python3_sitelib}/*.egg-info mssql_pymssql mssql_pyodbc'
%package -n python3-sqlalchemy+mssql
Summary: Metapackage for python3-sqlalchemy: mssql extras
Requires: python3-sqlalchemy = %{version}-%{release}
%description -n python3-sqlalchemy+mssql
This is a metapackage bringing in mssql extras requires for python3-sqlalchemy.
It contains no code, just makes sure the dependencies are installed.

%files -n python3-sqlalchemy+mssql
%ghost %{python3_sitelib}/*.egg-info

%package -n python3-sqlalchemy+pymssql
Summary: Metapackage for python3-sqlalchemy: pymssql extras
Requires: python3-sqlalchemy = %{version}-%{release}
%description -n python3-sqlalchemy+pymssql
This is a metapackage bringing in pymssql extras requires for python3-sqlalchemy.
It contains no code, just makes sure the dependencies are installed.

%files -n python3-sqlalchemy+pymssql
%ghost %{python3_sitelib}/*.egg-info

%package -n python3-sqlalchemy+mssql
Summary: Metapackage for python3-sqlalchemy: mssql extras
Requires: python3-sqlalchemy = %{version}-%{release}
%description -n python3-sqlalchemy+mssql
This is a metapackage bringing in mssql extras requires for python3-sqlalchemy.
It contains no code, just makes sure the dependencies are installed.

%files -n python3-sqlalchemy+mssql
%ghost %{python3_sitelib}/*.egg-info

%package -n python3-sqlalchemy+pyodbc
Summary: Metapackage for python3-sqlalchemy: pyodbc extras
Requires: python3-sqlalchemy = %{version}-%{release}
%description -n python3-sqlalchemy+pyodbc
This is a metapackage bringing in pyodbc extras requires for python3-sqlalchemy.
It contains no code, just makes sure the dependencies are installed.

%files -n python3-sqlalchemy+pyodbc
%ghost %{python3_sitelib}/*.egg-info

Here is the python-srpm-macros version we use on our builders.

[root@ip- ~]# dnf info python-srpm-macros
Last metadata expiration check: 0:36:48 ago on Tue 11 May 2021 07:24:54 PM UTC.
Installed Packages
Name         : python-srpm-macros
Version      : 3.9
Release      : 11.fc33
Architecture : noarch
Size         : 33 k
Source       : python-rpm-macros-3.9-11.fc33.src.rpm
Repository   : @System
From repo    : updates
Summary      : RPM macros for building Python source packages
License      : MIT and Python
Description  : RPM macros for building Python source packages.

Available Packages
Name         : python-srpm-macros
Version      : 3.9
Release      : 15.fc33
Architecture : noarch
Size         : 21 k
Source       : python-rpm-macros-3.9-15.fc33.src.rpm
Repository   : updates
Summary      : RPM macros for building Python source packages
License      : MIT and Python
Description  : RPM macros for building Python source packages.

Thanks. The 3.9-11.fc33 version has a bug that has been fixed since. Could you please update to 3.9-15.fc33?

And as a long term solution, could the builders be regurarly updated?

Thanks. The 3.9-11.fc33 version has a bug that has been fixed since. Could you please update to 3.9-15.fc33?

I'm going to try the next week... I'm in the the process of preparation of another set of
builders that we can use on separate hardware, and that is going to be F34. So while
I'm on it I'll update everything to F34.

And as a long term solution, could the builders be regurarly updated?

This would have consequences, sooner or later. We do update some sub-set
of packages automatically (always when a frewsh builder VM is started), though
we can not update everything to keep Copr (relatively) stable.

Do you think there are good reasons to keep updating this package? Perhaps
we should put it on the allow-list.

Do you think there are good reasons to keep updating this package? Perhaps
we should put it on the allow-list.

I mean, this looks like a one-time problem, and we should be OK, right?

Updating builder images manually isn't usually a big deal, but since I'm in the
middle of the other update process (inconsistencies in ansible.git) I don't want
to unnecessarily risk.

The general problem here is that SRPM packages in Koji / on packager machines are built with up-to-date packages. When something is fixed in redhat-rpm-config or packages required by that one (usually *-srpm--macros), I'd expect Copr to include that fix, or problems might happen.

This particular problem is a one-time-thing, however this might bte us at any time.

Specifically, I believe all *-srpm--macros should all be added to the allow-list.

FTR, I updated the builders to F34 - which brought also the newest packages there.

Specifically, I believe all *-srpm--macros should all be added to the allow-list.

It is interesting how much arch dependant the rpmbuild -bs process is :-( though
yeah. I bet it is low risk to update *rpm-macros automatically. Let's try...

Metadata Update from @praiskup:
- Issue assigned to praiskup

3 years ago

Log in to comment on this ticket.

Metadata
Related Pull Requests
  • #1829 Merged 3 years ago