Développement : Trop de niveaux de liens symboliques - Échec de la surveillance

J’obtiens cette erreur à chaque fois au démarrage

Je la « corrige » en faisant ceci :

find ~/src/discourse-repos/discourse/plugins/ -type l |xargs rm

Est-ce que ça n’arrive qu’à moi ?

Starting CSS change watcher
/home/pfaffman/.asdf/installs/ruby/3.3.8/lib/ruby/gems/3.3.0/gems/rb-inotify-0.11.1/lib/rb-inotify/watcher.rb:74:in `initialize': Too many levels of symbolic links - Failed to watch "/h\nome/pfaffman/src/discourse-repos/discourse/plugins/chat/public/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840\nf2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e423\n7ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca\n50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3\nc9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1\nb1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/833426b67385a5876ca0e17e82fe3571/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f\n2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237\nade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/833426b67385a5876ca0e17e82

Ce sous-dossier dans le dossier /public/ du plugin de chat ne devrait pas être là. Vous pouvez le supprimer. (Il n’est pas dans le dépôt git.)

1 « J'aime »

Je le supprime à chaque fois en utilisant la commande find ci-dessus. Il est créé automatiquement. Je ne sais pas ce qui le crée ni pourquoi.

Le problème avec la commande find ci-dessus est qu’elle supprime également les plugins que j’essaie de développer et qui sont liés symboliquement à d’autres endroits du système de fichiers.

Hmm… Je n’ai pas vu ça localement. Vous exécutez votre serveur local comme environnement de développement, n’est-ce pas, pas en production ?

Peut-être qu’il y a un gem/plugin spécifique qui en est responsable… une façon de le savoir est d’exécuter votre instance Discourse locale avec rien d’autre que les plugins principaux et d’ajouter d’autres plugins un par un jusqu’à ce que vous trouviez celui qui cause ce comportement. (Si c’est un plugin… pas sûr que ce soit le cas, ça vaut le coup d’essayer.)

Oui, c’est une installation de développement sous Linux.

La commande find supprime tous les plugins. Je suppose que quelque chose les crée pour une raison quelconque et qu’ils restent quand j’appuie sur ^C pour arrêter le serveur.

EDIT : Voici le find qui ne supprime pas les plugins :

find plugins/ -type l | grep public | xargs rm -v

Je n’ai rien de tel dans les répertoires public/ des plugins non plus.

Où pointe le lien symbolique ? Des indices sur ce à quoi il pourrait servir ?

OMG. Alors j’ai encore un bizarre fantôme dans la machine ? :crying_cat:

Ils pointent tous vers leur parent – public. Je n’ai aucune idée de ce qu’ils pourraient être. Ils ont juste commencé à apparaître il y a quelques semaines.

 (main) pfaffman@noreno:~/src/discourse-repos/discourse/plugins$ find . -type l|xargs ls -dl
lrwxrwxrwx 1 pfaffman pfaffman 64 Nov 11 11:22 ./chat/public/1d52c770cd80e083a3718789d1605413 -> /home/pfaffman/src/discourse-repos/discourse/plugins/chat/public
lrwxrwxrwx 1 pfaffman pfaffman 72 Nov 11 11:22 ./discourse-ai/public/b40846a97cdbd0274c3dd7eb54988250 -> /home/pfaffman/src/discourse-repos/discourse/plugins/discourse-ai/public
lrwxrwxrwx 1 pfaffman pfaffman 78 Nov 11 11:22 ./discourse-graphviz/public/b8f3dbf1fd6ee55e3c23d77c83be2c05 -> /home/pfaffman/src/discourse-repos/discourse/plugins/discourse-graphviz/public
lrwxrwxrwx 1 pfaffman pfaffman 73 Nov 11 11:22 ./discourse-lti/public/84caf37dcddbb7cf6a217ab898027cfb -> /home/pfaffman/src/discourse-repos/discourse/plugins/discourse-lti/public
lrwxrwxrwx 1 pfaffman pfaffman 74 Nov 11 11:22 ./discourse-math/public/e38b84b0cb39c3d5b97724bc8b4b6f2f -> /home/pfaffman/src/discourse-repos/discourse/plugins/discourse-math/public
lrwxrwxrwx 1 pfaffman pfaffman 83 Nov 11 11:22 ./discourse-narrative-bot/public/32819192a75a2ed5cbca7f9ba15601cb -> /home/pfaffman/src/discourse-repos/discourse/plugins/discourse-narrative-bot/public
lrwxrwxrwx 1 pfaffman pfaffman 77 Nov 11 11:22 ./discourse-patreon/public/8de4d88071a4dddf83fff5390605465f -> /home/pfaffman/src/discourse-repos/discourse/plugins/discourse-patreon/public
lrwxrwxrwx 1 pfaffman pfaffman 51 Nov 11 11:22 ./discourse-pfaffmanager -> /home/pfaffman/src/pfaffman/discourse-pfaffmanager/
lrwxrwxrwx 1 pfaffman pfaffman 70 Nov 11 11:22 ./styleguide/public/a8a42b154ba5868280256ba6040a2119 -> /home/pfaffman/src/discourse-repos/discourse/plugins/styleguide/public

Et maintenant j’ai ça :

find plugins/ -type l | grep public | xargs rm -v
#~/.kill_ember
# NOTE: you have to change the order, not comment them out!
UNICORN_WORKERS=1 \
UNICORN_SIDEKIQS=0 \
DISCOURSE_DEV_ALLOW_ANON_TO_IMPERSONATE=1 \
DISCOURSE_MAXMIND_LICENSE_KEY=zLjQgCjCmGeguCIy \
DISCOURSE_DISCOURSE_SUBSCRIPTIONS_SECRET_KEY=sk_test \
DISCOURSE_DISCOURSE_SUBSCRIPTIONS_PUBLIC_KEY=pk_test \
DISCOURSE_DISCOURSE_SUBSCRIPTIONS_SECRET_KEY=sk_live \
DISCOURSE_DISCOURSE_SUBSCRIPTIONS_PUBLIC_KEY=pk_live \
DISCOURSE_DISCOURSE_SUBSCRIPTIONS_ENABLED=true \
DISCOURSE_DISCOURSE_SUBSCRIPTIONS_EXTRA_NAV_SUBSCRIBE=true \
DISCOURSE_S3_ACCESS_KEY_ID=6ZA6XODWYCA3ALIZB2CA \
DISCOURSE_S3_SECRET_ACCESS_KEY="x" \
DISCOURSE_S3_BACKUP_BUCKET="buck" \
DISCOURSE_BACKUP_LOCATION="s3" \
DISCOURSE_S3_ENDPOINT="https://sfo3.digitaloceanspaces.com" \
DISCOURSE_S3_REGION=whatever \
DISCOURSE_FORCE_HTTPS=false \
DISCOURSE_TITLE="Staging/development" \
timeout --foreground -k 15s 60m $COMMAND $*

Et d’une manière ou d’une autre, ça ne fonctionne plus. J’obtiens ceci :

Going to run: /home/pfaffman/src/discourse-repos/discourse/bin/rails s
removed 'plugins/chat/public/a5ae10937f40d49cff9c68ff76a72d99'
removed 'plugins/discourse-math/public/f25cafd9c7e5954c858294d80efdacb3'
removed 'plugins/discourse-graphviz/public/f7ab86524adec9500bf4dec9e95694cd'
removed 'plugins/discourse-lti/public/46a2de0d0a87b37acf83d5ee2143484e'
removed 'plugins/discourse-ai/public/e07e3c8844bc668fb0588b87e14d1e6f'
removed 'plugins/discourse-patreon/public/72ee56353e75ed5d55eb95397e84a355'
removed 'plugins/styleguide/public/1f55952c7d509e59355ec6b46cca8f6d'
removed 'plugins/discourse-narrative-bot/public/454d4eb93f5174651ee8ea306ed4be4c'
I, [2025-11-11T13:52:36.976738 #613360]  INFO -- : Refreshing Gem list
Starting CSS change watcher
<internal:dir>:184:in `open': Too many levels of symbolic links @ dir_initialize - /home/pfaffman/src/discourse-repos/discourse/plugins/discourse-math/public/89122751ccaa836c9ede2b5bb5b
917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa83
6c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2
b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2
b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751
ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b9
17df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836
c9ede2b5bb5b917df/mathjax/jax/output/SVG/fonts/Latin-Modern/NonUnicode/Regular (Errno::ELOOP)

Donc, il supprime l’un de ces fichiers, mais en crée un autre ?

ask.discourse.org dit

J’essaie d’utiliser bin/dev au lieu de ember-cli et bin/rails s. Cela semble avoir résolu le dernier problème, mais quitter avec ^c laisse toujours ces liens symboliques derrière.

Je ne comprends pas pourquoi personne d’autre n’a ce problème.