Status: New
Owner: ----
Labels: Type-Defect Priority-Medium
New issue 47 by
nuutti.k...@gmail.com: Adding "shell=true" to run
invocation does not work nicely with strace runner
http://code.google.com/p/fabricate/issues/detail?id=47
The idea of the "shell=true" argument is that the entire command line is
invoked via the shell. However, when StraceRunner is used, the independent
command-line arguments are merely appended to the strace line, converted to
a command-line. This means that a command like "touch foo.txt; touch
bar.txt" will result in strace invocation "strace -fo /tmp/tmp6VNsRF -e
trace=open,stat,stat64,lstat,lstat64,execve,exit_group,chdir,mkdir,rename,clone,vfork,fork,symlink,creat
touch foo.txt ; touch other.txt", which will mean that "bar.txt" does not
get marked as an output of the command: "touch foo.txt ; touch bar.txt":
{ "foo.txt": "output-d41d8cd98f00b204e9800998ecf8427e" }
The real fix is to instead translate such a line to "strace -fo
/tmp/tmp6VNsRF -e
trace=open,stat,stat64,lstat,lstat64,execve,exit_group,chdir,mkdir,rename,clone,vfork,fork,symlink,creat
/bin/sh -c 'touch foo.txt ; touch other.txt'", and not pass the shell=True
to the underlying subprocess.Popen.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings