unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#71295: 29.3; url-retrieve-synchronously does not timeout if initial connection hangs
@ 2024-05-31 16:21 Aaron Zeng
  2024-06-01 19:38 ` Eli Zaretskii
  0 siblings, 1 reply; 11+ messages in thread
From: Aaron Zeng @ 2024-05-31 16:21 UTC (permalink / raw)
  To: 71295; +Cc: Aaron Zeng, azeng

1. emacs -Q
2. Evaluate the following in the *scratch* buffer:

   (url-retrieve-synchronously "http://google.com:81" nil nil 1)

This does not time out in one second like the TIMEOUT argument
specifies.  Instead, in my observations it hangs for at least several
minutes.

This attempt also doesn't work:


3. (with-timeout (1) (url-retrieve-synchronously "http://google.com:81"))

As a consequence of this, Spacemacs's attempted timeout during Emacs
startup can take ages if one of the package archives is temporarily
unreachable, for example due to a network firewall that is enabled at
my site.  Spacemacs attempts to timeout after only 5 seconds, but
instead it takes minutes.


In GNU Emacs 29.3 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
version 1.18.0, Xaw3d scroll bars)
Windowing system distributor 'HC-Consult', version 11.0.12014000
System Description: NixOS 23.11 (Tapir)

Configured using:
'configure
--prefix=/nix/store/8r6lgsfyak1mr2gg3ka6zkffxswkj3wv-emacs-29.3
--disable-build-details --with-modules --with-x-toolkit=lucid
--with-cairo --with-xft --with-compress-install
--with-toolkit-scroll-bars --with-native-compilation
--without-imagemagick --with-mailutils --without-small-ja-dic
--with-tree-sitter --with-xinput2 --without-xwidgets --with-dbus
--with-selinux'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP
NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE XIM XINPUT2 XPM
LUCID ZLIB

Important settings:
  value of $EMACSLOADPATH: 
  value of $EMACSNATIVELOADPATH: 
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Org

Minor modes in effect:
  windmove-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  evil-org-mode: t
  org-appear-mode: t
  org-modern-mode: t
  org-superstar-mode: t
  org-indent-mode: t
  pupo-mode: t
  purpose-mode: t
  evil-escape-mode: t
  global-display-line-numbers-mode: t
  global-vi-tilde-fringe-mode: t
  vi-tilde-fringe-mode: t
  recentf-mode: t
  eval-sexp-fu-flash-mode: t
  show-smartparens-global-mode: t
  show-smartparens-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  indent-guide-global-mode: t
  indent-guide-mode: t
  dired-async-mode: t
  winner-mode: t
  flyspell-mode: t
  flycheck-pos-tip-mode: t
  global-flycheck-mode: t
  global-spacemacs-whitespace-cleanup-mode: t
  spacemacs-whitespace-cleanup-mode: t
  winum-mode: t
  volatile-highlights-mode: t
  vertico-mode: t
  unkillable-scratch: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  global-term-cursor-mode: t
  term-cursor-mode: t
  save-place-mode: t
  savehist-mode: t
  persistent-scratch-autosave-mode: t
  pdf-occur-global-minor-mode: t
  org-wild-notifier-mode: t
  mode-line-bell-mode: t
  marginalia-mode: t
  global-ligature-mode: t
  ligature-mode: t
  Info-breadcrumbs-in-mode-line-mode: t
  global-hl-todo-mode: t
  global-fasd-mode: t
  global-evil-quickscope-always-mode: t
  evil-quickscope-always-mode: t
  global-anzu-mode: t
  anzu-mode: t
  envrc-global-mode: t
  envrc-mode: t
  editorconfig-mode: t
  global-column-enforce-mode: t
  clean-aindent-mode: t
  projectile-mode: t
  hybrid-mode: t
  which-key-mode: t
  spacemacs-leader-override-mode: t
  global-spacemacs-leader-override-mode: t
  company-mode: t
  global-corfu-mode: t
  corfu-mode: t
  csv-field-index-mode: t
  global-git-commit-mode: t
  shell-dirtrack-mode: t
  server-mode: t
  evil-mode: t
  evil-local-mode: t
  global-hl-line-mode: t
  xterm-mouse-mode: t
  global-auto-revert-mode: t
  which-function-mode: t
  minibuffer-depth-indicate-mode: t
  midnight-mode: t
  display-time-mode: t
  override-global-mode: t
  ido-vertical-mode: t
  global-page-break-lines-mode: t
  page-break-lines-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: #[128 \304\300\301\x03#\207 [yas--auto-fill org-auto-fill-function :around nil apply] 5 advice]
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/aaron/.emacs.d/elpa/29.3/develop/load-env-vars-20180511.2210/load-env-vars hides /home/aaron/.emacs.d/core/libs/forks/load-env-vars
/home/aaron/.emacs.d/elpa/29.3/develop/spinner-1.7.4/spinner hides /home/aaron/.emacs.d/core/libs/spinner
/nix/store/gxi8whqw0hp0h1c83hh5l171qzk98n5g-emacs-packages-deps/share/emacs/site-lisp/site-start hides /nix/store/8r6lgsfyak1mr2gg3ka6zkffxswkj3wv-emacs-29.3/share/emacs/site-lisp/site-start
~/.spacemacs.d/custom hides /nix/store/8r6lgsfyak1mr2gg3ka6zkffxswkj3wv-emacs-29.3/share/emacs/29.3/lisp/custom
/home/aaron/.emacs.d/elpa/29.3/develop/transient-20240525.1118/transient hides /nix/store/8r6lgsfyak1mr2gg3ka6zkffxswkj3wv-emacs-29.3/share/emacs/29.3/lisp/transient
/home/aaron/.emacs.d/elpa/29.3/develop/xref-1.7.0/xref hides /nix/store/8r6lgsfyak1mr2gg3ka6zkffxswkj3wv-emacs-29.3/share/emacs/29.3/lisp/progmodes/xref
/home/aaron/.emacs.d/elpa/29.3/develop/hierarchy-20190425.842/hierarchy hides /nix/store/8r6lgsfyak1mr2gg3ka6zkffxswkj3wv-emacs-29.3/share/emacs/29.3/lisp/emacs-lisp/hierarchy
/nix/store/gxi8whqw0hp0h1c83hh5l171qzk98n5g-emacs-packages-deps/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist hides /nix/store/8r6lgsfyak1mr2gg3ka6zkffxswkj3wv-emacs-29.3/share/emacs/29.3/lisp/emacs-lisp/let-alist

Features:
(ahk-mode calc-fin calc-arith calccomp calc-undo magit-patch
magit-subtree magit-gitignore magit-ediff helm-make ob-C ob-js ob-perl
ob-python ob-scheme ob-sql ob-shell timezone orgit-forge orgit
gravatar dns evil-nerd-commenter evil-nerd-commenter-operator
evil-nerd-commenter-sdk smartparens-html sgml-mode facemenu embark-org
embark-consult embark ffap dumb-jump popup lsp-zig lsp-yang lsp-yaml
lsp-xml lsp-wgsl lsp-volar lsp-vimscript lsp-vhdl lsp-vetur
lsp-verilog lsp-vala lsp-v lsp-typeprof lsp-ttcn3 lsp-trunk lsp-toml
lsp-tilt lsp-tex lsp-terraform lsp-svelte lsp-steep lsp-sqls lsp-sql
lsp-sorbet lsp-solidity lsp-solargraph lsp-semgrep lsp-rust
lsp-ruff-lsp lsp-ruby-syntax-tree lsp-ruby-lsp lsp-rubocop lsp-rf
lsp-remark lsp-racket lsp-r lsp-qml lsp-pyright lsp-pylsp json-mode
json-snatcher smartparens-javascript js c-ts-common shell-pop
semantic/ia semantic/analyze/refs semantic/db-find semantic/db-ref
semantic/senator semantic/decorate pulse semantic/analyze
semantic/sort semantic/scope semantic/analyze/fcn semantic/db
semantic/ctxt semantic/format semantic/tag-ls semantic/find
rustic-flycheck rustic-spellcheck rustic-expand rustic-lsp
rustic-playground rustic-rustfix rustic-racer rustic-babel
rustic-rustfmt rustic-comint rustic-clippy rustic-doc rustic-popup
rustic-cargo rustic-compile xterm-color rustic-interaction rustic
smartparens-rust rust-utils rust-prog-mode rust-mode rust-common
rust-rustfmt org-projectile org-project-capture
org-project-capture-backend org-category-capture org-capture
dired-quick-sort ls-lisp calc-misc calc-yank calc-alg calc-ext
calc-aent calc-menu tabify evil-ledger ledger-mode ledger-check
ledger-texi ledger-test ledger-sort ledger-report ledger-reconcile
ledger-occur ledger-fonts ledger-fontify ledger-state ledger-complete
ledger-schedule ledger-xact ledger-post ledger-exec ledger-init
ledger-navigate ledger-context ledger-commodities ledger-regex
vertico-directory mailalias smtpmail textsec uni-scripts idna-mapping
ucs-normalize uni-confusable textsec-check auto-highlight-symbol
lsp-pyls lsp-pwsh lsp-purescript lsp-pls lsp-php lsp-perlnavigator
lsp-perl lsp-openscad lsp-ocaml lsp-nushell lsp-nix lsp-nim lsp-nginx
lsp-move lsp-mojo lsp-mint lsp-meson lsp-mdx lsp-marksman lsp-markdown
lsp-magik lsp-lua lsp-lisp lsp-kotlin lsp-json lsp-jq lsp-idris
lsp-haxe lsp-hack lsp-groovy lsp-graphql lsp-golangci-lint lsp-glsl
lsp-gleam lsp-gdscript lsp-fsharp lsp-fortran lsp-eslint lsp-erlang
lsp-emmet lsp-elm lsp-elixir lsp-dockerfile lsp-dhall lsp-d lsp-cypher
lsp-cucumber lsp-css lsp-csharp lsp-crystal lsp-credo lsp-cobol
lsp-cmake lsp-clojure lsp-clangd lsp-bufls lsp-beancount lsp-bash
lsp-awk lsp-autotools lsp-astro lsp-asm lsp-ansible lsp-angular
lsp-ada lsp-actionscript ccls ccls-member-hierarchy
ccls-inheritance-hierarchy ccls-call-hierarchy ccls-tree
ccls-code-lens ccls-semantic-highlight ccls-common helpful cc-langs
trace info-look elisp-refs windmove shadow mail-extr emacsbug
term/xterm xterm cal-move hippie-exp evil-surround mule-util
nix-format ocamlformat whitespace consult-org misearch multi-isearch
magit-extras cal-iso emacsql-sqlite-builtin
evil-collection-magit-todos magit-todos pcre2el rxt re-builder
face-remap macrostep-c cmacexp macrostep company-c-headers
smartparens-c cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs company-shell flycheck-bashate
shfmt reformatter org-eldoc evil-org org-appear org-download
org-modern org-superstar toc-org org-indent image-file image-converter
oc-basic zoom-frm frame-cmds frame-fns avoid spacemacs-purpose-popwin
window-purpose-x imenu-list window-purpose window-purpose-fixes
window-purpose-prefix-overload window-purpose-switch
window-purpose-layout window-purpose-core evil-escape
display-line-numbers vi-tilde-fringe persistent-soft list-utils pcache
cl font-utils recentf company-capf overseer pkg-info epl auto-compile
elisp-slime-nav flycheck-elsa flycheck-package package-lint
eval-sexp-fu evil-lisp-state highlight-numbers parent-mode
highlight-parentheses hideshow rainbow-delimiters smartparens-config
smartparens-ruby smartparens-org smartparens-python
smartparens-markdown smartparens-text smartparens loadhist
yasnippet-snippets yasnippet ol-man org-checklist ol-eshell org-tempo
ol-info org-habit ol-docview ol-bibtex bibtex indent-guide
fancy-battery battery dired-async dired-aux cus-start bcc32-abbrev
winner company-files company-keywords company-etags company-gtags
company-dabbrev-code company-semantic flyspell
window-purpose-configuration window-purpose-utils org-clock
flycheck-pos-tip pos-tip flycheck-ledger flycheck evil-matchit
evil-matchit-evil-setup evil-matchit-sdk spacemacs-whitespace-cleanup
ws-butler winum volatile-highlights vertico-repeat vertico-quick
vertico unkillable-scratch unicode-fonts undo-tree queue term-cursor
symbol-overlay string-inflection saveplace savehist popwin
persistent-scratch pdf-occur pdf-isearch pdf-misc pdf-loader diary-lib
diary-loaddefs org-wild-notifier org-duration async alert log4e
notifications dbus gntp org-rich-yank orderless mode-line-bell
marginalia git-rebase ligature keycast info+ hl-todo fasd
evil-unimpaired evil-textobj-line evil-quickscope evil-easymotion
evil-collection-simple evil-collection-replace evil-collection-eww
evil-collection-ediff evil-collection-dired evil-collection-magit
evil-collection-forge evil-collection-buff-menu evil-anzu anzu
eshell-z em-dirs esh-var em-term em-smart envrc inheritenv
editorconfig editorconfig-core editorconfig-core-handle
editorconfig-fnmatch drag-stuff dired-x consult-imenu
column-enforce-mode clean-aindent-mode bcc32-org bcc32-org-lint
org-lint ox-texinfo ox-org ox-latex ox-icalendar ox-gfm ox-md ox-html
table ox-ascii ox-publish ox org-attach projectile ibuf-ext org-agenda
org-element org-persist org-id avl-tree org-refile
zenburn-theme-autoloads yasnippet-snippets-autoloads yapfify-autoloads
yaml-mode-autoloads ws-butler-autoloads writeroom-mode-autoloads
visual-fill-column-autoloads winum-autoloads window-purpose-autoloads
imenu-list-autoloads wgrep-autoloads web-mode-autoloads
web-beautify-autoloads volatile-highlights-autoloads
vim-powerline-autoloads vi-tilde-fringe-autoloads vertico-autoloads
uuidgen-autoloads utop-autoloads unkillable-scratch-autoloads
unicode-fonts-autoloads ucs-utils-autoloads font-utils-autoloads
persistent-soft-autoloads pcache-autoloads undo-tree-autoloads
queue-autoloads typescript-mode-autoloads tuareg-autoloads
caml-autoloads toml-mode-autoloads toc-org-autoloads tide-autoloads
terminal-here-autoloads term-cursor-autoloads tao-theme-autoloads
tagedit-autoloads symon-autoloads symbol-overlay-autoloads
string-inflection-autoloads string-edit-at-point-autoloads
sql-indent-autoloads spotify-autoloads sphinx-doc-autoloads
spacemacs-whitespace-cleanup-autoloads
spacemacs-purpose-popwin-autoloads space-doc-autoloads
solarized-theme-autoloads smeargle-autoloads slim-mode-autoloads
shfmt-autoloads reformatter-autoloads shell-pop-autoloads
scss-mode-autoloads sass-mode-autoloads rustic-autoloads
xterm-color-autoloads rust-mode-autoloads ron-mode-autoloads
reveal-in-osx-finder-autoloads restart-emacs-autoloads
rainbow-delimiters-autoloads quickrun-autoloads pytest-autoloads
pylookup-autoloads pyenv-mode-autoloads pydoc-autoloads
py-isort-autoloads pug-mode-autoloads prettier-js-autoloads
posframe-autoloads popwin-autoloads poetry-autoloads
pocket-reader-autoloads org-web-tools-autoloads esxml-autoloads
rainbow-identifiers-autoloads ov-autoloads pocket-lib-autoloads
plz-autoloads peg-autoloads kv-autoloads pippel-autoloads
pipenv-autoloads load-env-vars-autoloads pyvenv-autoloads
pip-requirements-autoloads persistent-scratch-autoloads
pdf-tools-autoloads tablist-autoloads password-generator-autoloads
paradox-autoloads ox-gfm-autoloads overseer-autoloads
osx-trash-autoloads osx-clipboard-autoloads orgit-forge-autoloads
orgit-autoloads org-wild-notifier-autoloads org-superstar-autoloads
org-rich-yank-autoloads org-projectile-autoloads
org-project-capture-autoloads org-category-capture-autoloads
org-present-autoloads org-pomodoro-autoloads alert-autoloads
log4e-autoloads gntp-autoloads org-mime-autoloads
org-download-autoloads org-contrib-autoloads org-cliplink-autoloads
org-appear-autoloads orderless-autoloads open-junk-file-autoloads
ocp-indent-autoloads ocamlformat-autoloads npm-mode-autoloads
nose-autoloads nodejs-repl-autoloads nix-mode-autoloads
nano-agenda-autoloads nameless-autoloads multi-vterm-autoloads
vterm-autoloads multi-term-autoloads multi-line-autoloads
shut-up-autoloads mode-line-bell-autoloads merlin-iedit-autoloads
merlin-eldoc-autoloads merlin-company-autoloads markdown-toc-autoloads
magit-todos-autoloads macrostep-autoloads lsp-ui-autoloads
lsp-pyright-autoloads lsp-origami-autoloads origami-autoloads
lorem-ipsum-autoloads livid-mode-autoloads skewer-mode-autoloads
live-py-mode-autoloads link-hint-autoloads ligature-autoloads
launchctl-autoloads keycast-autoloads json-reformat-autoloads
json-navigator-autoloads hierarchy-autoloads json-mode-autoloads
json-snatcher-autoloads js2-refactor-autoloads
multiple-cursors-autoloads js2-mode-autoloads js-doc-autoloads
inspector-autoloads insert-shebang-autoloads info+-autoloads
indent-guide-autoloads importmagic-autoloads epc-autoloads
ctable-autoloads concurrent-autoloads impatient-mode-autoloads
simple-httpd-autoloads ibuffer-projectile-autoloads
hungry-delete-autoloads hl-todo-autoloads
highlight-parentheses-autoloads highlight-numbers-autoloads
parent-mode-autoloads highlight-indentation-autoloads
hide-comnt-autoloads helpful-autoloads elisp-refs-autoloads
helm-make-autoloads haml-mode-autoloads google-translate-autoloads
google-c-style-autoloads golden-ratio-autoloads gnuplot-autoloads
gitignore-templates-autoloads git-timemachine-autoloads
git-modes-autoloads git-messenger-autoloads git-link-autoloads
gh-md-autoloads gendoxy-autoloads geiser-guile-autoloads
geiser-chicken-autoloads flyspell-correct-popup-autoloads
flyspell-correct-autoloads flycheck-ycmd-autoloads
flycheck-rtags-autoloads flycheck-pos-tip-autoloads pos-tip-autoloads
flycheck-package-autoloads package-lint-autoloads
flycheck-ocaml-autoloads merlin-autoloads flycheck-ledger-autoloads
flycheck-elsa-autoloads flycheck-bashate-autoloads flycheck-autoloads
flx-ido-autoloads flx-autoloads fish-mode-autoloads fasd-autoloads
fancy-battery-autoloads explain-pause-mode-autoloads
expand-region-autoloads evil-visualstar-autoloads
evil-visual-mark-mode-autoloads evil-unimpaired-autoloads
evil-tutor-autoloads evil-textobj-line-autoloads
evil-surround-autoloads evil-quickscope-autoloads evil-org-autoloads
evil-numbers-autoloads evil-nerd-commenter-autoloads
evil-matchit-autoloads evil-lisp-state-autoloads evil-lion-autoloads
evil-ledger-autoloads ledger-mode-autoloads evil-indent-plus-autoloads
evil-iedit-state-autoloads evil-goggles-autoloads
evil-exchange-autoloads evil-escape-autoloads
evil-easymotion-autoloads evil-cleverparens-autoloads
smartparens-autoloads evil-args-autoloads evil-anzu-autoloads
anzu-autoloads eval-sexp-fu-autoloads eshell-z-autoloads
eshell-prompt-extras-autoloads esh-help-autoloads envrc-autoloads
inheritenv-autoloads emr-autoloads iedit-autoloads paredit-autoloads
list-utils-autoloads emmet-mode-autoloads embark-consult-autoloads
embark-autoloads elisp-slime-nav-autoloads elisp-def-autoloads
editorconfig-autoloads eat-autoloads dune-autoloads
dumb-jump-autoloads popup-autoloads drag-stuff-autoloads
disaster-autoloads dired-quick-sort-autoloads devdocs-autoloads
define-word-autoloads debbugs-autoloads cython-mode-autoloads
cpp-auto-include-autoloads consult-yasnippet-autoloads
consult-lsp-autoloads compleseus-spacemacs-help-autoloads
company-ycmd-autoloads ycmd-autoloads pkg-info-autoloads epl-autoloads
request-deferred-autoloads deferred-autoloads company-web-autoloads
web-completion-data-autoloads company-shell-autoloads
company-rtags-autoloads rtags-autoloads company-plsense-autoloads
company-nixos-options-autoloads nixos-options-autoloads
company-c-headers-autoloads company-anaconda-autoloads
command-log-mode-autoloads column-enforce-mode-autoloads
code-cells-autoloads clean-aindent-mode-autoloads
clang-format-autoloads centered-cursor-mode-autoloads ccls-autoloads
browse-at-remote-autoloads blacken-autoloads bcc32-org-autoloads
projectile-autoloads auto-yasnippet-autoloads yasnippet-autoloads
auto-highlight-symbol-autoloads auto-dictionary-autoloads
auto-compile-autoloads anaconda-mode-autoloads pythonic-autoloads
all-the-icons-autoloads ahk-mode-autoloads aggressive-indent-autoloads
advent-of-code-autoloads request-autoloads ace-window-autoloads
ace-link-autoloads avy-autoloads hybrid-mode evil-evilified-state
pcre2el-autoloads hybrid-mode-autoloads holy-mode-autoloads
evil-evilified-state-autoloads dotenv-mode-autoloads which-key
diminish hydra bind-map which-key-autoloads hydra-autoloads
diminish-autoloads bind-map-autoloads async-autoloads tempo make-mode
ispell company-dabbrev company-template company company-autoloads
consult consult-autoloads lsp-javascript lsp-html lsp-icons lsp-go
lsp-completion lsp-semantic-tokens lsp-mode lsp-protocol lv ht f s
lsp-mode-autoloads lv-autoloads spinner-autoloads ht-autoloads
f-autoloads s-autoloads corfu corfu-autoloads csv-mode sort
csv-mode-autoloads xwidget woman wdired vc-dir vc-annotate timer-list
thread tetris gamegrid term disp-table ehelp tablist tablist-filter
semantic/wisent/comp semantic/wisent semantic/wisent/wisent
semantic/util-modes semantic/util semantic semantic/tag semantic/lex
semantic/fw mode-local cedet speedbar ezimage dframe so-long shortdoc
sh-script executable scroll-lock ruby-mode smie reftex-toc reftex-cite
reftex-ref reftex-parse reftex reftex-loaddefs reftex-vars python
treesit profiler proced pdf-history pdf-tools pdf-view pdf-cache
pdf-info pdf-util pdf-macs newsticker newst-treeview tree-widget
newst-plainview newst-reader newst-ticker newst-backend mpc man
image-dired image-dired-tags image-dired-external image-dired-util
ibuffer ibuffer-loaddefs grep finder eww xdg url-queue shr pixel-fill
kinsoku url-file svg xml dom mm-url gnus nnheader range eshell
em-prompt esh-mode esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg
esh-module esh-groups esh-util emoji multisession sqlite eglot
external-completion array jsonrpc ert ewoc flymake-proc flymake ediff
ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init
ediff-util edebug doc-view jka-compr image-mode exif dictionary
dictionary-connection debug backtrace cus-theme calc calc-loaddefs
calc-macs magit-bookmark bookmark apropos evil-collection annalist
evil evil-keybindings evil-integration evil-collection-autoloads
annalist-autoloads forge-repos forge-topics forge-tablist
forge-commands forge-semi forge-bitbucket forge-gogs gogs forge-gitea
gtea forge-gitlab glab forge-github forge-notify forge-revnote
forge-pullreq forge-issue forge-topic yaml parse-time iso8601
forge-post markdown-mode color forge-repo forge forge-core forge-db
closql emacsql-sqlite-common emacsql emacsql-compiler eieio-base
magit-submodule magit-blame magit-stash magit-reflog magit-bisect
magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs
magit-status magit magit-repos magit-apply magit-wip magit-log
magit-diff smerge-mode diff git-commit log-edit add-log magit-core
magit-autorevert magit-margin magit-transient magit-process
with-editor shell server magit-mode transient magit-git magit-base
magit-section cursor-sensor crm dash buck ghub-graphql treepy gsexp
ghub let-alist forge-autoloads yaml-autoloads markdown-mode-autoloads
magit-autoloads ghub-autoloads closql-autoloads emacsql-autoloads
treepy-autoloads magit-section-autoloads git-commit-autoloads
with-editor-autoloads transient-autoloads dash-autoloads geiser
geiser-mode geiser-xref geiser-compile geiser-repl geiser-capf
geiser-debug geiser-image geiser-doc geiser-menu geiser-autodoc
geiser-edit etags fileloop generator xref geiser-completion
geiser-eval geiser-connection tq geiser-syntax scheme geiser-log
geiser-popup view geiser-impl help-fns geiser-custom geiser-base
geiser-autoloads files-x project xref-autoloads htmlize-autoloads
marginalia-autoloads org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-src ob-comint org-pcomplete pcomplete org-list
org-footnote org-faces org-entities noutline outline ob-emacs-lisp
ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys
oc org-loaddefs find-func cal-menu calendar cal-loaddefs org-version
org-compat org-macs compat org-modern-autoloads compat-autoloads
evil-maps evil-commands evil-digraphs reveal evil-jumps
evil-command-window evil-types evil-macros evil-repeat evil-search
evil-ex evil-states evil-core advice evil-common rect evil-vars
compile comint ansi-osc ansi-color ring info evil-autoloads goto-addr
thingatpt vc-hg vc-git diff-mode vc-bzr vc-src vc-sccs vc-svn vc-cvs
vc-rcs log-view pcvs-util vc vc-dispatcher bug-reference loaddefs-gen
lisp-mnt radix-tree tar-mode arc-mode archive-mode goto-chg-autoloads
mm-archive message sendmail yank-media dired dired-loaddefs rfc822 mml
mml-sec epa gnus-util text-property-search time-date mailabbrev
gmm-utils mailheader mm-decode mm-bodies mm-encode mail-utils gnutls
network-stream url-http mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr url-gw nsm puny url-cache url-auth thunk comp
comp-cstr hl-line xt-mouse autorevert filenotify base16-material-theme
base16-theme base16-theme-autoloads format-spec finder-inf which-func
imenu mb-depth midnight time edmacro kmacro cl-extra use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key use-package-core ido-vertical-mode ido
core-spacemacs core-use-package-ext core-spacebind
core-transient-state core-micro-state core-toggle core-keybindings
core-fonts-support core-themes-support core-display-init core-jump
core-release-management core-custom-settings core-configuration-layer
core-progress-bar core-spacemacs-buffer core-funcs spacemacs-ht inline
help-mode warnings package browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
password-cache json map url-vars eieio byte-opt eieio-core epg rfc6068
epg-config core-command-line core-debug derived core-hooks
page-break-lines easy-mmode core-env load-env-vars rx
core-dotspacemacs core-customization validate cus-edit pp cus-load
icons wid-edit core-emacs-backports core-compilation pcase bytecomp
byte-compile subr-x core-dumper spinner cl-macs gv cl-loaddefs cl-lib
core-versions core-load-paths core-early-funcs rmc iso-transl tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win
x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list
replace newcomment text-mode lisp-mode prog-mode register page tab-bar
menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse
jit-lock font-lock syntax font-core term/tty-colors frame minibuffer
nadvice seq simple cl-generic indonesian philippine cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray
oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face
macroexp files window text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget keymap hashtable-print-readable
backquote threads dbusbind inotify dynamic-setting system-font-setting
font-render-setting cairo x-toolkit xinput2 x multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 4671079 1795666)
(symbols 48 136824 51)
(strings 32 784563 237321)
(string-bytes 1 28448890)
(vectors 16 290750)
(vector-slots 8 6024368 5199382)
(floats 8 2592 10865)
(intervals 56 311712 55855)
(buffers 984 134))





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#71295: 29.3; url-retrieve-synchronously does not timeout if initial connection hangs
  2024-05-31 16:21 bug#71295: 29.3; url-retrieve-synchronously does not timeout if initial connection hangs Aaron Zeng
@ 2024-06-01 19:38 ` Eli Zaretskii
  2024-06-04  0:09   ` Aaron Zeng
  0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2024-06-01 19:38 UTC (permalink / raw)
  To: Aaron Zeng; +Cc: 71295, azeng, z

> Cc: Aaron Zeng <z@bcc32.com>, azeng@janestreet.com
> Date: Fri, 31 May 2024 12:21:55 -0400
> From: "Aaron Zeng" <z@bcc32.com>
> 
> 1. emacs -Q
> 2. Evaluate the following in the *scratch* buffer:
> 
>    (url-retrieve-synchronously "http://google.com:81" nil nil 1)
> 
> This does not time out in one second like the TIMEOUT argument
> specifies.  Instead, in my observations it hangs for at least several
> minutes.
> 
> This attempt also doesn't work:
> 
> 
> 3. (with-timeout (1) (url-retrieve-synchronously "http://google.com:81"))
> 
> As a consequence of this, Spacemacs's attempted timeout during Emacs
> startup can take ages if one of the package archives is temporarily
> unreachable, for example due to a network firewall that is enabled at
> my site.  Spacemacs attempts to timeout after only 5 seconds, but
> instead it takes minutes.

The timeout cannot work when Emacs is stuck in a system call trying to
initiate a network connection.  That is blocking, unless you use
url-retrieve asynchronously.  The timeout starts working after the
connection is established, so it basically protects against too slow
downloading of data after the initial connection.

I think it's a bug in Spacemacs that it attempts to solve connectivity
problems this way.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#71295: 29.3; url-retrieve-synchronously does not timeout if initial connection hangs
  2024-06-01 19:38 ` Eli Zaretskii
