Zammad migration issues Debian -> CentOS: ruby load errors and MariaDB tables already existing

Hi,

I am having problems migrating a Zammad installation from Debian to CentOS (MySQL). The procedure throws errors and login doesn work after the migration.

Infos

  • Used Zammad version: 3.4.0-1592470089.65376a81.jessie and 3.4.0-1596781606.1adc98bf.centos7
  • Used Zammad installation source: deb and rpm via repositories
  • Operating system: Debian 8 and CentOS 7.8
  • Browser + version: not relevant

Migration procedure

  • Old server (Debian):
    • Created backup on the old server (services zammad and nginx being stopped)
  • New server (CentOS):
    • Installed Elasticsearch and MariaDB, established same MariaDB user as on old server and created (empty) “zammad” database (important, otherwise restore fails)
    • Installed zammad from repo
    • Copied from old server: backups, /opt/zammad/contrib/backup/config and /opt/zammad/config/database.yml
    • ran /opt/zammad/contrib/backup/zammad_restore.sh

Problems

Service doesn’t start up correctly

Zammad then doesn’t start up correctly (no ruby process on port 3000) and I find error message of type

  • zammad-zyx.service: bundler: failed to load command: script/xyz and
  • zammad-xyz.service: LoadError: library not found for class Digest::SHA1 -- digest/sha1

