David C. Rankin wrote:
Peter, All,
I got hit by another update mirror failure last night. When there are large updates for factory or like with the new kde, I usually start the update before going to sleep so that it runs overnight and doesn't take up the connection during the business day. Lately at least 50% of all attempted updates fail on one package or another completely ruining the efficiency scheduling updates for the time you are asleep.
Last night the following error killed the update:
Downloading: libkexiv2-7-4.3.0-111.1.i586.rpm [error] Download (curl) error for 'http://download.opensuse.org/repositories/KDE:/KDE4:/Factory:/Desktop/openSU...': Error code: Connection failed Error message: couldn't connect to host
Abort, retry, ignore? [A/r/i]: r Downloading: libkexiv2-7-4.3.0-111.1.i586.rpm [done (37.4 K/s)]
as shown above, simply hitting 'r' (retry) caused the update to continue for the next 20-30 minutes until the next error:
Downloading package kppp-4.3.0-94.2.i586 (185/292), 631.0 K (1.7 M unpacked) Downloading: kppp-4.3.0-94.2.i586.rpm [error] Timeout exceed
Abort, retry, ignore? [A/r/i]: r Downloading: kppp-4.3.0-94.2.i586.rpm [done (92.4 K/s)]
Here again, simply hitting 'r' allowed the update to continue (107 files to go).
That go me thinking, until the mirror system can be stabilized, "Why can't zypper be made smart enough to handle these failures?" Some simple logic like "if timeout exceeded or connection failed; then retry package 3 times" would cure 90% of the zypper/yast update failures and help restore unattended update capability for openSuSE. Is this doable?
A little testing tells me that at least on 11.0 zypper does not actually run the curl binary but instead is built with libcurl and so has curl functions built-in. (well sort of, a .so is still an external file after all, it just doesn't spawn a whole child shell to run curl in) That means there is no place to insert "--retry 6" which curl supports. I tried putting "retry 6" in ~/.curlrc but it had no effect on zypper. I verified this by: I have my own repos on a server of my own so I was able to temporarily remove an unimportant package from the repo , just the rpm without updating the repodata index, and then ask zypper to install it, which forces the abort/retry prompt. So as far as I can tell on 11.0 or less we're SOL. However, it looks like all problems are solved in 11.1 http://forums.opensuse.org/applications/415340-configuring-yast2-zypper.html... -- bkw -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org