uu.seUppsala University Publications
Change search
Link to record
Permanent link

Direct link
BETA
Aronis, Stavros
Publications (10 of 12) Show all publications
Aronis, S. (2018). Effective Techniques for Stateless Model Checking. (Doctoral dissertation). Uppsala: Acta Universitatis Upsaliensis
Open this publication in new window or tab >>Effective Techniques for Stateless Model Checking
2018 (English)Doctoral thesis, comprehensive summary (Other academic)
Abstract [en]

Stateless model checking is a technique for testing and verifying concurrent programs, based on exploring the different ways in which operations executed by the processes of a concurrent program can be scheduled. The goal of the technique is to expose all behaviours that can be a result of scheduling non-determinism. As the number of possible schedulings is huge, however, techniques that reduce the number of schedulings that must be explored to achieve verification have been developed. Dynamic partial order reduction (DPOR) is a prominent such technique.

This dissertation presents a number of improvements to dynamic partial order reduction that significantly increase the effectiveness of stateless model checking. Central among these improvements are the Source and Optimal DPOR algorithms (and the theoretical framework behind them) and a technique that allows the observability of the interference of operations to be used in dynamic partial order reduction. Each of these techniques can exponentially decrease the number of schedulings that need to be explored to verify a concurrent program. The dissertation also presents a simple bounding technique that is compatible with DPOR algorithms and effective for finding bugs in concurrent programs, if the number of schedulings is too big to make full verification possible in a reasonable amount of time, even when the improved algorithms are used.

All improvements have been implemented in Concuerror, a tool for applying stateless model checking to Erlang programs. In order to increase the effectiveness of the tool, the interference of the high-level operations of the Erlang/OTP implementation is examined, classified and precisely characterized. Aspects of the implementation of the tool are also described. Finally, a use case is presented, showing how Concuerror was used to find bugs and verify key correctness properties in repair techniques for the CORFU chain replication protocol.

Place, publisher, year, edition, pages
Uppsala: Acta Universitatis Upsaliensis, 2018. p. 56
Series
Digital Comprehensive Summaries of Uppsala Dissertations from the Faculty of Science and Technology, ISSN 1651-6214 ; 1602
Keywords
Concurrent, Parallel, Model Checking, Partial Order Reduction, Dynamic Partial Order Reduction, DPOR, Sleep Set Blocking, Source Sets, Source DPOR, Wakeup Trees, Optimal DPOR, Observers, Verification, Bounding, Exploration Tree Bounding, Testing, Erlang, Concuerror, Protocol, Chain Replication, CORFU
National Category
Computer Sciences
Research subject
Computer Science
Identifiers
urn:nbn:se:uu:diva-333541 (URN)978-91-513-0160-0 (ISBN)
Public defence
2018-02-02, ITC/2446, Lägerhyddsvägen 2, 752 37, Uppsala, 13:15 (English)
Opponent
Supervisors
Projects
UPMARCRELEASE
Available from: 2017-12-19 Created: 2017-11-22 Last updated: 2018-03-08
Aronis, S., Jonsson, B., Lång, M. & Sagonas, K. (2018). Optimal dynamic partial order reduction with observers. In: Tools and Algorithms for the Construction and Analysis of Systems: Part II. Paper presented at TACAS 2018, April 14–20, Thessaloniki, Greece. (pp. 229-248). Springer, 10806
Open this publication in new window or tab >>Optimal dynamic partial order reduction with observers
2018 (English)In: Tools and Algorithms for the Construction and Analysis of Systems: Part II, Springer, 2018, Vol. 10806, p. 229-248Conference paper, Published paper (Refereed)
Abstract [en]

Dynamic partial order reduction (DPOR) algorithms are used in stateless model checking (SMC) to combat the combinatorial explosion in the number of schedulings that need to be explored to guarantee soundness. The most effective of them, the Optimal DPOR algorithm, is optimal in the sense that it explores only one scheduling per Mazurkiewicz trace. In this paper, we enhance DPOR with the notion of observability, which makes dependencies between operations conditional on the existence of future operations, called observers. Observers naturally lead to a lazy construction of dependencies. This requires significant changes in the core of POR algorithms (and Optimal DPOR in particular), but also makes the resulting algorithm, Optimal DPOR with Observers, super-optimal in the sense that it explores exponentially less schedulings than Mazurkiewicz traces in some cases. We argue that observers come naturally in many concurrency models, and demonstrate the performance benefits that Optimal DPOR with Observers achieves in both an SMC tool for shared memory concurrency and a tool for concurrency via message passing, using both synthetic and actual programs as benchmarks.

