This is the mail archive of the kawa@sourceware.org mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: kawa hanging while running input-parse.scm



With the code like this:

    public void loadHeapFrame (Compilation comp) {
        LambdaExp curLambda = comp.curLambda;
        while (curLambda != this && curLambda.getInlineOnly()) {
            if (curLambda == curLambda.getCaller())
                throw new Error("CYCLE for "+curLambda);
            curLambda = curLambda.getCaller();
        }

The error does get thrown -- I've attached the output.

One possible clue is that if I'm redirecting stdout:

  $ ./kawa-sometimes-hang.scm | cat
  #t

I can't get the program to hang.

    -seth


On 12/05/2014 02:50 PM, Per Bothner wrote:


On 12/05/2014 12:49 PM, Seth Alves wrote:

jdb is telling me "Nothing suspended." (I haven't read the jdb docs yet), but jstack produced this when run against a hung process. Anything interesting?

     -seth

On 12/05/2014 11:58 AM, Per Bothner wrote:
jdb -attach

"main" prio=10 tid=0x00007fbf60009800 nid=0x13a9 runnable [0x00007fbf6780f000]
   java.lang.Thread.State: RUNNABLE
    at gnu.expr.LambdaExp.loadHeapFrame(LambdaExp.java:523)
    at gnu.expr.Declaration.loadOwningObject(Declaration.java:259)

I'd say you have an infinite loop. I'd add just before LambdaExp.java:523: if (curLambda == curLambda.getCaller()) throw new Error("CYCLE for "+curLambda);

Once you'd verified that, the next step is finding where inlineHome is getting set,
and specifically where this.inlineHome==this happens.

Then the next step is figuring why that is only happening sporadically,
assuming that the case.


Attachment: kawa-sometimes-hang-error
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]