Event-Based Techniques to Debug an Object Request Broker

  • Authors:
  • Pablo Galdámez;Declan Murphy;José M. Bernabéu-Aubánjosep;Francesc D. Muñoz-Escoi

  • Affiliations:
  • Departamento de Sistemas Informáticos y Computación, Universidad Politécnica de Valencia, Camino de Vera s/n, 46071 Valencia, Spain;Sun Microsystems, Inc.;Departamento de Sistemas Informáticos y Computación, Universidad Politécnica de Valencia, Camino de Vera s/n, 46071 Valencia, Spain;Departamento de Sistemas Informáticos y Computación, Universidad Politécnica de Valencia, Camino de Vera s/n, 46071 Valencia, Spain

  • Venue:
  • The Journal of Supercomputing
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

This work presents a debugging system built for the Object Request Broker (ORB) used in the construction of Solaris MC, a multicomputer OS. Even though it has been built and tested on a particular ORB, we believe similar ideas could be employed on other ORBs with similar structure and goals. The goal of this system is to provide a means to stress the ORB behavior in a controlled manner while logging the events occurred during its execution. The tool, called the Fault Injection and Event Logging Tool (FIELT) helps system programmers to find possible inconsistencies in the code by means of a post-mortem analysis of the collected trace data. The approach taken to design the event logging follows the event-driven techniques to monitorize distributed systems. Failures in the ORB are injected by software instrumentation and these injected failures are considered as special events. This allows us to reason about the correctness of the ORB in a broad sense, where its expected behavior includes to gracefully cope with failures. The number of potentially relevant events produced during the ORB execution is unmanageably high. There is, thus, a need to find a minimum subset of those events which, without losing relevant system behavior, allows us to infer its correctness (or lack of). We address this problem using a new model for ORB computations, assigning each event produced by the ORB to one of the high level objects it manages.