Bug 254010 - www/gitlab-ce: coredumps ruby during start after update several ports
Summary: www/gitlab-ce: coredumps ruby during start after update several ports
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Matthias Fechner
URL:
Keywords:
Depends on: 254014
Blocks:
  Show dependency treegraph
 
Reported: 2021-03-04 14:54 UTC by Vladimir Druzenko
Modified: 2021-03-08 12:00 UTC (History)
0 users

See Also:
bugzilla: maintainer-feedback? (mfechner)


Attachments
(service gitlab start) > gitlab_start.log 2>&1 (561.25 KB, text/plain)
2021-03-04 14:54 UTC, Vladimir Druzenko
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Druzenko freebsd_committer freebsd_triage 2021-03-04 14:54:52 UTC
Created attachment 222976 [details]
(service gitlab start) > gitlab_start.log 2>&1

Was updated:
rubygem-thrift-0.11.0.0,1 => rubygem-thrift-0.13.0,1
re2-20210201 => re2-20210202_1
grpc134-1.34.0 => grpc134-1.34.0_1
jasper-2.0.24 => jasper-2.0.25
rubygem-aws-partitions-1.426.0 => rubygem-aws-partitions-1.427.0
rubygem-aws-sdk-cloudformation-1.47.0 => rubygem-aws-sdk-cloudformation-1.48.0
rubygem-bootsnap-1.7.1 => rubygem-bootsnap-1.7.2
rubygem-dry-types-1.5.0 => rubygem-dry-types-1.5.1
rubygem-google-protobuf-3.14.0 => rubygem-google-protobuf-3.15.0
rubygem-re2-1.2.0_1 => rubygem-re2-1.2.0_2

But it work fine after previous update:
gitlab-ce-13.8.4_1 => gitlab-ce-13.9.1 with all dependent ports:
redis-6.0.12
gitlab-agent-13.9.1
rubygem-gitlab-labkit-0.15.0
rubygem-thor-1.1.0
rubygem-dotenv-2.7.6
rubygem-reverse_markdown-1.0.4
rubygem-licensee-9.14.1
rubygem-gitlab-gollum-rugged_adapter-0.4.4.3.gitlab.1
rubygem-gitlab-gollum-lib-4.2.7.10.gitlab.1
gitlab-shell-13.16.1
gitaly-13.9.1
gitlab-elasticsearch-indexer-2.9.0
gitlab-pages-1.35.0
gitlab-workhorse-8.63.0
rubygem-default_value_for-3.4.0
rubygem-gitlab-experiment-0.4.12
rubygem-gitlab-license-1.3.0
rubygem-gitaly-13.9.0.pre.rc1
rubygem-doorkeeper-5.5.0
rubygem-doorkeeper-openid_connect-1.7.5_1
rubygem-asciidoctor-2.0.12
rubygem-asciidoctor-kroki-0.3.0
rubygem-autoprefixer-rails-10.2.0.0
rubygem-parslet1-1.8.2
rubygem-hamlit-2.14.4

Check this:
/usr/local/lib/ruby/gems/2.7/gems/google-protobuf-3.15.0/lib/google/protobuf_c.so(Defs_register+0xc99) [0x811958699]
/usr/local/lib/ruby/gems/2.7/gems/google-protobuf-3.15.0/lib/google/protobuf_c.so(0x81195c675) [0x81195c675]

$ pkg info -q | grep protobuf
protobuf-3.14.0,1
rubygem-google-protobuf-3.15.0
$ pkg info -r protobuf
protobuf-3.14.0,1:
        grpc134-1.34.0_1

Maybe it's version incompatibility.
Comment 1 Matthias Fechner freebsd_committer freebsd_triage 2021-03-04 15:40:09 UTC
It works perfectly fine here with the current version.
Have you followed the instructions here:
https://gitlab.fechner.net/mfechner/Gitlab-docu/-/blob/master/update/13.8-13.9-freebsd.md

Especially the
pkg autoremove

