I am trying to run msfdb but I can't seem to do so because I get a LoadError and 2 ThreadErrors. Here is the full stack:
/usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/kernel.rb:35:in `require': cannot load such file -- net/smtp (LoadError)
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/kernel.rb:35:in `require'
from /usr/share/metasploit-framework/lib/rex/proto/sms/model.rb:29:in `<top (required)>'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/kernel.rb:27:in `require'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/kernel.rb:27:in `require'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/loader/helpers.rb:95:in `const_get'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/loader/helpers.rb:95:in `cget'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/loader.rb:237:in `block (2 levels) in eager_load'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/loader/helpers.rb:26:in `block in ls'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/loader/helpers.rb:18:in `each_child'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/loader/helpers.rb:18:in `ls'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/loader.rb:232:in `block in eager_load'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/loader.rb:217:in `synchronize'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/loader.rb:217:in `eager_load'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/loader.rb:317:in `each'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/loader.rb:317:in `eager_load_all'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/railties-6.1.5/lib/rails/application/finisher.rb:133:in `block in <module:Finisher>'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/railties-6.1.5/lib/rails/initializable.rb:32:in `instance_exec'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/railties-6.1.5/lib/rails/initializable.rb:32:in `run'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/railties-6.1.5/lib/rails/initializable.rb:61:in `block in run_initializers'
from /home/johnmap007/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/tsort.rb:228:in `block in tsort_each'
from /home/johnmap007/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
from /home/johnmap007/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/tsort.rb:431:in `each_strongly_connected_component_from'
from /home/johnmap007/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/tsort.rb:349:in `block in each_strongly_connected_component'
from /home/johnmap007/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/tsort.rb:347:in `each'
from /home/johnmap007/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/tsort.rb:347:in `call'
from /home/johnmap007/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/tsort.rb:347:in `each_strongly_connected_component'
from /home/johnmap007/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/tsort.rb:226:in `tsort_each'
from /home/johnmap007/.rvm/rubies/ruby-3.1.0/lib/ruby/3.1.0/tsort.rb:205:in `tsort_each'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/railties-6.1.5/lib/rails/initializable.rb:60:in `run_initializers'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/railties-6.1.5/lib/rails/application.rb:391:in `initialize!'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/railties-6.1.5/lib/rails/railtie.rb:207:in `public_send'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/railties-6.1.5/lib/rails/railtie.rb:207:in `method_missing'
from /usr/share/metasploit-framework/config/environment.rb:4:in `<top (required)>'
from /usr/share/metasploit-framework/lib/msfenv.rb:17:in `require'
from /usr/share/metasploit-framework/lib/msfenv.rb:17:in `<top (required)>'
from /usr/bin/msfconsole:18:in `require'
from /usr/bin/msfconsole:18:in `<main>'
/usr/bin/msfconsole: warning: Exception in finalizer #<Proc:0x00007f4a9fb4fc80 /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/concurrent-ruby-1.0.5/lib/concurrent/atomic/ruby_thread_local_var.rb:85>
/usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/logging-2.3.0/lib/logging/diagnostic_context.rb:471:in `new': can't alloc thread (ThreadError)
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/logging-2.3.0/lib/logging/diagnostic_context.rb:471:in `create_with_logging_context'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/logging-2.3.0/lib/logging/diagnostic_context.rb:436:in `new'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/concurrent-ruby-1.0.5/lib/concurrent/atomic/ruby_thread_local_var.rb:86:in `block in threadlocal_finalizer'
/usr/bin/msfconsole: warning: Exception in finalizer #<Proc:0x00007f4a9fb4fde8 /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/concurrent-ruby-1.0.5/lib/concurrent/atomic/ruby_thread_local_var.rb:85>
/usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/logging-2.3.0/lib/logging/diagnostic_context.rb:471:in `new': can't alloc thread (ThreadError)
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/logging-2.3.0/lib/logging/diagnostic_context.rb:471:in `create_with_logging_context'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/logging-2.3.0/lib/logging/diagnostic_context.rb:436:in `new'
from /usr/share/metasploit-framework/vendor/bundle/ruby/3.1.0/gems/concurrent-ruby-1.0.5/lib/concurrent/atomic/ruby_thread_local_var.rb:86:in `block in threadlocal_finalizer'
Side Note: From what I understand, the 2 ThreadErrors that were thrown were because I have insufficient memory? I have 16GB total though, that should be enough.
Before this, I was unable to install certain dependencies because of some weird reason but I installed Oracle Instant Client, which allowed me to install ruby-oci8
, which then let me continue with the rest of the dependency installation. I reran bundle install
for that and that fixed most of it (I had to manually install certain gems with gem install <gem>
but reran bundle install
to make sure I had everything at the end). Now I'm getting these weird LoadErrors and ThreadErrors. One thing to note is that I'm executing msfdb run
and msfconsole
as root (It's necessary for msfdb run
because it won't let me run it as a normal user), but when I run msfconsole as a normal user, metasploit loads as expected without any errors. Can someone please help me fix this?
Starting with Ruby 3.1,
net-smtp
is a bundled gem.Probably, you just need to add
to your
Gemfile
.