Update from 6.4.0 to 6.4.1 leads into an nginx 502 Error

  • Used Zammad version: 6.4.0 → 6.4.1
  • Used Zammad installation type: package
  • Operating system: Debian11
  • Browser + version: Firefox 134.0.1, Chrome 132.0.6834.84

Expected behavior:

  • Zammad is available after updating as usual

Actual behavior:

  • After the update attempt via apt update and apt upgrade the web interface of zammad is no longer accessible (nginx Error 502)

Steps to reproduce the behavior:

  • Everything on installing the zammad update starts as usual, the output shows that the update process stops zammad and clears the cache - that seems to me normal
  • than - and that seems unusual - there appears

/opt/zammad/lib/generators/graphql_introspection/graphql_introspection_generator.rb:3:in `<main>': uninitialized constant Generators (NameError)

in the output followed by lines like

class Generators::GraphqlIntrospection::GraphqlIntrospectionGenerator < Rails::Generators::Base
                ^^^^^^^^^^^^^^^^^^^^^^
Did you mean?  Enumerator
        from <internal:/opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:38:in `require'
        from <internal:/opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:38:in `require'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:26:in `require'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/cref.rb:91:in `const_get'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/cref.rb:91:in `get'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:173:in `block in actual_eager_load_dir'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/helpers.rb:47:in `block in ls'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/helpers.rb:25:in `each'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/helpers.rb:25:in `ls'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:168:in `actual_eager_load_dir'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:17:in `block (2 levels) in eager_load'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:16:in `each'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:16:in `block in eager_load'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:10:in `synchronize'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:10:in `eager_load'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/loader.rb:413:in `block in eager_load_all'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/loader.rb:411:in `each'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/loader.rb:411:in `eager_load_all'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/application/finisher.rb:80:in `block in <module:Finisher>'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/initializable.rb:32:in `instance_exec'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/initializable.rb:32:in `run'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/initializable.rb:61:in `block in run_initializers'
        from /opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/tsort.rb:228:in `block in tsort_each'
        from /opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
        from /opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/tsort.rb:431:in `each_strongly_connected_component_from'
        from /opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/tsort.rb:349:in `block in each_strongly_connected_component'
        from /opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/tsort.rb:347:in `each'
        from /opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/tsort.rb:347:in `call'
        from /opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/tsort.rb:347:in `each_strongly_connected_component'
        from /opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/tsort.rb:226:in `tsort_each'
        from /opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/tsort.rb:205:in `tsort_each'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/initializable.rb:60:in `run_initializers'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/application.rb:426:in `initialize!'
        from /opt/zammad/config/environment.rb:7:in `<main>'
        from <internal:/opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:38:in `require'
        from <internal:/opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:38:in `require'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in `require'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/application.rb:402:in `require_environment!'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/command/actions.rb:20:in `boot_application!'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/commands/runner/runner_command.rb:28:in `perform'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/thor-1.3.2/lib/thor/command.rb:28:in `run'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/thor-1.3.2/lib/thor/invocation.rb:127:in `invoke_command'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/command/base.rb:178:in `invoke_command'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/thor-1.3.2/lib/thor.rb:538:in `dispatch'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/command/base.rb:73:in `perform'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/command.rb:71:in `block in invoke'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/command.rb:149:in `with_argv'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/command.rb:69:in `invoke'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/railties-7.1.5.1/lib/rails/commands.rb:18:in `<main>'
        from <internal:/opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:38:in `require'
        from <internal:/opt/zammad/vendor/ruby-3.2.4/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:38:in `require'
        from /opt/zammad/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /opt/zammad/bin/rails:4:in `<main>'

I’ll tryed to post the whole console output from ‘apt upgrade’ onwards here, but it’s to long :unamused:

Luckily I still had a snapshot and was able to return to the original situation, so zammad continues to run on 6.4.0 at the moment

Could it be a configuration problem somwhere? and why wasn’t I confrontated with it bevore?

Can anyone help me how to get rid of this problems and how I can install the update and get zammad working again?

Thank you very much in advance

When trying to analyse the problem that still exists, I noticed that there are two file paths in which a

graphql_introspection_generator.rb

can be found, which have different contents. One is

/opt/zammad/lib/generators/zammad/graphql_introspection_generator.rb

the other is

/opt/zammad/lib/generators/graphql_introspection/graphql_introspection_generator.rb

for which I receive the error message
However, this path does not exist on zammad/lib/generators/zammad at stable · zammad/zammad · GitHub.
For what Do I need the path

/opt/zammad/lib/generators/graphql_introspection/

?
and would it be possible to delete the entire path to solve the problem?

Thank you for your support

Dropping source code that belongs to Zammad is hardly a solution and might even break other things.

so would a completely new installation be the better choice, with a data restore from a backup, in the expectation that the problem will not be re-imported from the backup?

You can try a backup and restore on a fresh installation with FULL_FS_DUMP=no, yes

Thanks for the advice. It will probably be a while before I find the time for a complete reinstallation. However, I will be happy to report the results here.

1 Like