]> Cypherpunks repositories - gostls13.git/commitdiff
test: ignore MemProfileRecords with no live objects in finprofiled.go
authorMichael Anthony Knyszek <mknyszek@google.com>
Wed, 15 Nov 2023 21:05:02 +0000 (21:05 +0000)
committerMichael Knyszek <mknyszek@google.com>
Thu, 16 Nov 2023 05:48:00 +0000 (05:48 +0000)
This test erroneously assumes that there will always be at least one
live object accounted for in a MemProfileRecord. This is not true; all
memory allocated from a particular location could be dead.

Fixes #64153.

Change-Id: Iadb783ea9b247823439ddc74b62a4c8b2ce8e33e
Reviewed-on: https://go-review.googlesource.com/c/go/+/542736
Reviewed-by: Cherry Mui <cherryyz@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>

test/finprofiled.go

index ca7e3c81dc8a47f496c5cc2ce824822635d86566..ef8f61c8025115415f97c780abbf9fb037be3289 100644 (file)
@@ -57,6 +57,11 @@ func main() {
        for _, p := range prof {
                bytes := p.AllocBytes - p.FreeBytes
                nobj := p.AllocObjects - p.FreeObjects
+               if nobj == 0 {
+                       // There may be a record that has had all of its objects
+                       // freed. That's fine. Avoid a divide-by-zero and skip.
+                       continue
+               }
                size := bytes / nobj
                if size == tinyBlockSize {
                        totalBytes += bytes