Hello,
big problem, I can't access drupal anymore, I have this error as soon as I go to the root directory or if i try to reach the admin part :
Fatal error: Call to undefined function: node_list() in /home/sites/site56/web/toulon/includes/theme.inc on line 227

it was working fine : 4.5.2
i installed image-image assist-image urlfilter
poormanscron and htmlarea
was working fine, but last night after coming back from school I tried to access the site and got this message firsthand, it doesn't want to go. I've check integrity of node.module where node_list() is defined and the file is fine.

I looked on google for this error message but couldn't find anything helpful.

Cheers,
Alliax

Comments

alliax’s picture

I am still totally blocked, cannot enter my drupal installation nor can I see the website. All I get is : Fatal error: Call to undefined function: node_list() in /home/sites/site56/web/toulon/includes/theme.inc on line 227

PLEASE HELP ME quickly, I don't want to erase all installation I've done and start again because then I won't know what went wrong and if that happens again I'll be stuck again.

I have one precision : in the database it seems the last time CRON was updated seems to be from when it started showing the error.
When I try to manually execute cron.php, I get a blank page (normal) with no error message but the variable in the database : node_cron_last is still the same as before, doesn't change, perhaps this is natural behavior.
variable : cron_busy is set at : "b:0;"

I DON'T UNDERSTAND WHAT WENT WRONG, PLEASE HELP !

Cheers,
Alliax

alliax’s picture

Since nobody replied yet, I begin to fear that no one will know what is happening to my drupal installation.. (my pessimistic side)

I searched on google for the error message again and contacted one webmaster whose site was cached by google as showing the same error (but the actual site is fine now, so the webmaster would have done something about it)

He replied to me (thank you for doing so) and since I don't have a backup database, I'd have to redo the installation and tuning AND if that happens again I'll still be stuck. IT WON'T TELL ME WHAT WENT WRONG..
What are you doing when that happens, did it ever happened to you ?

Here's the answer from the webmaster (I put it for futur visitors of drupal.org to see what we know about this error message) :
"
Hello!

The only solution I could find was to revert to a backup copy of the database from before the time the problem occurred.

I could reproduce the problem by running a link checking program (LinkLint) on the site. Apparently the flood of hits from the program did something bad to the database somewhere -- I don't know just what or where, but then I know very little about the technical side of Drupal, MySql, etc.

The problem re-appeared several times over a period of a few months. I fiddled with the throttle, to reduce to a bare minimum what Drupal has to do when under heavy load, and since then it hasn't reappeared.

Jim Kalb
"

I have to point out that my site has no problem of heavy load since the URL is not known yet.

Please help if any idea, here's the website showing the error at the moment :
http://www.lycee-cisson.com/toulon/

I can send the mysql dump (export SQL) if anyone is interested in helping me out.

Cheers,
Alliax

alliax’s picture

In the "watchdog" table I've found this entry :
error user error: Lost connection to MySQL server during query
query: SELECT filename, type, status, throttle FROM system WHERE type = 'module' Ã la ligne 125 du fichier /home/sites/site56/web/toulon/includes/database.mysql.inc.

location : /toulon/admin/modules

epoch time :1106236282

just after that I have plenty of entries that correspond to my following attempts to access the site, they're all the same :

httpd 404 error: node not found.

So it seems after this mysql error something has been messed up. I've had a look at database.mysql.inc at line 125 but there is only this (125: trigger_error) :

  if (!mysql_errno()) {
    return $result;
  }
  else {
    trigger_error(mysql_error() ."\nquery: ". htmlspecialchars($query), E_USER_ERROR);
  }
}

What do you think I could tweak in the database in order to get back quickly on tracks and continue with the setup of the site ?

Do you think my shared hosting company is not suitable for drupal and I need to change server first for this lost mysql connection problem not to happen again ?

alliax’s picture

The system table has lots of 0, all needed modules are not active anymore.
How can a lost connection on a SELECT can do this kind of corruption in the database ? Can someone think of a reason ?

Here is sql export :

INSERT INTO `system` VALUES ('themes/bluemarine/xtemplate.xtmpl', 'bluemarine', 'theme', 'themes/engines/xtemplate/xtemplate.engine', 1, 0, 0);
INSERT INTO `system` VALUES ('themes/engines/xtemplate/xtemplate.engine', 'xtemplate', 'theme_engine', '', 1, 0, 0);
INSERT INTO `system` VALUES ('modules/admin.module', 'admin', 'module', 'Handles the administration pages.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/aggregator.module', 'aggregator', 'module', 'Used to aggregate syndicated content (RSS and RDF).', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/archive.module', 'archive', 'module', 'Displays a calendar to navigate old content.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/block.module', 'block', 'module', 'Controls the boxes that are displayed around the main content.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/blog.module', 'blog', 'module', 'Enables keeping an easily and regularly updated web page or a blog.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/blogapi.module', 'blogapi', 'module', 'Enable users to post using applications that support XML-RPC blog APIs.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/book.module', 'book', 'module', 'Allows users to collaboratively author a book.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/comment.module', 'comment', 'module', 'Enables user to comment on published content.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/drupal.module', 'drupal', 'module', 'Lets users log in using a Drupal ID and can notify a central server about your site.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/filter.module', 'filter', 'module', 'Framework for handling filtering of content.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/forum.module', 'forum', 'module', 'Enable threaded discussions about general topics.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/help.module', 'help', 'module', 'Manages displaying online help.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/legacy.module', 'legacy', 'module', 'Provides legacy handlers for upgrades from older Drupal installations.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/locale.module', 'locale', 'module', 'Enables the translation of the user interface to languages other than English.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/node.module', 'node', 'module', 'The core that allows content to be submitted to the site.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/page.module', 'page', 'module', 'Enables the creation of pages that can be added to the navigation system.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/ping.module', 'ping', 'module', 'Alerts other sites that your site has been updated.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/poll.module', 'poll', 'module', 'Enables your site to capture votes on different topics in the form of multiple choice questions.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/profile.module', 'profile', 'module', 'Support for configurable user profiles.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/queue.module', 'queue', 'module', 'Enables content to be moderated by the community.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/statistics.module', 'statistics', 'module', 'Logs access statistics for your site.', 0, 0, 1);
INSERT INTO `system` VALUES ('modules/story.module', 'story', 'module', 'Enables users to submit stories, articles or similar content.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/taxonomy.module', 'taxonomy', 'module', 'Enables the organization of content into categories.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/throttle.module', 'throttle', 'module', 'Allows configuration of congestion control auto-throttle mechanism.', 0, 0, 1);
INSERT INTO `system` VALUES ('modules/tracker.module', 'tracker', 'module', 'Enables tracking of recent posts for users.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/upload.module', 'upload', 'module', 'File-handling and attaching files to nodes.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/watchdog.module', 'watchdog', 'module', 'Logs and records system events.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/menu.module', 'menu', 'module', 'Allows administrators to customize the site navigation menu.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/path.module', 'path', 'module', 'Enables users to rename URLs.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/search.module', 'search', 'module', 'Enables site-wide keyword searching.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/system.module', 'system', 'module', 'Configuration system that lets administrators modify the workings of the site.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/user.module', 'user', 'module', 'Enables the user registration and login system.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/htmlarea/htmlarea.module', 'htmlarea', 'module', 'Allows Drupal to use the htmlarea to replace textarea fields', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/poormanscron.module', 'poormanscron', 'module', 'Runs Drupal cron jobs without the cron application.', 0, 0, 1);
INSERT INTO `system` VALUES ('modules/urlfilter.module', 'urlfilter', 'module', 'Automatically turns web and e-mail addresses into clickable links.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/image/image.module', 'image', 'module', 'Allow users to upload images and to display them in shared and personal image galleries.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/image_filter.module', 'image_filter', 'module', 'Allow users to reference images from other nodes.', 0, 0, 0);
INSERT INTO `system` VALUES ('modules/img_assist/img_assist.module', 'img_assist', 'module', 'Enables users to link images into nodes.', 0, 0, 0);

My system was in french, and I believe (from another drupal installation) that localisation translates those fields in the default language, but on my sql export I have all fields in english... I find it strange..

I'm beginning to feel a bit lonely in here as I talk to myself messages after messages.. ;-)
Please help, it's weekend ! I wish I will have cracked it by monday..

alliax’s picture

I've modified in the database with phpmyadmin the table "system" and put back to "1" some of the entries necessary to drupal (took example from a defaut installation like in the original mysql import file)
And the site is back again and I'm switching back on the other modules and will see what other harm has been done if any.

The "system" table has been translated in french after I went to the drupal admin to enable more modules.

Still I don't know what happened, and when it'll happen again.. Next time I'll try to spot what I did wrong to have this mysql error displayed in the "watchdog" table.

Seasnark’s picture

Hi there.

Unfortunately this response is way too late to help you, but will hopefully help somebody else.

I hit the same problem. I an activated a number of modules and then suddenly had a mess of database errors, but had no clue which module was creating them. To overcome this, I disabled all non-required modules and wouldn't you know it, the same problem.

Through a bit of a process, I was able to figure out what the problem was. The node module is not required, however if you deactivate it, then you get the mentioned error. I reactivated that module and everything was back to normal (no damage done....).

ciric@drupal.org’s picture

I had the same problem

So, OK, to remove error on line 227 I'll need to reactivate the node module.

However, I imagine that it is necessary to access directly the DB tables, because (almost in my case) the admin/module page is not accessible due to the error, is it?

Do you know which table/field should I modify to reactivate the node module?

Thanks in advance...

Seasnark’s picture

Sorry,

I didn't check back and see your question here. The table was system and the field I changed was status (from 0 to 1 to activate). I used the name column to pick out the row I wanted (i.e. WHERE name = 'node').

degerrit’s picture

Also "for the record" - my site was throttling 'node' for some reason and disabling the node module as a result causing all sorts of problems resulting from node functions not being available. Difficult to debug too, because I couldn't reach the admin interface either for disabling module or for checking the logs.

This worked for me (in mysql):
update system set throttle=0 where name='node';

I wonder why the node module is allowed to be throttled?

Update: it appears node is not throttled by default (./database/database.mysql), so I must have enabled it. Anyway, seems to me 'node' should never be throttled.