Subject: bug#7396: Attempt to modify read-only object error

From: Stefan Monnier <[email-masked]>
Date: Mon, 15 Nov 2010 11:56:45 -0500

> I got the following error, "Attempt to modify read-only object error" after
> trying to re-load a file that was modified by an external process!

> I am unable to kill the buffer, reload using c-x c-v and also kill emacs. It
> keep saying this error and I don't know how to make it go away.

Can you give detailed steps to get into that state (ideally starting
from "emacs -Q")?

Also, can you turn on "Options => Enter Debugger on Error" in the menus,
and then reproduce the "Attempt to modify read-only object error"?
If so, you should then get a backtrace which would help us pin point the
source of the problem.

        Stefan

> -- 
> Kind Regards,
> Rajinder Yadav | DevMentor.org | Do Good! ~ Share Freely

> GNU/Linux: 2.6.35-22-generic
> Kubuntu x86_64 10.10 | KDE 4.5.1
> Ruby 1.9.2p0 | Rails 3.0.1

> In GNU Emacs 23.2.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.22.0)
>  of 2010-11-11 on Six9
> Windowing system distributor `The X.Org Foundation', version 11.0.10900000
> Important settings:
>   value of $LC_ALL: nil
>   value of $LC_COLLATE: nil
>   value of $LC_CTYPE: nil
>   value of $LC_MESSAGES: nil
>   value of $LC_MONETARY: nil
>   value of $LC_NUMERIC: nil
>   value of $LC_TIME: nil
>   value of $LANG: en_CA.UTF-8
>   value of $XMODIFIERS: nil
>   locale-coding-system: utf-8-unix
>   default enable-multibyte-characters: t

> Major mode: Ruby

> Minor modes in effect:
>   shell-dirtrack-mode: t
>   ecb-minor-mode: t
>   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
>   blink-cursor-mode: t
>   auto-encryption-mode: t
>   auto-compression-mode: t
>   line-number-mode: t
>   transient-mark-mode: t

> Recent input:
> d e v i s e SPC m o d e l SPC U s e r <help-echo> <down-mouse-1>
> <mouse-1> <backspace> <backspace> <backspace> <backspace>
> <backspace> <backspace> <backspace> <backspace> <backspace>
> <backspace> U s e r <return> <down-mouse-1> <mouse-1>
> <help-echo> <down-mouse-1> <mouse-1> <down-mouse-1>
> <mouse-1> <down-mouse-1> <mouse-1> <down-mouse-1> <mouse-1>
> <down-mouse-1> <mouse-1> C-x b r o <return> C-x C-v
> <return> C-x t <home> <C-home> <C-end> <prior> <prior>
> <prior> <C-home> <help-echo> <down-mouse-1> <mouse-1>
> <C-home> <down> <end> <return> y C-_ C-x v C-g C-g
> C-x C-v r o \ <return> <backspace> <return> <C-delete>
> <help-echo> <help-echo> <down-mouse-1> <mouse-1> <C-delete>
> C-g <C-delete> <down-mouse-1> <mouse-1> <help-echo>
> <tool-bar> <kill-buffer> <help-echo> <help-echo> <help-echo>
> <help-echo> <help-echo> <help-echo> <help-echo> <down-mouse-1>
> <mouse-1> d d y <down-mouse-1> <mouse-1> y <C-delete>
> y <down-mouse-1> <mouse-1> <down-mouse-1> <mouse-1>
> <down-mouse-5> <mouse-5> <double-down-mouse-5> <double-mouse-5>
> <triple-down-mouse-5> <triple-mouse-5> <triple-down-mouse-5>
> <triple-mouse-5> <triple-down-mouse-5> <triple-mouse-5>
> <triple-down-mouse-5> <triple-mouse-5> <down-mouse-4>
> <mouse-4> <double-down-mouse-4> <double-mouse-4> <triple-down-mouse-4>
> <triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4>
> <down-mouse-1> <mouse-1> <C-delete> y C-SPC <C-delete>
> y C-x C-v r o u <return> n y <down-mouse-1> <mouse-1>
> <down-mouse-5> <mouse-5> <down-mouse-4> <mouse-4> <double-down-mouse-4>
> <double-mouse-4> <triple-down-mouse-4> <triple-mouse-4>
> <triple-down-mouse-4> <triple-mouse-4> <down-mouse-3>
> <mouse-3> <down-mouse-1> <mouse-1> <down-mouse-1> <mouse-1>
> <down-mouse-3> <mouse-3> <down-mouse-1> <mouse-1> <help-echo>
> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
> <tool-bar> <kill-buffer> <help-echo> <down-mouse-4>
> <mouse-4> <help-echo> <down-mouse-1> <mouse-1> <C-home>
> <C-end> <C-home> <down-mouse-5> <mouse-5> <double-down-mouse-5>
> <double-mouse-5> <triple-down-mouse-5> <triple-mouse-5>
> <triple-down-mouse-5> <triple-mouse-5> <down-mouse-4>
> <mouse-4> <double-down-mouse-4> <double-mouse-4> <triple-down-mouse-4>
> <triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4>
> <triple-down-mouse-4> <triple-mouse-4> <triple-down-mouse-4>
> <triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4>
> C-x b C-g C-x C-b <help-echo> <down-mouse-1> <mouse-1>
> <help-echo> <down-mouse-1> <mouse-1> <down-mouse-1>
> <mouse-1> <mouse-1> <mouse-1> <down-mouse-1> <mouse-1>
> <help-echo> <down-mouse-1> <mouse-2> <C-delete> C-x
> C-v C-g C-x C-b <C-delete> C-x 0 <down-mouse-1> <mouse-1>
> <C-delete> <return> <C-delete> y <help-echo> <help-echo>
> <help-echo> <tool-bar> <kill-buffer> C-_ <help-echo>
> <tool-bar> <kill-buffer> <tool-bar> <kill-buffer> <tool-bar>
> <kill-buffer> <help-echo> <help-echo> <help-echo> <help-echo>
> <down-mouse-1> <mouse-1> <help-echo> <down-mouse-1>
> <mouse-1> <help-echo> <down-mouse-1> <mouse-1> <help-echo>
> <down-mouse-1> <mouse-1> <C-delete> <help-echo> <help-echo>
> <help-echo> <help-echo> <down-mouse-1> <mouse-1> <help-echo>
> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
> <menu-bar> <help-menu> <send-emacs-bug-report>

> Recent messages:
> Undo!
> progn: Attempt to modify read-only object [3 times]
> (No files need saving)
> Saving file /home/yadav/.ido.last...
> Wrote /home/yadav/.ido.last
> progn: Attempt to modify read-only object
> (No files need saving)
> Saving file /home/yadav/.ido.last...
> Wrote /home/yadav/.ido.last
> progn: Attempt to modify read-only object
> progn: Attempt to modify read-only object

> Load-path shadows:
> /home/yadav/.emacs.d/cedet-1.0/common/ezimage hides
> /usr/local/share/emacs/23.2/lisp/ezimage
> /home/yadav/.emacs.d/cedet-1.0/speedbar/dframe hides
> /usr/local/share/emacs/23.2/lisp/dframe
> /home/yadav/.emacs.d/cedet-1.0/speedbar/speedbar hides
> /usr/local/share/emacs/23.2/lisp/speedbar
> /home/yadav/.emacs.d/cedet-1.0/speedbar/sb-image hides
> /usr/local/share/emacs/23.2/lisp/sb-image
> ~/.emacs.d/misc/ruby-mode hides
> /usr/local/share/emacs/23.2/lisp/progmodes/ruby-mode
> /home/yadav/.emacs.d/cedet-1.0/eieio/eieio-opt hides
> /usr/local/share/emacs/23.2/lisp/emacs-lisp/eieio-opt
> /home/yadav/.emacs.d/cedet-1.0/eieio/eieio-base hides
> /usr/local/share/emacs/23.2/lisp/emacs-lisp/eieio-base
> /home/yadav/.emacs.d/cedet-1.0/eieio/eieio-comp hides
> /usr/local/share/emacs/23.2/lisp/emacs-lisp/eieio-comp
> /home/yadav/.emacs.d/cedet-1.0/eieio/chart hides
> /usr/local/share/emacs/23.2/lisp/emacs-lisp/chart
> /home/yadav/.emacs.d/cedet-1.0/eieio/eieio-datadebug hides
> /usr/local/share/emacs/23.2/lisp/emacs-lisp/eieio-datadebug
> /home/yadav/.emacs.d/cedet-1.0/eieio/eieio hides
> /usr/local/share/emacs/23.2/lisp/emacs-lisp/eieio
> /home/yadav/.emacs.d/cedet-1.0/eieio/eieio-speedbar hides
> /usr/local/share/emacs/23.2/lisp/emacs-lisp/eieio-speedbar
> /home/yadav/.emacs.d/cedet-1.0/eieio/eieio-custom hides
> /usr/local/share/emacs/23.2/lisp/emacs-lisp/eieio-custom
> /home/yadav/.emacs.d/cedet-1.0/ede/ede hides
> /usr/local/share/emacs/23.2/lisp/cedet/ede
> /home/yadav/.emacs.d/cedet-1.0/common/cedet-global hides
> /usr/local/share/emacs/23.2/lisp/cedet/cedet-global
> /home/yadav/.emacs.d/cedet-1.0/common/cedet-idutils hides
> /usr/local/share/emacs/23.2/lisp/cedet/cedet-idutils
> /home/yadav/.emacs.d/cedet-1.0/common/pulse hides
> /usr/local/share/emacs/23.2/lisp/cedet/pulse
> /home/yadav/.emacs.d/cedet-1.0/common/cedet-files hides
> /usr/local/share/emacs/23.2/lisp/cedet/cedet-files
> /home/yadav/.emacs.d/cedet-1.0/common/cedet hides
> /usr/local/share/emacs/23.2/lisp/cedet/cedet
> /home/yadav/.emacs.d/cedet-1.0/common/mode-local hides
> /usr/local/share/emacs/23.2/lisp/cedet/mode-local
> /home/yadav/.emacs.d/cedet-1.0/common/data-debug hides
> /usr/local/share/emacs/23.2/lisp/cedet/data-debug
> /home/yadav/.emacs.d/cedet-1.0/semantic/semantic hides
> /usr/local/share/emacs/23.2/lisp/cedet/semantic
> /home/yadav/.emacs.d/cedet-1.0/srecode/srecode hides
> /usr/local/share/emacs/23.2/lisp/cedet/srecode
> /home/yadav/.emacs.d/cedet-1.0/common/inversion hides
> /usr/local/share/emacs/23.2/lisp/cedet/inversion
> /home/yadav/.emacs.d/cedet-1.0/common/cedet-cscope hides
> /usr/local/share/emacs/23.2/lisp/cedet/cedet-cscope

> Features:
> (shadow sort mail-extr message sendmail ecomplete rfc822 mml mml-sec
> mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231 rfc2047 rfc2045
> qp ietf-drums mailabbrev nnheader mm-util mail-prsvr gmm-utils
> mailheader canlock sha1 hex-util hashcash mail-utils emacsbug
> semantic-tag-file semantic-tag-write semanticdb-typecache
> semantic-tag-ls semantic-decorate-mode semantic-decorate pulse
> semanticdb-file cedet-files semantic-html flyspell ispell sgml-mode
> novice newcomment eieio-opt help-mode view inflections core-ext
> multi-isearch tramp-imap tramp-gw tramp-fish tramp-smb tramp-cache
> tramp-ftp tramp-cmds tramp auth-source gnus-util netrc time-date shell
> password-cache format-spec tramp-compat trampver vc-git vc vc-dispatcher
> term disp-table ehelp electric rails-lib list-ext files-ext string-ext
> semantic-find cus-edit cus-start cus-load ede-linux ede-emacs
> ede-cpp-root ede-dired dired semantic-el semantic-bovine bovine-debug
> semantic-debug ecb-layout-defs smarttabs rails-autoload ido ecb
> ecb-symboldef ecb-analyse ecb-compatibility ecb-winman-support
> ecb-autogen autoload ecb-tod ecb-cycle ecb-eshell ecb-help ecb-jde
> ecb-method-browser hideshow ecb-file-browser ecb-layout compile comint
> ecb-create-layout edmacro kmacro ecb-compilation ecb-speedbar
> ecb-common-browser ecb-cedet-wrapper semanticdb-find semanticdb-ref
> ecb-navigate ecb-mode-line ecb-face tree-buffer ecb-upgrade ecb-util
> thingatpt silentcomp ruby-electric easy-mmode srecode-mode cogre-srecode
> semantic-edit srecode-template-mode srecode-template srecode-template-wy
> semantic-wisent wisent srecode-map srecode-insert srecode-args
> srecode-dictionary srecode-find srecode-ctxt srecode-compile
> srecode-table semantic-mru-bookmark semanticdb-mode semantic-idle eldoc
> senator ring warnings which-func semantic-imenu semantic-sb imenu cedet
> cedet-contrib-load contrib-loaddefs cogre-load cogre-loaddefs
> speedbar-load speedbar-loaddefs ede-load ede-loaddefs ede-speedbar
> ede-files ede ede-base ede-auto eieio-speedbar semantic-ia-sb
> semantic-analyze semantic-scope semantic-analyze-fcn semantic-sort
> semanticdb-el semanticdb semantic-ctxt semantic-format
> semantic-util-modes semantic-util semantic semantic-lex semantic-tag
> working fame speedbar sb-image ezimage dframe easymenu assoc
> eieio-custom wid-edit ede-source eieio-base srecode-load srecode
> srecode-loaddefs semantic-load semantic-fw semantic-loaddefs mode-local
> find-func derived eieio-load eieio-loaddefs cedet-load cedet-compat
> cedet-loaddefs eieio advice help-fns advice-preload byte-opt bytecomp
> byte-compile inversion ruby-mode cl cl-19 regexp-opt tooltip ediff-hook
> vc-hooks lisp-float-type mwheel x-win x-dnd font-setting tool-bar dnd
> fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer
> select scroll-bar mldrag 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 loaddefs button minibuffer faces
> cus-face files text-properties overlay md5 base64 format env code-pages
> mule custom widget hashtable-print-readable backquote
> make-network-process dbusbind font-render-setting gtk x-toolkit x
> multi-tty emacs)