Go Back   vb.org Archive > vBulletin Modifications > vBulletin 3.8 Modifications > vBulletin 3.8 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Suppress-o-Matic - Stop database error spam Details »»
Suppress-o-Matic - Stop database error spam
Version: 1.00, by GeekyDesigns GeekyDesigns is offline
Developer Last Online: Nov 2023 Show Printable Version Email this Page

Category: Administrative and Maintenance Tools - Version: 3.8.x Rating:
Released: 07-14-2009 Last Update: 11-16-2009 Installs: 96
Code Changes Additional Files  
No support by the author.

What is Suppress-o-matic?
Suppress-o-matic is a change to the way vBulletin handles database error emails. It limits sending the same error email repeatedly to your inbox every time a database error is generated. On a busy site if a table is crashed or mysql itself goes down you could recieve several thousand emails. This causes the email server to bog down, and possibly the server itself if there is enough traffic generating emails.

Why do I want Suppress-o-matic?
It should be pretty clear, you still get the vital information that your vBulletin forum is offline for whichever reason, without the hassle of having to delete and manage your inbox afterwords.

Why do I have to edit the files?
If the database is down, there is no way to get to the plugins. Plugins are stored in the vBulletin database.

Isn't there a vBulletin Option for this?
There is an option to disable some emails, assuming that the settings table can be read. If it cannot then it doesn't work. It even states this on the option itself.

Can't I just remove my tech email from the config file?
This doesn't keep you up to date. What if a serious error like error 28 (no space left) crops up? This means that your server could potentially have serious issues. Not resolving these problems could cause major issues.

Are you considering adding more functionality to Suppress-o-matic?
We have plans to add a repair feature at some point in time, with an on/off switch.

What is SQlite?
SQLite is a tiny database engine that is found in PHP. It is very lite, and requires only that php have the extension. There is no other dedicated server for it. You can find more information here: http://en.wikipedia.org/wiki/SQLite


Whats required?
PHP5
SQLITE2 or newer (found in most php installations)
1 file edit
1 file to upload

Future versions:
Repair table feature



Project Credits:
Zachery - Project Planning, design goals, pestering.
Link14716 - Hard work.

This works for vBulletin 4.0 as well as 3.7+. vB4 thread located here.

Download Now

File Type: zip DB Error Suppress-o-matic.zip (1.7 KB, 426 views)

Supporters / CoAuthors

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #22  
Old 08-03-2009, 12:03 AM
Link14716's Avatar
Link14716 Link14716 is offline
 
Join Date: Jun 2002
Location: Georgia, USA
Posts: 2,519
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This doesn't disable e-mail sending, this stops it from destroying your inbox. Pretty big difference.

Stopping DB error mails entirely is as simple as removing the technical address from config.php. No need for anything special for that, but this isn't what the mod does.
Reply With Quote
  #23  
Old 08-03-2009, 01:48 AM
Zachery's Avatar
Zachery Zachery is offline
 
Join Date: Jul 2002
Location: Ontario, Canada
Posts: 11,440
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by MentaL View Post
vbulletin options
HelpError
Handling & Logging
--> Disable Database Error Email Sending
Also doesn't stop connection, and crashed table emails if the system cannot connect or read the database.

There is a pretty big note about this.
Reply With Quote
  #24  
Old 08-13-2009, 01:14 PM
GeekyDesigns's Avatar
GeekyDesigns GeekyDesigns is offline
 
Join Date: Mar 2004
Posts: 73
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Updated the description text, should read much better.
Reply With Quote
  #25  
Old 08-13-2009, 02:00 PM
matthewhotdude matthewhotdude is offline
 
Join Date: Jul 2009
Posts: 560
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Installed dunno if it works tho, anyway to test?
Reply With Quote
  #26  
Old 08-13-2009, 10:34 PM
Trek Trek is offline
 
Join Date: Sep 2003
Posts: 664
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This is good, but I think it could be taken a little further. For instance, if you get an error, you get an email. But you don't get duplicates for X time after wards.

That works, but how do I know I have a REAL problem or not then? Meaning it could of just been a quick outage where a query failed for whatever reason. Or, it might be something really serious where things are completely down.

I guess what I'm saying is, maybe some way to email saying "We just received 350 error reports for this same error, you should check it out ASAP" type of message.

