Hi folks,
I reported the following memory leak to IB API team sometime back, and their developers acknowledged it. But after following up with them a few times since early January, I was disappointed that they are still "investigating".
I am posting it here, for one because I have seen the other issues that are reported here actually got addressed, so I am hoping to somehow get lucky with this issue as well. Also there must be other options traders who is in the same boat and found a workaround?
It is naturally frustrating for me since I do need to rely on the IB platform at this point. IB is far from being rock solid itself but I have been able to build a robust system that has been running around the clock for months without a single issue, while fully subscribed to 200 most liquid futures and stocks symbols. So long as I don't touch options!
/end rant
So here goes:
=== My initial bug report in January ===========================
Hi,
I have a API client that subscribes to 90+ option contracts at the beginning of each trading day. (by calling reqMktData) The API client connects to an IB Gateway instance.
I have been testing this client for a few weeks, and the IB Gateway process is very prone to out of memory exceptions, even after I assigned 1GB of memory to the gateway JVM I could not prevent such OOM exceptions. I think this has to do with the option models running inside the IBGateway.
I will attach the IBGateway JVM stacktrace for your investigation, but I would like to turn off the option model computation via code or configuration. Please let me know how I can achieve this.
regards,
XXXXX
java.lang.OutOfMemoryError: Java heap space
at javax.swing.text.GapContent.allocateArray(GapContent.java:77)
at javax.swing.text.GapVector.resize(GapVector.java:197)
at javax.swing.text.GapVector.shiftEnd(GapVector.java:212)
at javax.swing.text.GapContent.shiftEnd(GapContent.java:328)
at javax.swing.text.GapVector.open(GapVector.java:184)
at javax.swing.text.GapVector.replace(GapVector.java:125)
at javax.swing.text.GapContent.insertString(GapContent.java:115)
at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:709)
at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:693)
at javax.swing.text.PlainDocument.insertString(PlainDocument.java:114)
at javax.swing.JTextArea.append(JTextArea.java:470)
at ibgateway.zb.a(Unknown Source)
at jutils.dd.a(dd.java:111)
at jutils.dd.a(dd.java:101)
at jextend.ge.a(ge.java:1369)
at jextend.ge.W(ge.java:1355)
at jextend.ge.a(ge.java:2368)
at jextend.p.stateChanged(p.java:500)
at jutils.yf.a(yf.java:58)
at jutils.yf.a(yf.java:52)
at optionmodel.cb.run(cb.java:718)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
====== reply from API support =====
On Jan 13, 2011 10:59 AM, <api@interactivebrokers.com> wrote:
Hello XXX,
We are currently investigating this type of issue. I've believed that the Ib Gateway is getting some memory leak.
Regards,
XXXX
IB API Support
====== sometime later ==============
Date: Fri, 25 Feb 2011 11:55:21 -0500
From: api@interactivebrokers.com
Hello XXXX,
The development team is still investigating this issue.
Regards,
XXXXX
IB API Support
I reported the following memory leak to IB API team sometime back, and their developers acknowledged it. But after following up with them a few times since early January, I was disappointed that they are still "investigating".
I am posting it here, for one because I have seen the other issues that are reported here actually got addressed, so I am hoping to somehow get lucky with this issue as well. Also there must be other options traders who is in the same boat and found a workaround?
It is naturally frustrating for me since I do need to rely on the IB platform at this point. IB is far from being rock solid itself but I have been able to build a robust system that has been running around the clock for months without a single issue, while fully subscribed to 200 most liquid futures and stocks symbols. So long as I don't touch options!
/end rant
So here goes:
=== My initial bug report in January ===========================
Hi,
I have a API client that subscribes to 90+ option contracts at the beginning of each trading day. (by calling reqMktData) The API client connects to an IB Gateway instance.
I have been testing this client for a few weeks, and the IB Gateway process is very prone to out of memory exceptions, even after I assigned 1GB of memory to the gateway JVM I could not prevent such OOM exceptions. I think this has to do with the option models running inside the IBGateway.
I will attach the IBGateway JVM stacktrace for your investigation, but I would like to turn off the option model computation via code or configuration. Please let me know how I can achieve this.
regards,
XXXXX
java.lang.OutOfMemoryError: Java heap space
at javax.swing.text.GapContent.allocateArray(GapContent.java:77)
at javax.swing.text.GapVector.resize(GapVector.java:197)
at javax.swing.text.GapVector.shiftEnd(GapVector.java:212)
at javax.swing.text.GapContent.shiftEnd(GapContent.java:328)
at javax.swing.text.GapVector.open(GapVector.java:184)
at javax.swing.text.GapVector.replace(GapVector.java:125)
at javax.swing.text.GapContent.insertString(GapContent.java:115)
at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:709)
at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:693)
at javax.swing.text.PlainDocument.insertString(PlainDocument.java:114)
at javax.swing.JTextArea.append(JTextArea.java:470)
at ibgateway.zb.a(Unknown Source)
at jutils.dd.a(dd.java:111)
at jutils.dd.a(dd.java:101)
at jextend.ge.a(ge.java:1369)
at jextend.ge.W(ge.java:1355)
at jextend.ge.a(ge.java:2368)
at jextend.p.stateChanged(p.java:500)
at jutils.yf.a(yf.java:58)
at jutils.yf.a(yf.java:52)
at optionmodel.cb.run(cb.java:718)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
====== reply from API support =====
On Jan 13, 2011 10:59 AM, <api@interactivebrokers.com> wrote:
Hello XXX,
We are currently investigating this type of issue. I've believed that the Ib Gateway is getting some memory leak.
Regards,
XXXX
IB API Support
====== sometime later ==============
Date: Fri, 25 Feb 2011 11:55:21 -0500
From: api@interactivebrokers.com
Hello XXXX,
The development team is still investigating this issue.
Regards,
XXXXX
IB API Support
