Awhile back, I mentioned a memory leak that gave me fits. After numerous bouts with the profiler, lots of hand wringing, and many outage notifications, I was totally at a loss. There was nothing obvious in the profiler output that pointed to the problem, and turning off various components of the system in attempt to isolate the problem didn’t help. One day our systems administrator updated the MySQL JDBC driver on the server and we decided to see whether that fixed the problem. As it turns out, that was the problem — the server hasn’t run out of memory for a couple of weeks, and it used to have to be started every 48 hours. Leaky abstractions strike again.