@ 2024-06-04  0:09   ` Aaron Zeng
  2024-06-06 11:40     ` Eli Zaretskii
  0 siblings, 1 reply; 11+ messages in thread
From: Aaron Zeng @ 2024-06-04  0:09 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 71295, azeng

On Sat, Jun 1, 2024, at 15:38, Eli Zaretskii wrote:
> The timeout cannot work when Emacs is stuck in a system call trying to
> initiate a network connection.  That is blocking, unless you use
> url-retrieve asynchronously.  The timeout starts working after the
> connection is established, so it basically protects against too slow
> downloading of data after the initial connection.

That makes sense, although it's not what I would have guessed from the docstring.

> I think it's a bug in Spacemacs that it attempts to solve connectivity
> problems this way.

What would be a reasonable alternative?  This is the same approximate method used by, e.g., request.el.  See https://github.com/tkf/emacs-request/blob/01e338c335c07e4407239619e57361944a82cb8a/request.el#L767-L775.

Is the idea just to use url-retrieve directly?  I hacked together a quick function that doesn't seem to hang:

(defun url-retrieve-synchronously-but-dont-hang (url &optional silent inhibit-cookies timeout)
  (with-timeout (timeout
                 (error "Timed out retrieving %S after waiting for %s seconds"
                        url timeout))
    (let* (done
           (buf
            (url-retrieve url
                          (lambda (&rest _)
                            (setq done (current-buffer)))
                          nil silent inhibit-cookies)))
      (when buf
        (let ((proc (get-buffer-process buf)))
          (while (accept-process-output proc))
          done)))))

