Bug #2476

tmpfs namecache(?)

Added by marino 5 months ago. Updated 5 months ago.

Status:New Start date:12/17/2012
Priority:Normal Due date:
Assignee:- % Done:

0%

Category:-
Target version:-

Description

Using cpdup, I directly copied a pfs snapshot to a tmpfs mount:
mount -t tmpfs tmpfs /path/to/mypoint
cpdup -x -i0 /path/to/snapshot/ /path/to/mypoint/
mount -t devfs devfs /path/to/mypoint/dev

(/path/to/snapshot/dev exists, is a directory, and is empty)

The final mount will fail unless a sleep command of a second or two is put between the cpdup and mount commands, or if something accesses mymount point like ls command.

Seems that this is an issue with tmpfs, possibly with namecache according to Venkatesh.


Related todos

History

Updated by marino 5 months ago

I think the "sleep" and "ls" part is a red herring. It fails sometimes with sleep of 1, 3, and 5 seconds.
It now appears that memory is never allocated, so the cpdup command ends immediately.

Strangely it seems to work every other time, e.g.
1st: yes
2nd: no
3rd: yes
4th: no

Run consecutively...
There is definitely something funny with tmpfs here.

Updated by marino 5 months ago

Okay, I figured out what was going on.
I will try to describe.

Take /pfs/mypfs
"rollback" /pfs/mypfs to a known clean configuration

What was intended:
mount /pfs/mypfs to /myworkarea
mkdir -p /myworkarea/build/01/
mount tmpfs to /myworkarea/build/01

What happened:
The "known clean configuration" got contaminated and had these directories in it: "/build/01"
so the mkdir -p step was ignored and mount tmpfs presumably mounted back to /pfs/mypfs/build/01

This worked sometimes, sometimes not. about 50%.

The "fix" is to restore the known clean configuration.
However, this might still be a bug.

Also available in: Atom PDF