|
From: | Jim Porter |
Subject: | Re: server.el test failures (was: Re: bug#9800: Incomplete truncated file buffers from the /proc filesystem) |
Date: | Fri, 24 Feb 2023 09:48:02 -0800 |
On 2/23/2023 11:52 PM, Eli Zaretskii wrote:
Date: Thu, 23 Feb 2023 18:20:39 -0800 From: Jim Porter <jporterbugs@gmail.com> Cc: emacs-devel@gnu.org The segfault is in FACE_FROM_ID_OR_NULL, called from Finternal_merge_in_global_face. It happens because the face_cache is null during these tests (since Emacs is noninteractive). The attached patch fixes the issue for me, though I'm not totally sure it's the *right* fix. Any thoughts? (I'm also not 100% sure this is the same issue you're seeing...)Please show the C backtrace from the crash, and include the Lisp backtrace (the "xbacktrace" command in src/.gdbinit).
Ok, I ran Emacs (master branch) under GDB with the following arguments:-Q -L ":../test" -l ert -l lisp/server-tests.el --batch --eval '(ert-run-tests-batch-and-exit (quote (not (or (tag :unstable) (tag :nativecomp)))))'
Attached is the backtrace from 'xbacktrace'.I think this only occurs when starting the Emacs server in a batch-mode Emacs process and then starting a client via "emacsclient -c". I see the segfault when running any of the tests in test/lisp/server-tests.el that create a frame (e.g. 'server-tests/server-start/stop-prompt-with-client').
This also only seems to occur if the first face that 'face-set-after-frame-default' passes to 'internal-merge-in-global-face' is the default face.
gdb.txt
Description: Text document
[Prev in Thread] | Current Thread | [Next in Thread] |