Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
storage: make partial writes pos sanity-check more robust
The return value of f.write and f.seek cannot be compared when using open() in text mode: ``` >>> import os >>> s = "aá" >>> >>> with open("a1", "w", encoding='utf-8') as f: ... a = f.write(s) ... pos = f.seek(0, os.SEEK_END) ... print(a, pos) ... 2 3 >>> >>> with open("a2", "wb") as f: ... a = f.write(s.encode('utf-8')) ... pos = f.seek(0, os.SEEK_END) ... print(a, pos) ... 3 3 ``` Was getting errors on Windows, probably due to `\r\n` vs `\n`? ``` 20231010T121334.522573Z | ERROR | util.CallbackManager | cb errored. event='adb_set_up_to_date'. exc=AssertionError((2471475, 2522998)) Traceback (most recent call last): File "...\electrum\electrum\wallet.py", line 497, in on_event_adb_set_up_to_date self.save_db() File "...\electrum\electrum\wallet.py", line 403, in save_db self.db.write() File "...\electrum\electrum\json_db.py", line 48, in wrapper return func(self, *args, **kwargs) File "...\electrum\electrum\json_db.py", line 389, in write self._append_pending_changes() File "...\electrum\electrum\json_db.py", line 48, in wrapper return func(self, *args, **kwargs) File "...\electrum\electrum\json_db.py", line 400, in _append_pending_changes self.storage.append(s) File "...\electrum\electrum\storage.py", line 110, in append assert pos == self.pos, (self.pos, pos) AssertionError: (2471475, 2522998) ```
- Loading branch information