Subject: bug#25203: closed (Re: bug#25203: 25.1; crash during message, infinite recursion)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 16 Dec 2016 10:50:03 +0000

Your bug report

#25203: 25.1; crash during message, infinite recursion

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
25203: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=25203
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#25203: 25.1; crash during message, infinite recursion
From: Eli Zaretskii <[email-masked]>
To: Werner LEMBERG <[email-masked]>
Cc: [email-masked], [email-masked], [email-masked]
Date: Fri, 16 Dec 2016 12:48:05 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> Date: Fri, 16 Dec 2016 10:08:55 +0100 (CET)
> Cc: [email-masked], [email-masked],
>  [email-masked]
> From: Werner LEMBERG <[email-masked]>
> 
> >> > In fact, any I/O that might require encoding should be completely
> >> > avoided in pre-write-conversion.
> >> 
> >> Is this documented?  If yes, I've missed it.
> > 
> > Frankly, it should be obvious: you are recursively invoking the same
> > operation that is being processed by the calling function.
> 
> Well, `cjk-coding' worked flawlessly for years.

The problem was triggered by adding the 2 'message' calls, after the
point where coding-system-for-write was bound to this coding-system.
Without those 'message' calls, cjk-coding indeed should still work
flawlessly.

> > Any reasons not to close this bug report, now that all of its
> > aspects have been addressed?
> 
> Yes, please do.

Done.

Subject: 25.1; crash during message, infinite recursion
From: Hin-Tak Leung <[email-masked]>
To: [email-masked]
Cc: Hin-Tak Leung <[email-masked]>
Date: Thu, 15 Dec 2016 00:04:53 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

emacs -Q -batch -l cjk-enc.el -f batch-force-cjk-write-file Big5.tex

where cjk-enc.el is a slight enhancement of
"cjk/utils/lisp/emacs/cjk-enc.el" from http://cjk.ffii.org , with

diff --git a/emacs/cjk-enc.el b/emacs/cjk-enc.el
index c8e6706..096ade7 100644
--- a/emacs/cjk-enc.el
+++ b/emacs/cjk-enc.el
@@ -881,7 +881,8 @@
               (setq last-pos (point))
               (message "Converting: %2d%%"
                        (/ (* 100 (point)) (point-max)))))
-
+        (message "temp-buf is %s..." (buffer-name temp-buf))
+        (message "work-buf is %s..." (buffer-name work-buf))
         ;; Advance to the next character and loop.
         (forward-char 1))

and Big5.tex is cjk/examples/Big5.tex

(gdb) bt
#0  0x00007f6ecfe1e48f in raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:58
#1  0x00000000004f1174 in terminate_due_to_signal ()
#2  0x000000000050945e in  ()
#3  0x0000000000509689 in  ()
#4  0x00000000005096ef in handle_sigsegv ()
#5  0x00007f6ecfe1e5c0 in <signal handler called> () at /lib64/libpthread.so.0
#6  0x000000000048c2d5 in consume_chars ()
#7  0x0000000000495fe9 in encode_coding ()
#8  0x000000000049c775 in encode_coding_object ()
#9  0x000000000049d7c8 in code_convert_string ()
#10 0x0000000000431ad5 in message_to_stderr ()
#11 0x000000000045657c in message3 ()
#12 0x000000000055ee5c in Fmessage ()
#13 0x00000000005651e0 in eval_sub ()
#14 0x00000000005681cd in Flet ()
#15 0x0000000000565014 in eval_sub ()
#16 0x00000000005682fd in Fwhile ()
#17 0x0000000000565014 in eval_sub ()
#18 0x00000000005681cd in Flet ()
#19 0x0000000000565014 in eval_sub ()
#20 0x00000000005681cd in Flet ()
#21 0x0000000000565014 in eval_sub ()
#22 0x00000000005657bd in funcall_lambda ()
#23 0x0000000000565a4b in Ffuncall ()
#24 0x0000000000564516 in internal_condition_case_n ()
#25 0x000000000042efc8 in safe.call ()
#26 0x000000000043b97c in safe_call ()
#27 0x000000000049c27e in encode_coding_object ()
---Type <return> to continue, or q <return> to quit---
#28 0x000000000049d7c8 in code_convert_string ()
#29 0x0000000000431ad5 in message_to_stderr ()
#30 0x000000000045657c in message3 ()
...
repeats at a cycle of 19
...
#923 0x000000000045657c in message3 ()
---Type <return> to continue, or q <return> to quit---
#924 0x000000000055ee5c in Fmessage ()
#925 0x00000000005651e0 in eval_sub ()
#926 0x00000000005681cd in Flet ()
#927 0x0000000000565014 in eval_sub ()
#928 0x00000000005682fd in Fwhile ()
#929 0x0000000000565014 in eval_sub ()
#930 0x00000000005681cd in Flet ()
#931 0x0000000000565014 in eval_sub ()
#932 0x00000000005681cd in Flet ()
#933 0x0000000000565014 in eval_sub ()
#934 0x00000000005657bd in funcall_lambda ()
#935 0x0000000000565a4b in Ffuncall ()
#936 0x0000000000564516 in internal_condition_case_n ()
#937 0x000000000042efc8 in safe.call ()
#938 0x000000000043b97c in safe_call ()
#939 0x000000000049c27e in encode_coding_object ()
#940 0x00000000005205fa in e_write ()
#941 0x000000000052766b in write_region ()
#942 0x00000000005283ef in Fwrite_region ()
#943 0x000000000056503d in eval_sub ()
#944 0x00000000005681cd in Flet ()
#945 0x0000000000565014 in eval_sub ()
#946 0x000000000056535d in Fprogn ()
#947 0x000000000055efc7 in Fsave_excursion ()
#948 0x0000000000565014 in eval_sub ()
#949 0x00000000005681cd in Flet ()
#950 0x0000000000565014 in eval_sub ()
#951 0x00000000005657bd in funcall_lambda ()
---Type <return> to continue, or q <return> to quit---
#952 0x0000000000564ac8 in apply_lambda ()
#953 0x0000000000564e2a in eval_sub ()
#954 0x0000000000565014 in eval_sub ()
#955 0x00000000005653a5 in Fif ()
#956 0x0000000000565014 in eval_sub ()
#957 0x00000000005653a5 in Fif ()
#958 0x0000000000565014 in eval_sub ()
#959 0x00000000005681cd in Flet ()
#960 0x0000000000565014 in eval_sub ()
#961 0x00000000005682fd in Fwhile ()
#962 0x0000000000565014 in eval_sub ()
#963 0x00000000005657bd in funcall_lambda ()
#964 0x0000000000564ac8 in apply_lambda ()
#965 0x0000000000564e2a in eval_sub ()
#966 0x00000000005657bd in funcall_lambda ()
#967 0x0000000000565a4b in Ffuncall ()
#968 0x000000000059ad23 in exec_byte_code ()
#969 0x0000000000565a4b in Ffuncall ()
#970 0x000000000059ad23 in exec_byte_code ()
#971 0x0000000000565a4b in Ffuncall ()
#972 0x000000000059ad23 in exec_byte_code ()
#973 0x0000000000564ac8 in apply_lambda ()
#974 0x0000000000564e2a in eval_sub ()
#975 0x00000000005686fc in Feval ()
#976 0x0000000000564362 in internal_condition_case ()
#977 0x00000000004f3d70 in top_level_1 ()
#978 0x0000000000564303 in internal_catch ()
#979 0x00000000004f15bd in command_loop ()
---Type <return> to continue, or q <return> to quit---
#980 0x00000000004f5dd7 in recursive_edit_1 ()
#981 0x00000000004f6128 in Frecursive_edit ()
#982 0x0000000000419d52 in main ()

In GNU Emacs 25.1.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.22.1)
 of 2016-10-12 built on buildvm-18.phx2.fedoraproject.org
Windowing system distributor 'Fedora Project', version 11.0.11900000
System Description:	Fedora release 25 (Twenty Five)

Configured using:
 'configure --build=x86_64-redhat-linux-gnu
 --host=x86_64-redhat-linux-gnu --program-prefix=
 --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
 --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
 --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
 --libexecdir=/usr/libexec --localstatedir=/var
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png
 --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
 --with-gpm=no --with-xwidgets build_alias=x86_64-redhat-linux-gnu
 host_alias=x86_64-redhat-linux-gnu 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g
 -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4
 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
 -m64 -mtune=generic' LDFLAGS=-Wl,-z,relro
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GCONF GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XWIDGETS

Important settings:
  value of $LANG: C
  locale-coding-system: nil

Major mode: Fundamental

Minor modes in effect:
  shell-dirtrack-mode: t
  tooltip-mode: t
  global-eldoc-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
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Loading /usr/share/emacs/site-lisp/site-start.d/ess-init.el (source)...
Finding all versions of R on your system...
Sorry, no version of R could be found on your system.
Loading /usr/share/emacs/site-lisp/site-start.d/ess-init.el (source)...done
Loading /usr/share/emacs/site-lisp/site-start.d/git-init.el (source)...done
Loading /usr/share/emacs/site-lisp/site-start.d/lilypond-init.el (source)...done
Loading /usr/share/emacs/site-lisp/site-start.d/mercurial-site-start.el (source)...done
Loading /usr/share/emacs/site-lisp/site-start.d/rpmdev-init.el (source)...done
Loading /usr/share/emacs/site-lisp/site-start.d/systemtap-init.el (source)...done
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
/usr/share/emacs/site-lisp/lilypond-init hides /usr/share/emacs/site-lisp/site-start.d/lilypond-init

Features:
(shadow sort mail-extr emacsbug message idna dired rfc822 mml mml-sec
epg epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mail-utils ido seq ess-toolbar ess-mouse mouseme thingatpt browse-url
ess-menu ess-swv ess-noweb ess-noweb-font-lock-mode ess-bugs-l essd-els
ess-sas-d ess-sas-l ess-sas-a ess-sta-d ess-sta-l cc-vars cc-defs
make-regexp ess-sp6-d ess-dde ess-sp3-d ess-julia julia-mode ert pp
find-func ewoc debug ess-r-d ess-r-syntax ess-r-completion ess-roxy
essddr hideshow ess-help ess-r-package ess-s-l ess ess-inf ess-tracebug
compile tramp tramp-compat auth-source cl-seq eieio byte-opt bytecomp
byte-compile cl-extra cconv eieio-core gnus-util mm-util help-fns
help-mode mail-prsvr password-cache tramp-loaddefs cl-macs trampver
ucs-normalize shell pcomplete comint ansi-color ring format-spec advice
ess-mode ess-noweb-mode ess-utils ess-generics cl gv cl-loaddefs pcase
cl-lib ess-custom executable easymenu ess-compat ess-site time-date
mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset
image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cl-generic 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 charscript case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote dbusbind inotify dynamic-setting
system-font-setting font-render-setting xwidget-internal move-toolbar
gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 260299 10067)
 (symbols 48 27442 0)
 (miscs 40 105 141)
 (strings 32 40868 7895)
 (string-bytes 1 1149641)
 (vectors 16 41418)
 (vector-slots 8 760116 3898)
 (floats 8 296 105)
 (intervals 56 326 108)
 (buffers 976 19))