Unable to upgrade 9.4.3 to 9.4.3-ee relation "geo_nodes" does not exist

Summary

Unable to upgrade 9.4.3 to 9.4.3-ee

Steps to reproduce

Update package sources to point to ee repo

apt install gitlab-ee

What is the current bug behavior?

Users experience persistent 500s

Relevant logs and/or screenshots

Processing by SessionsController#new as HTML
Completed 500 Internal Server Error in 8ms (ActiveRecord: 1.1ms | Elasticsearch: 0.0ms)

ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR:  relation "geo_nodes" does not exist
LINE 5:                WHERE a.attrelid = '"geo_nodes"'::regclass
                                          ^
:               SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                     pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
                FROM pg_attribute a LEFT JOIN pg_attrdef d
                  ON a.attrelid = d.adrelid AND a.attnum = d.adnum
               WHERE a.attrelid = '"geo_nodes"'::regclass
                 AND a.attnum > 0 AND NOT a.attisdropped
               ORDER BY a.attnum
):
  config/initializers/postgresql_cte.rb:96:in `build_arel'
  lib/gitlab/geo.rb:34:in `block in enabled?'
  lib/gitlab/geo.rb:135:in `block (2 levels) in cache_value'
  lib/gitlab/geo.rb:135:in `block in cache_value'
  lib/gitlab/geo.rb:135:in `cache_value'
  lib/gitlab/geo.rb:34:in `enabled?'
  lib/gitlab/geo.rb:62:in `block in secondary?'
  lib/gitlab/geo.rb:135:in `block (2 levels) in cache_value'
  lib/gitlab/geo.rb:135:in `block in cache_value'
  lib/gitlab/geo.rb:135:in `cache_value'
  lib/gitlab/geo.rb:62:in `secondary?'
  app/controllers/sessions_controller.rb:119:in `gitlab_geo_login'
  lib/gitlab/i18n.rb:45:in `with_locale'
  lib/gitlab/i18n.rb:51:in `with_user_locale'
  app/controllers/application_controller.rb:298:in `set_locale'
  lib/gitlab/performance_bar/peek_performance_bar_with_rack_body.rb:16:in `call'
  lib/gitlab/middleware/multipart.rb:93:in `call'
  lib/gitlab/request_profiler/middleware.rb:14:in `call'
  lib/gitlab/middleware/go.rb:16:in `call'
  lib/gitlab/etag_caching/middleware.rb:11:in `call'
  lib/gitlab/middleware/readonly_geo.rb:30:in `call'
  lib/gitlab/request_context.rb:18:in `call'
  lib/gitlab/metrics/requests_rack_middleware.rb:27:in `call'

Results of GitLab environment info

WARNING: Unable to check/update clone_url_prefix for Geo: PG::UndefinedTable: ERROR:  relation "geo_nodes" does not exist
LINE 5:                WHERE a.attrelid = '"geo_nodes"'::regclass
                                          ^
:               SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                     pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
                FROM pg_attribute a LEFT JOIN pg_attrdef d
                  ON a.attrelid = d.adrelid AND a.attnum = d.adnum
               WHERE a.attrelid = '"geo_nodes"'::regclass
                 AND a.attnum > 0 AND NOT a.attisdropped
               ORDER BY a.attnum

System information
System:		Debian 8.9
Proxy:		no
Current User:	git
Using RVM:	no
Ruby Version:	2.3.3p222
Gem Version:	2.6.6
Bundler Version:1.13.7
Rake Version:	10.5.0
Redis Version:	3.2.5
Git Version:	2.13.0
Sidekiq Version:5.0.0
Go Version:	unknown
rake aborted!
NoMethodError: undefined method `ldap_sync_status=' for #<Group:0x007f318cdbefb0>
Did you mean?  ldap_sync_status?
               ldap_sync_status_event=
               ldap_sync_status_name
               ldap_sync_status_paths
               ldap_sync_status_event
               ldap_sync_status_events
               ldap_sync_started?
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/info.rake:44:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/bin/bundle:22:in `load'
/opt/gitlab/embedded/bin/bundle:22:in `<main>'
Tasks: TOP => gitlab:env:info
(See full trace by running task with --trace)

