Comments (10)
Can you do a print out of the cache variable in frame 0 ?
from apcu.
Can you let me know if you are using HEAD ?? There's been some updates in the last week or so that might have affected this.
If you are still experiencing a problem can you get me some more output from gdb, a test script would be great but there's not really enough to go on here ??
from apcu.
We are also experiencing the same problem. Apache processes appear to randomly start segfaulting, and all subsequent requests segfault until the apache is restarted. Sometimes it'll be a week before the problem reoccurs, sometimes it'll just be a few hours. The apache error logs contain "[notice] child pid 1134 exit signal Segmentation fault (11)" messages.
This is happening on a production machine and I haven't been able to reproduce the issue on my dev machine, so I'm unable to provide a trace at the moment.
We are running
APCU 4.0.1
PHP 5.5.4
Apache HTTPD 2.2.25
linux 3.11.1 x86_64
from apcu.
Same here
linux 3.11.6 x86_64 with grsec
apcu 4.0.2
php 5.5.5
Apache 2.2.25
from apcu.
Any update here?
from apcu.
Nothing good to say ....
I'll tell you what I know so far ...
Here's the line in question verbatim:
if ((h == (*slot)->key.h) && !memcmp((*slot)->key.str, strkey, keylen)) {
Here's the line so that everyone definitely understands it:
if (($h == $slot["key"]["h"]) && strcmp($slot["key"]["str"], $strkey, $keylen) === 0) {
There are two unbelievably unlikely ways that this line could conceivably segfault:
- The hash of two different keys of a different length clash
- The memory at $slot["key"] is free'd
There is no logical pathway to the second, and the chances of the first, given that we know the keylength are infinitesimally small.
I cannot reproduce the bug locally, if anyone has a machine where this occurs reliably and can grant me access to it, that would be super ... else I'm at a bit of a loss ...
from apcu.
I believe I'm also experiencing this bug, with the exception of running NGINX instead of Apache.
The server is making 1,000-2,000 apc_ calls a second depending on time of day. The entire cache is wiped clean every hour or so, but only after the PHP process has been running for about a day. Restarting PHP (php5-fpm in this case) immediately fixes the issue for another day.
I would be happy to give you access to the server, although this is a production server so flexibility may be limited.
from apcu.
apache 2.4.7
PHP 5.5.8
ttl 7200
gc.ttl 600
from apcu.
@krakjoe is it possible to detect a possible segmentation fault and return NULL. That should solve this for the most cases as this happens pretty infrequently.
from apcu.
According to other reports, this was fixed in later versions, upgrade to 4.0.6 or 4.0.7.
from apcu.
Related Issues (20)
- Valgrind Use of uninitialised value of size 8 in php_var_unserialize_internal() via php_apc_unserializer() HOT 2
- start_time in apcu_cache_info() HOT 2
- Test tests/typed_prop.phpt fails on PHP 8.3 HOT 1
- Enable igbinary as serializer Cause PHP 8.2 exited on signal 4 HOT 1
- segmentation fault when calling phpinfo() in ZTS builds HOT 2
- Unable to install on Mac M2 HOT 2
- compliation error on RedHat 8.2: zend_signal.h:46:2: error: unknown type name ‘siginfo_t’ HOT 4
- DLL missing HOT 2
- Create new release HOT 4
- apc.php shows wrong timestamps HOT 1
- DLL for PHP 8.3 (Windows) missing HOT 1
- %d printf specifier for key_t fails if the type is actually long (which is allowed by POSIX)
- apc_cache.c has two format specifier bugs (with patch) HOT 1
- Windows DLL for APCu 5.1.23 HOT 1
- Introduce documentation for setting "apc.smart"
- Store an \SplPriorityQueue HOT 1
- Windows DLL available to download HOT 1
- Expunges happen without hitting limits HOT 1
- `apcu_fetch` returns `success` for missing keys HOT 2
- Broken apc_entry_002 test with PHP 8.4 alpha1 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from apcu.