On Sun, Dec 22, 2013 at 10:41 PM, Mike Shal <[email protected]> wrote:
> Hi Lee,
>
> On Fri, Dec 20, 2013 at 10:23 PM, Lee Winter <[email protected]>
> wrote:
>>
>> Recently I've been trying to use debug tools to understand what
>> happens to a software tool that is invoked by tup.  But the
>> .tup/mnt/@tupjob-#/ directories have been impenetrable.
>>
>> In fuse_fs.c I've disabled the pgid check so that other process groups
>> should be able to access the fuse directories in the same way the
>> tup-launched software tool accesses those directories.
>
>
> How did you disable the pgid check? I tried to just do a 'return 0;' in
> context_check() and I am able to access the .tup/mnt directory. Doing 'ls
> .tup/mnt' should show the root file-system, as should 'ls
> .tup/mnt/@tupjob-X'.

Exactly.  When context_check() always returns zero and the build step
takes forever then when I use ls -al I see:

in .tup/
    all the typical .tup files and directories
    mnt/

in .tup/mnt/
     copies of all of the root files and directories but the link
counts differ slightly
     NO SIGN OF @tupjob-#

I cannot detect @tupjob-#, (ls, df, etc.) but I can cd to it!

in tupjob-#/
    duplicate of the contents of mnt/

My prompt shows .../.tup/mnt/@tupjob-#.  And pwd show the same.  So I
think the cd worked.

I expected to find only the build directories under
.../tup/mnt/@tupjob-#/, so seeing the root files there was a bit
disconcerting.  Why are they in both .tup/mnt/ and in
.tup/mnt/tupjob-#/ ?

My /home/ is symlinked to /var/home/.  So cding to /home/ within
.tup/mnt/@tupjob-#/ fails with "no such directory".  But cding to
.tup/mnt/@tupjob-#//var/home works.  And from there I can cd down to
the build step working directory.

The issues are:
1. the invisibility of @tupjob-# within .tup/mnt/
2. the presence of all the root files within /tup/mnt/@tupjob-#/
3. how to get fuse to follow symlinks so that they are safe to use
within the build tree.

>> However, I'm not able to see or access anything under .tup/mnt/ from
>> other contexts.
>>
>> I'm certain that the directories exist because a build tool that
>> prints pwd or navigates around the fuse file system does have
>> apparently normal access to the whole fuse directory tree.
>>
>> Why is it that other tools, not launched by tup, cannot even detect
>> the existence of the directories under .tup/mnt/?
>
>
> Just a quick sanity check - you do have tup running while you do this,
> right? The file-system is mounted on demand when running an update, and
> unmounted when tup exits. Probably the easiest way to check is to add a
> command that does a 'sleep 50' or some large number so that you have time to
> poke around the file-system.

Yes.  I have  loop waiting for a file (not in the build tree) to exist.

> What are you ultimately trying to determine? Aside from the @tupjob paths
> appearing in pwd, is there something not behaving as you would expect?

I am trying to understand the pgids seen by context_check() when other
programs access the build directory tree.  Some of my debug tools do
not fit into a build step, so I need to run the build part way, pause
it, and then run the tools.

Eventually I hope to enhance context_check() so that it maintains a
(small) dynamic list of authorized pgids so external tools can be
used.

I am working on Debian 7.2.0 and using the tup sources from
approximately 2013-12-01.

Thanks for any light you can shed.

Lee Winter
Nashua, New Hampshire
United States of America

-- 
-- 
tup-users mailing list
email: [email protected]
unsubscribe: [email protected]
options: http://groups.google.com/group/tup-users?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"tup-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to