2004年01月30日
川俣晶の縁側ソフトウェアMagSite1開発日誌 total 3755 count

障害のお知らせ・TrackBack pingが送信できないケースについて

Written By: 川俣 晶連絡先

 MagSite1 Version 0.26でTrackBack pingが送信できないケースがあることが分かりました。

 この症状が発生する場合は、書き込みを実行するとエラー画面になります。

 エラー画面になった場合でも、コンテンツそのものは正常に書き込まれています。ただ、TrackBack pingが送信されないだけです。

 現時点では、対処方法はありません。

 送信できなかったTrackBack ping URLはコンテンツ内に残っていますので、問題解消後に最後書き込みを行うことで送信することができます。

ちょっとだけ深読みが好きな人のための補足 §

 すぐに直る障害であれば、このようなコンテンツを書くことなく、対策版をリリースしています。仕事を中断して調査していましたが、原因はだいたい掴めました。しかし、ASP.NETとMagSite1のアーキテクチャにも関わるところなので、どう直せば良いのかまだ見えていないところです。

2004年1月30日16時54分頃追記 §

 発生条件は確実かどうか分かりませんが、TrackBack pingURLの指定と、画像を含むコンテンツの書き込みで問題が発生するようです。

2004年1月30日17時31分頃追記 §

 ほぼ正しい原因が判明したと思います。

 MagSite1本体をインストールしたディレクトリの下でファイルやディレクトリの変更が発生すると、ASP.NETはプログラムをビルドし直してプロセスを再起動します。一方、TrackBack ping送信を行う機能で使用しているAWebProcedureFrameworkは、プロセス空間内に若干のデータを持っています。プロセスの再起動が行われた場合、この若干のデータが失われます。これにより、TrackBack ping URLを含み、かつ、添付ファイル、画像などを含むコンテンツの書き込みを実行した場合、プロセスの再起動が発生する影響により「若干のデータ」が失われます。これにより、TrackBack ping送信のユーザーインターフェースの処理が失敗します。

 基本的なアーキテクチャを変更する必要があり得るため、どのような対策を取るかはまだ検討中です。

2004年1月31日16:36頃追記 「応急対策版リリース」 §

 応急対策版リリースであるMagSite1 Version 0.27をリリースしました。

 プロセス再起動のあとにAWebProcedureFrameworkの手順を開始するように処理が遅延されています。おそらく、たいていのケースではこれで十分に機能すると思われます。

 抜本的な対策については更に検討中です。