GNU bug report logs - #68336
29.1.90; eww: error when eww-retrieve-command is set to 'sync

Previous Next

Package: emacs;

Reported by: Phil Sainty <psainty <at> orcon.net.nz>

Date: Tue, 9 Jan 2024 02:56:01 UTC

Severity: normal

Fixed in version 29.1.90

Done: Juri Linkov <juri <at> linkov.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 68336 in the body.
You can then email your comments to 68336 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#68336; Package emacs. (Tue, 09 Jan 2024 02:56:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Phil Sainty <psainty <at> orcon.net.nz>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 09 Jan 2024 02:56:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Phil Sainty <psainty <at> orcon.net.nz>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.1.90; eww: error when eww-retrieve-command is set to 'sync
Date: Tue, 09 Jan 2024 15:54:55 +1300
Customize `eww-retrieve-command' to `sync' -- the customize label
is "Use `url-retrieve-synchronously'" -- or simply:

 (setq eww-retrieve-command 'sync)

Now any `eww' invocation fails with:

apply: Wrong type argument: stringp, nil

I see the error in my builds of 29 and 30, but not in 28.2.

My 30.0.50 build dated back to 2023-09-21, so I've just
compiled a fresh build of 30 and no longer see the *error*,
but it still doesn't work -- the page is never rendered.

Example in Emacs 29:

 (setq eww-retrieve-command 'sync)
 (eww "http://example.com")

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  eww-render(nil "http://example.com/" "http://example.com/" nil 
#<buffer *eww*>)
  apply(eww-render nil "http://example.com/" ("http://example.com/" nil 
#<buffer *eww*>))
  eww-retrieve("http://example.com/" eww-render ("http://example.com/" 
nil #<buffer *eww*>))
  eww("http://example.com")

Or after loading the uncompiled eww.el:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  set-buffer(nil)
  (save-current-buffer (set-buffer buffer) (plist-put eww-data :peer 
(plist-get status :peer)) (setq list-buffers-directory url) (setq 
url-current-lastloc (url-generic-parse-url url)))
  ...
  eww-render(nil "http://example.com/" "http://example.com/" nil 
#<buffer *eww*>)

That BUFFER arg to `set-buffer' looks like it's nil on account
of an additional duplicate argument passed to `eww-render':

  eww-render(nil "http://example.com/" "http://example.com/" nil 
#<buffer *eww*>)

should have been:

  eww-render(nil "http://example.com/" nil #<buffer *eww*>)

So I think the bug is the last line here:

 (defun eww-retrieve (url callback cbargs)
   (cond
    ((null eww-retrieve-command)
     (url-retrieve url #'eww-render cbargs))
    ((eq eww-retrieve-command 'sync)
     (let ((data-buffer (url-retrieve-synchronously url)))
       (with-current-buffer data-buffer
         (apply #'eww-render nil url cbargs))))

Where cbargs evidentially contains the URL already, so it
should presumably be:

 (apply #'eww-render nil cbargs)

I can confirm that this change fixes my example case (but I haven't
tried to find out if the situation is more complicated than that).


-Phil




In GNU Emacs 29.1.90 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.16.0, Xaw scroll bars) of 2023-10-24 built on phil-lp
Repository revision: cc3e436c822343f72f3ede6b638e1b68cd434583
Repository branch: HEAD
Windowing system distributor 'The X.Org Foundation', version 
11.0.12101004
System Description: Ubuntu 22.04.3 LTS

Configured using:
 'configure --prefix=/home/phil/emacs/29.x.nc/usr/local
 --with-native-compilation=aot --with-x-toolkit=lucid --without-sound
 '--program-transform-name=s/^ctags$/ctags_emacs/''

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

Important settings:
  value of $LC_MONETARY: en_NZ.UTF-8
  value of $LC_NUMERIC: en_NZ.UTF-8
  value of $LC_TIME: en_NZ.UTF-8
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Dired by name

Minor modes in effect:
  savehist-mode: t
  windmove-mode: t
  winner-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny rfc822
mml mml-sec password-cache epa derived epg rfc6068 epg-config gnus-util
text-property-search time-date mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils comp comp-cstr warnings icons
subr-x rx cl-seq cl-macs gv cl-extra help-mode bytecomp byte-compile
savehist windmove winner ring dired-aux cl-loaddefs cl-lib dired
dired-loaddefs advice 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 lcms2
dynamic-setting system-font-setting font-render-setting cairo x-toolkit
x multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 84935 7813)
 (symbols 48 7538 0)
 (strings 32 22145 2035)
 (string-bytes 1 667777)
 (vectors 16 16684)
 (vector-slots 8 344081 16889)
 (floats 8 35 41)
 (intervals 56 440 0)
 (buffers 984 14))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#68336; Package emacs. (Tue, 16 Jan 2024 16:44:03 GMT) Full text and rfc822 format available.

Message #8 received at 68336 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> linkov.net>
To: Phil Sainty <psainty <at> orcon.net.nz>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 68336 <at> debbugs.gnu.org
Subject: Re: bug#68336: 29.1.90; eww: error when eww-retrieve-command is set
 to 'sync
Date: Tue, 16 Jan 2024 18:32:02 +0200
> I see the error in my builds of 29 and 30, but not in 28.2.
>
> Example in Emacs 29:
>
>  (setq eww-retrieve-command 'sync)
>  (eww "http://example.com")
>
> Debugger entered--Lisp error: (wrong-type-argument stringp nil)
> So I think the bug is the last line here:
>
>          (apply #'eww-render nil url cbargs))))
>
> Where cbargs evidentially contains the URL already, so it
> should presumably be:
>
>  (apply #'eww-render nil cbargs)

Thanks, I confirm this is the right fix.

Eli, is it ok to fix eww.el on the emacs-29 branch?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#68336; Package emacs. (Tue, 16 Jan 2024 17:04:02 GMT) Full text and rfc822 format available.

Message #11 received at 68336 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Juri Linkov <juri <at> linkov.net>
Cc: psainty <at> orcon.net.nz, 68336 <at> debbugs.gnu.org
Subject: Re: bug#68336: 29.1.90; eww: error when eww-retrieve-command is set
 to 'sync
Date: Tue, 16 Jan 2024 19:02:40 +0200
> From: Juri Linkov <juri <at> linkov.net>
> Cc: Eli Zaretskii <eliz <at> gnu.org>,  68336 <at> debbugs.gnu.org
> Date: Tue, 16 Jan 2024 18:32:02 +0200
> 
> > I see the error in my builds of 29 and 30, but not in 28.2.
> >
> > Example in Emacs 29:
> >
> >  (setq eww-retrieve-command 'sync)
> >  (eww "http://example.com")
> >
> > Debugger entered--Lisp error: (wrong-type-argument stringp nil)
> > So I think the bug is the last line here:
> >
> >          (apply #'eww-render nil url cbargs))))
> >
> > Where cbargs evidentially contains the URL already, so it
> > should presumably be:
> >
> >  (apply #'eww-render nil cbargs)
> 
> Thanks, I confirm this is the right fix.
> 
> Eli, is it ok to fix eww.el on the emacs-29 branch?

Yes, thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#68336; Package emacs. (Tue, 16 Jan 2024 17:54:01 GMT) Full text and rfc822 format available.

Message #14 received at 68336 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> linkov.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: psainty <at> orcon.net.nz, 68336 <at> debbugs.gnu.org
Subject: Re: bug#68336: 29.1.90; eww: error when eww-retrieve-command is set
 to 'sync
Date: Tue, 16 Jan 2024 19:52:27 +0200
close 68336 29.1.90
thanks

>> > I see the error in my builds of 29 and 30, but not in 28.2.
>> 
>> Thanks, I confirm this is the right fix.
>> 
>> Eli, is it ok to fix eww.el on the emacs-29 branch?
>
> Yes, thanks.

So now pushed to emacs-29.




bug marked as fixed in version 29.1.90, send any further explanations to 68336 <at> debbugs.gnu.org and Phil Sainty <psainty <at> orcon.net.nz> Request was from Juri Linkov <juri <at> linkov.net> to control <at> debbugs.gnu.org. (Tue, 16 Jan 2024 17:54:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 14 Feb 2024 12:24:09 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 183 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.