[CRIU] crtools - TCP dumping within a network namespace

Dilip Daya dilip.daya at hp.com
Thu Apr 25 13:52:04 EDT 2013


On Thu, 2013-04-25 at 12:34 +0400, Cyrill Gorcunov wrote:
> On Thu, Apr 25, 2013 at 12:27:00PM +0400, Andrew Vagin wrote:
> > On Wed, Apr 24, 2013 at 10:43:38AM -0400, Dilip Daya wrote:
> > > Hi criu-developers:
> > >
> > 
> > Hello Dilip Daya,
> > 
> > I found a root cause of this problem.
> > 
> > > (00.002174) 3232 fdinfo 4: pos: 0xffffffffffffffff flags:           100000/0
> > > (00.002190) Dumping path for 4 fd via self 53 [net:[4026532312]]
> > 
> > [net:[4026532312]] is a magic file for a net namespce (/proc/PID/ns/net).
> > crtools doesn't support such files yet.  I'm going to fix crtools for
> > printing a clear error in this case.
> > 
> > Why is this file descriptor required for your program? Can it be closed?

This file descriptor is required for network-namespace to identify a
netns instance and cannot be closed. This file keeps the network
namespace of the process specified by PID alive. This file is bind
mounted to keep the network namespace alive without a process. So if you
close this file it would destroy the network-namespace.
See "man 5 proc" for details on /proc/[pid]/ns/net.

To answer your question of "why" I require this file, some background:
Some six months or so ago, I'd communicated with Pavil of my interest
in investigating socket level failover within a network namespace and
using TCP_REPAIR.  Seeing that I now have a few days on this topic I
revisited crtools to check its latest status and so started playing with
"tcp-howto".


> > 
> > Thanks.
> 
> Guys, maybe something like below for a while?

Thanks, Cyrill. I applied your patch and here is excerpt from dump.log:

--- img-dir/dump.log:
...
(00.026321) Dumping opened files (pid: 5840)
(00.026323) ----------------------------------------
pie: Parasite cmd 12/0xc process
(00.026383) 5840 fdinfo 0: pos: 0xffffffffffffffff flags:           100002/0
(00.026391) tty: Dumping tty 49 with id 0x1
pie: Parasite cmd 14/0xe process
(00.026464) fdinfo: type: 0x b flags: 0100002/0 pos: 0xffffffffffffffff fd: 0
(00.026473) 5840 fdinfo 1: pos: 0xffffffffffffffff flags:           100002/0
(00.026478) fdinfo: type: 0x b flags: 0100002/0 pos: 0xffffffffffffffff fd: 1
(00.026483) 5840 fdinfo 2: pos: 0xffffffffffffffff flags:           100002/0
(00.026486) fdinfo: type: 0x b flags: 0100002/0 pos: 0xffffffffffffffff fd: 2
(00.026492) 5840 fdinfo 3: pos: 0xffffffffffffffff flags:                2/0
(00.026498)     Searching for socket 2ac1 (family 16)
(00.026509) No filter for socket
(00.026522) fdinfo: type: 0x d flags: 02/0 pos: 0xffffffffffffffff fd: 3
(00.026529) 5840 fdinfo 4: pos: 0xffffffffffffffff flags:           100000/0
(00.026547) Dumping path for 4 fd via self 53 [net:[4026532332]]
(00.026557) Error (files-reg.c:349): No directory for original file found in net:[4026532332]. Unsupported file.
(00.026563) ----------------------------------------
(00.026566) Error (cr-dump.c:1454): Dump files (pid: 5840) failed with -1
pie: Parasite cmd 3/0x3 process
(00.026699) Unlock network
(00.026707) Unfreezing tasks into 1
(00.026709)     Unseizing 5840 into 1
(00.026748) Error (cr-dump.c:1640): Dumping FAILED.
---

At this time, the "# ./tcp-howto 10.27.82.60 2345" client was _not_
affected and continued its output.

So, I guess as you've all stated thus far, crtools is not supported
within a network-namespace as of yet.


Thanks.
-- 
-DilipD.



More information about the CRIU mailing list