Skip to content

runtime/pprof: deadlock during signal handler #2051

@krasin

Description

@krasin
What steps will reproduce the problem?
1. Get the source file (attached)
2. 6g lala.go && 6l lala.6 && ./lala
3. With high probability, you'll get a hang.

If I connect to the program from gdb, I see the following stacktrace:

(gdb) bt
#0  runtime.futex () at /home/krasin/go/src/pkg/runtime/linux/amd64/sys.s:164
#1  0x0000000000412dd9 in futexsleep (addr=void, val=void) at
/home/krasin/go/src/pkg/runtime/linux/thread.c:52
#2  0x0000000000412f1d in futexlock (l=void) at
/home/krasin/go/src/pkg/runtime/linux/thread.c:120
#3  0x0000000000413045 in runtime.lock (l=void) at
/home/krasin/go/src/pkg/runtime/linux/thread.c:159
#4  0x0000000000412a23 in runtime.findfunc (addr=void) at
/home/krasin/go/src/pkg/runtime/symtab.c:423
#5  0x0000000000413689 in runtime.gentraceback (pc0=void, sp=void, g=void, skip=void,
pcbuf=void, max=void) at /home/krasin/go/src/pkg/runtime/amd64/traceback.c:79
#6  0x000000000040f120 in runtime.sigprof (pc=void, sp=void, lr=void, gp=void) at
/home/krasin/go/src/pkg/runtime/proc.c:1313
#7  0x0000000000410a0b in runtime.sighandler (sig=void, info=void, context=void,
gp=void) at /home/krasin/go/src/pkg/runtime/linux/amd64/signal.c:65
#8  0x0000000000412c32 in runtime.sigtramp () at
/home/krasin/go/src/pkg/runtime/linux/amd64/sys.s:105
#9  0x0000000000412c46 in runtime.sigignore () at
/home/krasin/go/src/pkg/runtime/linux/amd64/sys.s:114
#10 0x0000000000000001 in ?? ()
#11 0x0000000000000000 in ?? ()

It seems like a deadlock between append slice and profiler.
If you removed profiler or will do some I/O during the calculations, you'll unlikely get
a problem.


Which compiler are you using (5g, 6g, 8g, gccgo)?

6g

Which operating system are you using?

Ubuntu 11.04 64 bit

Which revision are you using?  (hg identify)

krasin@krasin7:~/go/src$ hg identify
989b9018b05c tip


Please provide any additional information below.

The processor is
Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz

I will also test this bug on other hardware.

Attachments:

  1. lala.go (336 bytes)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions