Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Logstash 1.4.2/Windows 2012 R2/JDK java version "1.7.0_71" memory leak #2555

Closed
nabheet opened this issue Feb 10, 2015 · 7 comments
Closed

Comments

@nabheet
Copy link

nabheet commented Feb 10, 2015

Here is to hoping you guys can help with this:

C:\logstash>java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

C:\logstash>ver
Microsoft Windows [Version 6.3.9600]

JRuby version:
image

C:\logstash>bin\logstash agent --config conf.d
←[33mUsing milestone 2 input plugin 'eventlog'. This plugin should be stable, bu
t if you see strange behavior, please let us know! For more information on plugi
n milestones, see http://logstash.net/docs/1.4.2/plugin-milestones {:level=>:war
n}←[0m
←[33mUsing milestone 1 output plugin 'rabbitmq'. This plugin should work, but wo
uld benefit from use by folks like you. Please let us know if you find bugs or h
ave suggestions on how to improve this plugin. For more information on plugin m
ilestones, see http://logstash.net/docs/1.4.2/plugin-milestones {:level=>:warn}←
[0m

input.Eventlog.conf:
input {
  eventlog {
    logfile => "System"
    tags => [ "system", "windows", "event_log", "system"]
    type => "system_windows_event_log_system"
  }
}

output.RabbitMq.conf
output {
  rabbitmq {
    durable => false
    exchange => "my-exchange"
    exchange_type => "topic"(required)
    host => "my-server-name"
    key => "some-topic"
    password => "my-rabbit-password"
    persistent => false
    user => "my-rabbit-user"
  }
}

And I set the LS_MAX_MEM to be 256m for debugging.

Now the interesting bit is that as I keep this running for about two hours or so, logstash stops publishing and starts filling up the logfile with interesting errors and then eventually the JVM crashes.

Here is a screenshot from VisualVM JVM profiler:

image

Here is the screenshot highlighting the memory leak:

image

Referring to the screenshot, please notice the number of threads called "RMI TCP Connection (#number) - {IP_ADDRESS}". This thread list keeps increasing and the "Finished" threads are never garbage collected. Eventually this just crashes the JVM.

Can you please advise on how to further debug the issue? Or suggest how I could resolve the issue.

Thank you.

@jordansissel
Copy link
Contributor

If you're seeing a memory leak, the screenshots aren't indicative of it.

The first screenshot is a normal-looking sawtooth garbage collection curve. The second is a screenshot of threads with one of the "RMI TCP Connection" threads highlighted - These "RMI TCP Connection" threads only appear when you have attached with VisualVM and are not present otherwise.

@jordansissel
Copy link
Contributor

and starts filling up the logfile with interesting errors

Can you link to those errors?

and then eventually the JVM crashes.

Can you link to this error?

@nabheet
Copy link
Author

nabheet commented Feb 10, 2015

Well, that was silly of me (JVM/Java newbie). I had stripped everything down to just the Eventlog input and RabbitMQ output, thinking that this RMI TCP connection thing was causing the leak. I appreciate you providing the insight.

So the whole truth is that I am using Eventlog and WMI input (from logstash-contrib) along with the RabbitMQ output. Here are the full input files:

Eventlog.conf:

input {
    eventlog {
        logfile  => "System"
        tags => [ "system", "windows", "event_log", "system"]
        type => "system_windows_event_log_system"
    }

    eventlog {
        logfile  => "Application"
        tags => [ "system", "windows", "event_log", "application"]
        type => "system_windows_event_log_application"
    }

    eventlog {
        logfile  => "Security"
        tags => [ "system", "windows", "event_log", "security"]
        type => "system_windows_event_log_security"
    }

    eventlog {
        logfile  => "Setup"
        tags => [ "system", "windows", "event_log", "setup"]
        type => "system_windows_event_log_setup"
    }
}

WMI.conf:

input {
    wmi {
        query => "select * from win32_perfformatteddata_perfproc_process"
        tags => [ "system", "windows", "wmi", "win32_perfformatteddata_perfproc_process"]
        type => "system_windows_wmi_Win32_perfformatteddata_perfproc_process"
        interval => 10
    }

    wmi {
        query => "select * from win32_perfFormatteddata_perfos_processor"
        tags => [ "system", "windows", "wmi", "win32_perfFormatteddata_perfos_processor"]
        type => "system_windows_wmi_win32_perfFormatteddata_perfos_processor"
        interval => 10
    }

    wmi {
        query => "select * from win32_perfFormatteddata_perfdisk_logicaldisk"
        tags => [ "system", "windows", "wmi", "win32_perfFormatteddata_perfdisk_logicaldisk"]
        type => "system_windows_wmi_win32_perfFormatteddata_perfdisk_logicaldisk"
        interval => 10
    }

    wmi {
        query => "select * from win32_perfformatteddata_perfdisk_physicaldisk"
        tags => [ "system", "windows", "wmi", "win32_perfformatteddata_perfdisk_physicaldisk"]
        type => "system_windows_wmi_win32_perfformatteddata_perfdisk_physicaldisk"
        interval => 10
    }

    wmi {
        query => "select * from win32_perfformatteddata_tcpip_networkinterface"
        tags => [ "system", "windows", "wmi", "win32_perfformatteddata_tcpip_networkinterface"]
        type => "system_windows_wmi_win32_perfformatteddata_tcpip_networkinterface"
        interval => 10
    }

    wmi {
        query => "select * from win32_perfformatteddata_perfos_memory"
        tags => [ "system", "windows", "wmi", "win32_perfformatteddata_perfos_memory"]
        type => "system_windows_wmi_win32_perfformatteddata_perfos_memory"
        interval => 10
    }
}

On our staging box (win2008) it crashed after running for about 2 hours or so.

On my vagrant box it has been about 1 hour and 57 mins and it is still running but maxing out the memory and still growing. Also, notice that VisualVM is reporting a max memory of 256M.

image

Here is the task manager showing that the JVM process is taking up way more than 256M of memory and almost about to consumer all of it.

Time (a):
image

Later Time(b) (and still growing):
image

Later Time (c) (and still growing):
image

Later Time (d) (and still gowing):
image

I am still waiting for it to crash, so as soon as it does, I will upload the errors from the log.

@nabheet
Copy link
Author

nabheet commented Feb 10, 2015

←[31mWMI query error: IEnumVARIANT::Next
["org.racob.com.EnumVariant.Next(Native Method)", "org.racob.com.EnumVariant.has
MoreElements(EnumVariant.java:47)", "org.jruby.ext.win32ole.RubyWIN32OLE.each(Ru
byWIN32OLE.java:64)", "org.jruby.ext.win32ole.RubyWIN32OLE$INVOKER$i$0$0$each.ca
ll(RubyWIN32OLE$INVOKER$i$0$0$each.gen)", "org.jruby.runtime.callsite.CachingCal
lSite.callBlock(CachingCallSite.java:143)", "org.jruby.runtime.callsite.CachingC
allSite.callIter(CachingCallSite.java:154)", "org.jruby.ast.CallNoArgBlockNode.i
nterpret(CallNoArgBlockNode.java:64)", "org.jruby.ast.NewlineNode.interpret(Newl
ineNode.java:105)", "org.jruby.ast.BlockNode.interpret(BlockNode.java:71)", "org
.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)", "org.
jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)", "o
rg.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:157)", "org.jr
uby.runtime.Interpreted19Block.yieldSpecific(Interpreted19Block.java:130)", "org
.jruby.runtime.Block.yieldSpecific(Block.java:111)", "org.jruby.RubyKernel.loop(
RubyKernel.java:1521)", "org.jruby.RubyKernel$INVOKER$s$0$0$loop.call(RubyKernel
$INVOKER$s$0$0$loop.gen)", "org.jruby.runtime.callsite.CachingCallSite.callBlock
(CachingCallSite.java:143)", "org.jruby.runtime.callsite.CachingCallSite.callIte
r(CachingCallSite.java:154)", "org.jruby.ast.FCallNoArgBlockNode.interpret(FCall
NoArgBlockNode.java:32)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.java:
105)", "org.jruby.ast.BlockNode.interpret(BlockNode.java:71)", "org.jruby.ast.Re
scueNode.executeBody(RescueNode.java:221)", "org.jruby.ast.RescueNode.interpret(
RescueNode.java:116)", "org.jruby.ast.BeginNode.interpret(BeginNode.java:83)", "
org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)", "org.jruby.ast.Block
Node.interpret(BlockNode.java:71)", "org.jruby.evaluator.ASTInterpreter.INTERPRE
T_METHOD(ASTInterpreter.java:74)", "org.jruby.internal.runtime.methods.Interpret
edMethod.call(InterpretedMethod.java:182)", "org.jruby.internal.runtime.methods.
DefaultMethod.call(DefaultMethod.java:198)", "org.jruby.runtime.callsite.Caching
CallSite.call(CachingCallSite.java:168)", "org.jruby.ast.CallOneArgNode.interpre
t(CallOneArgNode.java:57)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.jav
a:105)", "org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)", "org.jruby
.ast.RescueNode.interpret(RescueNode.java:116)", "org.jruby.ast.BeginNode.interp
ret(BeginNode.java:83)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.java:1
05)", "org.jruby.ast.BlockNode.interpret(BlockNode.java:71)", "org.jruby.ast.Res
cueNode.executeBody(RescueNode.java:221)", "org.jruby.ast.RescueNode.interpret(R
escueNode.java:116)", "org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)",
"org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)", "
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java
:182)", "org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.jav
a:198)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:1
68)", "org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)", "org.j
ruby.ast.NewlineNode.interpret(NewlineNode.java:105)", "org.jruby.evaluator.ASTI
nterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)", "org.jruby.runtime.Interpr
eted19Block.evalBlockBody(Interpreted19Block.java:206)", "org.jruby.runtime.Inte
rpreted19Block.yield(Interpreted19Block.java:194)", "org.jruby.runtime.Interpret
ed19Block.call(Interpreted19Block.java:125)", "org.jruby.runtime.Block.call(Bloc
k.java:101)", "org.jruby.RubyProc.call(RubyProc.java:290)", "org.jruby.RubyProc.
call(RubyProc.java:228)", "org.jruby.internal.runtime.RubyRunnable.run(RubyRunna
ble.java:99)", "java.lang.Thread.run(Thread.java:745)"] {:level=>:error}←[0m
←[31mWMI query error: IEnumVARIANT::Next
["org.racob.com.EnumVariant.Next(Native Method)", "org.racob.com.EnumVariant.has
MoreElements(EnumVariant.java:47)", "org.jruby.ext.win32ole.RubyWIN32OLE.each(Ru
byWIN32OLE.java:64)", "org.jruby.ext.win32ole.RubyWIN32OLE$INVOKER$i$0$0$each.ca
ll(RubyWIN32OLE$INVOKER$i$0$0$each.gen)", "org.jruby.runtime.callsite.CachingCal
lSite.callBlock(CachingCallSite.java:143)", "org.jruby.runtime.callsite.CachingC
allSite.callIter(CachingCallSite.java:154)", "org.jruby.ast.CallNoArgBlockNode.i
nterpret(CallNoArgBlockNode.java:64)", "org.jruby.ast.NewlineNode.interpret(Newl
ineNode.java:105)", "org.jruby.ast.BlockNode.interpret(BlockNode.java:71)", "org
.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)", "org.
jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)", "o
rg.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:157)", "org.jr
uby.runtime.Interpreted19Block.yieldSpecific(Interpreted19Block.java:130)", "org
.jruby.runtime.Block.yieldSpecific(Block.java:111)", "org.jruby.RubyKernel.loop(
RubyKernel.java:1521)", "org.jruby.RubyKernel$INVOKER$s$0$0$loop.call(RubyKernel
$INVOKER$s$0$0$loop.gen)", "org.jruby.runtime.callsite.CachingCallSite.callBlock
(CachingCallSite.java:143)", "org.jruby.runtime.callsite.CachingCallSite.callIte
r(CachingCallSite.java:154)", "org.jruby.ast.FCallNoArgBlockNode.interpret(FCall
NoArgBlockNode.java:32)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.java:
105)", "org.jruby.ast.BlockNode.interpret(BlockNode.java:71)", "org.jruby.ast.Re
scueNode.executeBody(RescueNode.java:221)", "org.jruby.ast.RescueNode.interpret(
RescueNode.java:116)", "org.jruby.ast.BeginNode.interpret(BeginNode.java:83)", "
org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)", "org.jruby.ast.Block
Node.interpret(BlockNode.java:71)", "org.jruby.evaluator.ASTInterpreter.INTERPRE
T_METHOD(ASTInterpreter.java:74)", "org.jruby.internal.runtime.methods.Interpret
edMethod.call(InterpretedMethod.java:182)", "org.jruby.internal.runtime.methods.
DefaultMethod.call(DefaultMethod.java:198)", "org.jruby.runtime.callsite.Caching
CallSite.call(CachingCallSite.java:168)", "org.jruby.ast.CallOneArgNode.interpre
t(CallOneArgNode.java:57)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.jav
a:105)", "org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)", "org.jruby
.ast.RescueNode.interpret(RescueNode.java:116)", "org.jruby.ast.BeginNode.interp
ret(BeginNode.java:83)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.java:1
05)", "org.jruby.ast.BlockNode.interpret(BlockNode.java:71)", "org.jruby.ast.Res
cueNode.executeBody(RescueNode.java:221)", "org.jruby.ast.RescueNode.interpret(R
escueNode.java:116)", "org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)",
"org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)", "
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java
:182)", "org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.jav
a:198)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:1
68)", "org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)", "org.j
ruby.ast.NewlineNode.interpret(NewlineNode.java:105)", "org.jruby.evaluator.ASTI
nterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)", "org.jruby.runtime.Interpr
eted19Block.evalBlockBody(Interpreted19Block.java:206)", "org.jruby.runtime.Inte
rpreted19Block.yield(Interpreted19Block.java:194)", "org.jruby.runtime.Interpret
ed19Block.call(Interpreted19Block.java:125)", "org.jruby.runtime.Block.call(Bloc
k.java:101)", "org.jruby.RubyProc.call(RubyProc.java:290)", "org.jruby.RubyProc.
call(RubyProc.java:228)", "org.jruby.internal.runtime.RubyRunnable.run(RubyRunna
ble.java:99)", "java.lang.Thread.run(Thread.java:745)"] {:level=>:error}←[0m
←[31mWMI query error: IEnumVARIANT::Next
["org.racob.com.EnumVariant.Next(Native Method)", "org.racob.com.EnumVariant.has
MoreElements(EnumVariant.java:47)", "org.jruby.ext.win32ole.RubyWIN32OLE.each(Ru
byWIN32OLE.java:64)", "org.jruby.ext.win32ole.RubyWIN32OLE$INVOKER$i$0$0$each.ca
ll(RubyWIN32OLE$INVOKER$i$0$0$each.gen)", "org.jruby.runtime.callsite.CachingCal
lSite.callBlock(CachingCallSite.java:143)", "org.jruby.runtime.callsite.CachingC
allSite.callIter(CachingCallSite.java:154)", "org.jruby.ast.CallNoArgBlockNode.i
nterpret(CallNoArgBlockNode.java:64)", "org.jruby.ast.NewlineNode.interpret(Newl
ineNode.java:105)", "org.jruby.ast.BlockNode.interpret(BlockNode.java:71)", "org
.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)", "org.
jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)", "o
rg.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:157)", "org.jr
uby.runtime.Interpreted19Block.yieldSpecific(Interpreted19Block.java:130)", "org
.jruby.runtime.Block.yieldSpecific(Block.java:111)", "org.jruby.RubyKernel.loop(
RubyKernel.java:1521)", "org.jruby.RubyKernel$INVOKER$s$0$0$loop.call(RubyKernel
$INVOKER$s$0$0$loop.gen)", "org.jruby.runtime.callsite.CachingCallSite.callBlock
(CachingCallSite.java:143)", "org.jruby.runtime.callsite.CachingCallSite.callIte
r(CachingCallSite.java:154)", "org.jruby.ast.FCallNoArgBlockNode.interpret(FCall
NoArgBlockNode.java:32)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.java:
105)", "org.jruby.ast.BlockNode.interpret(BlockNode.java:71)", "org.jruby.ast.Re
scueNode.executeBody(RescueNode.java:221)", "org.jruby.ast.RescueNode.interpret(
RescueNode.java:116)", "org.jruby.ast.BeginNode.interpret(BeginNode.java:83)", "
org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)", "org.jruby.ast.Block
Node.interpret(BlockNode.java:71)", "org.jruby.evaluator.ASTInterpreter.INTERPRE
T_METHOD(ASTInterpreter.java:74)", "org.jruby.internal.runtime.methods.Interpret
edMethod.call(InterpretedMethod.java:182)", "org.jruby.internal.runtime.methods.
DefaultMethod.call(DefaultMethod.java:198)", "org.jruby.runtime.callsite.Caching
CallSite.cacheAndCall(CachingCallSite.java:326)", "org.jruby.runtime.callsite.Ca
chingCallSite.call(CachingCallSite.java:170)", "org.jruby.ast.CallOneArgNode.int
erpret(CallOneArgNode.java:57)", "org.jruby.ast.NewlineNode.interpret(NewlineNod
e.java:105)", "org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)", "org.
jruby.ast.RescueNode.interpret(RescueNode.java:116)", "org.jruby.ast.BeginNode.i
nterpret(BeginNode.java:83)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.j
ava:105)", "org.jruby.ast.BlockNode.interpret(BlockNode.java:71)", "org.jruby.as
t.RescueNode.executeBody(RescueNode.java:221)", "org.jruby.ast.RescueNode.interp
ret(RescueNode.java:116)", "org.jruby.ast.EnsureNode.interpret(EnsureNode.java:9
6)", "org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74
)", "org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod
.java:182)", "org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMetho
d.java:198)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.j
ava:168)", "org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)", "
org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)", "org.jruby.evaluator
.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)", "org.jruby.runtime.In
terpreted19Block.evalBlockBody(Interpreted19Block.java:206)", "org.jruby.runtime
.Interpreted19Block.yield(Interpreted19Block.java:194)", "org.jruby.runtime.Inte
rpreted19Block.call(Interpreted19Block.java:125)", "org.jruby.runtime.Block.call
(Block.java:101)", "org.jruby.RubyProc.call(RubyProc.java:290)", "org.jruby.Ruby
Proc.call(RubyProc.java:228)", "org.jruby.internal.runtime.RubyRunnable.run(Ruby
Runnable.java:99)", "java.lang.Thread.run(Thread.java:745)"] {:level=>:error}←[0

