Troubleshooting zmd

From openSUSE

(Redirected from ZMD/Libzypp Troubleshooting)


Contents

rug can't add new unsigned repositories

If you're trying to add a custom repository and you got an error like this:

# rug sa --type=YUM http://foobar.com/sled-10-i586 foobar-sles

Adding YUM service http://foobar.com/sled-10-i586...                                                                                                                     
                                                                33%
ERROR: Could not add 'http://foobar.com/sled-10-i586': Failed
to parse XML metadata: Unsigned file '/repodata/repomd.xml
(file:/var/cache/zmd/web/files/foobar.com/sled-10-i586/)'

Solution 1: Have the repository cryptographically signed

For YUM repositories it is a very easy process, documented in Secure Installation Sources.

Solution 2: As root, run the next command

rug set security-level checksum 

and then try to add it again. You will be able to see the repository and the catalog.

Note that this is insecure and allows remote attackers that are able to modify this repository or your internet access to run code on your machine.


Debugging

From time to time you may encounter problems or bugs with zmd. zmd has options that can facilitate tracking down the source of these problems.

zmd log files

The ZMD suite maintains two log files: zmd-messages.log and zmd-backend.log. The first of which is kept by the actual zmd process and the second is kept by the zypp helper programs. These files are usually kept in /var/log but may be elsewhere depending on your install prefix.

The file /var/log/messages also contains some zmd logging information which maybe helpful in troubleshooting zmd

zmd debugging preferences

There are a couple of preferences that would be of interest to anyone trying to obtain information pertaining to the cause of a bug. These are:

  • log-exception-traces: This preferences tells zmd to record the origin of any exception thrown while executing. You may want this to be set to "True":
    rug set log-exception-traces True
  • log-level: This just tells zmd what degree of messages to log. You may want to set this to "debug":
    rug set log-level debug
  • log-soap-xml: This tells zmd to log all incoming soap xml calls, useful for debugging remote zmd operation. You may want to set this to "True":
    rug set log-soap-xml True
  • syslog-level: This is similar to "log-level" except this applies to the syslog. You may want to set this to "debug":
    rug set syslog-level debug

To execute these commands you may need to be root or use sudo.

Note: to get a listing of the current settings type

rug get-prefs

Rebuild the zmd database

Sometimes there is nothing left to do but nuke and pave:

  • Stop the zen-updater (this is the panel icon/updater GUI)
killall zen-updater
  • Stop zmd
/etc/init.d/novell-zmd stop
  • Remove the zmd database
rm -f /var/lib/zmd/zmd.db
  • Restart zmd
/etc/init.d/novell-zmd start
  • Restart zen-updater
zen-updater &
  • Rebuild the RPM database
rpm --rebuilddb

Similar instructions can be found on the Novell ZMD troubleshooting tips page.