Author: zothar
Date: 2006-06-01 00:59:54 +0000 (Thu, 01 Jun 2006)
New Revision: 8962
Modified:
trunk/freenet/src/freenet/node/DNSRequester.java
trunk/freenet/src/freenet/node/PacketSender.java
trunk/freenet/src/freenet/node/PeerNode.java
trunk/freenet/src/freenet/node/Version.java
Log:
Move PeerNode status updater from PacketSender to DNSRequester, leaving
PacketSender one less lock location to worry about. Moved ARKFetcher.start()
call out of synchronized in sentHandshake() and couldNotSendHandshake(), which
seems logical to me. This second item resulted from my investigation into the
stack trace reported on bug #400
Modified: trunk/freenet/src/freenet/node/DNSRequester.java
===================================================================
--- trunk/freenet/src/freenet/node/DNSRequester.java 2006-05-31 22:02:36 UTC
(rev 8961)
+++ trunk/freenet/src/freenet/node/DNSRequester.java 2006-06-01 00:59:54 UTC
(rev 8962)
@@ -52,6 +52,11 @@
PeerManager pm = node.peers;
PeerNode[] nodes = pm.myPeers;
long now = System.currentTimeMillis();
+ // Run the time sensitive status updater separately
+ for(int i=0;i<nodes.length;i++) {
+ PeerNode pn = nodes[i];
+ pn.setPeerNodeStatus(now);
+ }
if((now - lastLogTime) > 1000) {
Logger.minor(this, "Processing DNS Requests (log rate-limited)");
lastLogTime = now;
Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java 2006-05-31 22:02:36 UTC
(rev 8961)
+++ trunk/freenet/src/freenet/node/PacketSender.java 2006-06-01 00:59:54 UTC
(rev 8962)
@@ -107,11 +107,6 @@
lastTimeInSeconds = (int) (now / 1000);
PeerManager pm = node.peers;
PeerNode[] nodes = pm.myPeers;
- // Run the time sensitive status updater separately
- for(int i=0;i<nodes.length;i++) {
- PeerNode pn = nodes[i];
- pn.setPeerNodeStatus(now);
- }
node.maybeLogPeerNodeStatusSummary(now);
long nextActionTime = Long.MAX_VALUE;
long oldTempNow = now;
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2006-05-31 22:02:36 UTC
(rev 8961)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2006-06-01 00:59:54 UTC
(rev 8962)
@@ -769,23 +769,26 @@
* Call this method when a handshake request has been
* sent.
*/
- public synchronized void sentHandshake() {
+ public void sentHandshake() {
Logger.debug(this, "sentHandshake(): "+this);
- long now = System.currentTimeMillis();
- if(verifiedIncompatibleOlderVersion ||
verifiedIncompatibleNewerVersion) {
- // Let them know we're here, but have no hope of connecting
- sendHandshakeTime = now + Node.MIN_TIME_BETWEEN_VERSION_SENDS
- + node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_VERSION_SENDS)
- +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_VERSION_SENDS);
- } else if(invalidVersion() && !firstHandshake) {
- sendHandshakeTime = now + Node.MIN_TIME_BETWEEN_VERSION_PROBES
- +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_VERSION_PROBES);
- } else {
- sendHandshakeTime = now + Node.MIN_TIME_BETWEEN_HANDSHAKE_SENDS
- +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_HANDSHAKE_SENDS);
+ long now = -1;
+ synchronized(this) {
+ now = System.currentTimeMillis();
+ if(verifiedIncompatibleOlderVersion ||
verifiedIncompatibleNewerVersion) {
+ // Let them know we're here, but have no hope of connecting
+ sendHandshakeTime = now + Node.MIN_TIME_BETWEEN_VERSION_SENDS
+ +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_VERSION_SENDS)
+ +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_VERSION_SENDS);
+ } else if(invalidVersion() && !firstHandshake) {
+ sendHandshakeTime = now + Node.MIN_TIME_BETWEEN_VERSION_PROBES
+ +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_VERSION_PROBES);
+ } else {
+ sendHandshakeTime = now + Node.MIN_TIME_BETWEEN_HANDSHAKE_SENDS
+ +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_HANDSHAKE_SENDS);
+ }
+ firstHandshake = false;
+ this.handshakeCount++;
}
- firstHandshake = false;
- this.handshakeCount++;
// Don't fetch ARKs for peers we have verified (through handshake) to
be incompatible with us
if(handshakeCount == MAX_HANDSHAKE_COUNT &&
!(verifiedIncompatibleOlderVersion || verifiedIncompatibleNewerVersion)) {
Logger.normal( this, "Starting ARK Fetcher after
"+handshakeCount+" failed handshakes for "+getPeer()+" with identity
'"+getIdentityString()+"'");
@@ -797,27 +800,28 @@
* Call this method when a handshake request could not be sent (i.e. no IP
address available)
* sent.
*/
- public synchronized void couldNotSendHandshake() {
+ public void couldNotSendHandshake() {
Logger.minor(this, "couldNotSendHandshake(): "+this);
- long now = System.currentTimeMillis();
- if(verifiedIncompatibleOlderVersion ||
verifiedIncompatibleNewerVersion) {
- // Let them know we're here, but have no hope of connecting
- sendHandshakeTime = now + Node.MIN_TIME_BETWEEN_VERSION_SENDS
- + node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_VERSION_SENDS)
- +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_VERSION_SENDS);
- } else if(invalidVersion() && !firstHandshake) {
- sendHandshakeTime = now + Node.MIN_TIME_BETWEEN_VERSION_PROBES
- +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_VERSION_PROBES)
- +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_VERSION_PROBES);
- } else {
- sendHandshakeTime = now + Node.MIN_TIME_BETWEEN_HANDSHAKE_SENDS
- +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_HANDSHAKE_SENDS)
- +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_HANDSHAKE_SENDS);
+ long now = -1;
+ synchronized(this) {
+ now = System.currentTimeMillis();
+ if(verifiedIncompatibleOlderVersion ||
verifiedIncompatibleNewerVersion) {
+ // Let them know we're here, but have no hope of connecting
+ sendHandshakeTime = now + Node.MIN_TIME_BETWEEN_VERSION_SENDS
+ +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_VERSION_SENDS)
+ +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_VERSION_SENDS);
+ } else if(invalidVersion() && !firstHandshake) {
+ sendHandshakeTime = now + Node.MIN_TIME_BETWEEN_VERSION_PROBES
+ +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_VERSION_PROBES)
+ +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_VERSION_PROBES);
+ } else {
+ sendHandshakeTime = now + Node.MIN_TIME_BETWEEN_HANDSHAKE_SENDS
+ +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_HANDSHAKE_SENDS)
+ +
node.random.nextInt(Node.RANDOMIZED_TIME_BETWEEN_HANDSHAKE_SENDS);
+ }
+ handshakeIPs = null;
+ this.handshakeCount++;
}
- synchronized(this) {
- handshakeIPs = null;
- }
- this.handshakeCount++;
// Don't fetch ARKs for peers we have verified (through handshake) to
be incompatible with us
if(handshakeCount == MAX_HANDSHAKE_COUNT &&
!(verifiedIncompatibleOlderVersion || verifiedIncompatibleNewerVersion)) {
Logger.normal( this, "Starting ARK Fetcher after
"+handshakeCount+" failed handshakes(2) for "+getPeer()+" with identity
'"+getIdentityString()+"'");
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-05-31 22:02:36 UTC (rev
8961)
+++ trunk/freenet/src/freenet/node/Version.java 2006-06-01 00:59:54 UTC (rev
8962)
@@ -44,7 +44,7 @@
public static final int lastGoodStableBuild = 1;
/** Revision number of Version.java as read from CVS */
- public static final String cvsRevision = "@custom@";
+ public static final String cvsRevision = "8961M";
private static boolean logDEBUG =
Logger.shouldLog(Logger.DEBUG,Version.class);