{"action":"created","issue":{"url":"https://api.github.com/repos/cloudius-systems/osv/issues/865","repository_url":"https://api.github.com/repos/cloudius-systems/osv","labels_url":"https://api.github.com/repos/cloudius-systems/osv/issues/865/labels{/name}","comments_url":"https://api.github.com/repos/cloudius-systems/osv/issues/865/comments","events_url":"https://api.github.com/repos/cloudius-systems/osv/issues/865/events","html_url":"https://github.com/cloudius-systems/osv/issues/865","id":216012565,"number":865,"title":"Redis 3.2.8 fails to bind socket","user":{"login":"nyh","id":584227,"avatar_url":"https://avatars0.githubusercontent.com/u/584227?v=3","gravatar_id":"","url":"https://api.github.com/users/nyh","html_url":"https://github.com/nyh","followers_url":"https://api.github.com/users/nyh/followers","following_url":"https://api.github.com/users/nyh/following{/other_user}","gists_url":"https://api.github.com/users/nyh/gists{/gist_id}","starred_url":"https://api.github.com/users/nyh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nyh/subscriptions","organizations_url":"https://api.github.com/users/nyh/orgs","repos_url":"https://api.github.com/users/nyh/repos","events_url":"https://api.github.com/users/nyh/events{/privacy}","received_events_url":"https://api.github.com/users/nyh/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-03-22T10:17:48Z","updated_at":"2017-03-22T11:39:16Z","closed_at":null,"body":"While redis 3.0.1 in apps (\"scripts/build image=redis-memonly\"), if I try to edit apps/redis-memonly/GET to download redis 3.2.8, when I run it I get the error:\r\n```\r\n$ scripts/run.py\r\nOSv v0.24-315-gb215491\r\neth0: 192.168.122.15\r\n0:M 22 Mar 10:15:26.881 # Creating Server TCP listening socket *:6379: unable to bind socket, errno: 93\r\n```\r\n\r\nerrno 93 is  EPROTONOSUPPORT. That's weird, because OSv definitely does support binding TCP sockets, so which protocol is not supported, and what is the new version of redis doing differently?\r\nA wild guess - maybe this is an IPv6 thing? Maybe we're somehow returning the wrong errno for not supporting it?"},"comment":{"url":"https://api.github.com/repos/cloudius-systems/osv/issues/comments/288373255","html_url":"https://github.com/cloudius-systems/osv/issues/865#issuecomment-288373255","issue_url":"https://api.github.com/repos/cloudius-systems/osv/issues/865","id":288373255,"user":{"login":"nyh","id":584227,"avatar_url":"https://avatars0.githubusercontent.com/u/584227?v=3","gravatar_id":"","url":"https://api.github.com/users/nyh","html_url":"https://github.com/nyh","followers_url":"https://api.github.com/users/nyh/followers","following_url":"https://api.github.com/users/nyh/following{/other_user}","gists_url":"https://api.github.com/users/nyh/gists{/gist_id}","starred_url":"https://api.github.com/users/nyh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nyh/subscriptions","organizations_url":"https://api.github.com/users/nyh/orgs","repos_url":"https://api.github.com/users/nyh/repos","events_url":"https://api.github.com/users/nyh/events{/privacy}","received_events_url":"https://api.github.com/users/nyh/received_events","type":"User","site_admin":false},"created_at":"2017-03-22T11:39:16Z","updated_at":"2017-03-22T11:39:16Z","body":"Unfortunately, this seems like a logic error in Redis which doesn't seem to handle well systems which don't support IPv6 (like OSv, unfortunately). We'll need to think how we can work around this - or add a patch to redis (we already have one) and also send it upstream.\r\n\r\nThis is what I think happens in redis code:\r\n\r\nserver.c wants to bind (by default) the wildcard address on both IPv4 and IPv6.\r\nIt starts with IPv6, and calls anetTcp6Server(...). This will return EPROTONOSUPPORT on OSv (why? see below).\r\nBut the following code expects to either have succeeded, or return EAFNOSUPPORT - not to fail with any other error. If it fails with any other error, the code will consider this an error.\r\n\r\nWhy does anetTcp6Server() return EPROTONOSUPPORT and why did they expect EAFNOSUPPORT?\r\n\r\n``patch\r\n``\r\n\r\n"}}
{"actor":{"display_login":"nyh"}}