MozillaZine.jp フォーラム
https://forums.mozillazine.jp/

Firefox 24esrから31esrへupdateすると、不具合が出る
https://forums.mozillazine.jp/viewtopic.php?f=2&t=15288
ページ 11

作成者:  from_far_away [ 2015年2月26日(木) 09:29 ]
記事の件名:  Firefox 24esrから31esrへupdateすると、不具合が出る

Firefoxの設定:
Firefoxを起動するとき:前回終了時のウィンドウとタブを表示する。
履歴:記憶させる。

詳細状況:
1.Firefoxを閉じる前に、ブックアークに設定されたwebサイトのホームページになっています。(ログイン済み状態)
2.Firefoxを閉じて、また再起動して、ブックアークに設定されたwebサイトのホームページになるはずですが、
  ログインする必要なcookieがなくなって、認証問題がありました。でも、ブックアークをクリックすると、
  cookieが出てきて、ログイン問題がありません。
3.Firefox 24esrへ更新すると、問題ないです。31esr以降のバージョンへ更新すると、この問題が起きました。

知りたいことは、31esr以降のバージョンでcookieの保存方式などが変わりましたか。
また、何かアドバイスなどがあればご指導頂ければ幸いです。
よろしくお願いします。

作成者:  WADA [ 2015年2月26日(木) 11:28 ]
記事の件名:  Re: Firefox 24esrから31esrへupdateすると、不具合が出る

cookies.sqlite も webappsstore.sqlite(localStorage) も places.sqlite も、結局は、サイトのURLをキーにして、そのキーに関するデータが入っている「表」で、places.sqlite は、その中にブックマーク用や履歴用の表を複数持っていて、組み合わせて使っているだけ。
SQLite Managerを入れて、firefox.exe -p SQLite -no-remote で別途Firefoxを立ち上げておき、Firefoxが動いている時や終了後にcookies.sqliteをコピーし、それをSQLite Managerで見ると、どのようなデータが保存されているかを簡単に見られます。
動いている途中だと、まだ一時ファイルに書いてあってsqliteファイルには書いていない時もあるから、クッキーマネージャーで見た方がいいですけど。
また、Webコンソールでクッキーのやり取りを見られますから、
そのサイトだけを開いていてログインした状態で終わらせて、最小限の動きになるようにし、
再起動した時のクッキーのやり取りを見て、Firefox esr24とFirefox 31esrの違いを探し、
SQLite Managerでのデータと照らし合わせると、実際に何が起こっているかを把握しやすいと思います。

セッションリストアーでのアクセスとブックマークからのアクセスの違いが影響していると思われますし、
サイトによってはリダイレクトをしていて、それが影響している、というような可能性はあります。
また、期限切れなのに残っていたものが、Firefox 31esrでは、バグが直ってきちんと消されるようになった、というような可能性もあります。
履歴関係では、少なくとも、ダウンロードの履歴が、他の履歴などと連動して消されるので、以前のように相当古いものも見られるわけではない、というような違いはあります。

[ちょっと追記]
Firefoxでいう「セッション」は、sessionstore.jsという名前のJSONファイルに保存されています。
JSONファイルは、JavaScrptのオブジェクトのデータを、 var Obj={ ..., A: { x: 1, y:2, z:3 } , B: { ...} , ... } で初期化する形式でファイルに書いたもので、
{ ... , "tabs": [ { "uri" : "http://forums.mozillazine.jp/..." , ... , ... } , { ... } , { ... } ] , ... }
のような形で、タブのURLを保存していて、これは、サーバー側の、PHPのsessionIDなどでの「セッション」とは異なり、単なるURIのデータです。、
サーバー側のessionIDは、setCokieで送られてきたデータに対応し、HTTPキャッシュの中のHTTPヘッダーデータあるいはcookies.sqliteのデータ、としてFirefox内には存在します。

で、302リダイレクトがあると、sessionstore.jsに書かれるURIも変わる?、というのが、一つの疑問です。
cookies.sqliteのデータのキーのURIと、sessionstore.jsのデータのURIが異なれば、当然HTTPキャッシュやcookies.sqliteのデータなどを読みません。
[/ちょっと追記]

作成者:  from_far_away [ 2015年2月26日(木) 14:58 ]
記事の件名:  Re: Firefox 24esrから31esrへupdateすると、不具合が出る

WADAさん、こんにちは。
ごアドバイスありがとうございました。

