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 >>> >> >> >