hi Matt,

Thanks.
I also moved the exit condition to be before Sleep().
This should prevent race condition on last iteration (after unlocked sleep
process should try to reattach).
Committed to PHP-7.0 and master.

http://git.php.net/?p=php-src.git;a=commitdiff;h=262160e0e9919dce914df2f0643c4b16ca137454

If this really works, we should backport this into php-5.* as well.

Thanks. Dmitry.

On Thu, Sep 24, 2015 at 8:34 AM, Matt Ficken <themattfic...@gmail.com>
wrote:

> Ok, I have a new PR just to unlock around Sleep():
> https://github.com/php/php-src/pull/1536
>
> Just by unlocking around Sleep() the OpenFileMapping loop will work.
> Holding the lock in that loop will not only block detach_segments() in
> other PHP processes but also reattaching in accel_startup().
>
> Checking the base address used when this issue occurs during some of my
> stress testing, most of the time the base address used is the first in
> vista_mapping_base_set. Its typically the timing between the locking and
> mapped file operations between processes more often than the base address
> selection.
>
> Especially ASLR, also PECL DLLs, and other factors will still cause this
> issue occasionally, but this fixes a majority of my occurrences.
>
> Regards
> -M
>
>
> On Wed, Sep 23, 2015 at 2:04 AM, Dmitry Stogov <dmi...@zend.com> wrote:
>
>> Hi Matt,
>>
>> It looks like with your patch, the same file may be mapped to different
>> virtual addresses of different processes and this won't work.
>> I think usage of vista_mapping_base_set[] in your patch is wrong.
>>
>> Do I understand properly, that zend_shared_alloc_unlock/lock_win32()
>> around Sleep() is the main part of the patch?
>>
>> Please, next time, try to make PR diffs as small as possible (without
>> messing real fix with formatting and rearranging changes).
>>
>> Thanks. Dmitry.
>>
>>
>>
>> On Wed, Sep 23, 2015 at 10:10 AM, Matt Ficken <themattfic...@gmail.com>
>> wrote:
>>
>>> I want to increase visibility for my PR 1531,
>>> https://github.com/php/php-src/pull/1531, my patch for fixing an
>>> intermittent OpCache issue on Windows.
>>>
>>> Details, etc... are on the PR.
>>>
>>> Regards
>>> -M
>>>
>>
>>
>

Reply via email to