GNU bug report logs - #22622
24.5; ask-user-about-supersession-threat causes emacs -batch to hang

Previous Next

Package: emacs;

Reported by: Richard Sharman <richard.sharman <at> mitel.com>

Date: Wed, 10 Feb 2016 21:10:01 UTC

Severity: normal

Found in versions 24.5, 25.2

Fixed in version 26.1

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Glenn Morris <rgm <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#22622: closed (24.5; ask-user-about-supersession-threat
 causes emacs -batch to hang)
Date: Wed, 24 Jan 2018 01:58:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 23 Jan 2018 20:57:09 -0500
with message-id <ivbmhkm32i.fsf <at> fencepost.gnu.org>
and subject line Re: bug#22622: 24.5; ask-user-about-supersession-threat causes emacs -batch to hang
has caused the debbugs.gnu.org bug report #22622,
regarding 24.5; ask-user-about-supersession-threat causes emacs -batch to hang
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
22622: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22622
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Richard Sharman <richard.sharman <at> mitel.com>
To: "bug-gnu-emacs <at> gnu.org" <bug-gnu-emacs <at> gnu.org>
Cc: Richard Sharman <richard.sharman <at> mitel.com>
Subject: 24.5; ask-user-about-supersession-threat causes emacs -batch to hang
Date: Wed, 10 Feb 2016 18:27:30 +0000
[Message part 3 (text/plain, inline)]
I'm not sure if this is a bug or not.

When running emacs -batch, if a function modifies a buffer and calls
save-buffer and there is another emacs -batch also updating the same
file, one of them can call ask-user-about-supersession-threat [in
userlock.el].

This causes the emacs process to hang because read-char-choice never
returns.  See traceback below.

This happened when running make -j 6 and I changed the scenario to not
happen, but I wondered if ask-user-about-supersession-threat should be
act upon variable noninteractive.

Perhaps one is supposed to supply a replacement for
ask-user-about-supersession-threat if running emacs in batch mode?

--- Traceback ---
This was obtained by attaching with gdb to the emacs process.

(gdb) bt
#0  0x000000379fae165e in pselect () from /lib64/libc.so.6
#1  0x00000000005bdf02 in xg_select (fds_lim=6, rfds=rfds <at> entry=0x7fff9903b8a0, wfds=0x7fff9903b920, efds=efds <at> entry=0x0, timeout=timeout <at> entry=0x7fff9903b890,
    sigmask=sigmask <at> entry=0x0) at ../../src/xgselect.c:114
#2  0x000000000058a9c3 in wait_reading_process_output (time_limit=time_limit <at> entry=0, nsecs=nsecs <at> entry=0, read_kbd=read_kbd <at> entry=-1, do_display=true,
    wait_for_cell=wait_for_cell <at> entry=12186482, wait_proc=wait_proc <at> entry=0x0, just_wait_proc=just_wait_proc <at> entry=0) at ../../src/process.c:4606
#3  0x00000000004e38f7 in kbd_buffer_get_event (end_time=0x0, used_mouse_menu=<optimized out>, kbp=<synthetic pointer>) at ../../src/keyboard.c:3907
#4  read_event_from_main_queue (used_mouse_menu=<optimized out>, local_getcjmp=<optimized out>, end_time=0x0) at ../../src/keyboard.c:2247
#5  read_decoded_event_from_main_queue (end_time=end_time <at> entry=0x0, local_getcjmp=local_getcjmp <at> entry=0x7fff9903be10, prev_event=prev_event <at> entry=12186482,
    used_mouse_menu=used_mouse_menu <at> entry=0x7fff9903c09b) at ../../src/keyboard.c:2310
#6  0x00000000004e7b3c in read_char (commandflag=0, map=map <at> entry=15139126, prev_event=12186482, used_mouse_menu=used_mouse_menu <at> entry=0x7fff9903c09b, end_time=end_time <at> entry=0x0)
    at ../../src/keyboard.c:2896
#7  0x00000000004e890f in read_key_sequence (keybuf=keybuf <at> entry=0x7fff9903c150, prompt=prompt <at> entry=14531377, dont_downcase_last=<optimized out>, can_return_switch_frame=false,
    fix_current_buffer=fix_current_buffer <at> entry=false, prevent_redisplay=prevent_redisplay <at> entry=false, bufsize=30) at ../../src/keyboard.c:9089
#8  0x00000000004ea140 in read_key_sequence_vs (prompt=14531377, continue_echo=12186482, dont_downcase_last=12186530, can_return_switch_frame=12186482, cmd_loop=<optimized out>,
    allow_string=<optimized out>) at ../../src/keyboard.c:9784
