Git commit 928a512050f38e186b34e6f06f63a9e5d711575e by Jonathan Thomas. Committed on 27/08/2011 at 21:31. Pushed by jmthomas into branch '1.2'.
Since deb file installation is an asynchronous process compared to installing packages via APT, the QApt Worker's idle timeout was not being blocked during deb file installation. This caused .deb file installations that went on for 30 seconds or longer to fail due to the QApt Worker's idle timer timing out and quitting the process. Fixes issues with the installation of Skype and Opera packages failing by appearing to hang. BUG: 280890 CCMAIL: [email protected] FIXED-IN:1.2.1, 1.2.65 M +7 -1 src/worker/worker.cpp M +3 -0 src/worker/worker.h http://commits.kde.org/libqapt/928a512050f38e186b34e6f06f63a9e5d711575e diff --git a/src/worker/worker.cpp b/src/worker/worker.cpp index 782b592..087d6d8 100644 --- a/src/worker/worker.cpp +++ b/src/worker/worker.cpp @@ -76,7 +76,10 @@ QAptWorker::QAptWorker(int &argc, char **argv) return; } - QTimer::singleShot(30000, this, SLOT(quit())); + m_timeout = new QTimer(this); + connect(m_timeout, SIGNAL(timeout()), this, SLOT(quit())); + m_timeout->setSingleShot(true); + m_timeout->start(30000); } QAptWorker::~QAptWorker() @@ -542,6 +545,7 @@ void QAptWorker::installDebFile(const QString &fileName) emit workerFinished(false); return; } + m_timeout->stop(); emit workerStarted(); @@ -597,6 +601,8 @@ void QAptWorker::dpkgFinished(int exitCode, QProcess::ExitStatus exitStatus) emit workerEvent(QApt::DebInstallFinished); } + m_timeout->start(); + emit workerFinished(!exitStatus); delete m_dpkgProcess; m_dpkgProcess = 0; diff --git a/src/worker/worker.h b/src/worker/worker.h index e4b4bac..a2b1433 100644 --- a/src/worker/worker.h +++ b/src/worker/worker.h @@ -30,6 +30,7 @@ class pkgRecords; class QEventLoop; class QProcess; +class QTimer; namespace QApt { class Cache; @@ -54,12 +55,14 @@ private: pkgPolicy *m_policy; pkgRecords *m_records; bool m_systemLocked; + pid_t m_child_id; QVariantMap m_questionResponse; WorkerAcquire *m_acquireStatus; QEventLoop *m_questionBlock; QProcess *m_xapianProc; QProcess *m_dpkgProcess; + QTimer *m_timeout; public Q_SLOTS: void setLocale(const QString &locale) const; -- You received this bug notification because you are a member of Kubuntu Bugs, which is subscribed to qapt in Ubuntu. https://bugs.launchpad.net/bugs/830786 Title: can not install packages with dependencies To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/qapt/+bug/830786/+subscriptions -- kubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/kubuntu-bugs
