* [BUG] git clean not working on FreeBSD/NFS
@ 2010-06-17 14:26 Török Edwin
2010-06-17 15:18 ` Henrik Grubbström
0 siblings, 1 reply; 10+ messages in thread
From: Török Edwin @ 2010-06-17 14:26 UTC (permalink / raw)
To: git
Hi,
I am running git 1.7.1 on a FreeBSD 8 box which has its home dir mounted
via NFS (I guess the NFS server is a Linux box).
When running 'git clean -x -f -d' it fails to remove some directories:
warning: failed to remove 'libclamav/.deps/'
warning: failed to remove 'libclamav/.libs/'
warning: failed to remove 'libclamav/c++/.deps/'
warning: failed to remove 'libclamav/c++/.libs/'
warning: failed to remove 'libclamav/c++/llvm/test/CodeGen/X86/Output/'
This causes buildbot managed builds to fail every 2nd time.
Steps to reproduce:
1. FreeBSD 8 with home mounted via NFS (NFS server probably Linux)
2. Checkout ClamAV, and ./configure it (some other autotooled program
would work too probably)
3. ./config.status
4. git clean -x -f -d -- libclamav
5. ls -l libclamav/.deps
Step 4. fails, step 5 shows remaining files.
You can repeat steps 3 and 4 to see the failure over and over again.
If instead of the 'git clean' you run 'rm -rf' that works!
Looking at the truss output I see that the error is that the directory
is not empty (see end of this mail for detailed truss output):
rmdir(0x8011e3080,0x5ff560,0x10,0x2000,0x626298,0x0) ERR#66 'Directory
not empty
Which is indeed true, if I run 'ls' on those directories they still have
some files in them: git made no attempt to stat/unlink them (it must
have missed them during directory listing?).
Here are the remaining files:
$ ls libclamav/.deps
libclamav_la-textnorm.Plo libclamav_la-upx.Plo unrar20.Plo
libclamav_la-tnef.Plo libclamav_la-uuencode.Plo
unrar_iface.Plo
libclamav_la-unarj.Plo libclamav_la-vba_extract.Plo unrarcmd.Plo
libclamav_la-uniq.Plo libclamav_la-version.Plo
unrarfilter.Plo
libclamav_la-unsp.Plo libclamav_la-wwunpack.Plo unrarhlp.Plo
libclamav_la-untar.Plo libclamav_la-yc.Plo unrarppm.Plo
libclamav_la-unzip.Plo unrar.Plo unrarvm.Plo
libclamav_la-upack.Plo unrar15.Plo
There is a second box attached to same NFS server, a Linux 2.6.26.
I can't reproduce this bug on that box, so I assume this a FreeBSD / or
FreeBSD + NFS specific bug.
However this bug reproduces almost always on the FreeBSD box (2 out of 3
tries approximatively).
uname -mrsp: FreeBSD 8.0-RELEASE amd64 amd64
gcc:
Using built-in specs.
Target: amd64-undermydesk-freebsd
Configured with: FreeBSD/amd64 system compiler
Thread model: posix
gcc version 4.2.1 20070719 [FreeBSD]
git --version: git version 1.7.1
There isn't anything relevant in dmesg on the NFS client, and I don't
have access to the NFS server.
FWIW running "rm -rf" DOES work!
Relevant part of 'truss git clean -x -f -d -- libclamav':
lstat("libclamav/c++/.deps",{ mode=drwx------
,inode=3222465128,size=20480,blksize=4096 }) = 0 (0x0)
getdirentries(0x5,0x8011e8000,0x1000,0x8011e5128,0xffff80080111e094,0x0)
= 0 (0x0)
lseek(5,0x0,SEEK_SET) = 0 (0x0)
close(5) = 0 (0x0)
lstat("libclamav/cab.c",{ mode=-rw-------
,inode=3535781250,size=18996,blksize=4096 }) = 0 (0x0)
lstat("libclamav/cab.h",{ mode=-rw-------
,inode=3535781252,size=1933,blksize=4096 }) = 0 (0x0)
lstat("libclamav/cache.c",{ mode=-rw-------
,inode=3535781253,size=19730,blksize=4096 }) = 0 (0x0)
lstat("libclamav/cache.h",{ mode=-rw-------
,inode=3535781283,size=1053,blksize=4096 }) = 0 (0x0)
lstat("libclamav/chmunpack.c",{ mode=-rw-------
,inode=3535781284,size=22473,blksize=4096 }) = 0 (0x0)
lstat("libclamav/chmunpack.h",{ mode=-rw-------
,inode=3535781285,size=3364,blksize=4096 }) = 0 (0x0)
lstat("libclamav/clamav.h",{ mode=-rw-------
,inode=3535781286,size=7166,blksize=4096 }) = 0 (0x0)
lstat("libclamav/clambc.h",{ mode=-rw-------
,inode=3535781287,size=2738,blksize=4096 }) = 0 (0x0)
lstat("libclamav/cltypes.h",{ mode=-rw-------
,inode=3535781288,size=1840,blksize=4096 }) = 0 (0x0)
lstat("libclamav/cpio.c",{ mode=-rw-------
,inode=3535781289,size=7978,blksize=4096 }) = 0 (0x0)
lstat("libclamav/cpio.h",{ mode=-rw-------
,inode=3535781290,size=971,blksize=4096 }) = 0 (0x0)
lstat("libclamav/cvd.c",{ mode=-rw-------
,inode=3535781291,size=16233,blksize=4096 }) = 0 (0x0)
lstat("libclamav/cvd.h",{ mode=-rw-------
,inode=3535781292,size=1246,blksize=4096 }) = 0 (0x0)
lstat("libclamav/dconf.c",{ mode=-rw-------
,inode=3535781293,size=11601,blksize=4096 }) = 0 (0x0)
lstat("libclamav/dconf.h",{ mode=-rw-------
,inode=3535781294,size=3481,blksize=4096 }) = 0 (0x0)
lstat("libclamav/default.h",{ mode=-rw-------
,inode=3535781295,size=1308,blksize=4096 }) = 0 (0x0)
lstat("libclamav/disasm-common.h",{ mode=-rw-------
,inode=3535781296,size=14271,blksize=4096 }) = 0 (0x0)
lstat("libclamav/disasm.c",{ mode=-rw-------
,inode=3535781297,size=78128,blksize=4096 }) = 0 (0x0)
lstat("libclamav/disasm.h",{ mode=-rw-------
,inode=3535781298,size=1014,blksize=4096 }) = 0 (0x0)
lstat("libclamav/disasmpriv.h",{ mode=-rw-------
,inode=3535781299,size=1678,blksize=4096 }) = 0 (0x0)
lstat("libclamav/dlp.c",{ mode=-rw-------
,inode=3535781300,size=13646,blksize=4096 }) = 0 (0x0)
lstat("libclamav/dlp.h",{ mode=-rw-------
,inode=3535781301,size=4678,blksize=4096 }) = 0 (0x0)
lstat("libclamav/dsig.c",{ mode=-rw-------
,inode=3535781302,size=5612,blksize=4096 }) = 0 (0x0)
lstat("libclamav/dsig.h",{ mode=-rw-------
,inode=3535781303,size=1004,blksize=4096 }) = 0 (0x0)
lstat("libclamav/elf.c",{ mode=-rw-------
,inode=3535781304,size=20341,blksize=4096 }) = 0 (0x0)
lstat("libclamav/elf.h",{ mode=-rw-------
,inode=3535781305,size=2645,blksize=4096 }) = 0 (0x0)
lstat("libclamav/encoding_aliases.h",{ mode=-rw-------
,inode=3535781306,size=2010,blksize=4096 }) = 0 (0x0)
lstat("libclamav/entconv.c",{ mode=-rw-------
,inode=3535781307,size=20631,blksize=4096 }) = 0 (0x0)
lstat("libclamav/entconv.h",{ mode=-rw-------
,inode=3535781308,size=1923,blksize=4096 }) = 0 (0x0)
lstat("libclamav/entitylist.h",{ mode=-rw-------
,inode=3535781309,size=32878,blksize=4096 }) = 0 (0x0)
lstat("libclamav/execs.h",{ mode=-rw-------
,inode=3535781310,size=1888,blksize=4096 }) = 0 (0x0)
lstat("libclamav/explode.c",{ mode=-rw-------
,inode=3535781311,size=7778,blksize=4096 }) = 0 (0x0)
lstat("libclamav/explode.h",{ mode=-rw-------
,inode=3533647648,size=1684,blksize=4096 }) = 0 (0x0)
lstat("libclamav/filetypes.c",{ mode=-rw-------
,inode=3533647649,size=8010,blksize=4096 }) = 0 (0x0)
lstat("libclamav/filetypes.h",{ mode=-rw-------
,inode=3533647650,size=2933,blksize=4096 }) = 0 (0x0)
lstat("libclamav/filetypes_int.h",{ mode=-rw-------
,inode=3533647651,size=8669,blksize=4096 }) = 0 (0x0)
lstat("libclamav/filtering.c",{ mode=-rw-------
,inode=3533647652,size=23994,blksize=4096 }) = 0 (0x0)
lstat("libclamav/filtering.h",{ mode=-rw-------
,inode=3533647653,size=1441,blksize=4096 }) = 0 (0x0)
lstat("libclamav/fmap.c",{ mode=-rw-------
,inode=3533647654,size=18843,blksize=4096 }) = 0 (0x0)
lstat("libclamav/fmap.h",{ mode=-rw-------
,inode=3533647655,size=1978,blksize=4096 }) = 0 (0x0)
lstat("libclamav/fsg.c",{ mode=-rw-------
,inode=3533647656,size=3455,blksize=4096 }) = 0 (0x0)
lstat("libclamav/fsg.h",{ mode=-rw-------
,inode=3533647657,size=1009,blksize=4096 }) = 0 (0x0)
lstat("libclamav/hashtab.c",{ mode=-rw-------
,inode=3533647658,size=20657,blksize=4096 }) = 0 (0x0)
lstat("libclamav/hashtab.h",{ mode=-rw-------
,inode=3533647659,size=4535,blksize=4096 }) = 0 (0x0)
lstat("libclamav/htmlnorm.c",{ mode=-rw-------
,inode=3533647660,size=53427,blksize=4096 }) = 0 (0x0)
lstat("libclamav/htmlnorm.h",{ mode=-rw-------
,inode=3533647661,size=1513,blksize=4096 }) = 0 (0x0)
lstat("libclamav/iana_cctld.h",{ mode=-rw-------
,inode=3533647662,size=11288,blksize=4096 }) = 0 (0x0)
lstat("libclamav/iana_tld.h",{ mode=-rw-------
,inode=3533647663,size=17214,blksize=4096 }) = 0 (0x0)
lstat("libclamav/inffixed64.h",{ mode=-rw-------
,inode=3533647664,size=8089,blksize=4096 }) = 0 (0x0)
lstat("libclamav/inflate64.c",{ mode=-rw-------
,inode=3533647665,size=42823,blksize=4096 }) = 0 (0x0)
lstat("libclamav/inflate64.h",{ mode=-rw-------
,inode=3533647666,size=3083,blksize=4096 }) = 0 (0x0)
lstat("libclamav/inflate64_priv.h",{ mode=-rw-------
,inode=3533647667,size=8156,blksize=4096 }) = 0 (0x0)
lstat("libclamav/is_tar.c",{ mode=-rw-------
,inode=3533647668,size=2212,blksize=4096 }) = 0 (0x0)
lstat("libclamav/is_tar.h",{ mode=-rw-------
,inode=3533647669,size=1102,blksize=4096 }) = 0 (0x0)
lstat("libclamav/ishield.c",{ mode=-rw-------
,inode=3533647670,size=23291,blksize=4096 }) = 0 (0x0)
lstat("libclamav/ishield.h",{ mode=-rw-------
,inode=3533647671,size=934,blksize=4096 }) = 0 (0x0)
lstat("libclamav/jsparse",{ mode=drwx------
,inode=671908298,size=4096,blksize=4096 }) = 0 (0x0)
stat("libclamav/jsparse/",{ mode=drwx------
,inode=671908298,size=4096,blksize=4096 }) = 0 (0x0)
open("libclamav/jsparse/",O_NONBLOCK,022) = 5 (0x5)
fstat(5,{ mode=drwx------ ,inode=671908298,size=4096,blksize=4096 }) = 0
(0x0)
fcntl(5,F_SETFD,FD_CLOEXEC) = 0 (0x0)
fstatfs(0x5,0x7fffffffcdd0,0x8011e5040,0x2,0x0,0x0) = 0 (0x0)
getdirentries(0x5,0x8011e8000,0x1000,0x8011e5128,0xfffffffffffffb90,0x0)
= 512 (0x200)
lstat("libclamav/jsparse/future_reserved_words.list",{ mode=-rw-------
,inode=671908299,size=227,blksize=4096 }) = 0 (0x0)
lstat("libclamav/jsparse/generated",{ mode=drwx------
,inode=805472893,size=41,blksize=4096 }) = 0 (0x0)
stat("libclamav/jsparse/generated/",{ mode=drwx------
,inode=805472893,size=41,blksize=4096 }) = 0 (0x0)
open("libclamav/jsparse/generated/",O_NONBLOCK,034) = 6 (0x6)
fstat(6,{ mode=drwx------ ,inode=805472893,size=41,blksize=4096 }) = 0 (0x0)
fcntl(6,F_SETFD,FD_CLOEXEC) = 0 (0x0)
fstatfs(0x6,0x7fffffffc960,0x8011e5040,0x3,0x0,0x0) = 0 (0x0)
getdirentries(0x6,0x8011e9000,0x1000,0x8011e5188,0xfffffffffffffb90,0x0)
= 512 (0x200)
lstat("libclamav/jsparse/generated/keywords.h",{ mode=-rw-------
,inode=805472894,size=7530,blksize=4096 }) = 0 (0x0)
lstat("libclamav/jsparse/generated/operators.h",{ mode=-rw-------
,inode=805472895,size=7473,blksize=4096 }) = 0 (0x0)
getdirentries(0x6,0x8011e9000,0x1000,0x8011e5188,0x27,0x27) = 0 (0x0)
lseek(6,0x0,SEEK_SET) = 0 (0x0)
close(6) = 0 (0x0)
lstat("libclamav/jsparse/js-norm.c",{ mode=-rw-------
,inode=671908300,size=42262,blksize=4096 }) = 0 (0x0)
lstat("libclamav/jsparse/js-norm.h",{ mode=-rw-------
,inode=671908301,size=1194,blksize=4096 }) = 0 (0x0)
lstat("libclamav/jsparse/keywords.list",{ mode=-rw-------
,inode=671908302,size=147,blksize=4096 }) = 0 (0x0)
lstat("libclamav/jsparse/lexglobal.h",{ mode=-rw-------
,inode=671908303,size=3087,blksize=4096 }) = 0 (0x0)
lstat("libclamav/jsparse/operators.gperf",{ mode=-rw-------
,inode=671908304,size=931,blksize=4096 }) = 0 (0x0)
lstat("libclamav/jsparse/special_keywords.list",{ mode=-rw-------
,inode=671908305,size=47,blksize=4096 }) = 0 (0x0)
lstat("libclamav/jsparse/textbuf.h",{ mode=-rw-------
,inode=671908306,size=1045,blksize=4096 }) = 0 (0x0)
getdirentries(0x5,0x8011e8000,0x1000,0x8011e5128,0x1b,0x1b) = 0 (0x0)
lseek(5,0x0,SEEK_SET) = 0 (0x0)
close(5) = 0 (0x0)
lstat("libclamav/libclamav.map",{ mode=-rw-------
,inode=3533647672,size=3455,blksize=4096 }) = 0 (0x0)
lstat("libclamav/line.c",{ mode=-rw-------
,inode=3533647673,size=2715,blksize=4096 }) = 0 (0x0)
lstat("libclamav/line.h",{ mode=-rw-------
,inode=3533647674,size=1484,blksize=4096 }) = 0 (0x0)
lstat("libclamav/lzma_iface.c",{ mode=-rw-------
,inode=3533647675,size=3180,blksize=4096 }) = 0 (0x0)
lstat("libclamav/lzma_iface.h",{ mode=-rw-------
,inode=3533647676,size=1679,blksize=4096 }) = 0 (0x0)
lstat("libclamav/macho.c",{ mode=-rw-------
,inode=3533647677,size=14817,blksize=4096 }) = 0 (0x0)
lstat("libclamav/macho.h",{ mode=-rw-------
,inode=3533647678,size=1037,blksize=4096 }) = 0 (0x0)
lstat("libclamav/matcher-ac.c",{ mode=-rw-------
,inode=3533647679,size=48723,blksize=4096 }) = 0 (0x0)
lstat("libclamav/matcher-ac.h",{ mode=-rw-------
,inode=3533647680,size=3570,blksize=4096 }) = 0 (0x0)
lstat("libclamav/matcher-bm.c",{ mode=-rw-------
,inode=3533647681,size=11727,blksize=4096 }) = 0 (0x0)
lstat("libclamav/matcher-bm.h",{ mode=-rw-------
,inode=3533647682,size=1787,blksize=4096 }) = 0 (0x0)
lstat("libclamav/matcher.c",{ mode=-rw-------
,inode=3533647683,size=19988,blksize=4096 }) = 0 (0x0)
lstat("libclamav/matcher.h",{ mode=-rw-------
,inode=3533647684,size=5610,blksize=4096 }) = 0 (0x0)
lstat("libclamav/mbox.c",{ mode=-rw-------
,inode=3533647685,size=93154,blksize=4096 }) = 0 (0x0)
lstat("libclamav/mbox.h",{ mode=-rw-------
,inode=3533647686,size=1481,blksize=4096 }) = 0 (0x0)
lstat("libclamav/md5.c",{ mode=-rw-------
,inode=3533647687,size=7560,blksize=4096 }) = 0 (0x0)
lstat("libclamav/md5.h",{ mode=-rw-------
,inode=3533647688,size=766,blksize=4096 }) = 0 (0x0)
lstat("libclamav/message.c",{ mode=-rw-------
,inode=3533647689,size=58761,blksize=4096 }) = 0 (0x0)
lstat("libclamav/message.h",{ mode=-rw-------
,inode=3533647690,size=3440,blksize=4096 }) = 0 (0x0)
lstat("libclamav/mew.c",{ mode=-rw-------
,inode=3533647691,size=22062,blksize=4096 }) = 0 (0x0)
lstat("libclamav/mew.h",{ mode=-rw-------
,inode=3533647692,size=1356,blksize=4096 }) = 0 (0x0)
lstat("libclamav/mpool.c",{ mode=-rw-------
,inode=3533647693,size=19987,blksize=4096 }) = 0 (0x0)
lstat("libclamav/mpool.h",{ mode=-rw-------
,inode=3533647694,size=2181,blksize=4096 }) = 0 (0x0)
lstat("libclamav/msexpand.c",{ mode=-rw-------
,inode=3533647695,size=3379,blksize=4096 }) = 0 (0x0)
lstat("libclamav/msexpand.h",{ mode=-rw-------
,inode=3533647696,size=872,blksize=4096 }) = 0 (0x0)
lstat("libclamav/mspack.c",{ mode=-rw-------
,inode=3533647697,size=70371,blksize=4096 }) = 0 (0x0)
lstat("libclamav/mspack.h",{ mode=-rw-------
,inode=3533647698,size=11179,blksize=4096 }) = 0 (0x0)
lstat("libclamav/nsis",{ mode=drwx------
,inode=945711766,size=4096,blksize=4096 }) = 0 (0x0)
stat("libclamav/nsis/",{ mode=drwx------
,inode=945711766,size=4096,blksize=4096 }) = 0 (0x0)
open("libclamav/nsis/",O_NONBLOCK,017) = 5 (0x5)
fstat(5,{ mode=drwx------ ,inode=945711766,size=4096,blksize=4096 }) = 0
(0x0)
fcntl(5,F_SETFD,FD_CLOEXEC) = 0 (0x0)
fstatfs(0x5,0x7fffffffcdd0,0x8011e5040,0x2,0x0,0x0) = 0 (0x0)
getdirentries(0x5,0x8011e8000,0x1000,0x8011e5128,0xfffffffffffffb90,0x0)
= 512 (0x200)
lstat("libclamav/nsis/bzlib.c",{ mode=-rw-------
,inode=947061420,size=38398,blksize=4096 }) = 0 (0x0)
lstat("libclamav/nsis/bzlib_private.h",{ mode=-rw-------
,inode=947061421,size=12997,blksize=4096 }) = 0 (0x0)
lstat("libclamav/nsis/infblock.c",{ mode=-rw-------
,inode=947061422,size=22142,blksize=4096 }) = 0 (0x0)
lstat("libclamav/nsis/nsis_bzlib.h",{ mode=-rw-------
,inode=947061423,size=5987,blksize=4096 }) = 0 (0x0)
lstat("libclamav/nsis/nsis_zconf.h",{ mode=-rw-------
,inode=947061424,size=74,blksize=4096 }) = 0 (0x0)
lstat("libclamav/nsis/nsis_zlib.h",{ mode=-rw-------
,inode=947061425,size=7753,blksize=4096 }) = 0 (0x0)
lstat("libclamav/nsis/nsis_zutil.h",{ mode=-rw-------
,inode=947061426,size=1864,blksize=4096 }) = 0 (0x0)
lstat("libclamav/nsis/nulsft.c",{ mode=-rw-------
,inode=947061427,size=13446,blksize=4096 }) = 0 (0x0)
lstat("libclamav/nsis/nulsft.h",{ mode=-rw-------
,inode=947061429,size=869,blksize=4096 }) = 0 (0x0)
getdirentries(0x5,0x8011e8000,0x1000,0x8011e5128,0x17,0x17) = 0 (0x0)
lseek(5,0x0,SEEK_SET) = 0 (0x0)
close(5) = 0 (0x0)
lstat("libclamav/ole2_extract.c",{ mode=-rw-------
,inode=3533647699,size=29069,blksize=4096 }) = 0 (0x0)
lstat("libclamav/ole2_extract.h",{ mode=-rw-------
,inode=3533647700,size=987,blksize=4096 }) = 0 (0x0)
lstat("libclamav/others.c",{ mode=-rw-------
,inode=3533647701,size=25145,blksize=4096 }) = 0 (0x0)
lstat("libclamav/others.h",{ mode=-rw-------
,inode=3533647702,size=17106,blksize=4096 }) = 0 (0x0)
lstat("libclamav/others_common.c",{ mode=-rw-------
,inode=3533647703,size=21064,blksize=4096 }) = 0 (0x0)
lstat("libclamav/packlibs.c",{ mode=-rw-------
,inode=3533647704,size=7863,blksize=4096 }) = 0 (0x0)
lstat("libclamav/packlibs.h",{ mode=-rw-------
,inode=3533647705,size=1039,blksize=4096 }) = 0 (0x0)
lstat("libclamav/pdf.c",{ mode=-rw-------
,inode=3533647707,size=41297,blksize=4096 }) = 0 (0x0)
lstat("libclamav/pdf.h",{ mode=-rw-------
,inode=3533647708,size=870,blksize=4096 }) = 0 (0x0)
lstat("libclamav/pe.c",{ mode=-rw-------
,inode=3533647709,size=87025,blksize=4096 }) = 0 (0x0)
lstat("libclamav/pe.h",{ mode=-rw-------
,inode=3533647710,size=6239,blksize=4096 }) = 0 (0x0)
lstat("libclamav/pe_icons.c",{ mode=-rw-------
,inode=3533647711,size=64573,blksize=4096 }) = 0 (0x0)
lstat("libclamav/pe_icons.h",{ mode=-rw-------
,inode=3523231968,size=1374,blksize=4096 }) = 0 (0x0)
lstat("libclamav/perflogging.c",{ mode=-rw-------
,inode=3523231969,size=3833,blksize=4096 }) = 0 (0x0)
lstat("libclamav/perflogging.h",{ mode=-rw-------
,inode=3523231970,size=2747,blksize=4096 }) = 0 (0x0)
lstat("libclamav/petite.c",{ mode=-rw-------
,inode=3523231971,size=14026,blksize=4096 }) = 0 (0x0)
lstat("libclamav/petite.h",{ mode=-rw-------
,inode=3523231972,size=1056,blksize=4096 }) = 0 (0x0)
lstat("libclamav/phish_domaincheck_db.c",{ mode=-rw-------
,inode=3523231973,size=2237,blksize=4096 }) = 0 (0x0)
lstat("libclamav/phish_domaincheck_db.h",{ mode=-rw-------
,inode=3523231974,size=1253,blksize=4096 }) = 0 (0x0)
lstat("libclamav/phish_whitelist.c",{ mode=-rw-------
,inode=3523231975,size=2329,blksize=4096 }) = 0 (0x0)
lstat("libclamav/phish_whitelist.h",{ mode=-rw-------
,inode=3523231976,size=1197,blksize=4096 }) = 0 (0x0)
lstat("libclamav/phishcheck.c",{ mode=-rw-------
,inode=3523231977,size=45951,blksize=4096 }) = 0 (0x0)
lstat("libclamav/phishcheck.h",{ mode=-rw-------
,inode=3523231978,size=2301,blksize=4096 }) = 0 (0x0)
lstat("libclamav/qsort.c",{ mode=-rw-------
,inode=3523231979,size=5112,blksize=4096 }) = 0 (0x0)
lstat("libclamav/readdb.c",{ mode=-rw-------
,inode=3523231980,size=85767,blksize=4096 }) = 0 (0x0)
lstat("libclamav/readdb.h",{ mode=-rw-------
,inode=3523231982,size=2401,blksize=4096 }) = 0 (0x0)
lstat("libclamav/rebuildpe.c",{ mode=-rw-------
,inode=3523231983,size=6510,blksize=4096 }) = 0 (0x0)
lstat("libclamav/rebuildpe.h",{ mode=-rw-------
,inode=3523231984,size=947,blksize=4096 }) = 0 (0x0)
lstat("libclamav/regex",{ mode=drwx------
,inode=1077739768,size=4096,blksize=4096 }) = 0 (0x0)
stat("libclamav/regex/",{ mode=drwx------
,inode=1077739768,size=4096,blksize=4096 }) = 0 (0x0)
open("libclamav/regex/",O_NONBLOCK,020) = 5 (0x5)
fstat(5,{ mode=drwx------ ,inode=1077739768,size=4096,blksize=4096 }) =
0 (0x0)
fcntl(5,F_SETFD,FD_CLOEXEC) = 0 (0x0)
fstatfs(0x5,0x7fffffffcdd0,0x8011e5040,0x2,0x0,0x0) = 0 (0x0)
getdirentries(0x5,0x8011e8000,0x1000,0x8011e5128,0xfffffffffffffb90,0x0)
= 512 (0x200)
lstat("libclamav/regex/cclass.h",{ mode=-rw-------
,inode=1077739769,size=2846,blksize=4096 }) = 0 (0x0)
lstat("libclamav/regex/cname.h",{ mode=-rw-------
,inode=1077739770,size=4263,blksize=4096 }) = 0 (0x0)
lstat("libclamav/regex/engine.c",{ mode=-rw-------
,inode=1077739771,size=26506,blksize=4096 }) = 0 (0x0)
lstat("libclamav/regex/regcomp.c",{ mode=-rw-------
,inode=1077739774,size=35560,blksize=4096 }) = 0 (0x0)
lstat("libclamav/regex/regerror.c",{ mode=-rw-------
,inode=1077739779,size=4460,blksize=4096 }) = 0 (0x0)
lstat("libclamav/regex/regex.h",{ mode=-rw-------
,inode=1077739780,size=3613,blksize=4096 }) = 0 (0x0)
lstat("libclamav/regex/regex2.h",{ mode=-rw-------
,inode=1077739781,size=6870,blksize=4096 }) = 0 (0x0)
lstat("libclamav/regex/regexec.c",{ mode=-rw-------
,inode=1077739783,size=5756,blksize=4096 }) = 0 (0x0)
lstat("libclamav/regex/regfree.c",{ mode=-rw-------
,inode=1077739784,size=2559,blksize=4096 }) = 0 (0x0)
lstat("libclamav/regex/strlcpy.c",{ mode=-rw-------
,inode=1077739785,size=1590,blksize=4096 }) = 0 (0x0)
lstat("libclamav/regex/utils.h",{ mode=-rw-------
,inode=1077739786,size=2401,blksize=4096 }) = 0 (0x0)
getdirentries(0x5,0x8011e8000,0x1000,0x8011e5128,0x17,0x17) = 0 (0x0)
lseek(5,0x0,SEEK_SET) = 0 (0x0)
close(5) = 0 (0x0)
lstat("libclamav/regex_list.c",{ mode=-rw-------
,inode=3523231985,size=20096,blksize=4096 }) = 0 (0x0)
lstat("libclamav/regex_list.h",{ mode=-rw-------
,inode=3523231986,size=2258,blksize=4096 }) = 0 (0x0)
lstat("libclamav/regex_suffix.c",{ mode=-rw-------
,inode=3523231987,size=10442,blksize=4096 }) = 0 (0x0)
lstat("libclamav/regex_suffix.h",{ mode=-rw-------
,inode=3523231988,size=1177,blksize=4096 }) = 0 (0x0)
lstat("libclamav/rtf.c",{ mode=-rw-------
,inode=3523231989,size=20004,blksize=4096 }) = 0 (0x0)
lstat("libclamav/rtf.h",{ mode=-rw-------
,inode=3523231990,size=854,blksize=4096 }) = 0 (0x0)
lstat("libclamav/scanners.c",{ mode=-rw-------
,inode=3523231991,size=63242,blksize=4096 }) = 0 (0x0)
lstat("libclamav/scanners.h",{ mode=-rw-------
,inode=3523231992,size=938,blksize=4096 }) = 0 (0x0)
lstat("libclamav/sha1.c",{ mode=-rw-------
,inode=3523231995,size=14998,blksize=4096 }) = 0 (0x0)
lstat("libclamav/sha1.h",{ mode=-rw-------
,inode=3523231996,size=2209,blksize=4096 }) = 0 (0x0)
lstat("libclamav/sha256.c",{ mode=-rw-------
,inode=3523231997,size=12499,blksize=4096 }) = 0 (0x0)
lstat("libclamav/sha256.h",{ mode=-rw-------
,inode=3523231998,size=2151,blksize=4096 }) = 0 (0x0)
lstat("libclamav/sis.c",{ mode=-rw-------
,inode=3523231999,size=37808,blksize=4096 }) = 0 (0x0)
lstat("libclamav/sis.h",{ mode=-rw-------
,inode=3523232000,size=853,blksize=4096 }) = 0 (0x0)
lstat("libclamav/special.c",{ mode=-rw-------
,inode=3523232001,size=11374,blksize=4096 }) = 0 (0x0)
lstat("libclamav/special.h",{ mode=-rw-------
,inode=3523232002,size=1285,blksize=4096 }) = 0 (0x0)
lstat("libclamav/spin.c",{ mode=-rw-------
,inode=3523232003,size=13171,blksize=4096 }) = 0 (0x0)
lstat("libclamav/spin.h",{ mode=-rw-------
,inode=3523232004,size=920,blksize=4096 }) = 0 (0x0)
lstat("libclamav/str.c",{ mode=-rw-------
,inode=3523232005,size=12521,blksize=4096 }) = 0 (0x0)
lstat("libclamav/str.h",{ mode=-rw-------
,inode=3523232006,size=2088,blksize=4096 }) = 0 (0x0)
lstat("libclamav/table.c",{ mode=-rw-------
,inode=3523232007,size=4834,blksize=4096 }) = 0 (0x0)
lstat("libclamav/table.h",{ mode=-rw-------
,inode=3523232008,size=1429,blksize=4096 }) = 0 (0x0)
lstat("libclamav/text.c",{ mode=-rw-------
,inode=3523232009,size=9233,blksize=4096 }) = 0 (0x0)
lstat("libclamav/text.h",{ mode=-rw-------
,inode=3523232010,size=1803,blksize=4096 }) = 0 (0x0)
lstat("libclamav/textdet.c",{ mode=-rw-------
,inode=3523232011,size=5981,blksize=4096 }) = 0 (0x0)
lstat("libclamav/textdet.h",{ mode=-rw-------
,inode=3523232012,size=860,blksize=4096 }) = 0 (0x0)
lstat("libclamav/textnorm.c",{ mode=-rw-------
,inode=3523232013,size=4154,blksize=4096 }) = 0 (0x0)
lstat("libclamav/textnorm.h",{ mode=-rw-------
,inode=3523232014,size=1143,blksize=4096 }) = 0 (0x0)
lstat("libclamav/tnef.c",{ mode=-rw-------
,inode=3523232015,size=9814,blksize=4096 }) = 0 (0x0)
lstat("libclamav/tnef.h",{ mode=-rw-------
,inode=3523232016,size=870,blksize=4096 }) = 0 (0x0)
lstat("libclamav/type_desc.h",{ mode=-rw-------
,inode=3523232017,size=3041,blksize=4096 }) = 0 (0x0)
lstat("libclamav/unarj.c",{ mode=-rw-------
,inode=3523232018,size=26039,blksize=4096 }) = 0 (0x0)
lstat("libclamav/unarj.h",{ mode=-rw-------
,inode=3523232019,size=1213,blksize=4096 }) = 0 (0x0)
lstat("libclamav/uniq.c",{ mode=-rw-------
,inode=3523232020,size=2800,blksize=4096 }) = 0 (0x0)
lstat("libclamav/uniq.h",{ mode=-rw-------
,inode=3523232021,size=1225,blksize=4096 }) = 0 (0x0)
lstat("libclamav/unsp.c",{ mode=-rw-------
,inode=3523232022,size=15170,blksize=4096 }) = 0 (0x0)
lstat("libclamav/unsp.h",{ mode=-rw-------
,inode=3523232023,size=1687,blksize=4096 }) = 0 (0x0)
lstat("libclamav/untar.c",{ mode=-rw-------
,inode=3523232024,size=5811,blksize=4096 }) = 0 (0x0)
lstat("libclamav/untar.h",{ mode=-rw-------
,inode=3523232025,size=1340,blksize=4096 }) = 0 (0x0)
lstat("libclamav/unzip.c",{ mode=-rw-------
,inode=3523232026,size=15846,blksize=4096 }) = 0 (0x0)
lstat("libclamav/unzip.h",{ mode=-rw-------
,inode=3523232027,size=4249,blksize=4096 }) = 0 (0x0)
lstat("libclamav/upack.c",{ mode=-rw-------
,inode=3523232028,size=22118,blksize=4096 }) = 0 (0x0)
lstat("libclamav/upack.h",{ mode=-rw-------
,inode=3523232029,size=972,blksize=4096 }) = 0 (0x0)
lstat("libclamav/upx.c",{ mode=-rw-------
,inode=3523232030,size=16871,blksize=4096 }) = 0 (0x0)
lstat("libclamav/upx.h",{ mode=-rw-------
,inode=3523232031,size=1163,blksize=4096 }) = 0 (0x0)
lstat("libclamav/uuencode.c",{ mode=-rw-------
,inode=3517287488,size=2945,blksize=4096 }) = 0 (0x0)
lstat("libclamav/uuencode.h",{ mode=-rw-------
,inode=3517287489,size=964,blksize=4096 }) = 0 (0x0)
lstat("libclamav/vba_extract.c",{ mode=-rw-------
,inode=3517287492,size=28078,blksize=4096 }) = 0 (0x0)
lstat("libclamav/vba_extract.h",{ mode=-rw-------
,inode=3517287494,size=1540,blksize=4096 }) = 0 (0x0)
lstat("libclamav/version.c",{ mode=-rw-------
,inode=3517287495,size=293,blksize=4096 }) = 0 (0x0)
lstat("libclamav/wwunpack.c",{ mode=-rw-------
,inode=3517287496,size=5492,blksize=4096 }) = 0 (0x0)
lstat("libclamav/wwunpack.h",{ mode=-rw-------
,inode=3517287497,size=933,blksize=4096 }) = 0 (0x0)
lstat("libclamav/yc.c",{ mode=-rw-------
,inode=3517287498,size=6140,blksize=4096 }) = 0 (0x0)
lstat("libclamav/yc.h",{ mode=-rw-------
,inode=3517287499,size=956,blksize=4096 }) = 0 (0x0)
lstat("libclamav/Makefile",{ mode=-rw-r--r--
,inode=270743026,size=165975,blksize=4096 }) = 0 (0x0)
lstat("libclamav/.deps",{ mode=drwxr-xr-x
,inode=404986341,size=8192,blksize=4096 }) = 0 (0x0)
getdirentries(0x4,0x8011e7000,0x1000,0x8011e50c8,0xffff80080111dc64,0x0)
= 0 (0x0)
lseek(4,0x0,SEEK_SET) = 0 (0x0)
close(4) = 0 (0x0)
lstat("libclamav.pc",{ mode=-rw-r--r--
,inode=270743009,size=236,blksize=4096 }) = 0 (0x0)
getdirentries(0x3,0x8011e6000,0x1000,0x8011e5068,0x8011df190,0x0) = 0 (0x0)
lseek(3,0x0,SEEK_SET) = 0 (0x0)
close(3) = 0 (0x0)
lstat("libclamav.pc",{ mode=-rw-r--r--
,inode=270743009,size=236,blksize=4096 }) = 0 (0x0)
lstat("libclamav/.deps/",{ mode=drwxr-xr-x
,inode=404986341,size=8192,blksize=4096 }) = 0 (0x0)
fstat(1,{ mode=crw--w---- ,inode=89,size=0,blksize=4096 }) = 0 (0x0)
ioctl(1,TIOCGETA,0xffffdce0) = 0 (0x0)
write(1,"Removing libclamav/.deps/\n",26) = 26 (0x1a)
stat("libclamav/.deps/.git",0x7fffffffe0a0) ERR#2 'No such file or
directory'
open("libclamav/.deps/.git/HEAD",O_RDONLY,00) ERR#2 'No such file or
directory'
open("libclamav/.deps/.git/packed-refs",O_RDONLY,0666) ERR#2 'No such
file or directory'
stat("libclamav/.deps/",{ mode=drwxr-xr-x
,inode=404986341,size=8192,blksize=4096 }) = 0 (0x0)
open("libclamav/.deps/",O_NONBLOCK,00) = 3 (0x3)
fstat(3,{ mode=drwxr-xr-x ,inode=404986341,size=8192,blksize=4096 }) = 0
(0x0)
fcntl(3,F_SETFD,FD_CLOEXEC) = 0 (0x0)
fstatfs(0x3,0x7fffffffdee0,0x8011e1040,0x0,0x0,0x1e008) = 0 (0x0)
getdirentries(0x3,0x8011e2000,0x1000,0x8011e1068,0x0,0x0) = 4096 (0x1000)
lstat("libclamav/.deps/bytecode_nojit.Plo",{ mode=-rw-r--r--
,inode=404986343,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/bytecode_nojit.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_la-md5.Plo",{
mode=-rw-r--r-- ,inode=404986344,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_la-md5.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_la-others_common.Plo",{
mode=-rw-r--r-- ,inode=404986345,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_la-others_common.Plo")
= 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_la-qsort.Plo",{
mode=-rw-r--r-- ,inode=404986346,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_la-qsort.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_la-regcomp.Plo",{
mode=-rw-r--r-- ,inode=404986347,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_la-regcomp.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_la-regerror.Plo",{
mode=-rw-r--r-- ,inode=404986348,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_la-regerror.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_la-regexec.Plo",{
mode=-rw-r--r-- ,inode=404986349,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_la-regexec.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_la-regfree.Plo",{
mode=-rw-r--r-- ,inode=404986350,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_la-regfree.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_la-str.Plo",{
mode=-rw-r--r-- ,inode=404986352,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_la-str.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_la-strlcpy.Plo",{
mode=-rw-r--r-- ,inode=404986353,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_la-strlcpy.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-md5.Plo",{
mode=-rw-r--r-- ,inode=404986354,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-md5.Plo")
= 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-others_common.Plo",{
mode=-rw-r--r-- ,inode=404986355,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-others_common.Plo")
= 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-qsort.Plo",{ mode=-rw-r--r--
,inode=404986356,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-qsort.Plo") =
0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-regcomp.Plo",{
mode=-rw-r--r-- ,inode=404986363,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-regcomp.Plo")
= 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-regerror.Plo",{
mode=-rw-r--r-- ,inode=404986366,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-regerror.Plo")
= 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-regexec.Plo",{
mode=-rw-r--r-- ,inode=404986367,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-regexec.Plo")
= 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-regfree.Plo",{
mode=-rw-r--r-- ,inode=404986368,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-regfree.Plo")
= 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-str.Plo",{
mode=-rw-r--r-- ,inode=404986369,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-str.Plo")
= 0 (0x0)
lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-strlcpy.Plo",{
mode=-rw-r--r-- ,inode=404986370,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-strlcpy.Plo")
= 0 (0x0)
lstat("libclamav/.deps/libclamav_la-7z.Plo",{ mode=-rw-r--r--
,inode=404986371,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-7z.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-7zBuf.Plo",{ mode=-rw-r--r--
,inode=404986372,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-7zBuf.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-7zCrc.Plo",{ mode=-rw-r--r--
,inode=404986373,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-7zCrc.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-7zDecode.Plo",{ mode=-rw-r--r--
,inode=404986374,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-7zDecode.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-7zExtract.Plo",{ mode=-rw-r--r--
,inode=404986375,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-7zExtract.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-7zFile.Plo",{ mode=-rw-r--r--
,inode=404986376,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-7zFile.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-7zHeader.Plo",{ mode=-rw-r--r--
,inode=404986377,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-7zHeader.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-7zIn.Plo",{ mode=-rw-r--r--
,inode=404986378,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-7zIn.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-7zItem.Plo",{ mode=-rw-r--r--
,inode=404986379,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-7zItem.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-7zStream.Plo",{ mode=-rw-r--r--
,inode=404986380,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-7zStream.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-Bcj2.Plo",{ mode=-rw-r--r--
,inode=404986381,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-Bcj2.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-Bra.Plo",{ mode=-rw-r--r--
,inode=404986382,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-Bra.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-Bra86.Plo",{ mode=-rw-r--r--
,inode=404986384,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-Bra86.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-LzmaDec.Plo",{ mode=-rw-r--r--
,inode=404986385,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-LzmaDec.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-aspack.Plo",{ mode=-rw-r--r--
,inode=404986386,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-aspack.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-autoit.Plo",{ mode=-rw-r--r--
,inode=404986387,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-autoit.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-bignum.Plo",{ mode=-rw-r--r--
,inode=404986390,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-bignum.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-binhex.Plo",{ mode=-rw-r--r--
,inode=404986391,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-binhex.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-blob.Plo",{ mode=-rw-r--r--
,inode=404986392,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-blob.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-bytecode.Plo",{ mode=-rw-r--r--
,inode=404986393,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-bytecode.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-bytecode_api.Plo",{ mode=-rw-r--r--
,inode=404986394,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-bytecode_api.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-bytecode_api_decl.Plo",{
mode=-rw-r--r-- ,inode=404986395,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-bytecode_api_decl.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-bytecode_vm.Plo",{ mode=-rw-r--r--
,inode=404986396,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-bytecode_vm.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-bzlib.Plo",{ mode=-rw-r--r--
,inode=404986397,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-bzlib.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-cab.Plo",{ mode=-rw-r--r--
,inode=404986398,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-cab.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-cache.Plo",{ mode=-rw-r--r--
,inode=404986399,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-cache.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-chmunpack.Plo",{ mode=-rw-r--r--
,inode=410575698,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-chmunpack.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-cpio.Plo",{ mode=-rw-r--r--
,inode=410575699,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-cpio.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-cvd.Plo",{ mode=-rw-r--r--
,inode=410575700,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-cvd.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-dconf.Plo",{ mode=-rw-r--r--
,inode=410575701,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-dconf.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-disasm.Plo",{ mode=-rw-r--r--
,inode=410575702,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-disasm.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-dlp.Plo",{ mode=-rw-r--r--
,inode=410575704,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-dlp.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-dsig.Plo",{ mode=-rw-r--r--
,inode=410575705,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-dsig.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-elf.Plo",{ mode=-rw-r--r--
,inode=410575706,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-elf.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-entconv.Plo",{ mode=-rw-r--r--
,inode=410575707,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-entconv.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-explode.Plo",{ mode=-rw-r--r--
,inode=410575708,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-explode.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-filetypes.Plo",{ mode=-rw-r--r--
,inode=410575709,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-filetypes.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-filtering.Plo",{ mode=-rw-r--r--
,inode=410575710,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-filtering.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-fmap.Plo",{ mode=-rw-r--r--
,inode=410575711,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-fmap.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-fsg.Plo",{ mode=-rw-r--r--
,inode=410741760,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-fsg.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-hashtab.Plo",{ mode=-rw-r--r--
,inode=410741761,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-hashtab.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-htmlnorm.Plo",{ mode=-rw-r--r--
,inode=410741763,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-htmlnorm.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-infblock.Plo",{ mode=-rw-r--r--
,inode=410741764,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-infblock.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-inflate64.Plo",{ mode=-rw-r--r--
,inode=410741765,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-inflate64.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-is_tar.Plo",{ mode=-rw-r--r--
,inode=410741766,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-is_tar.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-ishield.Plo",{ mode=-rw-r--r--
,inode=410741767,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-ishield.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-js-norm.Plo",{ mode=-rw-r--r--
,inode=410741768,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-js-norm.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-line.Plo",{ mode=-rw-r--r--
,inode=410741769,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-line.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-lzma_iface.Plo",{ mode=-rw-r--r--
,inode=410882114,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-lzma_iface.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-macho.Plo",{ mode=-rw-r--r--
,inode=430554068,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-macho.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-matcher-ac.Plo",{ mode=-rw-r--r--
,inode=430554083,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-matcher-ac.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-matcher-bm.Plo",{ mode=-rw-r--r--
,inode=430554097,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-matcher-bm.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-matcher.Plo",{ mode=-rw-r--r--
,inode=430554109,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-matcher.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-mbox.Plo",{ mode=-rw-r--r--
,inode=430554219,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-mbox.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-message.Plo",{ mode=-rw-r--r--
,inode=430554234,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-message.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-mew.Plo",{ mode=-rw-r--r--
,inode=430554264,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-mew.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-mpool.Plo",{ mode=-rw-r--r--
,inode=430554949,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-mpool.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-msexpand.Plo",{ mode=-rw-r--r--
,inode=430554960,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-msexpand.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-mspack.Plo",{ mode=-rw-r--r--
,inode=430554967,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-mspack.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-nulsft.Plo",{ mode=-rw-r--r--
,inode=430554978,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-nulsft.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-ole2_extract.Plo",{ mode=-rw-r--r--
,inode=430554983,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-ole2_extract.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-others.Plo",{ mode=-rw-r--r--
,inode=430555914,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-others.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-packlibs.Plo",{ mode=-rw-r--r--
,inode=430555917,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-packlibs.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-pdf.Plo",{ mode=-rw-r--r--
,inode=430556219,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-pdf.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-pe.Plo",{ mode=-rw-r--r--
,inode=430556233,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-pe.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-pe_icons.Plo",{ mode=-rw-r--r--
,inode=430556364,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-pe_icons.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-perflogging.Plo",{ mode=-rw-r--r--
,inode=430557858,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-perflogging.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-petite.Plo",{ mode=-rw-r--r--
,inode=430557873,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-petite.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-phish_domaincheck_db.Plo",{
mode=-rw-r--r-- ,inode=430557885,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-phish_domaincheck_db.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-phish_whitelist.Plo",{
mode=-rw-r--r-- ,inode=430558515,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-phish_whitelist.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-phishcheck.Plo",{ mode=-rw-r--r--
,inode=430558533,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-phishcheck.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-readdb.Plo",{ mode=-rw-r--r--
,inode=430559843,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-readdb.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-rebuildpe.Plo",{ mode=-rw-r--r--
,inode=430559859,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-rebuildpe.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-regex_list.Plo",{ mode=-rw-r--r--
,inode=430559880,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-regex_list.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-regex_suffix.Plo",{ mode=-rw-r--r--
,inode=430559890,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-regex_suffix.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-rtf.Plo",{ mode=-rw-r--r--
,inode=430559898,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-rtf.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-scanners.Plo",{ mode=-rw-r--r--
,inode=430560399,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-scanners.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-sha1.Plo",{ mode=-rw-r--r--
,inode=430560420,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-sha1.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-sha256.Plo",{ mode=-rw-r--r--
,inode=430560868,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-sha256.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-sis.Plo",{ mode=-rw-r--r--
,inode=430560898,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-sis.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-special.Plo",{ mode=-rw-r--r--
,inode=430560912,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-special.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-spin.Plo",{ mode=-rw-r--r--
,inode=430560926,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-spin.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-table.Plo",{ mode=-rw-r--r--
,inode=430561715,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-table.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-text.Plo",{ mode=-rw-r--r--
,inode=430561755,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-text.Plo") = 0 (0x0)
lstat("libclamav/.deps/libclamav_la-textdet.Plo",{ mode=-rw-r--r--
,inode=430561772,size=8,blksize=4096 }) = 0 (0x0)
unlink("libclamav/.deps/libclamav_la-textdet.Plo") = 0 (0x0)
getdirentries(0x3,0x8011e2000,0x1000,0x8011e1068,0xac,0x1b008) = 0 (0x0)
lseek(3,0x0,SEEK_SET) = 0 (0x0)
close(3) = 0 (0x0)
rmdir(0x8011e3080,0x5ff560,0x10,0x2000,0x626298,0x0) ERR#66 'Directory
not empty'
warning: failed to remove 'libclamav/.deps/'
write(2,"warning: failed to remove 'libcl"...,45) = 45 (0x2d)
Full output of 'truss rm -rf libclamav/.deps':
__sysctl(0x7fffffffe3f0,0x2,0x7fffffffe40c,0x7fffffffe400,0x0,0x0) = 0 (0x0)
mmap(0x0,656,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 34365190144
(0x800533000)
munmap(0x800533000,656) = 0 (0x0)
__sysctl(0x7fffffffe460,0x2,0x80063d328,0x7fffffffe458,0x0,0x0) = 0 (0x0)
mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =
34365190144 (0x800533000)
issetugid(0x800534015,0x80052e686,0x800649b30,0x800649b00,0x598f,0x0) =
0 (0x0)
open("/etc/libmap.conf",O_RDONLY,0666) ERR#2 'No such file or directory'
open("/var/run/ld-elf.so.hints",O_RDONLY,057) = 3 (0x3)
read(3,"Ehnt\^A\0\0\0\M^@\0\0\0-\0\0\0\0"...,128) = 128 (0x80)
lseek(3,0x80,SEEK_SET) = 128 (0x80)
read(3,"/lib:/usr/lib:/usr/lib/compat:/u"...,45) = 45 (0x2d)
close(3) = 0 (0x0)
access("/lib/libc.so.7",0) = 0 (0x0)
open("/lib/libc.so.7",O_RDONLY,030751000) = 3 (0x3)
fstat(3,{ mode=-r--r--r-- ,inode=38225,size=1265520,blksize=4096 }) = 0
(0x0)
read(3,"\^?ELF\^B\^A\^A\t\0\0\0\0\0\0\0"...,4096) = 4096 (0x1000)
mmap(0x0,2334720,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) =
34366332928 (0x80064a000)
mmap(0x80064a000,1052672,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE,3,0x0)
= 34366332928 (0x80064a000)
mmap(0x80084b000,122880,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,3,0x101000)
= 34368434176 (0x80084b000)
mprotect(0x800869000,110592,PROT_READ|PROT_WRITE) = 0 (0x0)
close(3) = 0 (0x0)
sysarch(0x81,0x7fffffffe4e0,0x8005360c8,0x0,0xffffffffffce6310,0x800665d70)
= 0 (0x0)
mmap(0x0,896,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 34365222912
(0x80053b000)
munmap(0x80053b000,896) = 0 (0x0)
mmap(0x0,43584,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 34365222912
(0x80053b000)
munmap(0x80053b000,43584) = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0)
= 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0)
__sysctl(0x7fffffffe480,0x2,0x503580,0x7fffffffe478,0x0,0x0) = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0)
= 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0)
geteuid(0x7fffffffec20,0x402755,0xf,0x5f,0x0,0x0) = 1066 (0x42a)
sigaction(SIGINFO,{ 0x401410 SA_RESTART ss_t },{ SIG_DFL 0x0 ss_t }) = 0
(0x0)
ioctl(0,TIOCGETA,0xffffeb60) = 0 (0x0)
__sysctl(0x7fffffffe660,0x2,0x80086e788,0x7fffffffe658,0x0,0x0) = 0 (0x0)
readlink("/etc/malloc.conf",0x7fffffffe680,1024) ERR#2 'No such file or
directory'
issetugid(0x800742031,0x7fffffffe680,0xffffffffffffffff,0x0,0x0,0x0) = 0
(0x0)
break(0x600000) = 0 (0x0)
__sysctl(0x7fffffffe940,0x2,0x7fffffffe95c,0x7fffffffe950,0x0,0x0) = 0 (0x0)
mmap(0x0,1048576,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =
34368667648 (0x800884000)
mmap(0x800984000,507904,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =
34369716224 (0x800984000)
munmap(0x800884000,507904) = 0 (0x0)
lstat("libclamav/.deps",{ mode=drwxr-xr-x
,inode=58548,size=8192,blksize=4096 }) = 0 (0x0)
open(".",O_RDONLY,00) = 3 (0x3)
fchdir(0x3,0x5035c0,0x0,0x2,0x1cecf8,0x0) = 0 (0x0)
stat("libclamav/.deps",{ mode=drwxr-xr-x
,inode=58548,size=8192,blksize=4096 }) = 0 (0x0)
open("libclamav/.deps",O_NONBLOCK,044270600) = 4 (0x4)
fstat(4,{ mode=drwxr-xr-x ,inode=58548,size=8192,blksize=4096 }) = 0 (0x0)
fcntl(4,F_SETFD,FD_CLOEXEC) = 0 (0x0)
__sysctl(0x7fffffffe720,0x2,0x800880898,0x7fffffffe718,0x0,0x0) = 0 (0x0)
fstatfs(0x4,0x7fffffffe810,0x800880898,0x7fffffffe718,0x0,0x0) = 0 (0x0)
statfs(0x80090b200,0x800902358,0x800917180,0x0,0x0,0x8009002c0) = 0 (0x0)
fstat(4,{ mode=drwxr-xr-x ,inode=58548,size=8192,blksize=4096 }) = 0 (0x0)
fchdir(0x4,0x7fffffffea20,0x4,0x0,0x0,0x8009002c0) = 0 (0x0)
getdirentries(0x4,0x80091b000,0x1000,0x80091a068,0x0,0x8009002c0) = 4096
(0x1000)
getdirentries(0x4,0x80091b000,0x1000,0x80091a068,0x6c6c,0x1) = 1024 (0x400)
getdirentries(0x4,0x80091b000,0x1000,0x80091a068,0x8afc,0x1) = 0 (0x0)
lseek(4,0x0,SEEK_SET) = 0 (0x0)
close(4) = 0 (0x0)
unlink("bytecode_nojit.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_la-md5.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_la-others_common.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_la-qsort.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_la-regcomp.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_la-regerror.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_la-regexec.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_la-regfree.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_la-str.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_la-strlcpy.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_nothreads_la-md5.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_nothreads_la-others_common.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_nothreads_la-qsort.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_nothreads_la-regcomp.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_nothreads_la-regerror.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_nothreads_la-regexec.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_nothreads_la-regfree.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_nothreads_la-str.Plo") = 0 (0x0)
unlink("libclamav_internal_utils_nothreads_la-strlcpy.Plo") = 0 (0x0)
unlink("libclamav_la-7z.Plo") = 0 (0x0)
unlink("libclamav_la-7zBuf.Plo") = 0 (0x0)
unlink("libclamav_la-7zCrc.Plo") = 0 (0x0)
unlink("libclamav_la-7zDecode.Plo") = 0 (0x0)
unlink("libclamav_la-7zExtract.Plo") = 0 (0x0)
unlink("libclamav_la-7zFile.Plo") = 0 (0x0)
unlink("libclamav_la-7zHeader.Plo") = 0 (0x0)
unlink("libclamav_la-7zIn.Plo") = 0 (0x0)
unlink("libclamav_la-7zItem.Plo") = 0 (0x0)
unlink("libclamav_la-7zStream.Plo") = 0 (0x0)
unlink("libclamav_la-Bcj2.Plo") = 0 (0x0)
unlink("libclamav_la-Bra.Plo") = 0 (0x0)
unlink("libclamav_la-Bra86.Plo") = 0 (0x0)
unlink("libclamav_la-LzmaDec.Plo") = 0 (0x0)
unlink("libclamav_la-aspack.Plo") = 0 (0x0)
unlink("libclamav_la-autoit.Plo") = 0 (0x0)
unlink("libclamav_la-bignum.Plo") = 0 (0x0)
unlink("libclamav_la-binhex.Plo") = 0 (0x0)
unlink("libclamav_la-blob.Plo") = 0 (0x0)
unlink("libclamav_la-bytecode.Plo") = 0 (0x0)
unlink("libclamav_la-bytecode_api.Plo") = 0 (0x0)
unlink("libclamav_la-bytecode_api_decl.Plo") = 0 (0x0)
unlink("libclamav_la-bytecode_vm.Plo") = 0 (0x0)
unlink("libclamav_la-bzlib.Plo") = 0 (0x0)
unlink("libclamav_la-cab.Plo") = 0 (0x0)
unlink("libclamav_la-cache.Plo") = 0 (0x0)
unlink("libclamav_la-chmunpack.Plo") = 0 (0x0)
unlink("libclamav_la-cpio.Plo") = 0 (0x0)
unlink("libclamav_la-cvd.Plo") = 0 (0x0)
unlink("libclamav_la-dconf.Plo") = 0 (0x0)
unlink("libclamav_la-disasm.Plo") = 0 (0x0)
unlink("libclamav_la-dlp.Plo") = 0 (0x0)
unlink("libclamav_la-dsig.Plo") = 0 (0x0)
unlink("libclamav_la-elf.Plo") = 0 (0x0)
unlink("libclamav_la-entconv.Plo") = 0 (0x0)
unlink("libclamav_la-explode.Plo") = 0 (0x0)
unlink("libclamav_la-filetypes.Plo") = 0 (0x0)
unlink("libclamav_la-filtering.Plo") = 0 (0x0)
unlink("libclamav_la-fmap.Plo") = 0 (0x0)
unlink("libclamav_la-fsg.Plo") = 0 (0x0)
unlink("libclamav_la-hashtab.Plo") = 0 (0x0)
unlink("libclamav_la-htmlnorm.Plo") = 0 (0x0)
unlink("libclamav_la-infblock.Plo") = 0 (0x0)
unlink("libclamav_la-inflate64.Plo") = 0 (0x0)
unlink("libclamav_la-is_tar.Plo") = 0 (0x0)
unlink("libclamav_la-ishield.Plo") = 0 (0x0)
unlink("libclamav_la-js-norm.Plo") = 0 (0x0)
unlink("libclamav_la-line.Plo") = 0 (0x0)
unlink("libclamav_la-lzma_iface.Plo") = 0 (0x0)
unlink("libclamav_la-macho.Plo") = 0 (0x0)
unlink("libclamav_la-matcher-ac.Plo") = 0 (0x0)
unlink("libclamav_la-matcher-bm.Plo") = 0 (0x0)
unlink("libclamav_la-matcher.Plo") = 0 (0x0)
unlink("libclamav_la-mbox.Plo") = 0 (0x0)
unlink("libclamav_la-message.Plo") = 0 (0x0)
unlink("libclamav_la-mew.Plo") = 0 (0x0)
unlink("libclamav_la-mpool.Plo") = 0 (0x0)
unlink("libclamav_la-msexpand.Plo") = 0 (0x0)
unlink("libclamav_la-mspack.Plo") = 0 (0x0)
unlink("libclamav_la-nulsft.Plo") = 0 (0x0)
unlink("libclamav_la-ole2_extract.Plo") = 0 (0x0)
unlink("libclamav_la-others.Plo") = 0 (0x0)
unlink("libclamav_la-packlibs.Plo") = 0 (0x0)
unlink("libclamav_la-pdf.Plo") = 0 (0x0)
unlink("libclamav_la-pe.Plo") = 0 (0x0)
unlink("libclamav_la-pe_icons.Plo") = 0 (0x0)
unlink("libclamav_la-perflogging.Plo") = 0 (0x0)
unlink("libclamav_la-petite.Plo") = 0 (0x0)
unlink("libclamav_la-phish_domaincheck_db.Plo") = 0 (0x0)
unlink("libclamav_la-phish_whitelist.Plo") = 0 (0x0)
unlink("libclamav_la-phishcheck.Plo") = 0 (0x0)
unlink("libclamav_la-readdb.Plo") = 0 (0x0)
unlink("libclamav_la-rebuildpe.Plo") = 0 (0x0)
unlink("libclamav_la-regex_list.Plo") = 0 (0x0)
unlink("libclamav_la-regex_suffix.Plo") = 0 (0x0)
unlink("libclamav_la-rtf.Plo") = 0 (0x0)
unlink("libclamav_la-scanners.Plo") = 0 (0x0)
unlink("libclamav_la-sha1.Plo") = 0 (0x0)
unlink("libclamav_la-sha256.Plo") = 0 (0x0)
unlink("libclamav_la-sis.Plo") = 0 (0x0)
unlink("libclamav_la-special.Plo") = 0 (0x0)
unlink("libclamav_la-spin.Plo") = 0 (0x0)
unlink("libclamav_la-table.Plo") = 0 (0x0)
unlink("libclamav_la-text.Plo") = 0 (0x0)
unlink("libclamav_la-textdet.Plo") = 0 (0x0)
unlink("libclamav_la-textnorm.Plo") = 0 (0x0)
unlink("libclamav_la-tnef.Plo") = 0 (0x0)
unlink("libclamav_la-unarj.Plo") = 0 (0x0)
unlink("libclamav_la-uniq.Plo") = 0 (0x0)
unlink("libclamav_la-unsp.Plo") = 0 (0x0)
unlink("libclamav_la-untar.Plo") = 0 (0x0)
unlink("libclamav_la-unzip.Plo") = 0 (0x0)
unlink("libclamav_la-upack.Plo") = 0 (0x0)
unlink("libclamav_la-upx.Plo") = 0 (0x0)
unlink("libclamav_la-uuencode.Plo") = 0 (0x0)
unlink("libclamav_la-vba_extract.Plo") = 0 (0x0)
unlink("libclamav_la-version.Plo") = 0 (0x0)
unlink("libclamav_la-wwunpack.Plo") = 0 (0x0)
unlink("libclamav_la-yc.Plo") = 0 (0x0)
unlink("unrar.Plo") = 0 (0x0)
unlink("unrar15.Plo") = 0 (0x0)
unlink("unrar20.Plo") = 0 (0x0)
unlink("unrar_iface.Plo") = 0 (0x0)
unlink("unrarcmd.Plo") = 0 (0x0)
unlink("unrarfilter.Plo") = 0 (0x0)
unlink("unrarhlp.Plo") = 0 (0x0)
unlink("unrarppm.Plo") = 0 (0x0)
unlink("unrarvm.Plo") = 0 (0x0)
fchdir(0x3,0x5035c0,0x80090b200,0x5036c0,0x5036c0,0x0) = 0 (0x0)
rmdir(0x80090b200,0x5035c0,0x80090b200,0x5036c0,0x5036c0,0x0) = 0 (0x0)
fchdir(0x3,0x5035c0,0x5036c0,0x5036c0,0x5036c0,0x0) = 0 (0x0)
close(3) = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0)
= 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0)
sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0)
= 0 (0x0)
sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0)
process exit, rval = 0
Best regards,
--Edwin
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [BUG] git clean not working on FreeBSD/NFS
2010-06-17 14:26 [BUG] git clean not working on FreeBSD/NFS Török Edwin
@ 2010-06-17 15:18 ` Henrik Grubbström
2010-06-18 11:03 ` Török Edwin
0 siblings, 1 reply; 10+ messages in thread
From: Henrik Grubbström @ 2010-06-17 15:18 UTC (permalink / raw)
To: git
Török Edwin <edwintorok <at> gmail.com> writes:
> Hi,
>
> I am running git 1.7.1 on a FreeBSD 8 box which has its home dir mounted
> via NFS (I guess the NFS server is a Linux box).
> When running 'git clean -x -f -d' it fails to remove some directories:
> warning: failed to remove 'libclamav/.deps/'
> warning: failed to remove 'libclamav/.libs/'
> warning: failed to remove 'libclamav/c++/.deps/'
> warning: failed to remove 'libclamav/c++/.libs/'
> warning: failed to remove 'libclamav/c++/llvm/test/CodeGen/X86/Output/'
>
> This causes buildbot managed builds to fail every 2nd time.
Sounds like the classic nfs problem with references to open deleted files.
If you look closer at the failing directories, I bet that you'll find files with
names like ".nfsDEAD".
You can use eg lsof to find the process that holds the open file reference:
$ lsof tmp/.nfs536B
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
pike 29705 grubba 8w VREG 285,4 0 10977399 tmp/.nfs536B
/grubba
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [BUG] git clean not working on FreeBSD/NFS
2010-06-17 15:18 ` Henrik Grubbström
@ 2010-06-18 11:03 ` Török Edwin
2010-06-18 11:07 ` [PATCH] Fix 'git clean' failure on NFS Török Edwin
0 siblings, 1 reply; 10+ messages in thread
From: Török Edwin @ 2010-06-18 11:03 UTC (permalink / raw)
To: git
Henrik Grubbström <grubba <at> grubba.org> writes:
>
> Sounds like the classic nfs problem with references to open deleted files.
> If you look closer at the failing directories, I bet that you'll find files
> with names like ".nfsDEAD".
No, these are all the files that remain in libclamav/.deps (ls -al):
edwin@gcc101:~/buildbot/gcc4.2/build$ ls -al libclamav/.deps/
total 116
drwxr-xr-x 2 edwin edwin 8192 Jun 18 03:24 .
drwx------ 8 edwin edwin 8192 Jun 18 03:24 ..
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-textnorm.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-tnef.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-unarj.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-uniq.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-unsp.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-untar.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-unzip.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-upack.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-upx.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-uuencode.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-vba_extract.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-version.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-wwunpack.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-yc.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrar.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrar15.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrar20.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrar_iface.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrarcmd.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrarfilter.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrarhlp.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrarppm.Plo
-rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrarvm.Plo
If I run 'git clean -x -f -d -- libclamav' a few more times they are
eventually removed.
It is interesting that every time I repeat the config.status/git clean steps
I get the *same* files remaining in the directory.
There were 127 files initially, these 23 always remain behind on 1st run, a 2nd
git clean removes them (but some other .deps directories need even more reruns
of git clean).
I added a printf in remove_dir_recursively, and those files are not even
printed.
Now I see the bug!
You do a single readdir() pass, and unlink() files. That is wrong for 2 reasons:
- new files may be added in the meantime and you have a race condition
- unlinking a file can cause order of files to be rearranged, moved. But your
readdir() cursors stays where it was before, hence you will miss enumerating
some files that are there.
The fix is to rewinddir() if you unlinked anything (won't fix the race condition
but that can't be eliminated completely anyway).
I'm sending a patch as reply to this mail.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] Fix 'git clean' failure on NFS.
2010-06-18 11:03 ` Török Edwin
@ 2010-06-18 11:07 ` Török Edwin
2010-06-18 12:17 ` Johannes Sixt
2010-06-18 12:29 ` Erik Faye-Lund
0 siblings, 2 replies; 10+ messages in thread
From: Török Edwin @ 2010-06-18 11:07 UTC (permalink / raw)
To: git; +Cc: Török Edwin
readdir() used to do a single pass, which is not always enough.
If you unlink some files/rmdir some subdirs then there might be some
files you haven't seen yet *before* the readdir cursor (files get rearranged
in the directory, etc.).
The fix is to do an additional readdir() pass if we unlinked/rmdired something.
This is easily accomplished by using rewinddir.
Signed-off-by: Török Edwin <edwintorok@gmail.com>
---
dir.c | 16 ++++++++++++++--
1 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/dir.c b/dir.c
index 5615f33..7260907 100644
--- a/dir.c
+++ b/dir.c
@@ -999,6 +999,7 @@ int remove_dir_recursively(struct strbuf *path, int flag)
struct dirent *e;
int ret = 0, original_len = path->len, len;
int only_empty = (flag & REMOVE_DIR_EMPTY_ONLY);
+ int did_rm;
unsigned char submodule_head[20];
if ((flag & REMOVE_DIR_KEEP_NESTED_GIT) &&
@@ -1013,6 +1014,8 @@ int remove_dir_recursively(struct strbuf *path, int flag)
strbuf_addch(path, '/');
len = path->len;
+ do {
+ did_rm = 0;
while ((e = readdir(dir)) != NULL) {
struct stat st;
if (is_dot_or_dotdot(e->d_name))
@@ -1023,15 +1026,24 @@ int remove_dir_recursively(struct strbuf *path, int flag)
if (lstat(path->buf, &st))
; /* fall thru */
else if (S_ISDIR(st.st_mode)) {
- if (!remove_dir_recursively(path, only_empty))
+ if (!remove_dir_recursively(path, only_empty)) {
+ did_rm = 1;
continue; /* happy */
- } else if (!only_empty && !unlink(path->buf))
+ }
+ } else if (!only_empty && !unlink(path->buf)) {
+ did_rm = 1;
continue; /* happy, too */
+ }
/* path too long, stat fails, or non-directory still exists */
ret = -1;
break;
}
+ /* if we unlinked/rmdir-ed anything there might be files we haven't seen
+ * yet before the readdir() cursor, rewind and walk directory again
+ * until we can't unlink any more. */
+ rewinddir(dir);
+ } while (did_rm && !ret);
closedir(dir);
strbuf_setlen(path, original_len);
--
1.7.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] Fix 'git clean' failure on NFS.
2010-06-18 11:07 ` [PATCH] Fix 'git clean' failure on NFS Török Edwin
@ 2010-06-18 12:17 ` Johannes Sixt
2010-06-18 13:09 ` Török Edwin
2010-06-18 12:29 ` Erik Faye-Lund
1 sibling, 1 reply; 10+ messages in thread
From: Johannes Sixt @ 2010-06-18 12:17 UTC (permalink / raw)
To: Török Edwin; +Cc: git
Am 6/18/2010 13:07, schrieb Török Edwin:
> else if (S_ISDIR(st.st_mode)) {
> - if (!remove_dir_recursively(path, only_empty))
> + if (!remove_dir_recursively(path, only_empty)) {
> + did_rm = 1;
> continue; /* happy */
Is it possible that remove_dir_recursively exits with 0, but it actually
did not remove the directory? That would result in an endless loop: it
would have to re-enter remove_dir_recursively on the next iteration,
return 0 again (without removing the directory), next iteration, etc.
-- Hannes
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] Fix 'git clean' failure on NFS.
2010-06-18 11:07 ` [PATCH] Fix 'git clean' failure on NFS Török Edwin
2010-06-18 12:17 ` Johannes Sixt
@ 2010-06-18 12:29 ` Erik Faye-Lund
2010-06-18 13:01 ` Török Edwin
1 sibling, 1 reply; 10+ messages in thread
From: Erik Faye-Lund @ 2010-06-18 12:29 UTC (permalink / raw)
To: Török Edwin; +Cc: git
2010/6/18 Török Edwin <edwintorok@gmail.com>:
> readdir() used to do a single pass, which is not always enough.
> If you unlink some files/rmdir some subdirs then there might be some
> files you haven't seen yet *before* the readdir cursor (files get rearranged
> in the directory, etc.).
>
> The fix is to do an additional readdir() pass if we unlinked/rmdired something.
> This is easily accomplished by using rewinddir.
>
Won't this break on Windows? mingw_readdir() doesn't seem to have a
maching mingw_rewinddir() in compat/mingw.c/h....
--
Erik "kusma" Faye-Lund
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] Fix 'git clean' failure on NFS.
2010-06-18 12:29 ` Erik Faye-Lund
@ 2010-06-18 13:01 ` Török Edwin
2010-06-18 13:26 ` Erik Faye-Lund
0 siblings, 1 reply; 10+ messages in thread
From: Török Edwin @ 2010-06-18 13:01 UTC (permalink / raw)
To: kusmabite; +Cc: Erik Faye-Lund, git
On 06/18/2010 03:29 PM, Erik Faye-Lund wrote:
> 2010/6/18 Török Edwin <edwintorok@gmail.com>:
>> readdir() used to do a single pass, which is not always enough.
>> If you unlink some files/rmdir some subdirs then there might be some
>> files you haven't seen yet *before* the readdir cursor (files get rearranged
>> in the directory, etc.).
>>
>> The fix is to do an additional readdir() pass if we unlinked/rmdired something.
>> This is easily accomplished by using rewinddir.
>>
>
> Won't this break on Windows? mingw_readdir() doesn't seem to have a
> maching mingw_rewinddir() in compat/mingw.c/h....
>
rewinddir() is used in ClamAV too, and it builds natively on win32.
I think we have some compat function that map rewinddir to the Win32
API, somebody will probably have to do that for git too.
Another possibility is to do closedir/opendir again on mingw.
Best regards,
--Edwin
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] Fix 'git clean' failure on NFS.
2010-06-18 12:17 ` Johannes Sixt
@ 2010-06-18 13:09 ` Török Edwin
0 siblings, 0 replies; 10+ messages in thread
From: Török Edwin @ 2010-06-18 13:09 UTC (permalink / raw)
To: Johannes Sixt; +Cc: git
On 06/18/2010 03:17 PM, Johannes Sixt wrote:
> Am 6/18/2010 13:07, schrieb Török Edwin:
>> else if (S_ISDIR(st.st_mode)) {
>> - if (!remove_dir_recursively(path, only_empty))
>> + if (!remove_dir_recursively(path, only_empty)) {
>> + did_rm = 1;
>> continue; /* happy */
>
> Is it possible that remove_dir_recursively exits with 0, but it actually
> did not remove the directory? That would result in an endless loop: it
> would have to re-enter remove_dir_recursively on the next iteration,
> return 0 again (without removing the directory), next iteration, etc.
Hmm, I think this could cause problems:
if ((flag & REMOVE_DIR_KEEP_NESTED_GIT) &&
!resolve_gitlink_ref(path->buf, "HEAD", submodule_head))
/* Do not descend and nuke a nested git work tree. */
return 0;
What if we limit the amount of times you can loop?
The worst case is that you loop == number of files in the directory, if
you loop more times than we could break out early.
Or we can compare the number of files listed in one pass, and in
another. If they stay equal, we can break out (since we'd infloop), if
it is higher (new files added) or lower (successfully removed some) we
can keep looping.
How does that sound?
--Edwin
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] Fix 'git clean' failure on NFS.
2010-06-18 13:01 ` Török Edwin
@ 2010-06-18 13:26 ` Erik Faye-Lund
2010-06-18 13:50 ` Török Edwin
0 siblings, 1 reply; 10+ messages in thread
From: Erik Faye-Lund @ 2010-06-18 13:26 UTC (permalink / raw)
To: Török Edwin; +Cc: git
2010/6/18 Török Edwin <edwintorok@gmail.com>:
> On 06/18/2010 03:29 PM, Erik Faye-Lund wrote:
>> 2010/6/18 Török Edwin <edwintorok@gmail.com>:
>>> readdir() used to do a single pass, which is not always enough.
>>> If you unlink some files/rmdir some subdirs then there might be some
>>> files you haven't seen yet *before* the readdir cursor (files get rearranged
>>> in the directory, etc.).
>>>
>>> The fix is to do an additional readdir() pass if we unlinked/rmdired something.
>>> This is easily accomplished by using rewinddir.
>>>
>>
>> Won't this break on Windows? mingw_readdir() doesn't seem to have a
>> maching mingw_rewinddir() in compat/mingw.c/h....
>>
>
> rewinddir() is used in ClamAV too, and it builds natively on win32.
> I think we have some compat function that map rewinddir to the Win32
> API, somebody will probably have to do that for git too.
>
There's a rewinddir function in msvcrt.dll. However, we're not using
msvcrt.dll's opendir() implementation for performance reasons, so this
patch would require a rewinddir implementation as a preparation path,
no? If such a patch could be extracted from ClamAV (and ClamAV is
license compatible with git), would you mind including such a patch
for the next round?
> Another possibility is to do closedir/opendir again on mingw.
Yes. Yet another possibility is to enable the
NO_MINGW_REPLACE_READDIR-switch, but this has negative performance
effects...
--
Erik "kusma" Faye-Lund
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] Fix 'git clean' failure on NFS.
2010-06-18 13:26 ` Erik Faye-Lund
@ 2010-06-18 13:50 ` Török Edwin
0 siblings, 0 replies; 10+ messages in thread
From: Török Edwin @ 2010-06-18 13:50 UTC (permalink / raw)
To: kusmabite; +Cc: Erik Faye-Lund, git
On 2010-06-18 16:26, Erik Faye-Lund wrote:
> 2010/6/18 Török Edwin <edwintorok@gmail.com>:
>> On 06/18/2010 03:29 PM, Erik Faye-Lund wrote:
>>> 2010/6/18 Török Edwin <edwintorok@gmail.com>:
>>>> readdir() used to do a single pass, which is not always enough.
>>>> If you unlink some files/rmdir some subdirs then there might be some
>>>> files you haven't seen yet *before* the readdir cursor (files get rearranged
>>>> in the directory, etc.).
>>>>
>>>> The fix is to do an additional readdir() pass if we unlinked/rmdired something.
>>>> This is easily accomplished by using rewinddir.
>>>>
>>>
>>> Won't this break on Windows? mingw_readdir() doesn't seem to have a
>>> maching mingw_rewinddir() in compat/mingw.c/h....
>>>
>>
>> rewinddir() is used in ClamAV too, and it builds natively on win32.
>> I think we have some compat function that map rewinddir to the Win32
>> API, somebody will probably have to do that for git too.
>>
>
> There's a rewinddir function in msvcrt.dll. However, we're not using
> msvcrt.dll's opendir() implementation for performance reasons, so this
> patch would require a rewinddir implementation as a preparation path,
> no? If such a patch could be extracted from ClamAV (and ClamAV is
> license compatible with git
ClamAV is GPLv2 only. git is the same AFAICT, so it should be fine.
>), would you mind including such a patch
> for the next round?
Will try to do that later today.
>
>> Another possibility is to do closedir/opendir again on mingw.
>
> Yes. Yet another possibility is to enable the
> NO_MINGW_REPLACE_READDIR-switch, but this has negative performance
> effects...
>
I'd rather not do that.
Best regards,
--Edwin
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2010-06-18 13:50 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-17 14:26 [BUG] git clean not working on FreeBSD/NFS Török Edwin
2010-06-17 15:18 ` Henrik Grubbström
2010-06-18 11:03 ` Török Edwin
2010-06-18 11:07 ` [PATCH] Fix 'git clean' failure on NFS Török Edwin
2010-06-18 12:17 ` Johannes Sixt
2010-06-18 13:09 ` Török Edwin
2010-06-18 12:29 ` Erik Faye-Lund
2010-06-18 13:01 ` Török Edwin
2010-06-18 13:26 ` Erik Faye-Lund
2010-06-18 13:50 ` Török Edwin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).