Getting error ThreadError and server got hang










1















I am running rails 5.2.1 app in the ec2 server of instance type t3.small. But server got hang after a few days run. In the puma_access.log there is following error log



Listen loop error: #<ThreadError: can't create Thread: Resource temporarily unavailable>
/var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:87:in `initialize'
/var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:87:in `new'
/var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:87:in `spawn_thread'
/var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:162:in `block in <<'
/var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:154:in `synchronize'
/var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:154:in `<<'
/var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:398:in `block in handle_servers'
/var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:385:in `each'
/var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:385:in `handle_servers'
/var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:358:in `block in run'


In the server we are connecting to two RDS instance, second by using the class



class SecondDbBase < ActiveRecord::Base
establish_connection "#Rails.env_sec".to_sym
self.abstract_class = true

def readonly?
true
end

def write_attribute(name, value)
raise NotImplementedError, 'read only table'
end

end


and in the corresponding model I have extended the class



class Student < SecondDbBase


puma.rb file



workers 1
# Min and Max threads per worker
threads 1, 6

app_dir = File.expand_path("../..", __FILE__)
shared_dir = "#app_dir/shared"
tmp_dir = "#app_dir/tmp"

# Default to production
rails_env = ENV['RAILS_ENV'] || "production"
environment rails_env

# Set up socket location
bind "unix://#tmp_dir/sockets/puma.sock"

# Logging
stdout_redirect "#tmp_dir/log/puma.stdout.log", "#tmp_dir/log/puma.stderr.log", true

# Set master PID and state locations
pidfile "#tmp_dir/pids/puma.pid"
state_path "#tmp_dir/pids/puma.state"
preload_app!
activate_control_app

on_worker_boot do
require "active_record"
ActiveRecord::Base.connection.disconnect! rescue ActiveRecord::ConnectionNotEstablished
ActiveRecord::Base.establish_connection(YAML.load_file("#app_dir/config/database.yml")[rails_env])
end


Is the issue related to any database connection pool? How can I solve it?










