Questions sur myPads/etherpad

Bonjour,

j’essaie de mettre à jour avec la dernière version d’etherpad 1.8.13 mais il semble que mypads (1.7.20) n’accède plus à la base de données. De plus l’accès de l’utilisateur admin retourne une erreur de mot de passe alors que l’admin d’etherpad fonctionne. Une idée de où chercher ? serait-ce lié à la màj d’express, uber ? autre chose ?
Merci

Voilà qui est étrange car nous avons sorti la version 1.7.20 justement pour la version 1.8.13 d’Etherpad :thinking:
De plus, nous avons mis à jour nos instances la semaine dernière vers ces versions et cela fonctionne parfaitement.

Quelle est votre base de données ? PostgreSQL ? MySQL ? Est-ce que vous pourriez modifier le logLevel à DEBUG, relancer Etherpad et nous donner le contenu du log d’Etherpad ?

J’utilise MariaDB, je suis reparti du clone d’etherpad-lite en installant uniquement mypads mais en conservant ma BD qui fonctionnait avec etherpad-lite 1.8.7.

Voici le debug, mais rien de particulier n’est affiché:

$ sh src/bin/run.sh 
Ensure that all dependencies are up to date...  If this is the first time you have run Etherpad please be patient.
npm WARN prepare removing existing node_modules/ before installation
added 415 packages in 4.466s
Clearing minified cache...
Starting Etherpad...
[2021-05-17 14:02:07.825] [DEBUG] console - Running on Node v14.16.0 (minimum required Node version: 10.17.0)
[2021-05-17 14:02:07.833] [INFO] console - All relative paths will be interpreted relative to the identified Etherpad base dir: /home/esco/etherpad-lite
[2021-05-17 14:02:07.834] [DEBUG] AbsolutePaths - Relative path "settings.json" can be rewritten to "/home/esco/etherpad-lite/settings.json"
[2021-05-17 14:02:07.834] [DEBUG] AbsolutePaths - Relative path "credentials.json" can be rewritten to "/home/esco/etherpad-lite/credentials.json"
[2021-05-17 14:02:07.845] [INFO] console - settings loaded from: /home/esco/etherpad-lite/settings.json
[2021-05-17 14:02:07.846] [INFO] console - No credentials file found in /home/esco/etherpad-lite/credentials.json. Ignoring.
[2021-05-17 14:02:07.847] [INFO] console - Using skin "colibris" in dir: /home/esco/etherpad-lite/src/static/skins/colibris
[2021-05-17 14:02:07.847] [DEBUG] AbsolutePaths - Relative path "./SESSIONKEY.txt" can be rewritten to "/home/esco/etherpad-lite/SESSIONKEY.txt"
[2021-05-17 14:02:07.847] [INFO] console - Session key loaded from: /home/esco/etherpad-lite/SESSIONKEY.txt
[2021-05-17 14:02:07.848] [INFO] console - Random string used for versioning assets: 1feffb96
[2021-05-17 14:02:08.029] [DEBUG] runCmd - Executing command: npm --version
[2021-05-17 14:02:08.029] [DEBUG] runCmd - cwd: /home/esco/etherpad-lite
[2021-05-17 14:02:08.030] [DEBUG] runCmd - PATH=/home/esco/etherpad-lite/src/node_modules/.bin:/home/esco/etherpad-lite/node_modules/.bin:/home/esco/.nvm/versions/node/v14.16.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
[2021-05-17 14:02:08.037] [INFO] server - Starting Etherpad...
[2021-05-17 14:02:08.077] [INFO] plugins - Running npm to get a list of installed plugins...
[2021-05-17 14:02:08.077] [DEBUG] runCmd - Executing command: npm ls --long --json --depth=0 --no-production
[2021-05-17 14:02:08.077] [DEBUG] runCmd - cwd: /home/esco/etherpad-lite
[2021-05-17 14:02:08.078] [DEBUG] runCmd - PATH=/home/esco/etherpad-lite/src/node_modules/.bin:/home/esco/etherpad-lite/node_modules/.bin:/home/esco/.nvm/versions/node/v14.16.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
[2021-05-17 14:02:08.210] [DEBUG] runCmd - Command returned successfully: npm --version
[2021-05-17 14:02:08.210] [INFO] plugins - npm --version: 6.14.11
[2021-05-17 14:02:11.437] [DEBUG] runCmd - Command returned successfully: npm ls --long --json --depth=0 --no-production
[2021-05-17 14:02:11.441] [INFO] plugins - Loading plugin ep_etherpad-lite...
[2021-05-17 14:02:11.441] [INFO] plugins - Loading plugin ep_mypads...
[2021-05-17 14:02:11.442] [INFO] plugins - Loaded 2 plugins
[2021-05-17 14:02:11.683] [DEBUG] AbsolutePaths - Relative path "./APIKEY.txt" can be rewritten to "/home/esco/etherpad-lite/APIKEY.txt"
[2021-05-17 14:02:11.683] [INFO] APIHandler - Api key file read from: "/home/esco/etherpad-lite/APIKEY.txt"
[2021-05-17 14:02:11.734] [DEBUG] server - Removing SIGINT listener because it might interfere with shutdown tasks. Function code:
() => terminateWorkersAndMaster()
Current stack:
    at removeSignalListener (/home/esco/etherpad-lite/src/node/server.js:77:36)
    at process.<anonymous> (/home/esco/etherpad-lite/src/node/server.js:134:9)
    at process.emit (events.js:327:22)
    at process.EventEmitter.emit (domain.js:467:12)
    at _addListener (events.js:358:14)
    at process.addListener (events.js:406:10)
    at addListener (/home/esco/etherpad-lite/src/node_modules/wtfnode/index.js:286:30)
    at process.Cls.<computed> [as on] (/home/esco/etherpad-lite/src/node_modules/wtfnode/index.js:308:27)
    at initWorkerThreadsWorker (/home/esco/etherpad-lite/src/node_modules/threads/dist/master/implementation.node.js:134:13)
    at selectWorkerImplementation (/home/esco/etherpad-lite/src/node_modules/threads/dist/master/implementation.node.js:219:16)
