Bug 1439533 - Malformed repository error for ovirt-4.1 repo when syncing with Pulp
Summary: Malformed repository error for ovirt-4.1 repo when syncing with Pulp
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: ovirt-release
Classification: oVirt
Component: General
Version: 4.1.3
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: Anton Marchukov
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-04-06 08:07 UTC by daniel
Modified: 2017-05-11 09:28 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2017-04-07 09:18:18 UTC
oVirt Team: Integration
Embargoed:


Attachments (Terms of Use)

Description daniel 2017-04-06 08:07:44 UTC
Description of problem:

When trying to mirror the repository using pulp getting an error:

Task Failed

Malformed repository: metadata is missing for some packages in filelists.xml and
in other.xml


Version-Release number of selected component (if applicable):
used URL to mirror: http://resources.ovirt.org/pub/ovirt-4.1/rpm/el7

Pulp versions:
pulp-rpm-admin-extensions-2.12.1-1.el7.noarch
pulp-rpm-plugins-2.12.1-1.el7.noarch
pulp-server-2.12.1-1.el7.noarch

How reproducible:
yes

Steps to Reproduce:
1. Install pulp
2. Setup ovirt repo using URL: http://resources.ovirt.org/pub/ovirt-4.1/rpm/el7
3. run "pulp-admin rpm repo sync run"

Actual results:

+----------------------------------------------------------------------+
                 Synchronizing Repository [ovirt41-el7]
+----------------------------------------------------------------------+

This command may be exited via ctrl+c without affecting the request.


Downloading metadata...
[/]

Task Failed

Malformed repository: metadata is missing for some packages in filelists.xml and
in other.xml


Expected results:
+----------------------------------------------------------------------+
                 Synchronizing Repository [ovirt40-el7]
+----------------------------------------------------------------------+

This command may be exited via ctrl+c without affecting the request.


Downloading metadata...
[\]
... completed

Downloading repository content...
[-]
[==================================================] 100%
RPMs:       0/0 items
Delta RPMs: 0/0 items

... completed

Downloading distribution files...
[==================================================] 100%
Distributions: 0/0 items
... completed

Importing errata...
[-]
... completed

Importing package groups/categories...
[-]
... completed

Cleaning duplicate packages...
[-]
... completed


Task Succeeded




Task Succeeded


Additional info:

Comment 1 Sandro Bonazzola 2017-04-06 08:12:51 UTC
Anton, can you check? Maybe a repoman bug? Can you fix it?

Comment 2 Anton Marchukov 2017-04-06 09:22:27 UTC
I checked our repo using reposync and it appears to properly read all the index files and be able to sync the repo fully locally:

amarchuk@lathlaeril:~/tmp$ reposync -c /etc/yum/yum.conf -r ovirt-4.1 -l -p ovirt-4.1-tmp
ovirt-4.1                                                                                                                                                                            | 2.9 kB     00:00     
ovirt-4.1/primary_db                                                                                                                                                                 | 133 kB     00:00     
[ovirt-4.1: 1     of 333   ] Downloading noarch/cockpit-ovirt-dashboard-0.10.7-0.0.15.el7.centos.noarch.rpm
cockpit-ovirt-dashboard-0.10.7-0.0.15.el7.centos.noarch.rpm                                                                                                                          | 7.1 MB     00:01     
[ovirt-4.1: 2     of 333   ] Downloading noarch/cockpit-ovirt-dashboard-0.10.7-0.0.6.el7.centos.noarch.rpm
cockpit-ovirt-dashboard-0.10.7-0.0.6.el7.centos.noarch.rpm                                                                                                                           | 2.3 MB     00:01     

[ ... skipped ... ]

[ovirt-4.1: 332   of 333   ] Downloading noarch/vdsm-yajsonrpc-4.19.10-1.el7.centos.noarch.rpm
vdsm-yajsonrpc-4.19.10-1.el7.centos.noarch.rpm                                                                                                                                       |  28 kB     00:00     
[ovirt-4.1: 333   of 333   ] Downloading noarch/vdsm-yajsonrpc-4.19.4-1.el7.centos.noarch.rpm
vdsm-yajsonrpc-4.19.4-1.el7.centos.noarch.rpm  


amarchuk@lathlaeril:~/tmp$ cat /etc/yum/repos.d/ovirt.repo 
[ovirt-4.1]
name=Latest oVirt 4.1 Release
baseurl=http://resources.ovirt.org/pub/ovirt-4.1/rpm/el7
#mirrorlist=http://resources.ovirt.org/pub/yum-repo/mirrorlist-ovirt-4.1-@DIST@$releasever
enabled=1
skip_if_unavailable=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-ovirt-4.1



Since reposync is basically yum I can assume that the repoindex is ok.

Daniel, would you mind please checking the sync one more time? It might be that the repo was indeed broken, but somehow recovered as of now and thus I am unable to reproduce it.

However if it still does not work for you, would you mind please opening a ticket at https://pulp.plan.io/issues ?

I will leave it open for some time so we can see if it works now or not.

Thanks.

