patch applied (/home/srv/code/hackage-server): "First go at adding continuous/live mirroring" and 8 others

Thu Oct 6 11:29:45 BST 2011 Duncan Coutts

Sorry everyone, I've decided to back out these patches because it'll make it much easier to merge Max's buildbot patches. Rebasing Max's patches on top of mine is proving a little tricky. So I'm going to rebase the other way round. So if you pulled this weekend, watch out, you'll want to obliterate any patches that you've got that are not upstream, use: darcs push --dry-run if you see any patches (that are not your own local ones you're working on), then obliterate them with darcs obliterate. Duncan On Sun, 2011-10-09 at 01:16 +0100, duncan@lun.haskell.org wrote:
Thu Oct 6 11:29:45 BST 2011 Duncan Coutts
* First go at adding continuous/live mirroring Ignore-this: 69423437dcf02091da86ae3480bc128d M ./MirrorClient.hs -32 +105 M ./hackage-server.cabal -1 +1 Thu Oct 6 12:09:20 BST 2011 Duncan Coutts
* Improve the mirror client help messages Ignore-this: 30d7c7730b11b88871fa6a4df3d79014 M ./MirrorClient.hs -5 +35 Sat Oct 8 15:30:24 BST 2011 Duncan Coutts
* Rework the async var to batch updates and amortise the work Ignore-this: 3f53d68d36f1847b061dcb7ddcb3e23d Previously, every single write to the var was laboriously evaluated and since jobs keep comming in faster than they can be evaluated, then the input queue just grows without bound. But if we're just writing then if we have several new inputs in the queue then we can just skip to the final update and evaluate that one. That's now what we do, with a slight complication to do with incremental updates. M ./Distribution/Server/Util/AsyncVar.hs -16 +34 M ./hackage-server.cabal +1 Sat Oct 8 16:55:51 BST 2011 Duncan Coutts
* Overhaughl the mirror client error handling infrastructure and strategy Ignore-this: 59347decddab335ba0f9f75fd66d3d0f M ./MirrorClient.hs -127 +443 Sat Oct 8 17:01:55 BST 2011 Duncan Coutts
* Only rewrite the mirror client error files if they've changed Ignore-this: b82b608bfcd9a6d2e4473bb616ab563c M ./MirrorClient.hs -2 +4 Sat Oct 8 19:20:12 BST 2011 Duncan Coutts
* Disable idle GC for the server Ignore-this: 970125139572aee660c2dae06f904464 It doesn't correctly detect when we're really idle and ends up using ~15% CPU when the server is otherwise idle. M ./hackage-server.cabal +2 Sat Oct 8 19:22:16 BST 2011 Duncan Coutts
* Depend on the latest HTTP lib, for bug fixes Ignore-this: a5f411822c140575974829df3e5eacec M ./MirrorClient.hs -3 M ./hackage-server.cabal -1 +1 Sun Oct 9 00:43:15 BST 2011 Duncan Coutts
* Report when a checkpoint is finished writing. Ignore-this: 2f451e601c3d8fb9c1bb45e34d55f0eb It's just that little bit more reassuring. M ./Main.hs +1 Sun Oct 9 01:12:09 BST 2011 Duncan Coutts
* Handle IO errors in mirroring without losing package error info Ignore-this: 718a385e3718d7cc12a6312109648dfc Previously if we got an IO exception, rather than an HTTP level error, then we had no chance to trap it locally so we would lose all the accumulated info about the packages with errors. Now we cheat. Instead of using a proper state monad, we use a reader monad with an IORef that way, we can catch the IO exception in the monad run function, and still read out the latest package error state. Also handle user interrupt ^C similarly. M ./MirrorClient.hs -15 +33
_______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel
participants (2)
-
Duncan Coutts
-
duncan@lun.haskell.org