I recently started using Aegir on production sites. Aegir has some modules that comes with it, including Cache Expiration.
The bug wasn't happening on the first day that I deployed the site. On that day, I was able to edit content just fine. On day two, I wasn't able to edit or create any nodes. I kept getting a 500 internal server error.
I tested disabling drupal caching, editing views/menus/blocks/theme settings, module settings. All of that worked okay. The bug happened only when saving a node.
I enabled display errors in PHP and got this response:
Fatal error: Call to undefined function db_result() in /data/all/001/o_contrib_seven/expire/expire.module on line 493
Disabling the Cache expiration module made the error go away.
This server was setup using the Aegir barracuda script (Nginx + MariaDB) running Drupal 7.10 currently.
| Comment | File | Size | Author |
|---|---|---|---|
| #5 | db_result-142768-5.patch | 5.41 KB | Stefan Freudenberg |
Comments
Comment #1
geofftech commentedI confirm that I am experiencing the same issue on both Drupal 7.10 and 7.12.
If disabled, the node saves correctly.
The module - expires - is re-enabled daily via cron, causing the error to reappear.
Interestingly, I have two BOA servers - one a RackSpace and one on AWS. I am only experiencing this error on the AWS server. I have exactly the same distribution on both servers. I even moved a domain to the AWS to check and the problem started occuring when it was not on RS.
The AWS server is 32bit and the RS is 64bit. Both run the same OS - ubuntu.
Comment #2
geofftech commentedA further update to this... I have done some code tracing and there are quite a few functions being used that have been deprecated in Drupal 7.
- db_result
- db_rewrite_sql
- taxonomy_node_get_terms
So there is NO way they would work with Drupal 7 at all
And when I check the other (older) BOA install, these modules are not there at all.
I have therefore deleted the expire and purge (also not on other server) modules completely from the newer BOA server and everything seems to be working fine now (fingers crossed).
Comment #3
Circlefusion1 commentedI found where cron was enabling certain modules automatically.
### Note: the modules on/off switch will
### affect only sites without "dev" in the
### *main* domain name (the "dev" in the
### domain alias is not checked here)
/var/xdrago/usage.sh
_MODULES_ON="cache expire purge path_alias_cache robotstxt filefield_nginx_progress"
_MODULES_OFF="syslog dblog update l10n_update devel cookie_cache_bypass poormanscron supercron"
Comment #4
jaydub commentedThere is not a release d7 version of Expire yet so you ran into a not unexpected problem. See this issue for d7 discussion: #1151684: Drupal 7 version of Cache Expiration?
Comment #5
Stefan Freudenberg commentedHi. I had to do some emergency work to get this running for a client. The attached patch adapts all database code to the new database API and all taxonomy related code to the new taxonomy API. I have intensively tested the taxonomy code because that part was actually hard.
Comment #6
halcyonCorsair commentedClosing in favour of the older (and better named) http://drupal.org/node/1333894.