For some reason on a certain MAC machine we use (Darwin Kernel Version 10.8.0, 32bit, STAF 3.4.6), saving a command that includes our php into a file and then attempting to execute the file, causes STAF to hang.
BUT, saving this cmd into say /tmp/bad (+ chmod 777) , and then running:
STAF local PROCESS START SHELL COMMAND "/tmp/bad" WAIT 60m RETURNSTDOUT RETURNSTDERR
causes STAF to hang. This problem does not occur on a another MAC machine we use (Darwin Kernel Version 11.1.0, 64bit).
Here's a dtruss of the cmd if it might be of help:
root@admins-imac:~$dtrussSTAFlocalPROCESSSTARTSHELLCOMMAND"/tmp/bad"WAIT60mRETURNSTDOUTRETURNSTDERRSYSCALL(args)=returngetpid(0x7FFF5FBFF2F0,0x7FFFFFE00050,0x0)=260330open_nocancel("/dev/urandom\0",0x0,0x0)=30read_nocancel(0x3,"\346\300\315\354d\256\212&\206 \330\245}{e\331\255\"S#\216W0\237\032\200|\206O\004\n\022U\245\260\356\306\300\027\006\225#\336\300\3528\323x\3765N5\330\224\"?|\321\312\224\377\270\275\314\001\037\204\034\021\226\275/\3513\203\200\231-p\360\340\241j[\312\347\263\235\337\3104\027\030\222S\267VH\362qR\361\031\004\245\226\320P\0",0x6C)=1080close_nocancel(0x3)=00issetugid(0x100000000,0x7FFF5FBFF668,0x7FFF5FC40530)=00geteuid(0x100000000,0x7FFF5FBFF668,0x0)=00__sysctl(0x7FFF5FBFD1E0,0x2,0x7FFF5FBFD1A0)=00__sysctl(0x7FFF5FBFD1A0,0x2,0x7FFF5FBFD23C)=00shared_region_check_np(0x7FFF5FBFD3A8,0x0,0x7FFF5FC1DC86)=00stat64("/usr/lib/dtrace/libdtrace_dyld.dylib\0",0x7FFF5FBFC7B0,0x7FFF5FBFCDF0)=00open("/usr/lib/dtrace/libdtrace_dyld.dylib\0",0x0,0x0)=30pread(0x3,"\312\376\272\276\0",0x1000,0x0)=40960pread(0x3,"\317\372\355\376\a\0",0x1000,0x1000)=40960mmap(0x100015000,0x2000,0x5,0x12,0x3,0x7FFF00000001)=0x150000mmap(0x100017000,0x1000,0x3,0x12,0x3,0x7FFF00000001)=0x170000mmap(0x100018000,0x1F10,0x1,0x12,0x3,0x7FFF00000001)=0x180000close(0x3)=00stat64("/usr/local/zend/lib/libSystem.B.dylib\0",0x7FFF5FBFC8E0,0x7FFF5FBFCB70)=-1Err#2stat64("/usr/local/zend/apache2/lib/libSystem.B.dylib\0",0x7FFF5FBFC8D0,0x7FFF5FBFCB70)=-1Err#2stat64("/usr/lib/libSystem.B.dylib\0",0x7FFF5FBFC8F0,0x7FFF5FBFCB70)=00stat64("/usr/local/zend/lib/libSTAF.dylib\0",0x7FFF5FBFC8E0,0x7FFF5FBFCB70)=-1Err#2stat64("/usr/local/zend/apache2/lib/libSTAF.dylib\0",0x7FFF5FBFC8E0,0x7FFF5FBFCB70)=-1Err#2stat64("/usr/lib/libSTAF.dylib\0",0x7FFF5FBFC8F0,0x7FFF5FBFCB70)=-1Err#2stat64("/usr/lib/libSTAF.dylib\0",0x7FFF5FBFC8F0,0x7FFF5FBFCB70)=-1Err#2stat64("/libSTAF.dylib\0",0x7FFF5FBFC8F0,0x7FFF5FBFCB70)=-1Err#2stat64("/Library/staf/lib/libSTAF.dylib\0",0x7FFF5FBFC8E0,0x7FFF5FBFCB70)=00open("/Library/staf/lib/libSTAF.dylib\0",0x0,0x0)=30pread(0x3,"\312\376\272\276\0",0x1000,0x0)=40960pread(0x3,"\317\372\355\376\a\0",0x1000,0xAE000)=40960mmap(0x10001A000,0x74000,0x5,0x12,0x3,0x7FFF00000001)=0x1A0000mmap(0x10008E000,0x2000,0x3,0x12,0x3,0x7FFF00000001)=0x8E0000mmap(0x100090000,0x40980,0x1,0x12,0x3,0x7FFF00000001)=0x900000fcntl(0x3,0x2C,0x7FFF5FBFAB10)=00close(0x3)=00stat64("/usr/local/zend/lib/libstdc++.6.dylib\0",0x7FFF5FBFC8E0,0x7FFF5FBFCB70)=-1Err#2stat64("/usr/local/zend/apache2/lib/libstdc++.6.dylib\0",0x7FFF5FBFC8D0,0x7FFF5FBFCB70)=-1Err#2stat64("/usr/lib/libstdc++.6.dylib\0",0x7FFF5FBFC8F0,0x7FFF5FBFCB70)=00stat64("/usr/local/zend/lib/libmathCommon.A.dylib\0",0x7FFF5FBFC790,0x7FFF5FBFCA20)=-1Err#2stat64("/usr/local/zend/apache2/lib/libmathCommon.A.dylib\0",0x7FFF5FBFC780,0x7FFF5FBFCA20)=-1Err#2stat64("/usr/lib/libmathCommon.A.dylib\0",0x7FFF5FBFC790,0x7FFF5FBFCA20)=-1Err#2stat64("/usr/lib/libmathCommon.A.dylib\0",0x7FFF5FBFC790,0x7FFF5FBFCA20)=-1Err#2stat64("/libmathCommon.A.dylib\0",0x7FFF5FBFC7A0,0x7FFF5FBFCA20)=-1Err#2stat64("/Library/staf/lib/libmathCommon.A.dylib\0",0x7FFF5FBFC790,0x7FFF5FBFCA20)=-1Err#2stat64("/Library/staf/lib/libmathCommon.A.dylib\0",0x7FFF5FBFC790,0x7FFF5FBFCA20)=-1Err#2stat64("/usr/lib/system/libmathCommon.A.dylib\0",0x7FFF5FBFC3E0,0x7FFF5FBFCA20)=00madvise(0x7FFF8AB53000,0x2000,0x5)=00open("/dev/dtracehelper\0",0x2,0x7FFF5FC45448)=30ioctl(0x3,0x80086804,0x7FFF5FBFD140)=00close(0x3)=00__sysctl(0x7FFF5FBFD030,0x2,0x7FFF5FBFD020)=00bsdthread_register(0x7FFF87F3FE7C,0x7FFF87F20A98,0x2000)=00thread_selfid(0x7FFF87F3FE7C,0x7FFF87F20A98,0x0)=962890open_nocancel("/dev/urandom\0",0x0,0x7FFF70F5EC00)=30read_nocancel(0x3,"\036V\342\351\024'o\025)\334\311\200\260\3056\345e\006\241\200\251\307z\341)\356\253M\3605\240,}\022V\222\341a^\201a\2321%\231\234\250\325\222\343\256\253KF,\271\220\252\267\024{|\026S\0",0x40)=640close_nocancel(0x3)=00mmap(0x0,0x3000,0x3,0x1002,0x1000000,0x7FFF00000001)=0xD10000__sysctl(0x7FFF5FBFCEB0,0x2,0x7FFF5FBFCE70)=00__sysctl(0x7FFF5FBFCE70,0x2,0x7FFF5FBFCF08)=00getpid(0x7FFF5FBFCE00,0x7FFFFFE00050,0x0)=260330open_nocancel("/dev/urandom\0",0x0,0x0)=30read_nocancel(0x3,"\375F\364\310\221, \356\367\005\0063\035\250\255\034\2327/8@/\031\213\256\032r2Q\\\321\026\327b)<[\247E +b8Ye\341\272e\300:o\037\032\323\370\340\312\b\310\276%\266_\330\\X*cF\005x\312\367\356\207\345\020\323R`\252\032\315\356Qs\225\203\020P-\323OGx\207@\322\226Q\255 ?\200\305\023i\266\0",0x6C)=1080close_nocancel(0x3)=00__sysctl(0x7FFF5FBFCEB0,0x2,0x7FFF5FBFCEDC)=00mmap(0x0,0x17000,0x3,0x1002,0x1000000,0x7FFF00000001)=0xD40000mmap(0x0,0x17000,0x3,0x1002,0x1000000,0x7FFF00000001)=0xEB0000mmap(0x0,0x1000,0x3,0x1002,0x1000000,0x7FFF00000001)=0x1020000mmap(0x0,0x200000,0x3,0x1002,0x7000000,0x7FFF00000001)=0x1030000munmap(0x100103000,0xFD000)=00munmap(0x100300000,0x3000)=00__sysctl(0x7FFF5FBFD010,0x2,0x7FFF5FBFCFD0)=00__sysctl(0x7FFF5FBFCFD0,0x2,0x7FFF70F6B7A0)=00__sysctl(0x7FFF5FBFD010,0x2,0x7FFF5FBFCFD0)=00__sysctl(0x7FFF5FBFCFD0,0x2,0x7FFF70F6B7A4)=00__sysctl(0x7FFF5FBFD010,0x2,0x7FFF5FBFCFD0)=00__sysctl(0x7FFF5FBFCFD0,0x2,0x7FFF70F6B7A8)=00mmap(0x0,0x3000,0x3,0x1002,0x1000000,0x7FFF00000001)=0x1030000__sysctl(0x7FFF5FBFCFE0,0x2,0x7FFF5FBFCFA0)=00__sysctl(0x7FFF5FBFCFA0,0x2,0x7FFF5FBFD038)=00__sysctl(0x7FFF5FBFCFE0,0x2,0x7FFF5FBFD00C)=00mmap(0x0,0x17000,0x3,0x1002,0x1000000,0x7FFF00000001)=0x1060000mmap(0x0,0x17000,0x3,0x1002,0x1000000,0x7FFF00000001)=0x11D0000mmap(0x0,0x200000,0x3,0x1002,0x7000000,0x7FFF00000001)=0x3000000munmap(0x100400000,0x100000)=00recvfrom(0x6,0x100802618,0x4)=40sendto(0x6,0x100802618,0x4)=40sendto(0x6,0x100802618,0x4)=40sendto(0x6,0x100802618,0xB)=110recvfrom(0x6,0x100802618,0x4)=40recvfrom(0x6,0x100802618,0x4)=40close(0x6)=00socket(0x1,0x1,0x0)=60fcntl(0x6,0x1,0x5FBFD9CC)=00fcntl(0x6,0x2,0x1)=00fcntl(0x6,0x3,0x0)=20fcntl(0x6,0x4,0x6)=00connect(0x6,0x7FFF5FBFE9F0,0x6A)=00fcntl(0x6,0x3,0x0)=60fcntl(0x6,0x4,0x2)=00sendto(0x6,0x100802618,0x8)=80recvfrom(0x6,0x100802618,0x4)=40sendto(0x6,0x100802618,0x63)=990mmap(0x0,0x1000000,0x3,0x1002,0x2000000,0x100000000)=0x4000000munmap(0x100400000,0x400000)=00munmap(0x101000000,0x400000)=00dup(0x2,0x17,0x2)=30dup(0x1,0x17,0x0)=40dup(0x0,0x17,0x0)=50getgid(0x0,0x17,0x0)=00getuid(0x0,0x17,0x0)=00getrlimit(0x1008,0x7FFF5FBFC290,0x7FFF87F0A2EC)=00open_nocancel("/Library/staf/codepage/alias.txt\0",0x0,0x1B6)=60read(0x6,"#This is an alias file used by the character set converter\n#format:\n#Actual File Name || Algorithm name alias1 alias2 ...\n#except for column1(file names) case insensitive\n\n# Algorithmic: DO NOT CHANGE LEFT COLUMN OF ALGORITHMIC CONVERTERS\nUTF8 ",0x3FF)=10230read(0x6,"in2 iso-ir-101 iso_8859-2:1987 # Central Europe\nibm-913 iso-8859-3 iso_8859-3 latin3 cp913 ibm913 8859-3 csisolatin3 iso-ir-109 iso_8859-3:1988 # Maltese Esperanto\nibm-914 iso-8859-4 iso_8859-4 latin4 cp914 ibm914 8859-4 csisolatin4 iso-i",0x3FF)=10230read(0x6,"iso_8859-15 iso8859-15 latin9 cp923 ibm923 8859-15 latin0 csisolatin0 csisolatin9 # Latin 9\nibm-1252 windows-1252 cp1252 ibm-1004 cp1004 # Windows Latin 1\nibm-943 shift_jis sjis shiftjis shift-jis ibm943 cp943 ibm-932 ibm-932 ",0x3FF)=10230read(0x6,"49 ksc korean # Korean KSC\nibm-1383 euc-cn euccn ibm-eucCN # China EUC\n#ibm-1162 tis-620 cp874 windows-874 ms874 # Thai (w/ euro support)\nibm-874\t #same as 1162 (w/o euro update)\n\n# ",0x3FF)=10230read(0x6,"\t\t# PC Hebrew (w/o euro update)\nibm-863 ibm863 cp863 # PC Canadian French\nibm-17248\tcp864 # PC Arabic (w/ euro update)\nibm-864\t\t# PC Arabic (w/o euro update)\nibm-865 ibm865 cp865 # PC Nordic\nibm-808\t\tcp866 ",0x3FF)=10230read(0x6,"53 # Windows Greek (w/ euro update)\nibm-5350 windows-1254 cp1254 # Windows Turkish (w/ euro update)\nibm-5351 windows-1255 cp1255 # Windows Hebrew (w/ euro update)\nibm-5352 windows-1256 cp1256 # Windows Arabic (w/ euro up",0x3FF)=10230read(0x6,"-1282 macce # Apple Central Europe\nibm-1283 maccy # Apple Cyrillic\nibm-834 #Korean Host DBCS\n# EBCDIC codepages\n\nibm-16804 ibm-420 ebcdic-ar cp420 # EBCDIC Arabic (w/ euro update)\ni",0x3FF)=10230read(0x6,"73 # EBCDIC Germanay, Austria... (w/ euro update)\nibm-1142 ebcdic-dk cp277 # EBCDIC Denmark... (w/ euro update)\nibm-1143 ebcdic-sv cp278 # EBCDIC Sweden (w/ euro update)\nibm-1144 ebcdic-it cp280 # EBCDIC",0x3FF)=10230read(0x6,"1\t # EBCDIC Iceland (w/o euro update)\n# Added for more euro support\nibm-1149 ebcdic-is cp871 # EBCDIC Iceland (w/ euro update)\nibm-1154\tcp1025\t\t\t# EBCDIC Cyrillic Multilingual (w/ euro update)\nibm-1153\tcp870\t\t\t\t# EBCDIC latin 2 (w/ eur",0x3FF)=10230read(0x6," euro update)\nibm-1399\tcp939\t\t\t# Host MBCS (Latin-Kanji) (w/ euro update)\nibm-4930\tcp4930\t\t\t# Korean DBCS Host (w/ euro update)\nibm-1364\tcp1364\t # Korean Host Mixed (w/ euro update)\nibm-1362\tcp1362\t # Korean Windows DBCS (w/ euro update)\nibm-13",0x3FF)=6690read(0x6,"\0",0x3FF)=00close_nocancel(0x6)=00stat64("/usr/local/zend/lib/libSTAFLIPC.dylib\0",0x7FFF5FBFE0C0,0x7FFF5FBFE350)=-1Err#2stat64("/usr/local/zend/apache2/lib/libSTAFLIPC.dylib\0",0x7FFF5FBFE0B0,0x7FFF5FBFE350)=-1Err#2stat64("/usr/lib/libSTAFLIPC.dylib\0",0x7FFF5FBFE0D0,0x7FFF5FBFE350)=-1Err#2stat64("/usr/lib/libSTAFLIPC.dylib\0",0x7FFF5FBFE0D0,0x7FFF5FBFE350)=-1Err#2stat64("/libSTAFLIPC.dylib\0",0x7FFF5FBFE0D0,0x7FFF5FBFE350)=-1Err#2stat64("/Library/staf/lib/libSTAFLIPC.dylib\0",0x7FFF5FBFE0C0,0x7FFF5FBFE350)=00open("/Library/staf/lib/libSTAFLIPC.dylib\0",0x0,0x0)=60pread(0x6,"\312\376\272\276\0",0x1000,0x0)=40960pread(0x6,"\317\372\355\376\a\0",0x1000,0x10000)=40960mmap(0x100134000,0xB000,0x5,0x12,0x6,0x100000000)=0x1340000mmap(0x10013F000,0x1000,0x3,0x12,0x6,0x100000000)=0x13F0000mmap(0x100140000,0x2E30,0x1,0x12,0x6,0x100000000)=0x1400000close(0x6)=00socket(0x1,0x1,0x0)=60fcntl(0x6,0x1,0x5FBFDAFC)=00fcntl(0x6,0x2,0x1)=00fcntl(0x6,0x3,0x0)=20fcntl(0x6,0x4,0x6)=00connect(0x6,0x7FFF5FBFEB20,0x6A)=00fcntl(0x6,0x3,0x0)=60fcntl(0x6,0x4,0x2)=00sendto(0x6,0x100802618,0x4)=40sendto(0x6,0x100802618,0x4)=40
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Forgot to mention that other commands I place in such file for work, such as 'date -u' (or even executing 'php -v' using the php binary provided by apple).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
By hang I meant that STAF does not return any output given a reasonable timeout.
Indeed, adding the STDIN /tmp/empty.txt bit seems to workaround the problem - thx !
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
For some reason on a certain MAC machine we use (Darwin Kernel Version 10.8.0, 32bit, STAF 3.4.6), saving a command that includes our php into a file and then attempting to execute the file, causes STAF to hang.
that is:
BUT, saving this cmd into say /tmp/bad (+ chmod 777) , and then running:
STAF local PROCESS START SHELL COMMAND "/tmp/bad" WAIT 60m RETURNSTDOUT RETURNSTDERR
causes STAF to hang. This problem does not occur on a another MAC machine we use (Darwin Kernel Version 11.1.0, 64bit).
Here's a dtruss of the cmd if it might be of help:
Forgot to mention that other commands I place in such file for work, such as 'date -u' (or even executing 'php -v' using the php binary provided by apple).
What do you mean by this causes STAF to hang? Do you mean that the STAF PROCESS START request never completes?
Are you sure that the file you are running via the STAF PROCESS START command has been closed?
Does adding option STDIN and specifying the name of a file that you create that contains nothing resolve the problem? For example:
touch /tmp/empty.txt
STAF local PROCESS START SHELL COMMAND /tmp/bad RETURNSTDOUT RETURNSTDERR STDIN /tmp/emptry.txt WAIT
By hang I meant that STAF does not return any output given a reasonable timeout.
Indeed, adding the STDIN /tmp/empty.txt bit seems to workaround the problem - thx !