Linux Container Development
 help / color / mirror / Atom feed
From: Dongsheng Yang <yangds.fnst-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
To: "Eric W. Biederman" <ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
Cc: cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
	Al Viro <viro-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org>,
	LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [Propose] Isolate core_pattern in mnt namespace.
Date: Wed, 23 Dec 2015 11:12:32 +0800	[thread overview]
Message-ID: <567A1120.3070204@cn.fujitsu.com> (raw)
In-Reply-To: <87twnbzcz8.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>

On 12/22/2015 05:52 AM, Eric W. Biederman wrote:
> Dongsheng Yang <yangds.fnst@cn.fujitsu.com> writes:
>
>> On 12/20/2015 05:47 PM, Eric W. Biederman wrote:
>>> Dongsheng Yang <yangds.fnst@cn.fujitsu.com> writes:
>>>
>>>> On 12/20/2015 10:37 AM, Al Viro wrote:
>>>>> On Sun, Dec 20, 2015 at 10:14:29AM +0800, Dongsheng Yang wrote:
>>>>>> On 12/17/2015 07:23 PM, Dongsheng Yang wrote:
>>>>>>> Hi guys,
>>>>>>>        We are working on making core dump behaviour isolated in
>>>>>>> container. But the problem is, the /proc/sys/kernel/core_pattern
>>>>>>> is a kernel wide setting, not belongs to a container.
>>>>>>>
>>>>>>>        So we want to add core_pattern into mnt namespace. What
>>>>>>> do you think about it?
>>>>>>
>>>>>> Hi Eric,
>>>>>> 	I found your patch about "net: Implement the per network namespace
>>>>>> sysctl infrastructure", I want to do the similar thing
>>>>>> in mnt namespace. Is that suggested way?
>>>>>
>>>>> Why mnt namespace and not something else?
>>>>
>>>> Hi Al,
>>>>
>>>> Well, because core_pattern indicates the path to store core file.
>>>> In different mnt namespace, we would like to change the path with
>>>> different value.
>>>>
>>>> In addition, Let's considering other namespaces:
>>>> UTS ns: contains informations of kernel and arch, not proper for core_pattern.
>>>> IPC ns: communication informations, not proper for core_pattern
>>>> PID ns: core_pattern is not related with pid
>>>> net ns: obviousely no.
>>>> user ns: not proper too.
>>>>
>>>> Then I believe it's better to do this in mnt namespace. of course,
>>>> core_pattern is just one example. After this infrastructure finished,
>>>> we can implement more sysctls as per-mnt if necessary, I think.
>>>>
>>>> Al, what do you think about this idea?
>>>
>>> The hard part is not the sysctl.  The hard part is starting the usermode
>>> helper, in an environment that it can deal with.  The mount namespace
>>> really provides you with no help there.
>>
>> Do you mean the core dump helper? But I think I don't want to touch it
>> in my development. I think I can use non-pipe way to get what I want,
>> Let me try to explain what I want here.
>>
>> (1). introduce a --core-path option in docker run command to specify the
>> path in host to store core file in one container.
>> E.g: docker run --core-path=/core/test --name=test IMAGE
>>
>> (2). When the container starting, docker attach a volume to it, similar
>> with "-v /core/test:/var/lib/docker/coredump". That means, the path of
>> /var/lib/docker/coredump in container is a link to /core/test in host.
>>
>> (3). Set the /proc/sys/kernel/core_pattern in container as
>> "/var/lib/docker/coredump". But that should not affect the core_pattern
>> in host or other containers.
>>
>> Then I think I can collect the core files from each container and save
>> them in the paths where I want.
>
> For your case that sounds like it would work.  Unfortunately for this to
> be generally applicable and to let the OS in the contianer control it's
> fate the core dump pattern needs to be supported.
>
> Otherwise something clever in userspace that can be written now should
> be sufficient to fill the gap.  There is enough information for the user
> mode helper to implement the policy you would like today.

Hi Eric,

To make sure I understand your point correctly:
	Do you mean we can write a userspace helper in host such as
/usr/libexec/docker-pipe to get what I want?

Yes, I would say, for my case, it would work. This helper can get the
dump data from containers and dispatch them to different path such
as /var/lib/docker/cores/<ContainerID>/.

But there would be two problems in this solution.
(1). It may affect core dump on host. Normally, other processes in
  host would not be happy to use a helper of docker-pipe for themselves.
  But host have to share the core_pattern with containers, can't config
  it by itself.

(2). If there are some containers don't want to pass the core files
to host, they can't set the core_pattern in this solution.

IMO, we can get core files on host currently, by either non-pipe way I
described above or the pipe way you suggested. But the problem is both
of these methods would affect the core_pattern on host and other
containers.

So, I think the key point here is just isolating the core dump related
sysctl in mnt namespace.

Thanx
Yang
>
> Eric
>
>
> .
>



_______________________________________________
Containers mailing list
Containers@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/containers

  parent reply	other threads:[~2015-12-23  3:12 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <56729B3D.1040502@cn.fujitsu.com>
     [not found] ` <56729B3D.1040502-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2015-12-20  2:14   ` [Propose] Isolate core_pattern in mnt namespace Dongsheng Yang
     [not found]     ` <56760F05.3020308-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2015-12-20  2:37       ` Al Viro
     [not found]         ` <20151220023712.GT20997-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org>
2015-12-20  2:47           ` Dongsheng Yang
     [not found]         ` <567616D6.6060202@cn.fujitsu.com>
     [not found]           ` <567616D6.6060202-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2015-12-20  9:47             ` Eric W. Biederman
     [not found]           ` <87fuyx1mfn.fsf@x220.int.ebiederm.org>
     [not found]             ` <87fuyx1mfn.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2015-12-20 23:58               ` Kamezawa Hiroyuki
2015-12-21  6:15               ` Dongsheng Yang
     [not found]             ` <567798EC.1040304@cn.fujitsu.com>
     [not found]               ` <567798EC.1040304-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2015-12-21 21:52                 ` Eric W. Biederman
     [not found]                   ` <87twnbzcz8.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2015-12-22  3:12                     ` Kamezawa Hiroyuki
2015-12-23  3:12                     ` Dongsheng Yang [this message]
     [not found]                       ` <567A1120.3070204-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2015-12-23 16:36                         ` Eric W. Biederman
     [not found]                           ` <8760zpxgte.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-01-05  6:28                             ` Dongsheng Yang
     [not found]                           ` <568B629E.5010806@cn.fujitsu.com>
     [not found]                             ` <568B629E.5010806-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2016-01-05  7:58                               ` Eric W. Biederman
     [not found]                   ` <5678BFA3.9090608@jp.fujitsu.com>
     [not found]                     ` <5678BFA3.9090608-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2015-12-23  3:13                       ` Dongsheng Yang
2015-12-17 11:23 Dongsheng Yang

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=567A1120.3070204@cn.fujitsu.com \
    --to=yangds.fnst-bthxqxjhjhxqfuhtdcdx3a@public.gmane.org \
    --cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=viro-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.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