summaryrefslogtreecommitdiff
path: root/source/l/qt5/patches/qt5.qlockfile-deadlock.patch
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2020-02-17 06:03:43 +0000
committerEric Hameleers <alien@slackware.com>2020-02-17 17:59:51 +0100
commit8ea9f1e02e85e3cc2b4ccda52639e96651d21653 (patch)
treedacfd5fff40a77f9335c18e572a6587149bb0abc /source/l/qt5/patches/qt5.qlockfile-deadlock.patch
parent6087aff6cae8d8d4c46ce086cb7b70a5af412d2b (diff)
downloadcurrent-8ea9f1e02e85e3cc2b4ccda52639e96651d21653.tar.gz
Mon Feb 17 06:03:43 UTC 202020200217060343
ap/ksh93-20200131_e4fea8c5-x86_64-1.txz: Upgraded. ap/zsh-5.8-x86_64-1.txz: Upgraded. l/brotli-1.0.7-x86_64-1.txz: Added. l/gmime-3.2.6-x86_64-1.txz: Upgraded. l/hyphen-2.8.8-x86_64-1.txz: Added. l/openal-soft-1.20.1-x86_64-1.txz: Upgraded. Thanks to Skaendo and Willy Sudiarto Raharjo. l/qt5-webkit-5.212.0_alpha3-x86_64-1.txz: Added. Thanks to alienBOB. l/woff2-20180531_a0d0ed7-x86_64-1.txz: Added. n/bluez-5.53-x86_64-1.txz: Upgraded. n/mutt-1.13.4-x86_64-1.txz: Upgraded. n/samba-4.11.6-x86_64-3.txz: Rebuilt. n/socat-1.7.3.4-x86_64-1.txz: Added. n/whois-5.5.6-x86_64-1.txz: Upgraded. testing/packages/PAM/samba-4.11.6-x86_64-3_pam.txz: Rebuilt. Added patches to fix joining a DC when using krb5. Looks like the patches are already upstreamed in the latest 4.12.0-rc. Thanks to camerabambai.
Diffstat (limited to 'source/l/qt5/patches/qt5.qlockfile-deadlock.patch')
-rw-r--r--source/l/qt5/patches/qt5.qlockfile-deadlock.patch116
1 files changed, 0 insertions, 116 deletions
diff --git a/source/l/qt5/patches/qt5.qlockfile-deadlock.patch b/source/l/qt5/patches/qt5.qlockfile-deadlock.patch
deleted file mode 100644
index e51d5ad0..00000000
--- a/source/l/qt5/patches/qt5.qlockfile-deadlock.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-# Taken from:
-# https://projects.archlinux.org/svntogit/packages.git/plain/trunk/qlockfile-deadlock.patch?h=packages/qt5
-# QTBUG-44771
-# ----------------------------------------------------------------------------
-From f58e882b7594c59b6050d3c87562fcf836d10f60 Mon Sep 17 00:00:00 2001
-From: Olivier Goffart <ogoffart@woboq.com>
-Date: Tue, 14 Apr 2015 10:58:26 +0200
-Subject: QLockFile: fix deadlock when the lock file is corrupted
-
-[ChangeLog][QtCore][QLockFile] Fixed a deadlock when the lock file
-is corrupted.
-
-Task-number: QTBUG-44771
-Change-Id: Ic490b09d70ff1cc1733b64949889a73720b2d0f3
-Reviewed-by: David Faure <david.faure@kdab.com>
----
- src/corelib/io/qlockfile_unix.cpp | 10 +++++-----
- src/corelib/io/qlockfile_win.cpp | 22 +++++++++++-----------
- tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp | 17 +++++++++++++++++
- 3 files changed, 33 insertions(+), 16 deletions(-)
-
-diff --git a/qtbase/src/corelib/io/qlockfile_unix.cpp b/qtbase/src/corelib/io/qlockfile_unix.cpp
-index bf1015a..dc9f8f7 100644
---- a/qtbase/src/corelib/io/qlockfile_unix.cpp
-+++ b/qtbase/src/corelib/io/qlockfile_unix.cpp
-@@ -181,11 +181,11 @@ bool QLockFilePrivate::isApparentlyStale() const
- {
- qint64 pid;
- QString hostname, appname;
-- if (!getLockInfo(&pid, &hostname, &appname))
-- return false;
-- if (hostname.isEmpty() || hostname == QString::fromLocal8Bit(localHostName())) {
-- if (::kill(pid, 0) == -1 && errno == ESRCH)
-- return true; // PID doesn't exist anymore
-+ if (getLockInfo(&pid, &hostname, &appname)) {
-+ if (hostname.isEmpty() || hostname == QString::fromLocal8Bit(localHostName())) {
-+ if (::kill(pid, 0) == -1 && errno == ESRCH)
-+ return true; // PID doesn't exist anymore
-+ }
- }
- const qint64 age = QFileInfo(fileName).lastModified().msecsTo(QDateTime::currentDateTime());
- return staleLockTime > 0 && age > staleLockTime;
-diff --git a/qtbase/src/corelib/io/qlockfile_win.cpp b/qtbase/src/corelib/io/qlockfile_win.cpp
-index f9f2909..3587c7b 100644
---- a/qtbase/src/corelib/io/qlockfile_win.cpp
-+++ b/qtbase/src/corelib/io/qlockfile_win.cpp
-@@ -115,21 +115,21 @@ bool QLockFilePrivate::isApparentlyStale() const
- {
- qint64 pid;
- QString hostname, appname;
-- if (!getLockInfo(&pid, &hostname, &appname))
-- return false;
-
- // On WinRT there seems to be no way of obtaining information about other
- // processes due to sandboxing
- #ifndef Q_OS_WINRT
-- if (hostname == QString::fromLocal8Bit(localHostName())) {
-- HANDLE procHandle = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pid);
-- if (!procHandle)
-- return true;
-- // We got a handle but check if process is still alive
-- DWORD dwR = ::WaitForSingleObject(procHandle, 0);
-- ::CloseHandle(procHandle);
-- if (dwR == WAIT_TIMEOUT)
-- return true;
-+ if (getLockInfo(&pid, &hostname, &appname)) {
-+ if (hostname == QString::fromLocal8Bit(localHostName())) {
-+ HANDLE procHandle = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pid);
-+ if (!procHandle)
-+ return true;
-+ // We got a handle but check if process is still alive
-+ DWORD dwR = ::WaitForSingleObject(procHandle, 0);
-+ ::CloseHandle(procHandle);
-+ if (dwR == WAIT_TIMEOUT)
-+ return true;
-+ }
- }
- #endif // !Q_OS_WINRT
- const qint64 age = QFileInfo(fileName).lastModified().msecsTo(QDateTime::currentDateTime());
-diff --git a/qtbase/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp b/qtbase/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp
-index 77bef94..12bea67 100644
---- a/qtbase/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp
-+++ b/qtbase/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp
-@@ -58,6 +58,7 @@ private slots:
- void staleLongLockFromBusyProcess();
- void staleLockRace();
- void noPermissions();
-+ void corruptedLockFile();
-
- public:
- QString m_helperApp;
-@@ -415,5 +416,21 @@ void tst_QLockFile::noPermissions()
- QCOMPARE(int(lockFile.error()), int(QLockFile::PermissionError));
- }
-
-+void tst_QLockFile::corruptedLockFile()
-+{
-+ const QString fileName = dir.path() + "/corruptedLockFile";
-+
-+ {
-+ // Create a empty file. Typically the result of a computer crash or hard disk full.
-+ QFile file(fileName);
-+ QVERIFY(file.open(QFile::WriteOnly));
-+ }
-+
-+ QLockFile secondLock(fileName);
-+ secondLock.setStaleLockTime(100);
-+ QVERIFY(secondLock.tryLock(10000));
-+ QCOMPARE(int(secondLock.error()), int(QLockFile::NoError));
-+}
-+
- QTEST_MAIN(tst_QLockFile)
- #include "tst_qlockfile.moc"
---
-cgit v0.11.0
-