Overv/outrun

/tmp permissions issue

gtrak opened this issue · 10 comments

gtrak commented

Trying to compile some ocaml and running into this, not sure where to begin to look.

$ outrun gary@gary-dev dune build
Error: open: /tmp/dune22fe0d.output: Permission denied

Thoughts?

I don't expect this to be fast due to i/o of lots of small files, but wanted to try it :-).

Overv commented

Can you run the command with --debug?

$ outrun --debug gary@gary-dev dune build

Trying to compile a simple c++ project and running into this as well.

$ outrun desktop make -B
dennis@192.168.1.6's password: 
[sudo] password for dennis: 
g++ src/World.cpp -c -o out/World.o
Cannot create temporary file in /tmp/: Permission denied
make: *** [Makefile:4: out/World.o] Aborted

with --debug

$ outrun --debug desktop make -B
2022-04-24 23:28:27,244 - DEBUG - running ['ssh', '-o', 'LogLevel=error', '-R', '30419:localhost:30419', '-R', '30666:localhost:30666', '-R', '30064:localhost:30064', '-tt', 'desktop', 'outrun', '--remote', '--unshare', '--protocol=1.0.0', '--platform=x86_64', '--config=~/.outrun/config', '--timeout=5000', '--environment-port=30419', '--filesystem-port=30666', '--debug', '--cache-port=30064', '.', '.']
dennis@192.168.1.6's password: 
[sudo] password for dennis: 
2022-04-24 23:28:33,912 - INFO - no config file at /home/dennis/.outrun/config
2022-04-24 23:28:34,045 - DEBUG - rpc::None() - 130 ms
2022-04-24 23:28:34,054 - DEBUG - rpc::None() - 3 ms
2022-04-24 23:28:34,056 - DEBUG - rpc::get_app_specific_machine_id() - 1 ms
2022-04-24 23:28:34,057 - DEBUG - rpc::set_prefetchable_paths("('/bin', '/sbin', '/lib', '/lib32', '/lib64', '/etc', '/opt', '/usr')",) - 1 ms
2022-04-24 23:28:34,103 - DEBUG - rpc::get_changed_metadata("{'/bin': Metadata(attr=Attributes(st_mode=41471, st_ino=5994, st_dev=32, st_nlink=1, st_uid=0, st_gid=0, st_size=7, st_atime_ns=1649240977658867761, st_mtime_ns=1626911226000000000, st_ctime_ns=1636810298359195756), link='usr/bin', error=None), '/usr/b...",) - 32 ms
2022-04-24 23:28:34,104 - DEBUG - rpc::mark_previously_fetched_contents("['/usr/bin/bash', '/usr/lib64/libtinfo.so.6.2', '/usr/lib64/libc.so.6', '/usr/lib64/ld-linux-x86-64.so.2', '/etc/ld.so.cache', '/usr/share/locale/locale.alias', '/usr/lib/locale/en_US.utf8/LC_IDENTIFICATION', '/usr/lib64/gconv/gconv-modules.cache', '/u...",) - 1 ms
2022-04-24 23:28:34,112 - DEBUG - rpc::getattr('/', 'None') - 3 ms
2022-04-24 23:28:34,116 - DEBUG - rpc::getattr('/dev', 'None') - 3 ms
2022-04-24 23:28:34,124 - DEBUG - rpc::getattr('/proc', 'None') - 1 ms
2022-04-24 23:28:34,133 - DEBUG - rpc::getattr('/sys', 'None') - 1 ms
2022-04-24 23:28:34,141 - DEBUG - rpc::getattr('/run', 'None') - 2 ms
2022-04-24 23:28:34,152 - DEBUG - rpc::get_command() - 3 ms
2022-04-24 23:28:34,153 - DEBUG - rpc::get_working_dir() - 1 ms
2022-04-24 23:28:34,155 - DEBUG - rpc::get_environment() - 1 ms
2022-04-24 23:28:34,159 - DEBUG - rpc::getattr('/home', 'None') - 1 ms
2022-04-24 23:28:34,160 - DEBUG - rpc::getattr('/home/dennis', 'None') - 1 ms
2022-04-24 23:28:34,162 - DEBUG - rpc::getattr('/home/dennis/Workspace', 'None') - 1 ms
2022-04-24 23:28:34,163 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl', 'None') - 1 ms
2022-04-24 23:28:34,232 - DEBUG - rpc::readdir('/home/dennis/Workspace/doolhof-sdl',) - 3 ms
2022-04-24 23:28:34,236 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/Makefile', 'None') - 3 ms
2022-04-24 23:28:34,239 - DEBUG - rpc::open('/home/dennis/Workspace/doolhof-sdl/Makefile', '32768') - 3 ms
2022-04-24 23:28:34,242 - DEBUG - rpc::read('47', '0', '4096') - 3 ms
2022-04-24 23:28:34,246 - DEBUG - rpc::flush('47',) - 3 ms
2022-04-24 23:28:34,251 - DEBUG - rpc::release('47',) - 4 ms
2022-04-24 23:28:34,251 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/src', 'None') - 4 ms
2022-04-24 23:28:34,252 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/RCS', 'None') - 1 ms
2022-04-24 23:28:34,253 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/SCCS', 'None') - 1 ms
2022-04-24 23:28:34,255 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/Makefile', 'None') - 1 ms
2022-04-24 23:28:34,256 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/default', 'None') - 1 ms
2022-04-24 23:28:34,257 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/bin', 'None') - 1 ms
2022-04-24 23:28:34,259 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/bin/doolhof', 'None') - 1 ms
2022-04-24 23:28:34,260 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/src/main.cpp', 'None') - 1 ms
2022-04-24 23:28:34,261 - DEBUG - rpc::readdir('/home/dennis/Workspace/doolhof-sdl/src',) - 1 ms
2022-04-24 23:28:34,283 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/src/RCS', 'None') - 21 ms
2022-04-24 23:28:34,284 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/src/SCCS', 'None') - 1 ms
2022-04-24 23:28:34,285 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/out', 'None') - 1 ms
2022-04-24 23:28:34,286 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/out/World.o', 'None') - 1 ms
2022-04-24 23:28:34,288 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/src/World.cpp', 'None') - 1 ms
2022-04-24 23:28:34,289 - DEBUG - rpc::getattr('/home/dennis/Workspace/doolhof-sdl/src/World.h', 'None') - 1 ms
g++ src/World.cpp -c -o out/World.o
2022-04-24 23:28:34,304 - DEBUG - rpc::getattr('/tmp', 'None') - 2 ms
2022-04-24 23:28:34,306 - DEBUG - rpc::getattr('/tmp/ccQ2MhmO.s', 'None') - 1 ms
2022-04-24 23:28:34,307 - DEBUG - rpc::create('/tmp/ccQ2MhmO.s', '32962', '33152') - 1 ms
2022-04-24 23:28:34,308 - DEBUG - rpc::getattr('/tmp/ccQ2MhmO.s', '52') - 1 ms
Cannot create temporary file in /tmp/: Permission denied
2022-04-24 23:28:34,309 - DEBUG - rpc::release('52',) - 1 ms
make: *** [Makefile:4: out/World.o] Aborted
Overv commented