#9  0x000000000054d1b4 in Ffuncall (nargs=<optimized out>, args=<optimized out>) at ../../src/eval.c:2827
#10 0x0000000000580de5 in exec_byte_code (bytestr=-514, vector=140735760544464, maxdepth=140735760544592, args_template=0, nargs=0, args=0x4) at ../../src/bytecode.c:916
#11 0x000000000054cd47 in funcall_lambda (fun=8852921, nargs=nargs <at> entry=0, arg_vector=0x1070e60, arg_vector <at> entry=0x7fff9903c458) at ../../src/eval.c:2978
#12 0x000000000054d013 in Ffuncall (nargs=1, args=0x7fff9903c450) at ../../src/eval.c:2872
#13 0x000000000054c8de in eval_sub (form=form <at> entry=15139174) at ../../src/eval.c:2154
#14 0x000000000054b56b in internal_catch (tag=15676322, func=0x54c220 <eval_sub>, arg=15139174) at ../../src/eval.c:1112
#15 0x0000000000581be8 in exec_byte_code (bytestr=-514, vector=140735760544464, maxdepth=140735760544592, args_template=1024, nargs=140735760549240, args=0x8d)
    at ../../src/bytecode.c:1097
#16 0x000000000054cd47 in funcall_lambda (fun=8852409, nargs=nargs <at> entry=1, arg_vector=0x8713e0 <pure+120224>, arg_vector <at> entry=0x7fff9903c718) at ../../src/eval.c:2978
#17 0x000000000054d013 in Ffuncall (nargs=2, args=0x7fff9903c710) at ../../src/eval.c:2872
#18 0x0000000000580de5 in exec_byte_code (bytestr=-514, vector=140735760544464, maxdepth=140735760544592, args_template=3080, nargs=140735760549640, args=0x2)
    at ../../src/bytecode.c:916
#19 0x000000000054cd47 in funcall_lambda (fun=8854969, nargs=nargs <at> entry=2, arg_vector=0x871de0 <pure+122784>, arg_vector <at> entry=0x7fff9903c850) at ../../src/eval.c:2978
#20 0x000000000054d013 in Ffuncall (nargs=3, args=0x7fff9903c848) at ../../src/eval.c:2872
#21 0x0000000000580de5 in exec_byte_code (bytestr=-514, vector=140735760544464, maxdepth=140735760544592, args_template=12186482, nargs=140735760549952, args=0x3)
    at ../../src/bytecode.c:916
#22 0x000000000054ccaf in funcall_lambda (fun=19838589, nargs=nargs <at> entry=1, arg_vector=arg_vector <at> entry=0x7fff9903c9d8) at ../../src/eval.c:3044
#23 0x000000000054d013 in Ffuncall (nargs=nargs <at> entry=2, args=args <at> entry=0x7fff9903c9d0) at ../../src/eval.c:2872
#24 0x000000000054d34a in call1 (fn=<optimized out>, arg1=arg1 <at> entry=14349665) at ../../src/eval.c:2610
#25 0x00000000005019b5 in lock_file (fn=14349665) at ../../src/filelock.c:713
#26 0x0000000000503115 in prepare_to_modify_buffer_1 (start=start <at> entry=16700, end=end <at> entry=16700, preserve_ptr=preserve_ptr <at> entry=0x0) at ../../src/insdel.c:1812
#27 0x0000000000503621 in prepare_to_modify_buffer (start=16700, end=16700, preserve_ptr=preserve_ptr <at> entry=0x0) at ../../src/insdel.c:1847
#28 0x00000000005038d5 in insert_from_string_1 (string=14413089, pos=0, pos_byte=0, nchars=35, nbytes=35, inherit=<optimized out>, before_markers=before_markers <at> entry=false)
    at ../../src/insdel.c:893
#29 0x0000000000504130 in insert_from_string (string=<optimized out>, pos=<optimized out>, pos_byte=<optimized out>, length=<optimized out>, length_byte=<optimized out>,
    inherit=<optimized out>) at ../../src/insdel.c:842
#30 0x00000000005417a3 in general_insert_function (insert_func=0x503e40 <insert>, insert_from_string_func=0x504100 <insert_from_string>, inherit=inherit <at> entry=false, nargs=1,
    args=0x7fff9903ec40) at ../../src/editfns.c:2248
