[Cozy Banks] Développement konnector Bankin'


#21

Malheureusement le log n’est pas très utile, puisqu’il n’y a pas la call stack… :upside_down_face:

Aug 20 22:13:17 sd-47961 cozy[22943]: time="2019-08-20T22:13:17+02:00" level=debug msg="Found #3589 operations before filtering" domain=moncozy.local job_id=330fba7a4475066a7f80f69c7f0ed503 nspace=jobs slug=bankin worker_id=konnector/3
Aug 20 22:13:17 sd-47961 cozy[22943]: time="2019-08-20T22:13:17+02:00" level=debug msg="Found #1862 operations after filtering" domain=moncozy.local job_id=330fba7a4475066a7f80f69c7f0ed503 nspace=jobs slug=bankin worker_id=konnector/3
Aug 20 22:13:17 sd-47961 cozy[22943]: time="2019-08-20T22:13:17+02:00" level=debug msg="request: POST cozy6f24cd18535faa406bdb84da7f77671f%2Fio-cozy-permissions/_find {\"selector\":{\"$and\":[{\"type\":\"konnector\"},{\"source_id\":\"io.cozy.konnectors/bankin\"}]},\"use_index\":\"by-source-and-type\",\"limit\":1}" domain=moncozy.local nspace=couchdb
Aug 20 22:13:17 sd-47961 cozy[22943]: time="2019-08-20T22:13:17+02:00" level=debug msg="response: {\"docs\":[\r\n{\"_id\":\"330fba7a4475066a7f80f69c7f021432\",\"_rev\":\"8-3607d4ea2fd80269f37a2d0cf79cea6d\",\"type\":\"konnector\",\"source_id\":\"io.cozy.konnectors/bankin\",\"permissions\":{\"referenced folders\":{\"type\":\"io.cozy.files\",\"description\":\"folders referenced by the konnector\",\"selector\":\"referenced_by\",\"values\":[\"io.cozy.konnectors/bankin\"]},\"saveFolder\":{\"type\":\"io.cozy.files\",\"verbs\":[\"GET\",\"POST\",\"PATCH\"],\"values\":[\"330fba7a4475066a7f80f69c7f023335\"]},\"bank.accounts\":{\"type\":\"io.cozy.bank.accounts\",\"description\":\"Required to save the list of bank accounts\"},\"bank.operations\":{\"type\":\"io.cozy.bank.operations\",\"description\":\"Required to save your bank operations\"},\"accounts\":{\"type\":\"io.cozy.accounts\",\"description\":\"Required to get the account's data\",\"verbs\":[\
"GET\"]},\"bank.balancehistories\":{\"type\":\"io.cozy.bank.balancehistories\",\"description\":\"Required to save balance histories\"}},\"cozyMetadata\":{\"doctypeVersion\":\"1\",\"metadataVersion\":1,\"createdAt\":\"2019-08-16T12:08:13.7
32655307+02:00\",\"createdByApp\":\"bankin\",\"createdByAppVersion\":\"1.1.0-beta.1\",\"updatedAt\":\"2019-08-20T20:31:00.229932073+02:00\",\"updatedByApps\":[{\"slug\":\"bankin\",\"date\":\"2019-08-16T12:08:13.732655935+02:00\",\"version\":\"1.1.0-beta.1\"},{\"slug\":\"home\",\"date\":\"2019-08-16T12:08:54.499298224+02:00\"}]}}\r\n],\r\n\"bookmark\": \"g1AAAAB9eJw9zMESQCAUheHGio29nScgSvE05iqNRHeGNjw9Ldj-Z76zEUKSJdEkPwMcwc3XqFFZvb-9ZIyaCSRwLjsqBEjTUyMGJQ1tG87a6NLPbfEpssJipfC-KofezyrgcdYTeGd9XLO_rusDSAUkHg\"}" domain=moncozy.local nspace=couchdb
Aug 20 22:13:17 sd-47961 cozy[22943]: time="2019-08-20T22:13:17+02:00" level=error msg="format is not a function" domain=moncozy.local job_id=330fba7a4475066a7f80f69c7f0ed503 nspace=jobs slug=bankin worker_id=konnector/3
Aug 20 22:13:17 sd-47961 cozy[22943]: time="2019-08-20T22:13:17+02:00" level=debug msg="Saving account data..." domain=moncozy.local job_id=330fba7a4475066a7f80f69c7f0ed503 nspace=jobs slug=bankin worker_id=konnector/3

