bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#24201: 25.1.50; TLS connections sometimes hang


From: Lars Ingebrigtsen
Subject: bug#24201: 25.1.50; TLS connections sometimes hang
Date: Sun, 18 Feb 2018 18:57:57 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

OK, I finally found a way to semi-reliably reproduce one of these hangs
I've been seeing.

The symptoms are that I move from one Gnus newsgroup to another, and in
certain circumstances Emacs will then hang forever.  `C-g' does work,
but only after hitting it a number of times -- it varies how many, but
5-10 `C-g's usually allows Emacs to proceed.

I've included the xbacktrace and the backtrace from gdb below.  If I
interpret this correctly, it looks like we're in
wait_reading_process_output, and that code decides to let a timer run,
and the timer then tries to establish a TLS connection, then we'll hang
indefinitely.

I think.

Should I try to run this in an unoptimized build to get more values
filled in?

(gdb) xbacktrace
"accept-process-output" (0xffffb138)
"network-stream-get-response" (0xffffb3d8)
"network-stream-open-starttls" (0xffffb888)
"open-network-stream" (0xffffbb90)
"nntp-open-connection" (0xffffc090)
"nntp-open-server" (0xffffc3a0)
"nntp-possibly-change-group" (0xffffca80)
"nntp-with-open-group-function" (0xffffcd30)
"nntp-request-article" (0xffffcfb0)
"gnus-request-article" (0xffffd250)
"gnus-async-prefetch-article" (0xffffd5e8)
"apply" (0xffffd6f8)
"timer-event-handler" (0xffffd9b8)

#0  pthread_sigmask (how=how@entry=0, newmask=<optimized out>, 
    newmask@entry=0x7fffffffa4f0, oldmask=oldmask@entry=0x7fffffffa590)
    at ../sysdeps/unix/sysv/linux/pthread_sigmask.c:50
#1  0x000000000050b41e in block_interrupt_signal 
(oldset=oldset@entry=0x7fffffffa590)
    at sysdep.c:843
#2  0x00000000005c821d in really_call_select (arg=0x7fffffffa630) at 
thread.c:567
#3  0x00000000005c8789 in thread_select (func=<optimized out>, 
max_fds=max_fds@entry=16, 
    rfds=rfds@entry=0x7fffffffa700, wfds=wfds@entry=0x7fffffffa780, 
efds=efds@entry=0x0, 
    timeout=timeout@entry=0x7fffffffad50, sigmask=0x0) at thread.c:602
#4  0x00000000005e5a35 in xg_select (fds_lim=16, 
rfds=rfds@entry=0x7fffffffae40, 
    wfds=wfds@entry=0x7fffffffaec0, efds=efds@entry=0x0, 
    timeout=timeout@entry=0x7fffffffad50, sigmask=sigmask@entry=0x0) at 
xgselect.c:117
#5  0x00000000005a9f29 in wait_reading_process_output (time_limit=<optimized 
out>, 
    nsecs=<optimized out>, read_kbd=read_kbd@entry=0, 
do_display=do_display@entry=false, 
    wait_for_cell=wait_for_cell@entry=XIL(0), 
wait_proc=wait_proc@entry=0x40c3ba0, 
    just_wait_proc=0) at process.c:5379
#6  0x00000000005ab808 in Faccept_process_output (process=XIL(0x40c3ba5), 
    seconds=<optimized out>, millisec=<optimized out>, just_this_one=<optimized 
out>)
    at process.c:4667
#7  0x0000000000568404 in Ffuncall (nargs=<optimized out>, 
    args=args@entry=0x7fffffffb130) at eval.c:2818
#8  0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x4201a65), maxdepth=<optimized out>, args_template=<optimized 
out>, 
    nargs=nargs@entry=59, args=<optimized out>, args@entry=0x3b) at 
bytecode.c:632
#9  0x000000000056809f in funcall_lambda (fun=XIL(0x7fffffffb150), nargs=59, 
    nargs@entry=3, arg_vector=0x3b, arg_vector@entry=0x7fffffffb3d8) at 
eval.c:3019
#10 0x000000000056834b in Ffuncall (nargs=4, args=args@entry=0x7fffffffb3d0)
    at eval.c:2832
#11 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x4201805), maxdepth=<optimized out>, args_template=<optimized 
out>, 
    nargs=nargs@entry=58, args=<optimized out>, args@entry=0x3a) at 
