Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Using Doctrine entities as Module arguments causes memory leaks

Ouverte
#15 1 commentaire 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
45/100
Type d'issue
Documentation
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
php

Piste de recherche

Commencez par localiser la documentation du module Doctrine et la section décrivant les arguments des méthodes du module ou la configuration des fixtures. Ajoutez un avertissement indiquant que les entités Doctrine peuvent conserver des collections persistantes et des Entity Managers lorsqu’elles sont stockées comme arguments, et recommandez d’utiliser des données scalaires lorsque cela est approprié ; la tâche est considérée comme terminée lorsque ces indications sont clairement documentées.

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

Description

Background:

We have a fairly big project using Codeception. Recently, the memory usage during tests reached around ~2 GB of memory, resulting in exceeding the limit on CI test runs.

We have managed to pin down the issue to the fact that we were using Doctrine entities as arguments in a lot of module methods when creating fixture data.

The problem stems from persistent collections - all of them have Entity Manager injected into them and Codeception stores all arguments used in module methods. This caused the old instances of entity manager service not being cleared up and memory usage steadily piling up.

We were not using the Doctrine module, since it was too troublesome due to the persistent EntityManager service.

Solution:

The only way to correctly resolve it was to use scalar data instead of full entities. This has drastically reduced memory usage.

This is not something that I would expect the Codeception team to resolve, but I think that in the section of the Doctrine module you could provide a paragraph or two warning people about this issue. It can save someone folks a lot of work.

Cheers

Langage dominant
PHP
Étoiles
4
Forks
2
Métriques de merge des PR
Aucune PR mergée en 30 j

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 Codeception/module-doctrine

Toutes les issues de Codeception/module-doctrine

Issues similaires

Plus d'issues PHP

Recevez les nouvelles issues par e-mail

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