>再起動した時のクッキーのやり取りを見て、Firefox esr24とFirefox 31esrの違いを探し、
>SQLite Managerでのデータと照らし合わせると、実際に何が起こっているかを把握しやすいと思います。
上記の通りにやってみましたが、cookies.sqliteファイルのデータの違いが特にありません。

Firefox側のプライバシーの「記憶させる履歴を詳細設定する」でCookieを表示して確認しました。
毎回Firefoxを閉じて、また開く際に、ただログイン必要なcookieのみがなくなって、他のcookieは全て残っていることです。
最初はサーバ側のcookieの設定問題だと思いましたが、
Firefoxのバージョンを変わると、不具合がなくなるのでFirefox側の問題かと考えています。

作成者:  WADA [ 2015年2月26日(木) 16:37 ]
記事の件名:  Re: Firefox 24esrから31esrへupdateすると、不具合が出る

from_far_away さんが書きました:
上記の通りにやってみましたが、cookies.sqliteファイルのデータの違いが特にありません。
Firefox側のプライバシーの「記憶させる履歴を詳細設定する」でCookieを表示して確認しました。

これって、Firefoxを終了する直前の、Tabのそのページが開いてあってログインしている時の状態ですよね。
Firefoxを終了した時点の、cookies.sqliteの中身、sessionstore.jsの中身はどうなっているのでしょうか?

from_far_away さんが書きました:
毎回Firefoxを閉じて、また開く際に、ただログイン必要なcookieのみがなくなって、他のcookieは全て残っていることです。

これは、再起動して、セッションリストアーが接続した後の話ですよね。
セッションリストアーが接続したときのWebコンソールのHTTPログには、どのようなクッキーのやり取りがあったのですか?

セッションリストアーが接続したときには回復されなかったログイン状態が、何故、そのあとにブックマークをクリックすると、ログイン状態になるのでしょうか?
この時点では、サーバーのセッションデータは消されているはずで、
セッションクッキーを送らなくて最初から始まるが、でもその時、ユーザー名などのクッキーは生きているから、ログイン状態になれる?

セッションリストアーが接続した時のクッキーのやり取りやページの遷移と、
ブックマークをクリックした時のクッキーのやり取りやページの遷移の違いは何ですか?

クッキーのやり取りの様子は、Firefox Esr24とFirefox esr31とで変りはないですか?
サイト側が、Firefox 31だと(Austrailの後)、Web Storage(localStorage)とかを使って、クッキーのやり取りを減らしている、というようなこともあり得ます。
やるんなら、サイトのバージョンを上げて一斉にで、ブラウザーのバージョンごときで変えるとはちょっと考えにくいですけど。

作成者:  WADA [ 2015年2月26日(木) 18:15 ]
記事の件名:  Re: Firefox 24esrから31esrへupdateすると、不具合が出る

Firefox 24とFirefox 31の違いで気になることが...
SQLite のバージョンはどう異なっていますか?
最新ではSQLite 3.8.8.2なのですが、Firefox 24がSQLite 3.7.11よりも前のバージョンだと、SQLite 3.7.11での仕様変更に全然対応していないので、SQLiteのDBの更新のすっぽ抜け、ロックをリリースしない、というような問題が、Firefox 31で新たに起こる可能性があります。

https://bugzilla.mozilla.org/show_bug.cgi?id=1062823
SQLite 3.7.11よりも前は、ROLLBACKで競合が起こるとSQLITE_BUSYを返していたが、
SQLite 3.7.11からは、ROLLBACKで競合が起こると、ROLLBACK以外にはSQLITE_ABORTを返し、ROLLBACK同士の競合だとSQLITE_ABORT_ROLLBACKを返す、
というような仕様変更なのですが、
SQLITE_ABORTとSQLITE_ABORT_ROLLBACKのチェックは一切していないので、リトライはせず、
一般的なエラーのNS_ERROR_FAILURE が呼び出し側に返されるだけになるので、呼び出し側もリトライしないはずで、
更新のすっぽ抜け、あるいはROLBACKのすっぽ抜けが起こり得る、というものです。

あるサイトのクッキーの一つがいつも更新されない、ということは、ちょっと考えられないですが、
終了時だと、最終的なcookies.sqliteの更新とFirefoxの終了処理が必ずバッティングする、というようなことはあり得ます。