bytecode.c:632
#12 0x000000000056809f in funcall_lambda (fun=XIL(0x7fffffffb448), nargs=58, 
    nargs@entry=5, arg_vector=0x3a, arg_vector@entry=0x7fffffffb888) at 
eval.c:3019
#13 0x000000000056834b in Ffuncall (nargs=6, args=args@entry=0x7fffffffb880)
    at eval.c:2832
#14 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x42014f5), maxdepth=<optimized out>, args_template=<optimized 
out>, 
    nargs=nargs@entry=56, args=<optimized out>, args@entry=0x38) at 
bytecode.c:632
#15 0x000000000056809f in funcall_lambda (fun=XIL(0x7fffffffb8d8), nargs=56, 
    nargs@entry=14, arg_vector=0x38, arg_vector@entry=0x7fffffffbb90) at 
eval.c:3019
#16 0x000000000056834b in Ffuncall (nargs=15, args=args@entry=0x7fffffffbb88)
    at eval.c:2832
#17 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x416a9c5), maxdepth=<optimized out>, 
    args_template=args_template@entry=XIL(0), nargs=nargs@entry=0, 
args=<optimized out>, 
    args@entry=0x0) at bytecode.c:632
#18 0x0000000000567f69 in funcall_lambda (fun=XIL(0x416ad05), 
nargs=nargs@entry=1, 
    arg_vector=arg_vector@entry=0x7fffffffc090) at eval.c:3101
#19 0x000000000056834b in Ffuncall (nargs=2, args=args@entry=0x7fffffffc088)
    at eval.c:2832
#20 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x4164515), maxdepth=<optimized out>, 
    args_template=args_template@entry=XIL(0), nargs=nargs@entry=0, 
args=<optimized out>, 
    args@entry=0x0) at bytecode.c:632
#21 0x0000000000567f69 in funcall_lambda (fun=XIL(0x4161925), 
nargs=nargs@entry=3, 
    arg_vector=arg_vector@entry=0x7fffffffc3a0) at eval.c:3101
#22 0x000000000056834b in Ffuncall (nargs=4, args=args@entry=0x7fffffffc398)
    at eval.c:2832
#23 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x416b7d5), maxdepth=<optimized out>, 
    args_template=args_template@entry=XIL(0), nargs=nargs@entry=0, 
args=<optimized out>, 
    args@entry=0x0) at bytecode.c:632
#24 0x0000000000567f69 in funcall_lambda (fun=XIL(0x416bb25), 
nargs=nargs@entry=3, 
    arg_vector=arg_vector@entry=0x7fffffffca80) at eval.c:3101
#25 0x000000000056834b in Ffuncall (nargs=4, args=args@entry=0x7fffffffca78)
    at eval.c:2832
#26 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x415c965), maxdepth=<optimized out>, 
    args_template=args_template@entry=XIL(0), nargs=nargs@entry=0, 
args=<optimized out>, 
    args@entry=0x0) at bytecode.c:632
#27 0x0000000000567f69 in funcall_lambda (fun=XIL(0x415ca15), 
nargs=nargs@entry=4, 
    arg_vector=arg_vector@entry=0x7fffffffcd30) at eval.c:3101
#28 0x000000000056834b in Ffuncall (nargs=5, args=args@entry=0x7fffffffcd28)
    at eval.c:2832
#29 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x4161285), maxdepth=<optimized out>, 
    args_template=args_template@entry=XIL(0), nargs=nargs@entry=0, 
args=<optimized out>, 
    args@entry=0x0) at bytecode.c:632
#30 0x0000000000567f69 in funcall_lambda (fun=XIL(0x41612b5), 
nargs=nargs@entry=4, 
    arg_vector=arg_vector@entry=0x7fffffffcfb0) at eval.c:3101
#31 0x000000000056834b in Ffuncall (nargs=5, args=args@entry=0x7fffffffcfa8)
    at eval.c:2832
#32 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x3e57535), maxdepth=<optimized out>, 
    args_template=args_template@entry=XIL(0), nargs=nargs@entry=0, 
args=<optimized out>, 
    args@entry=0x0) at bytecode.c:632
#33 0x0000000000567f69 in funcall_lambda (fun=XIL(0x3e1d7f5), 
nargs=nargs@entry=2, 
    arg_vector=arg_vector@entry=0x7fffffffd250) at eval.c:3101
#34 0x000000000056834b in Ffuncall (nargs=3, args=args@entry=0x7fffffffd248)
    at eval.c:2832
