[mew-dist 27986] error in process filter: mew-scan-insert-line: Args out of range:

Yasuhiro Ohta yohta at example.com
2007年 12月 18日 (火) 15:58:18 JST


太田と申します。

最近、いくつかのスパムでひっかっかって、メールが取り込めないようになり
ました。(数週間前にはじめてこの症状が生じました。)エラーメッセージは、

error in process filter: let: Args out of range: 2139, 2157
error in process filter: Args out of range: 2139, 2157

といったものです。

Googleで検索したかぎりでは、"error in process filter"というエラーメッセー
ジの場合、Unicode Emacsの問題のケースがあるようですので、GNU Emacsと
Mewのバージョンをいろいろ変えてみましたが、状況はあまり変わりません。変
わった点といえば、最新のGNU Emacs 23.0.50だと、うまくメールが取り込める
場合があるという点だけです。ただし、いずれのバージョンでも取り込めない
場合があります。Mewは、4.2と5.2を試しました。

しかし、別のPCのかなり古いEmacs(21.0.50)とMew 4.2だと問題なく取り込める
ようです。あるPCでは取り込めるものの、あるPCではダメということを考えま
すと、~/Mail以下の何かが問題かもしれないと、いろいろなファイルを削除し
たりしてみていますが、今のところ、再現性ある結果は得られていません。

現在の環境は、次のとおりです。Cannaのため、emcwsを入れています。

(version)
"GNU Emacs 22.1.1 (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars, emcws)
 of 2007-12-17 on falcon"

(eval mew-version-number)
"5.2"

あまり関係ないかもしれませんが、メールに関して、特別なことといえば、
stunnelを使って、POP3Sでメールを取りに行っていることと、bsfilterをロー
カルで通して、スパムにフラグを立てていることです。bsfilterは外してみま
した(つもりです)が、事情は変わりません。

