`
CharlesCui
  • 浏览: 416389 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

syscall exception: 存储空间不足,无法处理此命令

阅读更多
在ruby上跑Ice客户端,
起13个并发没问题,

一个并发指一个连接,
每个并发通过这个方法实现:Ice::initialize(ARGV)

到14个并发或者以后,ruby报如下异常:

Thread.cpp:206: IceUtil::ThreadSyscallException:

syscall exception: 存储空间不足,无法处理此命令。



我一步步调,发现运行到13个并发的时候我机器内存也不大啊,

其它的错误信息还有:

04/01/09 15:43:21.898 error: exception in selector while calling closeSocket():

Network.cpp:688: Ice::SocketException:

socket exception: WSAENOTSOCK




真nb,报的这个错我还头一次见到。

留贴记录!
分享到:
评论
9 楼 bglmmz 2012-09-27  
楼主怎么解决的?
我用python调用ice服务,也出现此问题,

!! 09/27/12 11:06:34.314 error: cannot create thread for enpoint host resolver:
   Thread.cpp:229: IceUtil::ThreadSyscallException:
   syscall exception: 存储空间不足,无法处理此命令。
!! 09/27/12 11:06:34.359 error: cannot create thread for endpoint host resolver

   Thread.cpp:229: IceUtil::ThreadSyscallException:
   syscall exception: 存储空间不足,无法处理此命令。

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

8 楼 CharlesCui 2009-04-01  
http://www.rubyenterpriseedition.com/

这个ruby企业版和passenger一个team出品的吧?
是不是专门给passenger优化过的?

我估计是,用这玩意说不定运行passenger快,运行thin啊mongrel啊说不定就变慢了。
7 楼 CharlesCui 2009-04-01  
一样的代码,

时而这个错:

object allocation during garbage collection phase




时而这个错:

runtime error R6025

- pure virtual function call


6 楼 CharlesCui 2009-04-01  
又出现一个奇怪的错误,nnd

runtime error R6025

- pure virtual function call



不知道给ruby的core team找bug他们给我发工资不。
5 楼 CharlesCui 2009-04-01  
liuqiang 写道

CharlesCui 写道嘿嘿,哥们,我这个不是rails,就是个ruby的脚本。

不过看你那个链接里wxruby也有这个问题,那我估计是不是ruby1.8.6自身的一个潜在缺陷?

我搞不定。

啥脚本贴出来看看?

用介个试试 http://www.rubyenterpriseedition.com/,打了不少补丁



#int getUserProfileByUserId(string userId,out com::alisoft::member::udb::api::model::UserProfile userProfile);

require 'Ice'
require 'pp'
require 'benchmark'
$:<<File.expand_path(File.join(File.dirname(__FILE__), '..', 'ice'))

Ice::loadSlice('../ice/user_lsj.ice')
include Com::Alisoft::Member::Udb::Api::User

#全局变量常量在此处定义
status = 0
ics =[]
currNo=10
itNo=10000
ic = []

#初始化代码块
init = proc {

  currNo.times do |x|
    ic << Ice::initialize(ARGV)
    ics << {:base => UserServicePrx::checkedCast(ic[-1].stringToProxy("userService:default -h 10.2.224.242 -p 10002"))}
  end

}.call

#迭代执行代码块
action = proc {
  count=0
  iceCall = proc {
    itNo.times do |y|
      ics.each_index do |x|
        uid="#{22000005+count}"
        count+=1
        std=ics[x][:base].getUserProfileByUserId(uid)
      end
    end}

  rep=nil

  puts "Performance Reports".center(50, '*')
  Benchmark.bm(5) do |x|
    rep=x.report("Calls",&iceCall)
  end
  puts '--'*32
  puts "Total Execute #{itNo*currNo} Action(s)"
  puts "Total Cost #{rep.real} Second(s)"
  puts "This Scenario's TPS : #{itNo*currNo/rep.real}"
  puts "End of Reports".center(50, '*')

}.call

#终止代码块
ended = proc {

  ic.each do |x|
    x.destroy() if x
  end

}.call


currNo是并发数
itNo是每个并发在action代码块中执行的次数,
这两个都不能大,大了都会有上面那些错误。
4 楼 liuqiang 2009-04-01  
CharlesCui 写道
嘿嘿,哥们,我这个不是rails,就是个ruby的脚本。

不过看你那个链接里wxruby也有这个问题,那我估计是不是ruby1.8.6自身的一个潜在缺陷?

我搞不定。


啥脚本贴出来看看?

用介个试试 http://www.rubyenterpriseedition.com/,打了不少补丁
3 楼 CharlesCui 2009-04-01  
嘿嘿,哥们,我这个不是rails,就是个ruby的脚本。

不过看你那个链接里wxruby也有这个问题,那我估计是不是ruby1.8.6自身的一个潜在缺陷?

我搞不定。
2 楼 liuqiang 2009-04-01  
CharlesCui 写道
今天NB了,

有一个奇怪的报错,

是不是gc 的bug有待考验

Calls(eval):405: [BUG] object allocation during garbage collection phase

ruby 1.8.6 (2008-08-11) [i386-mswin32]





哈哈,这个是插件的bug,我遇到过,是act_as_ferret引起的!你检查下gem list

http://www.ruby-forum.com/topic/161876


1 楼 CharlesCui 2009-04-01  
今天NB了,

有一个奇怪的报错,

是不是gc 的bug有待考验

Calls(eval):405: [BUG] object allocation during garbage collection phase

ruby 1.8.6 (2008-08-11) [i386-mswin32]



相关推荐

Global site tag (gtag.js) - Google Analytics