Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Eric Nelson <eric.nelson@boundarydevices.com>
To: Laszlo Papp <lpapp@kde.org>
Cc: openembedded-core <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH] recipes-qt: add fix for QWSLock on qt4e
Date: Sat, 24 Aug 2013 12:25:09 -0700	[thread overview]
Message-ID: <52190895.3010208@boundarydevices.com> (raw)
In-Reply-To: <CAOMwXhOGuSNGHJogiDewqnd-_-JtahNwb6xxDPO3fgnkXNTGnw@mail.gmail.com>

Hi Laszlo,

On 08/24/2013 12:15 PM, Laszlo Papp wrote:
> This is strange. According to the bugtracker it should be in 4.8.5
> already... and the recipe seems to be about 4.8.5. It needs more
> investigation.
>

I saw this, but there's no evidence that any change was committed
and I verified that the bug is still there (it's trivially easy to
reproduce) and that this patch fixes it.

>
> On Sat, Aug 24, 2013 at 8:13 PM, Saul Wold <sgw@linux.intel.com
> <mailto:sgw@linux.intel.com>> wrote:
>
>     On 08/24/2013 09:49 AM, Eric Nelson wrote:
>
>         This patch adds a patch for Qt-Embedded to only
>         destroy semaphores in the process which created
>         them.
>
>         Original patch by Neil Jerram for the OpenMoko project:
>         http://lists.openmoko.org/__pipermail/community/2012-__November/067806.html
>         <http://lists.openmoko.org/pipermail/community/2012-November/067806.html>
>
>         See also Bug 31254:
>         https://bugreports.qt-project.__org/browse/QTBUG-31254
>         <https://bugreports.qt-project.org/browse/QTBUG-31254>
>
>         Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.__com
>         <mailto:eric.nelson@boundarydevices.com>>
>
>     Besides this, we need an Upstream-Status: Tag, this is either a
>     Backport or Submitted maybe?
>

I submitted a patch, but haven't received any feedback from the Qt'ers:
	https://codereview.qt-project.org/#change,62842

Should I re-send with Upstream-Status: tag and a reference?

