Splitting Application Input into Batches as a Countermeasure Against Software Aging

In the realm of software aging and rejuvenation, our study addresses a challenging bug encountered during the development of a crawler and parser for webpages. The bug, originating from an external Python library, proved difficult to reproduce due to its dependency on specific conditions, notably requiring a substantial number of iterations to manifest. Although the bug behaves similarly to a Bohrbug—manifesting consistently under certain conditions, including fixed input—the exact triggering condition remains unknown. This makes it a significant challenge to simply eliminate the bug from the code, a common approach with Bohrbugs. This paper details the extensive debugging process undertaken to identify and address this issue. Through methodical analysis and testing, we discovered that the bug’s impact was mitigated by dividing prolonged executions into manageable batches. This approach not only resolved the issue but also offered insights into effective strategies for managing complex bugs in long-running processes.

Authors

Institutions

Publication Details

Published
2024-10-28
DOI
https://doi.org/10.1109/issrew63542.2024.00112
Primary Topic
Software System Performance and Reliability
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Splitting Application Input into Batches as a Countermeasure Against Software Aging

Alberto Avritzer, Daniel Sadoc Menasché, Carlos Eduardo de Schuller Banjar
Software System Performance and Reliability
article

Splitting Application Input into Batches as a Countermeasure Against Software Aging

Alberto Avritzer, Daniel Sadoc Menasché, Carlos Eduardo de Schuller Banjar
article en

Abstract

In the realm of software aging and rejuvenation, our study addresses a challenging bug encountered during the development of a crawler and parser for webpages. The bug, originating from an external Python library, proved difficult to reproduce due to its dependency on specific conditions, notably requiring a substantial number of iterations to manifest. Although the bug behaves similarly to a Bohrbug—manifesting consistently under certain conditions, including fixed input—the exact triggering condition remains unknown. This makes it a significant challenge to simply eliminate the bug from the code, a common approach with Bohrbugs. This paper details the extensive debugging process undertaken to identify and address this issue. Through methodical analysis and testing, we discovered that the bug’s impact was mitigated by dividing prolonged executions into manageable batches. This approach not only resolved the issue but also offered insights into effective strategies for managing complex bugs in long-running processes.

Universidade Federal do Rio de Janeiro (BR)
Openalex Percentile: Top 75%
Software System Performance and Reliability
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Splitting Application Input into Batches as a Countermeasure Against Software Aging — Alberto Avritzer, Daniel Sadoc Menasché, et al. · (2024) | TGRS Research Map | TGRS