{"push_id":1391157605,"size":2,"distinct_size":2,"ref":"refs/heads/master","head":"1ecc8a4f4099dcfd148aecbbe9277d5486b9eef0","before":"7863d2e1da89444456e3c3dc2abe991ab33b135b","commits":[{"sha":"de9d7bcf2580f3c114df9cf3f112aae3367b01d6","author":{"name":"Eelco Dolstra","email":"e954d95a6da8fe3e148b41b496a02d3eda27a906@gmail.com"},"message":"hydra-queue-runner: Handle exceptions in the dispatcher thread\n\nE.g. \"resource unavailable\" when creating new threads.","distinct":true,"url":"https://api.github.com/repos/NixOS/hydra/commits/de9d7bcf2580f3c114df9cf3f112aae3367b01d6"},{"sha":"1ecc8a4f4099dcfd148aecbbe9277d5486b9eef0","author":{"name":"Eelco Dolstra","email":"e954d95a6da8fe3e148b41b496a02d3eda27a906@gmail.com"},"message":"hydra-queue-runner: Fix a race keeping cancelled steps alive\n\nIf a step is cancelled just as its builder step is starting,\ndoBuildStep() will return sRetry. This causes builder() to make the\nstep runnable again, since the queue monitor may have added new builds\nreferencing it. The idea is that if the latter condition is not true,\nthe step's reference count will drop to zero and it will be\ndeleted. However, if the dispatcher thread sees and locks the step\nbefore the reference count can drop to zero in the builder thread, the\ndispatcher thread will start a new builder thread for the step. Thus\nthe step can be kept alive for an indefinite amount of time.\n\nThe fix is for State::builder() to use a weak pointer to the step, to\nensure that the step's reference count can drop to zero *before* it's\nadded to the runnable queue.","distinct":true,"url":"https://api.github.com/repos/NixOS/hydra/commits/1ecc8a4f4099dcfd148aecbbe9277d5486b9eef0"}]}
{"actor":{"display_login":"edolstra"}}