2017-10-10 18:48 GMT+02:00 Eli Zaretskii : > > Date: Tue, 10 Oct 2017 19:30:11 +0300 > > From: Eli Zaretskii > > Cc: emacs-devel@gnu.org > > > > > From: Fabrice Popineau > > > Date: Tue, 10 Oct 2017 18:13:19 +0200 > > > Cc: Emacs developers > > > > > > (gdb) p stack_pos > > > $3 = {__max_align_ll = 0, __max_align_ld = 3. > 587554638101247699761989924457637e-4943} > > > > What is &stack_pos, the address of stack_pos? Is it properly aligned? > > Also, this very snippet runs every time a non-main thread is run by > Emacs, and yet all of the 18 tests before this one succeeded for you. > What is different in this 19th test that it fails? > What does this test do exactly ? (Well I could read the code but ... doing many other things in parallel) Because if I print &stack_pos, I get : (gdb) run -batch --no-site-file --no-site-lisp -L ";../../emacs/test" -l ert -l src/thread-tests.el --eval "(ert-run-tests-batch-and-exit (quote (not (tag :expensive-test))))" Starting program: /d/Source/emacs/build-emacs-26/src/emacs -batch --no-site-file --no-site-lisp -L ";../../emacs/test" -l ert -l src/thread-tests.el --eval "(ert-run-tests-batch-and-exit (quote (not (tag :expensive-test))))" [New Thread 20864.0x60c] [New Thread 20864.0x5bb4] [New Thread 20864.0x3070] [New Thread 20864.0x332c] [New Thread 20864.0x512c] Running 28 tests (2017-10-10 19:54:11+0100) [New Thread 20864.0x42ec] [Thread 20864.0x42ec exited with code 0] [New Thread 20864.0x25e8] stack_pos = 741feb0 stack_pos = 7c1feb0 passed 1/28 thread-errors [New Thread 20864.0x1118] [Thread 20864.0x25e8 exited with code 0] [Thread 20864.0x1118 exited with code 0] stack_pos = 841feb0 passed 2/28 thread-signal-early passed 3/28 thread-sticky-point [New Thread 20864.0x562c] stack_pos = 8c1feb0 passed 4/28 threads-alive passed 5/28 threads-all-threads [New Thread 20864.0x471c] [Thread 20864.0x562c exited with code 0] [Thread 20864.0x471c exited with code 0] stack_pos = 941feb0 passed 6/28 threads-basic passed 7/28 threads-condvar-mutex passed 8/28 threads-condvar-name passed 9/28 threads-condvar-name-2 passed 10/28 threads-condvar-type [New Thread 20864.0x2970] [Thread 20864.0x2970 exited with code 0] stack_pos = 9c1feb0 passed 11/28 threads-condvar-wait passed 12/28 threads-condvarp passed 13/28 threads-condvarp-2 [New Thread 20864.0x16a0] [Thread 20864.0x16a0 exited with code 0] stack_pos = a41feb0 passed 14/28 threads-io-switch passed 15/28 threads-is-one [New Thread 20864.0x4e68] [Thread 20864.0x4e68 exited with code 0] stack_pos = ac1feb0 passed 16/28 threads-join passed 17/28 threads-join-self [New Thread 20864.0x63f4] [Thread 20864.0x63f4 exited with code 0] stack_pos = b41feb0 passed 18/28 threads-let-binding [New Thread 20864.0x4340] Thread 15 received signal SIGSEGV, Segmentation fault. [Switching to Thread 20864.0x4340] run_thread (state=0x400ae5e78 ) at ../../emacs/src/thread.c:702 702 self->m_stack_bottom = (char *) &stack_pos; The value of stack_pos keeps increasing. Isn't there some limit that is reached here ? Fabrice