diff options
-rw-r--r-- | doc/design/assistant/blog/day_270__release_and_xmpp.mdwn | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/doc/design/assistant/blog/day_270__release_and_xmpp.mdwn b/doc/design/assistant/blog/day_270__release_and_xmpp.mdwn new file mode 100644 index 000000000..96adee3bf --- /dev/null +++ b/doc/design/assistant/blog/day_270__release_and_xmpp.mdwn @@ -0,0 +1,39 @@ +Got the bugfix release out. + +Tobias contributed [[tips/megaannex]], which allows using mega.co.nz as a +special remote. Someone should do this with Flickr, using +[filr](https://github.com/ricardobeat/filr). I have improved the +[[special_remotes/hook]] special remote to make it easier to create +and use reusable programs like megaannex. + +But, I am too busy rewriting lots of the XMPP code to join in the +special remote fun. Spent all last night staring at protocol traces and +tests, and came to the conclusion that it's working well at the basic +communication level, but there are a lot of bugs above that level. This +mostly shows up as one side refusing to push changes made to its tree, +although it will happily merge in changes sent from the other side. + +The NetMessanger code, which handles routing messages to git commands and +queuing other messages, seems to be just wrong. This is code I wrote in the +fall, and have basically not touched since. And it shows. Spent 4 hours +this morning rewriting it. Went all Erlang and implemented message inboxes +using STM. I'm much more confident it won't drop messages on the +floor, which the old code certianly did do sometimes. + +Added a check to avoid unncessary pushes over XMPP. Unfortunately, this +required changing the protocol in a way that will make previous versions of +git-annex refuse to accept any pushes advertised by this version. Could not +find a way around that, but there were so many unncessary pushes happening +(and possibly contributing to other problems) that it seemed worth the +upgrade pain. + +Will be beating on XMPP a bit more. There is one problem I was seeing +last night that I cannot reproduce now. It may have been masked or even +fixed by these changes, but I need to verify that, or put in a workaround. +It seemed that sometimes this code in `runPush` would run the setup +and the action, but either the action blocked forever, or an exception +got through and caused the cleanup not to be run. + +[[!format haskell """ + r <- E.bracket_ setup cleanup <~> a +"""]] |