discourse/spec
Alan Guo Xiang Tan d3625f2288
DEV: Preload all models schema cache before running system tests (#25008)
Why this change?

When running system tests with all official plugins installed, we have
encountered instances where the system tests will hang. When dumping the
backtraces of the threads, we can see that the main thread running the
tests is stuck in a deadlock with the puma thread while serving a
request.

The deadlock happens when the main thread acquires the `ActiveSupport::Concurrency::LoadInterlockAwareMonitor`
lock first in `ActiveRecord::ConnectionAdapters::AbstractAdapter` before acquring another `Monitor` lock in
`ActiveRecord::ModelSchema`. In the Puma thread, it acquires the
`Monitor` lock in `ActiveRecord::ModelSchema` first before acquring the
`ActiveSupport::Concurrency::LoadInterlockAwareMonitor` lock.

What does this change do?

To workaround this problem, we will preload all model schema cache
before running system tests such that the `Monitor` lock in `ActiveRecord::ModelSchema`
will not be acquired.
2023-12-22 08:40:02 +08:00
..
fabricators DEV: Fix various rubocop lints (#24749) 2023-12-06 23:25:00 +01:00
fixtures DEV: Fix various spec linting issues (#24672) 2023-12-04 13:45:19 +01:00
generator DEV: Custom generator for move setting from tl to groups (#24912) 2023-12-19 10:52:28 +11:00
helpers DEV: Use Discourse::SYSTEM_USER_ID in fixtures/009_users (#24743) 2023-12-07 09:04:45 +10:00
import_export DEV: Allow fab! without block (#24314) 2023-11-09 16:47:59 -06:00
initializers DEV: Allow fab! without block (#24314) 2023-11-09 16:47:59 -06:00
integration DEV: Convert min_trust_to_flag_posts setting to groups (#24864) 2023-12-13 17:18:42 +08:00
integrity Enable Embroider/Webpack code spliting for Wizard (#24919) 2023-12-20 13:15:06 +00:00
jobs DEV: Convert min_trust_to_flag_posts setting to groups (#24864) 2023-12-13 17:18:42 +08:00
lib FIX: correct typo minmin_trust_to_edit_wiki_post (#24999) 2023-12-22 08:39:42 +11:00
mailers DEV: Convert min_trust_level_to_allow_invite to groups (#24893) 2023-12-18 12:07:36 +08:00
migrations DEV: Switch over category settings to new table - Part 3 (#20657) 2023-09-12 09:51:49 +08:00
models FIX: Better infinite scrolling on categories page (#24831) 2023-12-18 16:46:09 +02:00
multisite DEV: Add S3 upload system specs using minio (#22975) 2023-08-23 11:18:33 +10:00
requests FIX: correct typo minmin_trust_to_edit_wiki_post (#24999) 2023-12-22 08:39:42 +11:00
script/import_scripts DEV: Allow fab! without block (#24314) 2023-11-09 16:47:59 -06:00
serializers DEV: Convert min_trust_to_flag_posts setting to groups (#24864) 2023-12-13 17:18:42 +08:00
services DEV: Convert min_trust_level_to_allow_user_card_background to groups (#24891) 2023-12-14 10:57:58 +08:00
support DEV: Remove the use of Capybara::Session#quit (#24978) 2023-12-20 13:20:14 +08:00
system FIX: Show admin plugin route sub-links in sidebar (#24982) 2023-12-21 11:37:20 +10:00
tasks DEV: Add file_size_restriction site setting type (#24704) 2023-12-13 16:22:48 -07:00
views FIX: Use subfolder-safe url for category in html view (#24595) 2023-11-28 19:08:14 +08:00
rails_helper.rb DEV: Preload all models schema cache before running system tests (#25008) 2023-12-22 08:40:02 +08:00
regenerate_swagger_docs DEV: Add API docs for uploads and API doc watcher (#15387) 2021-12-23 08:40:15 +10:00
swagger_helper.rb DEV: Bump rswag-specs from 2.11.0 to 2.13.0 (#24654) 2023-12-07 08:16:47 +08:00