651 :
564:
みんなからスルーされたけど、やっぱり気になったんで
色々試して再現できる状況になりましたので報告。
スタンド・アロンでやってみた結果
1 スレを建てる。適当に読み・書きする。
起動状態でBBSファイル・リネーム。
→BBSビューから読み込むと何も表示されず。ステータスは「自己スレッド」のまま。
→外部ブラウザで読み込むと「ページ表示は完了」となるが、スレ内容は表示されず。
フォルダ再チェックをかける
→BBSビューからは新スレタイ(ファイル名)で見え、読み書き可。
→板スレッド一覧から「右クリック-外部ブラウザ開」で開くと、新スレタイに認証警告(<strike>付)で読み書き可。
→BBSメニューの外部ブラウザ起動(フレーム有)で該当板一覧で見ると、スレタイが以前の物になっている。
→読み込み不能。ステータス・ゲージの経過では読み込み完了状態。
→ブラウザを終了させると同時に、スレタイが旧に戻ってしまう
→BBSビュー上からも右クリック・外部ブラウザからも読み込み不能になる。
→この状態時、且つBBSビューでスレ表示が開いてる時に強引にカキコをすると、
「投稿失敗」表示と共にBbsフォルダに旧スレタイで新規スレが生成されてしまう。
→スレ一覧上での発言数は「先程までの発言数+新規の発言数」となっている。
→この後、BBSビュー他から読み込みに行くと、レス0又は先のレスが
>>1で登場。
→完全に新規スレを読んでいる。
→カキコは各方法とも正常に可能
しかしスレ一覧上での発言数は「先程までの発言数+新規の発言数」となっていったり、
数回のカキコ後に新規スレの正常なレス数表示になったりする。
652 :
564:03/05/26 21:50 ID:SDdSLMng
元スレ、リネーム後、新規生成スレは何れも同ハッシュ・同トリップ。
この後、再フォルダ・チェックを行うと新規スレも含め全てのBBSファイルをWinnyは認識。
しかし同ハッシュスレを同時にスレ一覧に表示はしない(当たり前か)が挙動は不審。
試してみた状況では発言数(サイズ)が大きい旧スレがチェック直後には表示される。
これをBBSビュー、右クリック・外部ブラウザ(スレ単体)で読むと通常の挙動だが、
先と同じくメニュー・外部ブラウザ(フレーム付)から読み込むと表示不能、
終了と共に表示スレが新規スレの物に交代し、以後こちらしか見えなくなる。
以上は単独・非接続状態で試した結果ですが、これが繋がっていて他ノードに
旧スレのキャッシュが有ったり、BBSポートを開けていて直接叩かれた場合等、
更に不明な挙動となる様子です。
自スレがスレ一覧から消えたままになったりします。
1 スレタイ情報の取得に一貫性の問題が有りそう
2 特定の状況で投稿フォーム(もしくは投稿データ受け取り)の挙動がオカシイ模様。
3 板、スレタイ変更はBBSファイル・リネームでやるのはマズイ。
他の環境での再現性の確認、並びにプログラムに明るい方の検証お願いします。
私の環境:w2ksp3
653 :
564:03/05/26 21:51 ID:SDdSLMng
ny2BBSの挙動(+予想)
スレを建てる。
↓Bbsフォルダ内に対応するファイルが作られる
→ヘッダにスレタイ、スレ建てトリップ、その他が埋め込まれる
→キー用キャッシュは作られない
→起動チェック時にBbsフォルダのファイルからキーは生成されメモリ上にバッファされる。
スレタイ+トリップ+制作日時でハッシュ(ID)を生成
?→この時、ファイル名と埋め込まれた板名、スレタイが一致しない場合は認証警告(<strike>付)
654 :
564:03/05/26 21:54 ID:SDdSLMng
書き忘れ 以上Winny2b32での事です。
そういえば、インポートしたらBBSフォルダのファイル数カウントが増えるね。
このあたり動作が怪しい・・・
>>651 BBSファイルのリネームしたら、該当ファイルへのアクセスが不可能
なので、スレ内容は表示されないでしょう。
あと、以前のスレタイでスレを開いてる時に書き込みをすると、
BBSフォルダに以前のスレタイでファイルが新規作成されます。
(まあプログラム上は当然の動作ですね・・・)
と確認してみたところで、少し考えてみました。
ny1では、BBSフォルダにあるファイルはUpファイルと同等であったため、
ファイルリネームによるスレタイの変更は可能でした。
しかし、ny2ではキャッシュファイルです。
ただし通常のキャッシュと違い、ファイル名が暗号化されていないのでしょう。
キャッシュファイルである以上、
ny2ではファイルリネームによるスレタイの変更は(現状)不可能です。
それにWinnyでの動作保障もできないでしょう。
こういう誤解を生まないため、
BBSのキャッシュファイル名も暗号化してしまったほうが、無難な気がします。
で、あとはスレ削除とスレタイ変更をWinnyから出来るようになればいいのですが・・・。
>>657 そのレベルまで行くとフリーネットじゃないと
あかん気が
659 :
564:03/05/28 00:53 ID:pKXwTV8q
>>656 >>656 そうですか。
やはりWinny上からの板・スレタイ変更とスレ削除が実装されるのでしょうね。
起動中にリネームしたら以前のファイルパス情報ではアクセス不能になるのは当然だと判りますが、
再チェックorリネーム→起動した後の挙動が?だったので無い頭でチョット悩んでみたっつー事です。
仰る通りそもそも想定外の行為なのでしょう(w。
スレタイの取得元が一貫していない辺りが原因かなと。
おそらく他ノードBBSビューからは常にキー内のスレタイで見えているのだろうとは思いますが。
無駄を承知で更にゴチョゴチョやってみた所こんな感じでした。
[BBS_テスト] Test を [BBS_テスト] テスト にリネーム、再チェック(再起動)。
・フォルダチェック時はスレタイの取得元はファイル名の模様。
・そのままの状態でhash直接指定で読み書きする分には問題は無し(但し認証警告付)。
投稿成功のresで返されるスレタイもファイル名のまま。
・httpから板一覧(~/[BBS_板名]/)を要求された時に改めてキー(hash)から板・スレタイ情報を取得するらしい。
リネームされている場合はこの時にhashとファイルパスの関係が不整合を引き起こす様子。
"hash=~\Bbs\[BBS_テスト] テスト"だったのが"hash=~\Bbs\[BBS_テスト] Test"に換わってしまう。
この状態ではGETを送るとWinnyは該当ハッシュキーを保有しているので通すのだが、
OSでは"~\Bbs\[BBS_テスト] Test"は存在しないので読み込み不能となる。
660 :
564:03/05/28 00:54 ID:pKXwTV8q
>以前のスレタイでスレを開いてる時に書き込みをすると、〜
>〜プログラム上は当然の動作ですね・・・)
まぁ素人としてはここが最も良く解らなかったもので・・・。
DOSの">> hoge.txt"と同じ様な処理になってるんですかね。
(僅かに理解してるのがDOSだけなのでw)
該当ハッシュキーが有るのでWinnyは追記のつもりで渡してしまうと言った所でしょうか?