Subject: Re: bug#23225: 25.1.50; url-retrieve-synchronously having trouble with some https URLs

From: Chunyang Xu <[email-masked]>
Date: Sat, 11 Jun 2016 20:54:31 +0800

On Sat, Jun 11, 2016 at 8:47 PM, Noam Postavsky
<[email-masked]> wrote:
> On Sat, Jun 11, 2016 at 12:00 AM, Chunyang Xu <[email-masked]> wrote:
>> I still have this problem on latest master branch, unlike this report,
>> ALL https urls I tried failed.
>
> Do you get any interesting error messages after applying Tao Fang's patch?

(display-buffer
 (url-retrieve-synchronously "https://example.com"))

Debugger entered--Lisp error: (error connection-failed "deleted
" :host "example.com" :service 443)
  signal(error (connection-failed "deleted\n" :host "example.com" :service 443))
  (progn (signal (car err) (cdr err)))
  (if (and err (not (eq (car (cdr err)) (quote http)))) (progn (signal
(car err) (cdr err))))
  (if (null asynch-buffer) nil (let ((proc (get-buffer-process
asynch-buffer))) (while (and (not retrieval-done) (or (not timeout) (<
(float-time (time-subtract ... start-time)) timeout))) (url-debug
(quote retrieval) "Spinning in url-retrieve-synchronously: %S (%S)"
retrieval-done asynch-buffer) (if (buffer-local-value (quote
url-redirect-buffer) asynch-buffer) (setq proc (get-buffer-process
(setq asynch-buffer (buffer-local-value ... asynch-buffer)))) (if (and
proc (memq (process-status proc) (quote ...)) (eq proc (or ... proc)))
(progn (delete-process proc) (setq retrieval-done t))) (if (or
(condition-case nil (let ... ...) (quit ... ...)) (null proc)) nil (if
quit-flag (progn (delete-process proc))) (setq proc (and (not
quit-flag) (get-buffer-process asynch-buffer))))))) (if (and err (not
(eq (car (cdr err)) (quote http)))) (progn (signal (car err) (cdr
err)))) asynch-buffer)
  (let ((retrieval-done nil) (start-time (current-time))
(asynch-buffer nil) err) (setq asynch-buffer (url-retrieve url
(function (lambda (status &rest ignored) (url-debug (quote retrieval)
"Synchronous fetching done (%S)" (current-buffer)) (setq
retrieval-done t asynch-buffer (current-buffer) err (plist-get status
:error)))) nil silent inhibit-cookies)) (if (null asynch-buffer) nil
(let ((proc (get-buffer-process asynch-buffer))) (while (and (not
retrieval-done) (or (not timeout) (< (float-time ...) timeout)))
(url-debug (quote retrieval) "Spinning in url-retrieve-synchronously:
%S (%S)" retrieval-done asynch-buffer) (if (buffer-local-value (quote
url-redirect-buffer) asynch-buffer) (setq proc (get-buffer-process
(setq asynch-buffer ...))) (if (and proc (memq ... ...) (eq proc ...))
(progn (delete-process proc) (setq retrieval-done t))) (if (or
(condition-case nil ... ...) (null proc)) nil (if quit-flag (progn
...)) (setq proc (and ... ...)))))) (if (and err (not (eq (car (cdr
err)) (quote http)))) (progn (signal (car err) (cdr err))))
asynch-buffer))
  url-retrieve-synchronously("https://example.com")
  (display-buffer (url-retrieve-synchronously "https://example.com"))
  eval((display-buffer (url-retrieve-synchronously "https://example.com")) nil)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)

> http://debbugs.gnu.org/cgi/bugreport.cgi?filename=0001-url-retrieve-synchronously-signal-error-when-fail.patch;bug=23225;att=1;msg=11