Bug #52144 [Com]: Error: Base lambda function for closure not found

From: 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

« previous php.bugs (#161215) next »