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

Hammering console with several simple REST requests in parallel leads to strange groovy error #123

Closed
zsimic opened this Issue Feb 7, 2012 · 6 comments

Comments

Projects
None yet
2 participants
@zsimic

zsimic commented Feb 7, 2012

I'm trying to do a 'stress test' on the console to see what happens when it gets hammered by several requests in parallel at the same time. As a start, I simply run N jobs that go and get the JSON static model via the REST API.

For 1 and 2 queries in parallel, things work well. However for N >= 5, I start getting the error below randomly. And the more waves of N jobs I run, the more often I'm getting that same error below. Anyone seen this and/or has an idea what this may be due to?

1345634 [qtp2110119369-32] ERROR org.codehaus.groovy.grails.web.errors.GrailsExceptionResolver - No signature of method: static org.linkedin.groovy.util.json.JsonUtils.toJSON() is applicable for argument types: (java.lang.String) values: [data-platform-storage]
Possible solutions: toJSON(java.lang.Object), fromJSON(java.lang.String), mapToJSON(java.util.Map), toList(org.json.JSONArray), toMap(org.json.JSONObject)
groovy.lang.MissingMethodException: No signature of method: static org.linkedin.groovy.util.json.JsonUtils.toJSON() is applicable for argument types: (java.lang.String) values: [data-platform-storage]
Possible solutions: toJSON(java.lang.Object), fromJSON(java.lang.String), mapToJSON(java.util.Map), toList(org.json.JSONArray), toMap(org.json.JSONObject)
at org.linkedin.groovy.util.json.JsonUtils$_mapToJSON_closure3.doCall(JsonUtils.groovy:148)
at org.linkedin.groovy.util.json.JsonUtils.mapToJSON(JsonUtils.groovy:147)
at org.linkedin.groovy.util.json.JsonUtils.toJSON(JsonUtils.groovy:130)
at org.linkedin.groovy.util.json.JsonUtils$_mapToJSON_closure3.doCall(JsonUtils.groovy:148)
at org.linkedin.groovy.util.json.JsonUtils.mapToJSON(JsonUtils.groovy:147)
at org.linkedin.groovy.util.json.JsonUtils.toJSON(JsonUtils.groovy:130)
at org.linkedin.groovy.util.json.JsonUtils$_mapToJSON_closure3.doCall(JsonUtils.groovy:148)
at org.linkedin.groovy.util.json.JsonUtils.mapToJSON(JsonUtils.groovy:147)
at org.linkedin.groovy.util.json.JsonUtils.toJSON(JsonUtils.groovy:130)
at org.linkedin.groovy.util.json.JsonUtils$toJSON.callStatic(Unknown Source)
at org.linkedin.groovy.util.json.JsonUtils$toJSON.callStatic(Unknown Source)
at org.linkedin.groovy.util.json.JsonUtils$_collectionToJSON_closure4.doCall(JsonUtils.groovy:160)
at org.linkedin.groovy.util.json.JsonUtils.collectionToJSON(JsonUtils.groovy:159)
at org.linkedin.groovy.util.json.JsonUtils.toJSON(JsonUtils.groovy:135)
at org.linkedin.groovy.util.json.JsonUtils$_mapToJSON_closure3.doCall(JsonUtils.groovy:148)
at org.linkedin.groovy.util.json.JsonUtils.mapToJSON(JsonUtils.groovy:147)
at org.linkedin.groovy.util.json.JsonUtils.toJSON(JsonUtils.groovy:130)
at org.linkedin.groovy.util.json.JsonUtils$toJSON.call(Unknown Source)
at org.linkedin.glu.provisioner.core.model.JSONSystemModelSerializer.serialize(JSONSystemModelSerializer.groovy:39)
at org.linkedin.glu.provisioner.core.model.SystemModelSerializer$serialize.call(Unknown Source)
at org.linkedin.glu.provisioner.core.model.SystemModel.toString(SystemModel.groovy:518)
at org.linkedin.glu.provisioner.core.model.SystemModel$toString.call(Unknown Source)

@ypujante

This comment has been minimized.

Member

ypujante commented Feb 8, 2012

That is really weird... I wonder if it is a groovy issue. You may want to internally upgrade to latest grails / groovy combination and try again?

@zsimic

This comment has been minimized.

zsimic commented Feb 9, 2012

Found the origin of the problem: it's happening with JDK 1.6.0_27 on linux,
and doesn't happen at all with JDK 1.6.0_21
My linux box had 1.6.0_27, while the production box had 1.6.0_21.
I can hammer the console now with 10, 50, 100, 200 queries in
parallel, without having to spread them out at all and it just works.

Tried groovy 1.8.6, but one of the tests fails, it's unclear why it would
happen only with groovy 1.8.6 (the tests work fine with groovy 1.8.2, same
machine). But that's another thing, looking into it :). The test failure is
due to this below.

124 [Outgoing Connection channel:tcp://localhost:57793!0 Thread 3] DEBUG
Sigar - no libsigar-universal64-macosx.dylib in java.library.path
org.hyperic.sigar.SigarException: no libsigar-universal64-macosx.dylib in
java.library.path
at org.hyperic.sigar.Sigar.loadLibrary(Sigar.java:172)
at org.hyperic.sigar.Sigar.(Sigar.java:100)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.linkedin.glu.agent.impl.AgentImpl.class$(AgentImpl.groovy)

On Wed, Feb 8, 2012 at 11:25 AM, Yan Pujante <
reply@reply.github.com

wrote:

That is really weird... I wonder if it is a groovy issue. You may want to
internally upgrade to latest grails / groovy combination and try again?


Reply to this email directly or view it on GitHub:
https://github.com/linkedin/glu/issues/123#issuecomment-3874146

Zoran Simic

@ypujante

This comment has been minimized.

Member

ypujante commented Mar 7, 2012

Can I close this bug? It does not seem to be an issue with glu at all.

@zsimic

This comment has been minimized.

zsimic commented Mar 7, 2012

This bug seems related to which JVM version is used, not to glu itself.
Everything works fine with JDK 1.6.0_21 (RHEL). But the crashes occur systematically with JDK 1.6.0_29 (OSX) and 1.6.0_27 (RHEL).

I wasn't able to upgrade grails/groovy yet.

Zoran Simic

On Mar 7, 2012, at 7:23 AM, Yan Pujante wrote:

Can I close this bug? It does not seem to be an issue with glu at all.


Reply to this email directly or view it on GitHub:
https://github.com/linkedin/glu/issues/123#issuecomment-4369901

@ypujante

This comment has been minimized.

Member

ypujante commented Mar 7, 2012

I will keep it open for now then...

@ypujante

This comment has been minimized.

Member

ypujante commented Apr 3, 2013

glu 4.7.0 uses a later version of groovy and hopefully is fixing this issue... closing for now. Please reopen if not working.

@ypujante ypujante closed this Apr 3, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment