Switch back to running dnf in a subprocess (#1614511)
This commit is contained in:
parent
1d80cfe722
commit
5873518367
51
1571.patch
Normal file
51
1571.patch
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
From dedeb70b021f1a02461167ce1d520dfb0df6d911 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Kolman <mkolman@redhat.com>
|
||||||
|
Date: Fri, 10 Aug 2018 15:05:47 +0200
|
||||||
|
Subject: [PATCH] Revert back to running DNF in a subprocess
|
||||||
|
|
||||||
|
When working on the modula installation support via the install_specs()
|
||||||
|
API we hit a weird issue with DNF crashing on a "foregin key error"
|
||||||
|
when accessing one of its sqlite databases.
|
||||||
|
|
||||||
|
When looking into it with the DNF developers we found out the issue
|
||||||
|
goes away when we just run the DNF transaction in a dummy process
|
||||||
|
instead of a real one. That seemed to work fine and there were no
|
||||||
|
apparent regressions at that time so we went with the workaround.
|
||||||
|
|
||||||
|
Looks like we might have been wrong - bug 1614511 strongly hints
|
||||||
|
on chroot being used by rpm od DNF during package installation trasaction
|
||||||
|
is causing GTK to crash by basically swapping the root filesystem under
|
||||||
|
it.
|
||||||
|
|
||||||
|
A similar issue back with yum was the main reason for isolating
|
||||||
|
the yum payload into a separate process. So switch back to the previous
|
||||||
|
behavior where the DNF trasaction runs in a separate sub-process to
|
||||||
|
shield the main Anaconda process from rpm/DNF chroot shenanigans.
|
||||||
|
|
||||||
|
Resolves: rhbz#1614511
|
||||||
|
Related: rhbz#1613296
|
||||||
|
---
|
||||||
|
pyanaconda/payload/dnfpayload.py | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/pyanaconda/payload/dnfpayload.py b/pyanaconda/payload/dnfpayload.py
|
||||||
|
index 3e166389b9..61ab753107 100644
|
||||||
|
--- a/pyanaconda/payload/dnfpayload.py
|
||||||
|
+++ b/pyanaconda/payload/dnfpayload.py
|
||||||
|
@@ -37,7 +37,6 @@
|
||||||
|
import collections
|
||||||
|
import itertools
|
||||||
|
import multiprocessing
|
||||||
|
-import multiprocessing.dummy
|
||||||
|
import operator
|
||||||
|
import hashlib
|
||||||
|
import shutil
|
||||||
|
@@ -1020,7 +1019,7 @@ def install(self):
|
||||||
|
progress_message(pre_msg)
|
||||||
|
|
||||||
|
queue_instance = multiprocessing.Queue()
|
||||||
|
- process = multiprocessing.dummy.Process(target=do_transaction,
|
||||||
|
+ process = multiprocessing.Process(target=do_transaction,
|
||||||
|
args=(self._base, queue_instance))
|
||||||
|
process.start()
|
||||||
|
(token, msg) = queue_instance.get()
|
@ -7,7 +7,7 @@
|
|||||||
Summary: Graphical system installer
|
Summary: Graphical system installer
|
||||||
Name: anaconda
|
Name: anaconda
|
||||||
Version: 29.23
|
Version: 29.23
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
License: GPLv2+ and MIT
|
License: GPLv2+ and MIT
|
||||||
Group: Applications/System
|
Group: Applications/System
|
||||||
URL: http://fedoraproject.org/wiki/Anaconda
|
URL: http://fedoraproject.org/wiki/Anaconda
|
||||||
@ -18,6 +18,11 @@ URL: http://fedoraproject.org/wiki/Anaconda
|
|||||||
# ./autogen.sh
|
# ./autogen.sh
|
||||||
# make dist
|
# make dist
|
||||||
Source0: %{name}-%{version}.tar.bz2
|
Source0: %{name}-%{version}.tar.bz2
|
||||||
|
# Reverts to running dnf in a subprocess (not a thread). Requires
|
||||||
|
# libdnf-0.17.0-2.fc29 or higher. Fixes
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1614511
|
||||||
|
# https://github.com/rhinstaller/anaconda/pull/1571
|
||||||
|
Patch0: 1571.patch
|
||||||
|
|
||||||
# Versions of required components (done so we make sure the buildrequires
|
# Versions of required components (done so we make sure the buildrequires
|
||||||
# match the requires versions of things).
|
# match the requires versions of things).
|
||||||
@ -250,6 +255,7 @@ runtime on NFS/HTTP/FTP servers or local disks.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# use actual build-time release number, not tarball creation time release number
|
# use actual build-time release number, not tarball creation time release number
|
||||||
@ -347,6 +353,9 @@ update-desktop-database &> /dev/null || :
|
|||||||
%{_prefix}/libexec/anaconda/dd_*
|
%{_prefix}/libexec/anaconda/dd_*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Aug 10 2018 Adam Williamson <awilliam@redhat.com> - 29.23-3
|
||||||
|
- Switch back to running dnf in a subprocess (#1614511)
|
||||||
|
|
||||||
* Tue Aug 07 2018 Martin Kolman <mkolman@redhat.com> - 29.23-2
|
* Tue Aug 07 2018 Martin Kolman <mkolman@redhat.com> - 29.23-2
|
||||||
- Fix a typo
|
- Fix a typo
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user