Browse Source

Merge branch 'release-0.2.2' into develop

master
Neil Booth 8 years ago
parent
commit
304501d792
  1. 7
      docs/RELEASE-NOTES
  2. 15
      server/block_processor.py
  3. 1
      server/db.py
  4. 4
      server/protocol.py
  5. 2
      server/version.py

7
docs/RELEASE-NOTES

@ -1,3 +1,10 @@
Version 0.2.2.1
---------------
- fixes issues #12, #13
- only attempt to flush on asyncio.CancelledError to avoid spurious
secondary errors
Version 0.2.2
-------------

15
server/block_processor.py

@ -382,8 +382,9 @@ class BlockProcessor(server.db.DB):
while True:
await self._wait_for_update()
await asyncio.sleep(0) # Yield
finally:
except asyncio.CancelledError:
self.flush(True)
raise
async def _wait_for_update(self):
'''Wait for the prefetcher to deliver blocks or a mempool update.
@ -535,6 +536,9 @@ class BlockProcessor(server.db.DB):
self.height - self.db_height))
self.utxo_cache.flush(batch)
self.utxo_flush_count = self.flush_count
self.db_tx_count = self.tx_count
self.db_height = self.height
self.db_tip = self.tip
def assert_flushed(self):
'''Asserts state is fully flushed.'''
@ -572,13 +576,6 @@ class BlockProcessor(server.db.DB):
self.flush_state(batch)
self.logger.info('committing transaction...')
# Update our in-memory state after successful flush
self.db_tx_count = self.tx_count
self.db_height = self.height
self.db_tip = self.tip
self.tx_hashes = []
self.headers = []
# Update and put the wall time again - otherwise we drop the
# time it took to commit the batch
self.flush_state(self.db)
@ -670,6 +667,8 @@ class BlockProcessor(server.db.DB):
os.sync()
self.tx_hashes = []
self.headers = []
self.logger.info('FS flush took {:.1f} seconds'
.format(time.time() - flush_start))

1
server/db.py

@ -119,7 +119,6 @@ class DB(LoggedClass):
if tx_height > self.db_height:
return None, tx_height
raise self.DBError('tx_num {:,d} is not on disk')
file_pos = tx_num * 32
file_num, offset = divmod(file_pos, self.tx_hash_file_size)

4
server/protocol.py

@ -331,8 +331,8 @@ class ElectrumX(JSONRPC):
@classmethod
def watched_address_count(cls):
sessions = self.SESSION_MGR.sessions
return sum(len(session.hash168s) for session in session
sessions = cls.SESSION_MGR.sessions
return sum(len(session.hash168s) for session in sessions
if isinstance(session, cls))
@classmethod

2
server/version.py

@ -1 +1 @@
VERSION = "ElectrumX 0.2.2"
VERSION = "ElectrumX 0.2.2.1"

Loading…
Cancel
Save