in /var/log/messages. See a hopefully helpful extract here (shortened, as I am not allowed to post so much text :slight_smile: :

Aug 23 14:29:01 odcf-vm118 zammad-web-1.service: bundler: failed to load command: script/rails (script/rails)
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: bundler: failed to load command: script/scheduler.rb (script/scheduler.rb)
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: LoadError: library not found for class Digest::SHA1 -- digest/sha1
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/ruby-2.6.5/lib/ruby/2.6.0/digest.rb:16:in `const_missing'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/ruby-2.6.5/lib/ruby/2.6.0/digest.rb:100:in `block in Digest'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/ruby-2.6.5/lib/ruby/2.6.0/digest.rb:98:in `synchronize'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/ruby-2.6.5/lib/ruby/2.6.0/digest.rb:98:in `Digest'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/shared_helpers.rb:225:in `digest'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/source/git.rb:287:in `uri_hash'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/source/git.rb:321:in `git_scope'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/source/git.rb:216:in `cache_path'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/source/git.rb:299:in `git_proxy'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/source/git.rb:225:in `revision'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/source/git.rb:76:in `to_s'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/source_list.rb:85:in `each'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/source_list.rb:85:in `sort_by'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/source_list.rb:85:in `lock_sources'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/source_list.rb:104:in `replace_sources!'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/definition.rb:674:in `converge_sources'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/definition.rb:120:in `initialize'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/dsl.rb:234:in `new'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/dsl.rb:234:in `to_definition'
Aug 23 14:29:01 odcf-vm118 zammad-websocket-1.service: bundler: failed to load command: script/websocket-server.rb (script/websocket-server.rb)
Aug 23 14:29:01 odcf-vm118 zammad-websocket-1.service: LoadError: library not found for class Digest::SHA1 -- digest/sha1
Aug 23 14:29:01 odcf-vm118 zammad-websocket-1.service: /opt/zammad/vendor/ruby-2.6.5/lib/ruby/2.6.0/digest.rb:16:in `const_missing'
[...]
Aug 23 14:29:01 odcf-vm118 zammad-web-1.service: LoadError: library not found for class Digest::SHA1 -- digest/sha1
Aug 23 14:29:01 odcf-vm118 zammad-web-1.service: /opt/zammad/vendor/ruby-2.6.5/lib/ruby/2.6.0/digest.rb:16:in `const_missing'
[...]
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/dsl.rb:13:in `evaluate'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/definition.rb:34:in `build'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler.rb:135:in `definition'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler.rb:101:in `setup'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/setup.rb:20:in `<top (required)>'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/ruby-2.6.5/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
Aug 23 14:29:01 odcf-vm118 zammad-worker-1.service: /opt/zammad/vendor/ruby-2.6.5/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
Aug 23 14:29:01 odcf-vm118 zammad-websocket-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/dsl.rb:13:in `evaluate'
Aug 23 14:29:01 odcf-vm118 zammad-websocket-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/definition.rb:34:in `build'
Aug 23 14:29:01 odcf-vm118 zammad-websocket-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler.rb:135:in `definition'
Aug 23 14:29:01 odcf-vm118 zammad-websocket-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler.rb:101:in `setup'
Aug 23 14:29:01 odcf-vm118 zammad-websocket-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/setup.rb:20:in `<top (required)>'
Aug 23 14:29:01 odcf-vm118 zammad-websocket-1.service: /opt/zammad/vendor/ruby-2.6.5/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
Aug 23 14:29:01 odcf-vm118 zammad-websocket-1.service: /opt/zammad/vendor/ruby-2.6.5/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
Aug 23 14:29:01 odcf-vm118 zammad-web-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/definition.rb:34:in `build'
Aug 23 14:29:01 odcf-vm118 zammad-web-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler.rb:135:in `definition'
Aug 23 14:29:01 odcf-vm118 zammad-web-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler.rb:101:in `setup'
Aug 23 14:29:01 odcf-vm118 zammad-web-1.service: /opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/setup.rb:20:in `<top (required)>'
Aug 23 14:29:01 odcf-vm118 zammad-web-1.service: /opt/zammad/vendor/ruby-2.6.5/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
Aug 23 14:29:01 odcf-vm118 zammad-web-1.service: /opt/zammad/vendor/ruby-2.6.5/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
Aug 23 14:29:01 odcf-vm118 systemd: Unit zammad-web-1.service entered failed state.

Reinstallation fails, too

Since the migration documentation on https://docs.zammad.org/en/latest/appendix/backup-and-restore.html states, that sometimes a reinstallation of Zammad is required, I removed and reinstalled it (yum remove zammad; yum install zammad).

During the (re)installation I get various errors regarding an already existing table “smime_certificates” (also shortened due to post size restriction):

yum install zammad
[...]
Running transaction
  Installing : zammad-3.4.0-1596781606.1adc98bf.centos7.x86_64                                                                                                                                                 1/1 
# (Re)creating init scripts
Nothing to do.
Nothing to do.
Nothing to do.
# Enabling Zammad on boot
# Stopping Zammad
# database.yml found. Updating db...
rake aborted!
StandardError: An error has occurred, all later migrations canceled:

Mysql2::Error: Table 'smime_certificates' already exists: CREATE TABLE `smime_certificates` (`id` bigint NOT NULL AUTO_INCREMENT PRIMARY KEY, `subject` varchar(500) NOT NULL, `doc_hash` varchar(250) NOT NULL, `fingerprint` varchar(250) NOT NULL, `modulus` varchar(1024) NOT NULL, `not_before_at` datetime, `not_after_at` datetime, `raw` mediumblob NOT NULL, `private_key` mediumblob, `private_key_secret` varchar(500), `created_at` datetime(3) NOT NULL, `updated_at` datetime(3) NOT NULL)
[...]
/opt/zammad/bin/bundle:3:in `<main>'

Caused by:
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'smime_certificates' already exists: CREATE TABLE `smime_certificates` (`id` bigint NOT NULL AUTO_INCREMENT PRIMARY KEY, `subject` varchar(500) NOT NULL, `doc_hash` varchar(250) NOT NULL, `fingerprint` varchar(250) NOT NULL, `modulus` varchar(1024) NOT NULL, `not_before_at` datetime, `not_after_at` datetime, `raw` mediumblob NOT NULL, `private_key` mediumblob, `private_key_secret` varchar(500), `created_at` datetime(3) NOT NULL, `updated_at` datetime(3) NOT NULL)
[...]
/opt/zammad/bin/bundle:3:in `<main>'

Caused by:
Mysql2::Error: Table 'smime_certificates' already exists
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_query'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `block in query'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `handle_interrupt'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `query'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:187:in `block (2 levels) in execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:186:in `block in execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_adapter.rb:581:in `block (2 levels) in log'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_adapter.rb:580:in `block in log'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_adapter.rb:571:in `log'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:185:in `execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/mysql/database_statements.rb:28:in `execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract/schema_statements.rb:311:in `create_table'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:871:in `block in method_missing'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:840:in `block in say_with_time'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:840:in `say_with_time'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:860:in `method_missing'
/opt/zammad/db/migrate/20200121000001_smime_support.rb:57:in `up'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:817:in `exec_migration'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:798:in `block (2 levels) in migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:797:in `block in migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in `with_connection'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:796:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:977:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1292:in `block in execute_migration_in_transaction'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1345:in `ddl_transaction'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1291:in `execute_migration_in_transaction'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1263:in `block in migrate_without_lock'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1262:in `each'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1262:in `migrate_without_lock'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1210:in `block in migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1363:in `with_advisory_lock'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1210:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1036:in `up'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1011:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/tasks/database_tasks.rb:172:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/railties/databases.rake:60:in `block (2 levels) in <main>'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/exe/rake:27:in `<top (required)>'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:74:in `load'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:74:in `kernel_load'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:28:in `run'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli.rb:463:in `exec'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli.rb:27:in `dispatch'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli.rb:18:in `start'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/exe/bundle:30:in `block in <top (required)>'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/friendly_errors.rb:124:in `with_friendly_errors'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/exe/bundle:22:in `<top (required)>'
/opt/zammad/bin/bundle:3:in `load'
/opt/zammad/bin/bundle:3:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
== 20200121000001 SMIMESupport: migrating =====================================
-- create_table(:smime_certificates)
# Updating translations...
# Configuring Elasticsearch...
-> removing [ingest-attachment]...
-> Installing ingest-attachment
-> Failed installing ingest-attachment
-> Rolling back ingest-attachment
-> Rolled back ingest-attachment
Exception in thread "main" java.net.ConnectException: Connection timed out
	at java.base/sun.nio.ch.Net.connect0(Native Method)
	at java.base/sun.nio.ch.Net.connect(Net.java:503)
	at java.base/sun.nio.ch.Net.connect(Net.java:492)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:333)
	at java.base/java.net.Socket.connect(Socket.java:648)
	at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:290)
	at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)
	at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182)
	at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
	at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)
	at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:265)
	at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:372)
	at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:177)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1194)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1082)
	at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:163)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:142)
	at org.elasticsearch.plugins.InstallPluginCommand.urlExists(InstallPluginCommand.java:418)
	at org.elasticsearch.plugins.InstallPluginCommand.getElasticUrl(InstallPluginCommand.java:374)
	at org.elasticsearch.plugins.InstallPluginCommand.download(InstallPluginCommand.java:305)
	at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:251)
	at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:224)
	at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
	at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127)
	at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:91)
	at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127)
	at org.elasticsearch.cli.Command.main(Command.java:90)
	at org.elasticsearch.plugins.PluginCli.main(PluginCli.java:47)
# Starting Zammad
# Creating webserver bootstart
# Restarting webserver nginx
####################################################################################

Add your fully qualified domain name or public IP to servername directive of
nginx, if this installation is done on a remote server. You have to change:
/etc/nginx/conf.d/zammad.conf and restart nginx process.
Otherwise just open http://localhost/ in your browser to start using Zammad.


 Remember to enable selinux and firewall rules!

Use the following commands:
	setsebool httpd_can_network_connect on -P
	firewall-cmd --zone=public --add-service=http --permanent
	firewall-cmd --zone=public --add-service=https --permanent
	firewall-cmd --reload

####################################################################################
  Verifying  : zammad-3.4.0-1596781606.1adc98bf.centos7.x86_64                                                                                                                                                 1/1 

Installed:
  zammad.x86_64 0:3.4.0-1596781606.1adc98bf.centos7                                                                                                                                                                

Complete!

This time the zammad service starts and the webpage then shows up, but I cannot log in (“CSRF Token verification failed” even though all cookes have been cleared).

Any help is highly appreciated.
Frank

I also tried to install a slightly older version of zammad (3.4.0-1594361885.98561ceb.centos7), then restoring from the backup and finally do a yum upgrade to zammad-3.4.0-1596781606.1adc98bf.centos7.

However I got the same errors regarding the table smime_certificates. See the complete error messages below.

Any help is highly appreciated. I am at a complete loss here.

Thanks, Frank


# yum update zammad
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package zammad.x86_64 0:3.4.0-1594361885.98561ceb.centos7 will be updated
---> Package zammad.x86_64 0:3.4.0-1596781606.1adc98bf.centos7 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================================================================================================================
 Package                                     Arch                                        Version                                                                 Repository                                   Size
===================================================================================================================================================================================================================
Updating:
 zammad                                      x86_64                                      3.4.0-1596781606.1adc98bf.centos7                                       zammad                                      242 M

Transaction Summary
===================================================================================================================================================================================================================
Upgrade  1 Package

Total download size: 242 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
zammad-3.4.0-1596781606.1adc98bf.centos7.x86_64.rpm                                                                                                                                         | 242 MB  00:00:19     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : zammad-3.4.0-1596781606.1adc98bf.centos7.x86_64                                                                                                                                                 1/2 
# (Re)creating init scripts
Nothing to do.
Nothing to do.
Nothing to do.
# Enabling Zammad on boot
# Stopping Zammad
# database.yml found. Updating db...
rake aborted!
StandardError: An error has occurred, all later migrations canceled:

Mysql2::Error: Table 'smime_certificates' already exists: CREATE TABLE `smime_certificates` (`id` bigint NOT NULL AUTO_INCREMENT PRIMARY KEY, `subject` varchar(500) NOT NULL, `doc_hash` varchar(250) NOT NULL, `fingerprint` varchar(250) NOT NULL, `modulus` varchar(1024) NOT NULL, `not_before_at` datetime, `not_after_at` datetime, `raw` mediumblob NOT NULL, `private_key` mediumblob, `private_key_secret` varchar(500), `created_at` datetime(3) NOT NULL, `updated_at` datetime(3) NOT NULL)
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_query'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `block in query'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `handle_interrupt'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `query'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:187:in `block (2 levels) in execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:186:in `block in execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_adapter.rb:581:in `block (2 levels) in log'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_adapter.rb:580:in `block in log'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_adapter.rb:571:in `log'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:185:in `execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/mysql/database_statements.rb:28:in `execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract/schema_statements.rb:311:in `create_table'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:871:in `block in method_missing'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:840:in `block in say_with_time'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:840:in `say_with_time'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:860:in `method_missing'
/opt/zammad/db/migrate/20200121000001_smime_support.rb:57:in `up'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:817:in `exec_migration'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:798:in `block (2 levels) in migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:797:in `block in migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in `with_connection'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:796:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:977:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1292:in `block in execute_migration_in_transaction'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1345:in `ddl_transaction'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1291:in `execute_migration_in_transaction'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1263:in `block in migrate_without_lock'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1262:in `each'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1262:in `migrate_without_lock'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1210:in `block in migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1363:in `with_advisory_lock'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1210:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1036:in `up'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1011:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/tasks/database_tasks.rb:172:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/railties/databases.rake:60:in `block (2 levels) in <main>'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/exe/rake:27:in `<top (required)>'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:74:in `load'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:74:in `kernel_load'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:28:in `run'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli.rb:463:in `exec'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli.rb:27:in `dispatch'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli.rb:18:in `start'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/exe/bundle:30:in `block in <top (required)>'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/friendly_errors.rb:124:in `with_friendly_errors'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/exe/bundle:22:in `<top (required)>'
/opt/zammad/bin/bundle:3:in `load'
/opt/zammad/bin/bundle:3:in `<main>'

Caused by:
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'smime_certificates' already exists: CREATE TABLE `smime_certificates` (`id` bigint NOT NULL AUTO_INCREMENT PRIMARY KEY, `subject` varchar(500) NOT NULL, `doc_hash` varchar(250) NOT NULL, `fingerprint` varchar(250) NOT NULL, `modulus` varchar(1024) NOT NULL, `not_before_at` datetime, `not_after_at` datetime, `raw` mediumblob NOT NULL, `private_key` mediumblob, `private_key_secret` varchar(500), `created_at` datetime(3) NOT NULL, `updated_at` datetime(3) NOT NULL)
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_query'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `block in query'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `handle_interrupt'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `query'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:187:in `block (2 levels) in execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:186:in `block in execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_adapter.rb:581:in `block (2 levels) in log'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_adapter.rb:580:in `block in log'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_adapter.rb:571:in `log'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:185:in `execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/mysql/database_statements.rb:28:in `execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract/schema_statements.rb:311:in `create_table'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:871:in `block in method_missing'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:840:in `block in say_with_time'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:840:in `say_with_time'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:860:in `method_missing'
/opt/zammad/db/migrate/20200121000001_smime_support.rb:57:in `up'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:817:in `exec_migration'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:798:in `block (2 levels) in migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:797:in `block in migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in `with_connection'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:796:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:977:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1292:in `block in execute_migration_in_transaction'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1345:in `ddl_transaction'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1291:in `execute_migration_in_transaction'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1263:in `block in migrate_without_lock'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1262:in `each'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1262:in `migrate_without_lock'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1210:in `block in migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1363:in `with_advisory_lock'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1210:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1036:in `up'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1011:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/tasks/database_tasks.rb:172:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/railties/databases.rake:60:in `block (2 levels) in <main>'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/exe/rake:27:in `<top (required)>'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:74:in `load'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:74:in `kernel_load'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:28:in `run'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli.rb:463:in `exec'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli.rb:27:in `dispatch'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli.rb:18:in `start'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/exe/bundle:30:in `block in <top (required)>'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/friendly_errors.rb:124:in `with_friendly_errors'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/exe/bundle:22:in `<top (required)>'
/opt/zammad/bin/bundle:3:in `load'
/opt/zammad/bin/bundle:3:in `<main>'

Caused by:
Mysql2::Error: Table 'smime_certificates' already exists
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_query'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `block in query'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `handle_interrupt'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `query'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:187:in `block (2 levels) in execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:186:in `block in execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_adapter.rb:581:in `block (2 levels) in log'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_adapter.rb:580:in `block in log'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_adapter.rb:571:in `log'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:185:in `execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/mysql/database_statements.rb:28:in `execute'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract/schema_statements.rb:311:in `create_table'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:871:in `block in method_missing'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:840:in `block in say_with_time'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:840:in `say_with_time'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:860:in `method_missing'
/opt/zammad/db/migrate/20200121000001_smime_support.rb:57:in `up'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:817:in `exec_migration'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:798:in `block (2 levels) in migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:797:in `block in migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in `with_connection'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:796:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:977:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1292:in `block in execute_migration_in_transaction'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1345:in `ddl_transaction'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1291:in `execute_migration_in_transaction'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1263:in `block in migrate_without_lock'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1262:in `each'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1262:in `migrate_without_lock'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1210:in `block in migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1363:in `with_advisory_lock'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1210:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1036:in `up'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/migration.rb:1011:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/tasks/database_tasks.rb:172:in `migrate'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.3/lib/active_record/railties/databases.rake:60:in `block (2 levels) in <main>'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/rake-12.3.3/exe/rake:27:in `<top (required)>'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:74:in `load'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:74:in `kernel_load'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli/exec.rb:28:in `run'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli.rb:463:in `exec'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli.rb:27:in `dispatch'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/cli.rb:18:in `start'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/exe/bundle:30:in `block in <top (required)>'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/friendly_errors.rb:124:in `with_friendly_errors'
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/exe/bundle:22:in `<top (required)>'
/opt/zammad/bin/bundle:3:in `load'
/opt/zammad/bin/bundle:3:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
== 20200121000001 SMIMESupport: migrating =====================================
-- create_table(:smime_certificates)
# Updating translations...
# Configuring Elasticsearch...
-> Installing ingest-attachment
-> Failed installing ingest-attachment
-> Rolling back ingest-attachment
-> Rolled back ingest-attachment
Exception in thread "main" java.net.ConnectException: Connection timed out
	at java.base/sun.nio.ch.Net.connect0(Native Method)
	at java.base/sun.nio.ch.Net.connect(Net.java:503)
	at java.base/sun.nio.ch.Net.connect(Net.java:492)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:333)
	at java.base/java.net.Socket.connect(Socket.java:648)
	at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:290)
	at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)
	at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182)
	at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
	at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)
	at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:265)
	at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:372)
	at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:177)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1194)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1082)
	at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:163)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:142)
	at org.elasticsearch.plugins.InstallPluginCommand.urlExists(InstallPluginCommand.java:418)
	at org.elasticsearch.plugins.InstallPluginCommand.getElasticUrl(InstallPluginCommand.java:374)
	at org.elasticsearch.plugins.InstallPluginCommand.download(InstallPluginCommand.java:305)
	at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:251)
	at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:224)
	at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
	at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127)
	at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:91)
	at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127)
	at org.elasticsearch.cli.Command.main(Command.java:90)
	at org.elasticsearch.plugins.PluginCli.main(PluginCli.java:47)
