Solving OutOfMemoryError (part 1) – story of a developer

August 29, 2011 by Nikita Salnikov-Tarnovski

Another day in the office. Except that you get another call from the operations saying they now have to restart your production application every three hours. And they seem to be somewhat annoyed with this. You have a feeling that their emotion is in correlation to the number of phone calls customer support is getting lately – which has skyrocketed in the past few weeks.

I’m sure you have been there. And I am also sure you wish you would never have to be there again.

All you have is a symptom: an OutOfMemoryError. You have no clue what causes it. You cannot reproduce the problem. You cannot see the log files in production. But you have to solve it. Not that you have the task in your job contract – you are just a developer – the reasons are rather related to your engineering pride and being a responsible human being.

And here we go again. Sleepless nights or weeks. Struggling with authorization issues and bureaucracy. Getting ignorant people find the correct data for you. Great. Just great. Having the boss breathe down on your neck does not help much either. “When will it be fixed?” I bet you’d rather estimate when the P versus NP problem will be solved.

In this blog we are planning to write about everything related to the situations described above. The next posts will concentrate on how these situations are currently handled, what tools and techniques are popularly used and how you can benefit from them when in a similar situation. As we are a product development company, we might mention our own solutions somewhere along the way, but we promise it will be an interesting read nonetheless! The later blog posts in the series (thus far) include:

Can't figure out what causes your OutOfMemoryError? Read more



Wait… why isn’t it the developer’s reponsibility to fix their app? If not the dev then who?

UNIX Admin

lol.. every three hours? Bad application….lollll

Fernando Franzini

Looking forward to the next posts :)

Jeff O.

Can't figure out what causes your OutOfMemoryError? Read more

You cannot predict the way you die
When debugging a situation where systems are failing due to the lack of resources, you can no longer count on anything. Seemingly unrelated changes can trigger completely different messages and control flows within the JVM. Read more
Tuning GC - it does not have to be that hard
Solving GC pauses is a complex task. If you do not believe our words, check out the recent LinkedIn experience in garbage collection optimization. It is a complex and tedious task, so we are glad to report we have a whole lot simpler solution in mind Read more
Building a nirvana
We have invested a lot into our continuous integration / delivery infrastructure. As of now we can say that the Jenkins-orchestrated gang consisting of Ansible, Vagrant, Gradle, LiveRebel and TestNG is something an engineer can call a nirvana. Read more
Creative way to handle OutOfMemoryError
Wish to spend a day troubleshooting? Or make enemies among sysops? Registering pkill java to OutOfMemoryError events is one darn good way to achieve those goals. Read more