[2021-05-17 14:02:11.735] [DEBUG] server - Removing SIGTERM listener because it might interfere with shutdown tasks. Function code:
() => terminateWorkersAndMaster()
Current stack:
    at removeSignalListener (/home/esco/etherpad-lite/src/node/server.js:77:36)
    at process.<anonymous> (/home/esco/etherpad-lite/src/node/server.js:134:9)
    at process.emit (events.js:327:22)
    at process.EventEmitter.emit (domain.js:467:12)
    at _addListener (events.js:358:14)
    at process.addListener (events.js:406:10)
    at addListener (/home/esco/etherpad-lite/src/node_modules/wtfnode/index.js:286:30)
    at process.Cls.<computed> [as on] (/home/esco/etherpad-lite/src/node_modules/wtfnode/index.js:308:27)
    at initWorkerThreadsWorker (/home/esco/etherpad-lite/src/node_modules/threads/dist/master/implementation.node.js:135:13)
    at selectWorkerImplementation (/home/esco/etherpad-lite/src/node_modules/threads/dist/master/implementation.node.js:219:16)
[2021-05-17 14:02:11.753] [INFO] server - Installed plugins: ep_mypads@1.7.20
[2021-05-17 14:02:11.753] [DEBUG] server - Installed parts:
ep_mypads/ep_mypads
ep_etherpad-lite/openapi
ep_etherpad-lite/adminsettings
ep_etherpad-lite/adminplugins
ep_etherpad-lite/admin
ep_etherpad-lite/tests
ep_etherpad-lite/socketio
ep_etherpad-lite/errorhandling
ep_etherpad-lite/importexport
ep_etherpad-lite/apicalls
ep_etherpad-lite/webaccess
ep_etherpad-lite/padreadonly
ep_etherpad-lite/padurlsanitize
ep_etherpad-lite/specialpages
ep_etherpad-lite/i18n
ep_etherpad-lite/stats
ep_etherpad-lite/static
ep_etherpad-lite/express
ep_etherpad-lite/Minify
ep_etherpad-lite/DB
[2021-05-17 14:02:11.767] [DEBUG] server - Installed server-side hooks:
  createServer:
    ep_etherpad-lite:
      express: ep_etherpad-lite/node/hooks/express
  expressCloseServer:
    ep_etherpad-lite:
      socketio: ep_etherpad-lite/node/hooks/express/socketio
  expressConfigure:
    ep_etherpad-lite:
      webaccess: ep_etherpad-lite/node/hooks/express/webaccess
    ep_mypads:
      ep_mypads: ep_mypads/hooks:expressConfigure
  expressCreateServer:
    ep_etherpad-lite:
      admin: ep_etherpad-lite/node/hooks/express/admin
      adminplugins: ep_etherpad-lite/node/hooks/express/adminplugins
      adminsettings: ep_etherpad-lite/node/hooks/express/adminsettings
      apicalls: ep_etherpad-lite/node/hooks/express/apicalls
      errorhandling: ep_etherpad-lite/node/hooks/express/errorhandling
      i18n: ep_etherpad-lite/node/hooks/i18n
      importexport: ep_etherpad-lite/node/hooks/express/importexport
      openapi: ep_etherpad-lite/node/hooks/express/openapi
      padreadonly: ep_etherpad-lite/node/hooks/express/padreadonly
      padurlsanitize: ep_etherpad-lite/node/hooks/express/padurlsanitize
      socketio: ep_etherpad-lite/node/hooks/express/socketio
      specialpages: ep_etherpad-lite/node/hooks/express/specialpages
      static: ep_etherpad-lite/node/hooks/express/static
      tests: ep_etherpad-lite/node/hooks/express/tests
  init_ep_mypads:
    ep_mypads:
      ep_mypads: ep_mypads/hooks:init
  pluginUninstall:
    ep_mypads:
      ep_mypads: ep_mypads/hooks:removeAllData
  restartServer:
    ep_etherpad-lite:
      express: ep_etherpad-lite/node/hooks/express
  shutdown:
    ep_etherpad-lite:
      DB: ep_etherpad-lite/node/db/DB
      express: ep_etherpad-lite/node/hooks/express
      Minify: ep_etherpad-lite/node/utils/Minify
      stats: ep_etherpad-lite/node/stats
  socketio:
    ep_etherpad-lite:
      adminplugins: ep_etherpad-lite/node/hooks/express/adminplugins
      adminsettings: ep_etherpad-lite/node/hooks/express/adminsettings
      socketio: ep_etherpad-lite/node/handler/PadMessageHandler
