Ticket #571 (new バグ指摘) — at Initial Version

Opened 14 years ago

Last modified 9 years ago

セッション変数の排他制御で不具合

Reported by: Seasoft Owned by: seasoft
Priority: Milestone: バックログ
Component: その他 Version: コミュニティ (eccube-comu)
Keywords: Cc:
修正済み: no

Description

セッション変数の排他制御に不具合を見つけました。

(1) 14:12:40 	/index.php 		sfSessRead
(2) 14:12:45 	/index.php 		sfSessWrite
(3) 14:12:45 	/resize_image.php 	sfSessRead
(4) 14:12:47 	/index.php 		sfSessRead ← これが問題
(5) 14:12:50 	/resize_image.php 	sfSessWrite
(6) 14:12:52 	/index.php 		sfSessWrite
(7) 14:12:52 	/resize_image.php 	sfSessRead
(8) 14:12:57 	/resize_image.php 	sfSessWrite

※ /index.php と /resize_image.php は処理に約5秒間要するようにしてあります。

(3)(4)は、何れも(2)時点のデータを参照しており、(5)の書き込みを(6)が上書きしています。

そこで、SC_Helper_Session で行なっている session_set_save_handler を外すと、(4)は(5)の後に発生し、問題は解決されました。

ならば、EC-CUBE のセッション管理の不具合かと思い、PHP 公式マニュアルの session_set_save_handler 関数に書かれたサンプルに差し替えて見ました。しかし、同様の症状が発生しました。よって、PHP の session_set_save_handler 関数の不具合ということだと思うのですが、アプリケーション側で救えないでしょうか?

なお、同じファイル同士 ( /index.php 同士など ) では、適切にロックが行なわれました。 /index.php と /products/list.php の組み合わせなどは NG でした。

Note: See TracTickets for help on using tickets.