share|improve this question




























    1















    I am running rails 5.2.1 app in the ec2 server of instance type t3.small. But server got hang after a few days run. In the puma_access.log there is following error log



    Listen loop error: #<ThreadError: can't create Thread: Resource temporarily unavailable>
    /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:87:in `initialize'
    /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:87:in `new'
    /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:87:in `spawn_thread'
    /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:162:in `block in <<'
    /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:154:in `synchronize'
    /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:154:in `<<'
    /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:398:in `block in handle_servers'
    /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:385:in `each'
    /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:385:in `handle_servers'
    /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:358:in `block in run'


    In the server we are connecting to two RDS instance, second by using the class



    class SecondDbBase < ActiveRecord::Base
    establish_connection "#Rails.env_sec".to_sym
    self.abstract_class = true

    def readonly?
    true
    end

    def write_attribute(name, value)
    raise NotImplementedError, 'read only table'
    end

    end


    and in the corresponding model I have extended the class



    class Student < SecondDbBase


    puma.rb file



    workers 1
    # Min and Max threads per worker
    threads 1, 6

    app_dir = File.expand_path("../..", __FILE__)
    shared_dir = "#app_dir/shared"
    tmp_dir = "#app_dir/tmp"

    # Default to production
    rails_env = ENV['RAILS_ENV'] || "production"
    environment rails_env

    # Set up socket location
    bind "unix://#tmp_dir/sockets/puma.sock"

    # Logging
    stdout_redirect "#tmp_dir/log/puma.stdout.log", "#tmp_dir/log/puma.stderr.log", true

    # Set master PID and state locations
    pidfile "#tmp_dir/pids/puma.pid"
    state_path "#tmp_dir/pids/puma.state"
    preload_app!
    activate_control_app

    on_worker_boot do
    require "active_record"
    ActiveRecord::Base.connection.disconnect! rescue ActiveRecord::ConnectionNotEstablished
    ActiveRecord::Base.establish_connection(YAML.load_file("#app_dir/config/database.yml")[rails_env])
    end


    Is the issue related to any database connection pool? How can I solve it?










    share|improve this question


























      1












      1








      1


      1






      I am running rails 5.2.1 app in the ec2 server of instance type t3.small. But server got hang after a few days run. In the puma_access.log there is following error log



      Listen loop error: #<ThreadError: can't create Thread: Resource temporarily unavailable>
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:87:in `initialize'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:87:in `new'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:87:in `spawn_thread'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:162:in `block in <<'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:154:in `synchronize'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:154:in `<<'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:398:in `block in handle_servers'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:385:in `each'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:385:in `handle_servers'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:358:in `block in run'


      In the server we are connecting to two RDS instance, second by using the class



      class SecondDbBase < ActiveRecord::Base
      establish_connection "#Rails.env_sec".to_sym
      self.abstract_class = true

      def readonly?
      true
      end

      def write_attribute(name, value)
      raise NotImplementedError, 'read only table'
      end

      end


      and in the corresponding model I have extended the class



      class Student < SecondDbBase


      puma.rb file



      workers 1
      # Min and Max threads per worker
      threads 1, 6

      app_dir = File.expand_path("../..", __FILE__)
      shared_dir = "#app_dir/shared"
      tmp_dir = "#app_dir/tmp"

      # Default to production
      rails_env = ENV['RAILS_ENV'] || "production"
      environment rails_env

      # Set up socket location
      bind "unix://#tmp_dir/sockets/puma.sock"

      # Logging
      stdout_redirect "#tmp_dir/log/puma.stdout.log", "#tmp_dir/log/puma.stderr.log", true

      # Set master PID and state locations
      pidfile "#tmp_dir/pids/puma.pid"
      state_path "#tmp_dir/pids/puma.state"
      preload_app!
      activate_control_app

      on_worker_boot do
      require "active_record"
      ActiveRecord::Base.connection.disconnect! rescue ActiveRecord::ConnectionNotEstablished
      ActiveRecord::Base.establish_connection(YAML.load_file("#app_dir/config/database.yml")[rails_env])
      end


      Is the issue related to any database connection pool? How can I solve it?










      share|improve this question
















      I am running rails 5.2.1 app in the ec2 server of instance type t3.small. But server got hang after a few days run. In the puma_access.log there is following error log



      Listen loop error: #<ThreadError: can't create Thread: Resource temporarily unavailable>
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:87:in `initialize'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:87:in `new'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:87:in `spawn_thread'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:162:in `block in <<'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:154:in `synchronize'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:154:in `<<'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:398:in `block in handle_servers'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:385:in `each'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:385:in `handle_servers'
      /var/www/rails/rails-api/shared/bundle/ruby/2.5.0/gems/puma-3.12.0/lib/puma/server.rb:358:in `block in run'


      In the server we are connecting to two RDS instance, second by using the class



      class SecondDbBase < ActiveRecord::Base
      establish_connection "#Rails.env_sec".to_sym
      self.abstract_class = true

      def readonly?
      true
      end

      def write_attribute(name, value)
      raise NotImplementedError, 'read only table'
      end

      end


      and in the corresponding model I have extended the class



      class Student < SecondDbBase


      puma.rb file



      workers 1
      # Min and Max threads per worker
      threads 1, 6

      app_dir = File.expand_path("../..", __FILE__)
      shared_dir = "#app_dir/shared"
      tmp_dir = "#app_dir/tmp"

      # Default to production
      rails_env = ENV['RAILS_ENV'] || "production"
      environment rails_env

      # Set up socket location
      bind "unix://#tmp_dir/sockets/puma.sock"

      # Logging
      stdout_redirect "#tmp_dir/log/puma.stdout.log", "#tmp_dir/log/puma.stderr.log", true

      # Set master PID and state locations
      pidfile "#tmp_dir/pids/puma.pid"
      state_path "#tmp_dir/pids/puma.state"
      preload_app!
      activate_control_app

      on_worker_boot do
      require "active_record"
      ActiveRecord::Base.connection.disconnect! rescue ActiveRecord::ConnectionNotEstablished
      ActiveRecord::Base.establish_connection(YAML.load_file("#app_dir/config/database.yml")[rails_env])
      end


      Is the issue related to any database connection pool? How can I solve it?







      ruby-on-rails amazon-ec2 puma






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 13 '18 at 10:49







      CR7

















      asked Nov 13 '18 at 10:15









      CR7CR7

      199117




      199117






















          0






          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53278674%2fgetting-error-threaderror-and-server-got-hang%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53278674%2fgetting-error-threaderror-and-server-got-hang%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          這個網誌中的熱門文章

          Barbados

          How to read a connectionString WITH PROVIDER in .NET Core?

          Node.js Script on GitHub Pages or Amazon S3