I'm getting this on the "Import content" page at the top of the page before beginning an import.
Warning: Call-time pass-by-reference has been deprecated in /home/path_to/modules/node_import/node_import.inc on line 1971
The patch in http://drupal.org/node/763036 to "make things compatible" with PHP 5.3 explicitly call for variables to be passed by reference? Not sure if this is the only place this was introduced, but it has been deprecated so it isn't a lasting viable solution.
Comments
Comment #1
Robrecht Jacques commentedWhat version of PHP is this?
Comment #2
mjvesper commentedPHP Version 5.2.15
Unless PHP is explicitly set to allow it (and being deprecated, many configs may have it off in PHP 5.x) using the directive allow_call_time_pass_reference = On, this error will come up.
Comment #3
Robrecht Jacques commentedDoes following patch work?
Comment #4
mjvesper commentedI may be wrong, but isn't this just adding another reference?
+ $args[1] = &$form_state;Comment #5
bt82 commentedthis worked for me, thanks.
Comment #6
Robrecht Jacques commented@mjvesper: no the important part is that the variable
"$args"is no longer passed as"&$args".The code is btw copied from
drupal_execute()whichnode_import_drupal_execute()is a wrapper to.Comment #7
Alaska commentedSame issue showed up for PHP 5.2.11. Same fix worked.
Comment #8
mjvesper commented@Robrecht Jacques - Gotcha...
Thanks for the patch.
Comment #9
Robrecht Jacques commentedComment #10
brandonratz commentedPatch confirmed working for PHP 5.2.11
Comment #11
ianchan commentedsubscribe
Comment #12
jetxs commentedsubscribe
Comment #13
hobo commentedpatch worked for me.
Comment #14
Robrecht Jacques commentedFixed in 6.x-1.x (-dev), will be included in 6.x-1.1 release.
Comment #16
escoles commentedFYI, important to fix this / apply the patch on your installations, as it appears that this can take down the Apache process on some server configurations and can be triggered when taking ordinary actions having absolutely nothing to do with the Node Import module. Viz the following error message from the server logfile:
[Mon Apr 18 10:31:10 2011] [error] [client 24.103.213.26] PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of call_user_func_array(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /var/www/vhosts/DOMAIN.com/httpdocs/sites/all/modules/node_import/node_import.inc on line 1971, referer: http://demo.DOMAIN.com/admin/build/blockThe error was triggered by editing & saving a block.
I can somewhat reliably make the server go offline on my client's NetSol VPS (PHP 5.1, which is standard for a NetSol VPS, and no you can't really upgrade them). It looks like maybe 1 block edit in 5 will crash Apache.