2007-12-07 20:27:11

by Zan Lynx

[permalink] [raw]
Subject: 2.6.24-rc4-mm1 and /proc/<pid>/status Name: field

Today I noticed pgrep doesn't work. It seems the reason is a missing
Name: tag in the status file for a process in /proc.

# cat /proc/1/status
init
State: S (sleeping)
Tgid: 1
Pid: 1
PPid: 0
TracerPid: 0
...etc, etc...

This is supposed to look like:
# cat /proc/1/status
Name: init
State: S (sleeping)
Tgid: 1
Pid: 1
PPid: 0
TracerPid: 0
...


--
Zan Lynx <[email protected]>


Attachments:
signature.asc (189.00 B)
This is a digitally signed message part

2007-12-07 23:58:58

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc4-mm1 and /proc/<pid>/status Name: field

On Fri, 07 Dec 2007 20:26:43 +0000
Zan Lynx <[email protected]> wrote:

> Today I noticed pgrep doesn't work. It seems the reason is a missing
> Name: tag in the status file for a process in /proc.
>
> # cat /proc/1/status
> init
> State: S (sleeping)
> Tgid: 1
> Pid: 1
> PPid: 0
> TracerPid: 0
> ...etc, etc...
>
> This is supposed to look like:
> # cat /proc/1/status
> Name: init
> State: S (sleeping)
> Tgid: 1
> Pid: 1
> PPid: 0
> TracerPid: 0
> ...
>

Thanks. Two (more) bugs in
proc-seqfile-convert-proc_pid_status-to-properly-handle-pid-namespaces.patch

--- a/fs/proc/array.c~proc-seqfile-convert-proc_pid_status-to-properly-handle-pid-namespaces-fix-3
+++ a/fs/proc/array.c
@@ -98,9 +98,9 @@ static inline void task_name(struct seq_

get_task_comm(tcomm, p);

+ seq_printf(m, "Name:\t");
end = m->buf + m->size;
buf = m->buf + m->count;
- seq_printf(m, "Name:\n");
name = tcomm;
i = sizeof(tcomm);
while (i && (buf < end)) {
_

2007-12-08 04:01:28

by Eric W. Biederman

[permalink] [raw]
Subject: Re: 2.6.24-rc4-mm1 and /proc/<pid>/status Name: field

Andrew Morton <[email protected]> writes:

> On Fri, 07 Dec 2007 20:26:43 +0000
> Zan Lynx <[email protected]> wrote:
>
>> Today I noticed pgrep doesn't work. It seems the reason is a missing
>> Name: tag in the status file for a process in /proc.
>>
>> # cat /proc/1/status
>> init
>> State: S (sleeping)
>> Tgid: 1
>> Pid: 1
>> PPid: 0
>> TracerPid: 0
>> ...etc, etc...
>>
>> This is supposed to look like:
>> # cat /proc/1/status
>> Name: init
>> State: S (sleeping)
>> Tgid: 1
>> Pid: 1
>> PPid: 0
>> TracerPid: 0
>> ...
>>
>
> Thanks. Two (more) bugs in
> proc-seqfile-convert-proc_pid_status-to-properly-handle-pid-namespaces.patch

Doh! How did I get that one confused?

Thanks.
Eric


>
> ---
> a/fs/proc/array.c~proc-seqfile-convert-proc_pid_status-to-properly-handle-pid-namespaces-fix-3
> +++ a/fs/proc/array.c
> @@ -98,9 +98,9 @@ static inline void task_name(struct seq_
>
> get_task_comm(tcomm, p);
>
> + seq_printf(m, "Name:\t");
> end = m->buf + m->size;
> buf = m->buf + m->count;
> - seq_printf(m, "Name:\n");
> name = tcomm;
> i = sizeof(tcomm);
> while (i && (buf < end)) {
> _