1. 15 Jan, 2025 1 commit
    • Julien Muchembled's avatar
      Fix IStorage.iterator potentially skipping recent transactions · 1578ad9f
      Julien Muchembled authored
      This fixes a critical bug in the storage node that ignored read locks,
      so transactions that have just been committed could be missing in the
      results.
      
      Because read locks are released by order of tid, a single storage node
      never returned a list with holes (i.e. the missing transactions could
      only be the last ones). However, holes could happen when merging
      results from multiple storage nodes.
      
      The change in the client node avoids extra RPC at the end:
      it should speed up in most cases and it makes the new test clearer.
      1578ad9f
  2. 16 Dec, 2024 1 commit
    • Xavier Thompson's avatar
      master: add --backup to initialize in BACKINGUP · 13ef5f15
      Xavier Thompson authored
      This applies only to an empty cluster and makes the cluster transition
      from the initial state RECOVERING to BACKINGUP without passing through
      state RUNNING:
      
      (empty) -> RECOVERING -> VERIFYING -> STARTING_BACKUP -> BACKINGUP
      
      This is the only way to reach BACKINGUP without having to pass through
      RUNNING first and manually transitioning to STARTING_BACKUP. It is the
      only way to reach state BACKINGUP fully automatically.
      
      See merge request !25
      13ef5f15
  3. 21 Jul, 2024 8 commits
  4. 20 Jul, 2024 1 commit
    • Vincent Pelletier's avatar
      neoctl: Change the expected tid-or-timestamp format · 773bfa97
      Vincent Pelletier authored
      Before this change, the only distinction between a timestamp and a TID was
      the presence of the decimal separator, ".". As a result, a timestamp
      mistakenly provided without a decimal separator would be interpreted as a
      TID, which will be somewhere in January 1900 (as TIDs are 64bits with much
      finer accuracy than timestamps). When used to truncate a database, and in
      the absence of sanity checks, this would simply wipe the database.
      
      So, instead of just relying on a decimal separator, require a longer
      string. Make it a prefix for readability. Also, TIDs are more niche than
      timestamp, require them to have a mark, and do not require anything from
      timestamps.
      773bfa97
  5. 08 Jul, 2024 2 commits
  6. 21 May, 2024 1 commit
  7. 17 May, 2024 1 commit
  8. 09 May, 2024 4 commits
  9. 16 Apr, 2024 1 commit
  10. 22 Mar, 2024 6 commits
  11. 22 Feb, 2024 8 commits
  12. 18 Dec, 2023 4 commits
  13. 08 Nov, 2023 1 commit
    • Julien Muchembled's avatar
      master: fix crash when aborting early e.g. when failing to open listening socket · 9a3898e4
      Julien Muchembled authored
      Pre-mortem data:
      Traceback (most recent call last):
      File "neo/master/app.py", line 172, in run
      self._run()
      File "neo/master/app.py", line 180, in _run
      self.listening_conn = ListeningConnection(self, None, self.server)
      File "neo/lib/connection.py", line 298, in __init__
      connector.makeListeningConnection()
      File "neo/lib/connector.py", line 133, in makeListeningConnection
      self._error('listen', e)
      File "neo/lib/connector.py", line 93, in _error
      raise ConnectorException
      ConnectorException
      Traceback (most recent call last):
        File "neomaster", line 50, in <module>
          sys.exit(neo.scripts.neomaster.main())
        File "neo/scripts/neomaster.py", line 31, in main
          app.run()
        File "neo/master/app.py", line 175, in run
          self.log()
        File "neo/master/app.py", line 167, in log
          if self.pt is not None:
      AttributeError: 'Application' object has no attribute 'pt'
      9a3898e4
  14. 16 Oct, 2023 1 commit