Skip to content

runtime: "out of memory" in heapsampling.go on 386 and wasm since 2021-11-05 #49564

Closed

Activity

added
NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.
arch-386Issues solely affecting the 32-bit x86 architecture
on Nov 12, 2021
added this to the Go1.18 milestone on Nov 12, 2021
added
okay-after-beta1Used by release team to mark a release-blocker issue as okay to resolve either before or after beta1
on Nov 19, 2021
aclements

aclements commented on Dec 1, 2021

@aclements
Member

We haven't seen any more of these failures.

Our working hypothesis is that these were related to the new pacer. That landed 2021-11-04. In all of these failures, the heap is around 1.7 GB when it fails, which is way bigger than we'd expect from this test. Based on printing MemStats.Sys at the end of this test, the largest memory footprint I've seen on my linux/amd64 laptop is 120 MB.

mknyszek

mknyszek commented on Dec 1, 2021

@mknyszek
Contributor

I want to amend @aclements' a little bit just to say that we've seen these large memory footprints (I think around 113 MiB?) with the old pacer too (GOEXPERIMENT=nopacerredesign). It's still possible this 1.7 GiB uptick was somehow related to the new pacer, but it's less likely to be solely related to that, I think.

What's strange is that the failures showed up twice, then for a period of about 8 days, then disappeared.

toothrot

toothrot commented on Dec 8, 2021

@toothrot
Contributor

Checking on this as a release blocker. Is this still occurring @bufflig?

bcmills

bcmills commented on Dec 8, 2021

@bcmills
ContributorAuthor

Still no more failures in the logs. Maybe this was a bad interaction with some other runtime test that has since been fixed?

greplogs --dashboard -md -l -e FAIL\\s+heapsampling\\.go --since=2021-11-13

removed
okay-after-beta1Used by release team to mark a release-blocker issue as okay to resolve either before or after beta1
on Dec 14, 2021
cherrymui

cherrymui commented on Dec 15, 2021

@cherrymui
Member

Seems still no new failure since 2021-11-12.

aclements

aclements commented on Dec 15, 2021

@aclements
Member

It's unfortunate that we don't know what caused this, but at this point I think we can close this issue. We'll reopen it if the issue returns.

bcmills

bcmills commented on Feb 16, 2022

@bcmills
ContributorAuthor

We'll reopen it if the issue returns.

greplogs --dashboard -md -l -e FAIL\\s+heapsampling\\.go --since=2021-12-15

2022-02-15T21:18:59-08ed488/windows-386-2008

Given the timing (and the relative rarity since the last failure), retargeting to Go 1.19.

21 remaining items

mknyszek

mknyszek commented on May 11, 2022

@mknyszek
Contributor

It's not so surprising to me. :) I encountered this failure on js/wasm when landing the SetMemoryLimit changes. Basically, js/wasm is very slow and single-threaded, so it can trigger the GC CPU limiter if it gets particularly unlucky, so it's especially sensitive to bugs in the GC CPU limiter, at least when a test allocates in a loop like this one.

I suspect https://go.dev/cl/404304 will help on that front, since there are still bugs. :)

changed the title [-]runtime: "out of memory" in heapsampling.go on windows-386 and js-wasm since 2021-11-05[/-] [+]runtime: "out of memory" in heapsampling.go on 386 and wasm since 2021-11-05[/+] on May 12, 2022
bcmills

bcmills commented on May 12, 2022

@bcmills
ContributorAuthor

A different 386 platform this time!

greplogs -l -e FAIL\\s+heapsampling\\.go --since=2022-05-11
2022-05-11T23:39:27-ec5bdef/freebsd-386-12_3

mknyszek

mknyszek commented on May 23, 2022

@mknyszek
Contributor

Looking back over this, I think the only thing to do here is to slow down the allocation rate of this test. If it remains an issue after that, we should consider just skipping the test on some platforms. I hope (🤞 ) that the js/wasm issues are resolved by the fixes to the GC CPU limiter.

added
okay-after-beta1Used by release team to mark a release-blocker issue as okay to resolve either before or after beta1
on May 25, 2022
gopherbot

gopherbot commented on May 27, 2022

@gopherbot
Contributor

Change https://go.dev/cl/408825 mentions this issue: test/heapsampling.go: slow down allocation rate and reduce iterations

Repository owner moved this from Todo to Done in Go Compiler / Runtimeon May 27, 2022
locked and limited conversation to collaborators on Jun 23, 2023
added a commit that references this issue on Sep 19, 2024
70d499c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.arch-386Issues solely affecting the 32-bit x86 architecturearch-wasmWebAssembly issuesokay-after-beta1Used by release team to mark a release-blocker issue as okay to resolve either before or after beta1release-blocker

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @toothrot@mknyszek@prattmic@aclements@jeremyfaller

        Issue actions

          runtime: "out of memory" in heapsampling.go on 386 and wasm since 2021-11-05 · Issue #49564 · golang/go