This is probably rather naive of me, but I guess now I'm wondering why url-retrieve-synchronously actually sets url-asynchronous to nil.  Is there a good reason not to use :nowait when it is available?  It seems like it would be useful to have a wrapper around url-retrieve that just "does what I mean" here.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#71295: 29.3; url-retrieve-synchronously does not timeout if initial connection hangs
  2024-06-04  0:09   ` Aaron Zeng
@ 2024-06-06 11:40     ` Eli Zaretskii
  2024-06-06 20:41       ` Dmitry Gutov
  0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2024-06-06 11:40 UTC (permalink / raw)
  To: Aaron Zeng; +Cc: 71295, azeng

> Date: Mon, 03 Jun 2024 20:09:03 -0400
> From: "Aaron Zeng" <z@bcc32.com>
> Cc: 71295@debbugs.gnu.org, azeng@janestreet.com
> 
> Is the idea just to use url-retrieve directly?

I think so, yes.

> This is probably rather naive of me, but I guess now I'm wondering why url-retrieve-synchronously actually sets url-asynchronous to nil.  Is there a good reason not to use :nowait when it is available?  It seems like it would be useful to have a wrapper around url-retrieve that just "does what I mean" here.

Maybe.  I wonder what others think about this.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#71295: 29.3; url-retrieve-synchronously does not timeout if initial connection hangs
  2024-06-06 11:40     ` Eli Zaretskii
