Bug #52144 [Com]: Error: Base lambda function for closure not found
| From: | nicolas at netlog dot com | Date: | Mon, 06 Jun 2011 18:04:24 +0000 |
| Subject: | Bug #52144 [Com]: Error: Base lambda function for closure not found | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-161215@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=52144&edit=1
ID: 52144
Comment by: nicolas at netlog dot com
Reported by: taco at procurios dot nl
Summary: Error: Base lambda function for closure not found
Status: Open
Type: Bug
Package: Scripting Engine problem
Operating System: linux
PHP Version: 5.3.2
Block user comment: N
Private report: N
New Comment:
Hi there,
We're experiencing the same problem here at Netlog. Also on production servers
when we have some load. Unable to isolate this issue yet. We're running php 5.3.5
and apc 3.1.9. If we disable APC the problem goes away.
Any clues here?
Previous Comments:
------------------------------------------------------------------------
[2010-11-05 08:27:47] janne dot hietamaki at gmail dot com
Updated to APC 3.1.5 and the problem still persists.
------------------------------------------------------------------------
[2010-11-05 08:14:07] janne dot hietamaki at gmail dot com
I'm seeing this error quite often on our production servers.
The problem seems to have something to do with APC cache, and after updating the files or
apc_clear_cache() some random anonymous function call breaks at somewhere on our code.
I can reproduce the error on our production server almost every time, but I have not yet been able
to build a reproducible test case. It seems to be a concurrency issue, so the reproduction most
probably
requires concurrent APC cache clearing and lambda function calls.
We're running PHP 5.3.3 with APC 3.1.4 on RHEL. I could try to upgrade to APC 3.1.5 next.
Any help would be appreciated.
------------------------------------------------------------------------
[2010-06-22 15:26:55] taco at procurios dot nl
The code in which the problem occurred looks like:
<?php
$methods = array(
'pfd_hor_pap' => function (&$v)
{
if (!empty($v)) {
$v /= 13.66;
}
return true;
},
// ...some other lambda functions
);
// ...code that uses the array with lambda functions
?>
The error occurs at the definition of the first lambda function in the array. The problem is that
the error isn't reproducable (at least not when I want it to be). That's why I'd like
to know what the typical situation is in which this error could occur.
------------------------------------------------------------------------
[2010-06-22 15:09:52] johannes@php.net
Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves.
A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external
resources such as databases, etc. If the script requires a
database to demonstrate the issue, please make sure it creates
all necessary tables, stored procedures etc.
Please avoid embedding huge scripts into the report.
Please also ensure that you're having no Zend extension or opcode cache or similar loaded.
------------------------------------------------------------------------
[2010-06-22 13:30:52] taco at procurios dot nl
Description:
------------
I've rewritten some create_function() calls to lambda functions. After updating our servers
with the new code the following error started to occur on one of the servers:
"Base lambda function for closure not found"
We immediately replaced the new code with the old and tried to figure out what went wrong. Since we
couldn't find the bug and on development machines nothing went wrong, we gave the new code
another try: everything worked like expected, without errors.
I'd really like to know what could have triggered this error, especially because we didn't
change the code that triggered it.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=52144&edit=1