GNU bug report logs -
#30626
26.0.91; Crash when traversing a `stream-of-directory-files'
Previous Next
Reported by: Michael Heerdegen <michael_heerdegen <at> web.de>
Date: Tue, 27 Feb 2018 09:23:01 UTC
Severity: normal
Tags: fixed, patch
Found in version 26.0.91
Done: Noam Postavsky <npostavs <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):
On February 27, 2018 11:22:26 AM GMT+02:00, Michael Heerdegen <michael_heerdegen <at> web.de> wrote:
>
> Hello,
>
> Traversing a `stream-of-directory-files' over a huge directory
> hierarchy
> crashes my Emacs.
>
> Here is a recipe: I have a file
> "/home/micha/Treasure/today/stream-crash.el" with these contents:
>
> #+begin_src emacs-lisp
> ;; -*- lexical-binding: t -*-
>
> (require 'stream)
>
> (seq-doseq (_file (stream-of-directory-files
> "/home/micha" t nil t nil
> (lambda (file) (and (file-readable-p file) (file-regular-p file)))))
> nil)
> #+end_src
>
> Then I
>
> micha> emacs -Q -L /home/micha/software/elpa/packages/stream\
> -l /home/micha/Treasure/today/stream-crash.el
>
> and I get a segfault after ~ 1 minute.
>
> This kind of crash only seems to occur when the traversed directory is
> sufficiently large.
I guess it's a stack overflow: that function recurses into subdirectories.
To avoid such problems, the function should be rewritten to work by BFS, not DFS.
This bug report was last modified 6 years and 45 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.