Skip to content

[debian native package] gitlab web ui Repository -> Files is empty on gitlab 12.8.8

Summary

When trying to update gitlab to 12.8.8 from 12.6.8, the list of files is not shown in gitlab web ui. This is the last known major issue blocking upload of gitlab 12.8.8 in debian fasttrack.

Steps to reproduce

Setup is exactly like described here,

#213073 (closed)

Example Project

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

What is the current bug behavior?

list of files is empty

What is the expected correct behavior?

we should be able to see the list of files in project, there is no error in web console or production.log

Relevant logs and/or screenshots

Screenshot_from_2020-04-01_20-31-51

Output of checks

already described in #213073 (closed)

Results of GitLab environment info

Expand for output related to GitLab environment info

(For installations with omnibus-gitlab package run and paste the output of:
`sudo gitlab-rake gitlab:env:info`)

(For installations from source run and paste the output of:
`sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)

Results of GitLab application Check

Expand for output related to the GitLab application check

(For installations with omnibus-gitlab package run and paste the output of: sudo gitlab-rake gitlab:check SANITIZE=true)

(For installations from source run and paste the output of: sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true)

(we will only investigate if the tests are passing)

Possible fixes

I wonder if this could be caused by webpack transpiling native node packages, they come from /usr/share/nodejs or /usr/lib/nodejs and webpack.config.js only excludes node_modules or vendor/assets.

Currently this patch is used to exclude core-js from transpiling as it caused errors in web console

@@ -171,7 +170,7 @@
       },
       {
         test: /\.js$/,
-        exclude: path => /node_modules|vendor[\\/]assets/.test(path) && !/\.vue\.js/.test(path),
+        exclude: [ path => /node_modules|vendor[\\/]assets/.test(path) && !/\.vue\.js/.test(path), /\bcore-js\b/,/\bwebpack\/buildin\b/ ],
         loader: 'babel-loader',
         options: {
           cacheDirectory: path.join(CACHE_PATH, 'babel-loader'),

I tried earlier to exclude these global paths before coming up with this to exclude only these two modules, but that did not work. Help coming up with a correct regex to exclude modules in /usr/share/nodejs or /usr/lib/nodejs would be great.