Mattress live at The Java Jive

May 19th, 2007 Tacoma,Wa.

Relatd Articles

MySQL oddities
Some of you who use our site 22 hours/day may have noticed we've been having some database problems for the last couple of weeks. We have two MySQL servers: a master and a replicated slave (well, we used to, anyway). The fault-tolerance aspect of the replication is nice to have, and allows us to get a performance advantage by shifting plenty of SELECT queries to the slave (Bugzilla supports this and benefits tremendously from it, as does our website and search engine).

For the past few weeks, after about 3 days of good service, the Master seems to just stop processing queries. The queries silently queue up until our connection limit is hit. The database server itself responds well; it just doesn't do anything. No logged info, no error message, nothing. So far, no operational parameter seems out-of-place, except one query in the SHOW PROCESSLIST that has a state of *** DEAD ***. We restart the MySQL server and we're good for another few days, except now our slave is out-of-sync.

We went looking in the MySQL docs for that *** DEAD *** state and came up empty handed. Matt downloaded our version's source and started poking around, and found the only instance of the string:

sql_show.cc
#if !defined(DONT_USE_THR_ALARM) && ! defined(SCO)
if (pthread_kill(tmp->real_id,0))
tmp->proc_info="*** DEAD ***"; // This shouldn't happen
#endif

So it looks as if what shouldn't happen happens, except we don't know why and how to fix it. Not being a C++ guru I don't dare look at more code that the above snippet.

A few folks have suggested simply restarting the MySQL server every day. "Lots of sites employ the practice of restarting services regularly", I hear. I dunno, but it sounds Windows-ish to me. Our setup has been working flawlessly for a year without requiring this type of action, so what happened that we'd need that now?

At any rate, the kind folks at Intel have offered to help. If you want to help us work on this issue, you can check out the thread on the mysql forums.
Wiki for everyone
When we opened up the Eclipse Project Wiki at http://wiki.eclipse.org/wiki/, we limited editing to Eclipse committers. As per bug 118245, we've hacked the authentication mechanism to allow Eclipse Bugzillaregistered users to edit the Wiki. It's not live yet; we're testing it out to see if it works.

One challenge we had was hacking the Bugzilla login name (essentially, your e-mail address) to map it to a SPAM-safe login name for Wiki.

If you have an Eclipse Bugzilla account, go ahead and log in to the sandbox wiki;make sure you can edit the pages, save your preferences, add pages to your watch list and all that Wiki stuff.

This change should allow the community as a whole to contribute to the Project Wiki, while not requiring you to remember Yet Another Username And Password.

Related Projects

casclient
A client-side implementation of the Central Authentication Service (CAS) protocol for use in Java web applications. Additionally, provides several servlet filters, permitting easy integration with nearly any Java web application.
jped
JPEd is a graphical editor for processes descriptions. It uses the XPDL 1.0 interchange format as specified by the WfMC.
incident-db
Automotive Quality Complaint Management to record Customer incidents with all data, including reporting and easy serching. It is designed to use for technically Customer complaints and is designed to use as less screens as possible.(Reklamationswesen)
palokettleplug
PaloKettlePlugin is a plugin for Kettle which will let you use Palo Molap Database on you ETLs designed with Kettle. The plugin first version has been developed by Stratebi, an open source Business Intelligence company and a Pentaho partner.
timecult
A simple yet powerful task management and time tracking application. Supports a hierarchy of projects and tasks, multiple taks timers, data export to a comma-separated file, detailed time log, dynamically computed summaries of used time per each project