Can you show the stat output of your /tmp?

This is stat /tmp on the remote machine ('desktop' in 'outrun desktop make -B' from above)

$ stat /tmp
  File: /tmp
  Size: 12288     	Blocks: 24         IO Block: 4096   directory
Device: 826h/2086d	Inode: 523266      Links: 15
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-04-22 14:53:22.410395315 +0200
Modify: 2022-05-09 20:49:21.605324570 +0200
Change: 2022-05-09 20:49:21.605324570 +0200
 Birth: 2022-04-13 15:06:59.364090920 +0200
Overv commented

And stat on the local machine?

stat /tmp on local machine

$ stat /tmp
  File: /tmp
  Size: 440       	Blocks: 0          IO Block: 4096   directory
Device: 29h/41d	Inode: 1           Links: 18
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:tmp_t:s0
Access: 2022-05-10 09:59:13.478963247 +0200
Modify: 2022-05-10 10:44:21.938478073 +0200
Change: 2022-05-10 10:44:21.938478073 +0200
 Birth: -

Local machine is on fedora 35 and remote on debian 11

Overv commented

Strange, I'll try to find the time to reproduce and investigate this.

Happening to me as well trying to compile linux, getting the following:

❯ outrun overcurrent make -j8
[sudo] password for typecasto:
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_64.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_32.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_x32.h
  SYSTBL  arch/x86/include/generated/asm/syscalls_32.h
  SYSHDR  arch/x86/include/generated/asm/unistd_32_ia32.h
  SYSHDR  arch/x86/include/generated/asm/unistd_64_x32.h
  HOSTCC  scripts/basic/fixdep
Cannot create temporary file in /tmp/: Permission denied
make[1]: *** [scripts/Makefile.host:95: scripts/basic/fixdep] Error 134
make: *** [Makefile:565: scripts_basic] Error 2
make: *** Waiting for unfinished jobs...