PyBitmessage/src
Peter Šurda 0c9cb4824d
Memory leak (kind of) fix
- objectsKnownToThem is supposed to track if it's necessary to send inv
  commands to a peer
- it is supposed to enter garbage collection after 1 hour
  (ObjectTracker.trackingExpires)
- due to peer not announcing all objects, or announcing them before we
  announce, this contains excessive number of entries after connection
  is fully established.
- profiling revealed that this creates unnecessary memory to be kept
  allocated
- this patch will prevent tracking of entries sent during bigInv,
  reducing the memory "leak"
- it is possible, in theory, that this does have some negative effect,
  like increased bandwidth or neglecting to announce some invs. It
  probably doesn't though as my review of objectsKnownToThem occurrences
  didn't reveal any such case, and since the dict didn't track fully
  accurately anyway (so it would have already been broken if it was a
  problem), I consider it an acceptable risk at the moment. If it indeed
  causes problems, they can be solved separately
- I tested this on one of the bootstrap servers with little memory, and
  it increased the number of connections than can be handled by a factor
  of about 3.5
2018-04-01 11:39:02 +02:00
..
bitmessagecurses implement stealth ack objects 2017-09-30 19:45:40 +10:00
bitmessageqt Do not try to connect namecoin if dontconnect set in config (#1146) 2018-03-26 16:47:22 +03:00
bitmsghash Changed Makefile to use CXX instead of g++ 2017-02-25 22:33:31 +01:00
fallback Add umsgpack as fallback 2017-05-07 20:15:16 +02:00
images removed images/can-icon-24px_2.png 2013-11-01 19:28:44 -04:00
messagetypes More messagetypes hardening 2018-02-19 16:57:47 +01:00
network Memory leak (kind of) fix 2018-04-01 11:39:02 +02:00
plugins Added docstrings. Removed unused method Image.save(). 2018-03-14 08:57:51 +02:00
pyelliptic No lib symlinks in openwrt 2018-03-14 12:56:23 +02:00
socks Don't report direct network errors as proxy errors 2017-02-20 12:34:55 +01:00
sslkeys Opportunistic encryption with TLS (2 of 2) 2016-05-02 15:00:20 +02:00
storage Inventory checking performance optimisation 2018-02-02 14:33:29 +01:00
translations Auto-updated language ja from transifex 2018-03-13 16:15:59 +01:00
__init__.py changes needed to get current code to run 2017-02-25 00:06:04 -06:00
addresses.py Address operations: simplified the code a bit 2018-03-22 12:13:47 +02:00
api.py implement stealth ack objects 2017-09-30 19:45:40 +10:00
api_client.py more v4 address work. Should be done. 2013-09-18 00:04:01 -04:00
bitmessagecli.py Get rid of evals 2018-02-18 20:14:21 +01:00
bitmessagemain.py Dandelion update 2018-02-03 11:46:39 +01:00
bmconfigparser.py Added "apiinterface" and "apiport" to BMConfigDefaults 2018-03-22 17:50:26 +02:00
build_osx.py Update build scripts 2016-05-02 15:00:25 +02:00
class_addressGenerator.py Address operations: flake8 2018-03-22 12:13:47 +02:00
class_objectProcessor.py Message decoding exception handler fix 2018-02-13 13:24:37 +01:00
class_objectProcessorQueue.py Reduce cyclic dependencies 2017-02-08 13:41:56 +01:00
class_singleCleaner.py Dandelion update 2018-02-03 11:46:39 +01:00
class_singleWorker.py Even more unused variables 2018-03-22 13:48:07 +02:00
class_smtpDeliver.py Config file defaults and address unification 2017-05-15 12:18:07 +02:00
class_smtpServer.py implement stealth ack objects 2017-09-30 19:45:40 +10:00
class_sqlThread.py replace all random.xxx with helper random function 2018-03-21 19:26:27 +05:30
debug.py Fix non-ascii logging 2018-01-25 08:11:42 +01:00
defaultKnownNodes.py Add ratings to peers 2017-07-05 09:17:01 +02:00
defaults.py Cyclic import fix 2017-02-08 20:37:42 +01:00
depends.py fix indentation error in dependency file 2018-03-22 15:27:37 +05:30
helper_ackPayload.py implement stealth ack objects 2017-09-30 19:45:40 +10:00
helper_bitcoin.py Fixed missing arithmetic import in helper_bitcoin file 2013-06-21 12:58:36 +01:00
helper_bootstrap.py Check IP before adding to knownnodes in helper_bootstrap 2017-10-17 01:33:30 +03:00
helper_generic.py Check daemon status in singleinstance instead of config 2018-01-17 13:58:37 +02:00
helper_inbox.py Reduce cyclic dependencies 2017-02-08 13:41:56 +01:00
helper_msgcoding.py replace all random.xxx with helper random function 2018-03-21 19:26:27 +05:30
helper_random.py replace all random.xxx with helper random function 2018-03-21 19:26:27 +05:30
helper_search.py Sent folder in chans extended 2016-05-02 15:00:24 +02:00
helper_sent.py finished work on specifyTTL 2015-03-09 02:35:32 -04:00
helper_sql.py Made use of helper_sql.sqlExecuteChunked() in the on_action_MarkAllRead 2018-01-25 23:04:38 +02:00
helper_startup.py replace all random.xxx with helper random function 2018-03-21 19:26:27 +05:30
helper_threading.py Change main thread name to PyBitmessage 2017-09-21 17:51:34 +02:00
highlevelcrypto.py Typo 2017-06-10 10:11:50 +02:00
inventory.py Remove unused imports 2018-03-13 07:41:59 +01:00
knownnodes.py Forget known nodes with bad rating 2017-10-19 08:52:44 +02:00
l10n.py Rename configparser.py to bmconfigparser.py 2017-02-22 09:34:54 +01:00
message_data_reader.py Reduce cyclic dependencies 2017-02-08 13:41:56 +01:00
multiqueue.py implement more helper random changes with replace random.xxx 2018-03-21 18:19:08 +05:30
namecoin.py Translate namecoin failure message 2018-02-13 11:55:38 +02:00
openclpow.py PoW init reordering 2017-08-15 12:24:43 +02:00
paths.py Try to replace copyright year from last commit date 2018-01-30 17:26:58 +02:00
proofofwork.py C PoW init fix 2017-08-15 14:09:19 +02:00
protocol.py Handle exceptions from python without ipv6 support 2018-03-22 17:13:34 +02:00
pybitmessage Total setup.py cleanup and simple script installation 2017-02-28 15:51:49 +02:00
qidenticon.py nonfunctional identicon settings-GUI 2013-09-18 17:39:45 +02:00
queues.py Change peer discovery tracking from queue to a dict 2017-08-06 21:29:54 +02:00
randomtrackingdict.py replace all random.xxx with helper random function 2018-03-21 19:26:27 +05:30
shared.py Even more unused variables 2018-03-22 13:48:07 +02:00
shutdown.py Changed the daemon check approach in other places, where it makes sense 2018-01-17 13:58:37 +02:00
singleinstance.py Daemonize fix 2018-01-01 13:10:19 +01:00
singleton.py Inventory refactoring 2017-01-10 21:15:35 +01:00
state.py Dandelion update 2018-02-03 11:46:39 +01:00
tr.py Handled AttributeError when tr imported from plugin 2018-01-17 13:58:37 +02:00
upnp.py UPnP parser fix 2018-02-26 20:03:35 +01:00
version.py Bump version 2018-02-14 00:23:47 +01:00