Subject: Re: bug#34206: Pdumper giving a segfault

From: Daniel Colascione <[email-masked]>
Date: Sat, 26 Jan 2019 19:50:17 -0800

On 1/26/19 2:49 AM, Eli Zaretskii wrote:
>> From: Compro Prasad <[email-masked]>
>> Date: Sat, 26 Jan 2019 14:33:57 +0530
>> Cc: [email-masked]
>>
>>>> GDB log: https://pastebin.com/2uMPHCRV
>>>
>>> This seems to indicate your configuration is quite complex, and I
>>> cannot easily understand what are you doing that is different from
>>> the normal build and "emacs -Q" to start Emacs.  In particular, this:
>>>
>>>    $ gdb ./src/emacs-27.0.50.11
>>>    Reading symbols from ./src/emacs-27.0.50.11...done.
>>>    (gdb) r --dump-file="/home/compro/.emacs.d/.cache/dumps/spacemacs.pdmp"
>>>    Starting program: /home/compro/Downloads/git.savannah.gnu.org/git/emacs/src/emacs-27.0.50.11 --dump-file="/home/compro/.emacs.d/.cache/dumps/spacemacs.pdmp"
>>>
>>> indicates that your pdump file is spacemacs.pdmp, but I don't know how
>>> that file was produced, and I cannot easily understand what is
>>> different in your build procedure from the normal upstream build of
>>> Emacs.
>> I don't know if you can help me but I have some more information on
>> how the dump might be produced.
>>
>> https://github.com/Compro-Prasad/spacemacs/blob/pdumper-is-in-master/core/core-dumper.el#L68
> 
> I don't think this helps much, as I don't really know anything about
> spacemacs and its build procedures.
> 
>> I went a bit further and tried executing the following using `C-x C-e`
>> while running spacemacs:
>>
>>     (dump-emacs-portable "~/test.pdmp")
>>
>> It gave me: eval: unsupported object type in dump: window configuration
>>
>> Is this a bug or I am supposed to run Emacs in batch mode while dumping?
> 
> Yes, dump-emacs-portable can only be invoked in batch mode.

That's not quite true. There's no particular reason it can't be invoked 
in any mode, but as the message indicates, there are some objects that 
pdumper doesn't know how to dump. Packages maintaining these objects 
should add-function to dump-emacs-portable to temporarily make these 
objects disappear while a dump is in progress.

In any case, neither the dump nor load should actually segfault. A 
segfault is a bug.