Hi,
Does anyone know a way of making vim preserve ZFS NFSv4 ACLS?
Without disabling file backups in vim that is.
Thanks in advanced.
Hi,
Does anyone know a way of making vim preserve ZFS NFSv4 ACLS?
Without disabling file backups in vim that is.
Thanks in advanced.
What OS are you running VIM on?
Hi,
This is running on Solaris 11.2 vim 7.3.600
Cheers.
Could you post the output from truss, while you use vim to edit and save a file in a way that destroys the NFSv4 ACLs?
truss -f -a -vall -l -d -o /truss/output/file vim /file/with/nfsv4/acls
Hi,
Thanks for answering,
# ls -V 1
-rw-r--r--+ 1 root root 9 Mar 20 08:13 1
user:lp:rwxp----------:fd-----:allow
owner@:rw-p--aARWcCos:-------:allow
group@:r-----a-R-c--s:-------:allow
everyone@:r-----a-R-c--s:-------:allow
# truss -f -a -vall -l -d -o truss.out vim 1
# ls -V 1
-rw-r--r-- 1 root root 15 Mar 20 08:15 1
owner@:rw-p--aARWcCos:-------:allow
group@:r-----a-R-c--s:-------:allow
everyone@:r-----a-R-c--s:-------:allow
This is what it does to the backup and original files
339/1: 0.0154 stat64("1", 0xFFBFFA08) = 0
339/1: 0.0207 read(3, "1A01 '\0 &\01F\0 i01DD02".., 4097) = 1607
339/1: 0.0280 write(1, "1B @ 01B [ ? 4 s1B [ ? 4".., 23) = 23
339/1: 0.0306 stat64("1", 0xFFBFF768) = 0
339/1: 0.0308 stat64("1", 0xFFBFF970) = 0
339/1: 0.0310 access("1", W_OK) = 0
339/1: 0.0311 open64("1", O_RDONLY) = 5
339/1: 0.0312 readlink("1", 0xFFBFEEA0, 1023) Err#22 EINVAL
339/1: 0.0345 open64("1", O_RDONLY) = 5
339/1: 0.0348 write(1, "1B [ 1 ; 3 6 r1B [ m1B [".., 27) = 27
339/1: 0.0373 write(1, "1B [ 1 ; 1 H s a d f s f".., 2047) = 2047
339/1: 1.6248 write(1, "1B [ m s s a d f s f d :".., 14) = 14
339/1: 2.1109 read(0, "1B", 4096) = 1
339/1: 2.2635 write(1, "1B [ 3 6 ; 1 H1B [ K1B [".., 18) = 18
339/1: 2.6966 stat64("1", 0xFFBFF198) = 0
339/1: 2.6969 access("1", W_OK) = 0
339/1: 2.6983 pathconf("1", _PC_ACL_ENABLED) = 2
339/1: 2.6984 acl("1", ACE_GETACLCNT, 0, 0x00000000) = 5
339/1: 2.6985 stat64("1", 0xFFBFED78) = 0
339/1: 2.6987 acl("1", ACE_GETACL, 5, 0x00302118) = 5
339/1: 2.6990 open64("1", O_RDONLY) = 5
339/1: 2.6992 stat64("1~", 0xFFBFEF58) Err#2 ENOENT
339/1: 2.6993 unlink("1~") Err#2 ENOENT
339/1: 2.6996 open64("1~", O_WRONLY|O_CREAT|O_EXCL|O_NOFOLLOW, 0644) = 7
339/1: 2.6997 chmod("1~", 0644) = 0
339/1: 2.7008 utimensat(AT_FDCWD, "1~", 0xFFBFEE68, 0) = 0
339/1: 2.7010 stat64("1~", 0xFFBFED88) = 0
339/1: 2.7012 pathconf("1~", _PC_ACL_ENABLED) = 2
339/1: 2.7013 acl("1~", ACE_SETACL, 5, 0x00302118) = 0
339/1: 2.7016 open64("1", O_WRONLY|O_CREAT|O_TRUNC, 0644) = 5
339/1: 2.7074 chmod("1", 0100644) = 0
339/1: 2.7085 unlink("1~") = 0
339/1: 2.7090 write(1, "1B @ 01B [ ? 4 r", 8) = 8
And here is the truss full output
Base time stamp: 1426839335.2324 [ Fri Mar 20 08:15:35 GMT 2015 ]
339/1: 0.0000 execve("/usr/bin/vim", 0xFFBFFD84, 0xFFBFFD90) argc = 2
339/1: argv: vim 1
339/1: 0.0039 sysinfo(SI_MACHINE, "sun4v", 257) = 6
339/1: 0.0040 mmap(0x00000000, 32, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFF390000
339/1: 0.0042 mmap(0x00000000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFF380000
339/1: 0.0043 memcntl(0xFF3A0000, 39820, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
339/1: 0.0045 mmap(0x00000000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFF370000
339/1: 0.0046 memcntl(0x00010000, 285936, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
339/1: 0.0047 resolvepath("/usr/bin/vim", "/usr/bin/vim", 1023) = 12
339/1: 0.0051 resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
339/1: 0.0052 stat64("/usr/bin/vim", 0xFFBFF8A0) = 0
339/1: d=0x0475001C i=50728 m=0100555 l=1 u=0 g=2 sz=2923008
339/1: at = Mar 20 08:15:35 GMT 2015 [ 1426839335.236939230 ]
339/1: mt = Nov 22 08:37:56 GMT 2014 [ 1416645476.000000000 ]
339/1: ct = Mar 13 19:12:17 GMT 2015 [ 1426273937.248712840 ]
339/1: bsz=131072 blks=5897 fs=zfs
339/1: 0.0055 open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
339/1: 0.0056 stat64("/lib/libc.so.1", 0xFFBFF008) = 0
339/1: d=0x0475001C i=74335 m=0100755 l=1 u=0 g=2 sz=1835040
339/1: at = Mar 20 08:15:35 GMT 2015 [ 1426839335.225768700 ]
339/1: mt = Nov 22 08:37:38 GMT 2014 [ 1416645458.000000000 ]
339/1: ct = Mar 13 19:11:09 GMT 2015 [ 1426273869.521863540 ]
339/1: bsz=131072 blks=3847 fs=zfs
339/1: 0.0058 resolvepath("/lib/libc.so.1", "/lib/libc.so.1", 1023) = 14
339/1: 0.0059 open("/lib/libc.so.1", O_RDONLY) = 3
339/1: 0.0061 mmapobj(3, MMOBJ_INTERPRET, 0xFF380A08, 0xFFBFF09C, 0x00000000) = 0
339/1: 0.0062 close(3) = 0
339/1: 0.0063 mmap(0x00000000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFF360000
339/1: 0.0064 memcntl(0xF6F00000, 255512, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
339/1: 0.0067 stat64("/lib/libncurses.so.5", 0xFFBFED08) Err#2 ENOENT
339/1: 0.0069 stat64("/usr/lib/libncurses.so.5", 0xFFBFED08) = 0
339/1: d=0x0475001C i=50262 m=0100555 l=1 u=0 g=2 sz=605484
339/1: at = Mar 20 08:13:15 GMT 2015 [ 1426839195.490458940 ]
339/1: mt = Nov 22 08:37:54 GMT 2014 [ 1416645474.000000000 ]
339/1: ct = Mar 13 19:13:24 GMT 2015 [ 1426274004.496726770 ]
339/1: bsz=131072 blks=1285 fs=zfs
339/1: 0.0070 resolvepath("/usr/lib/libncurses.so.5", "/usr/lib/libncurses.so.5.7", 1023) = 26
339/1: 0.0071 open("/usr/lib/libncurses.so.5", O_RDONLY) = 3
339/1: 0.0073 mmapobj(3, MMOBJ_INTERPRET, 0xFF362ED8, 0xFFBFED9C, 0x00000000) = 0
339/1: 0.0074 close(3) = 0
339/1: 0.0075 memcntl(0xFF2E0000, 64312, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
339/1: 0.0076 stat64("/usr/gnu/lib/libc.so.1", 0xFFBFEC20) Err#2 ENOENT
339/1: 0.0089 mmap(0x00010000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF2D0000
339/1: 0.0091 getcontext(0xFFBFF718)
339/1: 0.0092 getrlimit(RLIMIT_STACK, 0xFFBFF708) = 0
339/1: cur = 8388608 max = RLIM_INFINITY
339/1: 0.0093 getpid() = 339 [338]
339/1: 0.0094 setustack(0xFF2D2AC8)
339/1: 0.0097 brk(0x00000000) = 0x00300000
339/1: 0.0098 brk(0x00300000) = 0x00000000
339/1: 0.0099 brk(0x00304000) = 0x00000000
339/1: 0.0100 sigaltstack(0x002F4870, 0x00000000) = 0
339/1: new: sp=0x00300008 size=8192 flags=0x0000
339/1: 0.0109 stat64("/usr/share/vim/vim73", 0xFFBFFA28) = 0
339/1: d=0x0475001C i=1639 m=0040755 l=3 u=0 g=2 sz=3
339/1: at = Mar 19 18:33:35 GMT 2015 [ 1426790015.992858610 ]
339/1: mt = Nov 29 10:52:04 GMT 2013 [ 1385722324.796366220 ]
339/1: ct = Nov 29 10:52:04 GMT 2013 [ 1385722324.796366220 ]
339/1: bsz=512 blks=3 fs=zfs
339/1: 0.0112 brk(0x00304000) = 0x00000000
339/1: 0.0112 brk(0x00306000) = 0x00000000
339/1: 0.0115 ioctl(1, TCGETA, 0xFFBFFB8C) = 0
339/1: iflag=0022402 oflag=0014005 cflag=0000277 lflag=0105073 line=0
339/1: cc: 003 034 177 025 004 000 000 000
339/1: 0.0119 brk(0x00306000) = 0x00000000
339/1: 0.0119 brk(0x00308000) = 0x00000000
339/1: 0.0124 getcwd("/net/sysadm-nfs/sysmsol/catalogue/scripts", 1024) = 0
339/1: 0.0126 chdir("/net/sysadm-nfs/sysmsol/catalogue/scripts") = 0
339/1: 0.0127 chdir("/root") = 0
339/1: 0.0128 getcwd("/root", 1025) = 0
339/1: 0.0129 chdir("/net/sysadm-nfs/sysmsol/catalogue/scripts") = 0
339/1: 0.0133 sysconfig(_CONFIG_PAGESIZE) = 8192
339/1: 0.0134 sysconfig(_CONFIG_PHYS_PAGES) = 2097152
339/1: 0.0134 getrlimit64(RLIMIT_DATA, 0xFFBFFB60) = 0
339/1: cur = RLIM64_INFINITY max = RLIM64_INFINITY
339/1: 0.0137 getuid() = 0 [0]
339/1: 0.0143 stat64("/usr/share/vim", 0xFFBFF960) = 0
339/1: d=0x0475001C i=1638 m=0040755 l=3 u=0 g=2 sz=3
339/1: at = Mar 19 18:33:35 GMT 2015 [ 1426790015.992876110 ]
339/1: mt = Nov 29 10:52:04 GMT 2013 [ 1385722324.795331160 ]
339/1: ct = Nov 29 10:52:04 GMT 2013 [ 1385722324.795331160 ]
339/1: bsz=512 blks=3 fs=zfs
339/1: 0.0146 brk(0x00308000) = 0x00000000
339/1: 0.0147 brk(0x00308000) = 0x00000000
339/1: 0.0148 brk(0x0030A000) = 0x00000000
339/1: 0.0153 getcwd("/net/sysadm-nfs/sysmsol/catalogue/scripts", 1024) = 0
339/1: 0.0154 stat64("1", 0xFFBFFA08) = 0
339/1: d=0x04750024 i=5650 m=0100644 l=1 u=0 g=0 sz=9
339/1: at = Mar 20 08:13:19 GMT 2015 [ 1426839199.378227980 ]
339/1: mt = Mar 20 08:13:19 GMT 2015 [ 1426839199.378895980 ]
339/1: ct = Mar 20 08:13:19 GMT 2015 [ 1426839199.384427800 ]
339/1: bsz=512 blks=2 fs=lofs
339/1: 0.0160 sigfillset(0xF707ADD4) = 0
339/1: sigmask = 0xFFFFFFFF 0xFFFFFFFF 0x000000FF 0
339/1: 0.0162 schedctl() = 0xFF2C4000
339/1: 0.0163 sigaction(SIGWINCH, 0xFFBFFA40, 0xFFBFFB00) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0000
339/1: old: hand = 0x00000000 mask = 0 0 0 0 flags = 0x0000
339/1: 0.0164 lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000, 0x00000000, 0x00000000) = 0xFFBFFEFF [0xFFFFFFFF]
339/1: 0.0166 sigaction(SIGTSTP, 0xFFBFFA40, 0xFFBFFB00) = 0
339/1: new: hand = 0x00000000 mask = 0 0 0 0 flags = 0x0004
339/1: old: hand = 0x00000000 mask = 0 0 0 0 flags = 0x0000
339/1: 0.0167 lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000, 0x00000000, 0x00000000) = 0xFFBFFEFF [0xFFFFFFFF]
339/1: 0.0168 sigaction(SIGPIPE, 0xFFBFFA40, 0xFFBFFB00) = 0
339/1: new: hand = 0x00000001 mask = 0 0 0 0 flags = 0x0000
339/1: old: hand = 0x00000000 mask = 0 0 0 0 flags = 0x0000
339/1: 0.0169 lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000, 0x00000000, 0x00000000) = 0xFFBFFEFF [0xFFFFFFFF]
339/1: 0.0170 sigaction(SIGINT, 0xFFBFF9E0, 0xFFBFFAA0) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0000
339/1: old: hand = 0x00000000 mask = 0 0 0 0 flags = 0x0000
339/1: 0.0171 lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000, 0x00000000, 0x00000000) = 0xFFBFFEFF [0xFFFFFFFF]
339/1: 0.0171 sigaction(SIGALRM, 0xFFBFFA40, 0xFFBFFB00) = 0
339/1: new: hand = 0x00000001 mask = 0 0 0 0 flags = 0x0000
339/1: old: hand = 0x00000000 mask = 0 0 0 0 flags = 0x0000
339/1: 0.0173 lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000, 0x00000000, 0x00000000) = 0xFFBFFEFF [0xFFFFFFFF]
339/1: 0.0173 sigaction(SIGPWR, 0xFFBFFA40, 0xFFBFFB00) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0000
339/1: old: hand = 0x00000000 mask = 0 0 0 0 flags = 0x0000
339/1: 0.0175 lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000, 0x00000000, 0x00000000) = 0xFFBFFEFF [0xFFFFFFFF]
339/1: 0.0175 sigaction(SIGHUP, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0176 sigaction(SIGQUIT, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0177 sigaction(SIGILL, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0178 sigaction(SIGTRAP, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0179 sigaction(SIGABRT, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0180 sigaction(SIGEMT, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0182 sigaction(SIGFPE, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0183 sigaction(SIGBUS, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0184 sigaction(SIGSEGV, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0185 sigaction(SIGSYS, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0186 sigaction(SIGTERM, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0187 sigaction(SIGPROF, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0188 sigaction(SIGXCPU, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0189 sigaction(SIGXFSZ, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0190 sigaction(SIGUSR1, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0191 sigaction(SIGUSR2, 0xFFBFFA78, 0x00000000) = 0
339/1: new: hand = 0xF6FCB32C mask = 0xFFBFFEFF 0xFFFFFFFF 0x000000FF 0 flags = 0x0001
339/1: 0.0192 ioctl(0, TCGETA, 0xFFBFFB24) = 0
339/1: iflag=0022402 oflag=0014005 cflag=0000277 lflag=0105073 line=0
339/1: cc: 003 034 177 025 004 000 000 000
339/1: 0.0197 ioctl(1, TCGETA, 0xFFBFEDC4) = 0
339/1: iflag=0022402 oflag=0014005 cflag=0000277 lflag=0105073 line=0
339/1: cc: 003 034 177 025 004 000 000 000
339/1: 0.0200 stat64("/root/.terminfo", 0xFFBFDCD0) Err#2 ENOENT
339/1: 0.0202 stat64("/usr/gnu/share/terminfo", 0xFFBFDCD0) = 0
339/1: d=0x0475001C i=270 m=0040755 l=44 u=0 g=2 sz=44
339/1: at = Mar 19 18:36:18 GMT 2015 [ 1426790178.284152340 ]
339/1: mt = Nov 29 10:52:02 GMT 2013 [ 1385722322.614041560 ]
339/1: ct = Nov 29 10:52:02 GMT 2013 [ 1385722322.614041560 ]
339/1: bsz=3072 blks=5 fs=zfs
339/1: 0.0204 access("/usr/gnu/share/terminfo/x/xtermc", R_OK) = 0
339/1: 0.0205 open64("/usr/gnu/share/terminfo/x/xtermc", O_RDONLY) = 3
339/1: 0.0207 read(3, "1A01 '\0 &\01F\0 i01DD02".., 4097) = 1607
339/1: 0.0208 brk(0x0030A000) = 0x00000000
339/1: 0.0209 brk(0x0030C000) = 0x00000000
339/1: 0.0210 close(3) = 0
339/1: 0.0211 ioctl(1, TCGETA, 0xFFBFEDC4) = 0
339/1: iflag=0022402 oflag=0014005 cflag=0000277 lflag=0105073 line=0
339/1: cc: 003 034 177 025 004 000 000 000
339/1: 0.0213 ioctl(1, TCGETS, 0x00307530) = 0
339/1: iflag=0022402 oflag=0014005 cflag=03600277 lflag=0105073
339/1: cc: 003 034 177 025 004 000 000 000
339/1: 021 023 032 031 022 017 027 026 000 000 000
339/1: 0.0215 ioctl(1, TCGETA, 0xFFBFED5C) = 0
339/1: iflag=0022402 oflag=0014005 cflag=0000277 lflag=0105073 line=0
339/1: cc: 003 034 177 025 004 000 000 000
339/1: 0.0216 ioctl(1, TIOCGWINSZ, 0xFFBFEDD0) = 0
339/1: row=36 col=168 xpixel=0 ypixel=0
339/1: 0.0219 ioctl(0, TCGETS, 0xFFBFF2DC) = 0
339/1: iflag=0022402 oflag=0014005 cflag=03600277 lflag=0105073
339/1: cc: 003 034 177 025 004 000 000 000
339/1: 021 023 032 031 022 017 027 026 000 000 000
339/1: 0.0221 ioctl(1, TCGETA, 0xFFBFF1AC) = 0
339/1: iflag=0022402 oflag=0014005 cflag=0000277 lflag=0105073 line=0
339/1: cc: 003 034 177 025 004 000 000 000
339/1: 0.0223 ioctl(1, TIOCGWINSZ, 0xFFBFF228) = 0
339/1: row=36 col=168 xpixel=0 ypixel=0
339/1: 0.0227 brk(0x0030C000) = 0x00000000
339/1: 0.0228 brk(0x00310000) = 0x00000000
339/1: 0.0228 ioctl(1, TCGETA, 0xFFBFFB0C) = 0
339/1: iflag=0022402 oflag=0014005 cflag=0000277 lflag=0105073 line=0
339/1: cc: 003 034 177 025 004 000 000 000
339/1: 0.0230 ioctl(1, TIOCGWINSZ, 0xFFBFFB88) = 0
339/1: row=36 col=168 xpixel=0 ypixel=0
339/1: 0.0236 open64(".", O_RDONLY) = 3
339/1: 0.0238 fchdir(3) = 0
339/1: 0.0238 chdir("/usr/share/vim") = 0
339/1: 0.0240 getcwd("/usr/share/vim", 1024) = 0
339/1: 0.0241 fchdir(3) = 0
339/1: 0.0242 close(3) = 0
339/1: 0.0242 stat64("/usr/share/vim/vimrc", 0xFFBFF990) Err#2 ENOENT
339/1: 0.0244 open64("/usr/share/vim/vimrc", O_RDONLY) Err#2 ENOENT
339/1: 0.0245 open64(".", O_RDONLY) = 3
339/1: 0.0246 fchdir(3) = 0
339/1: 0.0247 chdir("/root") = 0
339/1: 0.0248 getcwd("/root", 1024) = 0
339/1: 0.0249 fchdir(3) = 0
339/1: 0.0249 close(3) = 0
339/1: 0.0250 stat64("/root/.vimrc", 0xFFBFF990) Err#2 ENOENT
339/1: 0.0252 open64("/root/.vimrc", O_RDONLY) Err#2 ENOENT
339/1: 0.0253 open64("/root/_vimrc", O_RDONLY) Err#2 ENOENT
339/1: 0.0255 open64(".", O_RDONLY) = 3
339/1: 0.0256 fchdir(3) = 0
339/1: 0.0256 chdir("/root") = 0
339/1: 0.0257 getcwd("/root", 1024) = 0
339/1: 0.0258 fchdir(3) = 0
339/1: 0.0259 close(3) = 0
339/1: 0.0260 stat64("/root/.exrc", 0xFFBFF990) Err#2 ENOENT
339/1: 0.0261 open64("/root/.exrc", O_RDONLY) Err#2 ENOENT
339/1: 0.0264 open("/root/.vim/plugin/", O_RDONLY|O_NDELAY|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) Err#2 ENOENT
339/1: 0.0265 open("/root/.vim/plugin/", O_RDONLY|O_NDELAY|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) Err#2 ENOENT
339/1: 0.0266 open("/usr/share/vim/vimfiles/plugin/", O_RDONLY|O_NDELAY|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) Err#2 ENOENT
339/1: 0.0268 open("/usr/share/vim/vimfiles/plugin/", O_RDONLY|O_NDELAY|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) Err#2 ENOENT
339/1: 0.0269 open("/usr/share/vim/vim73/plugin/", O_RDONLY|O_NDELAY|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) Err#2 ENOENT
339/1: 0.0270 open("/usr/share/vim/vim73/plugin/", O_RDONLY|O_NDELAY|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) Err#2 ENOENT
339/1: 0.0272 open("/usr/share/vim/vimfiles/after/plugin/", O_RDONLY|O_NDELAY|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) Err#2 ENOENT
339/1: 0.0273 open("/usr/share/vim/vimfiles/after/plugin/", O_RDONLY|O_NDELAY|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) Err#2 ENOENT
339/1: 0.0274 open("/root/.vim/after/plugin/", O_RDONLY|O_NDELAY|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) Err#2 ENOENT
339/1: 0.0275 open("/root/.vim/after/plugin/", O_RDONLY|O_NDELAY|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) Err#2 ENOENT
339/1: 0.0277 ioctl(0, TCGETS, 0x002F487C) = 0
339/1: iflag=0022402 oflag=0014005 cflag=03600277 lflag=0105073
339/1: cc: 003 034 177 025 004 000 000 000
339/1: 021 023 032 031 022 017 027 026 000 000 000
339/1: 0.0279 ioctl(0, TCSETS, 0xFFBFFB84) = 0
339/1: iflag=0022002 oflag=0014001 cflag=03600277 lflag=0005040
339/1: cc: 003 034 177 025 001 000 000 000
339/1: 021 023 032 031 022 017 027 026 000 000 000
339/1: 0.0280 write(1, "1B @ 01B [ ? 4 s1B [ ? 4".., 23) = 23
339/1: 0.0283 brk(0x00310000) = 0x00000000
339/1: 0.0284 brk(0x00312000) = 0x00000000
339/1: 0.0286 stat64("/net/sysadm-nfs/sysmsol/catalogue/scripts/1", 0xFFBFF9F0) = 0
339/1: d=0x04750024 i=5650 m=0100644 l=1 u=0 g=0 sz=9
339/1: at = Mar 20 08:13:19 GMT 2015 [ 1426839199.378227980 ]
339/1: mt = Mar 20 08:13:19 GMT 2015 [ 1426839199.378895980 ]
339/1: ct = Mar 20 08:13:19 GMT 2015 [ 1426839199.384427800 ]
339/1: bsz=512 blks=2 fs=lofs
339/1: 0.0288 getuid() = 0 [0]
339/1: 0.0289 getuid() = 0 [0]
339/1: 0.0290 getpid() = 339 [338]
339/1: 0.0291 open("/proc/339/psinfo", O_RDONLY) = 3
339/1: 0.0292 read(3, "02\0\0\0\0\0\001\0\001 S".., 336) = 336
339/1: 0.0293 close(3) = 0
339/1: 0.0294 mmap(0x00010000, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF2B0000
339/1: 0.0296 getuid() = 0 [0]
339/1: 0.0296 getuid() = 0 [0]
339/1: 0.0297 open64("/system/volatile/name_service_door", O_RDONLY) = 3
339/1: 0.0298 fcntl(3, F_SETFD, 0x00000001) = 0
339/1: 0.0299 door_info(3, 0xF7071F78) = 0
339/1: target=7849 proc=0x31E48 data=0xDEADBEED
339/1: attributes=DOOR_UNREF|DOOR_NO_CANCEL
339/1: uniquifier=6809
339/1: 0.0301 door_call(3, 0xFFBFF6D4) = 0
339/1: data_ptr=FF2B0000 data_size=210
339/1: desc_ptr=0x0 desc_num=0
339/1: rbuf=0xFF2B0000 rsize=16384
339/1: 0.0302 uname(0xFFBFF583) = 1
339/1: sys=SunOS nod=sysadm-nfs rel=5.11 ver=11.2 mch=sun4v
339/1: 0.0303 getpid() = 339 [338]
339/1: 0.0304 brk(0x00312000) = 0x00000000
339/1: 0.0305 brk(0x00314000) = 0x00000000
339/1: 0.0306 stat64("1", 0xFFBFF768) = 0
339/1: d=0x04750024 i=5650 m=0100644 l=1 u=0 g=0 sz=9
339/1: at = Mar 20 08:13:19 GMT 2015 [ 1426839199.378227980 ]
339/1: mt = Mar 20 08:13:19 GMT 2015 [ 1426839199.378895980 ]
339/1: ct = Mar 20 08:13:19 GMT 2015 [ 1426839199.384427800 ]
339/1: bsz=512 blks=2 fs=lofs
339/1: 0.0308 stat64("1", 0xFFBFF970) = 0
339/1: d=0x04750024 i=5650 m=0100644 l=1 u=0 g=0 sz=9
339/1: at = Mar 20 08:13:19 GMT 2015 [ 1426839199.378227980 ]
339/1: mt = Mar 20 08:13:19 GMT 2015 [ 1426839199.378895980 ]
339/1: ct = Mar 20 08:13:19 GMT 2015 [ 1426839199.384427800 ]
339/1: bsz=512 blks=2 fs=lofs
339/1: 0.0310 access("1", W_OK) = 0
339/1: 0.0311 open64("1", O_RDONLY) = 5
339/1: 0.0312 readlink("1", 0xFFBFEEA0, 1023) Err#22 EINVAL
339/1: 0.0314 open64(".1.swp", O_RDONLY) Err#2 ENOENT
339/1: 0.0317 open64(".1.swp", O_RDWR|O_CREAT|O_EXCL, 0600) = 6
339/1: 0.0318 open64(".1.swpx", O_RDONLY) Err#2 ENOENT
339/1: 0.0319 open64(".1.swpx", O_RDWR|O_CREAT|O_EXCL, 0600) = 7
339/1: 0.0320 fstat64(6, 0xFFBFF680) = 0
339/1: d=0x04750024 i=5652 m=0100600 l=1 u=0 g=0 sz=0
339/1: at = Mar 20 08:15:35 GMT 2015 [ 1426839335.264059350 ]
339/1: mt = Mar 20 08:15:35 GMT 2015 [ 1426839335.264059350 ]
339/1: ct = Mar 20 08:15:35 GMT 2015 [ 1426839335.264059350 ]
339/1: bsz=131072 blks=1 fs=lofs
339/1: 0.0322 fstat64(7, 0xFFBFF5E8) = 0
339/1: d=0x04750024 i=5653 m=0100600 l=1 u=0 g=0 sz=0
339/1: at = Mar 20 08:15:35 GMT 2015 [ 1426839335.264376870 ]
339/1: mt = Mar 20 08:15:35 GMT 2015 [ 1426839335.264376870 ]
339/1: ct = Mar 20 08:15:35 GMT 2015 [ 1426839335.264376870 ]
339/1: bsz=131072 blks=1 fs=lofs
339/1: 0.0323 close(7) = 0
339/1: 0.0324 unlink(".1.swpx") = 0
339/1: 0.0325 close(6) = 0
339/1: 0.0326 unlink(".1.swp") = 0
339/1: 0.0327 stat64(".1.swp", 0xFFBFF210) Err#2 ENOENT
339/1: 0.0328 lstat64(".1.swp", 0xFFBFF688) Err#2 ENOENT
339/1: 0.0330 getcwd("/net/sysadm-nfs/sysmsol/catalogue/scripts", 1024) = 0
339/1: 0.0332 lstat64(".1.swp", 0xFFBFF638) Err#2 ENOENT
339/1: 0.0334 open64(".1.swp", O_RDWR|O_CREAT|O_EXCL|O_NOFOLLOW, 0600) = 6
339/1: 0.0335 fcntl(6, F_GETFD, 0x00020502) = 0
339/1: 0.0336 fcntl(6, F_SETFD, 0x00000001) = 0
339/1: 0.0336 getcwd("/net/sysadm-nfs/sysmsol/catalogue/scripts", 1024) = 0
339/1: 0.0338 llseek(6, 0, SEEK_SET) = 0
339/1: 0.0339 write(6, " b 0 V I M 7 . 3\0\0\0".., 4096) = 4096
339/1: 0.0340 pollsys(0xFFBFF3F8, 1, 0xFFBFF470, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 0.0342 chmod(".1.swp", 0644) = 0
339/1: 0.0344 close(5) = 0
339/1: 0.0345 open64("1", O_RDONLY) = 5
339/1: 0.0348 write(1, "1B [ 1 ; 3 6 r1B [ m1B [".., 27) = 27
339/1: 0.0350 brk(0x00314000) = 0x00000000
339/1: 0.0351 brk(0x00324000) = 0x00000000
339/1: 0.0353 read(5, " s a d f s f d :\n", 8192) = 9
339/1: 0.0354 pollsys(0xFFBFF538, 1, 0xFFBFF5B0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 0.0356 brk(0x00324000) = 0x00000000
339/1: 0.0356 brk(0x00334000) = 0x00000000
339/1: 0.0357 read(5, 0x00322AE8, 65536) = 0
339/1: 0.0358 close(5) = 0
339/1: 0.0360 write(1, " 1 l i n e , 9 c".., 21) = 21
339/1: 0.0362 pollsys(0xFFBFF8C0, 1, 0xFFBFF938, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 0.0364 pollsys(0xFFBFF8C0, 1, 0xFFBFF938, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 0.0366 getcwd("/net/sysadm-nfs/sysmsol/catalogue/scripts", 1024) = 0
339/1: 0.0373 write(1, "1B [ 1 ; 1 H s a d f s f".., 2047) = 2047
339/1: 0.0375 write(1, " ".., 2047) = 2047
339/1: 0.0380 pollsys(0xFFBFF5A0, 1, 0xFFBFF618, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 0.0382 write(1, " ".., 1873) = 1873
339/1: pollsys(0xFFBFF418, 1, 0xFFBFF490, 0x00000000) (sleeping...)
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 4.000000000 sec
339/1: 1.5584 pollsys(0xFFBFF418, 1, 0xFFBFF490, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: timeout: 4.000000000 sec
339/1: 1.5588 pollsys(0xFFBFF418, 1, 0x00000000, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: 1.5590 read(0, " i", 4096) = 1
339/1: 1.5592 pollsys(0xFFBFF5A0, 1, 0xFFBFF618, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.5596 pollsys(0xFFBFF458, 1, 0xFFBFF4D0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.5597 pollsys(0xFFBFF2D0, 1, 0xFFBFF348, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.5599 pollsys(0xFFBFF3E8, 1, 0xFFBFF460, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.5601 pollsys(0xFFBFF260, 1, 0xFFBFF2D8, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.5602 pollsys(0xFFBFF428, 1, 0xFFBFF4A0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6222 pollsys(0xFFBFF2A0, 1, 0xFFBFF318, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: timeout: 4.000000000 sec
339/1: 1.6226 pollsys(0xFFBFF2A0, 1, 0x00000000, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: 1.6227 read(0, " s", 4096) = 1
339/1: 1.6228 pollsys(0xFFBFF428, 1, 0xFFBFF4A0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6233 pollsys(0xFFBFF368, 1, 0xFFBFF3E0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6234 pollsys(0xFFBFF1E0, 1, 0xFFBFF258, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6236 llseek(6, 0, SEEK_SET) = 0
339/1: 1.6237 write(6, " b 0 V I M 7 . 3\0\0\0".., 4096) = 4096
339/1: 1.6238 pollsys(0xFFBFF0F8, 1, 0xFFBFF170, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6240 pollsys(0xFFBFF458, 1, 0xFFBFF4D0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6241 pollsys(0xFFBFF2D0, 1, 0xFFBFF348, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6243 pollsys(0xFFBFF3E8, 1, 0xFFBFF460, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6244 pollsys(0xFFBFF260, 1, 0xFFBFF2D8, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6246 pollsys(0xFFBFF428, 1, 0xFFBFF4A0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6248 write(1, "1B [ m s s a d f s f d :".., 14) = 14
339/1: 1.6943 pollsys(0xFFBFF2A0, 1, 0xFFBFF318, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: timeout: 4.000000000 sec
339/1: 1.6946 pollsys(0xFFBFF2A0, 1, 0x00000000, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: 1.6948 read(0, " d", 4096) = 1
339/1: 1.6949 pollsys(0xFFBFF428, 1, 0xFFBFF4A0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6951 pollsys(0xFFBFF368, 1, 0xFFBFF3E0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6952 pollsys(0xFFBFF1E0, 1, 0xFFBFF258, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6954 pollsys(0xFFBFF458, 1, 0xFFBFF4D0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6955 pollsys(0xFFBFF2D0, 1, 0xFFBFF348, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6956 pollsys(0xFFBFF3E8, 1, 0xFFBFF460, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6958 pollsys(0xFFBFF260, 1, 0xFFBFF2D8, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6960 pollsys(0xFFBFF428, 1, 0xFFBFF4A0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.6962 write(1, " d s a d f s f d :\r s d", 12) = 12
339/1: 1.7508 pollsys(0xFFBFF2A0, 1, 0xFFBFF318, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: timeout: 4.000000000 sec
339/1: 1.7511 pollsys(0xFFBFF2A0, 1, 0x00000000, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: 1.7513 read(0, " f", 4096) = 1
339/1: 1.7514 pollsys(0xFFBFF428, 1, 0xFFBFF4A0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.7516 pollsys(0xFFBFF368, 1, 0xFFBFF3E0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.7517 pollsys(0xFFBFF1E0, 1, 0xFFBFF258, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.7518 pollsys(0xFFBFF458, 1, 0xFFBFF4D0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.7520 pollsys(0xFFBFF2D0, 1, 0xFFBFF348, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.7521 pollsys(0xFFBFF3E8, 1, 0xFFBFF460, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.7522 pollsys(0xFFBFF260, 1, 0xFFBFF2D8, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.7525 pollsys(0xFFBFF428, 1, 0xFFBFF4A0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.7526 write(1, " f s a d f s f d :\r s d".., 13) = 13
339/1: 1.8544 pollsys(0xFFBFF2A0, 1, 0xFFBFF318, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: timeout: 4.000000000 sec
339/1: 1.8547 pollsys(0xFFBFF2A0, 1, 0x00000000, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: 1.8548 read(0, " s", 4096) = 1
339/1: 1.8550 pollsys(0xFFBFF428, 1, 0xFFBFF4A0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.8552 pollsys(0xFFBFF368, 1, 0xFFBFF3E0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.8553 pollsys(0xFFBFF1E0, 1, 0xFFBFF258, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.8554 pollsys(0xFFBFF458, 1, 0xFFBFF4D0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.8556 pollsys(0xFFBFF2D0, 1, 0xFFBFF348, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.8557 pollsys(0xFFBFF3E8, 1, 0xFFBFF460, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.8558 pollsys(0xFFBFF260, 1, 0xFFBFF2D8, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.8561 pollsys(0xFFBFF428, 1, 0xFFBFF4A0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.8563 write(1, " s s a d f s f d :\r s d".., 14) = 14
339/1: 1.9103 pollsys(0xFFBFF2A0, 1, 0xFFBFF318, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: timeout: 4.000000000 sec
339/1: 1.9106 pollsys(0xFFBFF2A0, 1, 0x00000000, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: 1.9108 read(0, " f", 4096) = 1
339/1: 1.9109 pollsys(0xFFBFF428, 1, 0xFFBFF4A0, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: timeout: 0.000000000 sec
339/1: 1.9110 read(0, " d", 4096) = 1
339/1: 1.9112 pollsys(0xFFBFF368, 1, 0xFFBFF3E0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.9113 pollsys(0xFFBFF368, 1, 0xFFBFF3E0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.9114 pollsys(0xFFBFF368, 1, 0xFFBFF3E0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.9116 pollsys(0xFFBFF338, 1, 0xFFBFF3B0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.9117 pollsys(0xFFBFF368, 1, 0xFFBFF3E0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.9118 pollsys(0xFFBFF1E0, 1, 0xFFBFF258, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.9120 pollsys(0xFFBFF458, 1, 0xFFBFF4D0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.9121 pollsys(0xFFBFF2D0, 1, 0xFFBFF348, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.9122 pollsys(0xFFBFF3E8, 1, 0xFFBFF460, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.9124 pollsys(0xFFBFF260, 1, 0xFFBFF2D8, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.9126 pollsys(0xFFBFF428, 1, 0xFFBFF4A0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 1.9128 write(1, " f d s a d f s f d :1B [".., 16) = 16
339/1: 2.1104 pollsys(0xFFBFF2A0, 1, 0xFFBFF318, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: timeout: 4.000000000 sec
339/1: 2.1107 pollsys(0xFFBFF2A0, 1, 0x00000000, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: 2.1109 read(0, "1B", 4096) = 1
339/1: 2.1110 pollsys(0xFFBFF428, 1, 0xFFBFF4A0, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 2.1113 pollsys(0xFFBFF5A0, 1, 0xFFBFF618, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 2.1114 write(1, "\b", 1) = 1
339/1: 2.2623 pollsys(0xFFBFF418, 1, 0xFFBFF490, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: timeout: 4.000000000 sec
339/1: 2.2626 pollsys(0xFFBFF418, 1, 0x00000000, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: 2.2628 read(0, " :", 4096) = 1
339/1: 2.2629 pollsys(0xFFBFF5A0, 1, 0xFFBFF618, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 2.2635 write(1, "1B [ 3 6 ; 1 H1B [ K1B [".., 18) = 18
339/1: 2.2637 ioctl(0, TCSETS, 0xFFBFF374) = 0
339/1: iflag=0022002 oflag=0014001 cflag=03600277 lflag=0005040
339/1: cc: 003 034 177 025 001 000 000 000
339/1: 021 023 032 031 022 017 027 026 000 000 000
339/1: 2.2639 pollsys(0xFFBFEF50, 1, 0xFFBFEFC8, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 2.3984 pollsys(0xFFBFEDC8, 1, 0xFFBFEE40, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: timeout: 4.000000000 sec
339/1: 2.3987 pollsys(0xFFBFEDC8, 1, 0x00000000, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: 2.3988 read(0, " w", 4096) = 1
339/1: 2.3990 pollsys(0xFFBFEF50, 1, 0xFFBFEFC8, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 2.3992 pollsys(0xFFBFEF50, 1, 0xFFBFEFC8, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 2.3994 write(1, " w", 1) = 1
339/1: 2.4624 pollsys(0xFFBFEDC8, 1, 0xFFBFEE40, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: timeout: 4.000000000 sec
339/1: 2.4627 pollsys(0xFFBFEDC8, 1, 0x00000000, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: 2.4628 read(0, " q", 4096) = 1
339/1: 2.4630 pollsys(0xFFBFEF50, 1, 0xFFBFEFC8, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 2.4632 pollsys(0xFFBFEF50, 1, 0xFFBFEFC8, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 2.4633 write(1, " q", 1) = 1
339/1: 2.6305 pollsys(0xFFBFEDC8, 1, 0xFFBFEE40, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: timeout: 4.000000000 sec
339/1: 2.6308 pollsys(0xFFBFEDC8, 1, 0x00000000, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: 2.6309 read(0, " !", 4096) = 1
339/1: 2.6311 pollsys(0xFFBFEF50, 1, 0xFFBFEFC8, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 2.6313 pollsys(0xFFBFEF50, 1, 0xFFBFEFC8, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 2.6314 write(1, " !", 1) = 1
339/1: 2.6950 pollsys(0xFFBFEDC8, 1, 0xFFBFEE40, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: timeout: 4.000000000 sec
339/1: 2.6953 pollsys(0xFFBFEDC8, 1, 0x00000000, 0x00000000) = 1
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=POLLRDNORM
339/1: 2.6955 read(0, "\r", 4096) = 1
339/1: 2.6956 pollsys(0xFFBFEF50, 1, 0xFFBFEFC8, 0x00000000) = 0
339/1: fd=0 ev=POLLRDNORM|POLLRDBAND rev=0
339/1: timeout: 0.000000000 sec
339/1: 2.6958 write(1, "\r", 1) = 1
339/1: 2.6963 ioctl(0, TCSETS, 0xFFBFEE64) = 0
339/1: iflag=0022402 oflag=0014005 cflag=03600277 lflag=0105073
339/1: cc: 003 034 177 025 004 000 000 000
339/1: 021 023 032 031 022 017 027 026 000 000 000
339/1: 2.6965 write(1, " " 1 " ", 4) = 4
339/1: 2.6966 stat64("1", 0xFFBFF198) = 0
339/1: d=0x04750024 i=5650 m=0100644 l=1 u=0 g=0 sz=9
339/1: at = Mar 20 08:13:19 GMT 2015 [ 1426839199.378227980 ]
339/1: mt = Mar 20 08:13:19 GMT 2015 [ 1426839199.378895980 ]
339/1: ct = Mar 20 08:13:19 GMT 2015 [ 1426839199.384427800 ]
339/1: bsz=512 blks=2 fs=lofs
339/1: 2.6969 access("1", W_OK) = 0
339/1: 2.6971 stat64("/lib/libsec.so.1", 0xFFBFE330) = 0
339/1: d=0x0475001C i=74396 m=0100755 l=1 u=0 g=2 sz=100208
339/1: at = Mar 20 08:13:45 GMT 2015 [ 1426839225.601147300 ]
339/1: mt = Nov 22 08:37:38 GMT 2014 [ 1416645458.000000000 ]
339/1: ct = Mar 13 19:11:12 GMT 2015 [ 1426273872.094893680 ]
339/1: bsz=100352 blks=197 fs=zfs
339/1: 2.6973 resolvepath("/lib/libsec.so.1", "/lib/libsec.so.1", 1023) = 16
339/1: 2.6974 open("/lib/libsec.so.1", O_RDONLY) = 5
339/1: 2.6976 mmapobj(5, MMOBJ_INTERPRET, 0xFF3818A0, 0xFFBFE3C4, 0x00000000) = 0
339/1: 2.6977 close(5) = 0
339/1: 2.6978 memcntl(0xFF290000, 18876, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
339/1: 2.6979 mmap(0x00000000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFF280000
339/1: 2.6983 pathconf("1", _PC_ACL_ENABLED) = 2
339/1: 2.6984 acl("1", ACE_GETACLCNT, 0, 0x00000000) = 5
339/1: 2.6985 stat64("1", 0xFFBFED78) = 0
339/1: d=0x04750024 i=5650 m=0100644 l=1 u=0 g=0 sz=9
339/1: at = Mar 20 08:13:19 GMT 2015 [ 1426839199.378227980 ]
339/1: mt = Mar 20 08:13:19 GMT 2015 [ 1426839199.378895980 ]
339/1: ct = Mar 20 08:13:19 GMT 2015 [ 1426839199.384427800 ]
339/1: bsz=512 blks=2 fs=lofs
339/1: 2.6987 acl("1", ACE_GETACL, 5, 0x00302118) = 5
339/1: 2.6990 open64("1", O_RDONLY) = 5
339/1: 2.6992 stat64("1~", 0xFFBFEF58) Err#2 ENOENT
339/1: 2.6993 unlink("1~") Err#2 ENOENT
339/1: 2.6996 open64("1~", O_WRONLY|O_CREAT|O_EXCL|O_NOFOLLOW, 0644) = 7
339/1: 2.6997 chmod("1~", 0644) = 0
339/1: 2.6998 read(5, " s a d f s f d :\n", 8192) = 9
339/1: 2.7004 write(7, " s a d f s f d :\n", 9) = 9
339/1: 2.7005 read(5, 0x00315608, 8192) = 0
339/1: 2.7006 close(7) = 0
339/1: 2.7007 uucopy(0xFFBFEEE0, 0xFFBFEE78, 8) = 0
339/1: 2.7008 utimensat(AT_FDCWD, "1~", 0xFFBFEE68, 0) = 0
339/1: at = Mar 20 08:13:19 GMT 2015 [ 1426839199.000000000 ]
339/1: mt = Mar 20 08:13:19 GMT 2015 [ 1426839199.000000000 ]
339/1: 2.7010 stat64("1~", 0xFFBFED88) = 0
339/1: d=0x04750024 i=5655 m=0100644 l=1 u=0 g=0 sz=9
339/1: at = Mar 20 08:13:19 GMT 2015 [ 1426839199.000000000 ]
339/1: mt = Mar 20 08:13:19 GMT 2015 [ 1426839199.000000000 ]
339/1: ct = Mar 20 08:15:37 GMT 2015 [ 1426839337.932970500 ]
339/1: bsz=512 blks=1 fs=lofs
339/1: 2.7012 pathconf("1~", _PC_ACL_ENABLED) = 2
339/1: 2.7013 acl("1~", ACE_SETACL, 5, 0x00302118) = 0
339/1: 2.7014 close(5) = 0
339/1: 2.7016 open64("1", O_WRONLY|O_CREAT|O_TRUNC, 0644) = 5
339/1: 2.7023 write(5, " s d f s f d s a d f s f".., 15) = 15
339/1: 2.7071 fdsync(5, FSYNC) = 0
339/1: 2.7073 close(5) = 0
339/1: 2.7074 chmod("1", 0100644) = 0
339/1: 2.7076 write(1, " 1 l i n e , 1 5 c".., 29) = 29
339/1: 2.7078 llseek(6, 0, SEEK_SET) = 0
339/1: 2.7079 write(6, " b 0 V I M 7 . 3\0\0\0".., 4096) = 4096
339/1: 2.7081 stat64("/net/sysadm-nfs/sysmsol/catalogue/scripts/1", 0xFFBFED80) = 0
339/1: d=0x04750024 i=5650 m=0100644 l=1 u=0 g=0 sz=15
339/1: at = Mar 20 08:13:19 GMT 2015 [ 1426839199.378227980 ]
339/1: mt = Mar 20 08:15:37 GMT 2015 [ 1426839337.934475780 ]
339/1: ct = Mar 20 08:15:37 GMT 2015 [ 1426839337.939578950 ]
339/1: bsz=512 blks=2 fs=lofs
339/1: 2.7085 unlink("1~") = 0
339/1: 2.7088 write(1, "\r\r\n1B [ ? 1 l1B >", 10) = 10
339/1: 2.7090 write(1, "1B @ 01B [ ? 4 r", 8) = 8
339/1: 2.7091 close(6) = 0
339/1: 2.7093 unlink("/net/sysadm-nfs/sysmsol/catalogue/scripts/.1.swp") = 0
339/1: 2.7095 _exit(0)
The chmod() at 2.7074 is probably the culprit.
You can start up this dtrace script as root, then use vim to cause ACLs to disappear:
#!/usr/sbin/dtrace -s
#pragma D option flowindent
syscall::fchmodat:entry
/execname=="vim"/
{
printf( "%s, 0x%x\n", execname, arg1 );
self->trace = 1;
}
syscall::fchmodat:return
/self->trace/
{
self->trace = 0;
}
fbt:::
/self->trace/
{
}
That'll show what's going on under the hood.
To verify that it's indeed that chmod() call that's blowing away the ACLs, take this C code:
int chmod( const char *name, unsigned int mode )
{
return( 0 );
}
Compile it:
gcc -m32 -shared chmod.c -o chmod.so (gcc)
or
cc -G chmod.c -o chmod.so (Sun Studio)
Set your LD_PRELOAD_32:
export LD_PRELOAD_32=/path/to/chmod.so
Rerun vim from the same shell you set LD_PRELOAD_32 in.
If the ACLs are preserved, it's a bug in vim.
Oh yeah - don't do anything else from the bash session where you have the LD_PRELOAD set. Things aren't going to behave well with chmod() stubbed out like that.
And I recommend you never, ever use just plain "LD_PRELOAD" on Solaris. Always use LD_PRELOAD_32 or LD_PRELOAD_64. If a 32-bit binary hits a 64-bit shared object in LD_PRELOAD, or the other way around, it won't run.
Hi Achenle,
Thanks for your email.
I have tried this and it is not changing the permissions now.. but that would be expected if chmod is "interfered" like that?
What vim does is take a copy, work on tha tcopy, then copy that file back and invoke chmod to preserve permissions, which in turns overwrites the ACLs.
I have attaced the dtrace output too.
What's odd is, if I run it with "nobackup", it creates the swap file as well, but this time it preserves the acls...
1715/1: 0.0733 chmod(".1.swp", 0644) = 0
1715/1: 2.7204 rename("1", "1~") = 0
1715/1: 2.7227 chmod("1", 0100644) = 0
1715/1: 2.7284 rename("/root/.viminfo.tmp", "/root/.viminfo") = 0
Cheers.
I'm not sure I understand your explanation of what you've done. Did you try with the LD_PRELOAD set, and found that the ACLs were preserved?
Do you have a complete truss output with "nobackup" set?
Yes, I run a test with LD_PRELOAD set, so chmod command would not work (and it wasn't working! I tried), that preserved the ACLS when runing vim with backup mode on.
I have attached the dtrace for the run with vim + set nobackup
# ls -V 1
-rw-r--r--+ 1 root root 9 Mar 21 13:03 1
user:lp:rwx-----------:fd-----:allow
owner@:rw-p--aARWcCos:-------:allow
group@:r-----a-R-c--s:-------:allow
everyone@:r-----a-R-c--s:-------:allow
# cat ~/.vimrc
set nobackup
# truss -f -a -vall -l -d -o truss.out vim 1
# ls -V 1
-rw-r--r--+ 1 root root 9 Mar 21 13:03 1
user:lp:rwx-----------:fd-----:allow
owner@:rw-p--aARWcCos:-------:allow
group@:r-----a-R-c--s:-------:allow
everyone@:r-----a-R-c--s:-------:allow
The bug appears to be at line 4763 of fileio.c in the vim source code from Vim source archives : vim online :
#ifdef UNIX
if (made_writable)
perm &= ~0200; /* reset 'w' bit for security reasons */
#endif
if (perm >= 0) /* set perm. of new file same as old file */
(void)mch_setperm(wfname, perm);
#ifdef HAVE_ACL
/* Probably need to set the ACL before changing the user (can't set the
* ACL on a file the user doesn't own). */
if (!backup_copy)
mch_set_acl(wfname, acl);
#endif
The permissions are set on the file, and then ACLs are set, but only if there isn't a backup copy.
Pretty much exactly as you've found out.
The logic there escapes me.
Thanks for you help with this.
When I have time I will folllow up with the vim guys, I think however that ZFS ACLs are not supported anyway in that vim version (I found some vague comments about it on google).
Thanks again for taking the time to look into this!
Cheers.