is important to make sure to remove old version gitlab does not required anymore.
Comment 2 Matthias Fechner freebsd_committer freebsd_triage 2021-03-04 15:41:45 UTC
If have protobuf 3.14 installed:
╰─ pkg info |grep proto
libssh2-1.9.0_3,3              Library implementing the SSH2 protocol
libxcb-1.14_1                  The X protocol C-language Binding (XCB) library
p5-HTTP-Date-6.05              Conversion routines for the HTTP protocol date formats
protobuf-3.14.0,1              Data interchange format library
py37-acme-1.11.0,1             ACME protocol implementation in Python
py37-josepy-1.5.0              JOSE protocol implementation in Python
py37-paramiko-2.7.2            Python SSH2 protocol library
rubygem-acme-client-2.0.7      Client for the ACME protocol
rubygem-google-protobuf-3.14.0 Ruby extension to Google Protocol Buffers
rubygem-googleapis-common-protos-types-1.0.6 Common protocol buffer types used by Google APIs
rubygem-net-ntp-2.1.3          Implementation of the NTP protocol
rubygem-net-sftp-2.1.2         Implementation of the SFTP client protocol
rubygem-oauth2-1.4.4           Ruby wrapper for the OAuth 2.0 protocol
rubygem-websocket-driver-0.7.3 WebSocket protocol handler with pluggable I/O
xorgproto-2020.1               xorg protocol headers
Comment 3 Matthias Fechner freebsd_committer freebsd_triage 2021-03-04 15:45:35 UTC
What redis do you have installed?
╰─ pkg info |grep redis
redis-6.0.12                   Persistent key-value database with built-in net interface
rubygem-redis-4.2.5            Ruby client library for Redis, the key value storage server
rubygem-redis-actionpack-rails60-5.2.0 Redis session store for ActionPack
rubygem-redis-activesupport-rails60-5.2.0 Redis store for ActiveSupport::Cache
rubygem-redis-namespace17-1.7.0 Ruby client class for Redis with namespace support
rubygem-redis-rack-2.1.2       Redis Store for Rack
rubygem-redis-rails-rails60-5.0.2 Redis for Ruby on Rails
rubygem-redis-store-1.5.0      Namespaced Redis stores for Ruby web frameworks
Comment 4 Matthias Fechner freebsd_committer freebsd_triage 2021-03-04 16:24:37 UTC
I see with build based on https://svn.freebsd.org/ports/head@567319 the same problem.
Core dumps.

It is maybe related to the protobuf upgrade.
I will now try if a downgrade of protobuf fixes it.
Comment 5 Matthias Fechner freebsd_committer freebsd_triage 2021-03-04 17:07:37 UTC
I can now confirm that downgrade devel/rubygem-google-protobuf to version 3.14.0 fixes the problem.

An upgrade of devel/rubygem-google-protobuf 3.15.4 does now help.
Comment 6 Vladimir Druzenko freebsd_committer freebsd_triage 2021-03-04 21:19:41 UTC
(In reply to Matthias Fechner from comment #5)
Was busy till now. But I see you confirmed already my hypothesis about protobuf.
Comment 7 commit-hook freebsd_committer freebsd_triage 2021-03-06 10:08:52 UTC
A commit references this bug:

Author: mfechner
Date: Sat Mar  6 10:08:32 UTC 2021
New revision: 567475
URL: https://svnweb.freebsd.org/changeset/ports/567475

Log:
  Security update to gitlab-ce 13.9.2.
  Changelog:
  https://about.gitlab.com/releases/2021/03/04/security-release-gitlab-13-9-2-released/

  This commit also enforces an older version of devel/rubygem-google-protobuf of version 3.14.0.
  This also linked PR.
  This ensures that users to not upgrade by accident to a version that is core dumping.
  So it is wanted that this port is currently not buildable to protect users from an update.

  If you want to this upgrade, wait till devel/rubygem-google-protobuf is fixed or downgrade it to 3.14.0.

  PR:		254014 254010
  Security:	8bf856ea-7df7-11eb-9aad-001b217b3468

Changes:
  head/devel/gitaly/Makefile
  head/devel/gitaly/distinfo
  head/www/gitlab-ce/Makefile
  head/www/gitlab-ce/distinfo
  head/www/gitlab-ce/files/patch-Gemfile
  head/www/gitlab-ce/pkg-plist
  head/www/gitlab-workhorse/Makefile
  head/www/gitlab-workhorse/distinfo
Comment 8 Matthias Fechner freebsd_committer freebsd_triage 2021-03-06 10:11:46 UTC
We have to wait for linked PR 254014 to get fixed.
You can also downgrade devel/rubygem-google-protobuf in the meantime to 3.14.0 to fix the problem.
Comment 9 Po-Chuan Hsieh freebsd_committer freebsd_triage 2021-03-07 23:40:49 UTC
from bug #254014 comment #3:
> I've added rubygem-google-protobuf314 and changed gitlab family to it.
> This should fix the runtime issue.
> But please report it upstream. It should be reflected in its Gemfile.
Comment 10 Matthias Fechner freebsd_committer freebsd_triage 2021-03-08 10:59:39 UTC
I reported the problem upstream:
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/55972
Comment 11 Vladimir Druzenko freebsd_committer freebsd_triage 2021-03-08 11:28:16 UTC
devel/rubygem-googleapis-common-protos-types/Makefile:
RUN_DEPENDS=    rubygem-google-protobuf>=3.14<4:devel/rubygem-google-protobuf
Must be:
RUN_DEPENDS=    rubygem-google-protobuf314>=3.14<4:devel/rubygem-google-protobuf314
Comment 12 Matthias Fechner freebsd_committer freebsd_triage 2021-03-08 12:00:50 UTC
(In reply to VVD from comment #11)
This line is fine.
I patched new the Gemfiles from gitlab to use the correct version and created MRs upstream so they fix that as well:

https://gitlab.com/gitlab-org/gitlab/-/merge_requests/55972
https://gitlab.com/gitlab-org/gitaly/-/merge_requests/3233