Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Post request sometimes hangs when ssl is used with multi_socket #1170

Closed
sancane opened this issue Dec 21, 2016 · 20 comments
Closed

Post request sometimes hangs when ssl is used with multi_socket #1170

sancane opened this issue Dec 21, 2016 · 20 comments
Labels

Comments

@sancane
Copy link

sancane commented Dec 21, 2016

Hi,

I'm developping an http c++ client library with libcurl to send POST requests to Rollbar application which provides a REST API (https://rollbar.com/docs/api/). That server uses a load balancer, so every time a new POST is issued, a different server will attend the request. I'm using multi_socket interface to do this stuff and I realized that curl only is successful to send the POST payload with just one server among all other ones that are provided by the load balancer.
I first thought that it could be a problem regarding the server configuration. So I tried using the easy interface to make requests but all of them worked fine with any server that the load balancer provided. The problem only happens when using the multi_socket API with ssl. (wihout SSL everything work like a charm).
Looking at the wireshark traffic, tls handshake seems to go on well, but when it finishes the POST payload is never sent, the application seems to do nothing until the socket timeout expires and connection is closed.

curl/libcurl version

I tried 7.47.0 provided with ubuntu 16.04.1 LTS, without success and then compiles my own.

curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets

And here is the one I compiled (master branch):

curl 7.52.1-DEV (x86_64-pc-linux-gnu) libcurl/7.52.1-DEV OpenSSL/1.0.2g zlib/1.2.8 c-ares/1.10.0 libidn2/0.10 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS Debug TrackMemory IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy

I also enabled debug when compiled it, set CURLOPT_VERBOSE on my program and installed my own debug function with CURLOPT_DEBUGFUNCTION to print as much as possible. Here is the trace I got whe it hangs to send the POST

