https://bugzilla.novell.com/show_bug.cgi?id=307249 Summary: zypper "refresh" is a misnomer Product: openSUSE 10.3 Version: Beta 2 Platform: Other OS/Version: Other Status: NEW Severity: Critical Priority: P5 - None Component: libzypp AssignedTo: kkaempf@novell.com ReportedBy: poeml@novell.com QAContact: kkaempf@novell.com Found By: --- This bug report is twofold. 1) zypper refresh doesn't work in any useful way for me. 2) it severely wastes bandwidth on download.o.o root@linux-103:~ # zypper sl # | Enabled | Refresh | Type | Alias | Name --+---------+---------+--------+------------+----------- 1 | Yes | Yes | rpm-md | home:poeml | home:poeml I have just rebuilt the repository. Thus, zypper cannot have an uptodate copy. It has a command with the promising name "refresh", which can be expected to download new files. However, it doesn't do that: root@linux-103:~ # zypper refresh Repository 'home:poeml' is up to date. All repositories have been refreshed. Lie. Nothing downloaded! The repo is not up do date! root@linux-103:~ # zypper refresh -b Repository 'home:poeml' is up to date. Forcing building of repository cache * Cleaning repository 'home:poeml' cache * Building repository 'home:poeml' cache All repositories have been refreshed. Lie. Nothing downloaded! The repo is not up do date! Let's try force... root@linux-103:~ # zypper refresh -f Forcing raw metadata refresh Forcing building of repository cache * Cleaning repository 'home:poeml' cache * Building repository 'home:poeml' cache All repositories have been refreshed. root@linux-103:~ # 84.44.185.90 - - [03/Sep/2007:22:04:34 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml HTTP/1.1" 200 1198 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:04:34 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml.key HTTP/1.1" 206 2 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:04:35 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml.asc HTTP/1.1" 206 2 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:04:35 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml.key HTTP/1.1" 200 893 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:04:36 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml.asc HTTP/1.1" 200 189 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:04:36 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml.key HTTP/1.1" 200 893 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:04:36 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml.asc HTTP/1.1" 200 189 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:04:36 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml HTTP/1.1" 200 1198 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:04:38 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/filelists.xml.gz HTTP/1.1" 200 1859 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:04:38 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/primary.xml.gz HTTP/1.1" 200 5295 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:04:38 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/patterns.test2.xml.gz HTTP/1.1" 200 99 "-" "Novell ZYPP Installer" "-" It downloaded something, finally. Now, let's do the same again. This time, metadata has _not_ changed in between. So let's see what the "refresh" command deals with this situation... root@linux-103:~ # zypper refresh Repository 'home:poeml' is up to date. All repositories have been refreshed. Oh no, how can it know? It didn't check. root@linux-103:~ # zypper refresh -b Repository 'home:poeml' is up to date. Forcing building of repository cache * Cleaning repository 'home:poeml' cache * Building repository 'home:poeml' cache All repositories have been refreshed. It didn't check either. It claims to have refreshed something? Wtf? How should one force it to check it whether the locally cached files are up to date? Let's try force... root@linux-103:~ # zypper refresh -f Forcing raw metadata refresh Forcing building of repository cache * Cleaning repository 'home:poeml' cache * Building repository 'home:poeml' cache All repositories have been refreshed. root@linux-103:~ # 84.44.185.90 - - [03/Sep/2007:22:13:12 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml HTTP/1.1" 200 1198 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:13:12 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml.key HTTP/1.1" 206 2 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:13:13 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml.asc HTTP/1.1" 206 2 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:13:13 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml.key HTTP/1.1" 200 893 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:13:13 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml.asc HTTP/1.1" 200 189 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:13:13 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml.key HTTP/1.1" 200 893 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:13:13 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml.asc HTTP/1.1" 200 189 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:13:13 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/repomd.xml HTTP/1.1" 200 1198 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:13:15 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/filelists.xml.gz HTTP/1.1" 200 1859 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:13:15 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/primary.xml.gz HTTP/1.1" 200 5295 "-" "Novell ZYPP Installer" "-" 84.44.185.90 - - [03/Sep/2007:22:13:15 +0200] "GET /repositories/home:/poeml/openSUSE_Factory/repodata/patterns.test2.xml.gz HTTP/1.1" 200 99 "-" "Novell ZYPP Installer" "-" Gosh, it did download the whole stuff again. Although the files are the same. It didn't even care to check whether the cached copies are still up to date. Even though it has hashes over all files and can validate that they are unchanged... So, first, this behaviour doesn't make sense to me. 'refresh' doesn't seem to do anything useful to the user, and 'refresh -f' doesn't refresh at all, but 're-download' everything again, and should be named like that, or fixed... Second, I assume there must be some kind of rule behind this behaviour, and presumably sometimes the equivalent of a "refresh -f" will happen. After all, somehow zypp must be able to notice that my home:poeml repo offeres new packages after a while, no!? So, if yast/zypp/zypper then goes ahead and bluntly downloads all _unchanged_ metadata again, with each "refresh", this is becoming a severe problem for our infrastructure. Our resources are expensive and we must use them economically. Downloading unchanged files again and again increases the likelyhood that we run in to serious problems that affect all customers. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.