Results of GitLab application Check

gitlab-rake gitlab:check SANITIZE=true

WARNING: Unable to check/update clone_url_prefix for Geo: PG::UndefinedTable: ERROR:  relation "geo_nodes" does not exist
LINE 5:                WHERE a.attrelid = '"geo_nodes"'::regclass
                                          ^
:               SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                     pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
                FROM pg_attribute a LEFT JOIN pg_attrdef d
                  ON a.attrelid = d.adrelid AND a.attnum = d.adnum
               WHERE a.attrelid = '"geo_nodes"'::regclass
                 AND a.attnum > 0 AND NOT a.attisdropped
               ORDER BY a.attnum
Checking GitLab Shell ...

GitLab Shell version >= 5.3.1 ? ... OK (5.3.1)
Repo base directory exists?
default... yes
Repo storage directories are symlinks?
default... no
Repo paths owned by git:root, or git:git?
default... yes
Repo paths access is drwxrws---?
default... yes
hooks directories in repos are links: ... 
6/4 ... ok
10/6 ... ok
11/7 ... ok
6/9 ... repository is empty
19/10 ... ok
19/11 ... ok
19/12 ... ok
19/13 ... ok
21/14 ... repository is empty
19/15 ... ok
19/16 ... ok
19/17 ... ok
21/18 ... ok
19/19 ... repository is empty
21/20 ... ok
19/21 ... ok
19/22 ... repository is empty
22/24 ... ok
24/25 ... ok
6/27 ... ok
22/29 ... ok
22/30 ... repository is empty
19/31 ... ok
32/32 ... ok
22/33 ... ok
22/36 ... ok
23/37 ... ok
23/38 ... ok
22/40 ... ok
20/41 ... repository is empty
32/42 ... ok
32/43 ... repository is empty
32/44 ... ok
32/45 ... ok
30/46 ... ok
30/47 ... ok
30/49 ... ok
35/50 ... ok
30/51 ... ok
30/54 ... ok
35/55 ... ok
30/56 ... ok
30/57 ... ok
22/59 ... ok
32/61 ... ok
34/66 ... ok
30/68 ... ok
24/69 ... ok
32/70 ... ok
30/71 ... ok
37/72 ... ok
38/79 ... ok
38/80 ... ok
32/82 ... repository is empty
23/83 ... ok
32/84 ... ok
35/85 ... ok
38/88 ... ok
5/89 ... repository is empty
25/90 ... repository is empty
20/91 ... ok
20/92 ... ok
35/93 ... ok
38/94 ... ok
20/95 ... ok
20/96 ... ok
20/97 ... ok
40/99 ... ok
30/100 ... ok
35/101 ... ok
40/102 ... ok
40/103 ... ok
40/104 ... ok
35/105 ... ok
30/106 ... ok
42/108 ... ok
42/109 ... ok
35/110 ... ok
40/111 ... ok
38/112 ... ok
40/113 ... ok
22/114 ... ok
32/115 ... ok
40/116 ... ok
38/117 ... ok
32/118 ... ok
32/119 ... ok
38/120 ... ok
38/121 ... ok
22/122 ... ok
42/123 ... ok
35/124 ... ok
35/125 ... ok
35/126 ... ok
45/127 ... ok
35/128 ... ok
42/129 ... ok
42/130 ... ok
32/131 ... ok
32/132 ... ok
42/133 ... ok
24/134 ... ok
20/135 ... repository is empty
Running /opt/gitlab/embedded/service/gitlab-shell/bin/check
Check GitLab API access: OK
Access to /var/opt/gitlab/.ssh/authorized_keys: OK
Send ping to redis server: OK
gitlab-shell self-check successful

Checking GitLab Shell ... Finished

