Saved in:
Bibliographic Details
Main Authors: Soueidi, Chukri, Falcone, Ylies
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2402.18391
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866914694638338048
author Soueidi, Chukri
Falcone, Ylies
author_facet Soueidi, Chukri
Falcone, Ylies
contents Monitoring concurrent programs typically rely on collecting traces to abstract program executions. However, existing approaches targeting general behavioral properties are either not tailored for online monitoring, are no longer maintained, or implement naive instrumentation that often leads to unsound verdicts. We first define the notion of when a trace is representative of a concurrent execution. We then present a non-blocking vector clock algorithm to collect sound concurrent traces on the fly reflecting the partial order between events. Moreover, concurrent events in the representative trace pose a soundness problem for monitors synthesized from total order formalisms. For this, we extract a causal dependence relation from the monitor to check if the trace has the needed orderings and define the conditions to decide at runtime when a collected trace is monitorable. We implement our contributions in a tool, FACTS, which instruments programs compiling to Java bytecode, constructs sound representative traces, and warns the monitor about non-monitorable traces. We evaluate our work and compare it with existing approaches.
format Preprint
id arxiv_https___arxiv_org_abs_2402_18391
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Sound Concurrent Traces for Online Monitoring Technical Report
Soueidi, Chukri
Falcone, Ylies
Software Engineering
Monitoring concurrent programs typically rely on collecting traces to abstract program executions. However, existing approaches targeting general behavioral properties are either not tailored for online monitoring, are no longer maintained, or implement naive instrumentation that often leads to unsound verdicts. We first define the notion of when a trace is representative of a concurrent execution. We then present a non-blocking vector clock algorithm to collect sound concurrent traces on the fly reflecting the partial order between events. Moreover, concurrent events in the representative trace pose a soundness problem for monitors synthesized from total order formalisms. For this, we extract a causal dependence relation from the monitor to check if the trace has the needed orderings and define the conditions to decide at runtime when a collected trace is monitorable. We implement our contributions in a tool, FACTS, which instruments programs compiling to Java bytecode, constructs sound representative traces, and warns the monitor about non-monitorable traces. We evaluate our work and compare it with existing approaches.
title Sound Concurrent Traces for Online Monitoring Technical Report
topic Software Engineering
url https://arxiv.org/abs/2402.18391