{"action":"created","issue":{"url":"https://api.github.com/repos/mirage/mirage-net-xen/issues/20","labels_url":"https://api.github.com/repos/mirage/mirage-net-xen/issues/20/labels{/name}","comments_url":"https://api.github.com/repos/mirage/mirage-net-xen/issues/20/comments","events_url":"https://api.github.com/repos/mirage/mirage-net-xen/issues/20/events","html_url":"https://github.com/mirage/mirage-net-xen/issues/20","id":56959168,"number":20,"title":"Possible race condition on startup","user":{"login":"samoht","id":103693,"avatar_url":"https://avatars.githubusercontent.com/u/103693?v=3","gravatar_id":"","url":"https://api.github.com/users/samoht","html_url":"https://github.com/samoht","followers_url":"https://api.github.com/users/samoht/followers","following_url":"https://api.github.com/users/samoht/following{/other_user}","gists_url":"https://api.github.com/users/samoht/gists{/gist_id}","starred_url":"https://api.github.com/users/samoht/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samoht/subscriptions","organizations_url":"https://api.github.com/users/samoht/orgs","repos_url":"https://api.github.com/users/samoht/repos","events_url":"https://api.github.com/users/samoht/events{/privacy}","received_events_url":"https://api.github.com/users/samoht/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-02-08T17:22:01Z","updated_at":"2015-02-24T11:36:06Z","closed_at":null,"body":"Got the following trace in synjitsu, where the initial ARP packet and the first SYNACK seems to somehow overlap, resulting in the SYNACK (`id=2`) never actually sent on the network.\r\n\r\n```\r\nARP: sending gratuitous from 192.168.2.140\r\nNetif.writev\r\nNetif.writev_no_retry\r\nNetif.write_already_locked\r\nNetif.write_request id=1 available-devices: [0])\r\nNetif.Share_page_pool.use\r\nNetif.Shared_page_pool.alloc\r\nNetif.write_request: id=1 len=42 size=42\r\nNetif.notify\r\nNetfi.write_already_locked: Front.push done\r\nManager: configuration done\r\nFAST-START mode. Watching xenstore for incoming SYN!\r\nPorts: 80\r\nDest-ip: 192.168.2.1\r\nDest-ports: 58195\r\nFound 1 started connections.\r\ntx=65535 sequence=-19772235 options=(SACK_ok(Timestamp 2112076375 0)Noop Noop(Window_size_shift 5)Noop(MSS 1460)) tx_isn=452894287 rx_wnd=65535 rx_wnd_sca=2\r\nFound SYN cookies.\r\nSegment.output time=0.17 xmit=true rexmit=true\r\nWire.xmit checksum=14b7 192.168.2.140.80->192.168.2.1.58195 rst=false syn=true fin=false psh=false seq=452894287 ack=4275195062 options=[ MSS=1460; Window>>2 ] datalen=0 datafrag=0 dataoff=7 olen=8\r\nNetif.writev\r\nNetif.writev_no_retry\r\nNetif.write_already_locked\r\nNetif.write_request id=2 available-devices: [0])\r\nNetif.Share_page_pool.use\r\nNetif.write_request: id=2 len=62 size=62\r\nNetfi.write_already_locked: Front.push done\r\nNetfif.poll_thread:loop\r\nNetif.rx_poll\r\nNetif.refill_requests\r\nNetif.tx_poll\r\nNetif.write_request: id=2 Lwt_ring.Front.write done!\r\nNetif.Shared_page_pool.put\r\nNetif.write_request: id=1 Lwt_ring.Front.write done!\r\nNetif.Shared_page_pool.put\r\nNetfif.poll_thread:loop\r\nNetif.rx_poll\r\nNetif.refill_requests\r\nNetif.tx_poll\r\nNetfif.poll_thread:loop\r\nNetif.rx_poll\r\nNetif.refill_requests\r\nNetif.tx_poll\r\nNetfif.poll_thread:loop\r\n....\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/mirage/mirage-net-xen/issues/comments/75741285","html_url":"https://github.com/mirage/mirage-net-xen/issues/20#issuecomment-75741285","issue_url":"https://api.github.com/repos/mirage/mirage-net-xen/issues/20","id":75741285,"user":{"login":"samoht","id":103693,"avatar_url":"https://avatars.githubusercontent.com/u/103693?v=3","gravatar_id":"","url":"https://api.github.com/users/samoht","html_url":"https://github.com/samoht","followers_url":"https://api.github.com/users/samoht/followers","following_url":"https://api.github.com/users/samoht/following{/other_user}","gists_url":"https://api.github.com/users/samoht/gists{/gist_id}","starred_url":"https://api.github.com/users/samoht/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samoht/subscriptions","organizations_url":"https://api.github.com/users/samoht/orgs","repos_url":"https://api.github.com/users/samoht/repos","events_url":"https://api.github.com/users/samoht/events{/privacy}","received_events_url":"https://api.github.com/users/samoht/received_events","type":"User","site_admin":false},"created_at":"2015-02-24T11:36:06Z","updated_at":"2015-02-24T11:36:06Z","body":"We again met that bug in another stress tests. Would it be possible to (i) either revert the incriminated changesets (I'm not sure that's a good idea as these were supposed to fix an other real issue) and (ii) write unit-tests (if possible not involving setting a xen environment, but abstracting away some low-level stuff as @djs55 started to do it on other packages).\r\n\r\nIn a more general way, I think we should avoid as much as possible \"pure\" xen packages, without easy-to-deploy, runnable on unix, functional tests. These kinds of bugs are awful to track down so we should try to build as much as confidence as possible by other means."}}