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 (address@hidden, newmask=<optimized out>, 
    address@hidden, address@hidden)
    at ../sysdeps/unix/sysv/linux/pthread_sigmask.c:50
#1  0x000000000050b41e in block_interrupt_signal (address@hidden)
    at sysdep.c:843
#2  0x00000000005c821d in really_call_select (arg=0x7fffffffa630) at 
thread.c:567
#3  0x00000000005c8789 in thread_select (func=<optimized out>, address@hidden, 
    address@hidden, address@hidden, address@hidden, 
    address@hidden, sigmask=0x0) at thread.c:602
#4  0x00000000005e5a35 in xg_select (fds_lim=16, address@hidden, 
    address@hidden, address@hidden, 
    address@hidden, address@hidden) at xgselect.c:117
#5  0x00000000005a9f29 in wait_reading_process_output (time_limit=<optimized 
out>, 
    nsecs=<optimized out>, address@hidden, address@hidden, 
    address@hidden(0), address@hidden, 
    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>, 
    address@hidden) at eval.c:2818
#8  0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x4201a65), maxdepth=<optimized out>, args_template=<optimized 
out>, 
    address@hidden, args=<optimized out>, address@hidden) at bytecode.c:632
#9  0x000000000056809f in funcall_lambda (fun=XIL(0x7fffffffb150), nargs=59, 
    address@hidden, arg_vector=0x3b, address@hidden) at eval.c:3019
#10 0x000000000056834b in Ffuncall (nargs=4, address@hidden)
    at eval.c:2832
#11 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x4201805), maxdepth=<optimized out>, args_template=<optimized 
out>, 
    address@hidden, args=<optimized out>, address@hidden) at bytecode.c:632
#12 0x000000000056809f in funcall_lambda (fun=XIL(0x7fffffffb448), nargs=58, 
    address@hidden, arg_vector=0x3a, address@hidden) at eval.c:3019
#13 0x000000000056834b in Ffuncall (nargs=6, address@hidden)
    at eval.c:2832
#14 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x42014f5), maxdepth=<optimized out>, args_template=<optimized 
out>, 
    address@hidden, args=<optimized out>, address@hidden) at bytecode.c:632
#15 0x000000000056809f in funcall_lambda (fun=XIL(0x7fffffffb8d8), nargs=56, 
    address@hidden, arg_vector=0x38, address@hidden) at eval.c:3019
#16 0x000000000056834b in Ffuncall (nargs=15, address@hidden)
    at eval.c:2832
#17 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x416a9c5), maxdepth=<optimized out>, 
    address@hidden(0), address@hidden, args=<optimized out>, 
    address@hidden) at bytecode.c:632
#18 0x0000000000567f69 in funcall_lambda (fun=XIL(0x416ad05), address@hidden, 
    address@hidden) at eval.c:3101
#19 0x000000000056834b in Ffuncall (nargs=2, address@hidden)
    at eval.c:2832
#20 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x4164515), maxdepth=<optimized out>, 
    address@hidden(0), address@hidden, args=<optimized out>, 
    address@hidden) at bytecode.c:632
#21 0x0000000000567f69 in funcall_lambda (fun=XIL(0x4161925), address@hidden, 
    address@hidden) at eval.c:3101
#22 0x000000000056834b in Ffuncall (nargs=4, address@hidden)
    at eval.c:2832
#23 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x416b7d5), maxdepth=<optimized out>, 
    address@hidden(0), address@hidden, args=<optimized out>, 
    address@hidden) at bytecode.c:632
#24 0x0000000000567f69 in funcall_lambda (fun=XIL(0x416bb25), address@hidden, 
    address@hidden) at eval.c:3101
#25 0x000000000056834b in Ffuncall (nargs=4, address@hidden)
    at eval.c:2832
#26 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x415c965), maxdepth=<optimized out>, 
    address@hidden(0), address@hidden, args=<optimized out>, 
    address@hidden) at bytecode.c:632
#27 0x0000000000567f69 in funcall_lambda (fun=XIL(0x415ca15), address@hidden, 
    address@hidden) at eval.c:3101
#28 0x000000000056834b in Ffuncall (nargs=5, address@hidden)
    at eval.c:2832
#29 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x4161285), maxdepth=<optimized out>, 
    address@hidden(0), address@hidden, args=<optimized out>, 
    address@hidden) at bytecode.c:632
#30 0x0000000000567f69 in funcall_lambda (fun=XIL(0x41612b5), address@hidden, 
    address@hidden) at eval.c:3101
#31 0x000000000056834b in Ffuncall (nargs=5, address@hidden)
    at eval.c:2832
#32 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x3e57535), maxdepth=<optimized out>, 
    address@hidden(0), address@hidden, args=<optimized out>, 
    address@hidden) at bytecode.c:632
#33 0x0000000000567f69 in funcall_lambda (fun=XIL(0x3e1d7f5), address@hidden, 
    address@hidden) at eval.c:3101
#34 0x000000000056834b in Ffuncall (nargs=3, address@hidden)
    at eval.c:2832
#35 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
    vector=XIL(0x41b5ba5), maxdepth=<optimized out>, 
    address@hidden(0), address@hidden, args=<optimized out>, 
    address@hidden) at bytecode.c:632
#36 0x0000000000567f69 in funcall_lambda (fun=XIL(0x424d585), address@hidden, 
    address@hidden) at eval.c:3101
#37 0x000000000056834b in Ffuncall (address@hidden, 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>, 
    address@hidden) at eval.c:2818
#40 0x000000000059eea8 in exec_byte_code (bytestr=<optimized out>, 
vector=XIL(0x99b3dd), 
    maxdepth=<optimized out>, args_template=<optimized out>, address@hidden, 
    args=<optimized out>, address@hidden) at bytecode.c:632
#41 0x000000000056809f in funcall_lambda (fun=XIL(0x7fffffffd728), nargs=6, 
    address@hidden, arg_vector=0x6, address@hidden) at eval.c:3019
#42 0x000000000056834b in Ffuncall (address@hidden, address@hidden)
    at eval.c:2832
#43 0x00000000005684ba in call1 (address@hidden(0xc480), 
address@hidden(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 (address@hidden, 
    address@hidden, read_kbd=-1, address@hidden, 
    address@hidden(0), address@hidden, 
    just_wait_proc=0) at process.c:5144
#47 0x0000000000424060 in sit_for (timeout=<optimized out>, address@hidden, 
    address@hidden) at dispnew.c:5804
#48 0x00000000004feae2 in read_char (address@hidden, 
    address@hidden(0x4dca1c3), prev_event=<optimized out>, 
    address@hidden, address@hidden)
    at keyboard.c:2723
#49 0x00000000004ff7b7 in read_key_sequence (address@hidden, 
    address@hidden(0), address@hidden, 
    address@hidden, 
    address@hidden, 
    address@hidden, bufsize=30) at keyboard.c:9137
#50 0x00000000005013be in command_loop_1 () at keyboard.c:1370
#51 0x00000000005669ae in internal_condition_case (
    address@hidden <command_loop_1>, address@hidden(0x5280), 
    address@hidden <cmd_error>) at eval.c:1332
#52 0x00000000004f2b94 in command_loop_2 (address@hidden(0)) at keyboard.c:1111
#53 0x000000000056694c in internal_catch (address@hidden(0xc750), 
    address@hidden <command_loop_2>, address@hidden(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]