Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:73152 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 55083 invoked from network); 14 Mar 2014 10:07:08 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 14 Mar 2014 10:07:08 -0000 Authentication-Results: pb1.pair.com smtp.mail=narf@devilix.net; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=narf@devilix.net; sender-id=pass Received-SPF: pass (pb1.pair.com: domain devilix.net designates 209.85.213.54 as permitted sender) X-PHP-List-Original-Sender: narf@devilix.net X-Host-Fingerprint: 209.85.213.54 mail-yh0-f54.google.com Received: from [209.85.213.54] ([209.85.213.54:44302] helo=mail-yh0-f54.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id BB/33-47923-CC4D2235 for ; Fri, 14 Mar 2014 05:07:08 -0500 Received: by mail-yh0-f54.google.com with SMTP id f73so2250854yha.41 for ; Fri, 14 Mar 2014 03:07:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=devilix.net; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=GOXRJOH+4C4nDsDlt/UyxxMc+/cZpeQTGFKvWJyjrwM=; b=Tv2vJIOcBr6jvJqBvDiO/SEuAng7bAxMavlwqBJoorRjJuiVasiSSQJ7llFKHDyAEz TMc3DmyN34EvdKQiz0JgE+QzWoJVUf0kZIBbDvrf94gLaipe7ZNZ4DO4ya/cqPEvRJzK ZV7IpcnrDPjoaPgaI/s1ju10UH43hJ6brY/4k= 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=GOXRJOH+4C4nDsDlt/UyxxMc+/cZpeQTGFKvWJyjrwM=; b=AO44cblvSTIENVFmW05RwMXahPQ+8XWR52/1WQQMEoPX73N66IBZWom5mNi2i1iW69 nogt15uBmlM/x7i1iJ+KsAUHhT+dj1oflydmHt3L+fxHIq24Tc2ET1OBWG1vP78YSKRM ZGW+I56yRV69OS/Ji/ydnvCQSpZSXE2vQDY1eSEsTlfBGVIRunLq1PyqkAO4MeZ4lhrd IsiNm2+ULrIR4DbiUOOVm8WytAtXuA8H1qZWiwrAYudyocigrowpAC3g13yh40KF268z fxbBuSXNuOoh0Zw8wLsyhK9Y5xGkX+6RH+kjzZJH1ICGMMZl//uvAbuMZmBeMFXQkAth uInA== X-Gm-Message-State: ALoCoQn3RI2mqOZsLruO9beWuL5Agdooq9mwS943KS0nqBBq9adSD3/zPk5Xx4RM7FNBEIMiUWvk MIME-Version: 1.0 X-Received: by 10.236.122.99 with SMTP id s63mr9442962yhh.19.1394791625249; Fri, 14 Mar 2014 03:07:05 -0700 (PDT) Received: by 10.170.188.139 with HTTP; Fri, 14 Mar 2014 03:07:05 -0700 (PDT) In-Reply-To: References: Date: Fri, 14 Mar 2014 12:07:05 +0200 Message-ID: To: Yasuo Ohgaki Cc: Pierre Joye , Patrick Schaaf , internals Content-Type: text/plain; charset=UTF-8 Subject: Re: [PHP-DEV] Re: Revert session_serializer_name(), session_gc() From: narf@devilix.net (Andrey Andreev) Hi Yasuo, On Fri, Mar 14, 2014 at 3:30 AM, Yasuo Ohgaki wrote: > Hi Andrey, > > On Fri, Mar 14, 2014 at 8:16 AM, Andrey Andreev wrote: >> >> > I think shared lock is useful. It requires additional work to change >> > save >> > handler interface and save handler code. It's a distinct feature from >> > read_only. You can get status via session_status() if you need to know >> > during execution. i.e. If session is started with read_only, you'll get >> > PHP_SESSION_NONE status. >> >> This is a bug. >> A read-only session is not a non-existing session. > > > This is not a bug. > > session_start(['read_only'=>true]) > > is the same as > > session_start(); > session_commit(); > > It's much faster because no additional API call nor write to session > storage. This is broken, consider the following (multiple tab/ajax/whatever concurrency) scenario: Request1: session_start(['read_only' => TRUE]); Request2: session_start(); unset($_SESSION['logged_in']); session_commit(); Request1: still logged in ^ This screams "danger". It's also, redundant ... do you really believe you'd get +1 votes for that feature if the voters were *really* aware that this would be just an alias for (sesson_start() && session_commit()) ? I don't think so. This is simply not what "read only" means which makes this whole thing very misleading and if people who were supposed to review the feature got confused by it, imagine what happens in userland. Cheers, Andrey.