Place, publisher, year, edition, pages
Springer, 2018
Series
Lecture Notes in Computer Science, ISSN 0302-9743, E-ISSN 1611-3349 ; 10806
National Category
Computer Sciences
Identifiers
urn:nbn:se:uu:diva-333508 (URN)10.1007/978-3-319-89963-3 _ 14 (DOI)000445822600014 ()978-3-319-89962-6 (ISBN)978-3-319-89963-3 (ISBN)
Conference
TACAS 2018, April 14–20, Thessaloniki, Greece.
Projects
UPMARC
Funder
Swedish Research Council
Available from: 2018-04-14 Created: 2017-11-21 Last updated: 2019-01-07Bibliographically approved
Abdulla, P., Aronis, S., Jonsson, B. & Sagonas, K. (2017). Comparing source sets and persistent sets for partial order reduction. In: Models, Algorithms, Logics and Tools: Essays Dedicated to Kim Guldstrand Larsen on the Occasion of His 60th Birthday (pp. 516-536). Springer
Open this publication in new window or tab >>Comparing source sets and persistent sets for partial order reduction
2017 (English)In: Models, Algorithms, Logics and Tools: Essays Dedicated to Kim Guldstrand Larsen on the Occasion of His 60th Birthday, Springer, 2017, p. 516-536Chapter in book (Other academic)
Abstract [en]

Partial order reduction has traditionally been based on persistent sets, ample sets, stubborn sets, or variants thereof. Recently, we have presented a strengthening of this foundation, using source sets instead of persistent/ample/stubborn sets. Source sets subsume persistent sets and are often smaller than persistent sets. We introduced source sets as a basis for Dynamic Partial Order Reduction (DPOR), in a framework which assumes that processes are deterministic and that all program executions are finite. In this paper, show how to use source sets for partial order reduction in a framework which does not impose these restrictions. We also compare source sets with persistent sets, providing some insights into conditions under which source sets and persistent sets do or do not differ.

Place, publisher, year, edition, pages
Springer, 2017
Series
Lecture Notes in Computer Science, E-ISSN 1611-3349 ; 10460
National Category
Computer Sciences
Identifiers
urn:nbn:se:uu:diva-333506 (URN)10.1007/978-3-319-63121-9_26 (DOI)000441452500026 ()978-3-319-63120-2 (ISBN)978-3-319-63121-9 (ISBN)
Projects
UPMARC
Funder
Swedish Research Council
Available from: 2017-07-25 Created: 2017-11-14 Last updated: 2018-11-09Bibliographically approved
Trinder, P., Chechina, N., Papaspyrou, N., Sagonas, K., Thompson, S., Adams, S., . . . Winblad, K. (2017). Scaling Reliably: Improving the scalability of the Erlang distributed actor platform. ACM Transactions on Programming Languages and Systems, 39(4), Article ID 17.
Open this publication in new window or tab >>Scaling Reliably: Improving the scalability of the Erlang distributed actor platform
Show others...
2017 (English)In: ACM Transactions on Programming Languages and Systems, ISSN 0164-0925, E-ISSN 1558-4593, Vol. 39, no 4, article id 17Article in journal (Refereed) Published
National Category
Software Engineering
Identifiers
urn:nbn:se:uu:diva-331846 (URN)10.1145/3107937 (DOI)000414328600004 ()
Projects
UPMARCRELEASE
Funder
EU, European Research Council, RII3-CT-2005-026133 IST-2011-287510
Available from: 2017-09-18 Created: 2017-10-18 Last updated: 2018-02-12Bibliographically approved
Abdulla, P., Aronis, S., Jonsson, B. & Sagonas, K. (2017). Source Sets: A Foundation for Optimal Dynamic Partial Order Reduction. Journal of the ACM, 64(4), Article ID 25.
Open this publication in new window or tab >>Source Sets: A Foundation for Optimal Dynamic Partial Order Reduction
2017 (English)In: Journal of the ACM, ISSN 0004-5411, E-ISSN 1557-735X, Vol. 64, no 4, article id 25Article in journal (Refereed) Published
Abstract [en]

Stateless model checking is a powerful method for program verification that, however, suffers from an exponential growth in the number of explored executions. A successful technique for reducing this number, while still maintaining complete coverage, is Dynamic Partial Order Reduction (DPOR), an algorithm originally introduced by Flanagan and Godefroid in 2005 and since then not only used as a point of reference but also extended by various researchers. In this article, we present a new DPOR algorithm, which is the first to be provably optimal in that it always explores the minimal number of executions. It is based on a novel class of sets, called source sets, that replace the role of persistent sets in previous algorithms. We begin by showing how to modify the original DPOR algorithm to work with source sets, resulting in an efficient and simple-to-implement algorithm, called source-DPOR. Subsequently, we enhance this algorithm with a novel mechanism, called wakeup trees, that allows the resulting algorithm, called optimal-DPOR, to achieve optimality. Both algorithms are then extended to computational models where processes may disable each other, for example, via locks. Finally, we discuss tradeoffs of the source-and optimal-DPOR algorithm and present programs that illustrate significant time and space performance differences between them. We have implemented both algorithms in a publicly available stateless model checking tool for Erlang programs, while the source-DPOR algorithm is at the core of a publicly available stateless model checking tool for C/pthread programs running on machines with relaxed memory models. Experiments show that source sets significantly increase the performance of stateless model checking compared to using the original DPOR algorithm and that wakeup trees incur only a small overhead in both time and space in practice.