[2021-05-17 14:02:11.770] [INFO] console - Report bugs at https://github.com/ether/etherpad-lite/issues
[2021-05-17 14:02:11.771] [INFO] console - Your Etherpad version is 1.8.13 (5db0c8d)
[2021-05-17 14:02:12.553] [INFO] http - HTTP server listening for connections
[2021-05-17 14:02:12.554] [INFO] console - You can access your Etherpad instance at http://0.0.0.0:9001/
[2021-05-17 14:02:12.554] [INFO] console - The plugin admin page is at http://0.0.0.0:9001/admin/plugins
[2021-05-17 14:02:12.554] [INFO] server - Etherpad is running
[2021-05-17 14:02:12.556] [INFO] console - Initializing user cache...
[2021-05-17 14:02:12.558] [INFO] console - User cache initialized!

Je ne vois pas d’erreur, y a juste ça qui m’interpelle :

Mais ça n’a pas l’air d’être un truc qui plante (plutôt une espèce de warning).

Faudrait faire quelques manipulations sur MyPads et poster le log afférent.

J’ai cru que ça pouvait être dû à la version de Node, mais on teste ep_mypads de Node 8 à 14, donc ça ne doit pas être ça.

Alors oui effectivement j’ai oublié de coller la partie concernant mypads. Le message d’erreur quand j’essaie de me connecter en admin est " Erreur l’utilisateur n’a pas été trouvé " et c’est ce qui me semble étrange car je ne créé que le user admin à partir du fichier settings.json, et sur cette partie le module a changé mais pas la méthode de conf, à part si on utilise ep_hash_auth_plugin à priori (mais pas installé).

[2021-05-17 14:06:18.891] [DEBUG] SessionStore - GET BS-u7BsTdyPekGStcH5A48Pz5ylUQPIR
[2021-05-17 14:06:18.894] [DEBUG] ueberDB - GET    - sessionstorage:BS-u7BsTdyPekGStcH5A48Pz5ylUQPIR - {"cookie":{"path":"/","_expires":null,"originalMaxAge":null,"httpOnly":true,"sameSite":"None","secure":true},"passport":{}} - from database 
[2021-05-17 14:06:18.906] [DEBUG] http - 200, GET /mypads/?/admin
[2021-05-17 14:06:18.907] [ERROR] console - (node:6691) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated
(Use `node --trace-deprecation ...` to show where the warning was created)