昨日は、mew/*.elcを削除して、ソースで起動してみたら、うまくいったので
すが、今日受け取ったスパムではダメのようです。

そろそろ私の手に負えなくなりつつあります。

何かヒントでもいただけないかと思いまして、投稿します。よろしくお願いし
ます。

バックトレースを添付します。行が長すぎるようなので、適当に改行をいれま
した。

--太田康広

Debugger entered--Lisp error: (args-out-of-range 2139 2157)
  put-text-property(2157 2139 invisible t)
  (let ((buffer-read-only nil) (inhibit-read-only t)
  (after-change-functions nil) (mark-active nil) (zmacs-regions nil))
  (if (null lmsg) (goto-char ...) (when ... ... ... ... ... ... ...))
  (setq beg (point)) (insert (car line)) (setq med (point)) (insert
  (cdr line)) (goto-char beg) (mew-front-nonsticky beg med) (cond
  (... ... ... ... ... ... ...) (... ...) (mark ...) (... ...)) (if
  mew-use-highlight-mouse-line (put-text-property beg med
  ... mew-highlight-mouse-line-face)) (forward-line)
  (put-text-property med (1- ...) (quote invisible) t) (when lmsg
  (setq nlen ...) (setq beg ...) (forward-line) (when ... ... ...)
  (delete-region beg ...)))
  (mew-elet (if (null lmsg) (goto-char ...) (when
  ... ... ... ... ... ... ...)) (setq beg (point)) (insert (car line))
  (setq med (point)) (insert (cdr line)) (goto-char beg)
  (mew-front-nonsticky beg med) (cond (... ... ... ... ... ... ...)
  (... ...) (mark ...) (... ...)) (if mew-use-highlight-mouse-line
  (put-text-property beg med ... mew-highlight-mouse-line-face))
  (forward-line) (put-text-property med (1- ...) (quote invisible) t)
  (when lmsg (setq nlen ...) (setq beg ...) (forward-line) (when
  ... ... ...) (delete-region beg ...)))
  (let* ((line ...) (opos ...) (omax ...) beg med face olen nlen mark
  msg) (mew-elet (if ... ... ...) (setq beg ...) (insert ...) (setq
  med ...) (insert ...) (goto-char beg) (mew-front-nonsticky beg med)
  (cond ... ... ... ...) (if mew-use-highlight-mouse-line ...)
  (forward-line) (put-text-property med ... ... t) (when lmsg
  ... ... ... ... ...)) (if (or ... ...) (goto-char opos)))
  (save-excursion (set-buffer folder) (let* (... ... ... beg med face
  olen nlen mark msg) (mew-elet
  ... ... ... ... ... ... ... ... ... ... ... ...) (if ... ...)))
  (progn (save-excursion (set-buffer folder) (let* ... ... ...)))
  (if (get-buffer folder) (progn (save-excursion ... ...)))
  (when (get-buffer folder) (save-excursion (set-buffer folder) (let* ... ... ...)))
  mew-scan-insert-line("+inbox" ["+inbox" "1239" "oppmeldi" "Mon, 17
  Dec 2007 18:19:19 -0600" "\"denverr Stacey\"
  <Staceydkbrz at example.com>" "yohta at example.com" ""
  "multipart/alternative;\n
  boundary=\"------------040105010305080808070704\"" "" ""
  "<96AB8CE8.4EDB6D77 at example.com>" "" "" "" "YES" "<!DOCTYPE html
  PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> <html> <head>
  </head> <body bgcolor=\"#ffffff\" text=\"#000000\"> Switch from
  \"small size\" to \"magnum size\" condoms. Why? Because, with<br>
  this medicine, your \"package\" won't fit in your pants! <a
  href=\"http://www.yesmedicals.com/\">http://www.yesmedicals.com/</a><br>
  </body> </html> "] 124 nil "+spam")
  (progn (mew-set-file-modes file) (mew-set-file-type file)
  (mew-set-buffer-multibyte t) (setq vec (mew-scan-header))
  (mew-scan-set-folder vec fld) (mew-scan-set-message vec msg) (if (or
  ... ...) (setq mark ...)) (if (and mark ... ...) (setq mark nil))
  (mew-scan-body vec) (mew-set-buffer-multibyte nil)
  (mew-scan-insert-line fld vec width lmsg mark))
  (if (file-exists-p file) (progn (mew-set-file-modes file)
  (mew-set-file-type file) (mew-set-buffer-multibyte t) (setq vec ...)
  (mew-scan-set-folder vec fld) (mew-scan-set-message vec msg) (if
  ... ...) (if ... ...) (mew-scan-body vec) (mew-set-buffer-multibyte
  nil) (mew-scan-insert-line fld vec width lmsg mark)))
  (when (file-exists-p file) (mew-set-file-modes file)
  (mew-set-file-type file) (mew-set-buffer-multibyte t) (setq vec
  (mew-scan-header)) (mew-scan-set-folder vec fld)
  (mew-scan-set-message vec msg) (if (or ... ...) (setq mark ...)) (if
  (and mark ... ...) (setq mark nil)) (mew-scan-body vec)
  (mew-set-buffer-multibyte nil) (mew-scan-insert-line fld vec width
  lmsg mark))
  (catch (quote write-error) (condition-case nil (mew-frwlet
  mew-cs-dummy mew-cs-text-for-write ...) (error ... ... ...))
  (mew-pop-set-rcnt pnm (1+ ...)) (when (file-exists-p file)
  (mew-set-file-modes file) (mew-set-file-type file)
  (mew-set-buffer-multibyte t) (setq vec ...) (mew-scan-set-folder vec
  fld) (mew-scan-set-message vec msg) (if ... ...) (if ... ...)
  (mew-scan-body vec) (mew-set-buffer-multibyte nil)
  (mew-scan-insert-line fld vec width lmsg mark)) (mew-pop-set-rtrs
  pnm (cdr rtrs)) (if (and del ...) (progn ... ...)
  (mew-pop-set-status pnm "retr") (mew-pop-command-retr pro pnm)))
  (let* ((directive ...) (width ...) (left ...) (rtrs ...) (rtr ...)
  (num ...) (uid ...) (siz ...) (del ...) (fld-msg ...) (truncated
  ...) (case ...) fld msg vec file msg-file lmsg mark folder) (cond
  (... ...) (... ...) (... ... ...)) (setq folder
  (mew-case:folder-folder fld)) (goto-char (point-min)) (forward-line)
  (delete-region (point-min) (point)) (mew-eol-fix-for-read)
  (mew-dot-delete) (setq msg-file (mew-net-get-new-message pnm fld msg
  ... ...)) (setq msg (car msg-file) file (cdr msg-file)) (goto-char
  (point-min)) (cond (truncated ...) (... ...) (... ...)) (catch
  (quote write-error) (condition-case nil ... ...) (mew-pop-set-rcnt
  pnm ...) (when ... ... ... ... ... ... ... ... ... ... ... ...)
  (mew-pop-set-rtrs pnm ...) (if ... ... ... ...)))
  mew-pop-command-dele(#<process
  mew-pop-info-yohta at example.com>
  "mew-pop-info-yohta at example.com")
  funcall(mew-pop-command-dele #<process
  mew-pop-info-yohta at example.com>
  "mew-pop-info-yohta at example.com")
  (if (fboundp func) (funcall func process pnm) (error "No function
  called %s" (symbol-name func)))
  (if stay nil (unless next (setq next "quit")) (mew-pop-set-status
  pnm next) (setq func (intern-soft ...)) (goto-char (point-min)) (if
  (fboundp func) (funcall func process pnm) (error "No function called
  %s" ...)) (if (and process ...) (mew-erase-buffer)))
  (unless stay (unless next (setq next "quit")) (mew-pop-set-status
  pnm next) (setq func (intern-soft ...)) (goto-char (point-min)) (if
  (fboundp func) (funcall func process pnm) (error "No function called
  %s" ...)) (if (and process ...) (mew-erase-buffer)))
  (progn (set-buffer (process-buffer process)) (goto-char (point-max))
  (mew-set-buffer-multibyte nil) (insert string) (when (string= status
  "retr") (mew-net-status2 ... ... ... ... nil ...)) (cond (... ...)
  (... ...) (t ...)) (unless stay (unless next ...)
  (mew-pop-set-status pnm next) (setq func ...) (goto-char ...) (if
  ... ... ...) (if ... ...)))
  (unwind-protect (progn (set-buffer ...) (goto-char ...)
  (mew-set-buffer-multibyte nil) (insert string) (when ... ...) (cond
  ... ... ...) (unless stay ... ... ... ... ... ...)) (if (get-buffer
  obuf) (set-buffer obuf)))
  (if (and (bufferp pbuf) (buffer-name pbuf)) (unwind-protect (progn
  ... ... ... ... ... ... ...) (if ... ...)))
  (let ((pbuf ...) (obuf ...) (inhibit-eol-conversion nil)) (if (and
  ... ...) (unwind-protect ... ...)))
  (mew-filter (goto-char (point-max)) (mew-set-buffer-multibyte nil)
  (insert string) (when (string= status "retr") (mew-net-status2
  ... ... ... ... nil ...)) (cond (... ...) (... ...) (t ...)) (unless
  stay (unless next ...) (mew-pop-set-status pnm next) (setq func ...)
  (goto-char ...) (if ... ... ...) (if ... ...)))
  (let* ((pnm ...) (status ...) (mulrep ...) stay next func)
  (mew-pop-debug (upcase status) string) (mew-filter (goto-char ...)
  (mew-set-buffer-multibyte nil) (insert string) (when ... ...) (cond
  ... ... ...) (unless stay ... ... ... ... ... ...)))
  mew-pop-filter(#<process mew-pop-info-yohta at example.com>
  "eceived: from acer-56fb35423d ([121.173.147.76]
  helo=acer-56fb35423d)\n	by
  71-17-154-142.sktn.hsdb.sasknet.sk.ca ( sendmail 8.13.3/8.13.1) with
  esmtpa id 1AkjyG-000DOF-fv\n	for yohta at example.com; Mon, 17 Dec
  2007 18:19:29 -0600\nMessage-ID:
  <96AB8CE8.4EDB6D77 at example.com>\nDate: Mon, 17 Dec 2007 18:19:19
  -0600\nFrom: \"denverr Stacey\"
  <Staceydkbrz at example.com>\nUser-Agent: Thunderbird 2.0.0.0
  (Windows/20070326)\nMIME-Version: 1.0\nTo:
  yohta at example.com\nSubject: oppmeldi\nContent-Type:
  multipart/alternative;\n
  boundary=\"------------040105010305080808070704\"\n\n--------------040105010305080808070704\nContent-Type:
  text/plain; charset=ISO-8859-1;
  format=flowed\nContent-Transfer-Encoding: 7bit\n\nSwitch from
  \"small size\" to \"magnum size\" condoms. Why? Because, with this
  medicine, your \"package\" won't fit in your pants!
  http://www.yesmedicals.com/\n\n--------------040105010305080808070704\nContent-Type:
  text/html; charset=ISO-8859-1\nContent-Transfer-Encoding:
  7bit\n\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01
  Transitional//EN\">\n<html>\n<head>\n</head>\n<body
  bgcolor=\"#ffffff\" text=\"#000000\">\nSwitch from \"small size\" to
  \"magnum size\" condoms. Why? Because, with<br>\nthis medicine, your
  \"package\" won't fit in your pants! <a
  href=\"http://www.yesmedicals.com/\">http://www.yesmedicals.com/</a><br>\n</body>\n</html>\n\n--------------040105010305080808070704--\n.\n")




Mew-dist メーリングリストの案内