public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Wang Xiaoming <xiaoming.wang@intel.com>
To: akpm@linux-foundation.org, oleg@redhat.com,
	andriy.shevchenko@linux.intel.com, linux@rasmusvillemoes.dk,
	ebiederm@xmission.com, eparis@redhat.com,
	chenhanxiao@cn.fujitsu.com, tj@kernel.org, tglx@linutronix.de,
	linux-kernel@vger.kernel.org
Cc: Wang Xiaoming <xiaoming.wang@intel.com>,
	"Schallberger, Timothy M" <timothy.m.schallberger@intel.com>,
	Dongxing Zhang <dongxing.zhang@intel.com>
Subject: [PATCH] proc: move the adding option Ngid to the end of proc/PID/status
Date: Fri, 17 Apr 2015 10:13:15 +0800	[thread overview]
Message-ID: <1429236796-22387-1-git-send-email-xiaoming.wang@intel.com> (raw)

Move debugging has been done and the following Kernel issue
was found with a number of applications.
Take a look at: (even though the comments are for Weibo.browser
they also pertain to other apps that use Libsecuritysdk-x.x.x.so

In kernel(3.14) is a little different than before
it will generate /proc/PID/status in this way:
Name: a.weibo.browser
State: T (stopped)
Tgid: 8487
Ngid: 0     ---- add in kernel after (3.11 maybe)
Pid: 8487
PPid: 139
TracerPid: 0 ---------------------=> line 7
……

But on previous kernel(3.11), it normally like that:
Name: a.weibo.browser
State: S (sleeping)
Tgid: 2109
Pid: 2109
PPid: 231
TracerPid: 0 -----------------------=> line 6
……

WeiBo always assume the “TracePid” is in line 6 of the status.
And it will read “PPid: 139” instead of “TracePid: 0”,
which will made Weibo to kill the process because there is attached debugger.
This issue also met in other application.

As the Ngid is added later, so it should be added at the end of task_state.
It is better keeping compatible to avoid such issue.

Signed-off-by: Schallberger, Timothy M <timothy.m.schallberger@intel.com>
Signed-off-by: Dongxing Zhang <dongxing.zhang@intel.com>
Signed-off-by: Wang Xiaoming <xiaoming.wang@intel.com>
---
 fs/proc/array.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/proc/array.c b/fs/proc/array.c
index fd02a9e..86dcd2b 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -163,15 +163,15 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
 	seq_printf(m,
 		"State:\t%s\n"
 		"Tgid:\t%d\n"
-		"Ngid:\t%d\n"
 		"Pid:\t%d\n"
 		"PPid:\t%d\n"
 		"TracerPid:\t%d\n"
 		"Uid:\t%d\t%d\t%d\t%d\n"
 		"Gid:\t%d\t%d\t%d\t%d\n"
+		"Ngid:\t%d\n"
 		"FDSize:\t%d\nGroups:\t",
 		get_task_state(p),
-		tgid, ngid, pid_nr_ns(pid, ns), ppid, tpid,
+		tgid, pid_nr_ns(pid, ns), ppid, tpid,
 		from_kuid_munged(user_ns, cred->uid),
 		from_kuid_munged(user_ns, cred->euid),
 		from_kuid_munged(user_ns, cred->suid),
@@ -180,6 +180,7 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
 		from_kgid_munged(user_ns, cred->egid),
 		from_kgid_munged(user_ns, cred->sgid),
 		from_kgid_munged(user_ns, cred->fsgid),
+		ngid,
 		max_fds);
 
 	group_info = cred->group_info;
-- 
1.7.9.5


             reply	other threads:[~2015-04-17  2:16 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-17  2:13 Wang Xiaoming [this message]
2015-04-17  2:56 ` [PATCH] proc: move the adding option Ngid to the end of proc/PID/status Tejun Heo
2015-04-17  3:15   ` Wang, Xiaoming
2015-04-17  3:26     ` Tejun Heo
2015-04-17  3:37       ` Wang, Xiaoming
2015-04-17  3:42         ` Tejun Heo
2015-04-17  5:36           ` Wang, Xiaoming
2015-04-21 15:19             ` Eric W. Biederman
  -- strict thread matches above, loose matches on Subject: below --
2015-04-17 13:23 Alexey Dobriyan
2015-04-17 14:26 ` Tejun Heo
2015-04-17 15:05   ` Alexey Dobriyan
2015-04-17 15:12     ` Tejun Heo
2015-04-21  8:19       ` Wang, Xiaoming
2015-04-21 14:00       ` Alexey Dobriyan
2015-04-21 15:11         ` Tejun Heo
2015-04-23 20:32           ` Alexey Dobriyan
2015-04-24 15:50             ` Tejun Heo

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=1429236796-22387-1-git-send-email-xiaoming.wang@intel.com \
    --to=xiaoming.wang@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=chenhanxiao@cn.fujitsu.com \
    --cc=dongxing.zhang@intel.com \
    --cc=ebiederm@xmission.com \
    --cc=eparis@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=oleg@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=timothy.m.schallberger@intel.com \
    --cc=tj@kernel.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