←[31mWindows Event Log error: Invoke of: ExecNotificationQuery
Source: SWbemServicesEx
Description:

["org.racob.com.Dispatch.invokev(Native Method)", "org.racob.com.Dispatch.invoke
v(Dispatch.java:243)", "org.racob.com.Dispatch.callN(Dispatch.java:187)", "org.j
ruby.ext.win32ole.RubyWIN32OLE.invokeMethodOrGet(RubyWIN32OLE.java:205)", "org.j
ruby.ext.win32ole.RubyWIN32OLE.method_missing(RubyWIN32OLE.java:113)", "org.jrub
y.ext.win32ole.RubyWIN32OLE$INVOKER$i$0$0$method_missing.call(RubyWIN32OLE$INVOK
ER$i$0$0$method_missing.gen)", "org.jruby.internal.runtime.methods.JavaMethod$Ja
vaMethodN.call(JavaMethod.java:677)", "org.jruby.runtime.Helpers$MethodMissingMe
thod.call(Helpers.java:451)", "org.jruby.internal.runtime.methods.DynamicMethod.
call(DynamicMethod.java:210)", "org.jruby.runtime.callsite.CachingCallSite.callM
ethodMissing(CachingCallSite.java:401)", "org.jruby.runtime.callsite.CachingCall
Site.cacheAndCall(CachingCallSite.java:323)", "org.jruby.runtime.callsite.Cachin
gCallSite.call(CachingCallSite.java:170)", "org.jruby.ast.CallOneArgNode.interpr
et(CallOneArgNode.java:57)", "org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNod
e.java:123)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)", "org.
jruby.ast.BlockNode.interpret(BlockNode.java:71)", "org.jruby.ast.RescueNode.exe
cuteBody(RescueNode.java:221)", "org.jruby.ast.RescueNode.interpret(RescueNode.j
ava:116)", "org.jruby.ast.BeginNode.interpret(BeginNode.java:83)", "org.jruby.as
t.NewlineNode.interpret(NewlineNode.java:105)", "org.jruby.ast.BlockNode.interpr
et(BlockNode.java:71)", "org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(AST
Interpreter.java:74)", "org.jruby.internal.runtime.methods.InterpretedMethod.cal
l(InterpretedMethod.java:182)", "org.jruby.internal.runtime.methods.DefaultMetho
d.call(DefaultMethod.java:198)", "org.jruby.runtime.callsite.CachingCallSite.cal
l(CachingCallSite.java:168)", "org.jruby.ast.CallOneArgNode.interpret(CallOneArg
Node.java:57)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)", "or
g.jruby.ast.RescueNode.executeBody(RescueNode.java:221)", "org.jruby.ast.RescueN
ode.interpret(RescueNode.java:116)", "org.jruby.ast.BeginNode.interpret(BeginNod
e.java:83)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)", "org.j
ruby.ast.BlockNode.interpret(BlockNode.java:71)", "org.jruby.ast.RescueNode.exec
uteBody(RescueNode.java:221)", "org.jruby.ast.RescueNode.interpret(RescueNode.ja
va:116)", "org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)", "org.jruby.e
valuator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)", "org.jruby.in
ternal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:182)", "org
.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:198)", "or
g.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)", "org.j
ruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)", "org.jruby.ast.New
lineNode.interpret(NewlineNode.java:105)", "org.jruby.evaluator.ASTInterpreter.I
NTERPRET_BLOCK(ASTInterpreter.java:112)", "org.jruby.runtime.Interpreted19Block.
evalBlockBody(Interpreted19Block.java:206)", "org.jruby.runtime.Interpreted19Blo
ck.yield(Interpreted19Block.java:194)", "org.jruby.runtime.Interpreted19Block.ca
ll(Interpreted19Block.java:125)", "org.jruby.runtime.Block.call(Block.java:101)"
, "org.jruby.RubyProc.call(RubyProc.java:290)", "org.jruby.RubyProc.call(RubyPro
c.java:228)", "org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:99)
", "java.lang.Thread.run(Thread.java:745)"] {:level=>:error}←[0m
←[31mWindows Event Log error: Invoke of: ExecNotificationQuery

@nabheet
Copy link
Author

nabheet commented Feb 10, 2015

BTW, it took 2 hours and 5 mins for it to start erroring and I didn't wait for it to crash because I wanted to get the first error before it could scroll of the screen ... I was running it from the command line.
I can do the test again if you need more info.

<gut_feeling>
There are some objects that are not getting garbage collected on the java/jruby/ruby side and are holding on to references to things on the Windows/WMI side and then eventually the windows interface guy says "I can't give you any more things" ... Kaboom ...
<gut_feeling>

Also, I think VisualVM may have been making the situation worse. I am running it now without VisualVM, the Task Manager memory is still growing but it seems not as fast as it was with VisualVM. I will keep you posted on what I find.

Any help/advice would be greatly appreciated.

@jordansissel
Copy link
Contributor

Is this still an issue?

@nabheet
Copy link
Author

nabheet commented Mar 9, 2016

I don't know. My former employer and I parted ways, so I am not longer involved in this effort. I can close this issue.

@nabheet nabheet closed this as completed Mar 9, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants