Hi all,

On Sat, Mar 21, 2015 at 6:43 AM, Yasuo Ohgaki <yohg...@ohgaki.net> wrote:

> On Fri, Mar 20, 2015 at 7:12 PM, Mateusz Kocielski <s...@digitalsun.pl>
> wrote:
>
>> Doh, it's happening again, it was discussed before. Anyway, your solution
>> seems to not fix the real problem behind the bug entry. I suspect that
>> following scenario may occur:
>>
>
> Of course it was. I remember well.
> Discussion was not going well because people does not understand
> nature of web session. i.e. Session management is asynchronous.
>
> It works almost always under stable network, but it cannot with unstable
> network.
>
>
>>
>>  http://lxr.php.net/xref/PHP_5_4/ext/session/mod_files.c#429
>>
>>  scenario could be as follows:
>>
>>  1. request A is done with sessid=123
>>  2. A calls session_regenerate_id and is preempted after unlink(2) but
>> before
>>     access(2)
>>  3. request B is done with sessid=123 - session_start creates the session
>>  4. request A wakes up, session is written to fs by request B, so destroy
>>     fails
>>
>>  Please note that if destroy fails, then new session is not generated,
>> possible (but ugly) solution is to call session_regenerate_id again.
>>
>
> It just does not work.
> How do you keep session for lost session?
>
> Lost session occurs like
>
> 1. Server executes session_regenerate_id(true), delete old data and send
>     new session ID with copied data to browser.
> 2. Unstable network lost packet that sets new session ID.
> 3. Browser thinks old session ID is valid, but there is no session data
> for it.
>
> Besides, there is issue that session data must be deleted may keep alive
> forever. Current session management is not predictable and precise at all.
>
> If there is better idea other than the RFC, I appreciate it.
>

BTW, if there are users who do not care about mobile devices at all, they
can simply set session.destroy_ttl=0.

Regards,

--
Yasuo Ohgaki
yohg...@ohgaki.net

Reply via email to