src/lib/udc.c 1.35
1.35 2010/02/25 22:55:55 angie
No need to use sparseFile in addition to bitmap file for cache age/timeout, and it causes trouble when bitmap exists but sparseData doesn't (yet). Also, moved verbose() up to where it wouldn't cause segv.
Index: src/lib/udc.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/lib/udc.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -b -B -U 4 -r1.34 -r1.35
--- src/lib/udc.c 24 Feb 2010 00:55:09 -0000 1.34
+++ src/lib/udc.c 25 Feb 2010 22:55:55 -0000 1.35
@@ -598,15 +598,15 @@
{
version = bits->version;
if (bits->remoteUpdate != file->updateTime || bits->fileSize != file->size)
{
+ verbose(2, "removing stale version (%lld! = %lld or %lld! = %lld), new version %d\n",
+ bits->remoteUpdate, (long long)file->updateTime, bits->fileSize, file->size,
+ version);
udcBitmapClose(&bits);
remove(file->bitmapFileName);
remove(file->sparseFileName);
++version;
- verbose(2, "removing stale version (%lld! = %lld or %lld! = %lld), new version %d\n",
- bits->remoteUpdate, (long long)file->updateTime, bits->fileSize, file->size,
- version);
}
}
else
verbose(2, "bitmap file %s does not already exist, creating.\n", file->bitmapFileName);
@@ -827,12 +827,9 @@
memcpy(&(file->connInfo), &(info.ci), sizeof(struct connInfo));
// update cache file mod times, so if we're caching we won't do this again
// until the timeout has expired again:
if (udcCacheTimeout() > 0 && fileExists(file->bitmapFileName))
- {
touchFile(file->bitmapFileName);
- touchFile(file->sparseFileName);
- }
}
/* Make directory. */
makeDirsOnPath(file->cacheDir);
@@ -981,12 +978,15 @@
struct slName *sl, *slList = udcFileCacheFiles(url, cacheDir);
if (slList == NULL)
return now;
for (sl = slList; sl != NULL; sl = sl->next)
+ if (endsWith(sl->name, bitmapName))
+ {
if (fileExists(sl->name))
oldestTime = min(fileModTime(sl->name), oldestTime);
else
return now;
+ }
return (now - oldestTime);
}
static void readBitsIntoBuf(int fd, int headerSize, int bitStart, int bitEnd,