Skip to content

[debian native package] cannot create issues with gitlab 12.8.8 (grape master, grpc 1.27, protobuf 3.11)

Summary

Creating issues fail with error in production.log and user gets 500 Whoops, something went wrong on our end.

Steps to reproduce

A test instance is setup at https://4cc79c09-b1ac-4435-9f91-572bdd2e4a8b.pub.cloud.scaleway.com/ (I can provide ssh access for troubleshooting).

Major changes in the debian packages with respect to upstream package,

  1. using ruby 2.7 (same error on ruby 2.5)
  2. grpc and protobuf latest !27741 (merged) (same patch applied)
  3. grape master branch !27276 (merged) (same patch applied)

all applied patches here https://salsa.debian.org/ruby-team/gitlab/-/tree/master/debian%2Fpatches

It was working fine till gitlab 12.6.8

Example Project

https://4cc79c09-b1ac-4435-9f91-572bdd2e4a8b.pub.cloud.scaleway.com/praveen/testing123/

What is the current bug behavior?

Issue creation fails

I suspect it is related to ruby-grape.

What is the expected correct behavior?

We should be able to create issues.

Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output, logs, and code as it's tough to read otherwise.)

ActionView::Template::Error (undefined method `api_v4_projects_issues_related_merge_requests_path' for #<#<Class:0x000056081cf6b970>:0x000056081cf50aa8>
Did you mean?  assign_related_issues_project_merge_request_path):
    76: 
    77:     = render_if_exists 'projects/issues/related_issues'
    78: 
    79:     #js-related-merge-requests{ data: { endpoint: expose_path(api_v4_projects_issues_related_merge_requests_path(id: @project.id, issue_iid: @issue.iid)), project_namespace: @project.namespace.path, project_path: @project.path } }
    80: 
    81:     - if can?(current_user, :download_code, @project)
    82:       #related-branches{ data: { url: related_branches_project_issue_path(@project, @issue) } }
  
app/views/projects/issues/show.html.haml:79
app/controllers/application_controller.rb:122:in `render'
app/controllers/concerns/issuable_actions.rb:33:in `block (2 levels) in show'
app/controllers/concerns/issuable_actions.rb:30:in `show'
app/controllers/application_controller.rb:478:in `set_current_admin'
lib/gitlab/session.rb:11:in `with_session'
app/controllers/application_controller.rb:469:in `set_session_storage'
lib/gitlab/i18n.rb:55:in `with_locale'
lib/gitlab/i18n.rb:61:in `with_user_locale'
app/controllers/application_controller.rb:463:in `set_locale'
lib/gitlab/application_context.rb:46:in `block in use'
lib/gitlab/application_context.rb:46:in `use'
lib/gitlab/application_context.rb:19:in `with_context'
app/controllers/application_controller.rb:454:in `set_current_context'
lib/gitlab/error_tracking.rb:34:in `with_context'
app/controllers/application_controller.rb:554:in `sentry_context'
lib/gitlab/request_profiler/middleware.rb:17:in `call'
lib/gitlab/middleware/go.rb:20:in `call'
lib/gitlab/etag_caching/middleware.rb:13:in `call'
lib/gitlab/middleware/multipart.rb:121:in `call'
lib/gitlab/middleware/read_only/controller.rb:53:in `call'
lib/gitlab/middleware/read_only.rb:18:in `call'
lib/gitlab/middleware/basic_health_check.rb:25:in `call'
lib/gitlab/middleware/request_context.rb:23:in `call'
config/initializers/fix_local_cache_middleware.rb:9:in `call'
lib/gitlab/metrics/requests_rack_middleware.rb:49:in `call'
lib/gitlab/middleware/release_env.rb:12:in `call'
Updating statistics for project 1

Output of checks

Checking GitLab subtasks ...

Checking GitLab Shell ...

GitLab Shell: ... GitLab Shell version >= 11.0.0 ? ... OK (11.0.0)
Running /usr/share/gitlab-shell/bin/check
Internal API available: OK
Redis available via internal API: OK
gitlab-shell self-check successful

Checking GitLab Shell ... Finished

Checking Gitaly ...

Gitaly: ... default ... OK

Checking Gitaly ... Finished

Checking Sidekiq ...

Sidekiq: ... Running? ... yes
Number of Sidekiq processes ... 1

Checking Sidekiq ... Finished

Checking Incoming Email ...

Incoming Email: ... Reply by email is disabled in config/gitlab.yml

Checking Incoming Email ... Finished

Checking LDAP ...

LDAP: ... LDAP is disabled in config/gitlab.yml

Checking LDAP ... Finished

Checking GitLab App ...

Git configured correctly? ... yes
Database config exists? ... yes
All migrations up? ... yes
Database contains orphaned GroupMembers? ... no
GitLab config exists? ... yes
GitLab config up to date? ... yes
Log directory writable? ... yes
Tmp directory writable? ... yes
Uploads directory exists? ... yes
Uploads directory has correct permissions? ... yes
Uploads directory tmp has correct permissions? ... skipped (no tmp uploads folder yet)
Init script exists? ... yes
Init script up-to-date? ... yes
Projects have namespace: ... 
Pirate Praveen / test ... yes
Pirate Praveen / testing-again ... yes
Redis version >= 2.8.0? ... yes
Ruby version >= 2.5.3 ? ... yes (2.5.5)
Git version >= 2.22.0 ? ... yes (2.25.0)
Git user has default SSH configuration? ... yes
Active users: ... 1
Is authorized keys file accessible? ... yes

Checking GitLab App ... Finished


Checking GitLab subtasks ... Finished

Results of GitLab environment info

Expand for output related to GitLab environment info

```
System information
System:		Debian 10
Current User:	gitlab
Using RVM:	no
Ruby Version:	2.5.5p157
Gem Version:	2.7.6.2
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
Bundler Version:1.17.3
Rake Version:	12.3.1
Redis Version:	5.0.7
Git Version:	2.25.0
Sidekiq Version:5.2.7
Go Version:	unknown

GitLab information
Version:	12.8.8
Revision:	Unknown
Directory:	/usr/share/gitlab
DB Adapter:	PostgreSQL
DB Version:	11.7
URL:		http://localhost
HTTP Clone URL:	http://localhost/some-group/some-project.git
SSH Clone URL:	gitlab@localhost:some-group/some-project.git
Using LDAP:	no
Using Omniauth:	no

GitLab Shell
Version:	11.0.0
Repository storage paths:
- default: 	/var/lib/gitlab/repositories
GitLab Shell path:		/usr/share/gitlab-shell
Git:		/usr/bin/git
```


Results of GitLab application Check

Expand for output related to the GitLab application check
Checking GitLab subtasks ...

Checking GitLab Shell ...

GitLab Shell: ... GitLab Shell version >= 11.0.0 ? ... OK (11.0.0)
Running /usr/share/gitlab-shell/bin/check
Internal API available: OK
Redis available via internal API: OK
gitlab-shell self-check successful

Checking GitLab Shell ... Finished

Checking Gitaly ...

Gitaly: ... default ... OK

Checking Gitaly ... Finished

Checking Sidekiq ...

Sidekiq: ... Running? ... yes
Number of Sidekiq processes ... 1

Checking Sidekiq ... Finished

Checking Incoming Email ...

Incoming Email: ... Reply by email is disabled in config/gitlab.yml

Checking Incoming Email ... Finished

Checking LDAP ...

LDAP: ... LDAP is disabled in config/gitlab.yml

Checking LDAP ... Finished

Checking GitLab App ...

Git configured correctly? ... yes
Database config exists? ... yes
All migrations up? ... yes
Database contains orphaned GroupMembers? ... no
GitLab config exists? ... yes
GitLab config up to date? ... yes
Log directory writable? ... yes
Tmp directory writable? ... yes
Uploads directory exists? ... yes
Uploads directory has correct permissions? ... yes
Uploads directory tmp has correct permissions? ... skipped (no tmp uploads folder yet)
Init script exists? ... yes
Init script up-to-date? ... yes
Projects have namespace: ... 
Pirate Praveen / test ... yes
Pirate Praveen / testing-again ... yes
Redis version >= 2.8.0? ... yes
Ruby version >= 2.5.3 ? ... yes (2.5.5)
Git version >= 2.22.0 ? ... yes (2.25.0)
Git user has default SSH configuration? ... yes
Active users: ... 1
Is authorized keys file accessible? ... yes

Checking GitLab App ... Finished


Checking GitLab subtasks ... Finished

Possible fixes

!27276 (merged) may be incomplete https://salsa.debian.org/ruby-team/gitlab/-/blob/master/debian/patches/0760-update-grape.patch may have made some mistakes while chery picking from pull request.