@ 2024-06-06 20:41       ` Dmitry Gutov
  2024-06-07  6:20         ` Eli Zaretskii
  0 siblings, 1 reply; 11+ messages in thread
From: Dmitry Gutov @ 2024-06-06 20:41 UTC (permalink / raw)
  To: Eli Zaretskii, Aaron Zeng; +Cc: 71295, azeng

On 06/06/2024 14:40, Eli Zaretskii wrote:
>> This is probably rather naive of me, but I guess now I'm wondering why url-retrieve-synchronously actually sets url-asynchronous to nil.  Is there a good reason not to use :nowait when it is available?  It seems like it would be useful to have a wrapper around url-retrieve that just "does what I mean" here.
> Maybe.  I wonder what others think about this.

It seems like a leaky abstraction (the caller has to be aware that what 
happens under the covers is done in several steps, and the timeout only 
applies to subsequent ones).

If we could change the implementation to a more intuitive behavior, that 
would be a win, I think. Can somebody think of adverse effects?





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#71295: 29.3; url-retrieve-synchronously does not timeout if initial connection hangs
  2024-06-06 20:41       ` Dmitry Gutov
@ 2024-06-07  6:20         ` Eli Zaretskii
  2024-06-07 21:32           ` Dmitry Gutov
  0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2024-06-07  6:20 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: z, 71295, azeng

> Date: Thu, 6 Jun 2024 23:41:39 +0300
> Cc: 71295@debbugs.gnu.org, azeng@janestreet.com
> From: Dmitry Gutov <dmitry@gutov.dev>
> 
> On 06/06/2024 14:40, Eli Zaretskii wrote:
> >> This is probably rather naive of me, but I guess now I'm wondering why url-retrieve-synchronously actually sets url-asynchronous to nil.  Is there a good reason not to use :nowait when it is available?  It seems like it would be useful to have a wrapper around url-retrieve that just "does what I mean" here.
> > Maybe.  I wonder what others think about this.
> 
> It seems like a leaky abstraction (the caller has to be aware that what 
> happens under the covers is done in several steps, and the timeout only 
> applies to subsequent ones).
> 
> If we could change the implementation to a more intuitive behavior, that 
> would be a win, I think. Can somebody think of adverse effects?

Do you have a patch to consider?





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#71295: 29.3; url-retrieve-synchronously does not timeout if initial connection hangs
  2024-06-07  6:20         ` Eli Zaretskii