on_open socket
Opened socket: 7
==> Info:   Trying 192.155.197.230...
on Socket Update: OUT
Event: OUT, socket: 7, multi 0x7fa7fc0008c0
==> Info: Connected to api.rollbar.com (192.155.197.230) port 443 (#0)
==> Info: ALPN, offering http/1.1
==> Info: Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
==> Info: successfully set certificate verify locations:
==> Info:   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
=========================>CERT
==> Info: TLSv1.2 (OUT), TLS header, Certificate Status (22):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 01 02 00                                  .....
==> Info: TLSv1.2 (OUT), TLS handshake, Client hello (1):
=> Send SSL data, 0000000512 bytes (0x00000200)
0000: 01 00 01 fc 03 03 5f f0 03 b6 74 fd 0a 2f 4b 69 ......_...t../Ki
0010: 06 36 50 2c 1c 0e eb 2b bd 7a 02 c6 a4 40 ee ae .6P,...+.z...@..
0020: 21 7f 3b 86 cb 44 00 00 9e c0 30 c0 2c c0 28 c0 !;..D....0.,.(.
0030: 24 c0 14 c0 0a 00 a5 00 a3 00 a1 00 9f 00 6b 00 $.............k.
0040: 6a 00 69 00 68 00 39 00 38 00 37 00 36 00 88 00 j.i.h.9.8.7.6...
0050: 87 00 86 00 85 c0 32 c0 2e c0 2a c0 26 c0 0f c0 ......2...*.&...
0060: 05 00 9d 00 3d 00 35 00 84 c0 2f c0 2b c0 27 c0 ....=.5.../.+.'.
0070: 23 c0 13 c0 09 00 a4 00 a2 00 a0 00 9e 00 67 00 #.............g.
0080: 40 00 3f 00 3e 00 33 00 32 00 31 00 30 00 9a 00 @.?.>.3.2.1.0...
0090: 99 00 98 00 97 00 45 00 44 00 43 00 42 c0 31 c0 ......E.D.C.B.1.
00a0: 2d c0 29 c0 25 c0 0e c0 04 00 9c 00 3c 00 2f 00 -.).%.......<./.
00b0: 96 00 41 c0 12 c0 08 00 16 00 13 00 10 00 0d c0 ..A.............
00c0: 0d c0 03 00 0a 00 ff 01 00 01 35 00 00 00 14 00 ..........5.....
00d0: 12 00 00 0f 61 70 69 2e 72 6f 6c 6c 62 61 72 2e ....api.rollbar.
00e0: 63 6f 6d 00 0b 00 04 03 00 01 02 00 0a 00 1c 00 com.............
00f0: 1a 00 17 00 19 00 1c 00 1b 00 18 00 1a 00 16 00 ................
0100: 0e 00 0d 00 0b 00 0c 00 09 00 0a 00 0d 00 20 00 .............. .
0110: 1e 06 01 06 02 06 03 05 01 05 02 05 03 04 01 04 ................
0120: 02 04 03 03 01 03 02 03 03 02 01 02 02 02 03 00 ................
0130: 0f 00 01 01 33 74 00 00 00 10 00 0b 00 09 08 68 ....3t.........h
0140: 74 74 70 2f 31 2e 31 00 15 00 b5 00 00 00 00 00 ttp/1.1.........
0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
on Socket Update: IN
Transfers running: 1
Event: IN, socket: 7, multi 0x7fa7fc0008c0
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 03 00 6b                                  ....k
==> Info: TLSv1.2 (IN), TLS handshake, Server hello (2):
<= Recv SSL data, 0000000107 bytes (0x0000006b)
0000: 02 00 00 67 03 03 58 5a 96 ce f8 4e c4 96 1f 1c ...g..XZ...N....
0010: 5e d6 f5 cd 6d 34 58 9a ee 62 3e 97 c3 1b ca 1a ^...m4X..b>.....
0020: 43 e8 70 9d 18 6c 20 f9 dc ea f1 f3 98 3e 13 2b C.p..l ......>.+
0030: 89 76 a7 36 69 e3 4f 23 51 33 73 08 50 c6 74 21 .v.6i.O#Q3s.P.t!
0040: d1 3e 10 ee 7a ba 10 c0 2f 00 00 1f ff 01 00 01 .>..z.../.......
0050: 00 00 0b 00 04 03 00 01 02 00 0f 00 01 01 33 74 ..............3t
0060: 00 09 08 68 74 74 70 2f 31 2e 31                ...http/1.1
==> Info: NPN, negotiated HTTP1.1
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 03 09 ba                                  .....
==> Info: TLSv1.2 (IN), TLS handshake, Certificate (11):
<= Recv SSL data, 0000002490 bytes (0x000009ba)
0000: 0b 00 09 b6 00 09 b3 00 05 15 30 82 05 11 30 82 ..........0...0.
0010: 03 f9 a0 03 02 01 02 02 10 07 7a 5b e5 71 7f be ..........z[.q.
0020: 7f 41 0b 5d 36 6b 87 0a b8 30 0d 06 09 2a 86 48 A.]6k...0...*.H
0030: 86 f7 0d 01 01 0b 05 00 30 4d 31 0b 30 09 06 03 ........0M1.0...
0040: 55 04 06 13 02 55 53 31 15 30 13 06 03 55 04 0a U....US1.0...U..
0050: 13 0c 44 69 67 69 43 65 72 74 20 49 6e 63 31 27 ..DigiCert Inc1'
0060: 30 25 06 03 55 04 03 13 1e 44 69 67 69 43 65 72 0%..U....DigiCer
0070: 74 20 53 48 41 32 20 53 65 63 75 72 65 20 53 65 t SHA2 Secure Se
0080: 72 76 65 72 20 43 41 30 1e 17 0d 31 34 30 31 33 rver CA0...14013
0090: 30 30 30 30 30 30 30 5a 17 0d 31 37 30 36 30 37 0000000Z..170607
00a0: 31 32 30 30 30 30 5a 30 6c 31 0b 30 09 06 03 55 120000Z0l1.0...U
00b0: 04 06 13 02 55 53 31 13 30 11 06 03 55 04 08 13 ....US1.0...U...
00c0: 0a 43 61 6c 69 66 6f 72 6e 69 61 31 16 30 14 06 .California1.0..
00d0: 03 55 04 07 13 0d 53 61 6e 20 46 72 61 6e 63 69 .U....San Franci
00e0: 73 63 6f 31 16 30 14 06 03 55 04 0a 13 0d 52 6f sco1.0...U....Ro
00f0: 6c 6c 62 61 72 2c 20 49 6e 63 2e 31 18 30 16 06 llbar, Inc.1.0..
0100: 03 55 04 03 13 0f 61 70 69 2e 72 6f 6c 6c 62 61 .U....api.rollba
0110: 72 2e 63 6f 6d 30 82 01 22 30 0d 06 09 2a 86 48 r.com0.."0...*.H
0120: 86 f7 0d 01 01 01 05 00 03 82 01 0f 00 30 82 01 .............0..
0130: 0a 02 82 01 01 00 af 20 22 23 78 cf 0c 5a 6b 77 ....... "#x..Zkw
0140: cf 01 37 65 06 74 fa b3 b1 e6 2f af 8a c4 9e 01 ..7e.t..../.....
0150: 75 a3 85 b7 7e c1 98 4f 49 c8 8e 3e 91 e5 ea 7a u...~..OI..>...z
0160: 5e 0c 25 61 e8 ab 5e 9c 39 50 a9 a7 a2 73 e0 fe ^.%a..^.9P...s..
0170: 2b c2 e0 ca 10 18 8e 30 6f a1 10 5f a0 b1 b5 13 +......0o.._....
0180: eb b7 1a 0f 9e 2d 2a d4 41 a2 e5 82 64 3d 32 85 .....-*.A...d=2.
0190: 1b 1f 24 a4 e2 97 66 63 98 74 6c 66 62 43 a9 55 ..$...fc.tlfbC.U
01a0: cf c2 03 a7 a1 60 26 3e 62 6f 91 48 be ba 39 13 .....`&>bo.H..9.
01b0: 46 2e 94 d9 de 7f 8d fa bf af 16 91 6f b7 ea 57 F..........o..W
01c0: 37 4c b2 f5 7f 98 36 c4 0d 54 9f 03 4d 74 d0 5e 7L...6..T..Mt.^
01d0: a6 8a cd 5c 91 82 19 85 06 ed 25 31 b9 bb 13 ff ...\......%1....
01e0: 5d 04 16 38 3c f1 26 12 cd 85 0d ce 07 a3 ab 82 ]..8<.&.........
01f0: ef 47 15 7d 18 33 a2 13 e1 2a ee dd fb 58 5b d6 .G.}.3...*...X[.
0200: ab df a2 d8 23 ba 84 b7 ab e7 cf 1f 1f fd 06 22 ....#.........."
0210: 1b 71 6f 2e 04 af 25 4a 5d a2 c7 8b 12 cc f8 8c .qo...%J].......
0220: ba 26 7e 53 a6 34 3e c2 9a 1d d4 28 eb 0c 41 db .&~S.4>....(..A.
0230: e9 44 10 94 f5 4d 02 03 01 00 01 a3 82 01 cc 30 .D...M.........0
0240: 82 01 c8 30 1f 06 03 55 1d 23 04 18 30 16 80 14 ...0...U.#..0...
0250: 0f 80 61 1c 82 31 61 d5 2f 28 e7 8d 46 38 b4 2c ..a..1a./(..F8.,
0260: e1 c6 d9 e2 30 1d 06 03 55 1d 0e 04 16 04 14 fa ....0...U.......
0270: 3d 24 1b ce c5 15 a2 6f 22 a4 e2 fb 6e 95 d2 7f =$.....o"...n..
0280: 87 36 92 30 1a 06 03 55 1d 11 04 13 30 11 82 0f .6.0...U....0...
0290: 61 70 69 2e 72 6f 6c 6c 62 61 72 2e 63 6f 6d 30 api.rollbar.com0
02a0: 0e 06 03 55 1d 0f 01 01 ff 04 04 03 02 05 a0 30 ...U...........0
02b0: 1d 06 03 55 1d 25 04 16 30 14 06 08 2b 06 01 05 ...U.%..0...+...
02c0: 05 07 03 01 06 08 2b 06 01 05 05 07 03 02 30 6b ......+.......0k
02d0: 06 03 55 1d 1f 04 64 30 62 30 2f a0 2d a0 2b 86 ..U...d0b0/.-.+.
02e0: 29 68 74 74 70 3a 2f 2f 63 72 6c 33 2e 64 69 67 )http://crl3.dig
02f0: 69 63 65 72 74 2e 63 6f 6d 2f 73 73 63 61 2d 73 icert.com/ssca-s
0300: 68 61 32 2d 67 31 2e 63 72 6c 30 2f a0 2d a0 2b ha2-g1.crl0/.-.+
0310: 86 29 68 74 74 70 3a 2f 2f 63 72 6c 34 2e 64 69 .)http://crl4.di
0320: 67 69 63 65 72 74 2e 63 6f 6d 2f 73 73 63 61 2d gicert.com/ssca-
0330: 73 68 61 32 2d 67 31 2e 63 72 6c 30 42 06 03 55 sha2-g1.crl0B..U
0340: 1d 20 04 3b 30 39 30 37 06 09 60 86 48 01 86 fd . .;0907..`.H...
0350: 6c 01 01 30 2a 30 28 06 08 2b 06 01 05 05 07 02 l..0*0(..+......
0360: 01 16 1c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 64 ...https://www.d
0370: 69 67 69 63 65 72 74 2e 63 6f 6d 2f 43 50 53 30 igicert.com/CPS0
0380: 7c 06 08 2b 06 01 05 05 07 01 01 04 70 30 6e 30 |..+........p0n0
0390: 24 06 08 2b 06 01 05 05 07 30 01 86 18 68 74 74 $..+.....0...htt
03a0: 70 3a 2f 2f 6f 63 73 70 2e 64 69 67 69 63 65 72 p://ocsp.digicer
03b0: 74 2e 63 6f 6d 30 46 06 08 2b 06 01 05 05 07 30 t.com0F..+.....0
03c0: 02 86 3a 68 74 74 70 3a 2f 2f 63 61 63 65 72 74 ..:http://cacert
03d0: 73 2e 64 69 67 69 63 65 72 74 2e 63 6f 6d 2f 44 s.digicert.com/D
03e0: 69 67 69 43 65 72 74 53 48 41 32 53 65 63 75 72 igiCertSHA2Secur
03f0: 65 53 65 72 76 65 72 43 41 2e 63 72 74 30 0c 06 eServerCA.crt0..
0400: 03 55 1d 13 01 01 ff 04 02 30 00 30 0d 06 09 2a .U.......0.0...*
0410: 86 48 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 52 .H.............R
0420: fa 06 f7 99 f3 6a b9 4b bd 60 99 a1 4c fd fb 3b .....j.K.`..L..;
0430: f9 18 30 cd 54 f0 11 cf fe af 3e a9 f3 5a 04 7a ..0.T.....>..Z.z
0440: b7 a7 41 29 3e 02 57 00 fb 46 49 3c 79 dd 4c a8 ..A)>.W..FI<y.L.
0450: e7 bf f8 07 a8 ab ca be d9 ac 17 e2 73 a7 99 86 ............s...
0460: 6a 1f 7a 7c fb 2f ee 19 77 42 96 a9 8b 3d eb dc j.z|./..wB...=..
0470: e6 a6 bb 5c 57 7d 2f f5 ed 48 0e 51 25 75 66 40 ...\W}/..H.Q%uf@
0480: 06 09 f1 d1 19 d2 07 c7 02 c8 bb 37 b0 eb 5a f7 ...........7..Z.
0490: 4b 15 94 53 c8 6e 35 76 7f 7c 56 60 25 63 2b 33 K..S.n5v|V`%c+3
04a0: c1 3f 10 0a c1 12 27 65 9e 84 9f 21 3c 7d 2f b7 .?....'e...!<}/.
04b0: 78 09 1b ab 14 44 e7 73 9c e7 6d 55 a2 89 41 6d x....D.s..mU..Am
04c0: 9f 32 02 3e 6e 7a 59 c8 06 76 83 96 c7 70 4a f3 .2.>nzY..v...pJ.
04d0: e5 85 e3 36 24 9a c6 66 9e 4a 6e 6d 8a 94 2d 87 ...6$..f.Jnm..-.
04e0: 95 4d a7 4f 7e 6f ec 36 42 1e 00 96 1d 3b 75 49 .M.O~o.6B....;uI
04f0: 49 12 2f 65 1a aa 53 2d 63 e2 ba 63 1a 59 a0 23 I./e..S-c..c.Y.#
0500: ae 1f f7 68 dc af 1e 43 54 e0 96 0b c4 9d a0 a0 ...h...CT.......
0510: 3d 88 6f 92 a9 99 31 c1 e4 24 9d 14 ef c6 66 00 =.o...1..$....f.
0520: 04 98 30 82 04 94 30 82 03 7c a0 03 02 01 02 02 ..0...0..|......
0530: 10 01 fd a3 eb 6e ca 75 c8 88 43 8b 72 4b cf bc .....n.u..C.rK..
0540: 91 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 .0...*.H........
0550: 30 61 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 0a1.0...U....US1
0560: 15 30 13 06 03 55 04 0a 13 0c 44 69 67 69 43 65 .0...U....DigiCe
0570: 72 74 20 49 6e 63 31 19 30 17 06 03 55 04 0b 13 rt Inc1.0...U...
0580: 10 77 77 77 2e 64 69 67 69 63 65 72 74 2e 63 6f .www.digicert.co
0590: 6d 31 20 30 1e 06 03 55 04 03 13 17 44 69 67 69 m1 0...U....Digi
05a0: 43 65 72 74 20 47 6c 6f 62 61 6c 20 52 6f 6f 74 Cert Global Root
05b0: 20 43 41 30 1e 17 0d 31 33 30 33 30 38 31 32 30  CA0...130308120
05c0: 30 30 30 5a 17 0d 32 33 30 33 30 38 31 32 30 30 000Z..2303081200
05d0: 30 30 5a 30 4d 31 0b 30 09 06 03 55 04 06 13 02 00Z0M1.0...U....
05e0: 55 53 31 15 30 13 06 03 55 04 0a 13 0c 44 69 67 US1.0...U....Dig
05f0: 69 43 65 72 74 20 49 6e 63 31 27 30 25 06 03 55 iCert Inc1'0%..U
0600: 04 03 13 1e 44 69 67 69 43 65 72 74 20 53 48 41 ....DigiCert SHA
0610: 32 20 53 65 63 75 72 65 20 53 65 72 76 65 72 20 2 Secure Server 
0620: 43 41 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d CA0.."0...*.H...
0630: 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 ..........0.....
0640: 01 01 00 dc ae 58 90 4d c1 c4 30 15 90 35 5b 6e .....X.M..0..5[n
0650: 3c 82 15 f5 2c 5c bd e3 db ff 71 43 fa 64 25 80 <...,\....qC.d%.
0660: d4 ee 18 a2 4d f0 66 d0 0a 73 6e 11 98 36 17 64 ....M.f..sn..6.d
0670: af 37 9d fd fa 41 84 af c7 af 8c fe 1a 73 4d cf .7...A.......sM.
0680: 33 97 90 a2 96 87 53 83 2b b9 a6 75 48 2d 1d 56 3.....S.+..uH-.V
0690: 37 7b da 31 32 1a d7 ac ab 06 f4 aa 5d 4b b7 47 7{.12.......]K.G
06a0: 46 dd 2a 93 c3 90 2e 79 80 80 ef 13 04 6a 14 3b F.*....y.....j.;
06b0: b5 9b 92 be c2 07 65 4e fc da fc ff 7a ae dc 5c ......eN....z..\
06c0: 7e 55 31 0c e8 39 07 a4 d7 be 2f d3 0b 6a d2 b1 ~U1..9..../..j..
06d0: df 5f fe 57 74 53 3b 35 80 dd ae 8e 44 98 b3 9f ._.WtS;5....D...
06e0: 0e d3 da e0 d7 f4 6b 29 ab 44 a7 4b 58 84 6d 92 ......k).D.KX.m.
06f0: 4b 81 c3 da 73 8b 12 97 48 90 04 45 75 1a dd 37 K...s...H..Eu..7
0700: 31 97 92 e8 cd 54 0d 3b e4 c1 3f 39 5e 2e b8 f3 1....T.;..?9^...
0710: 5c 7e 10 8e 86 41 00 8d 45 66 47 b0 a1 65 ce a0 \~...A..EfG..e..
0720: aa 29 09 4e f3 97 eb e8 2e ab 0f 72 a7 30 0e fa .).N.......r.0..
0730: c7 f4 fd 14 77 c3 a4 5b 28 57 c2 b3 f9 82 fd b7 ....w..[(W......
0740: 45 58 9b 02 03 01 00 01 a3 82 01 5a 30 82 01 56 EX.........Z0..V
0750: 30 12 06 03 55 1d 13 01 01 ff 04 08 30 06 01 01 0...U.......0...
0760: ff 02 01 00 30 0e 06 03 55 1d 0f 01 01 ff 04 04 ....0...U.......
0770: 03 02 01 86 30 34 06 08 2b 06 01 05 05 07 01 01 ....04..+.......
0780: 04 28 30 26 30 24 06 08 2b 06 01 05 05 07 30 01 .(0&0$..+.....0.
0790: 86 18 68 74 74 70 3a 2f 2f 6f 63 73 70 2e 64 69 ..http://ocsp.di
07a0: 67 69 63 65 72 74 2e 63 6f 6d 30 7b 06 03 55 1d gicert.com0{..U.
07b0: 1f 04 74 30 72 30 37 a0 35 a0 33 86 31 68 74 74 ..t0r07.5.3.1htt
07c0: 70 3a 2f 2f 63 72 6c 33 2e 64 69 67 69 63 65 72 p://crl3.digicer
07d0: 74 2e 63 6f 6d 2f 44 69 67 69 43 65 72 74 47 6c t.com/DigiCertGl
07e0: 6f 62 61 6c 52 6f 6f 74 43 41 2e 63 72 6c 30 37 obalRootCA.crl07
07f0: a0 35 a0 33 86 31 68 74 74 70 3a 2f 2f 63 72 6c .5.3.1http://crl
0800: 34 2e 64 69 67 69 63 65 72 74 2e 63 6f 6d 2f 44 4.digicert.com/D
0810: 69 67 69 43 65 72 74 47 6c 6f 62 61 6c 52 6f 6f igiCertGlobalRoo
0820: 74 43 41 2e 63 72 6c 30 3d 06 03 55 1d 20 04 36 tCA.crl0=..U. .6
0830: 30 34 30 32 06 04 55 1d 20 00 30 2a 30 28 06 08 0402..U. .0*0(..
0840: 2b 06 01 05 05 07 02 01 16 1c 68 74 74 70 73 3a +.........https:
0850: 2f 2f 77 77 77 2e 64 69 67 69 63 65 72 74 2e 63 //www.digicert.c
0860: 6f 6d 2f 43 50 53 30 1d 06 03 55 1d 0e 04 16 04 om/CPS0...U.....
0870: 14 0f 80 61 1c 82 31 61 d5 2f 28 e7 8d 46 38 b4 ...a..1a./(..F8.
0880: 2c e1 c6 d9 e2 30 1f 06 03 55 1d 23 04 18 30 16 ,....0...U.#..0.
0890: 80 14 03 de 50 35 56 d1 4c bb 66 f0 a3 e2 1b 1b ....P5V.L.f.....
08a0: c3 97 b2 3d d1 55 30 0d 06 09 2a 86 48 86 f7 0d ...=.U0...*.H...
08b0: 01 01 0b 05 00 03 82 01 01 00 23 3e df 4b d2 31 ..........#>.K.1
08c0: 42 a5 b6 7e 42 5c 1a 44 cc 69 d1 68 b4 5d 4b e0 B..~B\.D.i.h.]K.
08d0: 04 21 6c 4b e2 6d cc b1 e0 97 8f a6 53 09 cd aa .!lK.m......S...
08e0: 2a 65 e5 39 4f 1e 83 a5 6e 5c 98 a2 24 26 e6 fb *e.9O...n\..$&..
08f0: a1 ed 93 c7 2e 02 c6 4d 4a bf b0 42 df 78 da b3 .......MJ..B.x..
0900: a8 f9 6d ff 21 85 53 36 60 4c 76 ce ec 38 dc d6 ..m.!.S6`Lv..8..
0910: 51 80 f0 c5 d6 e5 d4 4d 27 64 ab 9b c7 3e 71 fb Q......M'd...>q.
0920: 48 97 b8 33 6d c9 13 07 ee 96 a2 1b 18 15 f6 5c H..3m..........\
0930: 4c 40 ed b3 c2 ec ff 71 c1 e3 47 ff d4 b9 00 b4 L@.....q..G.....
0940: 37 42 da 20 c9 ea 6e 8a ee 14 06 ae 7d a2 59 98 7B. ..n.....}.Y.
0950: 88 a8 1b 6f 2d f4 f2 c9 14 5f 26 cf 2c 8d 7e ed ...o-...._&.,.~.
0960: 37 c0 a9 d5 39 b9 82 bf 19 0c ea 34 af 00 21 68 7...9......4..!h
0970: f8 ad 73 e2 c9 32 da 38 25 0b 55 d3 9a 1d f0 68 ..s..2.8%.U....h
0980: 86 ed 2e 41 34 ef 7c a5 50 1d bf 3a f9 d3 c1 08 ...A4.|.P..:....
0990: 0c e6 ed 1e 8a 58 25 e4 b8 77 ad 2d 6e f5 52 dd .....X%..w.-n.R.
09a0: b4 74 8f ab 49 2e 9d 3b 93 34 28 1f 78 ce 94 ea .t..I..;.4(.x...
09b0: c7 bd d3 c9 6d 1c de 5c 32 f3                   ....m..\2.
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 03 01 4d                                  ....M
==> Info: TLSv1.2 (IN), TLS handshake, Server key exchange (12):
<= Recv SSL data, 0000000333 bytes (0x0000014d)
0000: 0c 00 01 49 03 00 17 41 04 df 91 55 33 38 fe 6f ...I...A...U38.o
0010: c3 82 cb 7c 7e 06 ff 62 36 78 c4 60 69 d2 86 c0 ...|~..b6x.`i...
0020: b2 64 c2 77 1e b3 14 4a 7f f3 5a 9b ab a8 7b 16 .d.w...J.Z...{.
0030: 75 3b 4b 14 11 70 5a 2b a4 e3 eb e9 41 e7 21 b2 u;K..pZ+....A.!.
0040: 1b 4b ab 83 54 aa ee b5 8c 06 01 01 00 04 62 86 .K..T.........b.
0050: bc 08 ba 30 d1 ba 6d 34 4f c4 de 47 63 3c 69 92 ...0..m4O..Gc<i.
0060: 03 06 fa 60 80 02 3d a2 fe f0 a3 6a 14 91 07 e5 ...`..=....j....
0070: d6 b8 6b a7 54 99 21 98 97 2c 4e 55 ac d5 76 6c ..k.T.!..,NU..vl
0080: 8d e8 94 24 49 eb 4d 1d 6e 68 36 f7 da e3 94 19 ...$I.M.nh6.....
0090: 5d 22 b3 29 1b 38 b1 14 8b 27 e9 65 9a e7 9b c4 ]".).8...'.e....
00a0: c2 ac 58 2e f0 c4 c7 0e 04 f0 4d ac 45 e3 b3 13 ..X.......M.E...
00b0: b4 c8 58 f6 9d 4c 94 d0 ed 6b 2b 7e 22 57 57 56 ..X..L...k+~"WWV
00c0: c9 55 03 a5 5b 74 9c b5 29 d3 fe f6 9d 98 31 1e .U..[t..).....1.
00d0: 49 2d f5 1f 88 4d e5 be 94 a9 23 ef 04 6c 9f 37 I-...M....#..l.7
00e0: 1e ca aa 27 48 1f 3c ca 94 75 0a b8 d2 12 54 ea ...'H.<..u....T.
00f0: bf 44 f3 b1 0e 51 a1 b4 ef c3 10 11 66 7b e7 2f .D...Q......f{./
0100: fa 95 a0 cb b8 18 44 9d 43 bd c9 44 52 f2 93 6f ......D.C..DR..o
0110: 10 79 39 8a b1 9a 2a 5d a6 3c 1e 4e ed 98 db 31 .y9...*].<.N...1
0120: 0b 6e 9f 9c ef f4 e4 85 e9 df e9 e2 3d 26 cf 60 .n..........=&.`
0130: cb 82 86 d4 b5 27 d1 f7 ef cb 79 52 a9 47 21 9a .....'....yR.G!.
0140: 3d ee 0f a5 c0 7c 5e e2 c1 f5 e4 21 54          =....|^....!T
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 03 00 04                                  .....
==> Info: TLSv1.2 (IN), TLS handshake, Server finished (14):
<= Recv SSL data, 0000000004 bytes (0x00000004)
0000: 0e 00 00 00                                     ....
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 03 00 46                                  ....F
==> Info: TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
=> Send SSL data, 0000000070 bytes (0x00000046)
0000: 10 00 00 42 41 04 5c 58 8d e1 42 ce 2f 58 90 35 ...BA.\X..B./X.5
0010: 80 6f 66 85 f1 9a 48 8d e5 10 fa b9 3a a7 1a ef .of...H.....:...
0020: f3 d2 ba 09 33 e7 d3 f2 83 bc 8e a6 85 e2 44 5f ....3.........D_
0030: 12 d3 c1 99 c0 34 62 19 a0 3d 59 9a 7b 7c f3 b4 .....4b..=Y.{|..
0040: 2d 85 5a 49 ab 69                               -.ZI.i
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: 14 03 03 00 01                                  .....
==> Info: TLSv1.2 (OUT), TLS change cipher, Client hello (1):
=> Send SSL data, 0000000001 bytes (0x00000001)
0000: 01                                              .
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 03 00 3c                                  ....<
==> Info: TLSv1.2 (OUT), TLS handshake, Unknown (67):
=> Send SSL data, 0000000036 bytes (0x00000024)
0000: 43 00 00 20 08 68 74 74 70 2f 31 2e 31 16 00 00 C.. .http/1.1...
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00                                     ....
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 03 00 28                                  ....(
==> Info: TLSv1.2 (OUT), TLS handshake, Finished (20):
=> Send SSL data, 0000000016 bytes (0x00000010)
0000: 14 00 00 0c 23 d2 95 23 5a 7d 67 96 80 8b b4 fb ....#..#Z}g.....
Transfers running: 1

Here I would expect that the payload set for the POST request started being sent once the handshake is done.

@jay jay added the TLS label Dec 21, 2016
@jay
Copy link
Member

jay commented Dec 21, 2016

Thank you for the log but unfortunately this is not enough information to tell you what's wrong. Can you provide a self-contained example that we can use to reproduce? Also, are you sure that your program loaded the latest version of libcurl w/openssl? Can you do a curl_version() to confirm?

@sancane
Copy link
Author

sancane commented Dec 22, 2016

That trace was gotten using the ubuntu compiled curl (without debugging). Here is a new one using the one compiled by me (printed version at the top):

Curl version: libcurl/7.52.0 OpenSSL/1.0.2g zlib/1.2.8 c-ares/1.10.0 libidn2/0.10 librtmp/2.3

Adding easy 0x1759fc8 to multi 0x170f428 (https://api.rollbar.com/api/1/item/)
multi_timer_cb: timeout_ms 0
=> Info: STATE: INIT => CONNECT handle 0x1759fc8; line 1413 (connection #-5000)
=> Info: Added connection 0. The cache now contains 1 members
=> Info: STATE: CONNECT => WAITRESOLVE handle 0x1759fc8; line 1450 (connection #0)
timer_cb: 
sock_cb: socket=7, what=1, sockp=(nil)
socket callback: s=7 e=0x1759fc8 what=IN 
Adding data: IN
setsock: socket=7, act=1, fdp=0x17760c0
socket 7 is a c-ares socket, ignoring
multi_timer_cb: timeout_ms 0
timer_cb: 
multi_timer_cb: timeout_ms 4687
REMAINING: 1
REMAINING: 1
timer_cb: 
sock_cb: socket=7, what=4, sockp=0x17760c0
socket callback: s=7 e=0x1759fc8 what=REMOVE 

remsock: 
opensocket :
=> Info:   Trying 192.155.197.230...
=> Info: TCP_NODELAY set
=> Info: STATE: WAITRESOLVE => WAITCONNECT handle 0x1759fc8; line 1531 (connection #0)
Opened socket 7
sock_cb: socket=7, what=2, sockp=(nil)
socket callback: s=7 e=0x1759fc8 what=OUT 
Adding data: OUT
setsock: socket=7, act=2, fdp=0x17760c0
watching for socket to become writable
multi_timer_cb: timeout_ms 199
REMAINING: 1
=> Info: Connected to api.rollbar.com (192.155.197.230) port 443 (#0)
=> Info: STATE: WAITCONNECT => SENDPROTOCONNECT handle 0x1759fc8; line 1583 (connection #0)
=> Info: Marked for [keep alive]: HTTP default
=> Info: ALPN, offering http/1.1
=> Info: Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
=> Info: successfully set certificate verify locations:
=> Info:   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: none
=> Info: TLSv1.2 (OUT), TLS header, Certificate Status (22):
event_cb: action=2=> Send SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 01 02 00                                  .....
=> Info: TLSv1.2 (OUT), TLS handshake, Client hello (1):
=> Send SSL data, 0000000512 bytes (0x00000200)
0000: 01 00 01 fc 03 03 3e 1e 11 3b 28 08 11 75 14 fa ......>..;(..u..
0010: 41 65 6f a1 3a 76 ab 25 ea 30 24 66 47 ad 7c 95 Aeo.:v.%.0$fG.|.
0020: 7c e0 48 7f 87 5e 00 00 9e c0 30 c0 2c c0 28 c0 |.H.^....0.,.(.
0030: 24 c0 14 c0 0a 00 a5 00 a3 00 a1 00 9f 00 6b 00 $.............k.
0040: 6a 00 69 00 68 00 39 00 38 00 37 00 36 00 88 00 j.i.h.9.8.7.6...
0050: 87 00 86 00 85 c0 32 c0 2e c0 2a c0 26 c0 0f c0 ......2...*.&...
0060: 05 00 9d 00 3d 00 35 00 84 c0 2f c0 2b c0 27 c0 ....=.5.../.+.'.
0070: 23 c0 13 c0 09 00 a4 00 a2 00 a0 00 9e 00 67 00 #.............g.
0080: 40 00 3f 00 3e 00 33 00 32 00 31 00 30 00 9a 00 @.?.>.3.2.1.0...
0090: 99 00 98 00 97 00 45 00 44 00 43 00 42 c0 31 c0 ......E.D.C.B.1.
00a0: 2d c0 29 c0 25 c0 0e c0 04 00 9c 00 3c 00 2f 00 -.).%.......<./.
00b0: 96 00 41 c0 12 c0 08 00 16 00 13 00 10 00 0d c0 ..A.............
00c0: 0d c0 03 00 0a 00 ff 01 00 01 35 00 00 00 14 00 ..........5.....
00d0: 12 00 00 0f 61 70 69 2e 72 6f 6c 6c 62 61 72 2e ....api.rollbar.
00e0: 63 6f 6d 00 0b 00 04 03 00 01 02 00 0a 00 1c 00 com.............
00f0: 1a 00 17 00 19 00 1c 00 1b 00 18 00 1a 00 16 00 ................
0100: 0e 00 0d 00 0b 00 0c 00 09 00 0a 00 0d 00 20 00 .............. .
0110: 1e 06 01 06 02 06 03 05 01 05 02 05 03 04 01 04 ................
0120: 02 04 03 03 01 03 02 03 03 02 01 02 02 02 03 00 ................
0130: 0f 00 01 01 33 74 00 00 00 10 00 0b 00 09 08 68 ....3t.........h
0140: 74 74 70 2f 31 2e 31 00 15 00 b5 00 00 00 00 00 ttp/1.1.........
0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
=> Info: STATE: SENDPROTOCONNECT => PROTOCONNECT handle 0x1759fc8; line 1597 (connection #0)

sock_cb: socket=7, what=4, sockp=0x17760c0
socket callback: s=7 e=0x1759fc8 what=REMOVE 

remsock: 
REMAINING: 1
timer_cb: 
multi_timer_cb: timeout_ms 1
REMAINING: 1
timer_cb: 
multi_timer_cb: timeout_ms 299800

@sancane
Copy link
Author

sancane commented Dec 22, 2016

Here I atached an example program you could use to try this issue. If you execute it several times you will realize that not always works when using https instead of http. The only IP that worked for my was 37.58.71.74.

asiohiper.txt

@sancane
Copy link
Author

sancane commented Dec 22, 2016

What strikes me in the above trace is the socket callback log with the remove action just after getting te certificate, in fact, I do not even getting the log of transfer done when calling on curl_multi_info_read once all stuff finishes.

@iboukris
Copy link
Contributor

Perhaps the problem is on the SSL layer, maybe try setting CURLSSLOPT_ALLOW_BEAST option.

@sancane
Copy link
Author

sancane commented Dec 23, 2016

Jus tried, but it does not solve the problem

@bagder
Copy link
Member

bagder commented Dec 26, 2016

Maybe a7b38c9 solves the issue?

@sancane
Copy link
Author

sancane commented Dec 27, 2016

Not it does not. Here is a trace using the example program provided above, using curl master branch which includes that patch:

Curl version: libcurl/7.52.2-DEV OpenSSL/1.0.2g zlib/1.2.8 c-ares/1.10.0 libidn2/0.10 librtmp/2.3

Adding easy 0xc74fc8 to multi 0xc2a428 (https://api.rollbar.com/api/1/item/)
multi_timer_cb: timeout_ms 0
=> Info: STATE: INIT => CONNECT handle 0xc74fc8; line 1413 (connection #-5000)
=> Info: Added connection 0. The cache now contains 1 members
=> Info: STATE: CONNECT => WAITRESOLVE handle 0xc74fc8; line 1450 (connection #0)
timer_cb: 
sock_cb: socket=7, what=1, sockp=(nil)
socket callback: s=7 e=0xc74fc8 what=IN 
Adding data: IN
setsock: socket=7, act=1, fdp=0xc910c0
socket 7 is a c-ares socket, ignoring
multi_timer_cb: timeout_ms 0
timer_cb: 
multi_timer_cb: timeout_ms 4687
REMAINING: 1
REMAINING: 1
timer_cb: 
sock_cb: socket=7, what=4, sockp=0xc910c0
socket callback: s=7 e=0xc74fc8 what=REMOVE 

remsock: 
opensocket :
=> Info:   Trying 192.155.197.230...
=> Info: TCP_NODELAY set
=> Info: STATE: WAITRESOLVE => WAITCONNECT handle 0xc74fc8; line 1531 (connection #0)
Opened socket 7
sock_cb: socket=7, what=2, sockp=(nil)
socket callback: s=7 e=0xc74fc8 what=OUT 
Adding data: OUT
setsock: socket=7, act=2, fdp=0xc910c0
watching for socket to become writable
multi_timer_cb: timeout_ms 199
REMAINING: 1
=> Info: Connected to api.rollbar.com (192.155.197.230) port 443 (#0)
=> Info: STATE: WAITCONNECT => SENDPROTOCONNECT handle 0xc74fc8; line 1583 (connection #0)
=> Info: Marked for [keep alive]: HTTP default
=> Info: ALPN, offering http/1.1
=> Info: Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
=> Info: successfully set certificate verify locations:
=> Info:   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: none
=> Info: TLSv1.2 (OUT), TLS header, Certificate Status (22):
event_cb: action=2=> Send SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 01 02 00                                  .....
=> Info: TLSv1.2 (OUT), TLS handshake, Client hello (1):
=> Send SSL data, 0000000512 bytes (0x00000200)
0000: 01 00 01 fc 03 03 a3 89 55 a0 93 3d 28 1f 41 36 ........U..=(.A6
0010: 1a 28 f5 d2 15 9d e5 93 63 88 9f f2 e1 12 3d 46 .(......c.....=F
0020: a4 0e 96 0e 90 ee 00 00 9e c0 30 c0 2c c0 28 c0 ..........0.,.(.
0030: 24 c0 14 c0 0a 00 a5 00 a3 00 a1 00 9f 00 6b 00 $.............k.
0040: 6a 00 69 00 68 00 39 00 38 00 37 00 36 00 88 00 j.i.h.9.8.7.6...
0050: 87 00 86 00 85 c0 32 c0 2e c0 2a c0 26 c0 0f c0 ......2...*.&...
0060: 05 00 9d 00 3d 00 35 00 84 c0 2f c0 2b c0 27 c0 ....=.5.../.+.'.
0070: 23 c0 13 c0 09 00 a4 00 a2 00 a0 00 9e 00 67 00 #.............g.
0080: 40 00 3f 00 3e 00 33 00 32 00 31 00 30 00 9a 00 @.?.>.3.2.1.0...
0090: 99 00 98 00 97 00 45 00 44 00 43 00 42 c0 31 c0 ......E.D.C.B.1.
00a0: 2d c0 29 c0 25 c0 0e c0 04 00 9c 00 3c 00 2f 00 -.).%.......<./.
00b0: 96 00 41 c0 12 c0 08 00 16 00 13 00 10 00 0d c0 ..A.............
00c0: 0d c0 03 00 0a 00 ff 01 00 01 35 00 00 00 14 00 ..........5.....
00d0: 12 00 00 0f 61 70 69 2e 72 6f 6c 6c 62 61 72 2e ....api.rollbar.
00e0: 63 6f 6d 00 0b 00 04 03 00 01 02 00 0a 00 1c 00 com.............
00f0: 1a 00 17 00 19 00 1c 00 1b 00 18 00 1a 00 16 00 ................
0100: 0e 00 0d 00 0b 00 0c 00 09 00 0a 00 0d 00 20 00 .............. .
0110: 1e 06 01 06 02 06 03 05 01 05 02 05 03 04 01 04 ................
0120: 02 04 03 03 01 03 02 03 03 02 01 02 02 02 03 00 ................
0130: 0f 00 01 01 33 74 00 00 00 10 00 0b 00 09 08 68 ....3t.........h
0140: 74 74 70 2f 31 2e 31 00 15 00 b5 00 00 00 00 00 ttp/1.1.........
0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
=> Info: STATE: SENDPROTOCONNECT => PROTOCONNECT handle 0xc74fc8; line 1597 (connection #0)

sock_cb: socket=7, what=1, sockp=0xc910c0
socket callback: s=7 e=0xc74fc8 what=IN 
Changing action from OUT to IN
setsock: socket=7, act=1, fdp=0xc910c0
watching for socket to become readable
REMAINING: 1
timer_cb: 
multi_timer_cb: timeout_ms 1
REMAINING: 1
timer_cb: 
multi_timer_cb: timeout_ms 299800
REMAINING: 1
event_cb: action=1<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 03 00 6b                                  ....k
=> Info: TLSv1.2 (IN), TLS handshake, Server hello (2):
<= Recv SSL data, 0000000107 bytes (0x0000006b)
0000: 02 00 00 67 03 03 58 62 30 4b 6f aa a1 e7 b9 b2 ...g..Xb0Ko.....
0010: 36 9c 0c 36 28 89 87 31 0a 79 28 46 80 d5 76 c1 6..6(..1.y(F..v.
0020: ef 5e 6e 0c f3 a1 20 4a 40 a3 e2 dd 65 9a 07 0f .^n... J@...e...
0030: 18 c9 96 79 4d 3e b6 b0 2d b0 3c dd 74 ad 74 93 ...yM>..-.<.t.t.
0040: 21 e8 34 95 5c 2f 2f c0 2f 00 00 1f ff 01 00 01 !.4.\//./.......
0050: 00 00 0b 00 04 03 00 01 02 00 0f 00 01 01 33 74 ..............3t
0060: 00 09 08 68 74 74 70 2f 31 2e 31                ...http/1.1
=> Info: NPN, negotiated HTTP1.1
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 03 09 ba                                  .....
=> Info: TLSv1.2 (IN), TLS handshake, Certificate (11):
<= Recv SSL data, 0000002490 bytes (0x000009ba)
0000: 0b 00 09 b6 00 09 b3 00 05 15 30 82 05 11 30 82 ..........0...0.
0010: 03 f9 a0 03 02 01 02 02 10 07 7a 5b e5 71 7f be ..........z[.q.
0020: 7f 41 0b 5d 36 6b 87 0a b8 30 0d 06 09 2a 86 48 A.]6k...0...*.H
0030: 86 f7 0d 01 01 0b 05 00 30 4d 31 0b 30 09 06 03 ........0M1.0...
0040: 55 04 06 13 02 55 53 31 15 30 13 06 03 55 04 0a U....US1.0...U..
0050: 13 0c 44 69 67 69 43 65 72 74 20 49 6e 63 31 27 ..DigiCert Inc1'
0060: 30 25 06 03 55 04 03 13 1e 44 69 67 69 43 65 72 0%..U....DigiCer
0070: 74 20 53 48 41 32 20 53 65 63 75 72 65 20 53 65 t SHA2 Secure Se
0080: 72 76 65 72 20 43 41 30 1e 17 0d 31 34 30 31 33 rver CA0...14013
0090: 30 30 30 30 30 30 30 5a 17 0d 31 37 30 36 30 37 0000000Z..170607
00a0: 31 32 30 30 30 30 5a 30 6c 31 0b 30 09 06 03 55 120000Z0l1.0...U
00b0: 04 06 13 02 55 53 31 13 30 11 06 03 55 04 08 13 ....US1.0...U...
00c0: 0a 43 61 6c 69 66 6f 72 6e 69 61 31 16 30 14 06 .California1.0..
00d0: 03 55 04 07 13 0d 53 61 6e 20 46 72 61 6e 63 69 .U....San Franci
00e0: 73 63 6f 31 16 30 14 06 03 55 04 0a 13 0d 52 6f sco1.0...U....Ro
00f0: 6c 6c 62 61 72 2c 20 49 6e 63 2e 31 18 30 16 06 llbar, Inc.1.0..
0100: 03 55 04 03 13 0f 61 70 69 2e 72 6f 6c 6c 62 61 .U....api.rollba
0110: 72 2e 63 6f 6d 30 82 01 22 30 0d 06 09 2a 86 48 r.com0.."0...*.H
0120: 86 f7 0d 01 01 01 05 00 03 82 01 0f 00 30 82 01 .............0..
0130: 0a 02 82 01 01 00 af 20 22 23 78 cf 0c 5a 6b 77 ....... "#x..Zkw
0140: cf 01 37 65 06 74 fa b3 b1 e6 2f af 8a c4 9e 01 ..7e.t..../.....
0150: 75 a3 85 b7 7e c1 98 4f 49 c8 8e 3e 91 e5 ea 7a u...~..OI..>...z
0160: 5e 0c 25 61 e8 ab 5e 9c 39 50 a9 a7 a2 73 e0 fe ^.%a..^.9P...s..
0170: 2b c2 e0 ca 10 18 8e 30 6f a1 10 5f a0 b1 b5 13 +......0o.._....
0180: eb b7 1a 0f 9e 2d 2a d4 41 a2 e5 82 64 3d 32 85 .....-*.A...d=2.
0190: 1b 1f 24 a4 e2 97 66 63 98 74 6c 66 62 43 a9 55 ..$...fc.tlfbC.U
01a0: cf c2 03 a7 a1 60 26 3e 62 6f 91 48 be ba 39 13 .....`&>bo.H..9.
01b0: 46 2e 94 d9 de 7f 8d fa bf af 16 91 6f b7 ea 57 F..........o..W
01c0: 37 4c b2 f5 7f 98 36 c4 0d 54 9f 03 4d 74 d0 5e 7L...6..T..Mt.^
01d0: a6 8a cd 5c 91 82 19 85 06 ed 25 31 b9 bb 13 ff ...\......%1....
01e0: 5d 04 16 38 3c f1 26 12 cd 85 0d ce 07 a3 ab 82 ]..8<.&.........
01f0: ef 47 15 7d 18 33 a2 13 e1 2a ee dd fb 58 5b d6 .G.}.3...*...X[.
0200: ab df a2 d8 23 ba 84 b7 ab e7 cf 1f 1f fd 06 22 ....#.........."
0210: 1b 71 6f 2e 04 af 25 4a 5d a2 c7 8b 12 cc f8 8c .qo...%J].......
0220: ba 26 7e 53 a6 34 3e c2 9a 1d d4 28 eb 0c 41 db .&~S.4>....(..A.
0230: e9 44 10 94 f5 4d 02 03 01 00 01 a3 82 01 cc 30 .D...M.........0
0240: 82 01 c8 30 1f 06 03 55 1d 23 04 18 30 16 80 14 ...0...U.#..0...
0250: 0f 80 61 1c 82 31 61 d5 2f 28 e7 8d 46 38 b4 2c ..a..1a./(..F8.,
0260: e1 c6 d9 e2 30 1d 06 03 55 1d 0e 04 16 04 14 fa ....0...U.......
0270: 3d 24 1b ce c5 15 a2 6f 22 a4 e2 fb 6e 95 d2 7f =$.....o"...n..
0280: 87 36 92 30 1a 06 03 55 1d 11 04 13 30 11 82 0f .6.0...U....0...
0290: 61 70 69 2e 72 6f 6c 6c 62 61 72 2e 63 6f 6d 30 api.rollbar.com0
02a0: 0e 06 03 55 1d 0f 01 01 ff 04 04 03 02 05 a0 30 ...U...........0
02b0: 1d 06 03 55 1d 25 04 16 30 14 06 08 2b 06 01 05 ...U.%..0...+...
02c0: 05 07 03 01 06 08 2b 06 01 05 05 07 03 02 30 6b ......+.......0k
02d0: 06 03 55 1d 1f 04 64 30 62 30 2f a0 2d a0 2b 86 ..U...d0b0/.-.+.
02e0: 29 68 74 74 70 3a 2f 2f 63 72 6c 33 2e 64 69 67 )http://crl3.dig
02f0: 69 63 65 72 74 2e 63 6f 6d 2f 73 73 63 61 2d 73 icert.com/ssca-s
0300: 68 61 32 2d 67 31 2e 63 72 6c 30 2f a0 2d a0 2b ha2-g1.crl0/.-.+
0310: 86 29 68 74 74 70 3a 2f 2f 63 72 6c 34 2e 64 69 .)http://crl4.di
0320: 67 69 63 65 72 74 2e 63 6f 6d 2f 73 73 63 61 2d gicert.com/ssca-
0330: 73 68 61 32 2d 67 31 2e 63 72 6c 30 42 06 03 55 sha2-g1.crl0B..U
0340: 1d 20 04 3b 30 39 30 37 06 09 60 86 48 01 86 fd . .;0907..`.H...
0350: 6c 01 01 30 2a 30 28 06 08 2b 06 01 05 05 07 02 l..0*0(..+......
0360: 01 16 1c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 64 ...https://www.d
0370: 69 67 69 63 65 72 74 2e 63 6f 6d 2f 43 50 53 30 igicert.com/CPS0
0380: 7c 06 08 2b 06 01 05 05 07 01 01 04 70 30 6e 30 |..+........p0n0
0390: 24 06 08 2b 06 01 05 05 07 30 01 86 18 68 74 74 $..+.....0...htt
03a0: 70 3a 2f 2f 6f 63 73 70 2e 64 69 67 69 63 65 72 p://ocsp.digicer
03b0: 74 2e 63 6f 6d 30 46 06 08 2b 06 01 05 05 07 30 t.com0F..+.....0
03c0: 02 86 3a 68 74 74 70 3a 2f 2f 63 61 63 65 72 74 ..:http://cacert
03d0: 73 2e 64 69 67 69 63 65 72 74 2e 63 6f 6d 2f 44 s.digicert.com/D
03e0: 69 67 69 43 65 72 74 53 48 41 32 53 65 63 75 72 igiCertSHA2Secur
03f0: 65 53 65 72 76 65 72 43 41 2e 63 72 74 30 0c 06 eServerCA.crt0..
0400: 03 55 1d 13 01 01 ff 04 02 30 00 30 0d 06 09 2a .U.......0.0...*
0410: 86 48 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 52 .H.............R
0420: fa 06 f7 99 f3 6a b9 4b bd 60 99 a1 4c fd fb 3b .....j.K.`..L..;
0430: f9 18 30 cd 54 f0 11 cf fe af 3e a9 f3 5a 04 7a ..0.T.....>..Z.z
0440: b7 a7 41 29 3e 02 57 00 fb 46 49 3c 79 dd 4c a8 ..A)>.W..FI<y.L.
0450: e7 bf f8 07 a8 ab ca be d9 ac 17 e2 73 a7 99 86 ............s...
0460: 6a 1f 7a 7c fb 2f ee 19 77 42 96 a9 8b 3d eb dc j.z|./..wB...=..
0470: e6 a6 bb 5c 57 7d 2f f5 ed 48 0e 51 25 75 66 40 ...\W}/..H.Q%uf@
0480: 06 09 f1 d1 19 d2 07 c7 02 c8 bb 37 b0 eb 5a f7 ...........7..Z.
0490: 4b 15 94 53 c8 6e 35 76 7f 7c 56 60 25 63 2b 33 K..S.n5v|V`%c+3
04a0: c1 3f 10 0a c1 12 27 65 9e 84 9f 21 3c 7d 2f b7 .?....'e...!<}/.
04b0: 78 09 1b ab 14 44 e7 73 9c e7 6d 55 a2 89 41 6d x....D.s..mU..Am
04c0: 9f 32 02 3e 6e 7a 59 c8 06 76 83 96 c7 70 4a f3 .2.>nzY..v...pJ.
04d0: e5 85 e3 36 24 9a c6 66 9e 4a 6e 6d 8a 94 2d 87 ...6$..f.Jnm..-.
04e0: 95 4d a7 4f 7e 6f ec 36 42 1e 00 96 1d 3b 75 49 .M.O~o.6B....;uI
04f0: 49 12 2f 65 1a aa 53 2d 63 e2 ba 63 1a 59 a0 23 I./e..S-c..c.Y.#
0500: ae 1f f7 68 dc af 1e 43 54 e0 96 0b c4 9d a0 a0 ...h...CT.......
0510: 3d 88 6f 92 a9 99 31 c1 e4 24 9d 14 ef c6 66 00 =.o...1..$....f.
0520: 04 98 30 82 04 94 30 82 03 7c a0 03 02 01 02 02 ..0...0..|......
0530: 10 01 fd a3 eb 6e ca 75 c8 88 43 8b 72 4b cf bc .....n.u..C.rK..
0540: 91 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 .0...*.H........
0550: 30 61 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 0a1.0...U....US1
0560: 15 30 13 06 03 55 04 0a 13 0c 44 69 67 69 43 65 .0...U....DigiCe
0570: 72 74 20 49 6e 63 31 19 30 17 06 03 55 04 0b 13 rt Inc1.0...U...
0580: 10 77 77 77 2e 64 69 67 69 63 65 72 74 2e 63 6f .www.digicert.co
0590: 6d 31 20 30 1e 06 03 55 04 03 13 17 44 69 67 69 m1 0...U....Digi
05a0: 43 65 72 74 20 47 6c 6f 62 61 6c 20 52 6f 6f 74 Cert Global Root
05b0: 20 43 41 30 1e 17 0d 31 33 30 33 30 38 31 32 30  CA0...130308120
05c0: 30 30 30 5a 17 0d 32 33 30 33 30 38 31 32 30 30 000Z..2303081200
05d0: 30 30 5a 30 4d 31 0b 30 09 06 03 55 04 06 13 02 00Z0M1.0...U....
05e0: 55 53 31 15 30 13 06 03 55 04 0a 13 0c 44 69 67 US1.0...U....Dig
05f0: 69 43 65 72 74 20 49 6e 63 31 27 30 25 06 03 55 iCert Inc1'0%..U
0600: 04 03 13 1e 44 69 67 69 43 65 72 74 20 53 48 41 ....DigiCert SHA
0610: 32 20 53 65 63 75 72 65 20 53 65 72 76 65 72 20 2 Secure Server 
0620: 43 41 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d CA0.."0...*.H...
0630: 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 ..........0.....
0640: 01 01 00 dc ae 58 90 4d c1 c4 30 15 90 35 5b 6e .....X.M..0..5[n
0650: 3c 82 15 f5 2c 5c bd e3 db ff 71 43 fa 64 25 80 <...,\....qC.d%.
0660: d4 ee 18 a2 4d f0 66 d0 0a 73 6e 11 98 36 17 64 ....M.f..sn..6.d
0670: af 37 9d fd fa 41 84 af c7 af 8c fe 1a 73 4d cf .7...A.......sM.
0680: 33 97 90 a2 96 87 53 83 2b b9 a6 75 48 2d 1d 56 3.....S.+..uH-.V
0690: 37 7b da 31 32 1a d7 ac ab 06 f4 aa 5d 4b b7 47 7{.12.......]K.G
06a0: 46 dd 2a 93 c3 90 2e 79 80 80 ef 13 04 6a 14 3b F.*....y.....j.;
06b0: b5 9b 92 be c2 07 65 4e fc da fc ff 7a ae dc 5c ......eN....z..\
06c0: 7e 55 31 0c e8 39 07 a4 d7 be 2f d3 0b 6a d2 b1 ~U1..9..../..j..
06d0: df 5f fe 57 74 53 3b 35 80 dd ae 8e 44 98 b3 9f ._.WtS;5....D...
06e0: 0e d3 da e0 d7 f4 6b 29 ab 44 a7 4b 58 84 6d 92 ......k).D.KX.m.
06f0: 4b 81 c3 da 73 8b 12 97 48 90 04 45 75 1a dd 37 K...s...H..Eu..7
0700: 31 97 92 e8 cd 54 0d 3b e4 c1 3f 39 5e 2e b8 f3 1....T.;..?9^...
0710: 5c 7e 10 8e 86 41 00 8d 45 66 47 b0 a1 65 ce a0 \~...A..EfG..e..
0720: aa 29 09 4e f3 97 eb e8 2e ab 0f 72 a7 30 0e fa .).N.......r.0..
0730: c7 f4 fd 14 77 c3 a4 5b 28 57 c2 b3 f9 82 fd b7 ....w..[(W......
0740: 45 58 9b 02 03 01 00 01 a3 82 01 5a 30 82 01 56 EX.........Z0..V
0750: 30 12 06 03 55 1d 13 01 01 ff 04 08 30 06 01 01 0...U.......0...
0760: ff 02 01 00 30 0e 06 03 55 1d 0f 01 01 ff 04 04 ....0...U.......
0770: 03 02 01 86 30 34 06 08 2b 06 01 05 05 07 01 01 ....04..+.......
0780: 04 28 30 26 30 24 06 08 2b 06 01 05 05 07 30 01 .(0&0$..+.....0.
0790: 86 18 68 74 74 70 3a 2f 2f 6f 63 73 70 2e 64 69 ..http://ocsp.di
07a0: 67 69 63 65 72 74 2e 63 6f 6d 30 7b 06 03 55 1d gicert.com0{..U.
07b0: 1f 04 74 30 72 30 37 a0 35 a0 33 86 31 68 74 74 ..t0r07.5.3.1htt
07c0: 70 3a 2f 2f 63 72 6c 33 2e 64 69 67 69 63 65 72 p://crl3.digicer
07d0: 74 2e 63 6f 6d 2f 44 69 67 69 43 65 72 74 47 6c t.com/DigiCertGl
07e0: 6f 62 61 6c 52 6f 6f 74 43 41 2e 63 72 6c 30 37 obalRootCA.crl07
07f0: a0 35 a0 33 86 31 68 74 74 70 3a 2f 2f 63 72 6c .5.3.1http://crl
0800: 34 2e 64 69 67 69 63 65 72 74 2e 63 6f 6d 2f 44 4.digicert.com/D
0810: 69 67 69 43 65 72 74 47 6c 6f 62 61 6c 52 6f 6f igiCertGlobalRoo
0820: 74 43 41 2e 63 72 6c 30 3d 06 03 55 1d 20 04 36 tCA.crl0=..U. .6
0830: 30 34 30 32 06 04 55 1d 20 00 30 2a 30 28 06 08 0402..U. .0*0(..
0840: 2b 06 01 05 05 07 02 01 16 1c 68 74 74 70 73 3a +.........https:
0850: 2f 2f 77 77 77 2e 64 69 67 69 63 65 72 74 2e 63 //www.digicert.c
0860: 6f 6d 2f 43 50 53 30 1d 06 03 55 1d 0e 04 16 04 om/CPS0...U.....
0870: 14 0f 80 61 1c 82 31 61 d5 2f 28 e7 8d 46 38 b4 ...a..1a./(..F8.
0880: 2c e1 c6 d9 e2 30 1f 06 03 55 1d 23 04 18 30 16 ,....0...U.#..0.
0890: 80 14 03 de 50 35 56 d1 4c bb 66 f0 a3 e2 1b 1b ....P5V.L.f.....
08a0: c3 97 b2 3d d1 55 30 0d 06 09 2a 86 48 86 f7 0d ...=.U0...*.H...
08b0: 01 01 0b 05 00 03 82 01 01 00 23 3e df 4b d2 31 ..........#>.K.1
08c0: 42 a5 b6 7e 42 5c 1a 44 cc 69 d1 68 b4 5d 4b e0 B..~B\.D.i.h.]K.
08d0: 04 21 6c 4b e2 6d cc b1 e0 97 8f a6 53 09 cd aa .!lK.m......S...
08e0: 2a 65 e5 39 4f 1e 83 a5 6e 5c 98 a2 24 26 e6 fb *e.9O...n\..$&..
08f0: a1 ed 93 c7 2e 02 c6 4d 4a bf b0 42 df 78 da b3 .......MJ..B.x..
0900: a8 f9 6d ff 21 85 53 36 60 4c 76 ce ec 38 dc d6 ..m.!.S6`Lv..8..
0910: 51 80 f0 c5 d6 e5 d4 4d 27 64 ab 9b c7 3e 71 fb Q......M'd...>q.
0920: 48 97 b8 33 6d c9 13 07 ee 96 a2 1b 18 15 f6 5c H..3m..........\
0930: 4c 40 ed b3 c2 ec ff 71 c1 e3 47 ff d4 b9 00 b4 L@.....q..G.....
0940: 37 42 da 20 c9 ea 6e 8a ee 14 06 ae 7d a2 59 98 7B. ..n.....}.Y.
0950: 88 a8 1b 6f 2d f4 f2 c9 14 5f 26 cf 2c 8d 7e ed ...o-...._&.,.~.
0960: 37 c0 a9 d5 39 b9 82 bf 19 0c ea 34 af 00 21 68 7...9......4..!h
0970: f8 ad 73 e2 c9 32 da 38 25 0b 55 d3 9a 1d f0 68 ..s..2.8%.U....h
0980: 86 ed 2e 41 34 ef 7c a5 50 1d bf 3a f9 d3 c1 08 ...A4.|.P..:....
0990: 0c e6 ed 1e 8a 58 25 e4 b8 77 ad 2d 6e f5 52 dd .....X%..w.-n.R.
09a0: b4 74 8f ab 49 2e 9d 3b 93 34 28 1f 78 ce 94 ea .t..I..;.4(.x...
09b0: c7 bd d3 c9 6d 1c de 5c 32 f3                   ....m..\2.
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 03 01 4d                                  ....M
=> Info: TLSv1.2 (IN), TLS handshake, Server key exchange (12):
<= Recv SSL data, 0000000333 bytes (0x0000014d)
0000: 0c 00 01 49 03 00 17 41 04 16 05 04 29 c7 b1 00 ...I...A....)...
0010: 31 85 1e 4f 4d e6 70 a5 39 35 0e 0b e1 23 06 f6 1..OM.p.95...#..
0020: 14 fb c5 d4 52 b8 b0 bd c9 17 75 81 56 03 a7 c6 ....R.....u.V...
0030: 1f 47 45 ea 9f 79 6b 44 08 e5 c7 97 55 c7 54 be .GE..ykD....U.T.
0040: fe e6 73 58 5f 98 af 9c 08 06 01 01 00 7f 5b 82 ..sX_........[.
0050: c1 61 15 44 33 de c6 9b a1 0c 48 bc 89 87 a2 ea .a.D3.....H.....
0060: 4a 7d b2 ea 4d 59 a5 f2 94 35 ee 72 ff 7a 90 63 J}..MY...5.r.z.c
0070: ad 03 68 bf f7 f0 dc 54 82 98 00 57 b4 2b 73 53 ..h....T...W.+sS
0080: 95 f2 e7 07 9c e8 f3 90 8d 94 b5 ef 23 e4 d2 61 ............#..a
0090: a5 80 d8 6d 72 c5 c2 41 b4 2f b6 8e 54 ec 28 84 ...mr..A./..T.(.
00a0: 88 1e 1c 4f 0a cf 95 73 e7 6f 7c fb de 9c 3b e9 ...O...s.o|...;.
00b0: a9 81 ce c9 f2 70 c8 cc db 84 bf 5f 1a a6 de c7 .....p....._....
00c0: c1 c4 f8 13 4b 81 91 7c f0 93 52 fa c4 ba f0 bb ....K..|..R.....
00d0: 66 44 2c c6 a9 46 6c ad 5a 90 b6 18 5e 8e 6e 7e fD,..Fl.Z...^.n~
00e0: 4e dd 44 8b 33 51 50 ab e8 75 e1 a7 61 b0 3d 61 N.D.3QP..u..a.=a
00f0: 8b a7 cf 2b b3 36 93 4f 62 41 0b 47 50 75 b2 cd ...+.6.ObA.GPu..
0100: de dd d1 da b4 37 72 17 81 d9 1f 01 34 42 37 02 .....7r.....4B7.
0110: 78 ee 2e 3d 56 13 2f 15 59 9c 69 f8 b1 f2 1f 2f x..=V./.Y.i..../
0120: e8 29 af 07 0c e2 f4 13 ec 0c 48 49 e7 0a b6 c0 .)........HI....
0130: 5b 84 2c 38 c2 53 73 b6 45 16 27 ed 5a c6 53 1c [.,8.Ss.E.'.Z.S.
0140: 5c 4b e7 30 67 5a 6e 9f 3b c0 97 4a 36          \K.0gZn.;..J6
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 03 00 04                                  .....
=> Info: TLSv1.2 (IN), TLS handshake, Server finished (14):
<= Recv SSL data, 0000000004 bytes (0x00000004)
0000: 0e 00 00 00                                     ....
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 03 00 46                                  ....F
=> Info: TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
=> Send SSL data, 0000000070 bytes (0x00000046)
0000: 10 00 00 42 41 04 89 94 43 e3 c2 5e ef 60 0c 7f ...BA...C..^.`.
0010: 99 7a 81 44 7c 92 c2 8e 2f af 78 ce e2 8c 79 2d .z.D|.../.x...y-
0020: 1b b4 fa 17 1d d3 6b b1 67 c0 12 28 a0 c7 3e 19 ......k.g..(..>.
0030: 63 41 38 09 3a 04 fe ee bc 87 c7 19 22 97 6d 7e cA8.:.......".m~
0040: 33 95 de f1 6e 00                               3...n.
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: 14 03 03 00 01                                  .....
=> Info: TLSv1.2 (OUT), TLS change cipher, Client hello (1):
=> Send SSL data, 0000000001 bytes (0x00000001)
0000: 01                                              .
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 03 00 3c                                  ....<
=> Info: TLSv1.2 (OUT), TLS handshake, Unknown (67):
=> Send SSL data, 0000000036 bytes (0x00000024)
0000: 43 00 00 20 08 68 74 74 70 2f 31 2e 31 16 00 00 C.. .http/1.1...
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00                                     ....
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: 16 03 03 00 28                                  ....(
=> Info: TLSv1.2 (OUT), TLS handshake, Finished (20):
=> Send SSL data, 0000000016 bytes (0x00000010)
0000: 14 00 00 0c af 37 8d 6c a9 7b 4b 7d de 2a fa 44 .....7.l.{K}.*.D

REMAINING: 1
=> Info: Operation timed out after 304689 milliseconds with 0 out of 0 bytes received
=> Info: multi_done
=> Info: Closing connection 0
=> Info: The cache now contains 0 members
timer_cb: 
sock_cb: socket=7, what=4, sockp=0xc910c0
socket callback: s=7 e=0xc74fc8 what=REMOVE 

remsock: 
close_socket : 7
REMAINING: 0
DONE: https://api.rollbar.com/api/1/item/ => (28) Operation timed out after 304689 milliseconds with 0 out of 0 bytes received

@bagder
Copy link
Member

bagder commented Dec 27, 2016

Based on your output, the commit I mentioned changed the behavior at least. When it times out, it seems it waits for incoming data. Maybe it should actually send data at this point? It is curious that we've not seen this problem before though. Is there any way we can reproduce this problem in our ends?

@sancane
Copy link
Author

sancane commented Dec 27, 2016

Yes, you can try it using the sample code I attached in a previous message. It's quite strange because it only happens with the multi_socket interface. If I use the easy API it works perfectly.

@bagder
Copy link
Member

bagder commented Dec 27, 2016

But is there a public URL or set of URLs you try to fetch with that code that trigger this issue?

A generally pretty convenient way to debug the multi_socket API is to build a debug enabled curl and run the command line with --test-event, as that then uses the event based API internally instead of the regular one.

@bagder bagder changed the title Post request sometimes hangs when ssl is used. Post request sometimes hangs when ssl is used with multi_socket Dec 27, 2016
@jay
Copy link
Member

jay commented Dec 27, 2016

I can reproduce this in Windows using boost 1.6.3 and asiohiper without any modifications to the example. I'm not sure what it is yet. When I connect to an https website using the asiohiper example it ends prematurely. I can see in the debugger the boost event loop is returning prematurely for some reason. Can you try asiohiper unmodified using an https url?

@bagder
Copy link
Member

bagder commented Dec 27, 2016

@jay, can you try the --test-event approach with regular curl on such a HTTPS URL? For me, the downside with using asiohiper (or any other hiper example) for debugging an issue is that it relies on the example code being written to use the event library correctly and I know next to nothing about asio to even begin to know if that is true or not. So if we can start with verifying that libcurl seems to tell the application about the right socket and the right "actions" to wait for, then we can debug the example with more confidence. If not even plain curl behaves correctly, then we know it is a libcurl issue.

@jay
Copy link
Member

jay commented Dec 28, 2016

--test-event seems to work fine, so it's probably something to do with the way the example is written. Nothing stands out. I've never used boost asio either.

@sancane
Copy link
Author

sancane commented Dec 28, 2016

Hi guys,
I modified the ghiper.c example to make POSTs using https and multi_socket interface and worked fine every time. No matter what server is provided by the load balancer. So it might be something regarding how the example is written.
Something weird why it is working with http and not with tls/ssl.

@Aulddays
Copy link
Contributor

Aulddays commented Jan 7, 2017

Hi @sancane, I happen to be working on libcurl with asio and found some possible errors. However, I ran the code you provided and the behavior is a little different than yours. On the other hand, you did mention that the ghiper.c version is working.
So could you post your final (not working) asio version and the working ghiper version code, and may be I can improve the asio version.

@sancane
Copy link
Author

sancane commented Jan 7, 2017

Hi, here you have my modified version of the ghiper.c. It's neraly the same code expect I removed the fifo management and added the url to make the POST using htttps.

ghiper.txt

@Aulddays
Copy link
Contributor

Aulddays commented Jan 8, 2017

@sancane I noticed that the behavior I encountered was similar to the one you posted before @bagder proposed a7b38c9. So I switched libcurl to master and try again, and it seems to be running correctly row.

Maybe you'd like to have a try, just merge #1192 into the asio code.

The program log looks like this on my env now:

run.log.txt

@sancane
Copy link
Author

sancane commented Jan 9, 2017

@Aulddays It seems that your patch fixes the problem. Great job!

@jay
Copy link
Member

jay commented Jan 9, 2017

Thanks guys!

@jay jay closed this as completed Jan 9, 2017
@lock lock bot locked as resolved and limited conversation to collaborators May 7, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Development

No branches or pull requests

5 participants