* Update: Increase eepget timeouts to reduce retries

This commit is contained in:
zzz
2012-06-29 16:25:22 +00:00
parent 4092f61898
commit ab18550711
6 changed files with 24 additions and 6 deletions

View File

@ -158,7 +158,7 @@ public class PluginUpdateChecker extends UpdateHandler {
try { try {
_get = new PartialEepGet(_context, proxyHost, proxyPort, _baos, _xpi2pURL, TrustedUpdate.HEADER_BYTES); _get = new PartialEepGet(_context, proxyHost, proxyPort, _baos, _xpi2pURL, TrustedUpdate.HEADER_BYTES);
_get.addStatusListener(PluginUpdateCheckerRunner.this); _get.addStatusListener(PluginUpdateCheckerRunner.this);
_get.fetch(); _get.fetch(CONNECT_TIMEOUT);
} catch (Throwable t) { } catch (Throwable t) {
_log.error("Error checking update for plugin", t); _log.error("Error checking update for plugin", t);
} }

View File

@ -149,7 +149,7 @@ public class PluginUpdateHandler extends UpdateHandler {
else else
_get = new EepGet(_context, 1, _updateFile, _xpi2pURL, false); _get = new EepGet(_context, 1, _updateFile, _xpi2pURL, false);
_get.addStatusListener(PluginUpdateRunner.this); _get.addStatusListener(PluginUpdateRunner.this);
_get.fetch(); _get.fetch(CONNECT_TIMEOUT, -1, shouldProxy ? INACTIVITY_TIMEOUT : NOPROXY_INACTIVITY_TIMEOUT);
} catch (Throwable t) { } catch (Throwable t) {
_log.error("Error downloading plugin", t); _log.error("Error downloading plugin", t);
} }

View File

@ -75,7 +75,7 @@ public class UnsignedUpdateHandler extends UpdateHandler {
// 40 retries!! // 40 retries!!
_get = new EepGet(_context, proxyHost, proxyPort, 40, _updateFile, _zipURL, false); _get = new EepGet(_context, proxyHost, proxyPort, 40, _updateFile, _zipURL, false);
_get.addStatusListener(UnsignedUpdateRunner.this); _get.addStatusListener(UnsignedUpdateRunner.this);
_get.fetch(); _get.fetch(CONNECT_TIMEOUT, -1, INACTIVITY_TIMEOUT);
} catch (Throwable t) { } catch (Throwable t) {
_log.error("Error updating", t); _log.error("Error updating", t);
} }

View File

@ -45,6 +45,10 @@ public class UpdateHandler {
static final String PROP_UPDATE_IN_PROGRESS = "net.i2p.router.web.UpdateHandler.updateInProgress"; static final String PROP_UPDATE_IN_PROGRESS = "net.i2p.router.web.UpdateHandler.updateInProgress";
protected static final String PROP_LAST_UPDATE_TIME = "router.updateLastDownloaded"; protected static final String PROP_LAST_UPDATE_TIME = "router.updateLastDownloaded";
protected static final long CONNECT_TIMEOUT = 55*1000;
protected static final long INACTIVITY_TIMEOUT = 5*60*1000;
protected static final long NOPROXY_INACTIVITY_TIMEOUT = 60*1000;
public UpdateHandler() { public UpdateHandler() {
this(ContextHelper.getContext(null)); this(ContextHelper.getContext(null));
} }
@ -193,7 +197,7 @@ public class UpdateHandler {
// no retries // no retries
_get = new PartialEepGet(_context, proxyHost, proxyPort, _baos, updateURL, TrustedUpdate.HEADER_BYTES); _get = new PartialEepGet(_context, proxyHost, proxyPort, _baos, updateURL, TrustedUpdate.HEADER_BYTES);
_get.addStatusListener(UpdateRunner.this); _get.addStatusListener(UpdateRunner.this);
_get.fetch(); _get.fetch(CONNECT_TIMEOUT);
} catch (Throwable t) { } catch (Throwable t) {
_isNewer = false; _isNewer = false;
} }
@ -210,7 +214,7 @@ public class UpdateHandler {
else else
_get = new EepGet(_context, 1, _updateFile, updateURL, false); _get = new EepGet(_context, 1, _updateFile, updateURL, false);
_get.addStatusListener(UpdateRunner.this); _get.addStatusListener(UpdateRunner.this);
_get.fetch(); _get.fetch(CONNECT_TIMEOUT, -1, shouldProxy ? INACTIVITY_TIMEOUT : NOPROXY_INACTIVITY_TIMEOUT);
} catch (Throwable t) { } catch (Throwable t) {
_log.error("Error updating", t); _log.error("Error updating", t);
} }

View File

@ -458,19 +458,32 @@ public class EepGet {
} }
public void stopFetching() { _keepFetching = false; } public void stopFetching() { _keepFetching = false; }
/** /**
* Blocking fetch, returning true if the URL was retrieved, false if all retries failed * Blocking fetch, returning true if the URL was retrieved, false if all retries failed.
* *
* Header timeout default 45 sec, total timeout default none, inactivity timeout default 60 sec.
*/ */
public boolean fetch() { return fetch(_fetchHeaderTimeout); } public boolean fetch() { return fetch(_fetchHeaderTimeout); }
/** /**
* Blocking fetch, timing out individual attempts if the HTTP response headers * Blocking fetch, timing out individual attempts if the HTTP response headers
* don't come back in the time given. If the timeout is zero or less, this will * don't come back in the time given. If the timeout is zero or less, this will
* wait indefinitely. * wait indefinitely.
*
* Total timeout default none, inactivity timeout default 60 sec.
*/ */
public boolean fetch(long fetchHeaderTimeout) { public boolean fetch(long fetchHeaderTimeout) {
return fetch(fetchHeaderTimeout, -1, -1); return fetch(fetchHeaderTimeout, -1, -1);
} }
/**
* Blocking fetch.
*
* @param fetchHeaderTimeout <= 0 for none (proxy will timeout if none, none isn't recommended if no proxy)
* @param totalTimeout <= 0 for default none
* @param inactivityTimeout <= 0 for default 60 sec
*/
public boolean fetch(long fetchHeaderTimeout, long totalTimeout, long inactivityTimeout) { public boolean fetch(long fetchHeaderTimeout, long totalTimeout, long inactivityTimeout) {
_fetchHeaderTimeout = fetchHeaderTimeout; _fetchHeaderTimeout = fetchHeaderTimeout;
_fetchEndTime = (totalTimeout > 0 ? System.currentTimeMillis() + totalTimeout : -1); _fetchEndTime = (totalTimeout > 0 ? System.currentTimeMillis() + totalTimeout : -1);

View File

@ -18,6 +18,7 @@
- Cancel flusher timer in MessageOutputStream when closed - Cancel flusher timer in MessageOutputStream when closed
- Move some createRateStats to ConnectionManager to reduce repeated calls - Move some createRateStats to ConnectionManager to reduce repeated calls
- Cleanups, javadocs, logging, volatile, finals - Cleanups, javadocs, logging, volatile, finals
* Update: Increase eepget timeouts
2012-06-24 zzz 2012-06-24 zzz
* ElGamalAESEngine: Fix bad size estimate when tags are included, * ElGamalAESEngine: Fix bad size estimate when tags are included,