Haupttag teilt denselben Namen und dieselbe URL mit einem Synonym

Dies betrifft einen bestimmten Tag, der ein Synonym hat, aber noch nie verwendet wurde.

Der Name und die URL des Haupttags und des Synonyms waren identisch.

Screenshot

  1. Er wird nicht auf der tags-Seite und der tag_groups-Seite angezeigt, taucht aber in der Suche auf und kann über einen direkten Link erreicht werden.

  2. Der Haupttag kann umbenannt werden, aber das Synonym ändert sich ebenfalls.

    Screenshot

  3. Beim Versuch, den Haupttag zu löschen:

    Entschuldigung, ein Fehler ist aufgetreten.

  4. Synonym entfernen:

    429-Fehler

  5. Synonym löschen:

    500-Fehler

Konsole

Meldung (3-mal gemeldet)
ActiveRecord::RecordInvalid (Validierung fehlgeschlagen: Ziel-Tag ist nicht erlaubt, solange Synonyme existieren)
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/validations.rb:80:in `raise_validation_error'
Backtrace
activerecord-6.0.3.1/lib/active_record/validations.rb:80:in `raise_validation_error'
activerecord-6.0.3.1/lib/active_record/validations.rb:53:in `save!'
activerecord-6.0.3.1/lib/active_record/transactions.rb:318:in `block in save!'
activerecord-6.0.3.1/lib/active_record/transactions.rb:375:in `block in with_transaction_returning_status'
activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/database_statements.rb:278:in `transaction'
activerecord-6.0.3.1/lib/active_record/transactions.rb:212:in `transaction'
activerecord-6.0.3.1/lib/active_record/transactions.rb:366:in `with_transaction_returning_status'
activerecord-6.0.3.1/lib/active_record/transactions.rb:318:in `save!'
activerecord-6.0.3.1/lib/active_record/suppressor.rb:48:in `save!'
activerecord-6.0.3.1/lib/active_record/persistence.rb:635:in `block in update!'
activerecord-6.0.3.1/lib/active_record/transactions.rb:375:in `block in with_transaction_returning_status'
activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `block in transaction'
activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction'
activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
activesupport-6.0.3.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/transaction.rb:278:in `within_new_transaction'
activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `transaction'
activerecord-6.0.3.1/lib/active_record/transactions.rb:212:in `transaction'
activerecord-6.0.3.1/lib/active_record/transactions.rb:366:in `with_transaction_returning_status'
activerecord-6.0.3.1/lib/active_record/persistence.rb:633:in `update!'
/var/www/discourse/app/controllers/tags_controller.rb:317:in `destroy_synonym'
actionpack-6.0.3.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack-6.0.3.1/lib/abstract_controller/base.rb:195:in `process_action'
actionpack-6.0.3.1/lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack-6.0.3.1/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport-6.0.3.1/lib/active_support/callbacks.rb:135:in `run_callbacks'
actionpack-6.0.3.1/lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack-6.0.3.1/lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack-6.0.3.1/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
activesupport-6.0.3.1/lib/active_support/notifications.rb:180:in `block in instrument'
activesupport-6.0.3.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport-6.0.3.1/lib/active_support/notifications.rb:180:in `instrument'
actionpack-6.0.3.1/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
actionpack-6.0.3.1/lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
activerecord-6.0.3.1/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack-6.0.3.1/lib/abstract_controller/base.rb:136:in `process'
actionview-6.0.3.1/lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler-2.0.2/lib/mini_profiler/profiling_methods.rb:104:in `block in profile_method'
actionpack-6.0.3.1/lib/action_controller/metal.rb:190:in `dispatch'
actionpack-6.0.3.1/lib/action_controller/metal.rb:254:in `dispatch'
actionpack-6.0.3.1/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack-6.0.3.1/lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack-6.0.3.1/lib/action_dispatch/journey/router.rb:49:in `block in serve'
actionpack-6.0.3.1/lib/action_dispatch/journey/router.rb:32:in `each'
actionpack-6.0.3.1/lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack-6.0.3.1/lib/action_dispatch/routing/route_set.rb:834:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
rack-2.2.2/lib/rack/tempfile_reaper.rb:15:in `call'
rack-2.2.2/lib/rack/conditional_get.rb:40:in `call'
rack-2.2.2/lib/rack/head.rb:12:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:318:in `call'
rack-2.2.2/lib/rack/session/abstract/id.rb:266:in `context'
rack-2.2.2/lib/rack/session/abstract/id.rb:260:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/cookies.rb:648:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport-6.0.3.1/lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack-6.0.3.1/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
logster-2.9.0/lib/logster/middleware/reporter.rb:43:in `call'
railties-6.0.3.1/lib/rails/rack/logger.rb:37:in `call_app'
railties-6.0.3.1/lib/rails/rack/logger.rb:28:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:19:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:31:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:22:in `call'
rack-2.2.2/lib/rack/method_override.rb:24:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
rack-2.2.2/lib/rack/sendfile.rb:110:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/host_authorization.rb:76:in `call'
rack-mini-profiler-2.0.2/lib/mini_profiler/profiler.rb:312:in `call'
message_bus-3.3.1/lib/message_bus/rack/middleware.rb:61:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:176:in `call'
railties-6.0.3.1/lib/rails/engine.rb:527:in `call'
railties-6.0.3.1/lib/rails/railtie.rb:190:in `public_send'
railties-6.0.3.1/lib/rails/railtie.rb:190:in `method_missing'
rack-2.2.2/lib/rack/urlmap.rb:74:in `block in call'
rack-2.2.2/lib/rack/urlmap.rb:58:in `each'
rack-2.2.2/lib/rack/urlmap.rb:58:in `call'
unicorn-5.5.5/lib/unicorn/http_server.rb:605:in `process_client'
unicorn-5.5.5/lib/unicorn/http_server.rb:701:in `worker_loop'
unicorn-5.5.5/lib/unicorn/http_server.rb:548:in `spawn_missing_workers'
unicorn-5.5.5/lib/unicorn/http_server.rb:144:in `start'
unicorn-5.5.5/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `<main>'

Discourse Version 2.6.0.beta1 (69803599a9)