#35 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x41b5ba5), maxdepth=<optimized out>, 
    args_template=args_template@entry=XIL(0), nargs=nargs@entry=0, 
args=<optimized out>, 
    args@entry=0x0) at bytecode.c:632
#36 0x0000000000567f69 in funcall_lambda (fun=XIL(0x424d585), 
nargs=nargs@entry=3, 
    arg_vector=arg_vector@entry=0x7fffffffd5e8) at eval.c:3101
#37 0x000000000056834b in Ffuncall (nargs=nargs@entry=4, args=0x7fffffffd5e0)
    at eval.c:2832
#38 0x0000000000569d70 in Fapply (nargs=2, args=<optimized out>) at eval.c:2438
#39 0x0000000000568404 in Ffuncall (nargs=<optimized out>, 
    args=args@entry=0x7fffffffd6f0) at eval.c:2818
#40 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x99b3dd), 
    maxdepth=<optimized out>, args_template=<optimized out>, 
nargs=nargs@entry=6, 
    args=<optimized out>, args@entry=0x6) at bytecode.c:632
#41 0x000000000056809f in funcall_lambda (fun=XIL(0x7fffffffd728), nargs=6, 
    nargs@entry=1, arg_vector=0x6, arg_vector@entry=0x7fffffffd9b8) at 
eval.c:3019
#42 0x000000000056834b in Ffuncall (nargs=nargs@entry=2, 
args=args@entry=0x7fffffffd9b0)
    at eval.c:2832
#43 0x00000000005684ba in call1 (fn=fn@entry=XIL(0xc480), 
arg1=arg1@entry=XIL(0x4b72725))
    at eval.c:2669
#44 0x00000000004f8ebb in timer_check_2 (idle_timers=<optimized out>, 
    timers=<optimized out>) at keyboard.c:4330
#45 timer_check () at keyboard.c:4392
#46 0x00000000005a9367 in wait_reading_process_output 
(time_limit=time_limit@entry=30, 
    nsecs=nsecs@entry=0, read_kbd=-1, do_display=do_display@entry=true, 
    wait_for_cell=wait_for_cell@entry=XIL(0), wait_proc=wait_proc@entry=0x0, 
    just_wait_proc=0) at process.c:5144
#47 0x0000000000424060 in sit_for (timeout=<optimized out>, 
reading=reading@entry=true, 
    display_option=display_option@entry=1) at dispnew.c:5804
#48 0x00000000004feae2 in read_char (commandflag=commandflag@entry=1, 
    map=map@entry=XIL(0x4dca1c3), prev_event=<optimized out>, 
    used_mouse_menu=used_mouse_menu@entry=0x7fffffffe5ab, 
end_time=end_time@entry=0x0)
    at keyboard.c:2723
#49 0x00000000004ff7b7 in read_key_sequence 
(keybuf=keybuf@entry=0x7fffffffe6a0, 
    prompt=prompt@entry=XIL(0), 
dont_downcase_last=dont_downcase_last@entry=false, 
    can_return_switch_frame=can_return_switch_frame@entry=true, 
    fix_current_buffer=fix_current_buffer@entry=true, 
    prevent_redisplay=prevent_redisplay@entry=false, bufsize=30) at 
keyboard.c:9137
#50 0x00000000005013be in command_loop_1 () at keyboard.c:1370
#51 0x00000000005669ae in internal_condition_case (
    bfun=bfun@entry=0x5011a0 <command_loop_1>, 
handlers=handlers@entry=XIL(0x5280), 
    hfun=hfun@entry=0x4f8210 <cmd_error>) at eval.c:1332
#52 0x00000000004f2b94 in command_loop_2 (ignore=ignore@entry=XIL(0)) at 
keyboard.c:1111
#53 0x000000000056694c in internal_catch (tag=tag@entry=XIL(0xc750), 
    func=func@entry=0x4f2b70 <command_loop_2>, arg=arg@entry=XIL(0)) at 
eval.c:1097
#54 0x00000000004f2b50 in command_loop () at keyboard.c:1090
#55 0x00000000004f7df3 in recursive_edit_1 () at keyboard.c:696
#56 0x00000000004f8158 in Frecursive_edit () at keyboard.c:767
#57 0x000000000041a5c3 in main (argc=<optimized out>, argv=0x7fffffffea18)
    at emacs.c:1724

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no






reply via email to

[Prev in Thread] Current Thread [Next in Thread]