HOME

TheInfoList



OR:

Jinx was a concurrency
debugger A debugger or debugging tool is a computer program used to test and debug other programs (the "target" program). The main use of a debugger is to run the target program under controlled conditions that permit the programmer to track its executi ...
that deterministically controlled the interleaving of workloads across processor cores, focusing on shared memory interactions. Using this deterministic approach, Jinx aimed to increase the frequency of occurrence of elusive shared memory bugs, sometimes called Heisenbugs. Jinx is no longer available. Corensic, the company that was developing Jinx, was bought by
F5 Networks F5, Inc. is an American technology company specializing in application security, multi-cloud management, online fraud prevention, application delivery networking (ADN), application availability & performance, network security, and access & auth ...
and the Jinx project was cancelled. Jinx worked by dynamically building a set of potential interleavings (i.e. alternate eventualities, or execution scenarios, that will occur under some future condition) that are most likely to result in concurrency faults, and quickly tested those execution paths to surface concurrency problems such as
deadlock In concurrent computing, deadlock is any situation in which no member of some group of entities can proceed because each waits for another member, including itself, to take action, such as sending a message or, more commonly, releasing a loc ...
s,
race condition A race condition or race hazard is the condition of an electronics, software, or other system where the system's substantive behavior is Sequential logic, dependent on the sequence or timing of other uncontrollable events. It becomes a software ...
s and atomicity violations that are found in
multiprocessing Multiprocessing is the use of two or more central processing units (CPUs) within a single computer system. The term also refers to the ability of a system to support more than one processor or the ability to allocate tasks between them. There ar ...
applications. Unlike model checkers, Jinx did not require the specification of a model. Unlike
dynamic Dynamics (from Greek δυναμικός ''dynamikos'' "powerful", from δύναμις ''dynamis'' "power") or dynamic may refer to: Physics and engineering * Dynamics (mechanics) ** Aerodynamics, the study of the motion of air ** Analytical dyn ...
and
static Static may refer to: Places *Static Nunatak, a nunatak in Antarctica United States * Static, Kentucky and Tennessee *Static Peak, a mountain in Wyoming **Static Peak Divide, a mountain pass near the peak Science and technology Physics *Static el ...
code analysis methods, Jinx was notable in that it produced no false positives (spurious bug reports). This was because Jinx tested the scenarios that are likely to be bugs, as opposed to just inferring those scenarios by analyzing source code or observing the execution of a program. Jinx was implemented as a
hypervisor A hypervisor (also known as a virtual machine monitor, VMM, or virtualizer) is a type of computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called ...
, giving it the ability to observe the effects of all elements of the software environment on thread interleaving. Jinx operated independently of any programming language or threading libraries or tools. Jinx was developed by a (now defunct) company named Corensic in Seattle, Washington based on research performed at the
University of Washington The University of Washington (UW, simply Washington, or informally U-Dub) is a public research university in Seattle, Washington. Founded in 1861, Washington is one of the oldest universities on the West Coast; it was established in Seatt ...
and initially presented at the ASPLOS conference of 2009.


References

{{reflist Debuggers