WASM components: add a wall-clock cutoff (Wasmtime epoch interruption) next to fuel and memory limits

Ouverte
#479 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
39/100
Type d'issue
Fonctionnalité
Clarté
Clairement spécifiée
Activité
Active
Stack technique
rust
Domaine
backend, performance

Piste de recherche

Start with elastos/crates/elastos-compute/src/providers/component.rs and trace how component calls configure fuel and memory limits. Read the Wasmtime 36.0.19 epoch interruption APIs, then identify the Runtime ticker and per-capsule configuration entry points. Done means deadline errors stop overdue calls while keeping the Runtime responsive, configurable limits and coverage for all three call scenarios, plus Jetson overhead measurements.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Today: component capsules run with a fuel limit and a memory limit (elastos/crates/elastos-compute/src/providers/component.rs: consume_fuel, set_fuel(COMPONENT_FUEL), StoreLimitsBuilder::memory_size). They have no time-based limit.

Proposal (Sash, 22 Oct): enable Wasmtime epoch interruption (Config::epoch_interruption), with a Runtime ticker and a per-call deadline, so a call also ends after a set wall-clock time. That covers time spent outside fuel accounting.

Done means:

  • a component call that exceeds its deadline is stopped with a clear error, and the Runtime stays responsive;
  • the deadline is configurable per capsule class;
  • tests cover a busy loop, a long host-call wait and a normal call under the limit;
  • the overhead is measured on the Jetson.

Not in 0.8.0. The Wasmtime 36.0.19 security update is already on the 0.8.0 train.

Langage dominant
Rust
Étoiles
6
Forks
2
Merge moyen
1 j 3 h
PR mergées (30 j)
42

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de elastos/elastos-runtime

Toutes les issues de elastos/elastos-runtime

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.