Attaching 'serv.py' which mimics behavior of supervisor/http.py in supervisor for setting up the socket, and then implements an 'echo' server. client.py is just a simple client to run and show the problem.
One would expect to be able to do this:
$ ./serv.py /tmp/my-socket &
$ ./client.py /tmp/my-socket
Received 'Hello, world'
The behavior seems to differ between precise and saucy kernels.
One thing to note is that on precise kernel and overlayfs, I see:
$ sudo rm -f /tmp/my-socket
$ ./serv.py /tmp/my-socket
Traceback (most recent call last):
File "./serv.py", line 22, in <module>
os.link(tempname, socketname)
OSError: [Errno 1] Operation not permitted
Attaching 'serv.py' which mimics behavior of supervisor/http.py in supervisor for setting up the socket, and then implements an 'echo' server. client.py is just a simple client to run and show the problem.
One would expect to be able to do this:
$ ./serv.py /tmp/my-socket &
$ ./client.py /tmp/my-socket
Received 'Hello, world'
The behavior seems to differ between precise and saucy kernels.
One thing to note is that on precise kernel and overlayfs, I see:
$ sudo rm -f /tmp/my-socket
$ ./serv.py /tmp/my-socket link(tempname, socketname)
Traceback (most recent call last):
File "./serv.py", line 22, in <module>
os.
OSError: [Errno 1] Operation not permitted
$ sudo rm -f /tmp/my-socket
$ sudo ./serv.py /tmp/my-socket &
$ sudo ./client.py /tmp/my-socket
Received 'Hello, world'
Ie, this works as root, but not as non-root.