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
Closed

testing: test/stress leaks goroutines #5527

alberts opened this issue May 21, 2013 · 2 comments

Comments

@alberts
Copy link
Contributor

alberts 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
Copy link

Comment 1 by robryk:

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

@bradfitz
Copy link
Contributor

bradfitz commented Jun 3, 2013

Comment 2:

This issue was closed by revision 44b7d5b.

Status changed to Fixed.

@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.
Projects
None yet
Development

No branches or pull requests

3 participants