# Starting Zammad
# Creating webserver bootstart
# Restarting webserver nginx
####################################################################################

Add your fully qualified domain name or public IP to servername directive of
nginx, if this installation is done on a remote server. You have to change:
/etc/nginx/conf.d/zammad.conf and restart nginx process.
Otherwise just open http://localhost/ in your browser to start using Zammad.


 Remember to enable selinux and firewall rules!

Use the following commands:
	setsebool httpd_can_network_connect on -P
	firewall-cmd --zone=public --add-service=http --permanent
	firewall-cmd --zone=public --add-service=https --permanent
	firewall-cmd --reload

####################################################################################
  Cleanup    : zammad-3.4.0-1594361885.98561ceb.centos7.x86_64                                                                                                                                                 2/2 
  Verifying  : zammad-3.4.0-1596781606.1adc98bf.centos7.x86_64                                                                                                                                                 1/2 
  Verifying  : zammad-3.4.0-1594361885.98561ceb.centos7.x86_64                                                                                                                                                 2/2 

Updated:
  zammad.x86_64 0:3.4.0-1596781606.1adc98bf.centos7                                                                                                                                                                

Complete!
# 

I tried yet an other way:

  • create zammad database in MariaDB
  • “preseed” /opt/zammad/config/database.yml with the one from the old (to-be-migrated) installation
  • yum install zammad-3.4.0-1594361885.98561ceb.centos7.x86_64

