Download & Extend

Fatal error w/ file_directory_path when db connection fails

Project:Drupal core
Version:6.x-dev
Component:base system
Category:bug report
Priority:critical
Assigned:Unassigned
Status:closed (fixed)

Issue Summary

If you edit your settings.php file to put in invalid information (like what would happen if you moved your install to a different host, or if the database was temporarily unavailable), where you would normally get a nice maintenance page that says "Unable to connect blah blah" you instead get:

Fatal error: Call to undefined function file_directory_path() in /Applications/MAMP/htdocs/head/includes/common.inc on line 1769

Comments

#1

Btw, looks like this was introduced in the JS aggregation patch.

#2

Status:active» needs review

Well, here is a simple fix.
Just added the inclusion of includes/file.inc in the drupal_maintenance_theme() function.

A maybe better fix would be to change the drupal_get_js() function to take an argument to disable the JS preprocessing when the database is not available.

AttachmentSizeStatusTest resultOperations
151394.patch773 bytesIgnored: Check issue status.NoneNone

#3

Here is a different approach. It adds some more checks to the drupal_get_js() function.

AttachmentSizeStatusTest resultOperations
151394-2.patch1.03 KBIgnored: Check issue status.NoneNone

#4

Verified that both patches fix the problem. Just depends on which one is more elegant probably as I think they'll both perform the same. I'm slightly more a fan of #3.

This is a re-roll of patch #2 with trailing spaces removed.

AttachmentSizeStatusTest resultOperations
file_directory_path_1.patch710 bytesIgnored: Check issue status.NoneNone

#5

Status:needs review» reviewed & tested by the community

Here is a re-roll of #3 which I slightly prefer. This abides by coding standards and includes a comment to boot. Gabor, both these patches work, guess it's just up to you which you prefer.

AttachmentSizeStatusTest resultOperations
file_directory_path_2.patch1.1 KBIgnored: Check issue status.NoneNone

#6

Status:reviewed & tested by the community» fixed

OK, committed #4, as I think we are better off with including what we need then having special cases for all functions we might not have. The maintenance theme could be any complex. Thanks.

#7

Status:fixed» closed (fixed)