#31 0x00000000005418ab in Finsert (nargs=<optimized out>, args=<optimized out>) at ../../src/editfns.c:2289
#32 0x000000000054c8de in eval_sub (form=<optimized out>) at ../../src/eval.c:2154
#33 0x000000000054ca15 in Fprogn (body=6) at ../../src/eval.c:462
#34 0x000000000054f5f5 in Flet (args=19476358) at ../../src/eval.c:970
#35 0x000000000054c7e3 in eval_sub (form=<optimized out>) at ../../src/eval.c:2131
#36 0x000000000054ca15 in Fprogn (body=6) at ../../src/eval.c:462
#37 0x000000000054cdac in funcall_lambda (fun=fun <at> entry=19476262, nargs=nargs <at> entry=4, arg_vector=arg_vector <at> entry=0x7fff9903eee0) at ../../src/eval.c:3037
#38 0x000000000054c178 in apply_lambda (fun=19476262, args=<optimized out>, count=count <at> entry=42) at ../../src/eval.c:2919
#39 0x000000000054c4e9 in eval_sub (form=<optimized out>) at ../../src/eval.c:2256
#40 0x000000000054ca15 in Fprogn (body=6) at ../../src/eval.c:462
#41 0x000000000054c7e3 in eval_sub (form=<optimized out>) at ../../src/eval.c:2131
#42 0x000000000054ca15 in Fprogn (body=6) at ../../src/eval.c:462
#43 0x000000000054c7e3 in eval_sub (form=<optimized out>) at ../../src/eval.c:2131
#44 0x000000000054c7e3 in eval_sub (form=<optimized out>) at ../../src/eval.c:2131
#45 0x000000000054ca15 in Fprogn (body=6, body <at> entry=19494038) at ../../src/eval.c:462
#46 0x000000000054f688 in Fwhile (args=<optimized out>) at ../../src/eval.c:992
#47 0x000000000054c7e3 in eval_sub (form=<optimized out>) at ../../src/eval.c:2131
#48 0x000000000054ca15 in Fprogn (body=6, body <at> entry=19518774) at ../../src/eval.c:462
#49 0x0000000000548745 in Fsave_restriction (body=19518774) at ../../src/editfns.c:3415
#50 0x000000000054c7e3 in eval_sub (form=<optimized out>) at ../../src/eval.c:2131
#51 0x000000000054ca15 in Fprogn (body=6) at ../../src/eval.c:462
#52 0x000000000054f5f5 in Flet (args=19518230) at ../../src/eval.c:970
#53 0x000000000054c7e3 in eval_sub (form=<optimized out>) at ../../src/eval.c:2131
#54 0x000000000054ca15 in Fprogn (body=6) at ../../src/eval.c:462
#55 0x000000000054cdac in funcall_lambda (fun=fun <at> entry=19518182, nargs=nargs <at> entry=2, arg_vector=arg_vector <at> entry=0x7fff9903f690) at ../../src/eval.c:3037
#56 0x000000000054c178 in apply_lambda (fun=19518182, args=<optimized out>, count=count <at> entry=22) at ../../src/eval.c:2919
#57 0x000000000054c4e9 in eval_sub (form=<optimized out>) at ../../src/eval.c:2256
#58 0x000000000054ca15 in Fprogn (body=6, body <at> entry=19515958) at ../../src/eval.c:462
#59 0x000000000054f688 in Fwhile (args=<optimized out>) at ../../src/eval.c:992
#60 0x000000000054c7e3 in eval_sub (form=<optimized out>) at ../../src/eval.c:2131
#61 0x000000000054ca15 in Fprogn (body=6) at ../../src/eval.c:462
#62 0x000000000054f5f5 in Flet (args=19516310) at ../../src/eval.c:970
#63 0x000000000054c7e3 in eval_sub (form=<optimized out>) at ../../src/eval.c:2131
#64 0x000000000054ca15 in Fprogn (body=6) at ../../src/eval.c:462
#65 0x000000000054cdac in funcall_lambda (fun=fun <at> entry=19513158, nargs=nargs <at> entry=1, arg_vector=arg_vector <at> entry=0x7fff9903fab0) at ../../src/eval.c:3037
#66 0x000000000054c178 in apply_lambda (fun=19513158, args=<optimized out>, count=count <at> entry=14) at ../../src/eval.c:2919
#67 0x000000000054c4e9 in eval_sub (form=<optimized out>) at ../../src/eval.c:2256
#68 0x000000000054ca15 in Fprogn (body=6) at ../../src/eval.c:462
#69 0x000000000054cdac in funcall_lambda (fun=fun <at> entry=19509782, nargs=nargs <at> entry=2, arg_vector=arg_vector <at> entry=0x7fff9903fc80) at ../../src/eval.c:3037
#70 0x000000000054c178 in apply_lambda (fun=19509782, args=<optimized out>, count=count <at> entry=11) at ../../src/eval.c:2919
#71 0x000000000054c4e9 in eval_sub (form=form <at> entry=19527974) at ../../src/eval.c:2256
#72 0x000000000054fae1 in Feval (form=19527974, lexical=<optimized out>) at ../../src/eval.c:1996
#73 0x000000000054d1f0 in Ffuncall (nargs=<optimized out>, args=<optimized out>) at ../../src/eval.c:2814
#74 0x0000000000580de5 in exec_byte_code (bytestr=-514, vector=140735760544464, maxdepth=140735760544592, args_template=1028, nargs=77, args=0x2) at ../../src/bytecode.c:916
#75 0x000000000054cd47 in funcall_lambda (fun=9325745, nargs=nargs <at> entry=1, arg_vector=0x8e4cd8 <pure+593560>, arg_vector <at> entry=0x7fff99040030) at ../../src/eval.c:2978
#76 0x000000000054d013 in Ffuncall (nargs=2, args=0x7fff99040028) at ../../src/eval.c:2872
#77 0x0000000000580de5 in exec_byte_code (bytestr=-514, vector=140735760544464, maxdepth=140735760544592, args_template=0, nargs=140735760564264, args=0x2)
    at ../../src/bytecode.c:916