The error during the installation (no beforehand restore) now is

# Updating translations...
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_query': Mysql2::Error: Incorrect string value: '\xD0\x91\xD1\x8A\xD0\xBB...' for column `zammad`.`locales`.`name` at row 1: INSERT INTO `locales` (`locale`, `alias`, `name`, `created_at`, `updated_at`) VALUES ('bg', '', 'Bulgarian (Български)', '2020-08-25 17:51:04.230000', '2020-08-25 17:51:04.230000') (ActiveRecord::StatementInvalid)
[...]
/opt/zammad/vendor/bundle/ruby/2.6.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_query': Incorrect string value: '\xD0\x91\xD1\x8A\xD0\xBB...' for column `zammad`.`locales`.`name` at row 1 (Mysql2::Error)
[...]
-- Nevermind, no es_url is set, leaving Elasticsearch untouched ...!
[...]

???

Anyone? I am currently at a complete loss and unable to migrate our Zammad installation, which - according to the manual - should be an easy process.

Any help or hint is highly appreciated

Looks like you have several issues here.
First of all, please ensure the import does run without issues, because right now it feels like importing already fails. This can happen due to inconstent data.

It looks like you’re migrating from an older Zammad version than your current (so 3.3 or lower).
There’s a known issue that will be fixed with Zamamd 3.5 - it’s about the order of restoration. Basically restore your database before the filesystem. (see: https://github.com/zammad/zammad/issues/3160 )

If you can, please start with a clean install for your destination host.
You tried a lot which may lead to issues.


If you want to, you can also do the following manual steps:

  • install Zammad and its requirements
  • stop both, your old and new Zammad installation
  • dump the database of your old installation
  • check if your old installation contains a folder /opt/zammad/storage - if so, backup it
  • go to your new host and restore your database dump
  • if you had /opt/zammad/storage in your old installation, now copy the backup for the location in your new system
  • run zammad run rake db:migrate
  • if nothing caught fire try to start Zammad on the new system.
    • your first way will be to have a look at your logfile, issues with your database etc. will be living there

Also ensure that you followed the mysql requirenments from our documentation and you’re using UTF-8 as encoding.

Let’s handle follow up issues from that point then, that’s easier than try and error on “old” issues.

Thanks a lot for your suggestions and the link to the related issue. I had already started most “experiments” from a throughly cleaned installation VM (packages uninstalled, left-over files manually removed, database manually dropped), but I might even start from a completely freshly installed VM next time. I will continue next week (after vacation), so there will probably be no be further updates from my side this week.

Thank you very much @MrGeneration and sorry for the delay. I waited for Zammad 3.5 and tried the migration again. However no matter what I did, some of the Zammad services (zammad-websocket-xzy) normally didn’t start (no error messages in the logs) and Zammad stayed unusable.

Finally I updated the current installation to the latest 3.5 version and used the exact same version on the target server. Since I was now using the identical version on both sides I assumed, that it should suffice to migrate the database w/o migrating any files (there don’t seem to be any configurations/settings in the files) and I followed more or less your instructions above:

  • install zammad 3.5 on target server (same version as on old server)
  • install MariaDB and create zammad database user as on old server
  • copy database.yml from current server
  • restore database dump of old server using pure mysql restore
  • restart services

This leads to an almost working Zammad installation. But: LDAP integration doesn’t work. Zammad loops forever (= three to four hours) in “Counting entries, this could take a while”. In a fresh installation (I checked with PostgreSQL and with MariaDB) this step takes three to four minutes (max). Could it be a problem, that our current installation already contains around 6000 tickets with local accounts using the same email addresses as the to-be-added Active Directory accounts? Since enabling LDAP is one of the top motivations why we want to migrate the installation, this is somehow annoying :wink:

Is there a way to debug such a behaviour?

Has nobody ever experienced the problem of failing LDAP integration as described above? Or should I make this a separate thread?

Sorry for the wait.
I’ve seen LDAP hanging itself in very rare cases.

Sometimes reloading the web app helps, if it doesn’t, restarting Zammad always helped up to now.
As it was very rare and never striked consistently I’ve never considered it a real issue.

If it still hangs after restarting, ensure that you’re not hitting any limits on your ldap server. If it’s configured exact the same way it was on your old instance, this should still work of course.

Maybe also have a look into the logfiles if in case anything shows up there.
My favorite search terms in Zammad log files are WARN and ERROR

No problem.

The LDAP issue is persistent through migrations. It is still the same as in LDAP Configuration "Counting entries. This may take a while" never ends that was never solved. Now we migrated from Debian to CentOS and have the exactly same problem.

LDAP config works 100% fine with the exactly same settings with a freshly installed Zammad (CentOS). Therefore I don’t think we hit any limits on the LDAP side. Zammad has been restarted several times and even updated once.

There are no LDAP related “WARN” or “ERROR” entries in production.log during the “Counting entries”

I’d suggest to create a new thread for that.
It’s getting quite bad in terms overview.

Please also include the ldap server you’re using.
You may have already mentioned it, but I’m loosing track of the information. :frowning:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.