Subject: race condition with compile mode line number parser
From: 積丹尼 Dan Jacobson <[email-masked]>
To: bug-gnu-emacs <[email-masked]>
Date: Wed, 02 Sep 2015 08:54:18 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

There is a race condition, whereas for me of
(compile "seq 99|perl -nwle 'print \"XX:$.:$_\"'" nil)
(compile "seq 999|perl -nwle 'print \"XX:$.:$_\"'" nil)
(compile "seq 9999|perl -nwle 'print \"XX:$.:$_\"'" nil)
the first and third ones complete with no problems,
whereas the middle one always stops at

XX:392:392
XX:393
Compilation finished at Wed Sep  2 08:46:23

(compile "perl -wle 'for(1..999){print \"XX:$_:$_\"}'" nil)
however finishes fine, as does plain
(compile "seq 999" nil) and
(compile "seq 999|perl -nwle 'print \"XX:$.:$_\"'; sleep 1" nil)

When I try it as root all finish fine.

Further notes: I was able to reproduce this on another machine via
doing C-x ESC ESC and pasting
(compile "seq 999|perl -nwle 'print \"XX:$.:$_\"'" nil)
at the Redo: prompt.

If one just puts the cursor at the end of that line in this message
and hits C-x C-e that will not reproduce the problem. Nor if one does
ESC : and pastes it in there either.

Note also there is two messages piling themselves on top of each
other, Compilation finished, and Find this error in (default XX): ...

My .emacs is in http://jidanni.org/comp/configuration/

emacs-version "24.5.1", Debian emacs24 24.5+1-1.