Bug 877405

Summary: Yast2 install - download gets stuck after a connection lost, does not retry
Product: [openSUSE] openSUSE 13.1 Reporter: Michal Veselenyi <vmicho>
Component: libzyppAssignee: E-mail List <zypp-maintainers>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Major    
Priority: P5 - None CC: korossy
Version: Final   
Target Milestone: ---   
Hardware: i686   
OS: openSUSE 13.1   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: screenshot - yast2 install stuck

Description Michal Veselenyi 2014-05-12 21:24:58 UTC
Created attachment 589588 [details]
screenshot - yast2 install stuck

User-Agent:       Mozilla/5.0 (X11; Linux i686; rv:25.0) Gecko/20100101 Firefox/25.0


yast2 install gets stuck when it loses connection (install from an online  repo). On the screenshot, it is in the same state for about a half hour. It doesn't try to retry nor reconnect, and the Abort and Help buttons don't do anything in this state.
I have sometimes pretty bad internet connection, but it can be redone just by simply disable wireless (maybe unplugging a lan cable will do the same) and then reconnect.


yast processes:

mito      3511  0.0  0.0   4788  1480 ?        S    22:31   0:00 /bin/sh /usr/bin/package-manager-su -c /sbin/yast2 --install
mito      3514  0.0  0.4  89784 17452 ?        S    22:31   0:00 /usr/bin/kdesu -c /sbin/yast2 --install
root      3524  0.0  0.0   4796  1560 ?        Ss   22:31   0:00 /bin/bash /sbin/yast2 --install
root      3543  0.0  4.1 296384 170576 ?       Sl   22:31   0:15 /usr/lib/YaST2/bin/y2base sw_single qt

Kernel:
Linux linux-3b5e.site 3.11.10-7-desktop #1 SMP PREEMPT Mon Feb 3 09:41:24 UTC 2014 (750023e) i686 i686 i386 GNU/Linux

yast:
yast2-3.0.10-4.1.i586
yast2-users-3.0.1-2.1.4.i586
yast2-proxy-3.0.0-2.1.4.noarch
...
yast2-metapackage-handler-3.0.0-2.1.4.noarch
yast2-packager-3.0.8-1.1.i586
...
yast2-installation-3.0.8-1.1.noarch
autoyast2-installation-3.0.8-5.1.noarch
...



Reproducible: Always

Steps to Reproduce:
1. Start Install/Remove Software
2. Set upgrade or downgrade a larger package (kernel for example), apply
3. Break the internet connection in the middle of the download
4. Re-establish the connection
Actual Results:  
Yast install gets stuck permanently

Expected Results:  
* Should contain some kind of timeout and retry automatically to resume the download.
* The available buttons should work
Comment 1 Michael Andres 2014-05-13 10:16:04 UTC
You are right, there might be no timeout in effect if the connection stalled. 

The /etc/zypp/zypp.conf download.transfer_timeout option as well as the yast buttons require libzurl to trigger it's progress callback. Answering this callback, we can request libcurl to abort the transfer. But if libcurl does not trigger it, it won't hear us. 

I'll add an upper limit for a transfer to prevent us from waiting forever. But this timeout needs to be long (30-60min.) because libcurl will abort _every_ transfer after this time, even if it is still running without error.


For your case please try the download.min_download_speed option in /etc/zypp/zypp.conf:
 ##
 ## Sets the minimum download speed (bytes per second)
 ## until the connection is dropped
 ## This can be useful to prevent security attacks on hosts by
 ## providing updates at very low speeds.
 ##
 ## 0 means no limit
 ##
 download.min_download_speed = 1

With this optionn libcurl should abort a transfer id the download speed drops below 1 byte per second for more than 10 seconds (newer libzypp versions will allow 60 seconds before aborting).
Comment 2 Michael Andres 2014-05-13 11:19:13 UTC
Adjusted timeouts for libzypp-13.10.2.
Comment 3 Bernhard Wiedemann 2014-05-21 20:00:18 UTC
This is an autogenerated message for OBS integration:
This bug (877405) was mentioned in
https://build.opensuse.org/request/show/235047 Factory / libzypp
Comment 4 Bernhard Wiedemann 2014-05-28 09:00:27 UTC
This is an autogenerated message for OBS integration:
This bug (877405) was mentioned in
https://build.opensuse.org/request/show/235639 Factory / libzypp
Comment 5 Swamp Workflow Management 2014-06-10 12:04:49 UTC
openSUSE-RU-2014:0771-1: An update that has two recommended fixes can now be installed.

Category: recommended (low)
Bug References: 834858,877405
CVE References: 
Sources used:
openSUSE 13.1 (src):    libsolv-0.4.2-11.1, libzypp-13.10.2-19.6, zypper-1.9.16-22.2
Comment 6 Pal Korossy 2015-09-20 19:07:22 UTC
This bug is still persists for me in 13.2.
Process y2base consumes 100% memory while I'm unable to press any key in yast window or close the window.
Comment 7 Michael Andres 2015-09-23 10:25:02 UTC
Please attach the yast logfiles (see http://en.opensuse.org/openSUSE:Bugreport_YaST)
Comment 8 Michael Andres 2017-07-12 09:24:58 UTC
noresponse