{"action":"created","issue":{"url":"https://api.github.com/repos/nunit/nunit-console/issues/128","repository_url":"https://api.github.com/repos/nunit/nunit-console","labels_url":"https://api.github.com/repos/nunit/nunit-console/issues/128/labels{/name}","comments_url":"https://api.github.com/repos/nunit/nunit-console/issues/128/comments","events_url":"https://api.github.com/repos/nunit/nunit-console/issues/128/events","html_url":"https://github.com/nunit/nunit-console/issues/128","id":187666606,"number":128,"title":"When running under teamcity, agent processes are sometimes left running after nunit-console has exited","user":{"login":"davidjward30","id":13663423,"avatar_url":"https://avatars.githubusercontent.com/u/13663423?v=3","gravatar_id":"","url":"https://api.github.com/users/davidjward30","html_url":"https://github.com/davidjward30","followers_url":"https://api.github.com/users/davidjward30/followers","following_url":"https://api.github.com/users/davidjward30/following{/other_user}","gists_url":"https://api.github.com/users/davidjward30/gists{/gist_id}","starred_url":"https://api.github.com/users/davidjward30/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidjward30/subscriptions","organizations_url":"https://api.github.com/users/davidjward30/orgs","repos_url":"https://api.github.com/users/davidjward30/repos","events_url":"https://api.github.com/users/davidjward30/events{/privacy}","received_events_url":"https://api.github.com/users/davidjward30/received_events","type":"User","site_admin":false},"labels":[{"id":425067002,"url":"https://api.github.com/repos/nunit/nunit-console/labels/is:bug","name":"is:bug","color":"ee0701","default":false},{"id":425450115,"url":"https://api.github.com/repos/nunit/nunit-console/labels/pri:high","name":"pri:high","color":"d93f0b","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":13,"created_at":"2016-11-07T09:50:12Z","updated_at":"2017-01-10T18:26:37Z","closed_at":null,"body":"We are finding that nunit agent processes are sometimes left running forever after a CI build has completed. This is serious issue for a CI server as once an agent is in such a state, build after build can fail and manual intervention is required to recover. \r\n\r\nWhen logging into the build machine, I typically observe several agent processes consuming 0 CPU and they appear to have unloaded all tests assemblies, leaving the directory and nunit assemblies locked. In this state, the CI system is then blocked from cleaning up the working directory.\r\n\r\nThis seemed to start happening in nunit 3.4 and is still an issue with nunit 3.5.0\r\n\r\nOur initial investigation suggests that the user-invoked cancellation of CI builds might be the source of the issue.  Cancellation will appear to be successful and the error will typically manifest later when the agent picks up another build."},"comment":{"url":"https://api.github.com/repos/nunit/nunit-console/issues/comments/271656278","html_url":"https://github.com/nunit/nunit-console/issues/128#issuecomment-271656278","issue_url":"https://api.github.com/repos/nunit/nunit-console/issues/128","id":271656278,"user":{"login":"CharliePoole","id":2678661,"avatar_url":"https://avatars.githubusercontent.com/u/2678661?v=3","gravatar_id":"","url":"https://api.github.com/users/CharliePoole","html_url":"https://github.com/CharliePoole","followers_url":"https://api.github.com/users/CharliePoole/followers","following_url":"https://api.github.com/users/CharliePoole/following{/other_user}","gists_url":"https://api.github.com/users/CharliePoole/gists{/gist_id}","starred_url":"https://api.github.com/users/CharliePoole/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CharliePoole/subscriptions","organizations_url":"https://api.github.com/users/CharliePoole/orgs","repos_url":"https://api.github.com/users/CharliePoole/repos","events_url":"https://api.github.com/users/CharliePoole/events{/privacy}","received_events_url":"https://api.github.com/users/CharliePoole/received_events","type":"User","site_admin":false},"created_at":"2017-01-10T18:26:37Z","updated_at":"2017-01-10T18:26:37Z","body":"Unfortunately, Job Objects is a solution for users, not for us, because it's based on Windows-specific technology. :-(\r\n\r\nWe could easily keep track of all the processes we start and ensure we get rid of them on normal termination. In fact, we already do that indirectly by unloading the assemblies. The problem is that there's no general way I'm aware of to get control when the process is being killed.\r\n\r\nSo that leaves us with the agents monitoring the server (the TestAgency service in the main program) and terminating if it goes away. I think we should do that.\r\n\r\nBut I think most cases will be eliminated if the console just passes a setting in the package that tells the agent to terminate after running instead of waiting around."}}
{"actor":{"display_login":"CharliePoole"}}