>     Sau!
>
>
>         ---
>            meta/recipes-qt/qt4/qt4-4.8.5.__inc                  |  1 +
>            ...-Only-destroy-semaphores-__in-process-owner.patch | 77
>         ++++++++++++++++++++++
>            2 files changed, 78 insertions(+)
>            create mode 100644
>         meta/recipes-qt/qt4/qt4-4.8.5/__0028-QWSLock-Only-destroy-__semaphores-in-process-owner.__patch
>
>         diff --git a/meta/recipes-qt/qt4/qt4-4.8.__5.inc
>         b/meta/recipes-qt/qt4/qt4-4.8.__5.inc
>         index 95a14f3..be16bff 100644
>         --- a/meta/recipes-qt/qt4/qt4-4.8.__5.inc
>         +++ b/meta/recipes-qt/qt4/qt4-4.8.__5.inc
>         @@ -24,6 +24,7 @@ SRC_URI =
>         "http://download.qt-project.__org/official_releases/qt/4.8/$__{PV}/qt-ever
>         <http://download.qt-project.org/official_releases/qt/4.8/$%7BPV%7D/qt-ever>
>
>           file://0022-Fix-drawing-of-0-__width-polylines-from-outside-__the-de.patch \
>
>           file://0023-QHttpMultiPart-__fix-data-corruption-in-__readData-metho.patch \
>
>           file://0027-tools.pro-disable-__qmeegographicssystemhelper.__patch \
>         +
>         file://0028-QWSLock-Only-__destroy-semaphores-in-process-__owner.patch
>         \
>                       file://g++.conf \
>                       file://linux.conf \
>                       "
>         diff --git
>         a/meta/recipes-qt/qt4/qt4-4.8.__5/0028-QWSLock-Only-destroy-__semaphores-in-process-owner.__patch
>         b/meta/recipes-qt/qt4/qt4-4.8.__5/0028-QWSLock-Only-destroy-__semaphores-in-process-owner.__patch
>         new file mode 100644
>         index 0000000..d67a746
>         --- /dev/null
>         +++
>         b/meta/recipes-qt/qt4/qt4-4.8.__5/0028-QWSLock-Only-destroy-__semaphores-in-process-owner.__patch
>         @@ -0,0 +1,77 @@
>         +From 9af565935d16ecf8a8c04b5ea850dd__b34a7c1294 Mon Sep 17
>         00:00:00 2001
>         +From: Eric Nelson <eric.nelson@boundarydevices.__com
>         <mailto:eric.nelson@boundarydevices.com>>
>         +Date: Mon, 12 Aug 2013 11:54:05 -0700
>         +Subject: [PATCH] QWSLock: Only destroy semaphores in process owner
>         +
>         +This fixes the case when QT_POSIX_IPC is not defined.
>         +
>         +Original patch by Neil Jerram for the OpenMoko project:
>         +
>         http://lists.openmoko.org/__pipermail/community/2012-__November/067806.html
>         <http://lists.openmoko.org/pipermail/community/2012-November/067806.html>
>         +
>         +See also Bug 31254:
>         + https://bugreports.qt-project.__org/browse/QTBUG-31254
>         <https://bugreports.qt-project.org/browse/QTBUG-31254>
>         +
>         +Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.__com
>         <mailto:eric.nelson@boundarydevices.com>>
>         +---
>         + src/gui/embedded/qwslock.cpp | 13 +++++++++----
>         + src/gui/embedded/qwslock_p.h |  2 +-
>         + 2 files changed, 10 insertions(+), 5 deletions(-)
>         +
>         +diff --git a/src/gui/embedded/qwslock.cpp
>         b/src/gui/embedded/qwslock.cpp
>         +index 3f8f306..cd6a48d 100644
>         +--- a/src/gui/embedded/qwslock.cpp
>         ++++ b/src/gui/embedded/qwslock.cpp
>         +@@ -83,9 +83,12 @@ QWSLock::QWSLock(int id) : semId(id)
>         +     QWSSignalHandler::instance()->__addWSLock(this);
>         + #endif
>         +
>         ++    owned = false;
>         ++
>         + #ifndef QT_POSIX_IPC
>         +     if (semId == -1) {
>         +         semId = semget(IPC_PRIVATE, 3, IPC_CREAT | 0666);
>         ++        owned = true;
>         +         if (semId == -1) {
>         +             perror("QWSLock::QWSLock");
>         +             qFatal("Unable to create semaphore");
>         +@@ -100,7 +103,6 @@ QWSLock::QWSLock(int id) : semId(id)
>         +     }
>         + #else
>         +     sems[0] = sems[1] = sems[2] = SEM_FAILED;
>         +-    owned = false;
>         +
>         +     if (semId == -1) {
>         +         // ### generate really unique IDs
>         +@@ -134,9 +136,12 @@ QWSLock::~QWSLock()
>         +
>         +     if (semId != -1) {
>         + #ifndef QT_POSIX_IPC
>         +-        qt_semun semval;
>         +-        semval.val = 0;
>         +-        semctl(semId, 0, IPC_RMID, semval);
>         ++
>         ++        if (owned) {
>         ++            qt_semun semval;
>         ++            semval.val = 0;
>         ++            semctl(semId, 0, IPC_RMID, semval);
>         ++        }
>         +         semId = -1;
>         + #else
>         +         // emulate the SEM_UNDO behavior for the BackingStore lock
>         +diff --git a/src/gui/embedded/qwslock_p.h
>         b/src/gui/embedded/qwslock_p.h
>         +index ead7b89..d16b3d5 100644
>         +--- a/src/gui/embedded/qwslock_p.h
>         ++++ b/src/gui/embedded/qwslock_p.h
>         +@@ -86,8 +86,8 @@ private:
>         +     int lockCount[2];
>         + #ifdef QT_POSIX_IPC
>         +     sem_t *sems[3];
>         +-    bool owned;
>         + #endif
>         ++    bool owned;
>         + };
>         +
>         + QT_END_NAMESPACE
>         +--
>         +1.8.1.2
>         +
>
>     _________________________________________________
>     Openembedded-core mailing list
>     Openembedded-core@lists.__openembedded.org
>     <mailto:Openembedded-core@lists.openembedded.org>
>     http://lists.openembedded.org/__mailman/listinfo/openembedded-__core
>     <http://lists.openembedded.org/mailman/listinfo/openembedded-core>
>
>



  reply	other threads:[~2013-08-24 19:25 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-24 16:49 [PATCH] recipes-qt: add fix for QWSLock on qt4e Eric Nelson
2013-08-24 19:13 ` Saul Wold
2013-08-24 19:15   ` Laszlo Papp
2013-08-24 19:25     ` Eric Nelson [this message]
2013-08-24 19:28       ` Laszlo Papp
2013-08-24 19:51         ` Eric Nelson
2013-08-24 19:56           ` Laszlo Papp

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52190895.3010208@boundarydevices.com \
    --to=eric.nelson@boundarydevices.com \
    --cc=lpapp@kde.org \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox