Bug #2476
tmpfs namecache(?)
| 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.