)]}'
{"src/main/java/hudson/plugins/gearman/StartJobWorker.java":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"c4a7668d648ecc26fb1589328c4a912c218cc383","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            GearmanProxy.getInstance().getAvailabilityMonitor(computer);"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        availability.expectUUID(decodedUniqueId);"},{"line_number":170,"context_line":"        availability.unlock(worker);"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        // schedule jenkins to build project"},{"line_number":173,"context_line":"        logger.info(\"---- Worker \" + this.worker + \" scheduling \" +"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAAARH%2F%2F3yw%3D","line":170,"updated":"2013-08-15 22:17:53.000000000","message":"Is this safe? Line 177 starts the job. I thought that the node availability monitor needed to be held when starting jobs to prevent Jenkins and Gearman threads from inappropriate scheduling jobs on executors.","commit_id":"e9eb2d526d82f5b130edc83590044c0d049c2601"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"23a706394f4fc0707a9028f8e1e843692da0e43b","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            GearmanProxy.getInstance().getAvailabilityMonitor(computer);"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        availability.expectUUID(decodedUniqueId);"},{"line_number":170,"context_line":"        availability.unlock(worker);"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        // schedule jenkins to build project"},{"line_number":173,"context_line":"        logger.info(\"---- Worker \" + this.worker + \" scheduling \" +"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAAARH%2F%2F3yk%3D","line":170,"in_reply_to":"AAAARH%2F%2F3yw%3D","updated":"2013-08-15 22:20:20.000000000","message":"This should only be called if we are not going offline when complete.","commit_id":"e9eb2d526d82f5b130edc83590044c0d049c2601"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"30d53b40388b7e0f640c19c3fdadb5d5f14f013a","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        // wait for start of build"},{"line_number":198,"context_line":"        Queue.Executable exec \u003d future.getStartCondition().get();"},{"line_number":199,"context_line":"        AbstractBuild\u003c?, ?\u003e currBuild \u003d (AbstractBuild\u003c?, ?\u003e) exec;"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        long now \u003d new Date().getTime();"},{"line_number":202,"context_line":"        int duration \u003d (int) (now - currBuild.getStartTimeInMillis());"}],"source_content_type":"text/x-java","patch_set":1,"id":"AAAARH%2F%2F3xA%3D","line":199,"updated":"2013-08-15 22:26:44.000000000","message":"This looks like the line that the unlock used to be on according to `git log -p`.","commit_id":"e9eb2d526d82f5b130edc83590044c0d049c2601"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"38d83e961cfb0577a8cf26ba01c709893c5f907d","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        AbstractBuild\u003c?, ?\u003e currBuild \u003d (AbstractBuild\u003c?, ?\u003e) exec;"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        // Unlock the monitor for this worker"},{"line_number":201,"context_line":"        availability.unlock(worker);"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        long now \u003d new Date().getTime();"},{"line_number":204,"context_line":"        int duration \u003d (int) (now - currBuild.getStartTimeInMillis());"}],"source_content_type":"text/x-java","patch_set":2,"id":"AAAARH%2F%2F3rc%3D","line":201,"updated":"2013-08-15 23:01:57.000000000","message":"This should be wrapped in a if(!offlineWhenComplete) check according to Jeblair\u0027s comments on patchset 1.","commit_id":"8c903f83a871cd80a4932c849af320ad8c226b78"}]}
