Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:126693 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by qa.php.net (Postfix) with ESMTPS id 5D51B1A00BC for ; Mon, 10 Mar 2025 14:43:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1741617645; bh=AYrXWJbQ33isaBew4J4sknPK0iS4PE87h0snqSt0Vmc=; h=References:In-Reply-To:From:Date:Subject:To:From; b=QZhYes8w/UViOdqMPbFOO86OH0/zoRfL6dvihF8R/Sb04KMSf93oQHmLoeaoxqRoW MpS4MqGFueXLhkmffRYBzLT0wM33nZ/Cfgf5r2KEM92Dr9gPgcPyil9huqyE5RAj/L WSvcoiOgSBp9qJwcCcy465nGV69T7UJ8GYBG0zOypcW8mQZIUS4eCj9E8PfM+T8/Um CGxWPrqHQ2YjSV04sDT6Q9ZX9hhqYdwUFYVMgaSAdedjX2MAr6StrBfJmjJR57a69q H49Usg2ugTokVnvGaY2tS0rZ8RakXn/46RmteGP2F74YW+GPyaVs5qn6NIsAAoXVgq FSHqRu9R1uHVA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 4A00C18007E for ; Mon, 10 Mar 2025 14:40:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_20,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com [209.85.160.175]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Mon, 10 Mar 2025 14:40:45 +0000 (UTC) Received: by mail-qt1-f175.google.com with SMTP id d75a77b69052e-476805acddaso14414551cf.1 for ; Mon, 10 Mar 2025 07:43:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741617798; x=1742222598; darn=lists.php.net; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=AYrXWJbQ33isaBew4J4sknPK0iS4PE87h0snqSt0Vmc=; b=hi3vJFNiP9FBkWv0f+QPEMv3OPUZ0nJhnqjgwwkHai4rRVH1lXAgfukgH9DET+rrLj CcYvk+m1QAcM9FxzDK3S5tm78dfrmFHC1zCBWXKC1Q0Q1ga4O4/CHKSh8HovJ9MUVGC7 hLSMf6NRHdByECXhRtVbC+mwH0cuV1Hi/3Ke9cekGH/4CED0Mx0dkvGNFdTafnBZXJlm IXTYLcQJIndNURfphhPRmJZIProdgzyQSLpDQxCOU8ulmEynCvc6H8lSjj3LbHOZ2Asg MRdBUvx2fjHOWjM5QtUCSbr3IeoBoiq1nqJpMv3U/a7KDoWUWoAd1kxADiY0aZQjyw8L MXEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741617798; x=1742222598; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AYrXWJbQ33isaBew4J4sknPK0iS4PE87h0snqSt0Vmc=; b=kqxo3+3VvEI5emAR3NeZkMBLq1y9fQYJfvHF69pjEMN0lMB9nwHR69E4eoi04m76ZR QQvWIXxJbJRSGfaqFyNmYhleSz+cHrZYDScngLcmqYaud7Hp70mohL4Ld1zxqm0T+6BF wpWslsrZAlZZdlTnnIDzWZ+4NGGXUMPBHW8NYYDzOPSxjOC1KTwpijxJP1kpeX2nHAG6 c+W/QaA1l8LlrYVWw+mtJPUTGCkyGJBTrnk3pdozFAxA0YrAjaGqWeE2U+xryu39sdbU oddx+MhvzwTwMsGaKrmsNt0VdvuXo1A7TlDCSdpbBfKkltsotHMWow3CZym+qZkLJEgH xi1Q== X-Gm-Message-State: AOJu0YxzdOk6SaTOwS6OpVKOfyalRcTdYonmdNwNr8RhcvUeLNIZTQQ4 kXFfCgFPLIb/GS1BjIEx2jmDdBj27fF8Gw+r/ecJDfAyn/P+eUdcewRHxGkK/Ly9X4JeJaISnmv rz7rByf4gGCd46z8QOEfWRh9k0SwfwcSLPns= X-Gm-Gg: ASbGncuz2ih0DRN6yFc2Yi/lLAgzFFyS/Ok7OKGP8A6P+1ioO3v3FFylMS9FMDo/ljM 6zHqS2FeInEwfA7rkFjcHgReY3OLLxgpQ+TByWXVhcwsdorpITKk+g6nYg1nK+4WB958Iw803Iy 8/DbYMtN7faX40OkHpNBQaT0s/rYxYJGLKUuQCRUEX7/RHjGMW40kPJY3RPavi X-Google-Smtp-Source: AGHT+IEIapAOA3nvaqkJnmFDXDC7tMngQtIeKvphCv4C+CVJ9f/XX4MwEkzVKiJxigZFP7vn8yBmfZXVhfJGIHZ/a6k= X-Received: by 2002:ad4:500c:0:b0:6e6:6c7c:984a with SMTP id 6a1803df08f44-6e9006776admr131971846d6.29.1741617798520; Mon, 10 Mar 2025 07:43:18 -0700 (PDT) Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 References: <9548e5df-1cd3-4097-8961-7a087b21839f@app.fastmail.com> In-Reply-To: <9548e5df-1cd3-4097-8961-7a087b21839f@app.fastmail.com> Date: Mon, 10 Mar 2025 15:43:07 +0100 X-Gm-Features: AQ5f1JoPUymOIiijAgtFfYqhzvxVGIGFRk0yNgriLP1MlqeZS9tTVrH0s0GZ0es Message-ID: Subject: Re: [PHP-DEV] OPcache should zero out cache slots? To: PHP internals Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable From: tovilo.ilija@gmail.com (Ilija Tovilo) Hi Rob On Mon, Mar 10, 2025 at 9:23=E2=80=AFAM Rob Landers wro= te: > > I=E2=80=99ve been trying to chase down a very subtle bug in 8.4 that only= happens when OPcache is enabled (I'm trying to create a reproducer to file= an actual bug). From what I can tell, OPcache doesn=E2=80=99t zero out cac= he slots, so occasionally, a cache slot will contain garbage that happens t= o pass asserts/checks that causes the program to behave incorrectly. Withou= t OPcache, cache slots are always NULL if not set. > > It's quite rare to end up in that situation, though, but I was wondering = if anyone has any opinions on this? I don't believe this is accurate. If we're talking about the cache used within the VM, "cache slots" are a contiguous list of arbitrary void pointers. The compiler tracks how many cache slots each function needs, but the actual array of pointers is allocated at runtime, in init_func_run_time_cache_i(), when the function is executed for the first time on each request. init_func_run_time_cache_i() zeros the cache with memset. If it wouldn't, we'd run into issues quickly, because a non-0 cache is generally interpreted as a primed cache. Potentially, you might also be referring to the pointer map, which is a related concept. But this map is also zero'ed for each request (in zend_activate()). If you think you might be dealing with uninitialized memory in your case, MemorySanitizer or Valgrind may help. Does that help? Ilija