En complément au départ j’avais fait la màj de npm, mais je suis revenu sur la version indiquée dans la package.json pour éviter les pbs (car sinon le serveur ne start pas)

Je vois que tu utilises nvm. Est-ce que tu pourrais essayer avec Node 12 à la place de 14, s’il-te-plaît ? Et/ou ajouter --trace-deprecation dans src/bin/run.sh , histoire de voir d’où vient exactement l’erreur ?

C’est ce que j’étais en train de voir au final, sinon voici ce que retourne le --trace-deprecation avec la version actuelle de node:

2021-05-17 15:12:24.945] [ERROR] console - (node:7242) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated
    at assemble_tokens (/home/esco/etherpad-lite/src/node_modules/log4js/lib/connect-logger.js:163:12)
    at ServerResponse.<anonymous> (/home/esco/etherpad-lite/src/node_modules/log4js/lib/connect-logger.js:91:33)
    at ServerResponse.emit (events.js:327:22)
    at ServerResponse.EventEmitter.emit (domain.js:467:12)
    at onFinish (_http_outgoing.js:766:10)
    at callback (internal/streams/writable.js:513:21)
    at afterWrite (internal/streams/writable.js:466:5)
    at afterWriteTick (internal/streams/writable.js:453:10)
    at processTicksAndRejections (internal/process/task_queues.js:79:21)

bon exactement les mêmes logs à part:

Bon, clairement, cette erreur-là ne vient pas de mypads.

Tu as aussi l’erreur de dépréciation ?

Question : est-ce que tu as des erreurs dans la console javascript de ton navigateur ?

Bon j’ai un problème ça a fini par tomber en marche et je ne sais pas exactement pourquoi…

je regarde plus en détail… Merci pour l’aide en tout cas

le problème de ep_mypads venait peut-être du fait que je l’avais installé à partir d’un chemin en local, je me demande comment ça peut fonctionner comme décrit dans la doc dans ce cas ?

Je ne vois pas trop en quoi la méthode d’installation pourrait changer quoi que ce soit… surtout si ça a fini par fonctionner :thinking:

Bon je confirme, je suis obligé de faire un npm install ep_mypads, l’install via npm install /path/to/clone ne fonctionne pas. un pb de compatibilité dans les permissions des modules de ep_mypads j’ai l’impression

je ne sais pas ce qu’il se passe je ne peux pas installer un quelconque plugin maintenant…

de ce que j’ai compris c’est normal car c’est maintenant dans le répertoire src

Bonjour,

pour tenir informé, c’est le npm uninstall qui devait poser problème je ne dois pas passer les bons paramètres pour éviter le save… En tout cas après le uninstall d’un plugin je ne pouvais plus du tout installer un seul plugin.

Autre chose, une idée comme ça, pensez vous qu’il serait possible de sortir ep_mypads d’etherpad ? Pour avoir une appli autonome, cela permettrait de gérer plus facilement les version d’etherpad sans ce soucir de la version de mypads et de ses compatibilités. On pourrait aussi et surtout gérer potentiellement plusieurs backend d’etherpads, un peu comme ce qu’à fait John Mc Lear en POC avec ça: GitHub - ether/etherpad-proxy: Very basic example of a proxy for Etherpad SocketIO messages
Et bien d’autres fonctionnalités pourraient suivre…

Merci

Aucune idée, mais en tout cas, ce ne serait pas Framasoft qui s’en occuperait si c’était possible : on ne fait plus que de la maintenance sur mypads, on ne développe plus de fonctionnalités.

OK, ça pourrait être une contribution aussi…

Bonjour,

Je suis désolé, mais je ne retrouve plus la façon de faire pour restaurer un pad supprimé. J’ai retrouvé le pad dans le dossier des deleted sous etherpad, mais je ne retrouve plus comment faire pour le ré-intégrer ?

PS: j’ai voulu faire l’import en HTML mais j’ai une belle erreur qui me dit de copier/coller et en copier/coller je n’ai pas d’interpretation de la source.

Merci par avance.