Re: Bitcoind

RecvUntil の中で起きているが、まだ何が問題なのか分からない。考えられるのは、ソケットが大量の文字を受信している場合だ。

この irc.cpp を試してみてほしい。debug.log が急速に大きくなる可能性があるので、すぐに停止できるようにしておいてほしい。

マルッティ・マルミのメール(2010年3月3日 12:32 UTC)

debug.logを添付します。

かなり絞り込めた。debug.logにIRCの活動が一切出力されていないので、 RecvUntilを通過できていないのだろう。目視では明らかな問題は見当たらない。 ConnectSocketかRecvUntilのどちらかに問題があるはずだ。

添付のirc.cppとnet.cppで試して、debug.logを送ってほしい。

あるいは、gdbで実行してThreadIRCSeedをステップ実行することもできる。 gdb —args bitcoin [switches] b ThreadIRCSeed run step またはuでステップオーバーしてルーチンから抜ける。

サトシ・ナカモトのメール(2010年3月3日 03:54 UTC)

getinfoに関係なくエラーが発生します。ThreadIRCSeedをコメントアウトしたら 問題が解決しました。

getinfoを実行しなくても同じ現象が起きるか?

以下に挙げるCreateThreadをコメントアウトして、その後1つずつ有効に戻していき、 再び問題が発生するまで試してみてほしい。そうすればどのスレッドに問題がある か分かる。

net.cppの// Start threads以下: CreateThread(ThreadIRCSeed, NULL) CreateThread(ThreadSocketHandler, NULL, true) CreateThread(ThreadOpenConnections, NULL) CreateThread(ThreadMessageHandler, NULL)

init.cpp: CreateThread(ThreadRPCServer, NULL);

マルッティ・マルミのメール(2010年3月3日 01:50 UTC)

送ります。クラッシュ時のエラーメッセージを伝え忘れていました:

terminate called after throwing an instance of ‘std::bad_alloc’ what(): std::bad_alloc

debug.logを送ってもらえるか?

サトシ・ナカモトのメール(2010年3月2日 22:27 UTC)

dddデバッガーで自分のbitcoindビルドのデバッグを試みましたが、まだうまく いっていません。常にシステムのメモリーをすべて使い切って、最終的にクラッシュ します。問題が自分のビルドに起因するものか確認したいので、最新の64ビット版 bitcoindのビルドをもう一度送ってもらえますか?

原文ソース

https://mmalmi.github.io/satoshi/
2024 年 2 月、COPA 対ライト裁判の証言の一環として GitHub で公開

他の外部ソース