Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:88467 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 89741 invoked from network); 24 Sep 2015 08:00:42 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 24 Sep 2015 08:00:42 -0000 Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 209.85.215.51 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 209.85.215.51 mail-la0-f51.google.com Received: from [209.85.215.51] ([209.85.215.51:34240] helo=mail-la0-f51.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 15/16-33598-7ADA3065 for ; Thu, 24 Sep 2015 04:00:40 -0400 Received: by lahg1 with SMTP id g1so77864153lah.1 for ; Thu, 24 Sep 2015 01:00:35 -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=JCsXB+uD1tSsv4nHQB/plP1AT2UoCLwxQD7tOlGhc1w=; b=jqJ9ao6KjItg0Qwl423ckf0K9KJZwKtoa+xVhMddjB3wfooxSf48/SodiGLh2WUHh/ duECgJvnv807rpqGaLGi+yB9ZqWwp1ZolhltAcqXiTekshwjhjhHmp4VtYIXlRlWMSD+ p8hWLzzWU3p0lNCwJPUYTv1jM5XW3HcHfozhXGaZbCx1HVFXxDIV/ZxVeaN5/+lOAM24 qNHsk/+ZSv/rSc0xFth4fKH6xdF0PdeQT7AeLGxJBkTOJFQOUqBbfXBbdQHBVdEYE7vX EfIRcNsLPAIt9NmGe1+p53cA1BBAsOq/e2+0woLkaMy9tXbA0UX9tduF+41TlV4nxX01 rJkw== X-Gm-Message-State: ALoCoQmpl3e96GW7TojS4ZZsO6301p6pTmBtr94EOhVrhALTsVoT14kOQ2n8LgA5gl6IL0y0gmpwVKUqvw0AXZNT7Z4xGDSNMX6YEXS12192qbiTKxc6eHD6vMY45C4ydXlzhJYzbro+ChNhfPvjxK7eod0mojuhBjxIpAdmY6H9l7DfJ0dROM8= MIME-Version: 1.0 X-Received: by 10.112.157.68 with SMTP id wk4mr12758382lbb.119.1443081635117; Thu, 24 Sep 2015 01:00:35 -0700 (PDT) Received: by 10.25.137.198 with HTTP; Thu, 24 Sep 2015 01:00:35 -0700 (PDT) In-Reply-To: References: Date: Thu, 24 Sep 2015 11:00:35 +0300 Message-ID: To: Matt Ficken Cc: PHP Internals , "dmitry@php.net" , Xinchen Hui Content-Type: multipart/alternative; boundary=001a11c2ae0e3e6001052079a05a Subject: Re: Windows OpCache bug fix From: dmitry@zend.com (Dmitry Stogov) --001a11c2ae0e3e6001052079a05a Content-Type: text/plain; charset=UTF-8 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 >>> >> >> > --001a11c2ae0e3e6001052079a05a--