Author: toad
Date: 2008-02-02 15:31:37 +0000 (Sat, 02 Feb 2008)
New Revision: 17468
Modified:
trunk/freenet/src/freenet/node/Version.java
Log:
1108: (mandatory Tuesday)
Startup performance:
- Add some Thread.yield()s: sadly java doesn't use thread priorities on linux,
and the important threads get starved of CPU by the splitfile restarts. :(
Client layer:
- Prevent IllegalArgumentException, log an error instead when getKey() is null
in SendableGet.
- SplitFileFetcherSubSegment: Cancel self in possiblyRemoveFromParent(). May
help to fix key <num> is null.
- SplitFileFetcherSegment: Actually remove the sub-segments from the array in
removeSubSegments() instead of killing them and keeping them. Saves memory,
avoids problems.
- Throw on adding blocks to a cancelled segment.
- SingleFileFetcher: Clear metadata when fetching a splitfile or multi-level
metadata. So the Metadata and keys hanging off it can be GC'ed when no longer
used by the splitfile.
Messaging:
- Prevent double-notify race condition on disconnect.
- Remove side-effect and just throw in anyConnectionsDropped().
- Improve synchronization in PeerNode.
- Some paranoia.
- Limit BitArray's to 2048 bytes to prevent garbage causing huge memory
allocations.
Web interface:
- Increase priority of announcement notice.
Load management:
- Reduce ping time averager half-life to 4 minutes from 10. This should still
be longer than an average request, but it should react faster.
- Report correct stats for received bytes on SSK inserts.
Connections page:
- Trivial formatting fix in the congestion control column.
Routing:
- Optimise closerPeer().
- Make Location.distance(,,true) work well for invalid values used by e.g.
probe requests.
Swapping:
- Make PeerNode.shouldRejectSwapRequest() non-probabilistic.
- And actually record the time we last accepted a swap request. (Note that
because of this it was always accepting before, now it will almost always
accept).
Probe requests:
- Implement simple threaded probe requests using the current HTL and routing
algorithm, close to Request*.
IP detection logic:
- Trivial code cleanups.
- Minor refactoring.
- Don't count localhost and LAN addresses, or nodes with the same IP address as
one of ours, towards if-no-conns-we-must-detect.
- If we have no connections, and have lost 3+ connections recently, we should
do a detection immediately regardless of the 1 detection per hour limit (but
only one, so don't do it if we've detected in the last 6 minutes).
- Delete the fake-detection mechanism which never worked for its original
purpose. The above takes its place.
- Detect immediately (once) if behind a SNAT.
- Clear the failed-to-detect flag after any successful detection. We were
detecting every 5 minutes forever after any failed detection because of this
bug.
- maybeRun(): Don't waste time and don't detect twice.
- Fake IP detection code: was kicking in when we have 1 or 2 connections which
are either disconnected OR have received packets in last 5min. Should be if we
have 1 or 2 conns and they are BOTH disconnected AND have received packets in
last 5min.
Web interface:
- Update TUFI to edition 11.
L10n etc:
- French update (batosai).
- German update (NEOatNHNG).
- Italian update from _ph00.
- Add Danish to the list of available translations even though it's incomplete.
So's Polish.
- Improve the wording of the warning at the bottom of the wizard page asking
whether to turn on opennet.
- Delete the confusing example of [14:56] <toad_> from the friends page.
FCP:
- Revert an unnecessary code complication (r17325) related to closing
connections.
Dev stuff:
- toString().
- Logging.
- Logger: Indicate explicitly if no stack trace. Add missing \n if null stack
trace.
- Add shortToString() to PeerContext.
- Change visibility of BaseSingleFileFetcher so can subclass in plugins.
- Delete some dijjer cruft in RetrievalException.
- Comments.
- Rename InsertHandler to CHKInsertHandler.
- Dead code deletion.
- Remove constructors for dead old probe request messages.
- Comments.
Insert/Request Simulator:
- Logging.
- Try to request key even if the insert fails.
XMLSpider:
- Version 17: Split both by number of elements and by the size of the
subindexes (and don't try to split for the latter below having 1 word in the
index). Max subindex size 256k.
batosai
NEOatNHNG
_ph00
robert
saces
toad
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2008-02-02 14:06:35 UTC (rev
17467)
+++ trunk/freenet/src/freenet/node/Version.java 2008-02-02 15:31:37 UTC (rev
17468)
@@ -24,17 +24,17 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 1107;
+ private static final int buildNumber = 1108;
/** Oldest build of Fred we will talk to */
private static final int oldLastGoodBuild = 1106;
- private static final int newLastGoodBuild = 1107;
+ private static final int newLastGoodBuild = 1108;
static final long transitionTime;
static {
final Calendar _cal =
Calendar.getInstance(TimeZone.getTimeZone("GMT"));
// year, month - 1 (or constant), day, hour, minute, second
- _cal.set( 2008, Calendar.JANUARY, 30, 0, 0, 0 );
+ _cal.set( 2008, Calendar.FEBRUARY, 5, 0, 0, 0 );
transitionTime = _cal.getTimeInMillis();
}