Bug 1217865

Summary: createrepo_c Command createrepo Error "C_CREATEREPOLIB: Critical: cr_metadata_load_xml: Error encountered while parsing"
Product: [openSUSE] openSUSE Distribution Reporter: Bill Wayson <bill_wayson>
Component: OtherAssignee: E-mail List <screening-team-bugs>
Status: RESOLVED INVALID QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: Leap 15.5   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE Leap 15.5   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Bill Wayson 2023-12-07 04:42:31 UTC
When I run the createrepo command (from the createrepo_c package) in Leap 15.5, such as:

/usr/bin/createrepo --update /home/mrbill/Documents/repositories/codeweavers/openSUSE

I get the error message:

C_CREATEREPOLIB: Critical: cr_metadata_load_xml: Error encountered while parsing

and createrepo seems to go into an infinite loop and must be killed.

Here is the package information and full command output:

createrepo_c-0.16.0-3.3.1.x86_64
libcreaterepo_c0-0.16.0-3.3.1.x86_64
python3-createrepo_c-0.16.0-3.3.1.x86_64

mrbill@rocky:~> /usr/bin/createrepo --update /home/mrbill/Documents/repositories/codeweavers/openSUSE
Directory walk started
Directory walk done - 9 packages
C_CREATEREPOLIB: Critical: cr_metadata_load_xml: Error encountered while parsing
Loaded information about 0 packages
Temporary output repo path: /home/mrbill/Documents/repositories/codeweavers/openSUSE/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers) # <-- Last line of output, where I press <Ctrl-C>.  I also have to delete the temporary .repodata directory.


I have been running this command for many, many years, beginning on a now very old, pre-Leap version of openSUSE, and do not remember ever having this problem.  I also boot Tumbleweed on the same PC, and it works as expected.  Here is the Tumbleweed package info and command output:

createrepo_c-1.0.2-2.1.x86_64
libcreaterepo_c1-1.0.2-2.1.x86_64
python3-createrepo_c-1.0.2-2.1.x86_64

mrbill@rocky:~> /usr/bin/createrepo --update /home/mrbill/Documents/repositories/codeweavers/openSUSE
Directory walk started
Directory walk done - 9 packages
Loaded information about 8 packages
Temporary output repo path: /home/mrbill/Documents/repositories/codeweavers/openSUSE/.repodata/
Pool started (with 5 workers)
Pool finished
mrbill@rocky:~>

I thought someone should know of this problem.  Thanks!
Comment 1 Bill Wayson 2023-12-10 22:50:15 UTC
I'm sorry to have caused anyone hassle, but I must retract this report.  After more investigation, it appears both versions of createrepo_c are working as designed.  I believe the error message is due to the older version on Leap not understanding zstd repodata files, the default file format of the newer version.  It then reads all of the package files to completely recreate bzip and gzip repodata files.  The packages are on a low-powered NAS, so reading them all takes a long time.  I also see that I can use an option with the newer createrepo_c to force the creation of b/gzip files to eliminate the error message from the Leap version.  Again, my apologies.