Разработка: Слишком много уровней символических ссылок — не удалось отслеживать

Я постоянно получаю эту ошибку при запуске.

Я «исправляю» её так:

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

Это только у меня?

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
ome/pfaffman/src/discourse-repos/discourse/plugins/chat/public/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840
f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237
ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca
50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3
c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1
b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/833426b67385a5876ca0e17e82fe3571/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f
2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237ade4d3c9b840f2f23ca50/41a1b1e4237
ade4d3c9b840f2f23ca50/833426b67385a5876ca0e17e82fe3571/833426b67385a5876ca0e17e82fe3571" (Errno::ELOOP)

Эта подпапка в папке /public/ плагина чата не должна там находиться. Вы можете её удалить. (Её нет в репозитории git.)

Я удаляю его каждый раз с помощью команды find выше. Он создается автоматически. Я не знаю, что его создает и почему.

Проблема с командой find выше в том, что она также удаляет плагины, которые я пытаюсь разработать и которые связаны символическими ссылками с другими местами в файловой системе.

После запуска /home/pfaffman/src/discourse-repos/discourse/bin/rails s

я получаю

 pfaffman@noreno:~$ ls src/discourse-repos/discourse/plugins/*/public
src/discourse-repos/discourse/plugins/chat/public:
audio/  eff5d31d03426e7f2054139cb53042d4@  images/

src/discourse-repos/discourse/plugins/discourse-ai/public:
1cb246c16b035c9e463bf6fc8b6d4176@  ai-share/

src/discourse-repos/discourse/plugins/discourse-graphviz/public:
dc299010dcd0e5cf5f674c50d5f33593@  javascripts/

src/discourse-repos/discourse/plugins/discourse-lti/public:
6cbe534897806e90f51c3cff74d87e8d@  javascripts/

src/discourse-repos/discourse/plugins/discourse-math/public:
f3dc93c6d5ed9d6b254a390ac5b0ce37@  katex/  mathjax/

src/discourse-repos/discourse/plugins/discourse-narrative-bot/public:
f720bcf81288c472669dfb9740d34071@  fonts/  images/

src/discourse-repos/discourse/plugins/discourse-patreon/public:
2b3dbcc0f3712546cb1ae9e5f69199d8@  images/

src/discourse-repos/discourse/plugins/styleguide/public:
8f0aefa3699cbccf8652eb5d0aee4033@  images/
 pfaffman@noreno:~$

Хм… Я не сталкивался с этим локально. Вы запускаете свой локальный сервер как среду разработки, верно, а не как продакшн?

Возможно, за это отвечает какой-то конкретный гем или плагин… Один из способов выяснить это — запустить ваш локальный экземпляр Discourse только с основными плагинами, а затем добавлять другие по одному, пока не найдёте тот, который вызывает такое поведение. (Если это плагин… не уверен, что это так, но попробовать стоит.)

Да, это установка для разработки на Linux.

Команда find удаляет все плагины. Я предполагаю, что по какой-то причине они создаются заново, и когда я прерываю сервер с помощью ^C, они остаются.

РЕДАКТИРОВАНИЕ: Вот команда find, которая не удаляет плагины:

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

У меня в директориях public/ плагина тоже ничего подобного нет.

Куда ведут эти странные символические ссылки? Есть какие-то подсказки, для чего они могут быть нужны?

О боже. Значит, у меня снова какой-то странный призрак в машине? :crying_cat:

Все они указывают обратно на своего родителя — public. Я понятия не имею, для чего они могут быть нужны. Они начали появляться всего несколько недель назад.

 (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

А теперь у меня вот что:

find plugins/ -type l | grep public | xargs rm -v
#~/.kill_ember
# ПРИМЕЧАНИЕ: нужно изменить порядок, а не закомментировать их!
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 $*

И каким-то образом это больше не работает. Я получаю следующее:

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/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b
917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/8
9122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751
ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836c9ede2b5bb5b917df/89122751ccaa836
c9ede2b5bb5b917df/mathjax/jax/output/SVG/fonts/Latin-Modern/NonUnicode/Regular (Errno::ELOOP)

Получается, оно удаляет один из этих файлов, а затем создаёт другой?

На ask.discourse.org написано:

Я пробую использовать bin/dev вместо обоих ember-cli и bin/rails s. Похоже, это решило последнюю проблему, но при выходе с помощью ^c эти символические ссылки всё равно остаются.

Не понимаю, почему у других нет такой проблемы.