Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Pallavi Joshi is active.

Publication


Featured researches published by Pallavi Joshi.


programming language design and implementation | 2009

A randomized dynamic program analysis technique for detecting real deadlocks

Pallavi Joshi; Chang-Seo Park; Koushik Sen; Mayur Naik

We present a novel dynamic analysis technique that finds real deadlocks in multi-threaded programs. Our technique runs in two stages. In the first stage, we use an imprecise dynamic analysis technique to find potential deadlocks in a multi-threaded program by observing an execution of the program. In the second stage, we control a random thread scheduler to create the potential deadlocks with high probability. Unlike other dynamic analysis techniques, our approach has the advantage that it does not give any false warnings. We have implemented the technique in a prototype tool for Java, and have experimented on a number of large multi-threaded Java programs. We report a number of previously known and unknown real deadlocks that were found in these benchmarks.


computer aided verification | 2009

CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs

Pallavi Joshi; Mayur Naik; Chang-Seo Park; Koushik Sen

Active testing has recently been introduced to effectively test concurrent programs. Active testing works in two phases. It first uses predictive off-the-shelf static or dynamic program analyses to identify potential concurrency bugs, such as data races, deadlocks, and atomicity violations. In the second phase, active testing uses the reports from these predictive analyses to explicitly control the underlying scheduler of the concurrent program to accurately and quickly discover real concurrency bugs, if any, with very high probability and little overhead. In this paper, we present an extensible framework for active testing of Java programs. The framework currently implements three active testers based on data races, atomic blocks, and deadlocks.


foundations of software engineering | 2010

An effective dynamic analysis for detecting generalized deadlocks

Pallavi Joshi; Mayur Naik; Koushik Sen

We present an effective dynamic analysis for finding a broad class of deadlocks, including the well-studied lock-only deadlocks as well as the less-studied, but no less widespread or insidious, deadlocks involving condition variables. Our analysis consists of two stages. In the first stage, our analysis observes a multi-threaded program execution and generates a simple multi-threaded program, called a trace program, that only records operations observed during the execution that are deemed relevant to finding deadlocks. Such operations include lock acquire and release, wait and notify, thread start and join, and change of values of user-identified synchronization predicates associated with condition variables. In the second stage, our analysis uses an off-the-shelf model checker to explore all possible thread interleavings of the trace program and check if any of them deadlocks. A key advantage of our technique is that it discards most of the program logic which usually causes state-space explosion in model checking, and retains only the relevant synchronization logic in the trace program, which is sufficient for finding deadlocks. We have implemented our analysis for Java, and have applied it to twelve real-world multi-threaded Java programs. Our analysis is effective in practice, finding thirteen previously known as well as four new deadlocks.


automated software engineering | 2008

Predictive Typestate Checking of Multithreaded Java Programs

Pallavi Joshi; Koushik Sen

Writing correct multithreaded programs is difficult. Existing tools for finding bugs in multithreaded programs primarily focus on finding generic concurrency problems such as data races, atomicity violations, and deadlocks. However, these generic bugs may sometimes be benign and may not help to catch other functional errors in multithreaded programs. In this paper, we focus on a high-level programming error, called typestate error, which happens when a program does not follow the correct usage protocol of an object. We present a novel technique that finds typestate errors in multithreaded programs by looking at a successful execution. An appealing aspect of our technique is that it not only finds typestate errors that occur during a program execution, but also many other typestate errors that could have occurred in a different execution. We have implemented this technique in a prototype tool for Java and have experimented it with a number of real-world Java programs.


foundations of software engineering | 2007

Predictive testing: amplifying the effectiveness of software testing

Pallavi Joshi; Koushik Sen; Mark Shlimovich

Testing with manually generated test cases often results in poor coverage and fails to discover many corner case bugs and security vulnerabilities. Automated test generation techniques based on static or symbolic analysis usually do not scale beyond small program units. We propose predictive testing, a new method for amplifying the effectiveness of existing test cases using symbolic analysis. We assume that a software system has an associated test suite consisting of a set of test inputs and a set of program invariants, in the form of a set of assert statements that the software must always satisfy. Predictive testing uses a combination of concrete and symbolic execution, similar to concolic execution, on the provided test inputs to discover if any of the assertions encountered along a test execution path could be violated for some closely related inputs. We extend predictive testing to catch bugs related to memory-safety violations, integer overflows, and string-related vulnerabilities. Furthermore, we propose a novel technique that leverages the results of unit testing to hoist assertions located deep inside the body of a unit function to the beginning of the unit function. This enables predictive testing to encounter assertions more often in test executions and thereby significantly amplifies the effectiveness of testing.


bioRxiv | 2018

Developmental Regulation of an Organelle Tether Coordinates Mitochondrial Remodeling in Meiosis

Eric Sawyer; Pallavi Joshi; Luke E Berchowitz; Elçin Ünal

Cellular differentiation involves remodeling cellular architecture to transform one cell type to another. By investigating mitochondrial dynamics during meiotic differentiation in budding yeast, we sought to understand how organelle morphogenesis is developmentally controlled in a system where regulators of differentiation as well as organelle architecture are known, but the interface between them remains unexplored. We found that mitochondria abruptly detach from the cell cortex shortly before segregating into gametes. Mitochondrial detachment is enabled by the programmed destruction of the mitochondria-endoplasmic reticulum-cortex anchor (MECA), an organelle tether that forms contact sites between mitochondria and the plasma membrane. MECA regulation is governed by a meiotic transcription factor, Ndt80, which promotes the activation of a conserved kinase, Ime2. We found that MECA undergoes Ime2-dependent phosphorylation. Furthermore, Ime2 promotes MECA degradation in a temporally controlled manner. Our study defines a key mechanism that coordinates mitochondrial morphogenesis with the landmark events of meiosis and demonstrates that cells can developmentally regulate tethering to induce organelle remodeling.


networked systems design and implementation | 2011

FATE and DESTINI: a framework for cloud recovery testing

Haryadi S. Gunawi; Thanh Do; Pallavi Joshi; Peter Alvaro; Joseph M. Hellerstein; Andrea C. Arpaci-Dusseau; Remzi H. Arpaci-Dusseau; Koushik Sen; Dhruba Borthakur


conference on object-oriented programming systems, languages, and applications | 2011

PREFAIL: a programmable tool for multiple-failure injection

Pallavi Joshi; Haryadi S. Gunawi; Koushik Sen


operating systems design and implementation | 2014

SAMC: semantic-aware model checking for fast discovery of deep bugs in cloud systems

Tanakorn Leesatapornwongsa; Mingzhe Hao; Pallavi Joshi; Jeffrey F. Lukman; Haryadi S. Gunawi


hot topics in system dependability | 2010

Towards automatically checking thousands of failures with micro-specifications

Haryadi S. Gunawi; Thanh Do; Pallavi Joshi; Joseph M. Hellerstein; Andrea C. Arpaci-Dusseau; Remzi H. Arpaci-Dusseau; Koushik Sen

Collaboration


Dive into the Pallavi Joshi's collaboration.

Top Co-Authors

Avatar

Koushik Sen

University of California

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Mayur Naik

Georgia Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Andrea C. Arpaci-Dusseau

University of Wisconsin-Madison

View shared research outputs
Top Co-Authors

Avatar

Chang-Seo Park

University of California

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Remzi H. Arpaci-Dusseau

University of Wisconsin-Madison

View shared research outputs
Top Co-Authors

Avatar

Thanh Do

University of Wisconsin-Madison

View shared research outputs
Top Co-Authors

Avatar

Elçin Ünal

University of California

View shared research outputs
Researchain Logo
Decentralizing Knowledge