Author: toad
Date: 2006-08-09 12:09:57 +0000 (Wed, 09 Aug 2006)
New Revision: 9992
Modified:
trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
Log:
mostly logging; don't add free blocks for blocks we won't be able to allocate
anyway
Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2006-08-09
11:48:28 UTC (rev 9991)
+++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2006-08-09
12:09:57 UTC (rev 9992)
@@ -228,7 +228,7 @@
chkDB_blockNum.get(null, blockNumEntry, found,
LockMode.DEFAULT);
if(success.equals(OperationStatus.NOTFOUND)) {
- addFreeBlock(i);
+ addFreeBlock(i, true, "hole found");
holes++;
}
if(i % 1024 == 0)
@@ -422,10 +422,12 @@
t.abort();
}
freeBlocks.clear();
- for(int i=wantedMoveNums.length;i<unwantedMoveNums.length;i++)
- addFreeBlock(unwantedMoveNums[i].longValue());
+ for(int i=wantedMoveNums.length;i<unwantedMoveNums.length;i++) {
+ long l = unwantedMoveNums[i].longValue();
+ if(l > newSize) break;
+ addFreeBlock(l, false, "found empty while shrinking");
+ }
maybeQuickShrink(false);
-
}
private void maybeQuickShrink(boolean dontCheck) throws
DatabaseException, IOException {
@@ -639,7 +641,7 @@
Logger.error(this, err,
e);
System.err.println(err);
e.printStackTrace();
- addFreeBlock(l);
+ addFreeBlock(l, true,
"bogus key ("+type+")");
routingkey = null;
continue;
}
@@ -827,7 +829,7 @@
chkDB.delete(t, routingkeyDBE);
t.commit();
t = null;
- addFreeBlock(storeBlock.offset);
+ addFreeBlock(storeBlock.offset, true, "CHK does not
verify");
synchronized(this) {
misses++;
}
@@ -924,7 +926,7 @@
chkDB.delete(t, routingkeyDBE);
t.commit();
t = null;
- addFreeBlock(storeBlock.offset);
+ addFreeBlock(storeBlock.offset, true, "SSK does not
verify");
synchronized(this) {
misses++;
}
@@ -1064,7 +1066,7 @@
chkDB.delete(t, routingkeyDBE);
t.commit();
t = null;
- addFreeBlock(storeBlock.offset);
+ addFreeBlock(storeBlock.offset, true, "pubkey does not
verify");
synchronized(this) {
misses++;
}
@@ -1072,12 +1074,16 @@
}
}
- private void addFreeBlock(long offset) {
+ private void addFreeBlock(long offset, boolean loud, String reason) {
if(freeBlocks.push(offset)) {
- System.err.println("Freed block "+offset);
- Logger.normal(this, "Freed block "+offset);
+ if(loud) {
+ System.err.println("Freed block "+offset+"
("+reason+")");
+ Logger.normal(this, "Freed block "+offset+"
("+reason+")");
+ } else {
+ Logger.minor(this, "Freed block "+offset+"
("+reason+")");
+ }
} else {
- Logger.minor(this, "Already freed block "+offset);
+ Logger.minor(this, "Already freed block "+offset+"
("+reason+")");
}
}