#78 0x000000000054cd47 in funcall_lambda (fun=9300361, nargs=nargs <at> entry=0, arg_vector=0x8de9b0 <pure+568176>, arg_vector <at> entry=0x7fff990401b8) at ../../src/eval.c:2978
#79 0x000000000054d013 in Ffuncall (nargs=1, args=0x7fff990401b0) at ../../src/eval.c:2872
#80 0x0000000000580de5 in exec_byte_code (bytestr=-514, vector=140735760544464, maxdepth=140735760544592, args_template=0, nargs=140735760564648, args=0x1)
    at ../../src/bytecode.c:916
#81 0x000000000054cd47 in funcall_lambda (fun=9296881, fun <at> entry=9296837, nargs=nargs <at> entry=0, arg_vector=0x8ddc18 <pure+564696>, arg_vector <at> entry=0x7fff990402a0)
    at ../../src/eval.c:2978
#82 0x000000000054c178 in apply_lambda (fun=9296837, args=<optimized out>, count=count <at> entry=3) at ../../src/eval.c:2919
#83 0x000000000054c4e9 in eval_sub (form=form <at> entry=15729862) at ../../src/eval.c:2256
#84 0x000000000054fae1 in Feval (form=15729862, lexical=<optimized out>) at ../../src/eval.c:1996
#85 0x000000000054b65e in internal_condition_case (bfun=bfun <at> entry=0x4dcb80 <top_level_2>, handlers=<optimized out>, hfun=hfun <at> entry=0x4e13c0 <cmd_error>) at ../../src/eval.c:1348
#86 0x00000000004dcb66 in top_level_1 (ignore=ignore <at> entry=12186482) at ../../src/keyboard.c:1195
#87 0x000000000054b56b in internal_catch (tag=12233698, func=func <at> entry=0x4dcb00 <top_level_1>, arg=12186482) at ../../src/eval.c:1112
#88 0x00000000004e0fcf in command_loop () at ../../src/keyboard.c:1156
#89 recursive_edit_1 () at ../../src/keyboard.c:778
#90 0x00000000004e12fd in Frecursive_edit () at ../../src/keyboard.c:849
#91 0x0000000000413755 in main (argc=<optimized out>, argv=0x7fff99040628) at ../../src/emacs.c:1642
(gdb)



In GNU Emacs 24.5.1 (x86_64-unknown-linux-gnu, X toolkit, Xaw scroll bars)
 of 2015-04-27 on sharmanbox.mitel.com
Windowing system distributor `CentOS', version 11.0.11300000
System Description: Red Hat Enterprise Linux Server release 6

Configured using:
 `configure --with-x-toolkit=athena --without-gsettings'

Important settings:
  value of $LANG: C
  value of $XMODIFIERS: @im=none
  locale-coding-system: nil

(Since this is not the emacs session that produced the problem the rest
of the generated input from rerprt-emacs-bug has been removed.)


I apologize for anything that occurs after this line; it's out of my control!



________________________________
NOTE: This e-mail (including any attachments) is for the sole use of the intended recipient(s) and may contain information that is confidential and/or protected by legal privilege. Any unauthorized review, use, copy, disclosure or distribution of this e-mail is strictly prohibited. If you are not the intended recipient, please notify Mitel immediately and destroy all copies of this e-mail. Mitel does not accept any liability for breach of security, error or virus that may result from the transmission of this message.
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
From: Glenn Morris <rgm <at> gnu.org>
To: 22622-done <at> debbugs.gnu.org
Subject: Re: bug#22622: 24.5;
 ask-user-about-supersession-threat causes emacs -batch to hang
Date: Tue, 23 Jan 2018 20:57:09 -0500
Version: 26.1

This should be fixed since 28718c4.
See https://debbugs.gnu.org/29955 for related discussion.


This bug report was last modified 7 years and 123 days ago.

Previous Next


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