Identifying Potential Deadlocked Instructions in a Multi-threaded ooRexx Program

Activity: Talk or presentationScience to science

Description

In dynamic runtime environments, like ooRexx applications, guard-locked multi-threaded applications may be deadlocked for many reasons. Breaking deadlocked code may yield the location of a deadlocked instruction but may not allow for identifying other deadlocked threads such that the causes may be difficult or even impossible to locate. With the introduction of collectible TraceObject instances in ooRexx 5.1, a new infrastructure becomes available that can be put to work for identifying guard lock-related deadlocks on any number of threads. This article introduces the principles for creating TraceObject trace logs that can be externalized (e.g., encoded as JSON or XML text files) and internalized later as the originally ordered collection of trace objects for analyzing and processing purposes. The ooRexx guard lock-based multi-threading rules can then be used to develop an algorithm to identify all deadlocked program instructions "post immobilization," analyzing the TraceObject trace logs and supplying information about the affected objects and threads.
Period19 Sept 2024
Event titleISSTA 2024: International Symposium on Software Testing and Analysis, VORTEX '24: VORTEX '24: 7th ACM International Workshop on Verification and Monitoring at Runtime Execution
Event typeConference
LocationWien, AustriaShow on map
Degree of RecognitionInternational

Keywords

  • Runtime Verification
  • Multi-threaded
  • ooRexx
  • TraceObject
  • Trace Log
  • Deadlock
  • Guard Lock