Mesos does not set the groups of the process correctly. There is a JIRA
ticket for that. It only set the gid. I believe that this could explain the
issue if your user is in a specific NFS group to be able go write.

See
https://issues.apache.org/jira/plugins/servlet/mobile#issue/MESOS-719
 On May 11, 2015 3:51 AM, "Paul Brett" <[email protected]> wrote:

> Can you check on the NFS server to see if the filesystem has been exported
> with the rootsquash option?  That's a commonly used option which converts
> root uid on NFS clients to nobody on the server.
>
> -- Paul Brett
> On May 10, 2015 5:15 PM, "Adam Bordelon" <[email protected]> wrote:
>
>> Go ahead and run `env` in your script too, and see if there are any
>> interesting differences when run via Marathon vs. directly.
>> Maybe you're running in a different shell?
>>
>> On Sun, May 10, 2015 at 2:21 PM, John Omernik <[email protected]> wrote:
>>
>>> I believe the slave IS running as root. FWIW when I ran the script from
>>> above as root, it did work as intended (created the files on the NFS
>>> share).
>>>
>>> On Sun, May 10, 2015 at 9:08 AM, Dick Davies <[email protected]>
>>> wrote:
>>>
>>>> Any idea what user mesos is running as? This could just be a
>>>> filesystem permission
>>>> thing (ISTR last time I used NFS mounts, they had a 'root squash'
>>>> option that prevented
>>>> local root from writing to the NFS mount).
>>>>
>>>> On 9 May 2015 at 22:13, John Omernik <[email protected]> wrote:
>>>> > I am not specifying isolators. The Default? :)  Is that a per slave
>>>> setting?
>>>> >
>>>> > On Sat, May 9, 2015 at 3:33 PM, James DeFelice <
>>>> [email protected]>
>>>> > wrote:
>>>> >>
>>>> >> What isolators are you using?
>>>> >>
>>>> >> On Sat, May 9, 2015 at 3:48 PM, John Omernik <[email protected]>
>>>> wrote:
>>>> >>>
>>>> >>> Marco... great idea... thank you.  I just tried it and it worked
>>>> when I
>>>> >>> had a /mnt/permtesting with the same permissions.  So it appears
>>>> something
>>>> >>> to do with NFS and Mesos (Remember I tested just NFS that worked
>>>> fine, it's
>>>> >>> the combination that is causing this).
>>>> >>>
>>>> >>> On Sat, May 9, 2015 at 1:09 PM, Marco Massenzio <
>>>> [email protected]>
>>>> >>> wrote:
>>>> >>>>
>>>> >>>> Out of my own curiousity (sorry, I have no fresh insights into the
>>>> issue
>>>> >>>> here) did you try to run the script and write to a non-NFS mounted
>>>> >>>> directory? (same ownership/permissions)
>>>> >>>>
>>>> >>>> This way we could at least find out whether it's something related
>>>> to
>>>> >>>> NFS, or a more general permission-related issue.
>>>> >>>>
>>>> >>>> Marco Massenzio
>>>> >>>> Distributed Systems Engineer
>>>> >>>>
>>>> >>>> On Sat, May 9, 2015 at 5:10 AM, John Omernik <[email protected]>
>>>> wrote:
>>>> >>>>>
>>>> >>>>> Here is the testing I am doing. I used a simple script (run.sh)
>>>> It
>>>> >>>>> writes the user it is running as to stderr (so it's the same log
>>>> as the
>>>> >>>>> errors from file writing) and then tries to make a directory in
>>>> nfs, and
>>>> >>>>> then touch a file in nfs.  Note: This script directly run  works
>>>> on every
>>>> >>>>> node.  You can see the JSON I used in marathon, and in the
>>>> sandbox results,
>>>> >>>>> you can see the user is indeed darkness and the directory cannot
>>>> be created.
>>>> >>>>> However when directly run, it the script, with the same user,
>>>> creates the
>>>> >>>>> directory with no issue.  Now,  I realize this COULD still be a
>>>> NFS quirk
>>>> >>>>> here, however, this testing points at some restriction in how
>>>> marathon kicks
>>>> >>>>> off the cmd.   Any thoughts on where to look would be very
>>>> helpful!
>>>> >>>>>
>>>> >>>>> John
>>>> >>>>>
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> Script:
>>>> >>>>>
>>>> >>>>> #!/bin/bash
>>>> >>>>> echo "Writing whoami to stderr for one stop logging" 1>&2
>>>> >>>>> whoami 1>&2
>>>> >>>>> mkdir /mapr/brewpot/mesos/storm/test/test1
>>>> >>>>> touch /mapr/brewpot/mesos/storm/test/test1/testing.go
>>>> >>>>>
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> Run Via Marathon
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> {
>>>> >>>>> "cmd": "/mapr/brewpot/mesos/storm/run.sh",
>>>> >>>>> "cpus": 1.0,
>>>> >>>>> "mem": 1024,
>>>> >>>>> "id": "permtest",
>>>> >>>>> "user": "darkness",
>>>> >>>>> "instances": 1
>>>> >>>>> }
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> I0509 07:02:52.457242  9562 exec.cpp:132] Version: 0.21.0
>>>> >>>>> I0509 07:02:52.462700  9570 exec.cpp:206] Executor registered on
>>>> slave
>>>> >>>>> 20150505-145508-1644210368-5050-8608-S0
>>>> >>>>> Writing whoami to stderr for one stop logging
>>>> >>>>> darkness
>>>> >>>>> mkdir: cannot create directory
>>>> `/mapr/brewpot/mesos/storm/test/test1':
>>>> >>>>> Permission denied
>>>> >>>>> touch: cannot touch
>>>> `/mapr/brewpot/mesos/storm/test/test1/testing.go':
>>>> >>>>> No such file or directory
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> Run Via Shell:
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> $ /mapr/brewpot/mesos/storm/run.sh
>>>> >>>>> Writing whoami to stderr for one stop logging
>>>> >>>>> darkness
>>>> >>>>> darkness@hadoopmapr1:/mapr/brewpot/mesos/storm$ ls ./test/
>>>> >>>>> test1
>>>> >>>>> darkness@hadoopmapr1:/mapr/brewpot/mesos/storm$ ls ./test/test1/
>>>> >>>>> testing.go
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> On Sat, May 9, 2015 at 3:14 AM, Adam Bordelon <[email protected]
>>>> >
>>>> >>>>> wrote:
>>>> >>>>>>
>>>> >>>>>> I don't know of anything inside of Mesos that would prevent you
>>>> from
>>>> >>>>>> writing to NFS. Maybe examine the environment variables set when
>>>> running as
>>>> >>>>>> that user. Or are you running in a Docker container? Those can
>>>> have
>>>> >>>>>> additional restrictions.
>>>> >>>>>>
>>>> >>>>>> On Fri, May 8, 2015 at 4:44 PM, John Omernik <[email protected]>
>>>> wrote:
>>>> >>>>>>>
>>>> >>>>>>> I am doing something where people may recommend against my
>>>> course of
>>>> >>>>>>> action. However, I am curious if there is "a way" basically I
>>>> have a process
>>>> >>>>>>> being kicked off in marathon that is trying to write to a nfs
>>>> location.  The
>>>> >>>>>>> permissions of the user running the task and the nfs location
>>>> are good. So
>>>> >>>>>>> what component of mesos or marathon is keeping me from writing
>>>> here ?  ( I
>>>> >>>>>>> am getting permission denied). Is this one of those things that
>>>> is just not
>>>> >>>>>>> allowed, or is there an option to pass to marathon to allow
>>>> this?  Thanks !
>>>> >>>>>>>
>>>> >>>>>>> --
>>>> >>>>>>> Sent from my iThing
>>>> >>>>>>
>>>> >>>>>>
>>>> >>>>>
>>>> >>>>
>>>> >>>
>>>> >>
>>>> >>
>>>> >>
>>>> >> --
>>>> >> James DeFelice
>>>> >> 585.241.9488 (voice)
>>>> >> 650.649.6071 (fax)
>>>> >
>>>> >
>>>>
>>>
>>>
>>

Reply via email to