{"action":"created","issue":{"url":"https://api.github.com/repos/sandia-minimega/minimega/issues/749","repository_url":"https://api.github.com/repos/sandia-minimega/minimega","labels_url":"https://api.github.com/repos/sandia-minimega/minimega/issues/749/labels{/name}","comments_url":"https://api.github.com/repos/sandia-minimega/minimega/issues/749/comments","events_url":"https://api.github.com/repos/sandia-minimega/minimega/issues/749/events","html_url":"https://github.com/sandia-minimega/minimega/issues/749","id":188008793,"number":749,"title":"minimega: deadlock with mac snooper","user":{"login":"jcrussell","id":831629,"avatar_url":"https://avatars.githubusercontent.com/u/831629?v=3","gravatar_id":"","url":"https://api.github.com/users/jcrussell","html_url":"https://github.com/jcrussell","followers_url":"https://api.github.com/users/jcrussell/followers","following_url":"https://api.github.com/users/jcrussell/following{/other_user}","gists_url":"https://api.github.com/users/jcrussell/gists{/gist_id}","starred_url":"https://api.github.com/users/jcrussell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcrussell/subscriptions","organizations_url":"https://api.github.com/users/jcrussell/orgs","repos_url":"https://api.github.com/users/jcrussell/repos","events_url":"https://api.github.com/users/jcrussell/events{/privacy}","received_events_url":"https://api.github.com/users/jcrussell/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/sandia-minimega/minimega/milestones/4","html_url":"https://github.com/sandia-minimega/minimega/milestones/2.3","labels_url":"https://api.github.com/repos/sandia-minimega/minimega/milestones/4/labels","id":1268480,"number":4,"title":"2.3","description":"","creator":{"login":"djfritz","id":4811604,"avatar_url":"https://avatars.githubusercontent.com/u/4811604?v=3","gravatar_id":"","url":"https://api.github.com/users/djfritz","html_url":"https://github.com/djfritz","followers_url":"https://api.github.com/users/djfritz/followers","following_url":"https://api.github.com/users/djfritz/following{/other_user}","gists_url":"https://api.github.com/users/djfritz/gists{/gist_id}","starred_url":"https://api.github.com/users/djfritz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djfritz/subscriptions","organizations_url":"https://api.github.com/users/djfritz/orgs","repos_url":"https://api.github.com/users/djfritz/repos","events_url":"https://api.github.com/users/djfritz/events{/privacy}","received_events_url":"https://api.github.com/users/djfritz/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":100,"state":"open","created_at":"2015-08-24T01:29:41Z","updated_at":"2016-11-08T14:49:58Z","due_on":"2017-02-01T08:00:00Z","closed_at":null},"comments":0,"created_at":"2016-11-08T14:40:51Z","updated_at":"2016-11-10T17:56:51Z","closed_at":null,"body":"Seeing this in the stack trace:\r\n\r\n```\r\ngoroutine 74 [syscall, 607 minutes, locked to thread]:\r\nvendor/github.com/google/gopacket/pcap._Cfunc_pcap_next_ex(0x7fee1801dc90, 0xc820451330, 0xc820451338, 0x0)\r\n        ??:0 +0x41\r\nvendor/github.com/google/gopacket/pcap.(*Handle).getNextBufPtrLocked(0xc820451300, 0xc8214f2d70, 0x0, 0x0)\r\n        /data/repos/minimega/src/vendor/github.com/google/gopacket/pcap/pcap.go:339 +0x329\r\nvendor/github.com/google/gopacket/pcap.(*Handle).ReadPacketData(0xc820451300, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)\r\n        /data/repos/minimega/src/vendor/github.com/google/gopacket/pcap/pcap.go:290 +0xca\r\nbridge.(*Bridge).snooper(0xc821221b00)\r\n        /data/repos/minimega/src/bridge/ipmac.go:41 +0x3b9\r\ncreated by bridge.Bridges.newBridge\r\n        /data/repos/minimega/src/bridge/bridges.go:116 +0x845\r\n\r\ngoroutine 29813 [semacquire, 602 minutes]:\r\nsync.runtime_Semacquire(0xc82045132c)\r\n        /usr/local/go/src/runtime/sema.go:47 +0x26\r\nsync.(*Mutex).Lock(0xc820451328)\r\n        /usr/local/go/src/sync/mutex.go:83 +0x1c4\r\nvendor/github.com/google/gopacket/pcap.(*Handle).Close(0xc820451300)\r\n        /data/repos/minimega/src/vendor/github.com/google/gopacket/pcap/pcap.go:387 +0x35\r\nbridge.(*Bridge).destroy(0xc821221b00, 0x0, 0x0)\r\n        /data/repos/minimega/src/bridge/bridge.go:88 +0x153\r\nbridge.Bridges.Destroy(0x55fa58eafd10, 0xb, 0xc820060360, 0xc821145d40, 0x0, 0x0)\r\n        /data/repos/minimega/src/bridge/bridges.go:246 +0xe7\r\nmain.bridgesDestroy(0x0, 0x0)\r\n        /data/repos/minimega/src/minimega/bridge.go:50 +0x4f\r\nmain.teardown()\r\n        /data/repos/minimega/src/minimega/main.go:268 +0x94\r\nmain.cliQuit(0xc826bfe840, 0xc8212dde00, 0x0, 0x0)\r\n        /data/repos/minimega/src/minimega/misc_cli.go:121 +0x28a\r\nmain.wrapSimpleCLI.func1(0xc826bfe840, 0xc826bfe960)\r\n        /data/repos/minimega/src/minimega/cli.go:89 +0x96\r\nminicli.ProcessCommand.func1(0xc826bfe840, 0xc826bfe960)\r\n        /data/repos/minimega/src/minicli/minicli.go:147 +0x52\r\ncreated by minicli.ProcessCommand\r\n        /data/repos/minimega/src/minicli/minicli.go:165 +0x119\r\n```\r\n\r\nI thought that I fixed this by setting the timeout to 1 second when creating the pcap handle with `pcap.OpenLive`... it was blocking for a lot more than 1 second."},"comment":{"url":"https://api.github.com/repos/sandia-minimega/minimega/issues/comments/259760655","html_url":"https://github.com/sandia-minimega/minimega/issues/749#issuecomment-259760655","issue_url":"https://api.github.com/repos/sandia-minimega/minimega/issues/749","id":259760655,"user":{"login":"jcrussell","id":831629,"avatar_url":"https://avatars.githubusercontent.com/u/831629?v=3","gravatar_id":"","url":"https://api.github.com/users/jcrussell","html_url":"https://github.com/jcrussell","followers_url":"https://api.github.com/users/jcrussell/followers","following_url":"https://api.github.com/users/jcrussell/following{/other_user}","gists_url":"https://api.github.com/users/jcrussell/gists{/gist_id}","starred_url":"https://api.github.com/users/jcrussell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcrussell/subscriptions","organizations_url":"https://api.github.com/users/jcrussell/orgs","repos_url":"https://api.github.com/users/jcrussell/repos","events_url":"https://api.github.com/users/jcrussell/events{/privacy}","received_events_url":"https://api.github.com/users/jcrussell/received_events","type":"User","site_admin":false},"created_at":"2016-11-10T17:56:51Z","updated_at":"2016-11-10T17:56:51Z","body":"We've determined that this is because of changes to libpcap in v1.8.1. We created an issue on the gopacket/pcap (https://github.com/google/gopacket/issues/253) but it doesn't look like there's a simple solution.\r\n\r\nA simple workaround is to write garbage to the interface until `pcap.Handle.Close` returns."}}
{"actor":{"display_login":"jcrussell"}}