unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#20440: 24.4; memory corruption
@ 2015-04-27 15:45 Neal Becker
  2015-04-27 17:39 ` Stefan Monnier
  2015-09-10 13:33 ` bug#20440: reproducible recipe Sho Takemori
  0 siblings, 2 replies; 12+ messages in thread
From: Neal Becker @ 2015-04-27 15:45 UTC (permalink / raw)
  To: 20440

[-- Attachment #1: Type: text/plain, Size: 6671 bytes --]

When on-disk file has changed, I use the following function to re-read
buffer:

(defun refresh-file ()
  (interactive)
  (revert-buffer t (not (buffer-modified-p)) t)
  )

(global-set-key [f5] 'refresh-file)

I have seen (again this morning) I wind up with a corrupted buffer.  It
appears a segment of the data is correct, but data has been reordered.
I'm looking at a python source file.  For example, in the middle of the
buffer, it
looks like the beginning of the file is inserted (sorry I no longer have
this buffer and can't be precise).

Kill buffer, and reload file, and it's fixed.




In GNU Emacs 24.4.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.14.11)
 of 2015-04-07 on buildvm-06.phx2.fedoraproject.org
Windowing system distributor `Fedora Project', version 11.0.11603000
System Description: Fedora release 21 (Twenty One)

Configured using:
 `configure --build=x86_64-redhat-linux-gnu
 --host=x86_64-redhat-linux-gnu --program-prefix=
 --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
 --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
 --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
 --libexecdir=/usr/libexec --localstatedir=/var
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png
 --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
 --with-gpm=no build_alias=x86_64-redhat-linux-gnu
 host_alias=x86_64-redhat-linux-gnu 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g
 -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4
 -grecord-gcc-switches -m64 -mtune=generic' 'LDFLAGS=-Wl,-z,relro ''

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Python

Minor modes in effect:
  diff-auto-refine-mode: t
  jedi-mode: t
  global-auto-complete-mode: t
  auto-complete-mode: t
  display-time-mode: t
  override-global-mode: t
  shell-dirtrack-mode: t
  delete-selection-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<prior> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> C-SPC <down> <down> <down> C-c # C-x C-s C-x v
v C-x v = C-x o r e m o v e <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> c l
e a n u p C-c C-c M-x s h e l l <return> M-p <return>
C-x C-f t e s T _ u <tab> <backspace> <backspace> <backspace>
t _ u <tab> <return> y e s <return> <C-home> C-s c
o n s i d e r e d C-s C-s C-s C-s C-a C-s c o n s i
d C-s C-a <next> <next> <next> <prior> C-x k <return>
C-x C-f t e s t _ u <tab> <return> C-s c o n s i d
e r e d C-s C-s C-s C-s C-s C-r C-r C-a C-s C-s C-s
C-a C-h c <f5> C-h f r e f r e s h - f i l e <return>
C-x C-f C-g C-x o C-e <left> <left> <left> <return>
<help-echo> <help-echo> <help-echo> C-h v e m a c s
- v e r <tab> <return> <help-echo> <help-echo> <help-echo>
C-SPC <down> <down> <down> <down> <down> <down> M-w
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
C-x C-f <return> C-x 1 g <down> f C-x C-f t e s C-g
C-x b t e s t _ u <tab> <return> C-s - - l i m i t
- C-r C-r C-a C-r l i m i t _ n e w <help-echo> <help-echo>
<help-echo> C-a C-s p a r t i a l C-a <help-echo> C-x
C-f <return> g <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> f <help-echo>
<help-echo> M-x r e p o r t <tab> <return>

Recent messages:
Type C-x 1 to delete the help window.
Quit

Mark set
Directory has changed on disk; type g to update Dired
Quit
Mark saved where search started [3 times]
Directory has changed on disk; type g to update Dired
Local value of py-indent-offset set to 4
Using the CPython shell

Load-path shadows:
/home/nbecker/.emacs.d/elpa/ipython-2927/ipython hides
/home/nbecker/.emacs.d/lisp/ipython

Features:
(shadow sort mail-extr emacsbug sendmail eieio-opt speedbar sb-image
ezimage dframe find-func help-mode misearch multi-isearch diff-mode
log-edit message rfc822 mml mml-sec mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils
gmm-utils mailheader pcvs-util add-log vc warnings vc-dispatcher vc-hg
network-stream auth-source gnus-util mm-util mail-prsvr password-cache
starttls tls jedi-direx direx eieio eieio-core jedi jedi-core
python-environment epc ctable concurrent deferred imenu dired flymake
ido ess-toolbar ess-mouse mouseme browse-url ess-menu ess-swv ess-noweb
ess-noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-l
ess-sas-a ess-sta-d ess-sta-l cc-vars cc-defs make-regexp ess-sp6-d
ess-sp3-d ess-julia ess-r-d ess-r-completion ess-tracebug format-spec
ess-roxy hideshow ess-help ess-developer eldoc ess-s-l ess ess-inf
ess-mode ess-noweb-mode ess-utils ess-custom ess-compat ess-site
auto-complete popup zoom-frm frame-cmds frame-fns avoid browse-kill-ring
edmacro kmacro rst time felineherd byte-opt thingatpt use-package
diminish bytecomp byte-compile cconv bind-key easy-mmode ipython advice
help-fns executable shell pcomplete python-mode info-look cl-macs
compile cl gv cl-loaddefs cl-lib comint ansi-color ring info easymenu
diminish-autoloads package epg-config delsel cus-start cus-load
time-date tooltip electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment lisp-mode prog-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button
faces cus-face macroexp files text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind gfilenotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)

Memory information:
((conses 16 248657 26119)
 (symbols 48 35288 16)
 (miscs 40 160 351)
 (strings 32 62111 7050)
 (string-bytes 1 1794555)
 (vectors 16 30112)
 (vector-slots 8 950184 74983)
 (floats 8 170 618)
 (intervals 56 2593 0)
 (buffers 960 28)
 (heap 1024 141858 53739))


-- 
*Those who don't understand recursion are doomed to repeat it*

[-- Attachment #2: Type: text/html, Size: 9301 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#20440: 24.4; memory corruption
  2015-04-27 15:45 bug#20440: 24.4; memory corruption Neal Becker
@ 2015-04-27 17:39 ` Stefan Monnier
  2015-04-27 17:44   ` Neal Becker
  2015-09-10 13:33 ` bug#20440: reproducible recipe Sho Takemori
  1 sibling, 1 reply; 12+ messages in thread
From: Stefan Monnier @ 2015-04-27 17:39 UTC (permalink / raw)
  To: Neal Becker; +Cc: 20440

> I have seen (again this morning) I wind up with a corrupted buffer.
> It appears a segment of the data is correct, but data has been
> reordered.  I'm looking at a python source file.  For example, in the
> middle of the buffer, it looks like the beginning of the file is
> inserted (sorry I no longer have this buffer and can't be precise).

Next time it happens, could you save the corrupted buffer to some temp
file, and then compare that with the actual file's content, to get
a more precise description of the corruption?

You say it's a Python file.  What modes/packages do you use to edit
those files?  What does `M-: after-change-functions' and `M-:
before-change-functions' say in those buffers?


        Stefan





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#20440: 24.4; memory corruption
  2015-04-27 17:39 ` Stefan Monnier
@ 2015-04-27 17:44   ` Neal Becker
  2015-04-27 19:48     ` Stefan Monnier
  0 siblings, 1 reply; 12+ messages in thread
From: Neal Becker @ 2015-04-27 17:44 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 20440

[-- Attachment #1: Type: text/plain, Size: 1477 bytes --]

before-change-functions is a variable defined in `C source code'.
Its value is (t syntax-ppss-flush-cache)
Local in buffer test_unframed.py; global value is nil

after-change-functions is a variable defined in `C source code'.
Its value is (jit-lock-after-change jedi:after-change-handler t)
Local in buffer test_unframed.py; global value is nil

I have captured a corrupt buffer.  This time, emacs said 'file has changed,
reload?'.  Again it is corrupted.
The 1st diff is that in the corrupted file, the beginning of the file is
inserted into the middle of the buffer

On Mon, Apr 27, 2015 at 1:39 PM, Stefan Monnier <monnier@iro.umontreal.ca>
wrote:

> > I have seen (again this morning) I wind up with a corrupted buffer.
> > It appears a segment of the data is correct, but data has been
> > reordered.  I'm looking at a python source file.  For example, in the
> > middle of the buffer, it looks like the beginning of the file is
> > inserted (sorry I no longer have this buffer and can't be precise).
>
> Next time it happens, could you save the corrupted buffer to some temp
> file, and then compare that with the actual file's content, to get
> a more precise description of the corruption?
>
> You say it's a Python file.  What modes/packages do you use to edit
> those files?  What does `M-: after-change-functions' and `M-:
> before-change-functions' say in those buffers?
>
>
>         Stefan
>



-- 
*Those who don't understand recursion are doomed to repeat it*

[-- Attachment #2: Type: text/html, Size: 2165 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#20440: 24.4; memory corruption
  2015-04-27 17:44   ` Neal Becker
@ 2015-04-27 19:48     ` Stefan Monnier
  2015-04-28 11:01       ` Neal Becker
  0 siblings, 1 reply; 12+ messages in thread
From: Stefan Monnier @ 2015-04-27 19:48 UTC (permalink / raw)
  To: Neal Becker; +Cc: 20440

> after-change-functions is a variable defined in `C source code'.
> Its value is (jit-lock-after-change jedi:after-change-handler t)
> Local in buffer test_unframed.py; global value is nil

Hmm... could it be that jedi:after-change-handler does something funny?
Tho it seems rather unlikely: when it gets run, the revert has
already happened!

> I have captured a corrupt buffer.  This time, emacs said 'file has changed,
> reload?'.  Again it is corrupted.
> The 1st diff is that in the corrupted file, the beginning of the file is
> inserted into the middle of the buffer

Normally revert compares the buffer's content and the file's content
(from both ends) to find the common "prefix" and "suffix" and only
performs the update on the characters in-between.  IOW the beginning of
the buffer/file is not touched and the end is not touched either.

So rather than "the beginning of the file is inserted into the middle of
the buffer" it sounds like the "characters in-between" end up being
inserted at the beginning of the buffer.

Was the region active when the revert happened?

Is the total size of the corrupted file correct? (i.e. the update was
just not inserted at the right place)

What can you say about the "splice points" (i.e. those positions in the
file where the corruption happens: IIUC there's one at the very
beginning, but where are the others (e.g. where is the "real
beginning", in the corrupted file))?

How frequently does it happen?  (i.e. would you be able to notice if it
doesn't happen any more, after we disable some feature)


        Stefan


> On Mon, Apr 27, 2015 at 1:39 PM, Stefan Monnier <monnier@iro.umontreal.ca>
> wrote:

>> > I have seen (again this morning) I wind up with a corrupted buffer.
>> > It appears a segment of the data is correct, but data has been
>> > reordered.  I'm looking at a python source file.  For example, in the
>> > middle of the buffer, it looks like the beginning of the file is
>> > inserted (sorry I no longer have this buffer and can't be precise).
>> 
>> Next time it happens, could you save the corrupted buffer to some temp
>> file, and then compare that with the actual file's content, to get
>> a more precise description of the corruption?
>> 
>> You say it's a Python file.  What modes/packages do you use to edit
>> those files?  What does `M-: after-change-functions' and `M-:
>> before-change-functions' say in those buffers?
>> 
>> 
>> Stefan
>> 



> -- 
> *Those who don't understand recursion are doomed to repeat it*





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#20440: 24.4; memory corruption
  2015-04-27 19:48     ` Stefan Monnier
@ 2015-04-28 11:01       ` Neal Becker
  2015-04-28 13:51         ` Stefan Monnier
  0 siblings, 1 reply; 12+ messages in thread
From: Neal Becker @ 2015-04-28 11:01 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 20440

[-- Attachment #1: Type: text/plain, Size: 2868 bytes --]

There are exactly the same length

In 2 tests it happened 2 times.  So probably is reproducible.


On Mon, Apr 27, 2015 at 3:48 PM, Stefan Monnier <monnier@iro.umontreal.ca>
wrote:

> > after-change-functions is a variable defined in `C source code'.
> > Its value is (jit-lock-after-change jedi:after-change-handler t)
> > Local in buffer test_unframed.py; global value is nil
>
> Hmm... could it be that jedi:after-change-handler does something funny?
> Tho it seems rather unlikely: when it gets run, the revert has
> already happened!
>
> > I have captured a corrupt buffer.  This time, emacs said 'file has
> changed,
> > reload?'.  Again it is corrupted.
> > The 1st diff is that in the corrupted file, the beginning of the file is
> > inserted into the middle of the buffer
>
> Normally revert compares the buffer's content and the file's content
> (from both ends) to find the common "prefix" and "suffix" and only
> performs the update on the characters in-between.  IOW the beginning of
> the buffer/file is not touched and the end is not touched either.
>
> So rather than "the beginning of the file is inserted into the middle of
> the buffer" it sounds like the "characters in-between" end up being
> inserted at the beginning of the buffer.
>
> Was the region active when the revert happened?
>
> Is the total size of the corrupted file correct? (i.e. the update was
> just not inserted at the right place)
>
> What can you say about the "splice points" (i.e. those positions in the
> file where the corruption happens: IIUC there's one at the very
> beginning, but where are the others (e.g. where is the "real
> beginning", in the corrupted file))?
>
> How frequently does it happen?  (i.e. would you be able to notice if it
> doesn't happen any more, after we disable some feature)
>
>
>         Stefan
>
>
> > On Mon, Apr 27, 2015 at 1:39 PM, Stefan Monnier <
> monnier@iro.umontreal.ca>
> > wrote:
>
> >> > I have seen (again this morning) I wind up with a corrupted buffer.
> >> > It appears a segment of the data is correct, but data has been
> >> > reordered.  I'm looking at a python source file.  For example, in the
> >> > middle of the buffer, it looks like the beginning of the file is
> >> > inserted (sorry I no longer have this buffer and can't be precise).
> >>
> >> Next time it happens, could you save the corrupted buffer to some temp
> >> file, and then compare that with the actual file's content, to get
> >> a more precise description of the corruption?
> >>
> >> You say it's a Python file.  What modes/packages do you use to edit
> >> those files?  What does `M-: after-change-functions' and `M-:
> >> before-change-functions' say in those buffers?
> >>
> >>
> >> Stefan
> >>
>
>
>
> > --
> > *Those who don't understand recursion are doomed to repeat it*
>



-- 
*Those who don't understand recursion are doomed to repeat it*

[-- Attachment #2: Type: text/html, Size: 3900 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#20440: 24.4; memory corruption
  2015-04-28 11:01       ` Neal Becker
@ 2015-04-28 13:51         ` Stefan Monnier
  0 siblings, 0 replies; 12+ messages in thread
From: Stefan Monnier @ 2015-04-28 13:51 UTC (permalink / raw)
  To: Neal Becker; +Cc: 20440

> There are exactly the same length
> In 2 tests it happened 2 times.  So probably is reproducible.

If you can come up with a reproducible recipe, then please do so.


        Stefan


> On Mon, Apr 27, 2015 at 3:48 PM, Stefan Monnier <monnier@iro.umontreal.ca>
> wrote:

>> > after-change-functions is a variable defined in `C source code'.
>> > Its value is (jit-lock-after-change jedi:after-change-handler t)
>> > Local in buffer test_unframed.py; global value is nil
>> 
>> Hmm... could it be that jedi:after-change-handler does something funny?
>> Tho it seems rather unlikely: when it gets run, the revert has
>> already happened!
>> 
>> > I have captured a corrupt buffer.  This time, emacs said 'file has
>> changed,
>> > reload?'.  Again it is corrupted.
>> > The 1st diff is that in the corrupted file, the beginning of the file is
>> > inserted into the middle of the buffer
>> 
>> Normally revert compares the buffer's content and the file's content
>> (from both ends) to find the common "prefix" and "suffix" and only
>> performs the update on the characters in-between.  IOW the beginning of
>> the buffer/file is not touched and the end is not touched either.
>> 
>> So rather than "the beginning of the file is inserted into the middle of
>> the buffer" it sounds like the "characters in-between" end up being
>> inserted at the beginning of the buffer.
>> 
>> Was the region active when the revert happened?
>> 
>> Is the total size of the corrupted file correct? (i.e. the update was
>> just not inserted at the right place)
>> 
>> What can you say about the "splice points" (i.e. those positions in the
>> file where the corruption happens: IIUC there's one at the very
>> beginning, but where are the others (e.g. where is the "real
>> beginning", in the corrupted file))?
>> 
>> How frequently does it happen?  (i.e. would you be able to notice if it
>> doesn't happen any more, after we disable some feature)
>> 
>> 
>> Stefan
>> 
>> 
>> > On Mon, Apr 27, 2015 at 1:39 PM, Stefan Monnier <
>> monnier@iro.umontreal.ca>
>> > wrote:
>> 
>> >> > I have seen (again this morning) I wind up with a corrupted buffer.
>> >> > It appears a segment of the data is correct, but data has been
>> >> > reordered.  I'm looking at a python source file.  For example, in the
>> >> > middle of the buffer, it looks like the beginning of the file is
>> >> > inserted (sorry I no longer have this buffer and can't be precise).
>> >>
>> >> Next time it happens, could you save the corrupted buffer to some temp
>> >> file, and then compare that with the actual file's content, to get
>> >> a more precise description of the corruption?
>> >>
>> >> You say it's a Python file.  What modes/packages do you use to edit
>> >> those files?  What does `M-: after-change-functions' and `M-:
>> >> before-change-functions' say in those buffers?
>> >>
>> >>
>> >> Stefan
>> >>
>> 
>> 
>> 
>> > --
>> > *Those who don't understand recursion are doomed to repeat it*
>> 



> -- 
> *Those who don't understand recursion are doomed to repeat it*





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#20440: reproducible recipe
  2015-04-27 15:45 bug#20440: 24.4; memory corruption Neal Becker
  2015-04-27 17:39 ` Stefan Monnier
@ 2015-09-10 13:33 ` Sho Takemori
  2015-09-10 17:54   ` Eli Zaretskii
  1 sibling, 1 reply; 12+ messages in thread
From: Sho Takemori @ 2015-09-10 13:33 UTC (permalink / raw)
  To: 20440

[-- Attachment #1: Type: text/plain, Size: 506 bytes --]

Here is a reproducible recipe.

https://gist.github.com/stakemori/ccf0e4cfae2fcfafbf0a

I thought this is a bug of emacs-jedi (
https://github.com/tkf/emacs-jedi/issues/234).
But I can reproduce it with "emacs -Q". (I use Emacs 24.5).

If I replace (buffer-string) in the body of my/add-to-after-change-functions
by (buffer-substring-no-properties (point-min) (point-max)),
then the same error occurs.

I think this has nothing to do with python-mode. It also occurs in
text-mode.

Sincerely,
Sho Takemori

[-- Attachment #2: Type: text/html, Size: 714 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#20440: reproducible recipe
  2015-09-10 13:33 ` bug#20440: reproducible recipe Sho Takemori
@ 2015-09-10 17:54   ` Eli Zaretskii
  2015-09-11  4:08     ` Sho Takemori
  0 siblings, 1 reply; 12+ messages in thread
From: Eli Zaretskii @ 2015-09-10 17:54 UTC (permalink / raw)
  To: Sho Takemori; +Cc: 20440

> Date: Thu, 10 Sep 2015 22:33:08 +0900
> From: Sho Takemori <stakemorii@gmail.com>
> 
> Here is a reproducible recipe.
> 
> https://gist.github.com/stakemori/ccf0e4cfae2fcfafbf0a
> 
> I thought this is a bug of emacs-jedi
> (https://github.com/tkf/emacs-jedi/issues/234).
> But I can reproduce it with "emacs -Q". (I use Emacs 24.5).
> 
> If I replace (buffer-string) in the body of my/add-to-after-change-functions
> by (buffer-substring-no-properties (point-min) (point-max)),
> then the same error occurs.
> 
> I think this has nothing to do with python-mode. It also occurs in text-mode.

FWIW, I don't see any corruption when I load this file.





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#20440: reproducible recipe
  2015-09-10 17:54   ` Eli Zaretskii
@ 2015-09-11  4:08     ` Sho Takemori
  2015-09-11  7:24       ` Eli Zaretskii
  0 siblings, 1 reply; 12+ messages in thread
From: Sho Takemori @ 2015-09-11  4:08 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 20440

[-- Attachment #1: Type: text/plain, Size: 4785 bytes --]

I use Ubuntu 15.04.
I can reproduce this both in Emacs 24.4
which is installed by "apt-get install emacs24"
and in Emacs 24.5 which I built from the source.

The corrupted buffer looks like this.
https://gist.github.com/stakemori/8c3e1f6e3f73f5db3a7a

The output of M-x report-emacs-bug in Emacs 24.4 is as follows:

From: sho <sho@K430-Ubuntu.i-did-not-set--mail-host-address--so-tickle-me>

To: bug-gnu-emacs@gnu.org

Subject: 24.4; revert-buffer

--text follows this line--






In GNU Emacs 24.4.1 (x86_64-pc-linux-gnu, GTK+ Version 3.14.9)

 of 2015-03-21 on kissel, modified by Debian

Windowing system distributor `The X.Org Foundation', version 11.0.11701000

System Description: Ubuntu 15.04


Configured using:

 `configure --build x86_64-linux-gnu --prefix=/usr

 --sharedstatedir=/var/lib --libexecdir=/usr/lib

 --localstatedir=/var/lib --infodir=/usr/share/info

 --mandir=/usr/share/man --with-pop=yes

 --enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.4/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.4/site-lisp:/usr/share/emacs/site-lisp

 --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib

 --libexecdir=/usr/lib --localstatedir=/var/lib

 --infodir=/usr/share/info --mandir=/usr/share/man --with-pop=yes

 --enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.4/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.4/site-lisp:/usr/share/emacs/site-lisp

 --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars

 'CFLAGS=-g -O2 -fstack-protector-strong -Wformat

 -Werror=format-security -Wall' CPPFLAGS=-D_FORTIFY_SOURCE=2

 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro''


Important settings:

  value of $LANG: ja_JP.UTF-8

  value of $XMODIFIERS: @im=fcitx

  locale-coding-system: utf-8-unix


Major mode: Python


Minor modes in effect:

  tooltip-mode: t

  electric-indent-mode: t

  mouse-wheel-mode: t

  tool-bar-mode: t

  menu-bar-mode: t

  file-name-shadow-mode: t

  global-font-lock-mode: t

  font-lock-mode: t

  blink-cursor-mode: t

  auto-composition-mode: t

  auto-encryption-mode: t

  auto-compression-mode: t

  line-number-mode: t

  transient-mark-mode: t


Recent input:

C-y M-x e v a l 0 <backspace> - b u <tab> <return>

M-x r e p o r t - e m a c s <tab> <return>


Recent messages:

For information about GNU Emacs and the GNU system, type C-h C-a.

Mark set

Can't guess python-indent-offset, using defaults: 4 [2 times]

or: Assertion failed: (string= (buffer-string) file-content2)


Load-path shadows:

None found.


Features:

(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml

mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev

gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util

help-fns mail-prsvr mail-utils python easymenu json comint ring

ansi-color cl-macs gv cl-loaddefs cl-lib time-date japan-util tooltip

electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd

tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment

lisp-mode prog-mode register page menu-bar rfn-eshadow timer select

scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham

georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao

korean japanese hebrew greek romanian slovak czech european ethiopic

indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple

abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files

text-properties overlay sha1 md5 base64 format env code-pages mule

custom widget hashtable-print-readable backquote make-network-process

dbusbind gfilenotify dynamic-setting system-font-setting

font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)


Memory information:

((conses 16 82225 4373)

 (symbols 48 18572 0)

 (miscs 40 40 99)

 (strings 32 12434 4244)

 (string-bytes 1 367042)

 (vectors 16 11207)

 (vector-slots 8 474430 27975)

 (floats 8 64 67)

 (intervals 56 262 1)

 (buffers 960 13)

 (heap 1024 25157 1072))


2015-09-11 2:54 GMT+09:00 Eli Zaretskii <eliz@gnu.org>:

> > Date: Thu, 10 Sep 2015 22:33:08 +0900
> > From: Sho Takemori <stakemorii@gmail.com>
> >
> > Here is a reproducible recipe.
> >
> > https://gist.github.com/stakemori/ccf0e4cfae2fcfafbf0a
> >
> > I thought this is a bug of emacs-jedi
> > (https://github.com/tkf/emacs-jedi/issues/234).
> > But I can reproduce it with "emacs -Q". (I use Emacs 24.5).
> >
> > If I replace (buffer-string) in the body of
> my/add-to-after-change-functions
> > by (buffer-substring-no-properties (point-min) (point-max)),
> > then the same error occurs.
> >
> > I think this has nothing to do with python-mode. It also occurs in
> text-mode.
>
> FWIW, I don't see any corruption when I load this file.
>

[-- Attachment #2: Type: text/html, Size: 6297 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#20440: reproducible recipe
  2015-09-11  4:08     ` Sho Takemori
@ 2015-09-11  7:24       ` Eli Zaretskii
  2015-09-11  8:57         ` Sho Takemori
  0 siblings, 1 reply; 12+ messages in thread
From: Eli Zaretskii @ 2015-09-11  7:24 UTC (permalink / raw)
  To: Sho Takemori; +Cc: 20440

> Date: Fri, 11 Sep 2015 13:08:11 +0900
> From: Sho Takemori <stakemorii@gmail.com>
> Cc: 20440@debbugs.gnu.org
> 
> I use Ubuntu 15.04.
> I can reproduce this both in Emacs 24.4
> which is installed by "apt-get install emacs24"
> and in Emacs 24.5 which I built from the source.
> 
> The corrupted buffer looks like this.
> https://gist.github.com/stakemori/8c3e1f6e3f73f5db3a7a

Is this a real buffer corruption, or just the display corruption?  If
you minimize the frame and then restore it, or switch to another
buffer in the same window and then back again, do you still see the
corrupted display?

Also, how do you invoke Emacs to reproduce the problem?

Finally, does the problem go away if you set your locale to something
else, like en_US.UTF-8?





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#20440: reproducible recipe
  2015-09-11  7:24       ` Eli Zaretskii
@ 2015-09-11  8:57         ` Sho Takemori
  2015-09-11  9:19           ` Eli Zaretskii
  0 siblings, 1 reply; 12+ messages in thread
From: Sho Takemori @ 2015-09-11  8:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 20440

[-- Attachment #1: Type: text/plain, Size: 4973 bytes --]

> Is this a real buffer corruption, or just the display corruption?

It is a real buffer corruption. I made the second gist by C-x h, M-w and
pasting it to the browser.
If I change the size of the frame or the window configuration, I still have
a corrupted buffer.

> Also, how do you invoke Emacs to reproduce the problem?

By evaluating the code in the first gist.

I use emacs-jedi (https://github.com/tkf/emacs-jedi). So does the original
reporter.
Since the problem occurs frequently, I can find strings file-content1 and
file-content2 in the first gist.
As for the function my/add-to-after-change-functions, I looked into the
source of emacs-jedi and wrote a similar code.

> Finally, does the problem go away if you set your locale to something
> else, like en_US.UTF-8?

No. I can also reproduce it in the live session of Xubuntu 14.04, where
LANG=en_US.UTF-8.
Here is the output of M-x report-emacs-bug in Emacs 24.3 in the live
session.

----------------------------------------------------------------------
From: Live session user
<xubuntu@xubuntu.i-did-not-set--mail-host-address--so-tickle-me>
To: bug-gnu-emacs@gnu.org
Subject: 24.3; revert-buffer
--text follows this line--
This bug report will be sent to the Bug-GNU-Emacs mailing list
and the GNU bug tracker at debbugs.gnu.org.  Please check that
the From: line contains a valid email address.  After a delay of up
to one day, you should receive an acknowledgment at that address.

Please write in English if possible, as the Emacs maintainers
usually do not have translators for other languages.

Please describe exactly what actions triggered the bug, and
the precise symptoms of the bug.  If you can, give a recipe
starting from `emacs -Q':



If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
/usr/share/emacs/24.3/etc/DEBUG.


In GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10.7)
 of 2014-03-07 on lamiak, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.11600000
System Description:    Ubuntu 14.04.2 LTS

Configured using:
 `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu'
 '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
 '--localstatedir=/var/lib' '--infodir=/usr/share/info'
 '--mandir=/usr/share/man' '--with-pop=yes'
 '--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp'
 '--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes'
 '--with-x-toolkit=gtk3' '--with-toolkit-scroll-bars'
 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector
 --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall'
 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro'
 'CPPFLAGS=-D_FORTIFY_SOURCE=2''

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Python

Minor modes in effect:
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<help-echo> <help-echo> C-y M-x e v a l - b u <tab>
<return> M-x r e p o r t - e m a c s - b u <tab> <
return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Mark set
Can't guess python-indent-offset, using defaults: 4 [2 times]
or: Assertion failed: (string= (buffer-string) file-content2)

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils python rx easymenu comint ring ansi-color cl-macs
gv cl-lib time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel
x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list
newcomment lisp-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev minibuffer loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)
----------------------------------------------------------------------

[-- Attachment #2: Type: text/html, Size: 9041 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#20440: reproducible recipe
  2015-09-11  8:57         ` Sho Takemori
@ 2015-09-11  9:19           ` Eli Zaretskii
  0 siblings, 0 replies; 12+ messages in thread
From: Eli Zaretskii @ 2015-09-11  9:19 UTC (permalink / raw)
  To: Sho Takemori; +Cc: 20440

> Date: Fri, 11 Sep 2015 17:57:32 +0900
> From: Sho Takemori <stakemorii@gmail.com>
> Cc: 20440@debbugs.gnu.org
> 
> > Is this a real buffer corruption, or just the display corruption?
> 
> It is a real buffer corruption. I made the second gist by C-x h, M-w and
> pasting it to the browser.
> If I change the size of the frame or the window configuration, I still have a
> corrupted buffer.
> 
> > Also, how do you invoke Emacs to reproduce the problem?
> 
> By evaluating the code in the first gist.
> 
> I use emacs-jedi (https://github.com/tkf/emacs-jedi). So does the original
> reporter.
> Since the problem occurs frequently, I can find strings file-content1 and
> file-content2 in the first gist.
> As for the function my/add-to-after-change-functions, I looked into the source
> of emacs-jedi and wrote a similar code.
> 
> > Finally, does the problem go away if you set your locale to something
> > else, like en_US.UTF-8?
> 
> No. I can also reproduce it in the live session of Xubuntu 14.04, where
> LANG=en_US.UTF-8.
> Here is the output of M-x report-emacs-bug in Emacs 24.3 in the live session.

OK, I've managed to reproduce this in Emacs 24.5 on GNU/Linux.  But
the problem doesn't exist with the current development sources on the
same system, so I guess whatever caused this has been already fixed
since 24.5 was released.

I think we can close this bug.

Thanks.





^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2015-09-11  9:19 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-27 15:45 bug#20440: 24.4; memory corruption Neal Becker
2015-04-27 17:39 ` Stefan Monnier
2015-04-27 17:44   ` Neal Becker
2015-04-27 19:48     ` Stefan Monnier
2015-04-28 11:01       ` Neal Becker
2015-04-28 13:51         ` Stefan Monnier
2015-09-10 13:33 ` bug#20440: reproducible recipe Sho Takemori
2015-09-10 17:54   ` Eli Zaretskii
2015-09-11  4:08     ` Sho Takemori
2015-09-11  7:24       ` Eli Zaretskii
2015-09-11  8:57         ` Sho Takemori
2015-09-11  9:19           ` Eli Zaretskii

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).