LOADING

Controlled Concurrency Testing for Scala

This talk presents McCCT, a new concurrency testing tool developed at KTH by the speakers in the context of an ongoing research project.

Philipp Haller
Associate Professor at KTH Royal Institute of Technology
Oskar Grönman
About This Talk

Building resilient and scalable distributed systems is necessary to support emerging and future digital services processing increasing amounts of data and requiring increasing amounts of computing resources to support artificial intelligence. One challenge in building such systems is safe large-scale concurrency. Due to the inherent nondeterminism of concurrent programs, it is notoriously difficult to find, reproduce, and fix concurrency bugs.

This talk presents McCCT, a new concurrency testing tool developed at KTH by the speakers in the context of an ongoing research project. McCCT helps find concurrency hazards, such as race conditions and deadlocks, by systematically exploring the possible schedules of concurrent Scala programs. Importantly, McCCT supports replaying problematic schedules, aiding in the reproduction of concurrency bugs. In addition, the tool provides a scheduler that can enforce a sequential schedule, enabling deterministic execution, suitable for integration in unit test suites.

The talk will start with an overview of McCCT and its capabilities from the user's perspective. Using live coding, we will show how to use McCCT to find and replay a series of concurrency bugs in real-world concurrent code. After that, we will explain how the tool can be used to create powerful regression tests for concurrent code. At the end, the talk will provide an introduction to the inner workings of McCCT.

more great talks

Might Be Interesting

Day 1
  —  
2:35 pm
arrow pointing right icon

Beyond `flatMap`: Is Kyo the Future of Scala Effects?

For nearly a decade, Scala's concurrency has been driven by Akka, Cats Effect and ZIO, each with its own vision for purity, safety, and pragmatism. Kyo enters this incredible ecosystem with a fresh perspective.This talk provides a critical, technical comparison of these systems through a unified framework.

Day 1
  —  
8:00 pm
arrow pointing right icon

Scalar Afterparty

Don't miss out on this opportunity to connect with Scalar community and create lasting memories!

Day 2
  —  
12:25 pm
arrow pointing right icon

Safer Code with LLMs: Scala Types Silver Bullet?

Code generation is one of the most promising applications of large language models (LLMs), offering substantial productivity boosts for developers. However, this benefit is tempered by serious concerns surrounding the correctness and security of the generated code - especially outside the happy path.

Day 2
  —  
9:35 am
arrow pointing right icon

Flexible Modeling: Keeping Your Domain Pure with Scala 3

In this talk, we will walk through a concrete example of a boilerplate-heavy domain. By replacing common Scala 2 workarounds with Opaque Types, Extension Methods, Enums, and Union Types, we will demonstrate how to achieve a strictly typed, decoupled architecture without the noise.

Day 1
  —  
4:50 pm
arrow pointing right icon

Effects as Capabilities

When writing software, we currently seem to have to choose between an imperative style - easy to read and write, hard to reason about - and a monadic style - hard to read and write, easy to reason about.This talk is about being greedy and getting the best of both worlds, because we deserve it.

See All Events
Join us!

We're looking for amazing speakers.
CFP is open till 10.01.2023

Fill in Call for Papers
location icon

Location

Centrum Konferencyjne POLIN, Poland
stay in touch icon

Follow Us

Contact Us