Skip to content

testing: test/stress leaks goroutines #5527

@alberts

Description

@alberts
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

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