Place, publisher, year, edition, pages
Association for Computing Machinery (ACM), 2017
National Category
Software Engineering
Identifiers
urn:nbn:se:uu:diva-331842 (URN)10.1145/3073408 (DOI)000410615900002 ()
Projects
UPMARCRELEASE
Funder
EU, FP7, Seventh Framework Programme, 287510Swedish Research Council
Available from: 2017-10-18 Created: 2017-10-18 Last updated: 2018-01-13Bibliographically approved
Abdulla, P. A., Aronis, S., Atig, M. F., Jonsson, B., Leonardsson, C. & Sagonas, K. (2017). Stateless model checking for TSO and PSO. Acta Informatica, 54(8), 789-818
Open this publication in new window or tab >>Stateless model checking for TSO and PSO
Show others...
2017 (English)In: Acta Informatica, ISSN 0001-5903, E-ISSN 1432-0525, Vol. 54, no 8, p. 789-818Article in journal (Refereed) Published
National Category
Computer Sciences
Identifiers
urn:nbn:se:uu:diva-333902 (URN)10.1007/s00236-016-0275-0 (DOI)000414343200004 ()
Projects
UPMARC
Funder
EU, FP7, Seventh Framework Programme, 287510
Available from: 2016-07-07 Created: 2017-11-18 Last updated: 2018-02-07Bibliographically approved
Aronis, S., Sagonas, K. & Lystig Fritchie, S. (2017). Testing And Verifying Chain Repair Methods For CORFU Using Stateless Model Checking. In: : . Paper presented at Integrated Formal Methods. IFM 2017 (pp. 227-242). Cham: Springer
Open this publication in new window or tab >>Testing And Verifying Chain Repair Methods For CORFU Using Stateless Model Checking
2017 (English)Conference paper, Published paper (Refereed)
Abstract [en]

Corfu is a distributed shared log that is designed to be scalable and reliable in the presence of failures and asynchrony. Internally, Corfu is fully replicated for fault tolerance, without sharding data or sacrificing strong consistency. In this case study, we present the modeling approaches we followed to test and verify, using Concuerror, the correctness of repair methods for the Chain Replication protocol suitable for Corfu. In the first two methods we tried, Concuerror located bugs quite fast. In contrast, the tool did not manage to find bugs in the third method, but the time this took also motivated an improvement in the tool that reduces the number of traces explored. Besides more details about all the above, we present experiences and lessons learned from applying stateless model checking for verifying complex protocols suitable for distributed programming.

