Hi Anatol,

On Sat, Jan 30, 2016 at 7:15 PM, Anatol Belski <a...@php.net> wrote:
>> -----Original Message-----
>> From: yohg...@gmail.com [mailto:yohg...@gmail.com] On Behalf Of Yasuo
>> Ohgaki
>> Sent: Saturday, January 30, 2016 4:13 AM
>> To: Anatol Belski <a...@php.net>
>> Cc: php-...@lists.php.net
>> Subject: Re: [PHP-CVS] com php-src: fix leak in 5.6: ext/session/mod_files.c
>>
>> On Sat, Jan 30, 2016 at 11:03 AM, Yasuo Ohgaki <yohg...@ohgaki.net> wrote:
>> > I'm just curious which case causes memory leak.
>> > php_rshutdown_globals() is always called at shutdown and s_close()
>> > should clean them up.
>> > http://lxr.php.net/xref/PHP_5_6/ext/session/session.c#104
>> >
>> > Thank you.
>>
>> s/php_rshutdown_globals()/php_rshutdown_session_globals()/
>>
> Thanks for the check. The actual reproduce case in #69111 was causing crash 
> in 5.6 only, so I made just a simple NULL check. So far it was fine on Debian 
> stable and old stable, but then travis showed that there was a memory leak on 
> the session data. Furthermore, despite the code base in 7.0 is somewhat 
> different, the memory leak is present as well. The basic situation is the 
> same - when the session id is invalid, it refuses the read/write operation 
> and seems that at some place the proper freeing doesn't happen.
>
> As valgrind on my dev environment was not showing any issue, I attempted to 
> analyze the code flow, then commit and see what travis tells. But as I don't 
> reproduce this leak locally, it's impossible to properly debug the case. So 
> finally I've reverted my attempts to fix the memory leak and set the test to 
> XFAIL until me or someone else can reproduce and debug it locally :( I'll 
> probably need to setup some more recent OS version for that, which I have no 
> time to. If it's reproducable for someone, please go ahead.

Thank you for the explanation.
I'll look into this. Session module should manage state precisely and
it makes things complicated. I guess there is/are missing state
management in it. Current code is not explicit about state management.

I may try to clean them up and rewrite it for PHP8. In the meantime,
I'll add many asserts and comments for better code readability and
future rewrite.

Regards,

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

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to