{"action":"created","issue":{"url":"https://api.github.com/repos/flux-framework/flux-core/issues/467","labels_url":"https://api.github.com/repos/flux-framework/flux-core/issues/467/labels{/name}","comments_url":"https://api.github.com/repos/flux-framework/flux-core/issues/467/comments","events_url":"https://api.github.com/repos/flux-framework/flux-core/issues/467/events","html_url":"https://github.com/flux-framework/flux-core/pull/467","id":114092866,"number":467,"title":"zio relocation and cleanup","user":{"login":"garlick","id":169947,"avatar_url":"https://avatars.githubusercontent.com/u/169947?v=3","gravatar_id":"","url":"https://api.github.com/users/garlick","html_url":"https://github.com/garlick","followers_url":"https://api.github.com/users/garlick/followers","following_url":"https://api.github.com/users/garlick/following{/other_user}","gists_url":"https://api.github.com/users/garlick/gists{/gist_id}","starred_url":"https://api.github.com/users/garlick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garlick/subscriptions","organizations_url":"https://api.github.com/users/garlick/orgs","repos_url":"https://api.github.com/users/garlick/repos","events_url":"https://api.github.com/users/garlick/events{/privacy}","received_events_url":"https://api.github.com/users/garlick/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/flux-framework/flux-core/labels/review","name":"review","color":"ededed"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-10-29T16:40:37Z","updated_at":"2015-10-29T16:44:22Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/flux-framework/flux-core/pulls/467","html_url":"https://github.com/flux-framework/flux-core/pull/467","diff_url":"https://github.com/flux-framework/flux-core/pull/467.diff","patch_url":"https://github.com/flux-framework/flux-core/pull/467.patch"},"body":"This PR merges the zio class into libsubprocess and relocates both to src/common, where they are included in libflux-internal.la.\r\n\r\nFunctions for closing zio's internal file descriptors were added, as calling e.g. `close(zio_get_srcfd(zio))` did not flag the fd's internally as closed, risking double close at `zio_destroy()`.  The two main users, wreck and subprocess, were updated to use the new functions, which I think satisfies the audit need mentioned in #458.  Also several cases of unchecked `close()` return value were fixed to increase the chances of catching this in the future.\r\n\r\nA small test of the zIo pipe readers/writers was added to replace the outdated test that was removed in PR #464.\r\n\r\nFinally, changing the zio buffer no longer leaks a cbuf, and sets the cbuf minimum size to the buffer size so that read and write system calls can use the configured size.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/flux-framework/flux-core/issues/comments/152244122","html_url":"https://github.com/flux-framework/flux-core/pull/467#issuecomment-152244122","issue_url":"https://api.github.com/repos/flux-framework/flux-core/issues/467","id":152244122,"user":{"login":"garlick","id":169947,"avatar_url":"https://avatars.githubusercontent.com/u/169947?v=3","gravatar_id":"","url":"https://api.github.com/users/garlick","html_url":"https://github.com/garlick","followers_url":"https://api.github.com/users/garlick/followers","following_url":"https://api.github.com/users/garlick/following{/other_user}","gists_url":"https://api.github.com/users/garlick/gists{/gist_id}","starred_url":"https://api.github.com/users/garlick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garlick/subscriptions","organizations_url":"https://api.github.com/users/garlick/orgs","repos_url":"https://api.github.com/users/garlick/repos","events_url":"https://api.github.com/users/garlick/events{/privacy}","received_events_url":"https://api.github.com/users/garlick/received_events","type":"User","site_admin":false},"created_at":"2015-10-29T16:44:22Z","updated_at":"2015-10-29T16:44:22Z","body":"Oops I see a rebase error in the first commit.  Let me fix that and resubmit."}}