unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: npostavs@users.sourceforge.net
To: Keith David Bershatsky <esq@lawlist.com>
Cc: 27571@debbugs.gnu.org
Subject: bug#27571: Crashing when printing a lisp object.
Date: Mon, 03 Jul 2017 23:32:50 -0400	[thread overview]
Message-ID: <878tk4j2ql.fsf@users.sourceforge.net> (raw)
In-Reply-To: <m24lutvsmj.wl%esq@lawlist.com> (Keith David Bershatsky's message of "Mon, 03 Jul 2017 19:32:52 -0700")

Keith David Bershatsky <esq@lawlist.com> writes:

> I will work on trying to come up with a way to create the 6652-count
> example that doesn't involve using the custom version of undo-tree to
> go from a count of 6651 to a count of 6652.

This seems to do the job for me:

    (require 'cl-lib)

    (defun make-deep-object (depth)
      (let ((obj 1))
        (while (> (cl-decf depth) 0)
          (setq obj (vector (list obj))))
        obj))

    (setq print-circle t)

    (prin1-to-string (make-deep-object 4964))

With the default stack limit of 8192 I get a crash at 4964.  After doing
'ulimit -S -s unlimited' I could evaluate (prin1-to-string
(make-deep-object 640000)) successfully (I didn't bother testing higher,
since that already takes quite a while to run).

Setting a particular value for stack size limit didn't help, below 5MB
it still crashed, and above I got a glib error about failure to create a
thread.

    (process:23894): GLib-ERROR **: creating thread 'gmain': Error creating thread: Resource temporarily unavailable

    Program received signal SIGTRAP, Trace/breakpoint trap.
    0x00007ffebcb3aff1 in ?? () from /usr/lib/libglib-2.0.so.0

Emacs has some code in main() to increase the stack size limit (search
for 'setrlimit'), I'm not sure how that interacts with the limits above.

> In terms of the reference to line 1350, I'm not sure what that refers
> to.

I was just checking we have correponding source lines, i.e., that line
1350 of src/print.c is the opening brace of print_object.





  reply	other threads:[~2017-07-04  3:32 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-04  1:42 bug#27571: Crashing when printing a lisp object Keith David Bershatsky
2017-07-04  2:05 ` npostavs
2017-07-04  2:32 ` Keith David Bershatsky
2017-07-04  3:32   ` npostavs [this message]
2020-08-24 14:11     ` Lars Ingebrigtsen
2020-10-01  1:59       ` Lars Ingebrigtsen
2017-07-04  3:49 ` Keith David Bershatsky
2017-07-07  2:46   ` npostavs
2017-07-26  1:14 ` Keith David Bershatsky
2018-01-09  1:38 ` bug#27571: #27571; C stack overflow from `prin1' on deeply nested " Keith David Bershatsky
2018-01-09  7:53   ` Paul Eggert
2018-01-09 12:58   ` bug#27571: " Noam Postavsky
2018-01-09 16:33 ` bug#27571: #27571; " Keith David Bershatsky
2018-01-09 16:43 ` bug#27571: " Keith David Bershatsky
2018-01-28 21:45   ` Noam Postavsky
2018-01-28 23:23 ` Keith David Bershatsky
2018-01-28 23:43   ` Noam Postavsky
2018-01-28 23:49 ` Keith David Bershatsky
2018-01-29  0:13   ` Noam Postavsky
2018-01-29  4:26 ` Keith David Bershatsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=878tk4j2ql.fsf@users.sourceforge.net \
    --to=npostavs@users.sourceforge.net \
    --cc=27571@debbugs.gnu.org \
    --cc=esq@lawlist.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).