An error occurred. http://localhost:8082/acquia-drupal/update.php?id=316&op=do <br /> <b>Fatal error</b>: Call to undefined function nodequeue_add_action() in <b>C:\Users\David\Sites\acquia-drupal-site\acquia-drupal\sites\all\modules\rules\rules\modules\rules.rules.inc</b> on line <b>352</b><br />

I am upgrading my testinstalls one by one and so far everything went well apart from the last one. These installs of mine are pretty messy and convoluted but I guess that makes for a good testing situation. ;)

So what went wrong? Can somebody translate this to me and has perhaps an idea what to do? What should I investigate in case this is something potentially affecting more users?

After progressing to the next page (after the upgrade abortion message) I got those:

* warning: mysqli_real_escape_string() expects parameter 2 to be string, array given in C:\Users\David\Sites\acquia-drupal-site\acquia-drupal\includes\database.mysqli.inc on line 323.
* user warning: Unknown column 'nfi.type' in 'where clause' query: SELECT * FROM content_node_field_instance nfi JOIN content_node_field nf ON nfi.field_name = nf.field_name WHERE nfi.type_name = 'node_gallery_image' AND nfi.label = 'Gallery Image' AND nfi.field_name = 'field_node_gallery_image' AND nfi.type = 'filefield' AND nfi.widget_type = 'imagefield_widget' AND nfi.change = 'Change basic information' AND nfi.weight = '-3' AND nfi.file_extensions = 'png gif jpg jpeg' AND nfi.progress_indicator = 'bar' AND nfi.file_path = '' AND nfi.max_filesize_per_file = '3M' AND nfi.max_filesize_per_node = '3M' AND nfi.max_resolution = '0' AND nfi.min_resolution = '0' AND nfi.custom_alt = '0' AND nfi.alt = '' AND nfi.custom_title = '0' AND nfi.title_type = 'textfield' AND nfi.title = '' AND nfi.use_default_image = '0' AND nfi.default_image_upload = '' AND nfi.default_image = '' AND nfi.description = '' AND nfi.required = '1' AND nfi.multiple = '0' AND nfi.list_field = '0' AND nfi.list_default = '1' AND nfi.description_field = '0' AND nfi.op = 'Save field settings' AND nfi.module = 'filefield' AND nfi.widget_module = 'imagefield' AND nfi.columns = '' AND nfi.display_settings = '' AND nf.active = 1 AND nfi.widget_active = 1 ORDER BY nfi.weight ASC, nfi.label ASC in C:\Users\David\Sites\acquia-drupal-site\acquia-drupal\sites\all\modules\cck\includes\content.crud.inc on line 493.

Please note that the first warning might not be caused by NG at all and that I got something like (or exactly as?) the user warning on my last upgrade that went well too.

Comments

scroogie’s picture

The error is in CCK. The version of CCK does not fit the database schema that is installed.

justintime’s picture

Status: Active » Closed (won't fix)

The first error looks to me like you have a rule that is trying to do something with nodequeue, and nodequeue isn't installed.

The second one I have seen before on a test install of mine. I never tracked it down, because it didn't actually break anything, but my hunch is that it's a bug in an older release of CCK (I've never used dev cck). Upgrading my modules to recommended versions on my test install made the issue go away.

Marking as won't fix, since it's not part of NG. If anyone finds evidence to indicate it is something in NG, then please reopen the issue.

dddave’s picture

This is fine with me. Just wanted to report in case it roots in a problem with NG3.

justintime’s picture

Good to know you're still lurking around, btw! Interested in your thoughts on what you think about 3 vs 2.

dddave’s picture

Status: Closed (won't fix) » Active

Sorry for reactivating this (for immediate closure I guess). I found the time to inspect this install of mine and the problem was that I had a rule in place that pushed content into a specific queue upon updating the content piece. The upgrade process seems to trigger this rule and cause the abortion.

Should this be documented or is there a special way to handle the existence of rules during upgrade?

My upgrade went fine when I deactivated the rule. So this issue might be documentation enough (for this rather special case)...

justintime’s picture

So, is nodequeue active -- does the rule work properly when you update content outside of the upgrade?

dddave’s picture

Yes, the rule was and is now working as it should.

re#4
I am pretty busy at the moment but I tried to have an eye on new NG2 issues in the queue. I am glad that NG3 is in alpha now and I am switching all my test installs and as soon as possible a live site. After that I guess I can be more helpful in the queue again. I am nevertheless planning on translating NG3 unless somebody beats me too it.
I am still playing around with NG3 but so far I am pretty blown away. I only glanced at the views stuff and nearly wet my bed. I am really looking forward to dive into all the great stuff (plupload!). Amazing work. Thank you. If you ever visit Cologne I am going to buy a couple of Kölsch.

justintime’s picture

Anytime I can make someone wet the bed and then offer to buy me a beer, I've had a good day :)

Regarding the original issue - here's *why* it's happening.

When we run the upgrade from 2.x to 3.0, we do a lot of work to get the old images set up as imagefields and then attach them to the nodes. The last thing we do is to call node_save() on each image node. This call to node_save() is triggering the rules module, and your rule is firing. However, when update.php is being run, it's not a typical Drupal environment - it doesn't load up all the files it normally does. One of the files that it's not loading, is the file that contains the function nodequeue_add_action().

What we could do, is disable the rules module before the update, and re-enable it afterwards, but this "fix" might be worse than the bug itself. Let me ask around a bit.

justintime’s picture

Status: Active » Closed (won't fix)

Found the problem, it's a bug in nodequeue: http://drupal.org/node/985750