Comment 3 daniel 2017-04-06 09:25:48 UTC
I've checked it. With yum everything is working fine. The problem is only with pulp sync. It is working OK for 4.0 (http://resources.ovirt.org/pub/ovirt-4.0/rpm/el7)

Comment 4 Anton Marchukov 2017-04-06 13:17:42 UTC
Hello Daniel.

Ok. The only thing left to check was the fact that pulp complains on xml formatted metadata rather than sqlite ones. To make sure that yum/reposync takes the metadata from xml I temporarily created a repository copy and removed all db files from repomd.xml leaving xmls only there. 

I still able to sync repo using reposync without problems. However this will use only primary.xml.gz rather then filelists.xml and other.xml as in pulp error message.

I also run the following queries using repoquery to force it use metadata from filelists and other:

repoquery --repoid=ovirt-4.1-nosqlite --all | xargs -n1 repoquery --repoid=ovirt-4.1-nosqlite --list > list.txt
repoquery --repoid=ovirt-4.1-nosqlite --all | xargs -n1 repoquery --repoid=ovirt-4.1-nosqlite --changelog > changelog.txt

that basically output filelists and changelogs of all packages in the repo.

And I am unable to see any errors produced.

Unfortunately "metadata is missing for some packages" does not also give us any clue on what exactly is missing and where.

To facilitate further debugging I have created a copy of current 4.1 el7 "as is" and saved it in under the following link: 

http://resources.ovirt.org/repos/amarchuk/el7-bz1439533/repodata/

feel free to use it when opening an issue on pulp and please reply back with the ticket link so we can also track it.

Thanks.

Comment 5 daniel 2017-04-06 13:21:13 UTC
Hi,

the problem still exists on the copied repo:

[root@borewicz ~]# pulp-admin rpm repo create --repo-id=ovirt41-el7-new --relative-url=ovirt41-el7-new --feed=http://resources.ovirt.org/repos/amarchuk/el7-bz1439533 --serve-http=true --display-name="oVirt 4.1 EL7" --description="oVirt 4.1 EL7"
Successfully created repository [ovirt41-el7-new]

[root@borewicz ~]# pulp-admin rpm repo sync run --force-full --repo-id=ovirt41-el7-new                                  +----------------------------------------------------------------------+
               Synchronizing Repository [ovirt41-el7-new]
+----------------------------------------------------------------------+

The following sync configuration options will be used:

Force Full:  True


This command may be exited via ctrl+c without affecting the request.


Downloading metadata...
[\]
... completed

Downloading repository content...
[-]

Task Failed

Malformed repository: metadata is missing for some packages in filelists.xml and
in other.xml

Comment 6 Anton Marchukov 2017-04-06 13:27:13 UTC
Ok. This copy will not be mutated so you can use it as a stable link for a reproducer when opening the ticket at https://pulp.plan.io/issues

Comment 7 Sandro Bonazzola 2017-04-06 13:45:32 UTC
Hi, I've just updated the 4.1 repo with a 4.1.1 async release.
Can you check if pulp still have an issue with that repo?

Comment 8 Anton Marchukov 2017-04-06 16:09:20 UTC
I found that repoquery will not return any error or status code when it is called with missing package. This can make previous tests not fully valid.

Thus I wrote a simple python script that iterates over packages in primary.xml and then tries to look up each of them in filelists.xml and other.xml.

It seems that they are complete and each package in primary have corresponding entries in filelists and other.

The only strange thing I have found is that all our release rpms have duplicate entries in indexes of exactly the same content. I am not sure if it is ok or not, but we have the same issue in ovirt-4.0 repo and Daniel said it syncs fine with Pulp. Also repoquery do not have any problems with those duplicate entries and can query release rpms fine.

Unfortunately with current information and error messages we have that's all we can do to debug it on our side.

Comment 9 daniel 2017-04-06 20:58:47 UTC
Yes, I can confirm that the problem still exists on the http://resources.ovirt.org/repos/amarchuk/el7-bz1439533 and still on the official http://resources.ovirt.org/pub/ovirt-4.1/rpm/el7

SO you suggest to open a bug on the Pulp for this?

Comment 10 daniel 2017-04-07 07:27:56 UTC
I've created the issue on the pulp: https://pulp.plan.io/issues/2695

Comment 11 Yaniv Kaul 2017-04-07 07:39:24 UTC
(In reply to daniel from comment #10)
> I've created the issue on the pulp: https://pulp.plan.io/issues/2695

So can we close this one?

Comment 12 daniel 2017-04-07 07:46:58 UTC
If you feel that this is a problem with pulp rather than with your repo? I don't know. Have you tried to rebuild the repo at your site?

Comment 13 Anton Marchukov 2017-04-07 09:18:18 UTC
Thanks for creating issue in the pulp issue tracker. Let's continue tracking it there.

Yes. The repo was recreated when Sandro pushed 4.1.1 async update and it still does not work with pulp. Since it works fine with yum tools and also seems xmls look to be complete and well formed I am closing this issue here. If there is any new information appears we can reopen it.


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