Mitch Pronschinske is a Senior Content Analyst at DZone. That means he writes and searches for the finest developer content in the land so that you don't have to. He often eats peanut butter and bananas, likes to make his own ringtones, enjoys card and board games, and is married to an underwear model. Mitch is a DZone Zone Leader and has posted 2574 posts at DZone. You can read more from them at their website. View Full User Profile

New Patent Around Race Condition Fixing

06.09.2010
| 9792 views |
  • submit to reddit
Today, Replay Solutions announced its success in obtaining a US patent around their software's ability to reproduce and fix race conditions.  Race conditions are a big problem for developers working on multi-threaded applications.  Voke Inc. analyst firm founder Theresa Lanowitz says that the software gaming industry and embedded systems vendors have addressed race conditions, but now enterprise developers have a growing need to address them as well.

Race conditions are a very common defect type in multi-threaded Java apps, and one of the toughest classes of software problems to reproduce and fix.  With the growth in demand for virtualization and cloud computing software, as well as the rise of multi-core processors, multi-threaded applications are critical to the future of computing.  In the worst cases, a race condition bug can wreak havoc on a system like it did in 2003, when this kind of bug caused the largest power outage in North America.

Replay Solution's newly-patented tech is based on more than six years of research and identifies and resolves race conditions.  Their tools also handle other types of multi-threaded issues including deadlocks, live-locks, and thread resource contention.

Replay Solutions likens their tool to a "DVR for enterprise Java applications."  Once it is set up, it constantly records all aspects of the environment.  It doesn't record simple screen captures, but instead it virtualizes the original environment in which the defect occurred.  This removes the need to recreate the database, dataset, or any other systems in play when the problem occurred.  The ReplayDIRECTOR software brings information from Staging/Production, QA, Support, Outsourcing, and Development back to the domain where the bug can be fixed.  



When you run the replay, your application is actually executing code.  No source code changes are required to have a replayable application.  The secret behind Replay Solution's software is some lightweight bytecode instrumentation on the class files that capture the sources of input.  ReplayDIRECTOR 3.0 was recently released with the ability to be cloud hosted.

Here are some other resources on parallel programming and race conditions:

·       “Platform Computing: Multithreaded and Networked Programming” by Thomas W. Christopher and George K. Thiruvathukal and available on the Sun/Oracle Developer Network:  “This chapter is dedicated to race conditions which undoubtedly account for most of the problems that occur in concurrent programming.”

·       Intel Guide for Developing Multithreaded Applications “Use Intel Parallel Inspector to Find Race Conditions in OpenMP*-based Multithreaded Code”  “Debugging threaded applications can be very complex, because debuggers change runtime performance, which can mask race conditions.”

·       “Are Determinacy-Race Bugs Lurking in YOUR Multicore Application?” by Charles Leiserso “Race conditions are the bane of concurrency. Famous race bugs include the Therac-25 radiation therapy machine, which killed three people and injured several others, and theNorth American Blackout of 2003, which left over 50 million people without power.”

Comments

cowwoc replied on Wed, 2010/06/09 - 1:49pm

There is plenty of prior art for this idea. Look up "debug backward" or "step backwards using a debugger" for some examples.

Mitch Pronschinske replied on Wed, 2010/06/09 - 3:17pm in response to: cowwoc

Right.  The patent is "around" Race Condition tracking and fixing.  Specifically the techniques used by Replay Solutions software, which are described in the patent.

Senthil Balakrishnan replied on Wed, 2010/06/09 - 8:04pm

Not sure the overhead it puts on the production systems to keep track of all the thread conditions. Sounds like a "replay" of the past or going back in time machine.

Sen

Carla Brian replied on Sun, 2012/07/01 - 9:22am

This is really a smart idea. I love it and good job on this and keep up the good work. - Mercy Ministries

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.