Skip to content

Fix startup error: undefined method 'job_schema_version' for Que:Module#343

Merged
ZimbiX merged 1 commit intomasterfrom
fix-startup-error-undefined-method-job_schema_version
Feb 25, 2022
Merged

Fix startup error: undefined method 'job_schema_version' for Que:Module#343
ZimbiX merged 1 commit intomasterfrom
fix-startup-error-undefined-method-job_schema_version

Conversation

@ZimbiX
Copy link
Copy Markdown
Member

@ZimbiX ZimbiX commented Feb 25, 2022

Que was throwing an error on startup, and even for a simple command like que --version:

➜ que --version
Traceback (most recent call last):
	18: from /home/brendan/.rbenv/versions/2.7.3/bin/que:25:in `<main>'
	17: from /home/brendan/.rbenv/versions/2.7.3/bin/que:25:in `load'
	16: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/bin/que:9:in `<top (required)>'
	15: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/bin/command_line_interface.rb:157:in `parse'
	14: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/2.7.0/optparse.rb:1691:in `parse!'
	13: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/2.7.0/optparse.rb:1666:in `permute!'
	12: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/2.7.0/optparse.rb:1569:in `order!'
	11: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/2.7.0/optparse.rb:1575:in `parse_in_order'
	10: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/2.7.0/optparse.rb:1575:in `catch'
	9: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/2.7.0/optparse.rb:1589:in `block in parse_in_order'
	8: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/bin/command_line_interface.rb:108:in `block (2 levels) in parse'
	7: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:in `require'
	6: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:in `require'
	5: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/lib/que.rb:6:in `<top (required)>'
	4: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/lib/que.rb:37:in `<module:Que>'
	3: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/lib/que.rb:37:in `require_relative'
	2: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/lib/que/job.rb:5:in `<top (required)>'
	1: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/lib/que/job.rb:6:in `<module:Que>'
/home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/lib/que/job.rb:24:in `<class:Job>': undefined method `job_schema_version' for Que:Module (NoMethodError)

The version file now needs to be required earlier, since Que.job_schema_version is used at require time by other files.

Somehow, this error doesn't occur when running Que from its own repo, or using it by path: in a Gemfile... So it sadly went undetected!

…ule`

Que was throwing an error on startup, and even for a simple command like `que --version`:

```
➜ que --version
Traceback (most recent call last):
	18: from /home/brendan/.rbenv/versions/2.7.3/bin/que:25:in `<main>'
	17: from /home/brendan/.rbenv/versions/2.7.3/bin/que:25:in `load'
	16: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/bin/que:9:in `<top (required)>'
	15: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/bin/command_line_interface.rb:157:in `parse'
	14: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/2.7.0/optparse.rb:1691:in `parse!'
	13: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/2.7.0/optparse.rb:1666:in `permute!'
	12: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/2.7.0/optparse.rb:1569:in `order!'
	11: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/2.7.0/optparse.rb:1575:in `parse_in_order'
	10: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/2.7.0/optparse.rb:1575:in `catch'
	9: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/2.7.0/optparse.rb:1589:in `block in parse_in_order'
	8: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/bin/command_line_interface.rb:108:in `block (2 levels) in parse'
	7: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:in `require'
	6: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:in `require'
	5: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/lib/que.rb:6:in `<top (required)>'
	4: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/lib/que.rb:37:in `<module:Que>'
	3: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/lib/que.rb:37:in `require_relative'
	2: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/lib/que/job.rb:5:in `<top (required)>'
	1: from /home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/lib/que/job.rb:6:in `<module:Que>'
/home/brendan/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/que-1.3.0/lib/que/job.rb:24:in `<class:Job>': undefined method `job_schema_version' for Que:Module (NoMethodError)
```

The version file now needs to be required earlier, since `Que.job_schema_version` is used at require time by other files.

Somehow, this error doesn't occur when running Que from its own repo, or using it by `path:` in a Gemfile... So it sadly went undetected!
@ZimbiX ZimbiX merged commit 5b33d07 into master Feb 25, 2022
@ZimbiX ZimbiX deleted the fix-startup-error-undefined-method-job_schema_version branch February 25, 2022 07:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant