Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:88469 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 92909 invoked from network); 24 Sep 2015 08:29:43 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 24 Sep 2015 08:29:43 -0000 Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 209.85.215.41 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 209.85.215.41 mail-la0-f41.google.com Received: from [209.85.215.41] ([209.85.215.41:36189] helo=mail-la0-f41.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 75/86-33598-474B3065 for ; Thu, 24 Sep 2015 04:29:42 -0400 Received: by lacao8 with SMTP id ao8so55282462lac.3 for ; Thu, 24 Sep 2015 01:29:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=dGvf5QMzNHDtLELktj28h4lo4ZKDgkL7RZlMudfJa/g=; b=F8T5OHco66zcp87fKi9eFKBBD2uCWblB83JFA7kHVIhJXlQRFSHDiOK5csiJI052L9 j29jgjscYbjkPr0Mr81SUbVMbINC9KYfcCTFlnVd9RbTl1qaFSbJdDmvX9SbKbCG8w4r 3+UlsDSfac2y5nTDUbDgHPJCTkeojAdaQX2cBib0Q/CDYogkoLJRXl7LY628AKerYL8P sDS/afUqfk5fCe4ABenlcs7o99p32sGWi70qXcQST2bcbW2SCWOoooBcPoyUJSe2SurI Oql2CEN3rPBUnfewaeYhZrjpnO9wLUAcQhmrYTeFcWeQiXR6wFWrtWn/PCN2vfqxliL0 lteg== X-Gm-Message-State: ALoCoQlflF4/EBdM+0Oq65oJuEotNuYAkU84S/bv6dYs6bMIMVlpIpoU+/WSXX1tXHJGcP+lax0KT1BWVGmSn4gQPSXuFjHdE8rqI6BvZvk5W4oylO1habOj4XOV5jTSO1f80lZXcfFziZf6/1vbxIlBu9M6mKGemmbvXwj3kevBnfh8V2az7J8= MIME-Version: 1.0 X-Received: by 10.152.45.41 with SMTP id j9mr12934301lam.110.1443083377060; Thu, 24 Sep 2015 01:29:37 -0700 (PDT) Received: by 10.25.137.198 with HTTP; Thu, 24 Sep 2015 01:29:36 -0700 (PDT) In-Reply-To: References: Date: Thu, 24 Sep 2015 11:29:36 +0300 Message-ID: To: Matt Ficken , Anatol Belski Cc: PHP Internals , "dmitry@php.net" , Xinchen Hui Content-Type: multipart/alternative; boundary=001a11c29bca124e1005207a0835 Subject: Re: Windows OpCache bug fix From: dmitry@zend.com (Dmitry Stogov) --001a11c29bca124e1005207a0835 Content-Type: text/plain; charset=UTF-8 Ops, I forgot to revert the exit condition. http://git.php.net/?p=php-src.git;a=commitdiff;h=2d55e8c186ef1034c2af64478da8f23dbeb28be9 On Thu, Sep 24, 2015 at 11:00 AM, Dmitry Stogov wrote: > 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 > 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 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 >>> 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 >>>> >>> >>> >> > --001a11c29bca124e1005207a0835--