Broken master: ee/spec/models/concerns/elastic/project_spec.rb fails
https://gitlab.com/gitlab-org/gitlab/-/jobs/3570345900 is failing:
Failures:
1) Project when projects and snippets co-exist when searching with a wildcard only returns projects
Failure/Error: expect(response.total_count).to eq(1)
expected: 1
got: 18
(compared using ==)
# ./ee/spec/models/concerns/elastic/project_spec.rb:157:in `block (4 levels) in <top (required)>'
# ./spec/spec_helper.rb:415:in `block (3 levels) in <top (required)>'
# ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'
# ./spec/spec_helper.rb:407:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:403:in `block (3 levels) in <top (required)>'
# ./lib/gitlab/application_context.rb:59:in `with_raw_context'
# ./spec/spec_helper.rb:403:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:239:in `block (2 levels) in <top (required)>'
# ./spec/support/sidekiq.rb:21:in `block (3 levels) in <top (required)>'
# ./spec/support/sidekiq.rb:8:in `gitlab_sidekiq_inline'
# ./spec/support/sidekiq.rb:21:in `block (2 levels) in <top (required)>'
# ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'
# ./spec/support/redis.rb:17:in `block (3 levels) in <top (required)>'
# ./spec/support/redis.rb:17:in `block (3 levels) in <top (required)>'
# ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
# ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
# ./ee/spec/support/elastic.rb:87:in `block (2 levels) in <top (required)>'
Finished in 1 minute 19.22 seconds (files took 1 minute 6.54 seconds to load)
102 examples, 1 failure
Failed examples:
rspec ./ee/spec/models/concerns/elastic/project_spec.rb:153 # Project when projects and snippets co-exist when searching with a wildcard only returns projects
Note that I'm using Ruby 3.0.5, but I don't think it's a Ruby version issue. Here's some investigation:
diff --git a/.tool-versions b/.tool-versions
index 0442b347209d..ecddbdfeadce 100644
--- a/.tool-versions
+++ b/.tool-versions
@@ -2,6 +2,6 @@ minio 2022-07-15T03-44-22Z
nodejs 16.15.0
postgres 12.13 13.9
redis 6.2.7
-ruby 2.7.7
+ruby 3.0.5
rust 1.65.0
yarn 1.22.19
diff --git a/ee/spec/models/concerns/elastic/project_spec.rb b/ee/spec/models/concerns/elastic/project_spec.rb
index 3579099f8769..2bca475eec5a 100644
--- a/ee/spec/models/concerns/elastic/project_spec.rb
+++ b/ee/spec/models/concerns/elastic/project_spec.rb
@@ -154,6 +154,8 @@
ensure_elasticsearch_index!
response = described_class.elastic_search('*')
+ byebug
+
expect(response.total_count).to eq(1)
expect(response.results.first['_source']['type']).to eq(Project.es_type)
end
Working output
(byebug) pp response.results.records
[#<Elasticsearch::Model::Response::Result:0x000000011fd9b2f8
@result=
{"_index"=>"gitlab-test-20230109-0557",
"_id"=>"project_25",
"_score"=>1.0,
"_source"=>
{"id"=>25,
"name"=>"project1",
"path"=>"project1",
"description"=>nil,
"namespace_id"=>61,
"created_at"=>"2023-01-09T05:56:37.222Z",
"updated_at"=>"2023-01-09T05:56:37.222Z",
"archived"=>false,
"visibility_level"=>0,
"last_activity_at"=>"2023-01-09T05:56:37.222Z",
"name_with_namespace"=>"Sidney Jones2 / project1",
"path_with_namespace"=>"namespace1/project1",
"join_field"=>"project",
"type"=>"project",
"issues_access_level"=>20,
"merge_requests_access_level"=>20,
"snippets_access_level"=>20,
"wiki_access_level"=>20,
"repository_access_level"=>20},
Not working output
(byebug) pp response.results.records
[#<Elasticsearch::Model::Response::Result:0x0000000153c6cb28
@result=
{"_index"=>"gitlab-test-20230109-0606",
"_id"=>"project_30",
"_score"=>1.0,
"_source"=>
{"id"=>30,
"name"=>"test3",
"path"=>"test3",
"description"=>nil,
"namespace_id"=>72,
"created_at"=>"2023-01-09T06:05:46.126Z",
"updated_at"=>"2023-01-09T06:05:46.126Z",
"archived"=>false,
"visibility_level"=>0,
"last_activity_at"=>"2023-01-09T06:05:46.126Z",
"name_with_namespace"=>"Sidney Jones6 / test3",
"path_with_namespace"=>"namespace5/test3",
"join_field"=>"project",
"type"=>"project",
"issues_access_level"=>20,
"merge_requests_access_level"=>20,
"snippets_access_level"=>20,
"wiki_access_level"=>20,
"repository_access_level"=>20},
"matched_queries"=>["doc:is_a:project", "project:match:search_terms"]}>,
#<Elasticsearch::Model::Response::Result:0x0000000153c5ef50
@result=
{"_index"=>"gitlab-test-20230109-0606",
"_id"=>"project_33",
"_score"=>1.0,
"_source"=>
{"id"=>33,
"name"=>"tesla_model_s",
"path"=>"tesla_model_s",
"description"=>nil,
"namespace_id"=>78,
"created_at"=>"2023-01-09T06:05:47.902Z",
"updated_at"=>"2023-01-09T06:05:47.902Z",
"archived"=>false,
"visibility_level"=>0,
"last_activity_at"=>"2023-01-09T06:05:47.902Z",
"name_with_namespace"=>"Sidney Jones9 / tesla_model_s",
"path_with_namespace"=>"namespace8/tesla_model_s",
"join_field"=>"project",
"type"=>"project",
"issues_access_level"=>20,
"merge_requests_access_level"=>20,
"snippets_access_level"=>20,
"wiki_access_level"=>20,
"repository_access_level"=>20},
"matched_queries"=>["doc:is_a:project", "project:match:search_terms"]}>,
#<Elasticsearch::Model::Response::Result:0x0000000153c5dce0
@result=
{"_index"=>"gitlab-test-20230109-0606",
"_id"=>"project_45",
"_score"=>1.0,
"_source"=>
{"id"=>45,
"name"=>"project3",
"path"=>"project3",
"description"=>"foo",
"namespace_id"=>88,
"created_at"=>"2023-01-09T06:05:54.020Z",
"updated_at"=>"2023-01-09T06:05:54.020Z",
"archived"=>false,
"visibility_level"=>0,
"last_activity_at"=>"2023-01-09T06:05:54.020Z",
"name_with_namespace"=>"group1 / project3",
"path_with_namespace"=>"group1/project3",
"join_field"=>"project",
"type"=>"project",
"issues_access_level"=>20,
"merge_requests_access_level"=>20,
"snippets_access_level"=>20,
"wiki_access_level"=>20,
"repository_access_level"=>20},
"matched_queries"=>["doc:is_a:project", "project:match:search_terms"]}>,
#<Elasticsearch::Model::Response::Result:0x0000000153c5cb10
@result=
{"_index"=>"gitlab-test-20230109-0606",
"_id"=>"project_46",
"_score"=>1.0,
"_source"=>
{"id"=>46,
"name"=>"project1",
"path"=>"project1",
"description"=>"test foo",
"namespace_id"=>88,
"created_at"=>"2023-01-09T06:05:55.004Z",
"updated_at"=>"2023-01-09T06:05:55.004Z",
"archived"=>false,
"visibility_level"=>0,
"last_activity_at"=>"2023-01-09T06:05:55.004Z",
"name_with_namespace"=>"group1 / project1",
"path_with_namespace"=>"group1/project1",
"join_field"=>"project",
"type"=>"project",
"issues_access_level"=>20,
"merge_requests_access_level"=>20,
"snippets_access_level"=>20,
"wiki_access_level"=>20,
"repository_access_level"=>20},
"matched_queries"=>["doc:is_a:project", "project:match:search_terms"]}>,
#<Elasticsearch::Model::Response::Result:0x0000000153c6b5e8
@result=
{"_index"=>"gitlab-test-20230109-0606",
"_id"=>"project_27",
"_score"=>1.0,
"_source"=>
{"id"=>27,
"name"=>"project1",
"path"=>"test2",
"description"=>"awesome project",
"namespace_id"=>66,
"created_at"=>"2023-01-09T06:05:44.861Z",
"updated_at"=>"2023-01-09T06:05:44.861Z",
"archived"=>false,
"visibility_level"=>0,
"last_activity_at"=>"2023-01-09T06:05:44.861Z",
"name_with_namespace"=>"Sidney Jones3 / project1",
"path_with_namespace"=>"namespace2/test2",
"join_field"=>"project",
"type"=>"project",
"issues_access_level"=>20,
"merge_requests_access_level"=>20,
"snippets_access_level"=>20,
"wiki_access_level"=>20,
"repository_access_level"=>20},
"matched_queries"=>["doc:is_a:project", "project:match:search_terms"]}>,
#<Elasticsearch::Model::Response::Result:0x0000000153c6a2d8
@result=
{"_index"=>"gitlab-test-20230109-0606",
"_id"=>"project_32",
"_score"=>1.0,
"_source"=>
{"id"=>32,
"name"=>"tesla-model-s",
"path"=>"tesla-model-s",
"description"=>nil,
"namespace_id"=>76,
"created_at"=>"2023-01-09T06:05:47.529Z",
"updated_at"=>"2023-01-09T06:05:47.529Z",
"archived"=>false,
"visibility_level"=>0,
"last_activity_at"=>"2023-01-09T06:05:47.529Z",
"name_with_namespace"=>"Sidney Jones8 / tesla-model-s",
"path_with_namespace"=>"namespace7/tesla-model-s",
"join_field"=>"project",
"type"=>"project",
"issues_access_level"=>20,
"merge_requests_access_level"=>20,
"snippets_access_level"=>20,
"wiki_access_level"=>20,
"repository_access_level"=>20},
"matched_queries"=>["doc:is_a:project", "project:match:search_terms"]}>,
#<Elasticsearch::Model::Response::Result:0x0000000153c68ff0
@result=
{"_index"=>"gitlab-test-20230109-0606",
"_id"=>"project_43",
"_score"=>1.0,
"_source"=>
{"id"=>43,
"name"=>"project1",
"path"=>"project1",
"description"=>"test foo",
"namespace_id"=>88,
"created_at"=>"2023-01-09T06:05:53.183Z",
"updated_at"=>"2023-01-09T06:05:53.183Z",
"archived"=>false,
"visibility_level"=>0,
"last_activity_at"=>"2023-01-09T06:05:53.183Z",
"name_with_namespace"=>"group1 / project1",
"path_with_namespace"=>"group1/project1",
"join_field"=>"project",
"type"=>"project",
"issues_access_level"=>20,
"merge_requests_access_level"=>20,
"snippets_access_level"=>20,
"wiki_access_level"=>20,
"repository_access_level"=>20},
"matched_queries"=>["doc:is_a:project", "project:match:search_terms"]}>,
#<Elasticsearch::Model::Response::Result:0x00000001206e7bb8
@result=
{"_index"=>"gitlab-test-20230109-0606",
"_id"=>"project_48",
"_score"=>1.0,
"_source"=>
{"id"=>48,
"name"=>"project3",
"path"=>"project3",
"description"=>"foo",
"namespace_id"=>88,
"created_at"=>"2023-01-09T06:05:55.689Z",
"updated_at"=>"2023-01-09T06:05:55.689Z",
"archived"=>false,
"visibility_level"=>0,
"last_activity_at"=>"2023-01-09T06:05:55.689Z",
"name_with_namespace"=>"group1 / project3",
"path_with_namespace"=>"group1/project3",
"join_field"=>"project",
"type"=>"project",
"issues_access_level"=>20,
"merge_requests_access_level"=>20,
"snippets_access_level"=>20,
"wiki_access_level"=>20,
"repository_access_level"=>20},
"matched_queries"=>["doc:is_a:project", "project:match:search_terms"]}>,
#<Elasticsearch::Model::Response::Result:0x00000001206e6858
@result=
{"_index"=>"gitlab-test-20230109-0606",
"_id"=>"project_47",
"_score"=>1.0,
"_source"=>
{"id"=>47,
"name"=>"project2",
"path"=>"project2",
"description"=>"test",
"namespace_id"=>88,
"created_at"=>"2023-01-09T06:05:55.369Z",
"updated_at"=>"2023-01-09T06:05:55.369Z",
"archived"=>false,
"visibility_level"=>0,
"last_activity_at"=>"2023-01-09T06:05:55.369Z",
"name_with_namespace"=>"group1 / project2",
"path_with_namespace"=>"group1/project2",
"join_field"=>"project",
"type"=>"project",
"issues_access_level"=>20,
"merge_requests_access_level"=>20,
"snippets_access_level"=>20,
"wiki_access_level"=>20,
"repository_access_level"=>20},
"matched_queries"=>["doc:is_a:project", "project:match:search_terms"]}>,
#<Elasticsearch::Model::Response::Result:0x00000001206e5458
@result=
{"_index"=>"gitlab-test-20230109-0606",
"_id"=>"project_28",
"_score"=>1.0,
"_source"=>
{"id"=>28,
"name"=>"project2",
"path"=>"project2",
"description"=>nil,
"namespace_id"=>68,
"created_at"=>"2023-01-09T06:05:45.409Z",
"updated_at"=>"2023-01-09T06:05:45.409Z",
"archived"=>false,
"visibility_level"=>0,
"last_activity_at"=>"2023-01-09T06:05:45.409Z",
"name_with_namespace"=>"Sidney Jones4 / project2",
"path_with_namespace"=>"namespace3/project2",
"join_field"=>"project",
"type"=>"project",
"issues_access_level"=>20,
"merge_requests_access_level"=>20,
"snippets_access_level"=>20,
"wiki_access_level"=>20,
"repository_access_level"=>20},
"matched_queries"=>["doc:is_a:project", "project:match:search_terms"]}>]
It looks to me like the test is failing because there are some stale projects in the index?
Edited by Stan Hu