@ 2024-06-07 21:32           ` Dmitry Gutov
  2024-06-08  6:08             ` Eli Zaretskii
  0 siblings, 1 reply; 11+ messages in thread
From: Dmitry Gutov @ 2024-06-07 21:32 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: z, 71295, azeng

On 07/06/2024 09:20, Eli Zaretskii wrote:
>> Date: Thu, 6 Jun 2024 23:41:39 +0300
>> Cc:71295@debbugs.gnu.org,azeng@janestreet.com
>> From: Dmitry Gutov<dmitry@gutov.dev>
>>
>> On 06/06/2024 14:40, Eli Zaretskii wrote:
>>>> This is probably rather naive of me, but I guess now I'm wondering why url-retrieve-synchronously actually sets url-asynchronous to nil.  Is there a good reason not to use :nowait when it is available?  It seems like it would be useful to have a wrapper around url-retrieve that just "does what I mean" here.
>>> Maybe.  I wonder what others think about this.
>> It seems like a leaky abstraction (the caller has to be aware that what
>> happens under the covers is done in several steps, and the timeout only
>> applies to subsequent ones).
>>
>> If we could change the implementation to a more intuitive behavior, that
>> would be a win, I think. Can somebody think of adverse effects?
> Do you have a patch to consider?

This seems to work:

