{"action":"created","issue":{"url":"https://api.github.com/repos/IsToomersCornerBeingRolledRightNow/theAppThatLetsUsProcessToomersCornerBeingRolled/issues/4","labels_url":"https://api.github.com/repos/IsToomersCornerBeingRolledRightNow/theAppThatLetsUsProcessToomersCornerBeingRolled/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/IsToomersCornerBeingRolledRightNow/theAppThatLetsUsProcessToomersCornerBeingRolled/issues/4/comments","events_url":"https://api.github.com/repos/IsToomersCornerBeingRolledRightNow/theAppThatLetsUsProcessToomersCornerBeingRolled/issues/4/events","html_url":"https://github.com/IsToomersCornerBeingRolledRightNow/theAppThatLetsUsProcessToomersCornerBeingRolled/issues/4","id":63745570,"number":4,"title":"Intermittent production error","user":{"login":"StevenClontz","id":1559632,"avatar_url":"https://avatars.githubusercontent.com/u/1559632?v=3","gravatar_id":"","url":"https://api.github.com/users/StevenClontz","html_url":"https://github.com/StevenClontz","followers_url":"https://api.github.com/users/StevenClontz/followers","following_url":"https://api.github.com/users/StevenClontz/following{/other_user}","gists_url":"https://api.github.com/users/StevenClontz/gists{/gist_id}","starred_url":"https://api.github.com/users/StevenClontz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StevenClontz/subscriptions","organizations_url":"https://api.github.com/users/StevenClontz/orgs","repos_url":"https://api.github.com/users/StevenClontz/repos","events_url":"https://api.github.com/users/StevenClontz/events{/privacy}","received_events_url":"https://api.github.com/users/StevenClontz/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"friedbrice","id":3302003,"avatar_url":"https://avatars.githubusercontent.com/u/3302003?v=3","gravatar_id":"","url":"https://api.github.com/users/friedbrice","html_url":"https://github.com/friedbrice","followers_url":"https://api.github.com/users/friedbrice/followers","following_url":"https://api.github.com/users/friedbrice/following{/other_user}","gists_url":"https://api.github.com/users/friedbrice/gists{/gist_id}","starred_url":"https://api.github.com/users/friedbrice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/friedbrice/subscriptions","organizations_url":"https://api.github.com/users/friedbrice/orgs","repos_url":"https://api.github.com/users/friedbrice/repos","events_url":"https://api.github.com/users/friedbrice/events{/privacy}","received_events_url":"https://api.github.com/users/friedbrice/received_events","type":"User","site_admin":false},"milestone":null,"comments":3,"created_at":"2015-03-23T15:04:28Z","updated_at":"2015-03-23T20:39:13Z","closed_at":null,"body":"I've been restarting the process by hand when this happens, but occasionally this error begins looping:\r\n\r\n```\r\ntheapp.bin: user error (Pattern match failure in do expression at Canny.hs:62:5-23)\r\nfind: `tmp/': No such file or directory\r\nls: cannot access tmp/*: No such file or directory\r\n```\r\n\r\nThe first time this appeared was after running without interruption for over a week. But the last two times I've checked, this has popped up. (I have a recurring reminder to check on the production app every three days.)"},"comment":{"url":"https://api.github.com/repos/IsToomersCornerBeingRolledRightNow/theAppThatLetsUsProcessToomersCornerBeingRolled/issues/comments/85185413","html_url":"https://github.com/IsToomersCornerBeingRolledRightNow/theAppThatLetsUsProcessToomersCornerBeingRolled/issues/4#issuecomment-85185413","issue_url":"https://api.github.com/repos/IsToomersCornerBeingRolledRightNow/theAppThatLetsUsProcessToomersCornerBeingRolled/issues/4","id":85185413,"user":{"login":"friedbrice","id":3302003,"avatar_url":"https://avatars.githubusercontent.com/u/3302003?v=3","gravatar_id":"","url":"https://api.github.com/users/friedbrice","html_url":"https://github.com/friedbrice","followers_url":"https://api.github.com/users/friedbrice/followers","following_url":"https://api.github.com/users/friedbrice/following{/other_user}","gists_url":"https://api.github.com/users/friedbrice/gists{/gist_id}","starred_url":"https://api.github.com/users/friedbrice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/friedbrice/subscriptions","organizations_url":"https://api.github.com/users/friedbrice/orgs","repos_url":"https://api.github.com/users/friedbrice/repos","events_url":"https://api.github.com/users/friedbrice/events{/privacy}","received_events_url":"https://api.github.com/users/friedbrice/received_events","type":"User","site_admin":false},"created_at":"2015-03-23T20:39:13Z","updated_at":"2015-03-23T20:39:13Z","body":"I'm having trouble replicating the error on my laptop, but that makes sense since it's intermittent, so here's my best guess:\r\n\r\nAll three of these lines of console output\r\n```\r\ntheapp.bin: user error (Pattern match failure in do expression at Canny.hs:62:5-23)\r\nfind: `tmp/': No such file or directory\r\nls: cannot access tmp/*: No such file or directory\r\n```\r\nare the result of the `tmp/` directory missing.\r\n\r\nIn `controller.sh`, `find` (line 73) will delete any file in `tmp/` (including `tmp/` itself) that is older than `$myCacheTime` but `find` will deleted a directory _only if it is empty_. But `tmp/` should never actually empty, because `avconv` (line 36) is continually scraping frames off of the webcam and storing them in `tmp/`. We can \"fix\" the invocation of `find` so that it won't delete directories, but that won't address the bigger issue---something is killing `avconv`.\r\n\r\nI'm presently looking into different solutions for how one can monitor (automatically) the activity of a forked process. There should be some kind of canonical UNIX tool for doing exactly that.\r\n"}}