johnzon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Struberg <strub...@yahoo.de.INVALID>
Subject Re: Potential deadlock while classloading in JsonValue
Date Tue, 26 Feb 2019 08:25:38 GMT
 The point is that <init> does NOT show up in the stack trace. So it must be cinit.
Also a pointer is that the thread is in state RUNNABLE but blocked by Object.wait().Which
is often a classic classloader block issue.
But yeah, hard to reproduce :/

LieGrue,strub

    On Tuesday, 26 February 2019, 08:13:57 CET, Romain Manni-Bucau <rmannibucau@gmail.com>
wrote:  
 
 Hi Mark

If you can reproduce it a lazy init in the g spec would be eady to test

That said if it is in init it is after cinit so in the constructor.

Can it be the buffer strategy config you run with?

Romain

Le mar. 26 févr. 2019 à 07:57, Mark Struberg <struberg@yahoo.de.invalid> a
écrit :

> Hi folks!
> We've seen a mysterious deadlock in Johnzon on startup under heavy load.
>
>
>    java.lang.Thread.State: RUNNABLE
>        at
> org.apache.johnzon.core.JsonArrayBuilderImpl.build(JsonArrayBuilderImpl.java:319)
> --
>    java.lang.Thread.State: RUNNABLE
>        at
> org.apache.johnzon.core.JsonReaderImpl.parseObject(JsonReaderImpl.java:189)
> --
>    java.lang.Thread.State: RUNNABLE
>        at
> org.apache.johnzon.core.JsonReaderImpl.parseObject(JsonReaderImpl.java:206)
> --
>
> Those are the locations which are stuck.
>
> All of them seem to hang on a new() for the following: JsonArrayImpl,
> JsonLongImpl, JsonStringImpl.But the stack trace does NOT contain the
> actual call code inside the <init>.So my conclusio for now is that it fails
> to load the Class.
> I suspect that the classloading of JsonValue is to blame.
>
> JsonValue contains a few static fields. And those fields do load the WHOLE
> JsonProvider!So while doing the init of JsonValue it might well be that
> another thread tries to load some other class subsequently needed by
> JsonValue.<init>.
> Of course if this is really the case, then it's a problem in the spec API
> and probably not in Johnzon itself.
>
> Wdyt?
> LieGrue,strub
>
>  
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message