orthecreedence/drakma-async

Requests can lock/error

nightshade427 opened this issue · 4 comments

This breaks with HTTP connection EOF: -1: HTTP stream client peer closed connection.

(as:with-event-loop (:catch-app-errors t)                                                                                                                                        
           (asf:multiple-future-bind (body status headers ruri)                                                                                                                           
               (drakma-async:http-request "https://auth.sovee.com/" :method :head :additional-headers '(("Connection" . "close")))                                                        
             (format t "~s ~s ~s ~s" body status headers ruri)))

But this works fine

 (as:with-event-loop (:catch-app-errors t)                                                                                                                                        
           (asf:multiple-future-bind (body status headers ruri)                                                                                                                           
               (drakma:http-request "https://auth.sovee.com/" :method :head :additional-headers '(("Connection" . "close")))                                                              
             (format t "~s ~s ~s ~s" body status headers ruri)))

Acutally this fails as well and locks up, so I dont think it is limited to HEAD. Maybe something with the redirects not handled quite right?

(as:with-event-loop (:catch-app-errors t)                                                                                                                                        
           (asf:multiple-future-bind (body status headers ruri)                                                                                                                           
               (drakma-async:http-request "https://auth.sovee.com/")                                                                                                                      
             (format t "~s ~s ~s ~s" body status headers ruri)))

But this works

(as:with-event-loop (:catch-app-errors t)                                                                                                                                        
           (asf:multiple-future-bind (body status headers ruri)                                                                                                                           
               (drakma:http-request "https://auth.sovee.com/")                                                                                                                            
             (format t "~s ~s ~s ~s" body status headers ruri)))

any ideas?

Sorry it's taken me so long to get to this. Is it breaking for you still, because it seems to be working for me:

NIL 200 ((:CACHE-CONTROL . "max-age=0, private, must-revalidate") (:CONTENT-TYPE . "text/html; charset=utf-8") (:ETAG . "\"38f3b9b348287333560127bbaa42d6bb\"") (:SERVER . "nginx/1.2.2 + Phusion Passenger 3.0.14 (mod_rails/mod_rack)") (:SET-COOKIE . "request_method=HEAD; path=/,_dashboard_session=N3QxbWNUajBoRFFEcVVQaEpScVY5R0NqUkVHa1VxRnZYRW9BTUxPZVlwWUVGWnE5NWpPR1JoOWZZWHRWSWNVNFFxTnNSZWF3NjVqNE90Y2dzd1diRmh4VkVFbmh1TE9qTnJIZk1OK0d6cm93QkgrSlFYdW41R1owd2xwMW54aTN3bXpHMHM1T050MkxZRkJXOS9EYUJKSUMvZytVcDNJUGp2UkxsQWxWNUJ6WURqd1Z5YWw1TWx2R0JJZElaNXpRLS1ERi9SV1daVXZrSlR5L3NzS3lML2hBPT0%3D--f6aca66cc1eb80dce2b71ffad5781e8168741f2b; path=/; HttpOnly") (:STATUS . "200") (:X-CONTENT-TYPE-OPTIONS . "nosniff") (:X-FRAME-OPTIONS . "SAMEORIGIN") (:X-POWERED-BY . "Phusion Passenger (mod_rails/mod_rack) 3.0.14") (:X-REQUEST-ID . "c66e1d87-2335-4e32-bd21-72ec7a61d991") (:X-RUNTIME . "0.008108") (:X-UA-COMPATIBLE . "chrome=1") (:X-XSS-PROTECTION . "1; mode=block") (:CONNECTION . "Close")) #<URI http://auth.sovee.com/users/sign_in>

nope magically seems fine now .. haha