Du coup l’erreur format is not a function intervient ici : https://github.com/konnectors/bankin/blob/master/src/index.js#L39

C’est quand même assez curieux car j’arrive à faire fonctionner le konnector en standalone et en dev (avec des bidouilles).


#22

Je rencontre malheureusement le même problème que toi @Naji sur les Konnectors Fortuneo & Boursorama. Je ne suis pas parvenu encore à identifier précisement la ligne où cela pose soucis…

J’ai l’impression que cela doit venir des dates vu que c’est le seul endroit où l’on fait appel à cette fonction. :confused:


#23

Ok, merci pour le retour, je suis sur le coup


#24

@Naji @orandin Le problème est résolu dans la version 4.22.1 de cozy-konnector-libs. C’est cozy-logger 1.5.0 le fautif. Je suis passé la version précédente sur cozy-konnector-libs et je suis en train de corriger le problème sur cozy-logger lui-même.

Il y a eu pas mal de travail de fond pendant l’été et ça cause quelques régressions, mais on devrait en voir le bout. Merci pour vos retours rapides en tous cas.


#25

Merci pour ta réactivité ! Pas de soucis, comme on dit “move fast and break things”.
Je viens de build une beta4 pour pouvoir essayer les changements ^^


#26

Je viens de build une beta4 pour pouvoir essayer les changements ^^

C’est validé


#27

@Naji tu es d’accords pour sortir une version stable pour tout le monde ?


#28

Désolé pour le retard de réponse, j’étais en vacances. :upside_down_face:
C’est presque prêt ! Le problème du logger a été corrigé avec la mise-à-jour des dépendances. Toutefois, j’ai l’impression que la sauvegarde en bulk des opérations prend beaucoup plus de temps qu’auparavant. Du coup j’ai cette erreur qui apparaît au bout d’un moment :

Sep 10 18:24:27 sd-47961 cozy[22943]: time="2019-09-10T18:24:27+02:00" level=info msg="Konnector failure: context deadline exceeded" account_id=330fba7a4475066a7f80f69c7f0348a5 domain=moncozy.local exec_time=10m0.163160601s job_id=330fba7a4475066a7f80f69c7f12d8b2 nspace=jobs slug=bankin version=1.2.1-f43fdbe2957bace439e7c96c5d5d400fd325bd44 worker_id=konnector/2
Sep 10 18:24:27 sd-47961 cozy[22943]: time="2019-09-10T18:24:27+02:00" level=error msg="error while performing job: context deadline exceeded" domain=moncozy.local job_id=330fba7a4475066a7f80f69c7f12d8b2 nspace=jobs worker_id=konnector/2 

Autrefois il fallait 15 secondes environ pour sauvegarder 2000 opérations, là c’est plus long. Est-ce qu’il faudrait que je mette en place un mécanisme pour ne pas re-sauvegarder les opérations déjà enregistrées ?


#29

Salut, j’étais pas en vacances mais sur d’autres sujets. Désolé pour le temps de réponse.

Je ne sais pas pourquoi le temps est si long effectivement.

Mails il est vrai que tu dois pouvoir limiter les opération sauvées au mois en cours par exemple.

Pour les opérations des mois précédents, le temps des connecteurs étant limité à 5 min, tu dois pouvoir les sauver par batch 100 par exemple et définir un timeout et finir l’exécution de ton connecteur de manière propre et retenter l’import des autres opérations à la prochaine exécution.

Pour ce qui est du temps d’exécution plus long, ça va être à nous de voir ce qui se passe je crois.

Bon courage

En attendant, ce que tu peux faire éventuellement c’est sauver les operations par batch de 100 et définir un timeout.
Les connecteurs disposent d’un temps limité pour s’exécuter (5min) donc tu peux déjà limiter les dégats de cette façon.


#30

Si @Naji arrive à faire un truc pour splitter l’import des opérations, ça m’intéresse : j’ai le même problème de timeout en utilisant le connecteur Fortuneo de @orandin, l’import de quelques années d’opérations prenant trop de temps.


#31

C’est sale mais comme vous hébergez vos propres serveurs, et avez peut-être moins de souci de partages de ressources, peut-être pouvez-vous simplement augmenter la durée maximale d’exécution autorisée des connecteurs. Je pense que ça se configure dans le fichier de configuration https://github.com/cozy/cozy-stack/blob/master/cozy.example.yaml#L136