From: Pedro Alves <palves@redhat.com>
To: Gary Benson <gbenson@redhat.com>
Cc: gdb-patches@sourceware.org, "Eli Zaretskii" <eliz@gnu.org>,
"Doug Evans" <dje@google.com>,
"Iago López Galeiras" <iago@endocode.com>
Subject: Re: [PATCH 8/9 v2] Implement vFile:setfs in gdbserver
Date: Wed, 10 Jun 2015 14:53:00 -0000 [thread overview]
Message-ID: <55784F7F.7000808@redhat.com> (raw)
In-Reply-To: <20150610094056.GA18107@blade.nx>
On 06/10/2015 10:40 AM, Gary Benson wrote:
> Gary Benson wrote:
>> Pedro Alves wrote:
>>> On 06/09/2015 03:11 PM, Gary Benson wrote:
>>>> Pedro Alves wrote:
>>>>> For the setns/ENOSYS case, how about somehow probing whether
>>>>> setns actually works here (with a new method, or probing one
>>>>> of the existing ones with getpid()) and return empty packet,
>>>>> instead of ending up with open failing with ENOSYS later on?
>>>>
>>>> Probing and then telling GDB we don't understand "vFile:setfs:"
>>>> isn't that good of an idea. If we do that with an inferior in
>>>> another mount namespace then the end result is that gdbserver will
>>>> access the wrong filesystem. You might get "file not found", or
>>>> you might get an open filehandle on another file (i.e. the file
>>>> with the same name but in gdbserver's filesystem). If the
>>>> inferior's filesystem is different from gdbserver and gdbserver
>>>> cannot access that filesystem then the only correct response is
>>>> to fail.
>>>
>>> If the running system does not support "setfs", because it fails
>>> setns with ENOSYS, meaning, the system call isn't implemented at
>>> all, how can one end up in the situation that an inferior on the
>>> same kernel is running in a different filesystem namespace?
>>
>> If the running kernel has namespaces support but GDB and/or glibc
>> was built on a kernel without. It's an edge case but it's possible.
I see.
>
> Note that GDB/gdbserver will not attempt to call setns unless the
> inferior is actually in a different mount namespace. If you're
> running without namespaces support it won't even start the helper
> let alone try to setns. Same goes for if you have namespaces
> support but the inferior is in GDB/gdbserver's mount namespace.
> Nothing calls setns unless it is 100% necessary.
To probe for setns I was thinking would be done by on
gdb/gdbserver's pid, by gdb/gdbserver directly.
But I agree, when the kernel supports namespaces, and we can
tell the inferior is in a different namespace, but then setns
doesn't work, it's better to error out than disabling the setfs
packet. So I'm happy with the errno translation alone.
Thanks,
Pedro Alves
next prev parent reply other threads:[~2015-06-10 14:53 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-16 12:19 [PATCH 0/7] GNU/Linux mount namespace support Gary Benson
2015-04-16 12:19 ` [PATCH 4/7] Remove linux_proc_pid_get_ns Gary Benson
2015-04-17 4:36 ` Doug Evans
2015-04-17 13:44 ` Gary Benson
2015-04-16 12:20 ` [PATCH 2/7] Introduce target_fileio_set_fs Gary Benson
2015-04-17 3:04 ` Doug Evans
2015-04-17 13:36 ` Gary Benson
2015-04-17 14:21 ` Pedro Alves
2015-04-17 17:28 ` Doug Evans
2015-04-17 17:46 ` Pedro Alves
2015-04-20 11:11 ` Gary Benson
2015-04-16 12:20 ` [PATCH 1/7] Move make_cleanup_close to common code Gary Benson
2015-04-17 2:47 ` Doug Evans
2015-04-16 12:27 ` [PATCH 6/7] Implement multiple-filesystem support for remote targets Gary Benson
2015-04-16 15:12 ` Eli Zaretskii
2015-04-17 15:06 ` Pedro Alves
2015-04-17 16:00 ` Gary Benson
2015-04-17 16:07 ` Pedro Alves
2015-04-17 16:20 ` Gary Benson
2015-04-17 15:31 ` Pedro Alves
2015-04-17 16:01 ` Gary Benson
2015-04-16 12:34 ` [PATCH 3/7] Introduce nat/linux-namespaces.[ch] Gary Benson
2015-04-17 4:26 ` Doug Evans
2015-04-17 13:41 ` Gary Benson
2015-04-17 14:52 ` Pedro Alves
2015-04-17 17:32 ` Doug Evans
2015-04-20 11:12 ` Gary Benson
2015-04-16 12:54 ` [PATCH 7/7] Implement vFile:setfs in gdbserver Gary Benson
2015-04-17 15:30 ` Pedro Alves
2015-04-17 16:47 ` Gary Benson
2015-04-17 16:29 ` Gary Benson
2015-04-17 17:09 ` Pedro Alves
2015-04-16 13:06 ` [PATCH 5/7] Implement multiple-filesystem support for Linux targets Gary Benson
2015-04-17 15:35 ` [PATCH 0/7] GNU/Linux mount namespace support Pedro Alves
2015-04-20 16:49 ` Iago López Galeiras
2015-04-21 7:56 ` Gary Benson
2015-04-30 12:06 ` [PATCH 0/9 v2] " Gary Benson
2015-06-10 14:23 ` [pushed][PATCH " Gary Benson
2015-04-30 12:06 ` [PATCH 5/9 v2] Add "inferior" argument to some target_fileio functions Gary Benson
2015-05-21 14:57 ` Pedro Alves
2015-04-30 12:06 ` [PATCH 6/9 v2] Implement mount namespace support for native Linux targets Gary Benson
2015-04-30 16:24 ` Eli Zaretskii
2015-04-30 18:05 ` Gary Benson
2015-05-21 14:59 ` Pedro Alves
2015-05-27 10:16 ` Gary Benson
2015-04-30 12:06 ` [PATCH 3/9 v2] Remove linux_proc_pid_get_ns Gary Benson
2015-05-21 14:56 ` Pedro Alves
2015-04-30 12:15 ` [PATCH 4/9 v2] Comment and whitespace changes Gary Benson
2015-05-21 14:57 ` Pedro Alves
2015-04-30 12:41 ` [PATCH 8/9 v2] Implement vFile:setfs in gdbserver Gary Benson
2015-05-21 15:00 ` Pedro Alves
2015-06-09 14:11 ` Gary Benson
2015-06-09 14:23 ` Pedro Alves
2015-06-10 9:01 ` Gary Benson
2015-06-10 9:41 ` Gary Benson
2015-06-10 14:53 ` Pedro Alves [this message]
2015-04-30 12:45 ` [PATCH 2/9 v2] Introduce nat/linux-namespaces.[ch] Gary Benson
[not found] ` <20150501000739.740.47967@domU-12-31-39-0A-A0-4F>
2015-05-01 9:28 ` Gary Benson
2015-05-01 13:18 ` Alban Crequy
2015-05-01 20:29 ` Gary Benson
2015-05-06 18:55 ` Alban Crequy
2015-05-07 8:42 ` Gary Benson
2015-05-07 10:39 ` Gary Benson
2015-05-21 14:56 ` Pedro Alves
2015-05-27 10:14 ` Gary Benson
2015-06-11 8:40 ` James Greenhalgh
2015-06-11 11:04 ` Pedro Alves
2015-06-11 12:42 ` [OB PATCH] Use pulongest for printing ssize_t Gary Benson
2015-06-15 15:02 ` [PATCH 2/9 v2] Introduce nat/linux-namespaces.[ch] Michael Eager
2015-06-15 22:12 ` Michael Eager
2015-06-16 8:40 ` Gary Benson
2015-06-16 14:19 ` Michael Eager
2015-06-17 9:51 ` Gary Benson
2016-01-08 10:49 ` Yao Qi
2016-01-11 16:40 ` Gary Benson
2016-01-18 11:44 ` [OB PATCH] Fix gdbserver build failure on targets without fork Gary Benson
2015-04-30 14:12 ` [PATCH 1/9 v2] Move make_cleanup_close to common code Gary Benson
2015-05-21 14:56 ` Pedro Alves
2015-05-27 9:52 ` Gary Benson
2015-04-30 14:12 ` [PATCH 7/9 v2] Implement multiple-filesystem support for remote targets Gary Benson
2015-04-30 17:10 ` Eli Zaretskii
2015-05-21 15:04 ` Pedro Alves
2015-04-30 14:14 ` [PATCH 9/9 v2] Announce new container-awareness features for GNU/Linux systems Gary Benson
2015-04-30 16:20 ` Eli Zaretskii
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=55784F7F.7000808@redhat.com \
--to=palves@redhat.com \
--cc=dje@google.com \
--cc=eliz@gnu.org \
--cc=gbenson@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=iago@endocode.com \
/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