[pgcluster: 71] packet.pg_data initialization and \n in elog()
Jun Kuriyama
kuriyama @ imgsrc.co.jp
2004年 1月 26日 (月) 17:23:05 JST
こちらの初歩的なミスで rsync によるリカバリができなかったので、デバッ
グ出力を付けたりしながら追っていたのですが、rsync が使えなかった時に
"DEBUG: 1st rsync error" としか言ってくれないのがちょっと辛いところで
した。
# ちなみに該当マシンにはまだ rsync がインストールされていなかった、と
# いうひどいミス :-(
recovery_rsync() の中で失敗したときに、どの段階で失敗したのかを
Debug_pretty_print の時には表示してくれたりすると問題を追跡しやすかっ
たりするのですが、どうでしょう?
# 単純作業でしょうから、なんだったら作ってパッチ投げます
また、パケットの表示で、pgreplicate 側で受けたパケットに pg_data が
表示されないのであれ? と思ったのですが、これは pgreplicate 側では使
わないデータだから渡してない、という理解でいいのでしょうか? デバッグ
途中につい埋めてパケット投げるようにしてみたんですが、結局ここが原因で
はなかったのでまあいらないデータを渡すのも冗長なのかな。pgreplicate の
表示が一式揃うのが嬉しいだけかも(添付パッチの前半)。
あと、Debug_pretty_print で見ていると、elog() 関数は末尾に \n が入っ
ていない文字列を期待しているように見えます。添付パッチの最後で
show_recovery_packet() から \n を取ってみました。なんか他にもありそう
なので、grep してえいやっ、と削ってしまった方がいいかもしれません。
以上、いろいろ細かいところを失礼しました……。
--
Jun Kuriyama <kuriyama @ imgsrc.co.jp> // IMG SRC, Inc.
<kuriyama @ FreeBSD.org> // FreeBSD Project
pgcluster メーリングリストの案内