summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroot <root@leto.panaceas.james.local>2021-09-07 10:59:23 +0100
committerroot <root@leto.panaceas.james.local>2021-09-07 10:59:23 +0100
commitd234ec08050ee443dc7ce4a38c2b3a3fe509cbce (patch)
tree216274d4eb36bec6dd99ba32fc398129d3028cfc
downloadcloud_mdir_sync-pq-master.tar.gz
cloud_mdir_sync-pq-master.tar.bz2
cloud_mdir_sync-pq-master.zip
-rw-r--r--.gitignore2
-rw-r--r--master/jmm-fixes41
-rw-r--r--master/series1
3 files changed, 44 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f5038c3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+status
+*~
diff --git a/master/jmm-fixes b/master/jmm-fixes
new file mode 100644
index 0000000..4632cd5
--- /dev/null
+++ b/master/jmm-fixes
@@ -0,0 +1,41 @@
+diff --git a/cloud_mdir_sync/main.py b/cloud_mdir_sync/main.py
+index db33af8..4b98992 100644
+--- a/cloud_mdir_sync/main.py
++++ b/cloud_mdir_sync/main.py
+@@ -134,7 +134,9 @@ def main():
+ pyinotify.AsyncioNotifier(wm, cfg.loop)
+ cfg.watch_manager = wm
+ cfg.msgdb = msgdb
+- cfg.loop.run_until_complete(synchronize_mail(cfg))
++ cfg.loop.run_until_complete(asyncio.gather(synchronize_mail(cfg)))
++
++ cfg.logger.exception("Main loop finished tidying up")
+
+ cfg.loop.run_until_complete(cfg.loop.shutdown_asyncgens())
+ cfg.loop.close()
+diff --git a/cloud_mdir_sync/office365.py b/cloud_mdir_sync/office365.py
+index 7425cad..722f029 100644
+--- a/cloud_mdir_sync/office365.py
++++ b/cloud_mdir_sync/office365.py
+@@ -44,6 +44,8 @@ def _retry_protect(func):
+ continue
+ if e.code == 429: # Too Many Requests
+ delay = int(e.headers.get("Retry-After", 10))
++ if delay < 10:
++ delay = 10
+ self.cfg.logger.error(
+ f"Graph returns {e} Too Many Requests, {e.headers.get('Rate-Limit-Reason')}, delaying {delay}"
+ )
+@@ -791,9 +793,9 @@ class O365Mailbox(mailbox.Mailbox):
+ self._update_msg_flags(todo_flags, cmsg, old_cmsg.flags, lmsg)
+
+ # Debugging that the message really is to be deleted
+- if cmsg is not None and lmsg is None:
+- assert os.stat(os.path.join(self.msgdb.hashes_dir,
+- ch)).st_nlink == 1
++ #if cmsg is not None and lmsg is None:
++ # assert os.stat(os.path.join(self.msgdb.hashes_dir,
++ # ch)).st_nlink == 1
+
+ if cmsg is not None and (lmsg is None or lmsg.flags
+ & messages.Message.FLAG_DELETED):
diff --git a/master/series b/master/series
new file mode 100644
index 0000000..1bacdcf
--- /dev/null
+++ b/master/series
@@ -0,0 +1 @@
+jmm-fixes