If your error codes are the same as on my platform (I'm on Windows) 70014 stands for APR_EOF. In that case it shouldn't loop further.
The logs you provide don't have anything else that stands out for me. If you can post the full log on some url I'm willing to check if I see something else. You might want to check the 1.3.x branch as it has some further fixes we hope to release 'soon'. Trunk is a bit further away from release, but contains even more ssl code cleanups. Test input on that codebase is very welcome. (Please ignore the current HTTP/2 work for now. That is currently unexposed in the higher layers) Bert Sent from Mail for Windows 10 From: Jeff Kaufman Sent: donderdag 22 oktober 2015 19:23 To: dev@serf.apache.org Cc: Jeffrey Crowell;Maksim Orlovich Subject: Spin when fetching resources over SSL The mod_pagespeed project uses serf for fetching, and I'm currently updating our dependency from 1.1.0 to the latest stable, 1.3.8. It works fine for fetching http, but when I try to fetch anything over https it spins in ssl_buckets.c. I turned on verbose logging in serf_private and it seems to be looping in: ssl_buckets.c: ssl_decrypt: begin 8000 ssl_buckets.c: bio_bucket_read called for 5 bytes ssl_buckets.c: bio_bucket_read waiting: (8 1 9) ssl_buckets.c: bio_bucket_read received 0 bytes (70014) ssl_buckets.c: SSL_connect:error in SSLv3 read server session ticket A ssl_buckets.c: ssl_decrypt: 11 0 9 Have there been any changes to the API since 1.1.0, so that we need to be doing something different to set up ssl with serf? Here's what it prints before going into the spin: outgoing.c: created connection 0x3d6c8638 outgoing.c: created socket for conn 0x3d6c8638, status 0 [l:\200\305\337<\212^?:51912 r:2607:f8b0:4005:801::2004:443] outgoing.c: connec\ ted socket for conn 0x3d6c8638, status 115 ssl_buckets.c: ssl_encrypt: begin 8000 ssl_buckets.c: ssl_encrypt: bucket read 96 bytes; status 11 ssl_buckets.c: --- GET / HTTP/1.1^M Host: www.google.com^M User-Agent: Serf/1.3.8 mod_pagespeed/99,99,99,99-99999^M ^M -(96)- ssl_buckets.c: SSL_connect:before connect initialization ssl_buckets.c: bio_bucket_write called for 190 bytes ssl_buckets.c: SSL_connect:SSLv3 write client hello A ssl_buckets.c: bio_bucket_read called for 5 bytes ssl_buckets.c: bio_bucket_read received 0 bytes (70014) ssl_buckets.c: SSL_connect:error in SSLv3 read server hello A ssl_buckets.c: ssl_encrypt: SSL write: -1 ssl_buckets.c: ssl_encrypt: SSL write error: 2 ssl_buckets.c: ssl_encrypt: SSL write error: 120103 0 ssl_buckets.c: ssl_encrypt read agg: 120103 70014 11 190 ssl_buckets.c: ssl_encrypt finished: 120103 190 (8 1 9) [l::51912 r:2607:f8b0:4005:801::2004:443] outgoing.c: --- socket_sendv: ^V^C^A-(190)- ssl_buckets.c: ssl_decrypt: begin 8000 ssl_buckets.c: bio_bucket_read called for 5 bytes ssl_buckets.c: bio_bucket_read waiting: (8 1 9) ssl_buckets.c: bio_bucket_read received 0 bytes (70014) ssl_buckets.c: SSL_connect:error in SSLv3 read server hello A [l: ^Q:51912 r:2607:f8b0:4005:801::2004:443] socket_buckets.c: --- socket_recv: ^V^C^C -(3505)- ssl_buckets.c: ssl_decrypt: read 3505 bytes (8000); status: 0 ssl_buckets.c: bio_bucket_read called for 5 bytes ssl_buckets.c: bio_bucket_read waiting: (8 1 9) ssl_buckets.c: bio_bucket_read received 5 bytes (0) ssl_buckets.c: bio_bucket_read called for 67 bytes ssl_buckets.c: bio_bucket_read received 67 bytes (0) ssl_buckets.c: SSL_connect:SSLv3 read server hello A ssl_buckets.c: bio_bucket_read called for 5 bytes ssl_buckets.c: bio_bucket_read received 5 bytes (0) ssl_buckets.c: bio_bucket_read called for 3081 bytes ssl_buckets.c: bio_bucket_read received 3081 bytes (0) ssl_buckets.c: SSL_connect:SSLv3 read server certificate A ssl_buckets.c: SSL_connect:unknown state ssl_buckets.c: bio_bucket_read called for 5 bytes ssl_buckets.c: bio_bucket_read received 5 bytes (0) ssl_buckets.c: bio_bucket_read called for 333 bytes ssl_buckets.c: bio_bucket_read received 333 bytes (0) ssl_buckets.c: SSL_connect:SSLv3 read server key exchange A ssl_buckets.c: bio_bucket_read called for 5 bytes ssl_buckets.c: bio_bucket_read received 5 bytes (0) ssl_buckets.c: bio_bucket_read called for 4 bytes ssl_buckets.c: bio_bucket_read received 4 bytes (70014) ssl_buckets.c: SSL_connect:SSLv3 read server done A ssl_buckets.c: SSL_connect:SSLv3 write client key exchange A ssl_buckets.c: SSL_connect:SSLv3 write change cipher spec A ssl_buckets.c: SSL_connect:SSLv3 write finished A ssl_buckets.c: bio_bucket_write called for 126 bytes ssl_buckets.c: bio_bucket_write waiting: (0 0 0) ssl_buckets.c: SSL_connect:SSLv3 flush data ssl_buckets.c: bio_bucket_read called for 5 bytes ssl_buckets.c: bio_bucket_read received 0 bytes (70014) ssl_buckets.c: SSL_connect:error in SSLv3 read server session ticket A ssl_buckets.c: ssl_decrypt: 11 0 9 [now the block I pulled out above repeats forever]