[追記]
SQLite のバージョンを知る方法。
SQLite Managerを入れ、適当にConnect Dataabase(sqlite fileのオープン、"Execute SQL" タブで、
SELECT sqlite_version(*)
"Run SQL"ボタンをクリック。
[/追記]

作成者:  WADA [ 2015年2月27日(金) 18:51 ]
記事の件名:  Re: Firefox 24esrから31esrへupdateすると、不具合が出る

NightlyならZIP Buildがあるので、Firefox esr 24のリリース日の近くのtrunk nightlyで確認してみました。

Firefox esr 24.0
Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20130911 Firefox/24.0
SELECT sqlite_version(*)
3.7.17

Firefox esr 24.8.0esrpre
Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20140924 Firefox/24.0
SELECT sqlite_version(*)
3.7.17

既に、SQLite 3.7.17 になっているので、SQLite 3.7.11でのROLLBACK絡みの仕様変更によるもの、ということではなさそうです。
SQLite 3.7.17とSQLite 3.8の違いが影響している、ということはあるかもしれないですけど。

作成者:  from_far_away [ 2015年3月12日(木) 14:24 ]
記事の件名:  Re: Firefox 24esrから31esrへupdateすると、不具合が出る

ありがとうございました。

色々調べましたが、なんとかほしい結果が出てこないですね。。。

作成者:  WADA [ 2015年3月12日(木) 15:20 ]
記事の件名:  Re: Firefox 24esrから31esrへupdateすると、不具合が出る

from_far_away さんが書きました:
色々調べましたが、なんとかほしい結果が出てこないですね。。。

最初に以下のように言っているから、多分、再起動したあとだと無くて、ブックマークをクリックした後はでてくるクッキーの名前と中身は、中身は意味不明かもしれないが、わかっている。、
from_far_away さんが書きました:
ログインする必要なcookieがなくなって、認証問題がありました。
でも、ブックアークをクリックすると、cookieが出てきて、ログイン問題がありません。
毎回Firefoxを閉じて、また開く際に、ただログイン必要なcookieのみがなくなって、他のcookieは全て残っていることです。

ならば、Webコンソールを見ればクッキーのやり取りは見えるのだし、
クッキーマネージャーでの表示もできるのだし、
終了した時点のクッキーデータを見たければ、SQLite Managerでcookies.sqliteを見れば、見ることができる。
そして、大体はjsファイルが分散していて、下手するとJSで<script src>を作り出していることも多くて探すだけでも大変だが、HTMLで呼んでいるスクリプトを見ることも、容易ではないにしろ、全く不可能というわけではない。
「ほしい結果」が何なのかは知らないが、自分で何かを調べた結果なら、何をどう調べてみてどこがどうわからなかった、くらいは書かなきゃ、誰にもわからないし、問題の解決方法、だとしたら、何がどうなっている、ということについて説明がなければ、誰も答えようがない。

「色々調べました」は、どのようなことを調べてみたことを指すのでしょうか?

作成者:  WADA [ 2015年3月12日(木) 15:28 ]
記事の件名:  Re: Firefox 24esrから31esrへupdateすると、不具合が出る

接続したまま終了・再起動すると、ログインに必要なクッキーが消えているのに、ブックアークをクリックするとログインできてしまう、ということについて、
接続したまま終了・再起動するとログイン状態になってくれない、という部分だけを見るのではなく、
なぜ、ログインに必要なクッキーが消えているにもかかわらず、ブックマークをクリックするとログインできてしまうのか、
を調べてみると、接続したまま終了・再起動するとログイン状態になってくれない時のことが、少し見えてくるかもしれません。

作成者:  WADA [ 2015年3月12日(木) 15:42 ]
記事の件名:  Re: Firefox 24esrから31esrへupdateすると、不具合が出る

from_far_away さんが書きました:
3.Firefox 24esrへ更新すると、問題ないです。31esr以降のバージョンへ更新すると、この問題が起きました。

他のトピックで、Fx36にしたら、Ctrl+Tで新規タブを開くと、「アドレスの書式が正しくありません」とでてきて、Malformed URIと判定されてしまう、というのがあったのですが、この方の場合は、Firefoxの再導入で問題が消えたようです。

Firefox 24の時点のプログラムライブラリーを、Firefox24とかにリネームしておき、Fx 31esrやFx 36を新規にインストールしてプログラムライブラリーだけでもクリーンインストールすると、どうなりますか?
pluginsの場所が途中で変わったりしているので、古いバージョンのプラグインが悪さをする、というような可能性はあります。

ページ 11 All times are UTC + 9 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/