close icon
close icon

    StrykerJS plante avec "Fatal JavaScript invalid size error"


    Si vous exécutez des tests de mutation StrykerJS et que vous rencontrez ce crash :

    Fatal error in , line 0
    Fatal JavaScript invalid size error 169220804 (see crbug.com/1201626)
    
    #FailureMessage Object: 0xffffe38d83a0
    ----- Native stack trace -----
     1: 0xd09208  [stryker]
     2: 0x1f8b930 V8_Fatal(char const*, ...) [stryker]
     3: 0x1072c70 v8::internal::FactoryBase<v8::internal::Factory>::NewArrayList
    

    Stryker tente probablement de copier des fichiers volumineux dans son répertoire sandbox.

    La cause

    Stryker copie les fichiers de votre projet dans un sandbox .stryker-tmp avant d'exécuter les mutations. Si votre projet contient des fichiers volumineux (core dumps, artefacts de build, fichiers média), V8 peut planter en tentant de les manipuler, particulièrement sur ARM64 où ce bug V8 se déclenche plus facilement.

    Dans mon cas : un fichier core dump de 1,3 Go traînait à la racine du projet.

    La correction

    Ajoutez ignorePatterns dans stryker.config.json :

    {
      "ignorePatterns": [
        "reports",
        "core",
        "*.log",
        "dist",
        "build"
      ]
    }
    

    node_modules, .git et quelques autres sont déjà ignorés par défaut.

    Diagnostic rapide

    Vérifiez la taille de votre projet hors node_modules :

    du -sh * | sort -h | tail -10
    

    Si vous voyez des répertoires ou fichiers anormalement volumineux, ajoutez-les à ignorePatterns.