NoMethodError in project home (statistics)
Hello,
We experienced a hard driver crash and have to restore GitLab from our backup. That worked fine and can move on.
However we still have one small issue when browsing to the main project page (ie my.gitlab.com/mygroup/myproject), GitLab shows an error 500.
There is only for one project (others are fine) and accessing a suburl (ie my.gitlab.com/mygroup/myproject/-/merge_requests) also works.
By digging the production_json.log file, there is the following stacktrace:
{
"method": "GET",
"path": "/mygroup/myproject",
"format": "html",
"controller": "ProjectsController",
"action": "show",
"status": 500,
"time": "2024-03-13T07:57:49.015Z",
"params": [
{
"key": "namespace_id",
"value": "mygroup"
},
{
"key": "id",
"value": "myproject"
}
],
"correlation_id": "01HRVD2HRKRW1VERTE0ZEN53XN",
"meta.caller_id": "ProjectsController#show",
"meta.remote_ip": "10.0.0.2",
"meta.feature_category": "groups_and_projects",
"meta.user": "user",
"meta.user_id": 32,
"meta.project": "mygroup/myproject",
"meta.root_namespace": "mygroup",
"meta.client_id": "user/32",
"remote_ip": "10.0.0.2",
"user_id": 32,
"username": "user",
"ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
"queue_duration_s": 0.005852,
"request_urgency": "low",
"target_duration_s": 5,
"redis_calls": 29,
"redis_allowed_cross_slot_calls": 1,
"redis_duration_s": 0.005173,
"redis_read_bytes": 2769,
"redis_write_bytes": 1994,
"redis_cache_calls": 24,
"redis_cache_duration_s": 0.004345,
"redis_cache_read_bytes": 2536,
"redis_cache_write_bytes": 1293,
"redis_sessions_calls": 1,
"redis_sessions_duration_s": 0.000245,
"redis_sessions_read_bytes": 230,
"redis_sessions_write_bytes": 85,
"redis_shared_state_calls": 4,
"redis_shared_state_allowed_cross_slot_calls": 1,
"redis_shared_state_duration_s": 0.000583,
"redis_shared_state_read_bytes": 3,
"redis_shared_state_write_bytes": 616,
"db_count": 48,
"db_write_count": 0,
"db_cached_count": 13,
"db_replica_count": 0,
"db_primary_count": 48,
"db_main_count": 48,
"db_ci_count": 0,
"db_main_replica_count": 0,
"db_ci_replica_count": 0,
"db_replica_cached_count": 0,
"db_primary_cached_count": 13,
"db_main_cached_count": 13,
"db_ci_cached_count": 0,
"db_main_replica_cached_count": 0,
"db_ci_replica_cached_count": 0,
"db_replica_wal_count": 0,
"db_primary_wal_count": 0,
"db_main_wal_count": 0,
"db_ci_wal_count": 0,
"db_main_replica_wal_count": 0,
"db_ci_replica_wal_count": 0,
"db_replica_wal_cached_count": 0,
"db_primary_wal_cached_count": 0,
"db_main_wal_cached_count": 0,
"db_ci_wal_cached_count": 0,
"db_main_replica_wal_cached_count": 0,
"db_ci_replica_wal_cached_count": 0,
"db_replica_duration_s": 0,
"db_primary_duration_s": 0.032,
"db_main_duration_s": 0.032,
"db_ci_duration_s": 0,
"db_main_replica_duration_s": 0,
"db_ci_replica_duration_s": 0,
"cpu_s": 0.269321,
"mem_objects": 183178,
"mem_bytes": 17933776,
"mem_mallocs": 64322,
"mem_total_bytes": 25260896,
"pid": 74056,
"worker_id": "puma_3",
"rate_limiting_gates": [],
"exception.class": "ActionView::Template::Error",
"exception.message": "undefined method `commit_count' for nil:NilClass\n\n n_('%{strong_start}%{commit_count}%{strong_end} Commit', '%{strong_start}%{commit_count}%{strong_end} Commits', statistics.commit_count).html_safe",
"exception.backtrace": [
"app/presenters/project_presenter.rb:223:in `commits_anchor_data'",
"app/presenters/project_presenter.rb:38:in `statistics_anchors'",
"app/views/projects/_home_panel.html.haml:37",
"app/views/projects/show.html.haml:16",
"app/controllers/application_controller.rb:132:in `render'",
"app/controllers/application_controller.rb:517:in `block in allow_gitaly_ref_name_caching'",
"lib/gitlab/gitaly_client.rb:472:in `allow_ref_name_caching'",
"app/controllers/application_controller.rb:516:in `allow_gitaly_ref_name_caching'",
"ee/lib/gitlab/ip_address_state.rb:10:in `with'",
"ee/app/controllers/ee/application_controller.rb:45:in `set_current_ip_address'",
"app/controllers/application_controller.rb:468:in `set_current_admin'",
"lib/gitlab/session.rb:11:in `with_session'",
"app/controllers/application_controller.rb:459:in `set_session_storage'",
"lib/gitlab/i18n.rb:114:in `with_locale'",
"lib/gitlab/i18n.rb:120:in `with_user_locale'",
"app/controllers/application_controller.rb:450:in `set_locale'",
"app/controllers/application_controller.rb:443:in `set_current_context'",
"lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16:in `call'",
"lib/gitlab/middleware/memory_report.rb:13:in `call'",
"lib/gitlab/middleware/speedscope.rb:13:in `call'",
"lib/gitlab/database/load_balancing/rack_middleware.rb:23:in `call'",
"lib/gitlab/middleware/rails_queue_duration.rb:33:in `call'",
"lib/gitlab/etag_caching/middleware.rb:21:in `call'",
"lib/gitlab/metrics/rack_middleware.rb:16:in `block in call'",
"lib/gitlab/metrics/web_transaction.rb:46:in `run'",
"lib/gitlab/metrics/rack_middleware.rb:16:in `call'",
"lib/gitlab/middleware/go.rb:20:in `call'",
"lib/gitlab/middleware/query_analyzer.rb:11:in `block in call'",
"lib/gitlab/database/query_analyzer.rb:40:in `within'",
"lib/gitlab/middleware/query_analyzer.rb:11:in `call'",
"lib/gitlab/middleware/multipart.rb:173:in `call'",
"lib/gitlab/middleware/read_only/controller.rb:50:in `call'",
"lib/gitlab/middleware/read_only.rb:18:in `call'",
"lib/gitlab/middleware/unauthenticated_session_expiry.rb:18:in `call'",
"lib/gitlab/middleware/same_site_cookies.rb:27:in `call'",
"lib/gitlab/middleware/path_traversal_check.rb:35:in `call'",
"lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call'",
"lib/gitlab/middleware/basic_health_check.rb:25:in `call'",
"lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call'",
"lib/gitlab/middleware/request_context.rb:15:in `call'",
"lib/gitlab/middleware/webhook_recursion_detection.rb:15:in `call'",
"config/initializers/fix_local_cache_middleware.rb:11:in `call'",
"lib/gitlab/middleware/compressed_json.rb:44:in `call'",
"lib/gitlab/middleware/rack_multipart_tempfile_factory.rb:19:in `call'",
"lib/gitlab/middleware/sidekiq_web_static.rb:20:in `call'",
"lib/gitlab/metrics/requests_rack_middleware.rb:79:in `call'",
"lib/gitlab/middleware/release_env.rb:13:in `call'"
],
"exception.cause_class": "NoMethodError",
"db_duration_s": 0.05733,
"view_duration_s": 0,
"duration_s": 0.30249
}
It seems there is a problem related to statistics. Regardless of the data state, it seems to be an error calling a non existent method.
We are using the GitLab EE 16.9.2.
Thanks !