Projet

Général

Profil

Anomalie #25369

Double chargmeent des ressources poshprofil

Ajouté par Renaud Dussol il y a plus de 5 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
Début:
05/10/2018
Echéance:
% réalisé:

100%

Distribution:

Description

Il semble que systématiquement les ressources poshprofil se chargent deux fois, ainsi que la récupération des messages
Dans les logs réseau du navigateur, j'ai systématiquement un double appel aux services xdesktop (api/applis/messages,etc...)
Dans la console je vois des étapes en double : [STEP3 DATA], Récupération des messages...

En cherchant un peu, cela semble venir de edispatcher-etabs

Le test sur le cache suivi de la fonction setData sont appelés 2 fois :

- une première fois l. 297 dans la partie "attached" :


        var cacheItems=eStorage.get(this.url);
          if (cacheItems) {
              console.log("[RESSOURCES CACHE] '"+ this.uaj+"' apps from cache");
              var source=MX.getSource(this.id);
              //source.setData(cacheItems,true);
              this.step1();
          } else {
              this.step1();
          }
        },

- une deuxième fois l. 569 dans la partie "ready", fonction step3 :

        step3: function() {

          var cacheItems=eStorage.get(this.url);
          if (cacheItems) {
              console.log("[STEP3 CACHE] '"+ this.uaj+"' apps from cache");
              var source=MX.getSource(this.id);
              source.setData(cacheItems,true);
          } else {
             ...

Si je commente le premier code (en laissant juste this.step1();), je n'ai plus qu'un seul appel réseau à xdesktop et dans la console tout semble cohérent. Au niveau du bureau tout semble se charger correctement

Je ne connais pas assez polymer pour comprendre les tenants et aboutissant du lifecycle et les notions attached et ready, mais j'ai quand même l'impression que eStorage.get et setData (qui comprend la récupération des messages) s'exécutent 2 fois...

C'est normal ou c'est un doublon ?

Révisions associées

Révision aa0cad51 (diff)
Ajouté par Christophe LEON il y a plus de 5 ans

fixes #25369 : éviter double chargement des ressources si déja récup par eStorage

Historique

#1 Mis à jour par Renaud Dussol il y a plus de 5 ans

Le commentaire sur source.setData(cacheItems,true) est de moi, il n'est pas à l'origine

var cacheItems=eStorage.get(this.url);
          if (cacheItems) {
              console.log("[RESSOURCES CACHE] '"+ this.uaj+"' apps from cache");
              var source=MX.getSource(this.id);
              source.setData(cacheItems,true);
              this.step1();
          } else {
              this.step1();
          }
        },

#2 Mis à jour par Christophe LEON il y a plus de 5 ans

Même comportement sur metice avec Demopia ?

#3 Mis à jour par Renaud Dussol il y a plus de 5 ans

Alors j'ai testé mais difficile à dire car il va chercher aussi les ressources de l'établissement Bellepierre et encore une autre (en tout il y a 3 ADD PORTAL : Rectorat 9740049K, BELLEPIERRE 9741046U et Profilage académique xxx)

Mais je pense que oui car je vois bien 2 fois dans les logs :

16:58:07.318 +3ms => 11584ms : [STEP3 DATA] 'xxx' data recieved url=hubole.ac-reunion.fr
16:58:07.597 +67ms => 11862ms : [CACHE] Ressources 'Profilage académique' en cache 6f967a4367076cdfaf28290993b1325a
16:58:08.643 +835ms => 12908ms : Récupération des messages pour :xxx url=https://hubole.ac-reunion.fr/xdesktop/api/messages id=dbc2677a-5e8c-4c49-9363-548e48fa07f7
...
16:58:11.876 +2ms => 16141ms : [STEP3 DATA] 'xxx' data recieved url=hubole.ac-reunion.fr
16:58:12.000 +124ms => 16265ms : [CACHE] Ressources 'Profilage académique' en cache 6f967a4367076cdfaf28290993b1325a
16:58:12.827 +827ms => 17092ms : Récupération des messages pour :xxx url=https://hubole.ac-reunion.fr/xdesktop/api/messages id=dbc2677a-5e8c-4c49-9363-548e48fa07f7

Ces lignes sont en tout cas issues des fonctions eStorage.get et setData
Dans le log network en revanche j'ai l'impression de ne voir qu'un appel pour chaque portail...

Serait-ce un pb de conf chez nous ?

#4 Mis à jour par Renaud Dussol il y a plus de 5 ans

  • Assigné à changé de Christophe LEON à Renaud Dussol

Dans la console, la variable "_CACHE" retourne le pia à always : true
Pourtant le param FROCE_PIA est à false chez nous
Ce n'est pas normal car a priori le true ou false provient directement de cette variable

Vérifier ce qui se passe chez nous

#5 Mis à jour par Renaud Dussol il y a plus de 5 ans

Je suppose que je m'étais trompé car voici le retour de _PORTAILS sur mon serveur de test :

[{\"portails\":
[ {\"rne\":\"0060087M\",\"url\":\"\",\"label\":\"\"}, {\"rne\":\"xxx\",\"url\":\"https://eolesso.ihd.ac-nice.fr:443/saml?sp_ident=0060087M&RelayState=https://esterel.ihd.ac-nice.fr\",\"label\":\"Applis poshprofil\",\"portal\":\"esterel.ihd.ac-nice.fr\",\"error\":false,\"type\":\"COMMUNE\"}
]
,\"default\":\"\",\"guid\":\"d0fd7aec-4d56-4657-9a8c-d30ed3c13049\",\"profil\":{\"displayName\":\"Dussol Renaud\",\"uid\":\"RDussol\",\"profil\":{\"name\":\"National_6\",\"label\":\"Administratif\"}}
,\"zones\":\"\",\"pia\":{\"rne\":false,\"url\":false,\"libelle\":false,\"always\":false}}"

On voit que "always" est à false

J'avais du faire appel à _PORTAILS sur ma prod, qui elle a FORCE_PIA à true

Du coup cela n'explique pas pourquoi j'ai un double chargement...

On voit cependant dans le crochet "portails" qu'il liste deux portails (dont le premier n'a quasi aucune information)

#6 Mis à jour par Renaud Dussol il y a plus de 5 ans

Voici une copie de ma console sur le serveur de test :

+2ms =>  4518ms : ADD PORTAL: Applis poshprofil xxx
+61ms => 4579ms : [CACHE REMOTE] remote cache used for esterel.ihd.ac-nice.fr
+6ms => 4585ms : [RESSOURCES CACHE] 'xxx' apps from cache
+10ms => 4595ms : ON EST DANS SETDATA
+9ms => 4604ms : [STEP3 DATA] 'xxx' data recieved url=esterel.ihd.ac-nice.fr
+4ms => 4608ms : [STEP1] xxx Applis poshprofil
+238ms => 4846ms : [WEB] Ressources Applis poshprofil from web : 3c7200bc5bd9ecdc2d9e95ac82e4e916
+85ms => 4931ms : [STEP2 FEDE] 'xxx' federation finished
+27ms => 4958ms : [WEB] Ressources Applis poshprofil en 112ms
+150ms => 5108ms : Récupération des messages pour :xxx url=https://esterel.ihd.ac-nice.fr/xdesktop/api/messages id=26fd7fab-16d7-4038-a3f4-218c634a4e89
+1ms => 5109ms : => AJAX
+1354ms => 6463ms : [TOKEN] xxx Applis poshprofil token=216a3ecdba8ddc
+53ms => 6516ms : [CACHE REMOTE] remote cache used for esterel.ihd.ac-nice.fr
+1ms => 6517ms : [STEP3 CACHE] 'xxx' apps from cache
+6ms => 6523ms : ON EST DANS SETDATA
+9ms => 6532ms : [STEP3 DATA] 'xxx' data recieved url=esterel.ihd.ac-nice.fr
+140ms => 6672ms : [CACHE] Ressources 'Applis poshprofil' en cache 3c7200bc5bd9ecdc2d9e95ac82e4e916
+696ms => 7368ms : Récupération des messages pour :xxx url=https://esterel.ihd.ac-nice.fr/xdesktop/api/messages id=26fd7fab-16d7-4038-a3f4-218c634a4e89
+2ms => 7370ms : => AJAX

La ligne "ON EST DANS SETDATA" a été ajouté par moi dans edispatcher-etabs.html, l.630, au début de la fonction setData

On voit bien que cette fonction est exécutée 2 fois

Si je commente l.302 dans le if (cacheItems) la ligne source.setData(cacheItems,true);

Le chargement en double n'apparait plus :

+4ms => 4192ms : ADD PORTAL: Applis poshprofil xxx
+87ms => 4279ms : [CACHE REMOTE] remote cache used for esterel.ihd.ac-nice.fr
+5ms => 4284ms : [RESSOURCES CACHE] 'xxx' apps from cache
+2ms => 4286ms : [STEP1] xxx Applis poshprofil
+203ms => 4489ms : [STEP2 FEDE] 'xxx' federation finished
+537ms => 5026ms : [TOKEN] xxx Applis poshprofil token=216a3ecdba8ddc
+37ms => 5063ms : [CACHE REMOTE] remote cache used for esterel.ihd.ac-nice.fr
+2ms => 5065ms : [STEP3 CACHE] 'xxx' apps from cache
+2ms => 5067ms : ON EST DANS SETDATA
+2ms => 5069ms : [STEP3 DATA] 'xxx' data recieved url=esterel.ihd.ac-nice.fr
null
+210ms => 5279ms : [WEB] Ressources Applis poshprofil from web : 3c7200bc5bd9ecdc2d9e95ac82e4e916
+101ms => 5380ms : [WEB] Ressources Applis poshprofil en 100ms
+194ms => 5574ms : Récupération des messages pour :xxx url=https://esterel.ihd.ac-nice.fr/xdesktop/api/messages id=08b9068d-59f0-4d06-a0fa-a29970efa62f
+2ms => 5576ms : => AJAX

#7 Mis à jour par Renaud Dussol il y a plus de 5 ans

  • Assigné à changé de Renaud Dussol à Christophe LEON

#8 Mis à jour par Renaud Dussol il y a plus de 5 ans

Tester en commentant plutôt le deuxième appel (au début de step3)

#9 Mis à jour par Christophe LEON il y a plus de 5 ans

  • Statut changé de En attente d'informations à Résolu
  • % réalisé changé de 0 à 100

#10 Mis à jour par Arnaud FORNEROT il y a plus de 5 ans

  • Version cible mis à Envole 5.12

#11 Mis à jour par Arnaud FORNEROT il y a plus de 5 ans

  • Statut changé de Résolu à Fermé

Formats disponibles : Atom PDF