randall77 / hprof

Heap profile reader for Go
The Unlicense
85 stars 7 forks source link

unknown record kind 112 #3

Closed bmizerany closed 9 years ago

bmizerany commented 10 years ago

I'm getting:

# dumptohprof heapdump leak heap.hprof
2014/07/20 11:27:34 unknown record kind 112

Here is my env:

# uname -a
Linux myserver 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
# go version
go version go1.3 linux/amd64

The heapdump and binary are here: http://cl.ly/2w3e2D3O3g35

Let me know if you need anything else.

bmizerany commented 10 years ago

I changed:

https://github.com/randall77/hprof/blob/master/read/parser.go#L739

to a Println and ran dumptohprof again. Here was the result:

2014/07/20 19:18:21 unknown record kind  112
2014/07/20 19:18:21 unknown record kind  116
2014/07/20 19:18:21 unknown record kind  29
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x6ef7e]

goroutine 16 [running]:
runtime.panic(0x18bf60, 0x29af64)
    /usr/local/go/src/pkg/runtime/panic.c:279 +0xf5
github.com/randall77/hprof/read.nameWithDwarf(0x208310240, 0x7fff5fbffb95, 0x4)
    /Users/bmizerany/src/github.com/randall77/hprof/read/parser.go:1372 +0xf5e
github.com/randall77/hprof/read.Read(0x7fff5fbffb8c, 0x8, 0x7fff5fbffb95, 0x4, 0x1)
    /Users/bmizerany/src/github.com/randall77/hprof/read/parser.go:1607 +0x5e
main.main()
    /Users/bmizerany/src/github.com/randall77/hprof/dumptohprof/main.go:108 +0xbe1

goroutine 19 [finalizer wait]:
runtime.park(0x29520, 0x29eed0, 0x29e289)
    /usr/local/go/src/pkg/runtime/proc.c:1369 +0x89
runtime.parkunlock(0x29eed0, 0x29e289)
    /usr/local/go/src/pkg/runtime/proc.c:1385 +0x3b
runfinq()
    /usr/local/go/src/pkg/runtime/mgc0.c:2644 +0xcf
runtime.goexit()
    /usr/local/go/src/pkg/runtime/proc.c:1445

Maybe this will help.

randall77 commented 10 years ago

I get no error when running on these files. Are you sure you're using the code with the latest fix?

bmizerany commented 10 years ago

I'm up-to-date. Very strange.

$ cd randall77/hprof
$ git rev-parse HEAD
6bfdcb9bcc31abd90e2bba0c77009465ce705a4e
$ go install ./...
$ cd dumptohprof/
$ go build 
$ md5sum dumptohprof $(which dumptohprof)
13ee245f664a2a44745a5a40b3a46c24    dumptohprof
13ee245f664a2a44745a5a40b3a46c24    /Users/bmizerany/bin/dumptohprof
$ cd coreos/etcd
/Users/bmizerany/src/github.com/coreos/etcd/etcd
$ dumptohprof heapdump leak leak.hprof
parser.go:739: unknown record kind  112
parser.go:739: unknown record kind  116
parser.go:739: unknown record kind  29
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x7073d]

goroutine 16 [running]:
runtime.panic(0x18bfc0, 0x29bf64)
    /usr/local/go/src/pkg/runtime/panic.c:279 +0xf5
github.com/randall77/hprof/read.link(0x208312240)
    /Users/bmizerany/src/github.com/randall77/hprof/read/parser.go:1447 +0xedd
github.com/randall77/hprof/read.Read(0x7fff5fbffb8c, 0x8, 0x7fff5fbffb95, 0x4, 0x1)
    /Users/bmizerany/src/github.com/randall77/hprof/read/parser.go:1615 +0x7a
main.main()
    /Users/bmizerany/src/github.com/randall77/hprof/dumptohprof/main.go:112 +0xbe1

goroutine 19 [finalizer wait]:
runtime.park(0x29550, 0x29fed0, 0x29f289)
    /usr/local/go/src/pkg/runtime/proc.c:1369 +0x89
runtime.parkunlock(0x29fed0, 0x29f289)
    /usr/local/go/src/pkg/runtime/proc.c:1385 +0x3b
runfinq()
    /usr/local/go/src/pkg/runtime/mgc0.c:2644 +0xcf
runtime.goexit()
    /usr/local/go/src/pkg/runtime/proc.c:1445
$ 
bmizerany commented 10 years ago

Maybe your local repo is more up-to-date than here?

bmizerany commented 10 years ago

The above md5sum was for the patched log.Println version. I've updated to a clean origin/master. I still get the same error as above.

Here is the md5sum I show:

$ md5sum dumptohprof/dumptohprof $(which dumptohprof)
610c2bfe1839d20b166d87dd79726f2b    dumptohprof/dumptohprof
610c2bfe1839d20b166d87dd79726f2b    /Users/bmizerany/bin/dumptohprof
randall77 commented 10 years ago

Looks like this dump is missing the continpc field. Undo my last patch and you should be able to read it. Any chance this was built with a release candidate instead of 1.3 final?

On Sun, Jul 20, 2014 at 11:53 PM, Blake Mizerany notifications@github.com wrote:

The above md5sum was for the patched log.Println version. I've updated to a clean origin/master. I still get the same error as above.

Here is the md5sum I show:

$ md5sum dumptohprof/dumptohprof $(which dumptohprof) 610c2bfe1839d20b166d87dd79726f2b dumptohprof/dumptohprof 610c2bfe1839d20b166d87dd79726f2b /Users/bmizerany/bin/dumptohprof

— Reply to this email directly or view it on GitHub https://github.com/randall77/hprof/issues/3#issuecomment-49576079.

bmizerany commented 10 years ago

Doesn't look like it:

# go version
go version go1.3 linux/amd64
# logout
Connection to myserver.com closed.
$ go version
go version go1.3 darwin/amd64

Both my linux and darwin builds show a 1.3 stable release.

bmizerany commented 9 years ago

I think I got this working awhile ago.