I dunno, maybe I'm not explaining it well but... hopefully it's enough to spark what I mean and maybe a better idea than only suppression.
Reply With Quote
  #27  
Old 08-14-2009, 09:14 PM
Zachery's Avatar
Zachery Zachery is offline
 
Join Date: Jul 2002
Location: Ontario, Canada
Posts: 11,440
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Trek View Post
This is good, but I think it could be taken a little further. For instance, if you get an error, you get an email. But you don't get duplicates for X time after wards.

That works, but how do I know I have a REAL problem or not then? Meaning it could of just been a quick outage where a query failed for whatever reason. Or, it might be something really serious where things are completely down.

I guess what I'm saying is, maybe some way to email saying "We just received 350 error reports for this same error, you should check it out ASAP" type of message.

I dunno, maybe I'm not explaining it well but... hopefully it's enough to spark what I mean and maybe a better idea than only suppression.
Its a pretty good idea, we'll take it into consideration for sure
Reply With Quote
  #28  
Old 08-15-2009, 05:08 AM
Zachery's Avatar
Zachery Zachery is offline
 
Join Date: Jul 2002
Location: Ontario, Canada
Posts: 11,440
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by matthewhotdude View Post
Installed dunno if it works tho, anyway to test?
messup the config by using a bad password
Reply With Quote
  #29  
Old 08-16-2009, 11:50 AM
Sarthek Sarthek is offline
 
Join Date: May 2006
Posts: 93
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Finally, some very useful mod. I tagged it for now, will give it a try in coming weeks.

Our "record" so far: over 18.000 emails in less than day.
Reply With Quote
  #30  
Old 09-10-2009, 09:59 PM
janslu janslu is offline
 
Join Date: May 2006
Posts: 26
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have it installed but I got php errors when my database had too many connections. The error logged was:
Code:
[10-Sep-2009 23:35:50] PHP Warning:  SQLiteDatabase::unbufferedQuery() [<a href='sqlitedatabase.unbufferedquery'>sqlitedatabase.unbufferedquery</a>]: near &quot;ORDER&quot;: syntax error in forum/includes/class_core.php on line 1015
[10-Sep-2009 23:35:50] PHP Fatal error:  Call to a member function fetch() on a non-object in forum/includes/class_core.php on line 1017
Any idea what might be the problem?

Line 1015 of modified class_core.php is:
Code:
	        $sqlitequery = $sqlitedb->unbufferedQuery("SELECT * FROM dberrors WHERE time > ".(TIMENOW - $timebetweenerrors)." AND errorcode = ".$this->errno." ORDER BY time DESC");
Reply With Quote
  #31  
Old 09-11-2009, 02:37 AM
Link14716's Avatar
Link14716 Link14716 is offline
 
Join Date: Jun 2002
Location: Georgia, USA
Posts: 2,519
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by janslu View Post
I have it installed but I got php errors when my database had too many connections. The error logged was:
Code:
[10-Sep-2009 23:35:50] PHP Warning:  SQLiteDatabase::unbufferedQuery() [<a href='sqlitedatabase.unbufferedquery'>sqlitedatabase.unbufferedquery</a>]: near &quot;ORDER&quot;: syntax error in forum/includes/class_core.php on line 1015
[10-Sep-2009 23:35:50] PHP Fatal error:  Call to a member function fetch() on a non-object in forum/includes/class_core.php on line 1017
Any idea what might be the problem?

Line 1015 of modified class_core.php is:
Code:
	        $sqlitequery = $sqlitedb->unbufferedQuery("SELECT * FROM dberrors WHERE time > ".(TIMENOW - $timebetweenerrors)." AND errorcode = ".$this->errno." ORDER BY time DESC");
Try to change that line to
Code:
	        $sqlitequery = $sqlitedb->unbufferedQuery("SELECT * FROM dberrors WHERE time > ".(TIMENOW - $timebetweenerrors)." AND errorcode = '".$this->errno."' ORDER BY time DESC");
I wish it gave more details about the syntax error so I could see exactly what its problem is.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 02:17 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05980 seconds
  • Memory Usage 2,337KB
  • Queries Executed 27 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (5)bbcode_code
  • (4)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (1)postbit_attachment
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete