edificeio / entcore

ODE educational social network engine
Other
13 stars 5 forks source link

[FEEDER] Import AAF non terminé avec heapspace sur Neo4j, et liaison d'utilisateur avec établissement #390

Open SolaAdrien opened 1 year ago

SolaAdrien commented 1 year ago

Bonjour,

Je vous contacte car je rencontre plusieurs anomalies liées au feeder, peut-être pourrez-vous répondre à mes interrogations.

Anomalie lors de l'import - Heapspace error

Concernant l'anomalie lors d'un import de fichiers AAF, je dispose des informations suivantes:

Le problème survient uniquement lors d'un import dans une base de données qui n'est pas vide. Dans le cas où la base est déjà remplie, j'obtiens une erreur de memory heapspace lors de l'import (vers la fin). J'ai donc augmenté la heapspace memory maximale. Après analyse, il semblerait que vers la fin de l'import, une augmentation drastique de l'utilisation de la RAM survienne, notamment lors de l'analyse des utilisateurs dupliqués (exemple de log: "2023-09-20 08:19:52 INFO No duplicate user with score > 3 found in profile Relative"). De plus, la mémoire n'est pas libérée une fois l'erreur survenue, ce qui fait penser à une fuite mémoire.

La conséquence de l'anomalie est que certains utilisateurs ne sont pas importés. Il n'est pas possible de savoir lesquels ne le sont pas, mais une analyse a remonté qu'un utilisateur n'était pas présent dans le simulateur par la suite.

J'utilise actuellement la version 3.5.0 du feeder de l'entcore. La taille de la base de données Neo4j est environ de 2,5Go. Voici la configuration de mon image neo4j:

neo4j: image: neo4j:3.1 ports:

Question sur l'établissement principal d'un utilisateur

Lorsqu'un utilisateur est présent dans le simulateur, il possède parfois un établissement principal. Celui-ci est visible notamment dans la console d'administration, par exemple dans l'ancienne console : image

Ce faisant, j'ai analysé qu'un utilisateur est rattaché à un établissement principal lorsqu'il possède la relation :ADMINISTRATIVE_ATTACHMENT sur une structure dans Neo4j. Cette relation me semble automatiquement créée lorsque l'utilisateur provient d'un import AAF. En revanche si jamais l'utilisateur est crée manuellement, ou qu'un utilisateur importé doit changer d'établissement principal, lorsque via la console d'administration il est rattaché à un établissement, la liaison :ADMINISTRATIVE_ATTACHMENT ne se crée pas. Voici le bouton utilisé pour rattacher : image

J'utilise la version 3.5.0 de la console d'administration.

J'aurai donc les questions suivantes:

Merci d'avance pour vos réponses concernant ces deux sujets. N'hésitez pas à me demander des informations supplémentaires si nécessaire.

Bien cordialement, Adrien Sola

SolaAdrien commented 1 year ago

Bonjour,

J'ai quelques informations supplémentaires suite à la première anomalie. Nous sommes toujours avec la version 3.5.0 du feeder.

Voici les prérequis pour reproduire l'anomalie :

Scénario :

Un exemple d'utilisateur fusionné est le suivant : lastName: THADA001 lastNameSearchField: thada001 displayName: ARTHUR001 Joanny firstNameSearchField: genesis login: joanny.arthur001 surname: THADA001 firstName: Genesis displayNameSearchField: thada001genesis otherNames: Joanny

C'est donc aussi le cas pour les dizaines de milliers d'autres utilisateurs. Il semblerait que l'ancien utilisateur dans la base de données disparaisse, et que le nouvel utilisateur importé possède toutes les données relatives au fichier AAF, sauf les éléments tels que le login, le display name, le password et l'attribut otherNames.

J'aurai donc les questions suivantes :

Merci d'avance pour vos réponses à mes questions.

Bien cordialement,

Adrien Sola

SolaAdrien commented 1 year ago

Bonjour,

On me redirige vers le github pour poser une question non technique supplémentaire :

Bonne journée,

Adrien Sola