Câu hỏi của tôi tương tự như sau, nhưng đang xảy ra trong các trường hợp hơi khác nhau.Lỗi đường định kỳ trên Heroku/Unicorn - 'thực thi đã hết hạn', một ActionView :: Mẫu :: Lỗi
Rails: execution expired on time_zone_select
thiết lập của tôi là:
- Rails 3.2.13
- Unicorn 4.6.2
- Mongoid 3.0.22
- Moped 1.4.2
Chạy trên Heroku Cedar. MongoDB được lưu trữ tại MongoLab.
Các lỗi xảy ra theo lô và thường được giải quyết bằng quá trình khởi động lại Heroku. Người đầu tiên thường là người dưới đây:
An ActionView::Template::Error occurred in [controller]#[action]:
execution expired
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/sockets/connectable.rb:46:in `read'
Sau đây là bit trên cùng của dấu vết ngăn xếp. Vui lòng thêm nhiều hơn nếu cần!
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/sockets/connectable.rb:46:in `read'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/sockets/connectable.rb:46:in `block in read'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/sockets/connectable.rb:118:in `handle_socket_errors'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/sockets/connectable.rb:46:in `read'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/connection.rb:177:in `read_data'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/connection.rb:99:in `block in read'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/connection.rb:202:in `with_connection'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/connection.rb:97:in `read'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/protocol/query.rb:163:in `receive_replies'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/connection.rb:135:in `block in receive_replies'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/connection.rb:134:in `map'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/connection.rb:134:in `receive_replies'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/node.rb:553:in `block (2 levels) in flush'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/node.rb:129:in `ensure_connected'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/node.rb:551:in `block in flush'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/node.rb:566:in `logging'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/node.rb:550:in `flush'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/node.rb:539:in `process'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/node.rb:349:in `query'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/cursor.rb:138:in `block in load_docs'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/session/context.rb:105:in `block in with_node'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/cluster.rb:250:in `with_secondary'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/session/context.rb:104:in `with_node'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/cursor.rb:137:in `load_docs'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/cursor.rb:25:in `each'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/query.rb:76:in `each'
vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/query.rb:76:in `each'
vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.22/lib/mongoid/contextual/mongo.rb:132:in `block in each'
vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.22/lib/mongoid/contextual/mongo.rb:556:in `selecting'
vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.22/lib/mongoid/contextual/mongo.rb:131:in `each'
vendor/bundle/ruby/1.9.1/gems/mongoid-3.0.22/lib/mongoid/contextual.rb:18:in `each'
Kệ :: Timeout được thiết lập trong 10 giây (Tôi tin rằng đã được đề xuất bởi một trong những hướng dẫn bộ nhớ đệm Tôi đọc) - nếu câu trả lời là để tăng thời gian chờ, đó là tốt. Nhưng tôi tự hỏi nếu đây không phải là một vấn đề truy vấn chậm? Hành vi này dường như chỉ ra rằng nó chỉ là một trong những quá trình Unicorn bị treo lên (đó là lý do tại sao một ps khởi động lại dường như để chữa trị nó).
Bất kỳ suy nghĩ hoặc mẹo nào sẽ được đánh giá cao!
tôi nhìn thấy cùng một vấn đề/stacktrace này trên EC2 với một chồng rất giống nhau. – nont
Đây không phải là một giải pháp cho vấn đề, nhưng một cách giải quyết nhẹ (và không nhất thiết phải là một giải pháp tốt) - Tôi chuyển sang Unicorn cho Puma và va chạm tới 2 Dynos trên Heroku và vấn đề đã giảm bởi một yếu tố LỚN. Nhưng nó vẫn không được giải quyết và tôi vẫn nhận được một số ít các lỗi 'Thi hành hết hạn' một ngày (mà là giảm từ một số ít một giờ). Ruột của tôi nói rằng đây là một vấn đề Mongoid/MongoLab - hoặc là một phản ứng truy vấn chậm hoặc treo các kết nối mở với một cơ sở dữ liệu không phải cục bộ. – nlh
Cập nhật # 2: Nó vẫn còn xảy ra rất nhiều, ngay cả với 2 dynos & puma thay vì Unicorn. Thở dài. – nlh