[CRIU] Ghost file: no such file or directory

Pavel Emelyanov xemul at virtuozzo.com
Wed Mar 30 08:15:20 PDT 2016


On 03/30/2016 06:10 PM, Tycho Andersen wrote:
> On Wed, Mar 30, 2016 at 06:04:04PM +0300, Pavel Emelyanov wrote:
>> On 03/30/2016 05:59 PM, Tycho Andersen wrote:
>>> On Wed, Mar 30, 2016 at 05:50:32PM +0300, Pavel Emelyanov wrote:
>>>> On 03/30/2016 05:46 PM, Tycho Andersen wrote:
>>>>> On Wed, Mar 30, 2016 at 05:26:15PM +0300, Pavel Emelyanov wrote:
>>>>>> On 03/30/2016 03:33 PM, Federico Reghenzani wrote:
>>>>>>> Hi all!
>>>>>>>
>>>>>>> We have problem restoring Open MPI daemons with child processes that uses shared memory:
>>>>>>>
>>>>>>> (00.022447)    255: Opening ghost file 0x3 for tmp/openmpi-sessions-root at roaster-vm3_0/60995/1/shared_mem_pool.roaster-vm3.1
>>>>>>> (00.022479)    255: Error (files-reg.c:139): Can't open ghost file //tmp/openmpi-sessions-root at roaster-vm3_0/60995/1/shared_mem_pool.roaster-vm3.1.cr.3.ghost: No such file or directory
>>>>>>
>>>>>> Can you check whether the \dirname of this path exists?
>>>>>> I mean this -- //tmp/openmpi-sessions-root at roaster-vm3_0/60995/1/
>>>>>>
>>>>>> Presumably this is the case when not only the file was removed, but also
>>>>>> some dir components. And we've fixed it only in 2.0.
>>>>>
>>>>> The users I had report it were using post 2.0, so there's some other
>>>>> bug here. I'm trying to reproduce now again, but not having any luck
>>>>> :(
>>>>
>>>> Do they also see the ENOENT errno from the open(O_CREAT) call?
>>>
>>> Which call do you mean here? I don't see anything close to this that
>>> does an O_CREAT on dump.
>>
>> Yes, because the error is on restore :) For 1.8 this is files-reg.c create_ghost()'s
> 
> Oh, derp, I misread the error. I've seen failures reported on dump
> here:
> 
> https://github.com/xemul/criu/blob/master/criu/files-reg.c#L628

Ouch! And what was the errno?! I can hardly imagine the reason for a regular
file open failure via proc :(

-- Pavel

> which are presumably unrelated to this bug :). Sorry for the noise.
> 
> Tycho
> 
>> 	gfd = open(path, ghost_flags, gfe->mode);
>>         if (gfd < 0) {
>>                 pr_perror("Can't open ghost file %s", path);
>>                 goto err;
>>         }
>>
>> -- Pavel
> .
> 



More information about the CRIU mailing list