{"action":"created","comment":{"url":"https://api.github.com/repos/ocf/puppet/pulls/comments/191304995","pull_request_review_id":123848933,"id":191304995,"diff_hunk":"@@ -0,0 +1,11 @@\n+class ocf_www::mod::fcgid {","path":"modules/ocf_www/manifests/mod/fcgid.pp","position":1,"original_position":1,"commit_id":"606f678ca8110468986bf5458e64938487637bb5","original_commit_id":"606f678ca8110468986bf5458e64938487637bb5","user":{"login":"jvperrin","id":1523594,"avatar_url":"https://avatars1.githubusercontent.com/u/1523594?v=4","gravatar_id":"","url":"https://api.github.com/users/jvperrin","html_url":"https://github.com/jvperrin","followers_url":"https://api.github.com/users/jvperrin/followers","following_url":"https://api.github.com/users/jvperrin/following{/other_user}","gists_url":"https://api.github.com/users/jvperrin/gists{/gist_id}","starred_url":"https://api.github.com/users/jvperrin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jvperrin/subscriptions","organizations_url":"https://api.github.com/users/jvperrin/orgs","repos_url":"https://api.github.com/users/jvperrin/repos","events_url":"https://api.github.com/users/jvperrin/events{/privacy}","received_events_url":"https://api.github.com/users/jvperrin/received_events","type":"User","site_admin":false},"body":"Yeah, I would like to make this not a problem for users if I can. I really wish that fastcgi was still maintained or that fcgid had a similar autoupdate feature, I've found a few threads online where people were asking for one but I couldn't find anything useful there. I'm hoping that lowering the time that scripts run by fcgid are alive for will help with this so that the docs can just say something like \"wait for 30 seconds\" or something would work decently well and still yield acceptable performance. After all, most websites aren't that popular (except dev-dev-vhost from health checks), so that helps.","created_at":"2018-05-29T05:07:54Z","updated_at":"2018-05-29T05:07:54Z","html_url":"https://github.com/ocf/puppet/pull/326#discussion_r191304995","pull_request_url":"https://api.github.com/repos/ocf/puppet/pulls/326","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/ocf/puppet/pulls/comments/191304995"},"html":{"href":"https://github.com/ocf/puppet/pull/326#discussion_r191304995"},"pull_request":{"href":"https://api.github.com/repos/ocf/puppet/pulls/326"}},"in_reply_to_id":191293822},"pull_request":{"url":"https://api.github.com/repos/ocf/puppet/pulls/326","id":190716092,"html_url":"https://github.com/ocf/puppet/pull/326","diff_url":"https://github.com/ocf/puppet/pull/326.diff","patch_url":"https://github.com/ocf/puppet/pull/326.patch","issue_url":"https://api.github.com/repos/ocf/puppet/issues/326","number":326,"state":"open","locked":false,"title":"Get death working with stretch","user":{"login":"jvperrin","id":1523594,"avatar_url":"https://avatars1.githubusercontent.com/u/1523594?v=4","gravatar_id":"","url":"https://api.github.com/users/jvperrin","html_url":"https://github.com/jvperrin","followers_url":"https://api.github.com/users/jvperrin/followers","following_url":"https://api.github.com/users/jvperrin/following{/other_user}","gists_url":"https://api.github.com/users/jvperrin/gists{/gist_id}","starred_url":"https://api.github.com/users/jvperrin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jvperrin/subscriptions","organizations_url":"https://api.github.com/users/jvperrin/orgs","repos_url":"https://api.github.com/users/jvperrin/repos","events_url":"https://api.github.com/users/jvperrin/events{/privacy}","received_events_url":"https://api.github.com/users/jvperrin/received_events","type":"User","site_admin":false},"body":"This PR took quite a while to get (finally) working, but it moves us from:\r\n\r\n- fastcgi (unmaintained) + suexec for vhosts\r\n- suphp (also unmaintained) for userdirs\r\n\r\nto fcgid + suexec for both vhosts and userdirs, both of which are maintained for the forseeable future. We do have to add a [patch on top of suexec](https://github.com/ocf/apache2-suexec-ocf/pull/1) to get this to work, but we were already doing that anyway, so this doesn't add much more complexity to our setup.\r\n\r\nAlternatives considered:\r\n- [mpm-itk](http://mpm-itk.sesse.net): Tried it and didn't get it working well, would need to use mod_php too\r\n- [php-fpm](https://secure.php.net/manual/en/install.fpm.php): Got this working pretty well, but would need to rebuild the configuration for new users, it didn't work well with 50k+ users, and only really started working reasonably when narrowed down to the ~2k users that actually use php. We might want to consider this in the future though, and I've pushed my work on it so far to a [separate branch](https://github.com/ocf/puppet/tree/php-fpm-pools) to keep it around.\r\n- Foward port [suphp](https://www.suphp.org/Home.html): Didn't really want to do this since we've done this already and eventually we just have to become the maintainers for the whole package.\r\n\r\nThings to do:\r\n- [ ] Merge and build the [modified suexec package](https://github.com/ocf/apache2-suexec-ocf/pull/1) (probably do it automatically with Jenkins for consistency?)\r\n- [ ] Add more test cases to the [ggroup account](https://www.ocf.berkeley.edu/~ggroup/)\r\n- [ ] Make sure that the lack of an auto-updating feature with mod_fcgid doesn't make it too unusable and update ocfweb docs to reflect the lack of an autoupdate.\r\n- [x] Test speed/reliability vs current death to make sure that dev-death can handle the same traffic that death does without the errors that death is getting currently from mod_fastcgi.\r\n- [x] Test this on jessie with dev-death running jessie to see if it works there. I don't see why it shouldn't work, but I'd like to test it for a bit there first to see.\r\n- [x] Remake dev-death running stretch and check that everything puppets correctly, since I have been messing around with this host quite a bit so I might have some unpuppeted changes.\r\n\r\nThoughts?","created_at":"2018-05-26T00:18:26Z","updated_at":"2018-05-29T05:07:54Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5e39f37915d6af679bf8a7c6b452f0d60437ef45","assignee":null,"assignees":[],"requested_reviewers":[{"login":"dkess","id":749522,"avatar_url":"https://avatars1.githubusercontent.com/u/749522?v=4","gravatar_id":"","url":"https://api.github.com/users/dkess","html_url":"https://github.com/dkess","followers_url":"https://api.github.com/users/dkess/followers","following_url":"https://api.github.com/users/dkess/following{/other_user}","gists_url":"https://api.github.com/users/dkess/gists{/gist_id}","starred_url":"https://api.github.com/users/dkess/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dkess/subscriptions","organizations_url":"https://api.github.com/users/dkess/orgs","repos_url":"https://api.github.com/users/dkess/repos","events_url":"https://api.github.com/users/dkess/events{/privacy}","received_events_url":"https://api.github.com/users/dkess/received_events","type":"User","site_admin":false},{"login":"abizer","id":1916822,"avatar_url":"https://avatars1.githubusercontent.com/u/1916822?v=4","gravatar_id":"","url":"https://api.github.com/users/abizer","html_url":"https://github.com/abizer","followers_url":"https://api.github.com/users/abizer/followers","following_url":"https://api.github.com/users/abizer/following{/other_user}","gists_url":"https://api.github.com/users/abizer/gists{/gist_id}","starred_url":"https://api.github.com/users/abizer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abizer/subscriptions","organizations_url":"https://api.github.com/users/abizer/orgs","repos_url":"https://api.github.com/users/abizer/repos","events_url":"https://api.github.com/users/abizer/events{/privacy}","received_events_url":"https://api.github.com/users/abizer/received_events","type":"User","site_admin":false},{"login":"kpengboy","id":4122890,"avatar_url":"https://avatars3.githubusercontent.com/u/4122890?v=4","gravatar_id":"","url":"https://api.github.com/users/kpengboy","html_url":"https://github.com/kpengboy","followers_url":"https://api.github.com/users/kpengboy/followers","following_url":"https://api.github.com/users/kpengboy/following{/other_user}","gists_url":"https://api.github.com/users/kpengboy/gists{/gist_id}","starred_url":"https://api.github.com/users/kpengboy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kpengboy/subscriptions","organizations_url":"https://api.github.com/users/kpengboy/orgs","repos_url":"https://api.github.com/users/kpengboy/repos","events_url":"https://api.github.com/users/kpengboy/events{/privacy}","received_events_url":"https://api.github.com/users/kpengboy/received_events","type":"User","site_admin":false},{"login":"kkuehler","id":28680078,"avatar_url":"https://avatars0.githubusercontent.com/u/28680078?v=4","gravatar_id":"","url":"https://api.github.com/users/kkuehler","html_url":"https://github.com/kkuehler","followers_url":"https://api.github.com/users/kkuehler/followers","following_url":"https://api.github.com/users/kkuehler/following{/other_user}","gists_url":"https://api.github.com/users/kkuehler/gists{/gist_id}","starred_url":"https://api.github.com/users/kkuehler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kkuehler/subscriptions","organizations_url":"https://api.github.com/users/kkuehler/orgs","repos_url":"https://api.github.com/users/kkuehler/repos","events_url":"https://api.github.com/users/kkuehler/events{/privacy}","received_events_url":"https://api.github.com/users/kkuehler/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/ocf/puppet/pulls/326/commits","review_comments_url":"https://api.github.com/repos/ocf/puppet/pulls/326/comments","review_comment_url":"https://api.github.com/repos/ocf/puppet/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ocf/puppet/issues/326/comments","statuses_url":"https://api.github.com/repos/ocf/puppet/statuses/606f678ca8110468986bf5458e64938487637bb5","head":{"label":"ocf:death-stretch","ref":"death-stretch","sha":"606f678ca8110468986bf5458e64938487637bb5","user":{"login":"ocf","id":1504667,"avatar_url":"https://avatars2.githubusercontent.com/u/1504667?v=4","gravatar_id":"","url":"https://api.github.com/users/ocf","html_url":"https://github.com/ocf","followers_url":"https://api.github.com/users/ocf/followers","following_url":"https://api.github.com/users/ocf/following{/other_user}","gists_url":"https://api.github.com/users/ocf/gists{/gist_id}","starred_url":"https://api.github.com/users/ocf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ocf/subscriptions","organizations_url":"https://api.github.com/users/ocf/orgs","repos_url":"https://api.github.com/users/ocf/repos","events_url":"https://api.github.com/users/ocf/events{/privacy}","received_events_url":"https://api.github.com/users/ocf/received_events","type":"Organization","site_admin":false},"repo":{"id":7022222,"name":"puppet","full_name":"ocf/puppet","owner":{"login":"ocf","id":1504667,"avatar_url":"https://avatars2.githubusercontent.com/u/1504667?v=4","gravatar_id":"","url":"https://api.github.com/users/ocf","html_url":"https://github.com/ocf","followers_url":"https://api.github.com/users/ocf/followers","following_url":"https://api.github.com/users/ocf/following{/other_user}","gists_url":"https://api.github.com/users/ocf/gists{/gist_id}","starred_url":"https://api.github.com/users/ocf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ocf/subscriptions","organizations_url":"https://api.github.com/users/ocf/orgs","repos_url":"https://api.github.com/users/ocf/repos","events_url":"https://api.github.com/users/ocf/events{/privacy}","received_events_url":"https://api.github.com/users/ocf/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ocf/puppet","description":"Puppet config for OCF servers and lab machines","fork":false,"url":"https://api.github.com/repos/ocf/puppet","forks_url":"https://api.github.com/repos/ocf/puppet/forks","keys_url":"https://api.github.com/repos/ocf/puppet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ocf/puppet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ocf/puppet/teams","hooks_url":"https://api.github.com/repos/ocf/puppet/hooks","issue_events_url":"https://api.github.com/repos/ocf/puppet/issues/events{/number}","events_url":"https://api.github.com/repos/ocf/puppet/events","assignees_url":"https://api.github.com/repos/ocf/puppet/assignees{/user}","branches_url":"https://api.github.com/repos/ocf/puppet/branches{/branch}","tags_url":"https://api.github.com/repos/ocf/puppet/tags","blobs_url":"https://api.github.com/repos/ocf/puppet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ocf/puppet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ocf/puppet/git/refs{/sha}","trees_url":"https://api.github.com/repos/ocf/puppet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ocf/puppet/statuses/{sha}","languages_url":"https://api.github.com/repos/ocf/puppet/languages","stargazers_url":"https://api.github.com/repos/ocf/puppet/stargazers","contributors_url":"https://api.github.com/repos/ocf/puppet/contributors","subscribers_url":"https://api.github.com/repos/ocf/puppet/subscribers","subscription_url":"https://api.github.com/repos/ocf/puppet/subscription","commits_url":"https://api.github.com/repos/ocf/puppet/commits{/sha}","git_commits_url":"https://api.github.com/repos/ocf/puppet/git/commits{/sha}","comments_url":"https://api.github.com/repos/ocf/puppet/comments{/number}","issue_comment_url":"https://api.github.com/repos/ocf/puppet/issues/comments{/number}","contents_url":"https://api.github.com/repos/ocf/puppet/contents/{+path}","compare_url":"https://api.github.com/repos/ocf/puppet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ocf/puppet/merges","archive_url":"https://api.github.com/repos/ocf/puppet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ocf/puppet/downloads","issues_url":"https://api.github.com/repos/ocf/puppet/issues{/number}","pulls_url":"https://api.github.com/repos/ocf/puppet/pulls{/number}","milestones_url":"https://api.github.com/repos/ocf/puppet/milestones{/number}","notifications_url":"https://api.github.com/repos/ocf/puppet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ocf/puppet/labels{/name}","releases_url":"https://api.github.com/repos/ocf/puppet/releases{/id}","deployments_url":"https://api.github.com/repos/ocf/puppet/deployments","created_at":"2012-12-05T18:16:15Z","updated_at":"2018-05-28T23:27:03Z","pushed_at":"2018-05-28T23:26:59Z","git_url":"git://github.com/ocf/puppet.git","ssh_url":"git@github.com:ocf/puppet.git","clone_url":"https://github.com/ocf/puppet.git","svn_url":"https://github.com/ocf/puppet","homepage":"https://www.ocf.berkeley.edu/","size":4962,"stargazers_count":12,"watchers_count":12,"language":"Puppet","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":31,"mirror_url":null,"archived":false,"open_issues_count":10,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":31,"open_issues":10,"watchers":12,"default_branch":"master"}},"base":{"label":"ocf:master","ref":"master","sha":"7539413ea920340e1d425417c1c6d9422dc4576d","user":{"login":"ocf","id":1504667,"avatar_url":"https://avatars2.githubusercontent.com/u/1504667?v=4","gravatar_id":"","url":"https://api.github.com/users/ocf","html_url":"https://github.com/ocf","followers_url":"https://api.github.com/users/ocf/followers","following_url":"https://api.github.com/users/ocf/following{/other_user}","gists_url":"https://api.github.com/users/ocf/gists{/gist_id}","starred_url":"https://api.github.com/users/ocf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ocf/subscriptions","organizations_url":"https://api.github.com/users/ocf/orgs","repos_url":"https://api.github.com/users/ocf/repos","events_url":"https://api.github.com/users/ocf/events{/privacy}","received_events_url":"https://api.github.com/users/ocf/received_events","type":"Organization","site_admin":false},"repo":{"id":7022222,"name":"puppet","full_name":"ocf/puppet","owner":{"login":"ocf","id":1504667,"avatar_url":"https://avatars2.githubusercontent.com/u/1504667?v=4","gravatar_id":"","url":"https://api.github.com/users/ocf","html_url":"https://github.com/ocf","followers_url":"https://api.github.com/users/ocf/followers","following_url":"https://api.github.com/users/ocf/following{/other_user}","gists_url":"https://api.github.com/users/ocf/gists{/gist_id}","starred_url":"https://api.github.com/users/ocf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ocf/subscriptions","organizations_url":"https://api.github.com/users/ocf/orgs","repos_url":"https://api.github.com/users/ocf/repos","events_url":"https://api.github.com/users/ocf/events{/privacy}","received_events_url":"https://api.github.com/users/ocf/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ocf/puppet","description":"Puppet config for OCF servers and lab machines","fork":false,"url":"https://api.github.com/repos/ocf/puppet","forks_url":"https://api.github.com/repos/ocf/puppet/forks","keys_url":"https://api.github.com/repos/ocf/puppet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ocf/puppet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ocf/puppet/teams","hooks_url":"https://api.github.com/repos/ocf/puppet/hooks","issue_events_url":"https://api.github.com/repos/ocf/puppet/issues/events{/number}","events_url":"https://api.github.com/repos/ocf/puppet/events","assignees_url":"https://api.github.com/repos/ocf/puppet/assignees{/user}","branches_url":"https://api.github.com/repos/ocf/puppet/branches{/branch}","tags_url":"https://api.github.com/repos/ocf/puppet/tags","blobs_url":"https://api.github.com/repos/ocf/puppet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ocf/puppet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ocf/puppet/git/refs{/sha}","trees_url":"https://api.github.com/repos/ocf/puppet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ocf/puppet/statuses/{sha}","languages_url":"https://api.github.com/repos/ocf/puppet/languages","stargazers_url":"https://api.github.com/repos/ocf/puppet/stargazers","contributors_url":"https://api.github.com/repos/ocf/puppet/contributors","subscribers_url":"https://api.github.com/repos/ocf/puppet/subscribers","subscription_url":"https://api.github.com/repos/ocf/puppet/subscription","commits_url":"https://api.github.com/repos/ocf/puppet/commits{/sha}","git_commits_url":"https://api.github.com/repos/ocf/puppet/git/commits{/sha}","comments_url":"https://api.github.com/repos/ocf/puppet/comments{/number}","issue_comment_url":"https://api.github.com/repos/ocf/puppet/issues/comments{/number}","contents_url":"https://api.github.com/repos/ocf/puppet/contents/{+path}","compare_url":"https://api.github.com/repos/ocf/puppet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ocf/puppet/merges","archive_url":"https://api.github.com/repos/ocf/puppet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ocf/puppet/downloads","issues_url":"https://api.github.com/repos/ocf/puppet/issues{/number}","pulls_url":"https://api.github.com/repos/ocf/puppet/pulls{/number}","milestones_url":"https://api.github.com/repos/ocf/puppet/milestones{/number}","notifications_url":"https://api.github.com/repos/ocf/puppet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ocf/puppet/labels{/name}","releases_url":"https://api.github.com/repos/ocf/puppet/releases{/id}","deployments_url":"https://api.github.com/repos/ocf/puppet/deployments","created_at":"2012-12-05T18:16:15Z","updated_at":"2018-05-28T23:27:03Z","pushed_at":"2018-05-28T23:26:59Z","git_url":"git://github.com/ocf/puppet.git","ssh_url":"git@github.com:ocf/puppet.git","clone_url":"https://github.com/ocf/puppet.git","svn_url":"https://github.com/ocf/puppet","homepage":"https://www.ocf.berkeley.edu/","size":4962,"stargazers_count":12,"watchers_count":12,"language":"Puppet","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":31,"mirror_url":null,"archived":false,"open_issues_count":10,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":31,"open_issues":10,"watchers":12,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ocf/puppet/pulls/326"},"html":{"href":"https://github.com/ocf/puppet/pull/326"},"issue":{"href":"https://api.github.com/repos/ocf/puppet/issues/326"},"comments":{"href":"https://api.github.com/repos/ocf/puppet/issues/326/comments"},"review_comments":{"href":"https://api.github.com/repos/ocf/puppet/pulls/326/comments"},"review_comment":{"href":"https://api.github.com/repos/ocf/puppet/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ocf/puppet/pulls/326/commits"},"statuses":{"href":"https://api.github.com/repos/ocf/puppet/statuses/606f678ca8110468986bf5458e64938487637bb5"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"jvperrin"}}