Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 乘客请求处理程序中出现异常运行时错误';s客户端套接字(无法修改字符串;暂时锁定)_Ruby On Rails_Sockets_Exception_Nginx - Fatal编程技术网

Ruby on rails 乘客请求处理程序中出现异常运行时错误';s客户端套接字(无法修改字符串;暂时锁定)

Ruby on rails 乘客请求处理程序中出现异常运行时错误';s客户端套接字(无法修改字符串;暂时锁定),ruby-on-rails,sockets,exception,nginx,Ruby On Rails,Sockets,Exception,Nginx,在nginx上托管的rails应用程序上收到以下错误: Sending 502 response: application did not send a complete response App 1462 stderr: [ 2015-xx-xx 15:10:29.2082 1494/XXXXXXXXXXXX(Worker 1) utils.rb:85 ]: *** Exception RuntimeError in Passenger RequestHandler's client sock

在nginx上托管的rails应用程序上收到以下错误:

Sending 502 response: application did not send a complete response
App 1462 stderr: [ 2015-xx-xx 15:10:29.2082 1494/XXXXXXXXXXXX(Worker 1) utils.rb:85 ]: *** Exception RuntimeError in Passenger RequestHandler's client socket (can't modify string; temporarily locked) (process 1494, thread XXXXXXXXXXXXX(Worker 1)):

App 1462 stderr:    from /usr/local/lib/ruby/gems/1.9.1/gems/passenger-5.0.13/lib/phusion_passenger/utils/unseekable_socket.rb:188:in `read'
App 1462 stderr:    from /usr/local/lib/ruby/gems/1.9.1/gems/passenger-5.0.13/lib/phusion_passenger/utils/unseekable_socket.rb:188:in `read'
[ 2015-09-09 15:10:29.2083 1423/7fa8af7fe700 age/Cor/Req/Utils.cpp:95 ]: [Client 6-19] Sending 502 response: application did not send a complete response
App 1462 stderr:    from /usr/local/lib/ruby/gems/1.9.1/gems/passenger-5.0.13/lib/phusion_passenger/message_channel.rb:177:in `read_scalar'
App 1462 stderr:    from /usr/local/lib/ruby/gems/1.9.1/gems/passenger-5.0.13/lib/phusion_passenger/request_handler/thread_handler.rb:217:in `parse_session_request'
App 1462 stderr:    from /usr/local/lib/ruby/gems/1.9.1/gems/passenger

已重新启动VM和应用程序,但收到相同的错误。

不确定到底是什么原因导致此错误。但从这个链接可以找到:

出于性能原因,我们反复使用相同的缓冲区来接收请求数据。如果您的应用程序能够以某种方式在不同的线程中使用我们的缓冲区来接收I/O数据,那么这将导致报告程序错误的竞争条件

一位用户在此处报告类似问题的解决方法:

事实上,我已经将范围缩小到rails master和/或rack cache 1.0。从最新版本的rails中删除缓存时(因此它不会加载机架缓存),一切都正常


希望对您有所帮助

不确定到底是什么原因导致了此错误。但从这个链接可以找到:

出于性能原因,我们反复使用相同的缓冲区来接收请求数据。如果您的应用程序能够以某种方式在不同的线程中使用我们的缓冲区来接收I/O数据,那么这将导致报告程序错误的竞争条件

一位用户在此处报告类似问题的解决方法:

事实上,我已经将范围缩小到rails master和/或rack cache 1.0。从最新版本的rails中删除缓存时(因此它不会加载机架缓存),一切都正常


希望这会有帮助

您的应用程序中是否使用线程?是的,我们正在使用互斥。您的应用程序中是否使用线程?是的,我们正在使用互斥。删除缓存是否有帮助?您应该进行测试。这是一个非常罕见的问题。我们将尝试删除缓存并对其进行测试。对于这个问题,您还有其他解决方法吗?删除缓存会有帮助吗?您应该进行测试。这是一个非常罕见的问题。我们将尝试删除缓存并对其进行测试。对于这个问题,您还有其他解决方法吗?