Skip to content

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 !