Place, publisher, year, edition, pages
Cham: Springer, 2017
Series
Lecture Notes in Computer Science ; 10510
National Category
Computer Systems Software Engineering
Identifiers
urn:nbn:se:uu:diva-331836 (URN)10.1007/978-3-319-66845-1_15 (DOI)978-3-319-66844-4 (ISBN)978-3-319-66845-1 (ISBN)
Conference
Integrated Formal Methods. IFM 2017
Projects
UPMARC
Available from: 2017-10-18 Created: 2017-10-18 Last updated: 2018-01-13Bibliographically approved
Aronis, S. & Sagonas, K. (2017). The shared-memory interferences of Erlang/OTP built-ins. In: Chechina, N.; Fritchie, SL. (Ed.), Proceedings Of The 16Th Acm Sigplan International Workshop On Erlang (Erlang '17): . Paper presented at 16th ACM SIGPLAN International Workshop on Erlang (Erlang), Sep 08, 2017 , Oxford, England. (pp. 43-54). New York: Association for Computing Machinery (ACM)
Open this publication in new window or tab >>The shared-memory interferences of Erlang/OTP built-ins
2017 (English)In: Proceedings Of The 16Th Acm Sigplan International Workshop On Erlang (Erlang '17) / [ed] Chechina, N.; Fritchie, SL., New York: Association for Computing Machinery (ACM), 2017, p. 43-54Conference paper, Published paper (Refereed)
Abstract [en]

Erlang is a concurrent functional language based on the actor modelof concurrency. In the purest form of this model, actors are realizedby processes that do not share memory and communicate witheach other exclusively via message passing. Erlang comes quiteclose to this model, as message passing is the primary form of interprocesscommunication and each process has its own memoryarea that is managed by the process itself. For this reason, Erlangis often referred to as implementing “shared nothing” concurrency.Although this is a convenient abstraction, in reality Erlang’s mainimplementation, the Erlang/OTP system, comes with a large numberof built-in operations that access memory which is shared byprocesses. In this paper, we categorize these built-ins, and characterizethe interferences between them that can result in observabledifferences of program behaviour when these built-ins are usedin a concurrent setting. The paper is complemented by a publiclyavailable suite of more than one hundred small Erlang programsthat demonstrate the racing behaviour of these built-ins.

Place, publisher, year, edition, pages
New York: Association for Computing Machinery (ACM), 2017
Keywords
Actors, BEAM, Concuerror, Erlang, Scheduling nondeterminism
National Category
Software Engineering
Identifiers
urn:nbn:se:uu:diva-331840 (URN)10.1145/3123569.3123573 (DOI)000426922100005 ()978-1-4503-5179-9 (ISBN)
Conference
16th ACM SIGPLAN International Workshop on Erlang (Erlang), Sep 08, 2017 , Oxford, England.
Projects
UPMARC
Funder
Swedish Research Council
Available from: 2017-10-18 Created: 2017-10-18 Last updated: 2018-07-03Bibliographically approved
Abdulla, P. A., Aronis, S., Atig, M. F., Jonsson, B., Leonardsson, C. & Sagonas, K. (2015). Stateless model checking for TSO and PSO. In: Baier, Christel; Tinelli, Cesare (Ed.), Tools and Algorithms for the Construction and Analysis of Systems: TACAS 2015. Paper presented at TACAS 2015, April 11–18, London, UK (pp. 353-367). Springer Berlin/Heidelberg
Open this publication in new window or tab >>Stateless model checking for TSO and PSO
Show others...
2015 (English)In: Tools and Algorithms for the Construction and Analysis of Systems: TACAS 2015, Springer Berlin/Heidelberg, 2015, p. 353-367Conference paper, Published paper (Refereed)
Place, publisher, year, edition, pages
Springer Berlin/Heidelberg, 2015
Series
Lecture Notes in Computer Science ; 9035
National Category
Software Engineering
Identifiers
urn:nbn:se:uu:diva-251580 (URN)10.1007/978-3-662-46681-0_28 (DOI)978-3-662-46680-3 (ISBN)
Conference
TACAS 2015, April 11–18, London, UK
Projects
UPMARC
Available from: 2015-04-21 Created: 2015-04-21 Last updated: 2018-01-11Bibliographically approved
Abdulla, P., Aronis, S., Jonsson, B. & Sagonas, K. (2014). Optimal dynamic partial order reduction. In: Proc. 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages: . Paper presented at POPL 2014, January 22-24, San Diego, CA (pp. 373-384). New York: ACM Press
Open this publication in new window or tab >>Optimal dynamic partial order reduction
2014 (English)In: Proc. 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, New York: ACM Press, 2014, p. 373-384Conference paper, Published paper (Refereed)
Abstract [en]

Stateless model checking is a powerful technique for program verification, which however suffers from an exponential growth in the number of explored executions. A successful technique for reducing this number, while still maintaining complete coverage, is Dynamic Partial Order Reduction (DPOR). We present a new DPOR algorithm, which is the first to be provably optimal in that it always explores the minimal number of executions. It is based on a novel class of sets, called source sets, which replace the role of persistent sets in previous algorithms. First, we show how to modify an existing DPOR algorithm to work with source sets, resulting in an efficient and simple to implement algorithm. Second, we extend this algorithm with a novel mechanism, called wakeup trees, that allows to achieve optimality. We have implemented both algorithms in a stateless model checking tool for Erlang programs. Experiments show that source sets significantly increase the performance and that wakeup trees incur only a small overhead in both time and space.

Place, publisher, year, edition, pages
New York: ACM Press, 2014
Series
ACM SIGPLAN NOTICES, ISSN 0362-1340 ; 49:1
National Category
Software Engineering Computer Systems
Identifiers
urn:nbn:se:uu:diva-215414 (URN)10.1145/2535838.2535845 (DOI)000331120500032 ()978-1-4503-2544-8 (ISBN)
Conference
POPL 2014, January 22-24, San Diego, CA
Projects
UPMARCRELEASEProFuN
Funder
EU, FP7, Seventh Framework Programme, 287510
Available from: 2014-01-13 Created: 2014-01-13 Last updated: 2018-01-11Bibliographically approved
Organisations

Search in DiVA

Show all publications