Bug 1021291

Summary: Deadlock during Upgrade from 42.1 to 42.2 due network hickups
Product: [openSUSE] openSUSE Distribution Reporter: Dr. Werner Fink <werner>
Component: libzyppAssignee: E-mail List <zypp-maintainers>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: ma
Version: Leap 42.2   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE 42.2   
Whiteboard:
Found By: Development Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: xz tar archive of /var/log/YaST2/ as well as /var/log/zypper.log

Description Dr. Werner Fink 2017-01-21 20:34:23 UTC
I have seen a deadlock of the YaST2 installation screen during download of some packages caused by a temporary network hickup ... I had run strace -f -p <pid of y2base> on virtual console 2 to see that the process does not return from polling.  Further invertigation had shown that a pipe had been stuck but the pipe from fd 19 to fd 20 was still there.

As this was in the ram installation disk I've no log about that.  After terminationg and redoing upgrade from within linuxrc I had h'finished the installation.

IMHO there a timeout handler for such pollings is missed here!
Comment 1 Arvin Schnell 2017-01-23 12:20:34 UTC
If it happens during downloading of packages it is likely a libzypp issue.
Otherwise there is not much information for debugging.
Comment 2 Michael Andres 2017-01-23 13:45:21 UTC
AFAIK yast copies the logs to the system after a successful installation, so logs should be present in the instsys. Maybe one has to save them manually. But without logs it's impossible to say what actually happened.

Closing it as WORKSFORME. Please reopen if more info or logs are available.
Comment 3 Dr. Werner Fink 2017-01-23 13:56:14 UTC
(In reply to Michael Andres from comment #2)

?? As already told: I had terminated the parent y2base process as otherwise the screen of the YaST2 installation process had not do anything about more than an hour.  The network hickup was resolved after 2 minutes, nevertheless the installation screen had not returned from lock. By using linuxrc I had started the upgrade again.

I've no idea if this is due libzypp or libcurl or sowhatever ... nevertheless a loop on an always returning poll and its always repeating timeout seems to not that correct. At least I suspect a redraw with a warning and the possiblity to skip the failed package and/or network based packages
Comment 4 Dr. Werner Fink 2017-01-23 17:36:09 UTC
Created attachment 711291 [details]
xz tar archive of /var/log/YaST2/ as well as /var/log/zypper.log
Comment 5 Dr. Werner Fink 2017-01-23 17:36:38 UTC
Here we are
Comment 6 Michael Andres 2017-01-24 13:10:42 UTC
According to the log we wait for  curl_easy_perform()  to return after having downloaded the requested rpm (http://download.opensuse.org/distribution/leap/42.2/repo/oss/suse/noarch/texlive-epstopdf-doc-2015.104.2.23svn36139-21.16.noarch.rpm).

>  SET_OPTION(CURLOPT_PROGRESSFUNCTION, &progressCallback );
>  SET_OPTION(CURLOPT_NOPROGRESS, 0L);
Libzypp always sets up a custom progress function, which in turn triggers the yast UI progress callback (DownloadProgressReport). The yast callback may abort the transfer by returning non-zero (e.g. after the user pressed sone abort-button).

If I got you right, the UI is not responsive. So we receive no progress callback at all from libcurl. Or we do, and libzypp fails to forward the callback to the UI, which may indeed happen if we detect curl delivering old data. Or the UI hangs and does not return from the callback.

We can't tell from the log which case actually happened. 


I'll fix the zypp callback to make sure actually every progress trigger from curl is forwarded to the UI. This will either make the UI responsive or tell us that curl fails to trigger the callback. As the libcurl transfer timeout is 1h, we currently don't know if curl is hanging or still waiting.
Comment 7 Michael Andres 2017-02-03 12:50:40 UTC
When downloading a metalink file (e.g. to retrieve some .rpm), curl progress callbacks had been disabled. So it was not possible for the UI to abort a download hanging there.

This is fixed in libzypp-16.4.1.
Comment 8 Swamp Workflow Management 2017-03-29 19:15:57 UTC
SUSE-RU-2017:0863-1: An update that has 15 recommended fixes can now be installed.

Category: recommended (moderate)
Bug References: 1017267,1018873,1021291,1022046,1024741,1024909,1025440,1028003,1028119,1028492,1030136,1030827,1030919,926844,983021
CVE References: 
Sources used:
SUSE Linux Enterprise Software Development Kit 12-SP2 (src):    libsolv-0.6.26-2.27.3.3, libzypp-16.5.2-27.9.1
SUSE Linux Enterprise Server for Raspberry Pi 12-SP2 (src):    libsolv-0.6.26-2.27.3.3, libzypp-16.5.2-27.9.1, zypper-1.13.21-18.3.3
SUSE Linux Enterprise Server 12-SP2 (src):    libsolv-0.6.26-2.27.3.3, libzypp-16.5.2-27.9.1, zypper-1.13.21-18.3.3
SUSE Linux Enterprise Desktop 12-SP2 (src):    libsolv-0.6.26-2.27.3.3, libzypp-16.5.2-27.9.1, zypper-1.13.21-18.3.3
OpenStack Cloud Magnum Orchestration 7 (src):    libsolv-0.6.26-2.27.3.3, libzypp-16.5.2-27.9.1, zypper-1.13.21-18.3.3
Comment 9 Swamp Workflow Management 2017-04-05 16:09:34 UTC
openSUSE-RU-2017:0934-1: An update that has 15 recommended fixes can now be installed.

Category: recommended (moderate)
Bug References: 1017267,1018873,1021291,1022046,1024741,1024909,1025440,1028003,1028119,1028492,1030136,1030827,1030919,926844,983021
CVE References: 
Sources used:
openSUSE Leap 42.2 (src):    libsolv-0.6.26-5.3.1, libzypp-16.5.2-5.3.1, zypper-1.13.21-5.3.1
Comment 11 Swamp Workflow Management 2018-10-25 19:14:41 UTC
SUSE-RU-2018:3462-1: An update that has 7 recommended fixes can now be installed.

Category: recommended (moderate)
Bug References: 1021291,1099982,1109877,1109893,408814,556664,939392
CVE References: 
Sources used:
SUSE Linux Enterprise Server 12-LTSS (src):    libzypp-14.47.0-2.85.1, zypper-1.11.71-2.72.1
Comment 12 Swamp Workflow Management 2018-10-30 20:10:30 UTC
SUSE-RU-2018:3575-1: An update that has 7 recommended fixes can now be installed.

Category: recommended (moderate)
Bug References: 1021291,1099982,1109877,1109893,408814,556664,939392
CVE References: 
Sources used:
SUSE Linux Enterprise Server 12-SP1-LTSS (src):    libzypp-15.27.0-46.28.1, zypper-1.12.60-46.13.1
Comment 13 Swamp Workflow Management 2019-04-27 19:09:14 UTC
SUSE-RU-2018:3575-2: An update that has 7 recommended fixes can now be installed.

Category: recommended (moderate)
Bug References: 1021291,1099982,1109877,1109893,408814,556664,939392
CVE References: 
Sources used:
SUSE Linux Enterprise Server for SAP 12-SP1 (src):    libzypp-15.27.0-46.28.1, zypper-1.12.60-46.13.1

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.