Bug #75579 [Ana]: All Interned Strings Free memory used and PHP crashes

From: Date: Thu, 21 Dec 2017 12:01:38 +0000
Subject: Bug #75579 [Ana]: All Interned Strings Free memory used and PHP crashes
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-213209@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=75579&edit=1

 ID:                 75579
 Updated by:         dmitry@php.net
 Reported by:        post at minhost dot no
 Summary:            All Interned Strings Free memory used and PHP
                     crashes
 Status:             Analyzed
 Type:               Bug
 Package:            opcache
 Operating System:   CentOS 7.4
 PHP Version:        7.1.12
 Assigned To:        dmitry
 Block user comment: N
 Private report:     N

 New Comment:

This is not a new feature. file cache worked in this way, if it wasn't able to allocate enough
shared memory for the script at once, but it didn't allocate additional blocks for
"overflowing" interned strings before (this was the bug).
With the first patch, if there is no enough memory for "overflowing" interned string, we
fall-back to recompilation from source. With the second patch we still load precompiled version from
file, but not to shared but regular memory.


Previous Comments:
------------------------------------------------------------------------
[2017-12-21 12:00:41] post at minhost dot no

And the answer is: When SHM is full, don't do anything new regarding file cache on disk, but
keep it the way it was working in PHP 7.1.11

------------------------------------------------------------------------
[2017-12-21 11:55:39] spam2 at rhsoft dot net

> The file cache on disk should be exactly that, on disk, not in memory

the primary opcache is always memory - normally SHM - the file cache is *optional* to survive
restarts/reboots without the need to compile each script again

the point here is: what to do when the SHM is full

------------------------------------------------------------------------
[2017-12-21 11:55:02] post at minhost dot no

I think your new patch is not related to this bug, I think it is a new feature you are adding, and I
don't like it. It has been enough trouble now. Please consider to not add this new feature,
then we have to study and test your new feature a lot before using it in production. It works
correct with your first patch, no need to change behaviour with a new feature.

------------------------------------------------------------------------
[2017-12-21 11:52:13] post at minhost dot no

I am not sure I completely understand you correct. However it makes me worry. Please note that the
first patch fixed the problem reported in this bug. Then I made a mistake in a reply, wich I
corrected in a new reply, confirming that is now works correct. File cache on disk works correct
with your first patch, it works correct and the same way as in PHP 7.1.11 wich do not have the bug.

So I don't understand what else you are trying to fix? The file cache on disk should be exactly
that, on disk, not in memory. And it works correct with your first patch.

------------------------------------------------------------------------
[2017-12-21 11:47:28] dmitry@php.net

It's going to load scripts cached in files into regular memory if SHM is full. Of course, it
would require more extra work on each request, but this should be cheaper then recompile everything.

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=75579


--
Edit this bug report at https://bugs.php.net/bug.php?id=75579&edit=1


Thread (52 messages)

« previous php.bugs (#213209) next »