Skip to content
This repository has been archived by the owner on Mar 6, 2020. It is now read-only.

Intermittent internal/dialerapi tests failure #1

Closed
bassosimone opened this issue Sep 19, 2019 · 2 comments
Closed

Intermittent internal/dialerapi tests failure #1

bassosimone opened this issue Sep 19, 2019 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@bassosimone
Copy link
Contributor

bassosimone commented Sep 19, 2019

i have seen this intermittent unit tests failure:

{"Connect":{"ConnID":2,"Duration":50548,"Error":null,"LocalAddress":"10.20.1.95:58912","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":322307}}
{"Write":{"ConnID":2,"Duration":51120,"Error":null,"NumBytes":32,"Time":716826}}
{"DNSQuery":{"ConnID":2,"Message":{"Data":"5lUBAAABAAAAAAAAA3d3dwZnb29nbGUDY29tAAAcAAE="},"Time":731487}}
{"Connect":{"ConnID":3,"Duration":57888,"Error":null,"LocalAddress":"10.20.1.95:38297","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":986782}}
{"Write":{"ConnID":3,"Duration":26997,"Error":null,"NumBytes":32,"Time":1080968}}
{"DNSQuery":{"ConnID":3,"Message":{"Data":"x5QBAAABAAAAAAAAA3d3dwZnb29nbGUDY29tAAABAAE="},"Time":1090665}}
{"Read":{"ConnID":2,"Duration":2140975,"Error":null,"NumBytes":60,"Time":2879402}}
{"DNSReply":{"ConnID":2,"Message":{"Data":"5lWBgAABAAEAAAAAA3d3dwZnb29nbGUDY29tAAAcAAHADAAcAAEAAAAGABAmB/iwQAEMFAAAAAAAAACT"},"Time":2899500}}
{"Close":{"ConnID":2,"Duration":17024,"Error":null,"Time":2926475}}
{"Read":{"ConnID":3,"Duration":1857601,"Error":null,"NumBytes":128,"Time":2965734}}
{"DNSReply":{"ConnID":3,"Message":{"Data":"x5SBgAABAAYAAAAAA3d3dwZnb29nbGUDY29tAAABAAHADAABAAEAAADOAASs2dRqwAwAAQABAAAAzgAErNnUaMAMAAEAAQAAAM4ABKzZ1GnADAABAAEAAADOAASs2dSTwAwAAQABAAAAzgAErNnUY8AMAAEAAQAAAM4ABKzZ1Gc="},"Time":2974719}}
{"Close":{"ConnID":3,"Duration":6169,"Error":null,"Time":2991562}}
{"Resolve":{"Addresses":["172.217.212.106","172.217.212.104","172.217.212.105","172.217.212.147","172.217.212.99","172.217.212.103","2607:f8b0:4001:c14::93"],"ConnID":1,"Duration":3125603,"Error":null,"Hostname":"www.google.com","Time":3136426}}
{"Connect":{"ConnID":1,"Duration":3977013,"Error":null,"LocalAddress":"10.20.1.95:35226","Network":"tcp","RemoteAddress":"172.217.212.106:80","Time":7133992}}
{"Close":{"ConnID":1,"Duration":27299,"Error":null,"Time":7185272}}
{"Connect":{"ConnID":5,"Duration":30940,"Error":null,"LocalAddress":"10.20.1.95:43111","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":120481}}
{"Write":{"ConnID":5,"Duration":21416,"Error":null,"NumBytes":32,"Time":158022}}
{"Connect":{"ConnID":6,"Duration":20310,"Error":null,"LocalAddress":"10.20.1.95:50069","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":160114}}
{"DNSQuery":{"ConnID":5,"Message":{"Data":"Zb8BAAABAAAAAAAAA3d3dwZnb29nbGUDY29tAAAcAAE="},"Time":164321}}
{"Write":{"ConnID":6,"Duration":29321,"Error":null,"NumBytes":32,"Time":201046}}
{"DNSQuery":{"ConnID":6,"Message":{"Data":"TIIBAAABAAAAAAAAA3d3dwZnb29nbGUDY29tAAABAAE="},"Time":247611}}
{"Read":{"ConnID":5,"Duration":1165640,"Error":null,"NumBytes":60,"Time":1337508}}
{"DNSReply":{"ConnID":5,"Message":{"Data":"Zb+BgAABAAEAAAAAA3d3dwZnb29nbGUDY29tAAAcAAHADAAcAAEAAAC0ABAmB/iwQAEMBQAAAAAAAABo"},"Time":1431246}}
{"Close":{"ConnID":5,"Duration":11420,"Error":null,"Time":1463563}}
{"Read":{"ConnID":6,"Duration":1078726,"Error":null,"NumBytes":128,"Time":1336107}}
{"DNSReply":{"ConnID":6,"Message":{"Data":"TIKBgAABAAYAAAAAA3d3dwZnb29nbGUDY29tAAABAAHADAABAAEAAAEOAASs2dRpwAwAAQABAAABDgAErNnUY8AMAAEAAQAAAQ4ABKzZ1GfADAABAAEAAAEOAASs2dSTwAwAAQABAAABDgAErNnUaMAMAAEAAQAAAQ4ABKzZ1Go="},"Time":1487472}}
{"Close":{"ConnID":6,"Duration":5547,"Error":null,"Time":1517648}}
{"Resolve":{"Addresses":["172.217.212.105","172.217.212.99","172.217.212.103","172.217.212.147","172.217.212.104","172.217.212.106","2607:f8b0:4001:c05::68"],"ConnID":4,"Duration":1681267,"Error":null,"Hostname":"www.google.com","Time":1683693}}
{"Connect":{"ConnID":4,"Duration":2736365,"Error":null,"LocalAddress":"10.20.1.95:58872","Network":"tcp","RemoteAddress":"172.217.212.105:443","Time":4435679}}
{"Write":{"ConnID":4,"Duration":18850,"Error":null,"NumBytes":165,"Time":4549841}}
{"Read":{"ConnID":4,"Duration":4398521,"Error":null,"NumBytes":1024,"Time":8992552}}
{"Read":{"ConnID":4,"Duration":5145,"Error":null,"NumBytes":1534,"Time":9048148}}
{"Write":{"ConnID":4,"Duration":53762,"Error":null,"NumBytes":93,"Time":125917888}}
{"Read":{"ConnID":4,"Duration":344712,"Error":null,"NumBytes":51,"Time":126364167}}
{"TLSHandshake":{"Config":{"NextProtos":null,"ServerName":"www.google.com"},"ConnectionState":{"CipherSuite":49195,"NegotiatedProtocol":"","NegotiatedProtocolIsMutual":true,"PeerCertificates":[{"Data":"MIIEvjCCA6agAwIBAgIQMmxrpNeLCEQIAAAAABG6zjANBgkqhkiG9w0BAQsFADBCMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMRMwEQYDVQQDEwpHVFMgQ0EgMU8xMB4XDTE5MDgyMzEwMjIyOFoXDTE5MTEyMTEwMjIyOFowaDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxEzARBgNVBAoTCkdvb2dsZSBMTEMxFzAVBgNVBAMTDnd3dy5nb29nbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhWJg1IbpNRCwfbnlm0EiCzvUS9evx+Hp7Qh0AQ/nRbRJ/+cTdnq9RGNda1OcyTG/M2nYS0juqkZVSw/huffJFKOCAlMwggJPMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQ6u8OySGKLh9CRiXicnHEJwSiVATAfBgNVHSMEGDAWgBSY0fhuEOvPm+xgnxiQG6DrfQn9KzBkBggrBgEFBQcBAQRYMFYwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLnBraS5nb29nL2d0czFvMTArBggrBgEFBQcwAoYfaHR0cDovL3BraS5nb29nL2dzcjIvR1RTMU8xLmNydDAZBgNVHREEEjAQgg53d3cuZ29vZ2xlLmNvbTAhBgNVHSAEGjAYMAgGBmeBDAECAjAMBgorBgEEAdZ5AgUDMC8GA1UdHwQoMCYwJKAioCCGHmh0dHA6Ly9jcmwucGtpLmdvb2cvR1RTMU8xLmNybDCCAQMGCisGAQQB1nkCBAIEgfQEgfEA7wB2AGPy283oO8wszwtyhCdXazOkjWF3j711pjixx2hUS9iNAAABbL42qeQAAAQDAEcwRQIgHtHFfacjUKQbSHOZ7k9hTedyoODJeUKjwbNOuL84AgECIQDCJJNJVKGdet3UmQHy/G4Or7CoG2txWNXVLRjEhJdn8QB1AHR+2oMxrTMQkSGcziVPQnDCv/1eQiAIxjc1eeYQe8xWAAABbL42qgoAAAQDAEYwRAIgIKBGIPBRyaPCYE7pAhVT/u+xw/KTaP2c/Pr4+E2/364CIA0GdFIDqCk8MXe58CeP1uZOqkrx7niphCOidoJ5TMIoMA0GCSqGSIb3DQEBCwUAA4IBAQChUeMbemnGJkJPFpgZt++Ksyafmd9gB+ovq3r8OfR7uM/PRQK7cyPmtO4hOd+gw3uk2yXqJXeLove5yuCCqI7QaHLcHC7ekvMsxYN0pYeHg8dZG+qKCR95M1B2H7vOaolwG70CKr/Lrm2HOaQuHOl88tT0dSOea34ElWFqWllJYn5ffnDiAXx85X0M/SRKi5zWqop4tk2UiYvCNJq/puu4zLMaBZVQNY0bQxLciudZc3MFrFNNl6IcomuDIqYfiXKZmfquI+yK7WvjguJgm1n7E7iDRhrkzy1WkDMgrj6bhEZwn9kBiEVBX3dPZ4WcibJ31LEp/GFQ1ryrNA7Au2Jj"},{"Data":"MIIESjCCAzKgAwIBAgINAeO0mqGNiqmBJWlQuDANBgkqhkiG9w0BAQsFADBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEyMTUwMDAwNDJaMEIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVHb29nbGUgVHJ1c3QgU2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxTzEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQGM9F1IvN05zkQO9+tN1pIRvJzzyOTHW5DzEZhD2ePCnvUA0Qk28FgICfKqC9EksC4T2fWBYk/jCfC3R3VZMdS/dN4ZKCEPZRrAzDsiKUDzRrmBBJ5wudgzndIMYcLe/RGGFl5yODIKgjEv/SJH/UL+dEaltN11BmsK+eQmMF++AcxGNhr59qM/9il71I2dN8FGfcddwuaej4bXhp0LcQBbjxMcI7JP0aM3T4I+DsaxmKFsbjzaTNC9uzpFlgOIg7rR25xoynUxv8vNmkq7zdPGHXkxWY7oG9j+JkRyBABk7XrJfoucBZEqFJJSPk7XA0LKW0Y3z5oz2D0c1tJKwHAgMBAAGjggEzMIIBLzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjR+G4Q68+b7GCfGJAboOt9Cf0rMB8GA1UdIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEBBCkwJzAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzApMCegJaAjhiFodHRwOi8vY3JsLnBraS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0gBDgwNjA0BgZngQwBAgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9wa2kuZ29vZy9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAGoA+Nnn78y6pRjd9XlQWNa7HTgiZ/r3RNGkmUmYHPQq6Scti9PEajvwRT2iWTHQr02fesqOqBY2ETUwgZQ+lltoNFvhsO9tvBCOIazpswWC9aJ9xju4tWDQH8NVU6YZZ/XteDSGU9YzJqPjY8q3MDxrzmqepBCf5o8mw/wJ4a2G6xzUr6Fb6T8McDO22PLRL6u3M4Tzs3A2M1j6bykJYi8wWIRdAvKLWZu/axBVbzYmqmwkm5zLSDW5nIAJbELCQCZwMH56t2Dvqofxs6BBcCFIZUSpxu6x6td0V7SvJCCosirSmIatj/9dSSVDQibet8q/7UK4v4ZUN80atnZz1yg=="}],"Version":771},"ConnID":4,"Duration":121952740,"Error":null,"Time":126419739}}
{"Write":{"ConnID":4,"Duration":15617,"Error":null,"NumBytes":31,"Time":126506413}}
{"Close":{"ConnID":4,"Duration":26605,"Error":null,"Time":126543906}}
{"Connect":{"ConnID":9,"Duration":83710,"Error":null,"LocalAddress":"10.20.1.95:44596","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":166973}}
{"Connect":{"ConnID":10,"Duration":24635,"Error":null,"LocalAddress":"10.20.1.95:54542","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":181146}}
{"Write":{"ConnID":9,"Duration":22334,"Error":null,"NumBytes":32,"Time":212017}}
{"Write":{"ConnID":10,"Duration":18745,"Error":null,"NumBytes":32,"Time":220344}}
{"DNSQuery":{"ConnID":9,"Message":{"Data":"OGABAAABAAAAAAAABmFudGFuaQRvb25pAmlvAAAcAAE="},"Time":218451}}
{"DNSQuery":{"ConnID":10,"Message":{"Data":"jdUBAAABAAAAAAAABmFudGFuaQRvb25pAmlvAAABAAE="},"Time":225508}}
{"Read":{"ConnID":10,"Duration":33076474,"Error":null,"NumBytes":105,"Time":33311841}}
{"DNSReply":{"ConnID":10,"Message":{"Data":"jdWBgwABAAAAAQAABmFudGFuaQRvb25pAmlvAAABAAHAEwAGAAEAAAcHAD0EZG5zMRFyZWdpc3RyYXItc2VydmVycwNjb20ACmhvc3RtYXN0ZXLAMXhY5JAAAKjAAAAOEAAJOoAAAA4R"},"Time":33358995}}
{"Close":{"ConnID":10,"Duration":23232,"Error":null,"Time":33440619}}
{"Read":{"ConnID":9,"Duration":53315689,"Error":null,"NumBytes":105,"Time":53543313}}
{"DNSReply":{"ConnID":9,"Message":{"Data":"OGCBgwABAAAAAQAABmFudGFuaQRvb25pAmlvAAAcAAHAEwAGAAEAAAcHAD0EZG5zMRFyZWdpc3RyYXItc2VydmVycwNjb20ACmhvc3RtYXN0ZXLAMXhY5JAAAKjAAAAOEAAJOoAAAA4R"},"Time":53583924}}
{"Close":{"ConnID":9,"Duration":21552,"Error":null,"Time":53621895}}
{"Connect":{"ConnID":12,"Duration":47360,"Error":null,"LocalAddress":"10.20.1.95:37080","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":53768683}}
{"Write":{"ConnID":12,"Duration":44013,"Error":null,"NumBytes":60,"Time":53837148}}
{"DNSQuery":{"ConnID":12,"Message":{"Data":"KZwBAAABAAAAAAAABmFudGFuaQRvb25pAmlvAWMQdHJhdmlzLWNpLXByb2QtMghpbnRlcm5hbAAAHAAB"},"Time":53844732}}
{"Connect":{"ConnID":11,"Duration":48825,"Error":null,"LocalAddress":"10.20.1.95:33156","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":53768687}}
{"Write":{"ConnID":11,"Duration":14644,"Error":null,"NumBytes":60,"Time":53874562}}
{"DNSQuery":{"ConnID":11,"Message":{"Data":"/QUBAAABAAAAAAAABmFudGFuaQRvb25pAmlvAWMQdHJhdmlzLWNpLXByb2QtMghpbnRlcm5hbAAAAQAB"},"Time":53880419}}
{"Read":{"ConnID":11,"Duration":2156802,"Error":null,"NumBytes":149,"Time":56042663}}
{"DNSReply":{"ConnID":11,"Message":{"Data":"/QWBgwABAAAAAQAABmFudGFuaQRvb25pAmlvAWMQdHJhdmlzLWNpLXByb2QtMghpbnRlcm5hbAAAAQABwC4ABgABAAAAHgBNAm5zBmdsb2JhbAtnY2VkbnMtcHJvZMAuFGNsb3VkLWRucy1ob3N0bWFzdGVyBmdvb2dsZQNjb20AeBrtSAAAHCAAAA4QAXpegAAAAAU="},"Time":56064506}}
{"Close":{"ConnID":11,"Duration":13602,"Error":null,"Time":56094248}}
{"Read":{"ConnID":12,"Duration":2265276,"Error":null,"NumBytes":149,"Time":56118249}}
{"DNSReply":{"ConnID":12,"Message":{"Data":"KZyBgwABAAAAAQAABmFudGFuaQRvb25pAmlvAWMQdHJhdmlzLWNpLXByb2QtMghpbnRlcm5hbAAAHAABwC4ABgABAAAAHgBNAm5zBmdsb2JhbAtnY2VkbnMtcHJvZMAuFGNsb3VkLWRucy1ob3N0bWFzdGVyBmdvb2dsZQNjb20AeBrtSAAAHCAAAA4QAXpegAAAAAU="},"Time":56124036}}
{"Close":{"ConnID":12,"Duration":5228,"Error":null,"Time":56135861}}
{"Connect":{"ConnID":13,"Duration":27884,"Error":null,"LocalAddress":"10.20.1.95:49795","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":56220365}}
{"Write":{"ConnID":13,"Duration":22117,"Error":null,"NumBytes":48,"Time":56255675}}
{"DNSQuery":{"ConnID":13,"Message":{"Data":"4m4BAAABAAAAAAAABmFudGFuaQRvb25pAmlvBmdvb2dsZQhpbnRlcm5hbAAAHAAB"},"Time":56261626}}
{"Connect":{"ConnID":14,"Duration":14739,"Error":null,"LocalAddress":"10.20.1.95:52372","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":56303468}}
{"Write":{"ConnID":14,"Duration":8906,"Error":null,"NumBytes":48,"Time":56322157}}
{"DNSQuery":{"ConnID":14,"Message":{"Data":"UoUBAAABAAAAAAAABmFudGFuaQRvb25pAmlvBmdvb2dsZQhpbnRlcm5hbAAAAQAB"},"Time":56327220}}
{"Read":{"ConnID":13,"Duration":2064337,"Error":null,"NumBytes":137,"Time":58332433}}
{"DNSReply":{"ConnID":13,"Message":{"Data":"4m6BgwABAAAAAQAABmFudGFuaQRvb25pAmlvBmdvb2dsZQhpbnRlcm5hbAAAHAABwCIABgABAAAAHgBNAm5zBmdsb2JhbAtnY2VkbnMtcHJvZMAiFGNsb3VkLWRucy1ob3N0bWFzdGVyBmdvb2dsZQNjb20AeBrtSAAAHCAAAA4QAXpegAAAAAU="},"Time":58350988}}
{"Close":{"ConnID":13,"Duration":10764,"Error":null,"Time":58642016}}
{"Read":{"ConnID":14,"Duration":2554214,"Error":null,"NumBytes":137,"Time":58886262}}
{"DNSReply":{"ConnID":14,"Message":{"Data":"UoWBgwABAAAAAQAABmFudGFuaQRvb25pAmlvBmdvb2dsZQhpbnRlcm5hbAAAAQABwCIABgABAAAAHgBNAm5zBmdsb2JhbAtnY2VkbnMtcHJvZMAiFGNsb3VkLWRucy1ob3N0bWFzdGVyBmdvb2dsZQNjb20AeBrtSAAAHCAAAA4QAXpegAAAAAU="},"Time":58894219}}
{"Close":{"ConnID":14,"Duration":6417,"Error":null,"Time":58919089}}
{"Resolve":{"Addresses":null,"ConnID":8,"Duration":58929146,"Error":{"Err":"no such host","Name":"antani.ooni.io","Server":"169.254.169.254:53","IsTimeout":false,"IsTemporary":false},"Hostname":"antani.ooni.io","Time":58930349}}
{"Connect":{"ConnID":16,"Duration":28005,"Error":null,"LocalAddress":"10.20.1.95:42035","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":237339}}
{"Write":{"ConnID":16,"Duration":22895,"Error":null,"NumBytes":25,"Time":275101}}
{"DNSQuery":{"ConnID":16,"Message":{"Data":"ZCEBAAABAAAAAAAABG9vbmkCaW8AABwAAQ=="},"Time":281478}}
{"Connect":{"ConnID":17,"Duration":19724,"Error":null,"LocalAddress":"10.20.1.95:59849","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":571532}}
{"Write":{"ConnID":17,"Duration":11921,"Error":null,"NumBytes":25,"Time":596208}}
{"DNSQuery":{"ConnID":17,"Message":{"Data":"O1cBAAABAAAAAAAABG9vbmkCaW8AAAEAAQ=="},"Time":602044}}
{"Read":{"ConnID":16,"Duration":27707938,"Error":null,"NumBytes":98,"Time":28003823}}
{"DNSReply":{"ConnID":16,"Message":{"Data":"ZCGBgAABAAAAAQAABG9vbmkCaW8AABwAAcAMAAYAAQAABwcAPQRkbnMxEXJlZ2lzdHJhci1zZXJ2ZXJzA2NvbQAKaG9zdG1hc3RlcsAqeFjkkAAAqMAAAA4QAAk6gAAADhE="},"Time":28052579}}
{"Close":{"ConnID":16,"Duration":17971,"Error":null,"Time":28086459}}
{"Read":{"ConnID":17,"Duration":40941380,"Error":null,"NumBytes":41,"Time":41554888}}
{"DNSReply":{"ConnID":17,"Message":{"Data":"O1eBgAABAAEAAAAABG9vbmkCaW8AAAEAAcAMAAEAAQAAASsABGjGDjQ="},"Time":41604612}}
{"Close":{"ConnID":17,"Duration":17888,"Error":null,"Time":41655621}}
{"Resolve":{"Addresses":["104.198.14.52"],"ConnID":15,"Duration":41668560,"Error":null,"Hostname":"ooni.io","Time":41688736}}
{"Connect":{"ConnID":15,"Duration":3958528646,"Error":{"Op":"dial","Net":"tcp","Source":null,"Addr":{"IP":"104.198.14.52","Port":12345,"Zone":""},"Err":{}},"LocalAddress":"","Network":"tcp","RemoteAddress":"","Time":4000231674}}
{"Connect":{"ConnID":19,"Duration":9008,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":95978}}
{"Connect":{"ConnID":21,"Duration":3165,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":177912}}
{"Connect":{"ConnID":22,"Duration":1880,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":195536}}
{"Connect":{"ConnID":20,"Duration":7491,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":95944}}
{"Connect":{"ConnID":23,"Duration":2044,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":232541}}
{"Connect":{"ConnID":24,"Duration":6599,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":319481}}
{"Connect":{"ConnID":25,"Duration":2864,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":370764}}
{"Connect":{"ConnID":26,"Duration":3856,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":373496}}
{"Connect":{"ConnID":27,"Duration":1848,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":397950}}
{"Connect":{"ConnID":28,"Duration":1950,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":410659}}
{"Connect":{"ConnID":30,"Duration":2039,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":441417}}
{"Connect":{"ConnID":29,"Duration":1748,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":412092}}
{"Connect":{"ConnID":31,"Duration":1370,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":469525}}
{"Connect":{"ConnID":32,"Duration":1268,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":479057}}
{"Connect":{"ConnID":33,"Duration":1978,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":489311}}
{"Connect":{"ConnID":34,"Duration":2327,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":516219}}
{"Connect":{"ConnID":35,"Duration":2438,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":532564}}
{"Connect":{"ConnID":36,"Duration":1217,"Error":{"Op":"dial","Net":"udp","Source":null,"Addr":{"IP":"169.254.169.254","Port":53,"Zone":""},"Err":{}},"LocalAddress":"","Network":"udp","RemoteAddress":"","Time":544268}}
{"Resolve":{"Addresses":null,"ConnID":18,"Duration":556623,"Error":{"Err":"dial udp 169.254.169.254:53: i/o timeout","Name":"ooni.io","Server":"169.254.169.254:53","IsTimeout":true,"IsTemporary":true},"Hostname":"ooni.io","Time":562668}}
{"Connect":{"ConnID":38,"Duration":50764,"Error":null,"LocalAddress":"10.20.1.95:60391","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":104059}}
{"Connect":{"ConnID":39,"Duration":35413,"Error":null,"LocalAddress":"10.20.1.95:58164","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":102790}}
{"Write":{"ConnID":38,"Duration":52578,"Error":null,"NumBytes":25,"Time":173664}}
{"DNSQuery":{"ConnID":38,"Message":{"Data":"ojwBAAABAAAAAAAABG9vbmkCaW8AABwAAQ=="},"Time":185338}}
{"Write":{"ConnID":39,"Duration":22519,"Error":null,"NumBytes":25,"Time":173647}}
{"DNSQuery":{"ConnID":39,"Message":{"Data":"Y44BAAABAAAAAAAABG9vbmkCaW8AAAEAAQ=="},"Time":207284}}
{"Read":{"ConnID":39,"Duration":676816,"Error":null,"NumBytes":41,"Time":889539}}
{"Read":{"ConnID":38,"Duration":710622,"Error":null,"NumBytes":98,"Time":906515}}
{"DNSReply":{"ConnID":38,"Message":{"Data":"ojyBgAABAAAAAQAABG9vbmkCaW8AABwAAcAMAAYAAQAABwMAPQRkbnMxEXJlZ2lzdHJhci1zZXJ2ZXJzA2NvbQAKaG9zdG1hc3RlcsAqeFjkkAAAqMAAAA4QAAk6gAAADhE="},"Time":915206}}
{"Close":{"ConnID":38,"Duration":12943,"Error":null,"Time":941168}}
{"DNSReply":{"ConnID":39,"Message":{"Data":"Y46BgAABAAEAAAAABG9vbmkCaW8AAAEAAcAMAAEAAQAAAScABGjGDjQ="},"Time":905233}}
{"Close":{"ConnID":39,"Duration":3932,"Error":null,"Time":958721}}
{"Resolve":{"Addresses":["104.198.14.52"],"ConnID":37,"Duration":961286,"Error":null,"Hostname":"ooni.io","Time":967412}}
{"Connect":{"ConnID":37,"Duration":37217107,"Error":null,"LocalAddress":"10.20.1.95:38842","Network":"tcp","RemoteAddress":"104.198.14.52:443","Time":38205954}}
{"Write":{"ConnID":37,"Duration":26543,"Error":null,"NumBytes":165,"Time":38356072}}
{"Read":{"ConnID":37,"Duration":111836763,"Error":null,"NumBytes":1024,"Time":150233740}}
{"Read":{"ConnID":37,"Duration":7949,"Error":null,"NumBytes":2157,"Time":150321966}}
{"Write":{"ConnID":37,"Duration":23972,"Error":null,"NumBytes":7,"Time":150762665}}
{"TLSHandshake":{"Config":{"NextProtos":null,"ServerName":"www.google.com"},"ConnectionState":{"CipherSuite":0,"NegotiatedProtocol":"","NegotiatedProtocolIsMutual":false,"PeerCertificates":null,"Version":0},"ConnID":37,"Duration":112510360,"Error":{"Certificate":{"Raw":"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","RawTBSCertificate":"MIIFC6ADAgECAhALVb8L2zI4VyWogS6Zbz9JMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIgU2VjdXJlIFNlcnZlciBDQTAeFw0xOTA3MDMwMDAwMDBaFw0yMDA3MDcxMjAwMDBaMGExCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJjYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEVMBMGA1UEChMMTmV0bGlmeSwgSW5jMRYwFAYDVQQDDA0qLm5ldGxpZnkuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7Akdy0jWjGqDTCXP0Jli9uGVVnqwHQI4A0J8L2oiNNSnD5PFWcb3+25EM2R9d6x/ue+OY+Vlx9BAqCmYZqFfmd0VmZe8JcYy287llaerN+/SbGTNNBvpF0My08D1ef8u/NoVGXFWl6DrEYzB5SksNMkAlaRwycYBHaY1Rzqe5CC15CyD/sjpimylhkpqxH/bEOPkVqxB/b70epsmB1JLNAoXjpVcvZBEErlQXWUV4EVYwCJSTjZK75hnL/DmlUWOUdpVUTjb+4bV3K51YBpPrkAghP3V4rsaCEe/mmm4xlRSYQxXQVR2S0xcQKoKWu2SScw2J7fShEWPUANckYYd3QIDAQABo4IC6TCCAuUwHwYDVR0jBBgwFoAUD4BhHIIxYdUvKOeNRji0LOHG2eIwHQYDVR0OBBYEFImXjt1/N3A59qSlwlGiDeMxT8lTMCUGA1UdEQQeMByCDSoubmV0bGlmeS5jb22CC25ldGxpZnkuY29tMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwawYDVR0fBGQwYjAvoC2gK4YpaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL3NzY2Etc2hhMi1nNi5jcmwwL6AtoCuGKWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zc2NhLXNoYTItZzYuY3JsMEwGA1UdIARFMEMwNwYJYIZIAYb9bAEBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQICMHwGCCsGAQUFBwEBBHAwbjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEYGCCsGAQUFBzAChjpodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRTSEEyU2VjdXJlU2VydmVyQ0EuY3J0MAwGA1UdEwEB/wQCMAAwggEEBgorBgEEAdZ5AgQCBIH1BIHyAPAAdQDuS723dc5guuFCaR+r4Z5mow9+X7By2IMAxHuJeqj9ywAAAWu4TZnUAAAEAwBGMEQCIFowBDaWFT0D/MXbBoeDWPIp7NKKhZKueCKQmj26v2xOAiBImUv+Wm+loP1BUMsyNmLcYITq4gggltvQYzeGWJX4ywB3AId1v+dZfPiMQ5lfvfNu/1aNR1Y2/0q1YMG06v9eoIMPAAABa7hNmiAAAAQDAEgwRgIhAI27Mo3japNoJ1C827k/ZvU2v9tOPfupo9R8/2KJMs1GAiEAsd/TlOC5AOmV01VbAjkdmMlfJsxLgzVfAGEF7aO+gKA=","RawSubjectPublicKeyInfo":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7Akdy0jWjGqDTCXP0Jli9uGVVnqwHQI4A0J8L2oiNNSnD5PFWcb3+25EM2R9d6x/ue+OY+Vlx9BAqCmYZqFfmd0VmZe8JcYy287llaerN+/SbGTNNBvpF0My08D1ef8u/NoVGXFWl6DrEYzB5SksNMkAlaRwycYBHaY1Rzqe5CC15CyD/sjpimylhkpqxH/bEOPkVqxB/b70epsmB1JLNAoXjpVcvZBEErlQXWUV4EVYwCJSTjZK75hnL/DmlUWOUdpVUTjb+4bV3K51YBpPrkAghP3V4rsaCEe/mmm4xlRSYQxXQVR2S0xcQKoKWu2SScw2J7fShEWPUANckYYd3QIDAQAB","RawSubject":"MGExCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJjYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEVMBMGA1UEChMMTmV0bGlmeSwgSW5jMRYwFAYDVQQDDA0qLm5ldGxpZnkuY29t","RawIssuer":"ME0xCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIgU2VjdXJlIFNlcnZlciBDQQ==","Signature":"O1WvWrcc1l8rEeRbTNJA37a4ogVrxXw9SHtczCeNGb1B4e/krfmAdqJL9Eqq1LCXIUNpkLL8sl92yp9Xe25n0gUhXXgHhPIWioQhXH+ERbIJu+l9qxAiK/KmXgrlILmgBRAEzfNhVmHz6XQh+5N9DiIwuMV6c/Vz82ZSJ+bQe6ZHw33PSydYevIRbHbtYT/JzilEJ1bhFAr8/a2opI4NydTM95Ig8e1vJVBJ7nOKtqHbehOI3hnLtKW3P9r+XJnOCU0yZb1Q+6pNkO2Pb9/b0Qk9CyvyUmPvMZGQCTYnXbnvL4GoHkKV6I8zU/DTeyDW3XqUY6eMJQBnPIng4E3xFA==","SignatureAlgorithm":4,"PublicKeyAlgorithm":1,"PublicKey":{"N":29796735428057043661118625412927381649591617460549370994642236782370968354015393235608880720927659904635248039135458673154646906679930799844859709242722019862656620663738438115201309255538576513641787104387619363903299482268921652861834282175284372573533606334095214070949223055905843639639702462457290833584436499472359652626866500127281186520153027531237777153222355799596270944786308758895665714648428991008888544747471011574388922587584620078388662350915281775219536162992030161671053560797477072018113147773761606401911075274324561348173311608287544037920126385739238248149912543949864509325648815430034847571421,"E":65537},"Version":3,"SerialNumber":15066728066191549578284294740005306185,"Issuer":{"Country":["US"],"Organization":["DigiCert Inc"],"OrganizationalUnit":null,"Locality":null,"Province":null,"StreetAddress":null,"PostalCode":null,"SerialNumber":"","CommonName":"DigiCert SHA2 Secure Server CA","Names":[{"Type":[2,5,4,6],"Value":"US"},{"Type":[2,5,4,10],"Value":"DigiCert Inc"},{"Type":[2,5,4,3],"Value":"DigiCert SHA2 Secure Server CA"}],"ExtraNames":null},"Subject":{"Country":["US"],"Organization":["Netlify, Inc"],"OrganizationalUnit":null,"Locality":["San Francisco"],"Province":["ca"],"StreetAddress":null,"PostalCode":null,"SerialNumber":"","CommonName":"*.netlify.com","Names":[{"Type":[2,5,4,6],"Value":"US"},{"Type":[2,5,4,8],"Value":"ca"},{"Type":[2,5,4,7],"Value":"San Francisco"},{"Type":[2,5,4,10],"Value":"Netlify, Inc"},{"Type":[2,5,4,3],"Value":"*.netlify.com"}],"ExtraNames":null},"NotBefore":"2019-07-03T00:00:00Z","NotAfter":"2020-07-07T12:00:00Z","KeyUsage":5,"Extensions":[{"Id":[2,5,29,35],"Critical":false,"Value":"MBaAFA+AYRyCMWHVLyjnjUY4tCzhxtni"},{"Id":[2,5,29,14],"Critical":false,"Value":"BBSJl47dfzdwOfakpcJRog3jMU/JUw=="},{"Id":[2,5,29,17],"Critical":false,"Value":"MByCDSoubmV0bGlmeS5jb22CC25ldGxpZnkuY29t"},{"Id":[2,5,29,15],"Critical":true,"Value":"AwIFoA=="},{"Id":[2,5,29,37],"Critical":false,"Value":"MBQGCCsGAQUFBwMBBggrBgEFBQcDAg=="},{"Id":[2,5,29,31],"Critical":false,"Value":"MGIwL6AtoCuGKWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9zc2NhLXNoYTItZzYuY3JsMC+gLaArhilodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vc3NjYS1zaGEyLWc2LmNybA=="},{"Id":[2,5,29,32],"Critical":false,"Value":"MEMwNwYJYIZIAYb9bAEBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQIC"},{"Id":[1,3,6,1,5,5,7,1,1],"Critical":false,"Value":"MG4wJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBGBggrBgEFBQcwAoY6aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMlNlY3VyZVNlcnZlckNBLmNydA=="},{"Id":[2,5,29,19],"Critical":true,"Value":"MAA="},{"Id":[1,3,6,1,4,1,11129,2,4,2],"Critical":false,"Value":"BIHyAPAAdQDuS723dc5guuFCaR+r4Z5mow9+X7By2IMAxHuJeqj9ywAAAWu4TZnUAAAEAwBGMEQCIFowBDaWFT0D/MXbBoeDWPIp7NKKhZKueCKQmj26v2xOAiBImUv+Wm+loP1BUMsyNmLcYITq4gggltvQYzeGWJX4ywB3AId1v+dZfPiMQ5lfvfNu/1aNR1Y2/0q1YMG06v9eoIMPAAABa7hNmiAAAAQDAEgwRgIhAI27Mo3japNoJ1C827k/ZvU2v9tOPfupo9R8/2KJMs1GAiEAsd/TlOC5AOmV01VbAjkdmMlfJsxLgzVfAGEF7aO+gKA="}],"ExtraExtensions":null,"UnhandledCriticalExtensions":null,"ExtKeyUsage":[1,2],"UnknownExtKeyUsage":null,"BasicConstraintsValid":true,"IsCA":false,"MaxPathLen":-1,"MaxPathLenZero":false,"SubjectKeyId":"iZeO3X83cDn2pKXCUaIN4zFPyVM=","AuthorityKeyId":"D4BhHIIxYdUvKOeNRji0LOHG2eI=","OCSPServer":["http://ocsp.digicert.com"],"IssuingCertificateURL":["http://cacerts.digicert.com/DigiCertSHA2SecureServerCA.crt"],"DNSNames":["*.netlify.com","netlify.com"],"EmailAddresses":null,"IPAddresses":null,"URIs":null,"PermittedDNSDomainsCritical":false,"PermittedDNSDomains":null,"ExcludedDNSDomains":null,"PermittedIPRanges":null,"ExcludedIPRanges":null,"PermittedEmailAddresses":null,"ExcludedEmailAddresses":null,"PermittedURIDomains":null,"ExcludedURIDomains":null,"CRLDistributionPoints":["http://crl3.digicert.com/ssca-sha2-g6.crl","http://crl4.digicert.com/ssca-sha2-g6.crl"],"PolicyIdentifiers":[[2,16,840,1,114412,1,1],[2,23,140,1,2,2]]},"Host":"www.google.com"},"Time":150791316}}
{"Close":{"ConnID":37,"Duration":38917,"Error":null,"Time":151312336}}
{"Close":{"ConnID":37,"Duration":1297,"Error":{"Op":"close","Net":"tcp","Source":{"IP":"10.20.1.95","Port":38842,"Zone":""},"Addr":{"IP":"104.198.14.52","Port":443,"Zone":""},"Err":{}},"Time":151328106}}
{"Connect":{"ConnID":41,"Duration":50778,"Error":null,"LocalAddress":"10.20.1.95:46106","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":126700}}
{"Write":{"ConnID":41,"Duration":28146,"Error":null,"NumBytes":25,"Time":174430}}
{"DNSQuery":{"ConnID":41,"Message":{"Data":"/00BAAABAAAAAAAABG9vbmkCaW8AABwAAQ=="},"Time":186203}}
{"Connect":{"ConnID":42,"Duration":18605,"Error":null,"LocalAddress":"10.20.1.95:49445","Network":"udp","RemoteAddress":"169.254.169.254:53","Time":238939}}
{"Write":{"ConnID":42,"Duration":12574,"Error":null,"NumBytes":25,"Time":262590}}
{"DNSQuery":{"ConnID":42,"Message":{"Data":"s7YBAAABAAAAAAAABG9vbmkCaW8AAAEAAQ=="},"Time":271723}}
{"Read":{"ConnID":42,"Duration":652349,"Error":null,"NumBytes":41,"Time":929516}}
{"DNSReply":{"ConnID":42,"Message":{"Data":"s7aBgAABAAEAAAAABG9vbmkCaW8AAAEAAcAMAAEAAQAAASYABGjGDjQ="},"Time":942914}}
{"Read":{"ConnID":41,"Duration":749495,"Error":null,"NumBytes":98,"Time":947392}}
{"DNSReply":{"ConnID":41,"Message":{"Data":"/02BgAABAAAAAQAABG9vbmkCaW8AABwAAcAMAAYAAQAABwIAPQRkbnMxEXJlZ2lzdHJhci1zZXJ2ZXJzA2NvbQAKaG9zdG1hc3RlcsAqeFjkkAAAqMAAAA4QAAk6gAAADhE="},"Time":955032}}
{"Close":{"ConnID":42,"Duration":12368,"Error":null,"Time":966478}}
{"Close":{"ConnID":41,"Duration":7935,"Error":null,"Time":969662}}
{"Resolve":{"Addresses":["104.198.14.52"],"ConnID":40,"Duration":981152,"Error":null,"Hostname":"ooni.io","Time":984131}}
{"Connect":{"ConnID":40,"Duration":38901257,"Error":null,"LocalAddress":"10.20.1.95:38844","Network":"tcp","RemoteAddress":"104.198.14.52:443","Time":39916544}}
{"TLSHandshake":{"Config":{"NextProtos":null,"ServerName":"ooni.io"},"ConnectionState":{"CipherSuite":0,"NegotiatedProtocol":"","NegotiatedProtocolIsMutual":false,"PeerCertificates":null,"Version":0},"ConnID":40,"Duration":12655,"Error":{},"Time":39989371}}
{"Close":{"ConnID":40,"Duration":43502,"Error":null,"Time":40071350}}
{"Close":{"ConnID":40,"Duration":1349,"Error":{"Op":"close","Net":"tcp","Source":{"IP":"10.20.1.95","Port":38844,"Zone":""},"Addr":{"IP":"104.198.14.52","Port":443,"Zone":""},"Err":{}},"Time":40087896}}
PASS
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x5ce8be]
goroutine 36 [running]:
crypto/tls.(*Conn).Handshake(0x0, 0x0, 0x0)
	/home/travis/.gimme/versions/go1.11.13.linux.amd64/src/crypto/tls/conn.go:1258 +0x2e
github.com/bassosimone/netx/internal/dialerapi.(*Dialer).tlsHandshake.func1(0xc000068900, 0xc00016c108)
	/home/travis/gopath/src/github.com/bassosimone/netx/internal/dialerapi/dialerapi.go:174 +0x38
created by github.com/bassosimone/netx/internal/dialerapi.(*Dialer).tlsHandshake
	/home/travis/gopath/src/github.com/bassosimone/netx/internal/dialerapi/dialerapi.go:173 +0x1b7
FAIL	github.com/bassosimone/netx/internal/dialerapi	4.392s
@bassosimone bassosimone added the bug Something isn't working label Sep 19, 2019
@bassosimone bassosimone self-assigned this Sep 19, 2019
@bassosimone
Copy link
Contributor Author

Running go test -race -v -count=1 ./internal/dialerapi/... I saw:

==================
WARNING: DATA RACE
Write at 0x00c0001cc018 by goroutine 43:
  github.com/bassosimone/netx/internal/dialerapi.(*Dialer).tlsHandshake()
      /Users/sbasso/src/github.com/bassosimone/netx/internal/dialerapi/dialerapi.go:205 +0x9fe
  github.com/bassosimone/netx/internal/dialerapi.(*Dialer).DialTLS()
      /Users/sbasso/src/github.com/bassosimone/netx/internal/dialerapi/dialerapi.go:97 +0x1e4
  github.com/bassosimone/netx/internal/dialerapi_test.TestIntegrationTLSHandshakeTimeout()
      /Users/sbasso/src/github.com/bassosimone/netx/internal/dialerapi/dialerapi_test.go:131 +0xaf
  testing.tRunner()
      /usr/local/Cellar/go/1.13/libexec/src/testing/testing.go:909 +0x199

Previous read at 0x00c0001cc018 by goroutine 46:
  github.com/bassosimone/netx/internal/dialerapi.(*Dialer).tlsHandshake.func1()
      /Users/sbasso/src/github.com/bassosimone/netx/internal/dialerapi/dialerapi.go:174 +0x38

Goroutine 43 (running) created at:
  testing.(*T).Run()
      /usr/local/Cellar/go/1.13/libexec/src/testing/testing.go:960 +0x651
  testing.runTests.func1()
      /usr/local/Cellar/go/1.13/libexec/src/testing/testing.go:1202 +0xa6
  testing.tRunner()
      /usr/local/Cellar/go/1.13/libexec/src/testing/testing.go:909 +0x199
  testing.runTests()
      /usr/local/Cellar/go/1.13/libexec/src/testing/testing.go:1200 +0x521
  testing.(*M).Run()
      /usr/local/Cellar/go/1.13/libexec/src/testing/testing.go:1117 +0x2ff
  main.main()
      _testmain.go:62 +0x223

Goroutine 46 (running) created at:
  github.com/bassosimone/netx/internal/dialerapi.(*Dialer).tlsHandshake()
      /Users/sbasso/src/github.com/bassosimone/netx/internal/dialerapi/dialerapi.go:173 +0x29d
  github.com/bassosimone/netx/internal/dialerapi.(*Dialer).DialTLS()
      /Users/sbasso/src/github.com/bassosimone/netx/internal/dialerapi/dialerapi.go:97 +0x1e4
  github.com/bassosimone/netx/internal/dialerapi_test.TestIntegrationTLSHandshakeTimeout()
      /Users/sbasso/src/github.com/bassosimone/netx/internal/dialerapi/dialerapi_test.go:131 +0xaf
  testing.tRunner()
      /usr/local/Cellar/go/1.13/libexec/src/testing/testing.go:909 +0x199
==================

@bassosimone
Copy link
Contributor Author

So, the problem is that, with a super short timeout as in

func TestIntegrationTLSHandshakeTimeout(t *testing.T) {
	dialer := dialerapi.NewDialer(time.Now(), handlers.StdoutHandler)
	dialer.TLSHandshakeTimeout = 1 // very small timeout
	conn, err := dialer.DialTLS("tcp", "ooni.io:443")
	if err == nil {
		t.Fatal("expected an error here")
	}
	if conn != nil {
		t.Fatal("expected a nil conn here")
	}
}

There is a race between:

	tc = tls.Client(net.Conn(conn), config)
	ctx, cancel := context.WithTimeout(context.Background(), timeout)
	defer cancel()
	ech := make(chan error, 1)
	start := time.Now()
	go func() {
		ech <- tc.Handshake()
	}()
	select {
	case <-ctx.Done():
		err = ctx.Err()
	case err = <-ech:
		// FALLTHROUGH
	}

and

	if err != nil {
		tc.Close()
		tc = nil
	}

where tc is set to nil before the Handshake could start.

bassosimone added a commit that referenced this issue Sep 19, 2019
This would have prevented #1 early.
bassosimone added a commit that referenced this issue Oct 22, 2019
All the netx code now does not depend on a preconfigured
beginning and handler, except toplevel code.

This is very helpful because it allows us to specify different
contexts depending on circumstances.

Yet, the public API has not changed because there is still
a notion of the binding of a dialer with a handler.

What I like about this change is that it allows us to evolve
our code potentially in two directions:

1. we keep a single handler and we provide correct information
concerning the current TransactionID

2. we switch to a rooted handlers model where the handler is
passed as part of the context

Now, internals in netx already follow model #2, while the toplevel
API is still using model #1.

The part that needs refactoring now is httpx.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant