diff mbox series

kernel-shark: kernel-shark: Avoid a duplicate error message from capture

Message ID 20190710153906.32048-1-y.karadz@gmail.com (mailing list archive)
State Accepted
Headers show
Series kernel-shark: kernel-shark: Avoid a duplicate error message from capture | expand

Commit Message

Yordan Karadzhov July 10, 2019, 3:39 p.m. UTC
If the capture process finishes with an error the _captureError() slot
will print an error message. We do not need to print identical message
in _captureFinished().

However, we have to keep in mind that the process that we started is
"pkexec" and the capture dialog is a child process of "pkexec". So if
the capture dialog failed to start or crashed the "pkexec" process
itself will have a normal exit, however its return value will be
different from 0 (it will just pass the return value of the capture
dialog executable). In this case _captureError() is not triggered,
but we still want to see an error message.

Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
---
 kernel-shark/src/KsMainWindow.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Steven Rostedt July 10, 2019, 4:31 p.m. UTC | #1
On Wed, 10 Jul 2019 19:00:43 +0300
Yordan Karadzhov <y.karadz@gmail.com> wrote:

> On Wed, Jul 10, 2019, 18:39 Yordan Karadzhov (VMware) <y.karadz@gmail.com>
> wrote:
> 
> > If the capture process finishes with an error the _captureError() slot
> > will print an error message. We do not need to print identical message
> > in _captureFinished().
> >
> > However, we have to keep in mind that the process that we started is
> > "pkexec" and the capture dialog is a child process of "pkexec". So if
> > the capture dialog failed to start or crashed the "pkexec" process
> > itself will have a normal exit, however its return value will be
> > different from 0 (it will just pass the return value of the capture
> > dialog executable). In this case _captureError() is not triggered,
> > but we still want to see an error message.
> >
> > Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
> > ---
> >  kernel-shark/src/KsMainWindow.cpp | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/kernel-shark/src/KsMainWindow.cpp
> > b/kernel-shark/src/KsMainWindow.cpp
> > index 29d44d9..c127ad1 100644
> > --- a/kernel-shark/src/KsMainWindow.cpp
> > +++ b/kernel-shark/src/KsMainWindow.cpp
> > @@ -1180,7 +1180,7 @@ void KsMainWindow::_captureFinished(int ret,
> > QProcess::ExitStatus st)
> >                 return;
> >         }
> >
> > -       if (ret != 0 || st != QProcess::NormalExit) {
> > +       if (ret != 0 || st == QProcess::NormalExit) {
> >
> 
> Ohh, I made stupid mistake in the rush. Must use AND instead of OR

Heh, want me to just make the fix, or can you send a v2?

-- Steve

> 
>                 QString message = "Capture process failed:<br>";
> >
> >                 message += capture->errorString();
> > --
> > 2.20.1
> >
> >
diff mbox series

Patch

diff --git a/kernel-shark/src/KsMainWindow.cpp b/kernel-shark/src/KsMainWindow.cpp
index 29d44d9..c127ad1 100644
--- a/kernel-shark/src/KsMainWindow.cpp
+++ b/kernel-shark/src/KsMainWindow.cpp
@@ -1180,7 +1180,7 @@  void KsMainWindow::_captureFinished(int ret, QProcess::ExitStatus st)
 		return;
 	}
 
-	if (ret != 0 || st != QProcess::NormalExit) {
+	if (ret != 0 || st == QProcess::NormalExit) {
 		QString message = "Capture process failed:<br>";
 
 		message += capture->errorString();