Checking Sidekiq ...

Running? ... no
  Try fixing it:
  sudo -u git -H RAILS_ENV=production bin/background_jobs start
  For more information see:
  doc/install/installation.md in section "Install Init Script"
  see log/sidekiq.log for possible errors
  Please fix the error above and rerun the checks.

Checking Sidekiq ... Finished

Checking Reply by email ...

Reply by email is disabled in config/gitlab.yml

Checking Reply by email ... Finished

Checking LDAP ...

LDAP is disabled in config/gitlab.yml

Checking LDAP ... Finished

Checking GitLab ...

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? ... yes
Init script exists? ... skipped (omnibus-gitlab has no init script)
Init script up-to-date? ... skipped (omnibus-gitlab has no init script)
Projects have namespace: ... 
6/4 ... yes
10/6 ... yes
11/7 ... yes
6/9 ... yes
19/10 ... yes
19/11 ... yes
19/12 ... yes
19/13 ... yes
21/14 ... yes
19/15 ... yes
19/16 ... yes
19/17 ... yes
21/18 ... yes
19/19 ... yes
21/20 ... yes
19/21 ... yes
19/22 ... yes
22/24 ... yes
24/25 ... yes
6/27 ... yes
22/29 ... yes
22/30 ... yes
19/31 ... yes
32/32 ... yes
22/33 ... yes
22/36 ... yes
23/37 ... yes
23/38 ... yes
22/40 ... yes
20/41 ... yes
32/42 ... yes
32/43 ... yes
32/44 ... yes
32/45 ... yes
30/46 ... yes
30/47 ... yes
30/49 ... yes
35/50 ... yes
30/51 ... yes
30/54 ... yes
35/55 ... yes
30/56 ... yes
30/57 ... yes
22/59 ... yes
32/61 ... yes
34/66 ... yes
30/68 ... yes
24/69 ... yes
32/70 ... yes
30/71 ... yes
37/72 ... yes
38/79 ... yes
38/80 ... yes
32/82 ... yes
23/83 ... yes
32/84 ... yes
35/85 ... yes
38/88 ... yes
5/89 ... yes
25/90 ... yes
20/91 ... yes
20/92 ... yes
35/93 ... yes
38/94 ... yes
20/95 ... yes
20/96 ... yes
20/97 ... yes
40/99 ... yes
30/100 ... yes
35/101 ... yes
40/102 ... yes
40/103 ... yes
40/104 ... yes
35/105 ... yes
30/106 ... yes
42/108 ... yes
42/109 ... yes
35/110 ... yes
40/111 ... yes
38/112 ... yes
40/113 ... yes
22/114 ... yes
32/115 ... yes
40/116 ... yes
38/117 ... yes
32/118 ... yes
32/119 ... yes
38/120 ... yes
38/121 ... yes
22/122 ... yes
42/123 ... yes
35/124 ... yes
35/125 ... yes
35/126 ... yes
45/127 ... yes
35/128 ... yes
42/129 ... yes
42/130 ... yes
32/131 ... yes
32/132 ... yes
42/133 ... yes
24/134 ... yes
20/135 ... yes
Redis version >= 2.8.0? ... yes
Ruby version >= 2.3.3 ? ... yes (2.3.3)
Git version >= 2.7.3 ? ... yes (2.13.0)
Active users: ... Exception: PG::UndefinedColumn: ERROR:  column users.support_bot does not exist
LINE 1: ...s"."ghost" = 'f' OR "users"."ghost" IS NULL) AND ("users"."s...
                                                             ^
: SELECT COUNT(*) FROM "users" WHERE ("users"."state" IN ('active')) AND ("users"."ghost" = 'f' OR "users"."ghost" IS NULL) AND ("users"."support_bot" = 'f' OR "users"."support_bot" IS NULL)
Elasticsearch version 5.1 - 5.3? ... skipped (elasticsearch is disabled)

Checking GitLab ... Finished
Assignee Loading
Time tracking Loading