vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.8 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=235)
-   -   Administrative and Maintenance Tools - Suppress-o-Matic - Stop database error spam (https://vborg.vbsupport.ru/showthread.php?t=218620)

GeekyDesigns 07-14-2009 10:00 PM

Suppress-o-Matic - Stop database error spam
 
1 Attachment(s)
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.

Link14716 07-15-2009 06:57 AM

Q: How do I change the time interval between error e-mails?

Add the following to your /includes/config.php file:
PHP Code:

$config['dbems']['timebetweenerrors'] = 1800

Change 1800 to the time interval that you want, in seconds. By default, it is 1800 seconds (30 minutes).

Link14716 07-15-2009 07:00 AM

If something does not work as it should, slap me around until I fix it. This is a beta that I threw together. It Works For Me(tm) but that's as far as it has been tested.

Oblivion Knight 07-15-2009 07:14 AM

Installed (on demand). Thanks.. ;)

sensimilla 07-15-2009 07:29 AM

I might need it, my mailbox is just full all over. Waiting for the GOLD.

Hostboard 07-15-2009 02:22 PM

I just got 2000 DB error messages the other day...LOL...

saadessa 07-15-2009 03:31 PM

thank you i will try later

jaredwilli 07-16-2009 01:46 PM

*installs*
thanks

Gladius2007 07-20-2009 11:46 AM

Zachery, why on earth isn't this part of the stock vB? It's been suggested dozens of times and it should have been included years ago.

Zachery 07-20-2009 11:52 AM

I know it has, and in the past i knew that Scott was looking into it. Where it got lost in versions I'm not sure.

But, its here now, and hopefully in the future some sort of stock verison can be intergrated.

Gladius2007 07-20-2009 03:25 PM

I sure hope so.

gwerzal 07-20-2009 10:11 PM

should defo be part of the stock vb

Thank you

Zachery 07-22-2009 03:44 PM

Havent had any reported bugs yet, And Link14716 is curretly without interwebs.

Though we have plans to impliment the listed features and get this pushed out as a final shortly here.

cheesegrits 07-23-2009 05:29 PM

Thankyou thankyou thankyou. Thankyou.

Been having One Of Those Days (several in a row, actually), where I'm on the road and MySQL goes tits up ... thought my Crackberry was going to self destruct with the volume of vB error msgs.

Hoping this makes it into the core product ASAP.

-- hugh

Zachery 07-24-2009 11:27 AM

Quote:

Originally Posted by cheesegrits (Post 1854265)
Thankyou thankyou thankyou. Thankyou.

Been having One Of Those Days (several in a row, actually), where I'm on the road and MySQL goes tits up ... thought my Crackberry was going to self destruct with the volume of vB error msgs.

Hoping this makes it into the core product ASAP.

-- hugh

Let us know how well its working :)

Zachery 07-30-2009 03:22 PM

Since we've had no reported issues, I'm pulling the beta tag.

mahz 07-31-2009 05:47 AM

Wow, great. :)

MentaL 08-02-2009 04:36 PM

isnt this default in vb?

Zachery 08-02-2009 07:43 PM

Quote:

Originally Posted by MentaL (Post 1860192)
isnt this default in vb?

Nope, that is why we released it.

Right now, if there is a db error, your email will be sent 1 mail for every time someone visits the page with the db error message. (100 guests + 100 regulars) x 10-15 refreshes = lost of database error emails. This stops it dead cold, 10,000 page requests with the same database error, 1 mail is sent.

MentaL 08-02-2009 11:57 PM

vbulletin options
HelpError
Handling & Logging
--> Disable Database Error Email Sending

Link14716 08-03-2009 12:03 AM

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.

Zachery 08-03-2009 01:48 AM

Quote:

Originally Posted by MentaL (Post 1860422)
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.

GeekyDesigns 08-13-2009 01:14 PM

Updated the description text, should read much better.

matthewhotdude 08-13-2009 02:00 PM

Installed dunno if it works tho, anyway to test?

Trek 08-13-2009 10:34 PM

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.

Zachery 08-14-2009 09:14 PM

Quote:

Originally Posted by Trek (Post 1866803)
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 :)

Zachery 08-15-2009 05:08 AM

Quote:

Originally Posted by matthewhotdude (Post 1866481)
Installed dunno if it works tho, anyway to test?

messup the config by using a bad password

Sarthek 08-16-2009 11:50 AM

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.

janslu 09-10-2009 09:59 PM

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");

Link14716 09-11-2009 02:37 AM

Quote:

Originally Posted by janslu (Post 1882845)
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.

cbtrussell 10-06-2009 11:26 PM

Excellent, exactly what I was looking for to help get a handle on all of the error messages we get when the db is being backed up. Great work, thank you!

viper357 11-26-2009 08:04 AM

I know you say it works on 3.7+ but would I run any risk by trying to install it on a 3.6.12 board? Thanks.

Link14716 11-26-2009 06:49 PM

Quote:

Originally Posted by viper357 (Post 1921088)
I know you say it works on 3.7+ but would I run any risk by trying to install it on a 3.6.12 board? Thanks.

I haven't tested it on 3.6, but I can't think of a reason that it wouldn't work on it.

yahya komeet 12-14-2009 05:43 AM

thank you i will try it

bleros 02-24-2010 04:56 AM

thank you bro

CILGINKRAL_ 02-24-2010 09:13 AM

Thank You :)

wowglider 07-07-2010 08:02 AM

After i got 50k error emails because of broken mysql slave i now installed this... :)

mahz 07-07-2010 08:23 PM

Absolutely amazing modification. May be one of the most directly useful modifications on this website.

Having database errors spit out a single email instead of hundreds of emails is HUGE and I recommend this mod to everybody. Despite ridding your email inbox of server error spam, you don't want your server to build up a huge email queue during high load times. This will save anyone who installs it a lot of headache.

Mahz approved.

BirdOPrey5 07-07-2010 11:05 PM

I've been lucky enough to not ever need this, but now installed just in case- thanks.

ZomgStuff 09-08-2010 03:55 PM

Anyone try this on 4.0?


All times are GMT. The time now is 06:13 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01727 seconds
  • Memory Usage 1,820KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (5)bbcode_code_printable
  • (1)bbcode_php_printable
  • (7)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete