skip to Main Content

I’m having a problem with translated RPMs borking an otherwise functional jFrog artifactory debian package repo.

I’m rebuilding some RPMs as DEBs and pushing to my artifactory so I can install as needed.

  1. Get RPM
  2. Convert to .deb:

fpm --name ${name} -s rpm -t deb

  1. Push to artifactrory

Soon as the new package is added to artifactory, apt update starts failing with:

Hit:6 https://myjfrog/platform-debian-remote bionic-updates InRelease
Get:7 https://myjfrog/artifactory/xxx-debian xxx-5.4 InRelease [5894 B]
Get:8 https://myjfrog/artifactory/xxx-debian xxx-5.4/snapshot amd64 Packages [8521 B]
Fetched 14.4 kB in 3s (5332 B/s)
Reading package lists... Error!
E: Problem parsing dependency 21
E: Error occurred while processing oracle-instantclient12.2-devel (NewVersion2)
E: Problem with MergeList /var/lib/apt/lists/myjfrog.io_artifactory_xxx-debian_dists_xxx_snapshot_binary-amd64_Packages
E: The package lists or status file could not be parsed or opened.

Apt is then broken until I purge the file from the artifactory repo, and delete /var/lib/apt/lists/*

I’ve diff’d the above apt lists file before and after adding the package and the diff is solely the stanza added for that package:

root@xxx-sbox2-pipeline:/var/lib/apt/lists# diff /tmp/*amd64-Packages
1332,1353d1331
< Package: xxx-oracle-instantclient12.2-basic
< Version: 12.2.0.1.0-1
< License: Oracle
< Vendor: Oracle Corporation
< Architecture: amd64
< Maintainer: <@a15566901d8d>
< Installed-Size: 216337
< Depends: libaio, rpmlib(FileDigests) <= 4.6.0-1, rpmlib(PayloadFilesHavePrefix) <= 4.0-1, rpmlib(CompressedFileNames) <= 3.0.4-1, rpmlib(PayloadIsXz) <= 5.2-1
< Conflicts: oracle-instantclient12.2-basiclite
< Provides: libclntsh.so.12.1, oracle-instantclient12.2-basic, oracle-instantclient12.2-basic(x86-64)
< Section: Applications/File
< Priority: extra
< Homepage: http://www.oracle.com/
< Description: Instant Client allows you to run your applications without installing the standard Oracle client or having an ORACLE_HOME.  OCI, OCCI, ODBC, and JDBC applications work without modification, while using significantly less disk space than before.  No recompile, no hassle.
<  .
<  This is the Basic package, supporting OCI, OCCI, and JDBC-OCI with all
<  languages.
< Filename: pool/snapshot/xxx-oracle-instantclient12.2-basic/xxx-oracle-instantclient12.2-basic_12.2.0.1.0-1_amd64.deb
< SHA1: 74843aefc7f559b40e1b6cacf96397b7a047bd12
< SHA256: 1e9e1e592f21edf12703d93e56b58ca5c30a329659456bdfaf0ffa39b13784ce
< Size: 68889880
<

At this point all apt commands fail, update, install, … until I repeat the repo purge/rebuild index and rm /var/lib/apt/lists/* process.

My package build/upload to artifactory process has been in use for ages. I’ve been using this as my sole package distribution mechanism and never had any issues until now.
It’s just this set of oracle instantclient12.2 packages that does this.

Quite the PITA since it requires a manual fix for any instance that happened to update it’s package cache while that file existed in the repo.

I’ve seen similar reports related to the "Problem with MergeList…(NewVersion2)" error, but they appear to involve /var/lib/apt/lists/ corruption, this is apparently self inflicted.

https://askubuntu.com/questions/443244/eerror-occurred-while-processing-iw-newversion2
https://www.linuxquestions.org/questions/debian-26/apt-get-problem-problem-parsing-dependency-depends-906264/

Tried both fpm and alien for the rpm-> deb conversion, no difference. (In fact, the payload and DEBIAN/ of the resultant debs are identical. Good to know there is zero diff between the two)

What’s causing the "Problem with MergeList"?
Why is this case "special" where all other packages are fine?
Why only with "converted" RPMs?
Has the word "Oracle" in it? I’d almost believe that at this point.

2

Answers


  1. Chosen as BEST ANSWER

    Here's the update from jFrog. https://www.jfrog.com/jira/browse/RTFACT-26334

    They are still working on how to handle packages that have bad metadata.

    The particular example I started with had some invalid dependency versions from the alien conversion from rpm.

    Followup, if the dependency string within the control file contains unparseable version strings, or illegal version range expressions, this problem is triggered. In this case, alien was generating bad version range expressions.


  2. I believer it is related to the fact that debian package with no control file breaks metadata – RTFACT-20460.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search