linux-0.1.6-test5がLibertyのゾンビソケット問題を解決した。MSG_DONTWAITが根本原因を修正し、スレッドの終了と再起動は必要ない。ソケットは既にノンブロッキングとしてマークされているので、なぜこうなるのか理解できない。忘れたのかもしれない。ソケットが失敗してOSが閉じたら、ノンブロッキングだったことを覚えているものは何もなくなると考えられるが、閉じたハンドルにアクセスすればすぐにエラーを返すはずだ。WindowsにはMSG_DONTWAITがなく、ソケットをノンブロッキングとしてマークするのが唯一の方法なので、WineでWindows版を実行する場合はスレッドの終了に頼る必要がある。
現在の唯一の問題は彼が得ているDB例外だ。
EXCEPTION: 11DbException Db::open: Bad file descriptor bitcoin in ThreadMessageHandler()
EXCEPTION: 11DbException Db::close: Bad file descriptor bitcoin in ThreadMessageHandler()
これはWineの問題だと予想していたが、Linuxでも同様に出ている。datadirを別のドライブに移動しても改善しなかった。私は一度も出たことがない。大量のアクティビティとDBアクセスを継続的に生成するストレステストを実行しているが、出たことがない。
彼はUbuntu 64ビットで、私は32ビットなので、それが違いだと推測している。あなたのLinuxマシンは64ビットか、32ビットか?DB例外が出たことはあるか?(db.logも確認してくれ。)test5でゾンビ問題が修正されたので、あなたのLinuxマシンで実行を始めてもらえるか?ここで何に対処しているのか、より良く把握するために3票目が欲しいところだ。DB例外はキャッチされないので、出るとプログラムが停止する。
ちなみに、Zetaboardsは「Member #」を表示することにこだわっているので、早めにサインアップして良いアカウント番号を確保した方がいいぞ。
出典:COPA対ライト裁判の証言の一環として、2024年2月にマルッティ・マルミによりGitHubで公開。完全な書簡アーカイブはmmalmi.github.io/satoshi/で閲覧可能。