WebAssembly / WebAssembly/shared-everything-threads

Ideas and resources for fuzzing shared-everything threads

Open
#84 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
WebAssembly
Stars
97
Forks
6
PR merge metrics
No merged PRs in 30d

Description

This issue is intended as a place for discussion about approaches we can all use to improve our assurances that we correctly implement this proposal. A place to share relevant papers, moonshot ideas, etc...

Unlike many other Wasm proposals,[^0] we can't effectively exercise this proposal's additions to the language by just simply generating pseudo-random Wasm modules that contain this proposal's new instruction and feeding those into the system under test.

[^0]: To some degree everything here applies equally to the original threads proposal, but shared-everything threads expands the scope much further.

Off the top of my head, we need to additionally do things like

  • actually spawn multiple threads
  • check whether the dynamic trace of accesses across threads is valid given the happens-before relationships imposed by those operations used to make those accesses
  • ideally avoid dead locks in these generated concurrent programs

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the issue discussion and its stated constraints around spawning threads, validating dynamic traces against happens-before relationships, and avoiding deadlocks. Done would be a documented, agreed approach or set of resources for improving assurance of the shared-everything threads proposal.

Written by the indexing model from the issue text.

Assessment

Tech stack
wasm
Domain
distributed-systems, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.