Author: toad
Date: 2006-01-27 19:24:20 +0000 (Fri, 27 Jan 2006)
New Revision: 7952
Modified:
trunk/freenet/src/freenet/io/comm/UdpSocketManager.java
trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
trunk/freenet/src/freenet/node/KeyTracker.java
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/PacketSender.java
trunk/freenet/src/freenet/node/Version.java
trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
Log:
403: (mandatory)
More debugging.
Includes a major bug fix ("why did this work AT ALL?") in
BerkeleyDBFreenetStore.
Modified: trunk/freenet/src/freenet/io/comm/UdpSocketManager.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/UdpSocketManager.java 2006-01-27
16:34:08 UTC (rev 7951)
+++ trunk/freenet/src/freenet/io/comm/UdpSocketManager.java 2006-01-27
19:24:20 UTC (rev 7952)
@@ -133,6 +133,7 @@
int length = packet.getLength();
if (lowLevelFilter != null) {
try {
+ Logger.minor(this, "Processing packet
of length "+length+" from "+peer);
lowLevelFilter.process(data, offset,
length, peer);
Logger.minor(this,
"Successfully handled
packet length " + length);
@@ -189,6 +190,7 @@
} catch (IOException e2) {
throw new RuntimeException(e2);
}
+ Logger.minor(this, "Received packet");
return packet;
}
Modified: trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
===================================================================
--- trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java 2006-01-27
16:34:08 UTC (rev 7951)
+++ trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java 2006-01-27
19:24:20 UTC (rev 7952)
@@ -294,10 +294,12 @@
MessageFilter mfAllReceived =
MessageFilter.create().setType(DMT.allReceived).setField(DMT.UID,
_uid).setTimeout(SEND_TIMEOUT).setSource(_destination);
MessageFilter mfSendAborted =
MessageFilter.create().setType(DMT.sendAborted).setField(DMT.UID,
_uid).setTimeout(SEND_TIMEOUT).setSource(_destination);
msg =
_usm.waitFor(mfMissingPacketNotification.or(mfAllReceived.or(mfSendAborted)));
+ Logger.minor(this, "Got "+msg);
} catch (DisconnectedException e) {
// Ignore, see below
msg = null;
}
+ Logger.minor(this, "Got "+msg);
if(!_destination.isConnected()) {
Logger.normal(this, "Terminating send "+_uid+" to
"+_destination+" from "+_usm.getPortNumber()+" because node disconnected while
waiting");
synchronized(_senderThread) {
Modified: trunk/freenet/src/freenet/node/KeyTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/KeyTracker.java 2006-01-27 16:34:08 UTC
(rev 7951)
+++ trunk/freenet/src/freenet/node/KeyTracker.java 2006-01-27 19:24:20 UTC
(rev 7952)
@@ -717,6 +717,7 @@
UpdatableSortedLinkedListItem[] items;
int[] packetNumbers;
int realLength;
+ Logger.minor(this, "Grabbing ack requests");
try {
synchronized(ackRequestQueue) {
long now = System.currentTimeMillis();
@@ -746,6 +747,7 @@
}
int[] trimmedPacketNumbers = new int[realLength];
System.arraycopy(packetNumbers, 0, trimmedPacketNumbers, 0,
realLength);
+ Logger.minor(this, "Returning "+trimmedPacketNumbers.length+"
ackRequests");
return trimmedPacketNumbers;
}
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2006-01-27 16:34:08 UTC (rev
7951)
+++ trunk/freenet/src/freenet/node/Node.java 2006-01-27 19:24:20 UTC (rev
7952)
@@ -1367,7 +1367,7 @@
Runtime r = Runtime.getRuntime();
while(true) {
try {
- Thread.sleep(1000);
+ Thread.sleep(250);
} catch (InterruptedException e) {
// Ignore
}
Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java 2006-01-27 16:34:08 UTC
(rev 7951)
+++ trunk/freenet/src/freenet/node/PacketSender.java 2006-01-27 19:24:20 UTC
(rev 7952)
@@ -38,6 +38,15 @@
lastReceivedPacketFromAnyNode = lastReportedNoPackets;
try {
realRun();
+ } catch (OutOfMemoryError e) {
+ System.gc();
+ System.runFinalization();
+ System.gc();
+ System.runFinalization();
+ System.err.println(e.getClass());
+ System.err.println(e.getMessage());
+ e.printStackTrace();
+ Logger.error(this, "Caught "+e, e);
} catch (Throwable t) {
Logger.error(this, "Caught in PacketSender: "+t, t);
}
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-01-27 16:34:08 UTC (rev
7951)
+++ trunk/freenet/src/freenet/node/Version.java 2006-01-27 19:24:20 UTC (rev
7952)
@@ -20,10 +20,10 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- public static final int buildNumber = 402;
+ public static final int buildNumber = 403;
/** Oldest build of Fred we will talk to */
- public static final int lastGoodBuild = 400;
+ public static final int lastGoodBuild = 403;
/** The highest reported build of fred */
public static int highestSeenBuild = buildNumber;
Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2006-01-27
16:34:08 UTC (rev 7951)
+++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2006-01-27
19:24:20 UTC (rev 7952)
@@ -171,8 +171,8 @@
byte[] data = new byte[dataBlockSize];
synchronized(chkStore) {
chkStore.seek(storeBlock.offset*(long)(dataBlockSize+headerBlockSize));
- chkStore.read(header);
- chkStore.read(data);
+ chkStore.readFully(header);
+ chkStore.readFully(data);
}
@@ -254,8 +254,8 @@
byte[] data = new byte[dataBlockSize];
synchronized(chkStore) {
chkStore.seek(storeBlock.offset*(long)(dataBlockSize+headerBlockSize));
- chkStore.read(header);
- chkStore.read(data);
+ chkStore.readFully(header);
+ chkStore.readFully(data);
}
@@ -339,7 +339,7 @@
Logger.minor(this, "Reading from store...
"+storeBlock.offset);
synchronized(chkStore) {
chkStore.seek(storeBlock.offset*(long)(dataBlockSize+headerBlockSize));
- chkStore.read(data);
+ chkStore.readFully(data);
}
Logger.minor(this, "Read");
@@ -525,7 +525,7 @@
Logger.minor(this, "Put key: "+HexUtil.bytesToHex(hash));
Logger.minor(this, "Data: "+data.length+" bytes, hash
"+Fields.hashCode(data));
- }catch(Exception ex) { // FIXME: ugly
+ }catch(Throwable ex) { // FIXME: ugly
if(t!=null){
try{t.abort();}catch(DatabaseException ex2){};
}