New Patent Around Race Condition Fixing
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.”