Skip to content
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

testing: test/stress leaks goroutines #5527

Closed
alberts opened this issue May 21, 2013 · 2 comments

Comments

Projects
None yet
3 participants
@alberts
Copy link
Contributor

commented May 21, 2013

I've been running the Go stress tests for a bit.

I noticed that the memory consumption was heading north of 140 GB but that the heap was
only 20 GB.

The threadRing code called from stressChannels seems to leave N-1 goroutines stuck on
reading from their in channel. The done channel stuff looks a bit... interesting.

bradfitz said: "No, it was not my intention to leak anything."

For what it's worth, trying to kill the stress test in this state blew up the 3.4.7
kernel:

[1902435.376194] BUG: soft lockup - CPU#26 stuck for 23s! [runstress:5471]
[1902435.378282] Pid: 5471, comm: runstress Not tainted
[1902435.380824] Call Trace:
[1902435.380909]  [<ffffffff8112ab7e>] free_hot_cold_page_list+0x4e/0xc0
[1902435.380994]  [<ffffffff8112f756>] release_pages+0x1d6/0x220
[1902435.381079]  [<ffffffff8115a08e>] free_pages_and_swap_cache+0x9e/0xc0
[1902435.381164]  [<ffffffff81145ebc>] tlb_flush_mmu+0x6c/0x90
[1902435.381241]  [<ffffffff81145ef4>] tlb_finish_mmu+0x14/0x40
[1902435.381354]  [<ffffffff8114ffb8>] exit_mmap+0xd8/0x140
[1902435.381433]  [<ffffffff8116e8f6>] ? kmem_cache_free+0x116/0x130
[1902435.381513]  [<ffffffff810553f7>] mmput+0x77/0x110
[1902435.381588]  [<ffffffff8105c4c5>] exit_mm+0x105/0x130
[1902435.381666]  [<ffffffff8105c659>] do_exit+0x169/0x8d0
[1902435.381746]  [<ffffffff8117eca5>] ? mem_cgroup_bad_page_check+0x25/0x30
[1902435.381827]  [<ffffffff8112a5f7>] ? free_pages_prepare+0x87/0x130
[1902435.381915]  [<ffffffff8105d112>] do_group_exit+0x42/0xa0
[1902435.381997]  [<ffffffff8106bf13>] get_signal_to_deliver+0x223/0x5e0
[1902435.382078]  [<ffffffff81056458>] ? copy_process+0x6f8/0x1510
[1902435.382162]  [<ffffffff810142c5>] do_signal+0x65/0x5d0
[1902435.382237]  [<ffffffff810573ba>] ? do_fork+0xfa/0x340
[1902435.382355]  [<ffffffff8119f34f>] ? alloc_fd+0x4f/0x130
[1902435.382434]  [<ffffffff810148f8>] do_notify_resume+0xa8/0xf0
[1902435.382516]  [<ffffffff81604aa2>] int_signal+0x12/0x17
@gopherbot

This comment has been minimized.

Copy link

commented Jun 3, 2013

Comment 1 by robryk:

The following CL is an attempt at fixing this:
https://golang.org/cl/9955043/
@bradfitz

This comment has been minimized.

Copy link
Member

commented Jun 3, 2013

Comment 2:

This issue was closed by revision 44b7d5b.

Status changed to Fixed.

@alberts alberts added fixed labels Jun 3, 2013

@golang golang locked and limited conversation to collaborators Jun 24, 2016

This issue was closed.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
You can’t perform that action at this time.