]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: dump the status of lockedg on error
authorTiwei Bie <tiwei.btw@antgroup.com>
Thu, 15 Oct 2020 01:43:51 +0000 (01:43 +0000)
committerKeith Randall <khr@golang.org>
Sat, 24 Oct 2020 03:15:23 +0000 (03:15 +0000)
The dumpgstatus() will dump current g's status anyway. When lockedg's
status is bad, it's more helpful to dump lockedg's status as well than
dumping current g's status twice.

Change-Id: If5248cb94b9cdcbf4ceea07562237e1d6ee28489
GitHub-Last-Rev: da814c51ff42f56fb28582f088f4d72b500061fe
GitHub-Pull-Request: golang/go#40248
Reviewed-on: https://go-review.googlesource.com/c/go/+/243097
Reviewed-by: Keith Randall <khr@golang.org>
Trust: Emmanuel Odeke <emm.odeke@gmail.com>
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>

src/runtime/proc.go

index aeacb2339111dca79d11c440593ba867f15043d2..83d2a524e071827ef2f886ec49fbc58ca1fc394f 100644 (file)
@@ -2302,8 +2302,8 @@ func stoplockedm() {
        mPark()
        status := readgstatus(_g_.m.lockedg.ptr())
        if status&^_Gscan != _Grunnable {
-               print("runtime:stoplockedm: g is not Grunnable or Gscanrunnable\n")
-               dumpgstatus(_g_)
+               print("runtime:stoplockedm: lockedg (atomicstatus=", status, ") is not Grunnable or Gscanrunnable\n")
+               dumpgstatus(_g_.m.lockedg.ptr())
                throw("stoplockedm: not runnable")
        }
        acquirep(_g_.m.nextp.ptr())