diff --git a/lisp/url/url.el b/lisp/url/url.el
index dea251b453b..3b4021ceca8 100644
--- a/lisp/url/url.el
+++ b/lisp/url/url.el
@@ -235,7 +235,7 @@ url-retrieve-synchronously
  TIMEOUT is passed, it should be a number that says (in seconds)
  how long to wait for a response before giving up."
    (url-do-setup)
-  (let* (url-asynchronous
+  (let* ((url-asynchronous t)
           data-buffer
           (callback (lambda (&rest _args)
                       (setq data-buffer (current-buffer))

At first I was going to suggest the patch which reduces to Aaron's 
url-retrieve-synchronously-but-dont-hang implementation, but it misses 
the process cleanup stuff.

The above change seems more harmless. In my brief testing anyway.





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* bug#71295: 29.3; url-retrieve-synchronously does not timeout if initial connection hangs
  2024-06-07 21:32           ` Dmitry Gutov
@ 2024-06-08  6:08             ` Eli Zaretskii
  2024-06-08 22:34               ` Dmitry Gutov
  0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2024-06-08  6:08 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: z, 71295, azeng

> Date: Sat, 8 Jun 2024 00:32:44 +0300
> Cc: z@bcc32.com, 71295@debbugs.gnu.org, azeng@janestreet.com
> From: Dmitry Gutov <dmitry@gutov.dev>
> 
> On 07/06/2024 09:20, Eli Zaretskii wrote:
> >> Date: Thu, 6 Jun 2024 23:41:39 +0300
> >> Cc:71295@debbugs.gnu.org,azeng@janestreet.com
> >> From: Dmitry Gutov<dmitry@gutov.dev>
> >>
> >> It seems like a leaky abstraction (the caller has to be aware that what
> >> happens under the covers is done in several steps, and the timeout only
> >> applies to subsequent ones).
> >>
> >> If we could change the implementation to a more intuitive behavior, that
> >> would be a win, I think. Can somebody think of adverse effects?
> > Do you have a patch to consider?
> 
> This seems to work:
> 
> diff --git a/lisp/url/url.el b/lisp/url/url.el
> index dea251b453b..3b4021ceca8 100644
> --- a/lisp/url/url.el
> +++ b/lisp/url/url.el
> @@ -235,7 +235,7 @@ url-retrieve-synchronously
>   TIMEOUT is passed, it should be a number that says (in seconds)
>   how long to wait for a response before giving up."
>     (url-do-setup)
> -  (let* (url-asynchronous
> +  (let* ((url-asynchronous t)
>            data-buffer
>            (callback (lambda (&rest _args)
>                        (setq data-buffer (current-buffer))

Fine by me to install this on master, but please add there a comment
explaining why we do that disregarding the "synchronously" part of the
API's name.

Did you consider binding url-asynchronous non-nil only if TIMEOUT is
omitted or nil?  That could be even better, since the risk of breaking
something is lower, and OTOH if TIMEOUT is not passed, the original
problem does not exist and waiting "forever" is justified.  WDYT?





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#71295: 29.3; url-retrieve-synchronously does not timeout if initial connection hangs
  2024-06-08  6:08             ` Eli Zaretskii
@ 2024-06-08 22:34               ` Dmitry Gutov
  2024-06-09  4:39                 ` Eli Zaretskii
  0 siblings, 1 reply; 11+ messages in thread
From: Dmitry Gutov @ 2024-06-08 22:34 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: z, 71295, azeng

On 08/06/2024 09:08, Eli Zaretskii wrote:

>> This seems to work:
>>
>> diff --git a/lisp/url/url.el b/lisp/url/url.el
>> index dea251b453b..3b4021ceca8 100644
>> --- a/lisp/url/url.el
>> +++ b/lisp/url/url.el
>> @@ -235,7 +235,7 @@ url-retrieve-synchronously
>>    TIMEOUT is passed, it should be a number that says (in seconds)
>>    how long to wait for a response before giving up."
>>      (url-do-setup)
>> -  (let* (url-asynchronous
>> +  (let* ((url-asynchronous t)
>>             data-buffer
>>             (callback (lambda (&rest _args)
>>                         (setq data-buffer (current-buffer))
> 
> Fine by me to install this on master, but please add there a comment
> explaining why we do that disregarding the "synchronously" part of the
> API's name.
> 
> Did you consider binding url-asynchronous non-nil only if TIMEOUT is
> omitted or nil?  That could be even better, since the risk of breaking
> something is lower, and OTOH if TIMEOUT is not passed, the original
> problem does not exist and waiting "forever" is justified.  WDYT?

That's a good idea. Pushed to master, with this addition and a comment.

Thinking further, though, our ability to do so bring the existence of 
this variable into question (we only change it in 
url-retrieve-synchronously).

I see it's been added as part of bug#26835 resolution, so maybe we'll 
need to re-examine that fix.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#71295: 29.3; url-retrieve-synchronously does not timeout if initial connection hangs
  2024-06-08 22:34               ` Dmitry Gutov
@ 2024-06-09  4:39                 ` Eli Zaretskii
  2024-06-09 22:05                   ` Dmitry Gutov
  0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2024-06-09  4:39 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: z, 71295, azeng

> Date: Sun, 9 Jun 2024 01:34:03 +0300
> Cc: z@bcc32.com, 71295@debbugs.gnu.org, azeng@janestreet.com
> From: Dmitry Gutov <dmitry@gutov.dev>
> 
> Thinking further, though, our ability to do so bring the existence of 
> this variable into question (we only change it in 
> url-retrieve-synchronously).
> 
> I see it's been added as part of bug#26835 resolution, so maybe we'll 
> need to re-examine that fix.

Maybe.  Suggestions welcome.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#71295: 29.3; url-retrieve-synchronously does not timeout if initial connection hangs
  2024-06-09  4:39                 ` Eli Zaretskii
@ 2024-06-09 22:05                   ` Dmitry Gutov
  0 siblings, 0 replies; 11+ messages in thread
From: Dmitry Gutov @ 2024-06-09 22:05 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: z, 71295, azeng

On 09/06/2024 07:39, Eli Zaretskii wrote:
>> Date: Sun, 9 Jun 2024 01:34:03 +0300
>> Cc:z@bcc32.com,71295@debbugs.gnu.org,azeng@janestreet.com
>> From: Dmitry Gutov<dmitry@gutov.dev>
>>
>> Thinking further, though, our ability to do so bring the existence of
>> this variable into question (we only change it in
>> url-retrieve-synchronously).
>>
>> I see it's been added as part of bug#26835 resolution, so maybe we'll
>> need to re-examine that fix.
> Maybe.  Suggestions welcome.

This seems to work:

diff --git a/lisp/url/url.el b/lisp/url/url.el
index 0ac2917b213..1972ff254fe 100644
--- a/lisp/url/url.el
+++ b/lisp/url/url.el
@@ -245,7 +245,8 @@ url-retrieve-synchronously
                                  data-buffer)))
           (start-time (current-time))
           (proc-buffer (url-retrieve url callback nil silent
-                                    inhibit-cookies)))
+                                    inhibit-cookies))
+         failed-message)
      (if (not proc-buffer)
          (url-debug 'retrieval "Synchronous fetching unnecessary %s" url)
        (unwind-protect
@@ -276,6 +277,8 @@ url-retrieve-synchronously
                    ;; Process sentinel vagaries occasionally cause
                    ;; url-retrieve to fail calling callback.
                    (unless data-buffer
+                    (when (memq (process-status proc) '(signal failed))
+                      (setq failed-message (process-exit-status proc)))
                      (url-debug 'retrieval "Dead process %s" url)
  		    (throw 'done 'exception))))
                ;; Querying over consumer internet in the US takes 100
@@ -285,7 +288,9 @@ url-retrieve-synchronously
          (when (and data-buffer
                     (not (eq data-buffer proc-buffer)))
            (let (kill-buffer-query-functions)
-            (kill-buffer proc-buffer)))))
+            (kill-buffer proc-buffer))))
+      (when failed-message
+        (error "Retrieval failed: `%s'" failed-message)))
      data-buffer))

  ;; url-mm-callback called from url-mm, which requires mm-decode.


It's doesn't show the same kind of error like the nowait version:

Debugger entered--Lisp error: (error "The x509 certificate does not 
match \"wrong.host.badssl.com\"")
   gnutls-boot(#<process wrong.host.badssl.com<35>> gnutls-x509pki 
(:complete-negotiation t :priority "NORMAL:%DUMBFW" :hostname 
"wrong.host.badssl.com" :loglevel 0 :min-prime-bits nil :trustfiles 
("/etc/ssl/certs/ca-certificates.crt") :crlfiles nil :keylist nil 
:verify-flags nil :verify-error t :pass nil :flags nil :callbacks nil))
   gnutls-negotiate(:process #<process wrong.host.badssl.com<35>> :type 
gnutls-x509pki :keylist nil :hostname "wrong.host.badssl.com")

But the error is still meaningful:

(error "Retrieval failed: ‘The Network Security Manager stopped the 
connections’")

Unfortunately, the error is sometimes not triggered (the process object 
not created maybe?) - so some more investigation is needed.





^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2024-06-09 22:05 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-31 16:21 bug#71295: 29.3; url-retrieve-synchronously does not timeout if initial connection hangs Aaron Zeng
2024-06-01 19:38 ` Eli Zaretskii
2024-06-04  0:09   ` Aaron Zeng
2024-06-06 11:40     ` Eli Zaretskii
2024-06-06 20:41       ` Dmitry Gutov
2024-06-07  6:20         ` Eli Zaretskii
2024-06-07 21:32           ` Dmitry Gutov
2024-06-08  6:08             ` Eli Zaretskii
2024-06-08 22:34               ` Dmitry Gutov
2024-06-09  4:39                 ` Eli Zaretskii
2024-06-09 22:05                   ` Dmitry Gutov

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).