[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: core dump



# 昼休みの一時の休息。

From: TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> さん曰く
Subject: [emacs-w3m:00239] core dump
Message-ID: <mpaitlb7nku.fsf@azalea.kuee.kyoto-u.ac.jp>
Date: 15 Mar 2001 11:50:09 +0900

土> w3m で大量のアクセスを作り出すと core dump して Emacs ごと落ちてしまう、
土> という症状に悩まされています。

土> 環境は Emacs-20.7 + Solaris-2.7 なのですが、添付したテストプログラムを
土> 以下のように実行してみてください。

土>     emacs -q -no-site-file -l w3m-segv.el

土> すると私の環境では

土>     ...
土>     w3m-message("Reading...")
土>     w3m-exec-process("-dump_source" "http://www.i.kyoto-u.ac.jp/cgi-bin/board")
土>     w3m-pretty-length(0)
土>     w3m-message("Reading... %s" "0 bytes")
土>     Fatal error (6).異常終了 (core dumped)

土> と落ちてしまいます。で、再現条件を色々と調べてみたのですが、

土>     ・(setq w3m-async-exec t) が関係している。nil の場合は落ちない。
土>     ・大量に連続してアクセスすると落ちるようだ。
土>     ・落ちる条件と URL との関係は不明

Solaris7 + Emacs-20.7 は core dump しました。以下のタイミングで
す。

("http://spin.asahi.com/0314/past/pbusiness14012.html" nil nil nil)

だけど Emacs-21.0.100 は core dump しないで、*Backtrace* がでま
した。

Debugger entered--Lisp error: (file-error "Creating pipe" "\xd2aa\xd0bc\xd2d7\xd2f3\xd235\xd26c\xd23f\xd2d5\xd2a1\xd2a4\xd2eb\xd22c\xe13f\xd239\xd22e\xd25e\xd239\xd0a3")
  start-process("w3m" #<buffer  *w3m-work*> "w3m" "-dump_source" "http://spin.asahi.com/0314/past/pbusiness14011.html")
  apply(start-process "w3m" #<buffer  *w3m-work*> "w3m" ("-dump_source" "http://spin.asahi.com/0314/past/pbusiness14011.html"))
  (let ((w3m-process-user) (w3m-process-passwd) (w3m-process-user-counter 2) (proc ...)) (set-process-filter proc (quote w3m-exec-filter)) (set-process-sentinel proc (lambda ... nil)) (process-kill-without-query proc) (while (eq ... ...) (if ... ...) (sleep-for 0.2) (discard-input)) (prog1 (process-exit-status proc) (and w3m-current-url w3m-process-user ...)))
  (if w3m-async-exec (let (... ... ... ...) (set-process-filter proc ...) (set-process-sentinel proc ...) (process-kill-without-query proc) (while ... ... ... ...) (prog1 ... ...)) (apply (quote call-process) w3m-command nil t nil args))

start-process で pipe を作るときに失敗しているようなので、明示的
に kill-process() すると動くとか。。。

# ご参考までに、としか言えない私が悲しい ;_;

-- 
白井秀行@だけど、くそ忙しいのに Emacs の version up は欠かさないヤツ ^^;