golang / go

The Go programming language
https://go.dev
BSD 3-Clause "New" or "Revised" License
121.43k stars 17.4k forks source link

runtime: crash in MSpan_Sweep with Go 1.4 #15769

Closed lakb closed 7 years ago

lakb commented 8 years ago

Please answer these questions before submitting your issue. Thanks!

  1. What version of Go are you using (go version)? go 1.4
  2. What operating system and processor architecture are you using (go env)? Linux txslhpcscf2172 2.6.32-431.56.1.el6.x86_64 #1 SMP Mon Apr 20 17:00:51 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
  3. What did you do? http based client server is running. Only log messages were being displayed at that time.
  4. What did you expect to see?

No panic should happen

  1. What did you see instead? Panic occured: fatal error: unexpected signal during runtime execution [signal 0xb code=0x80 addr=0x0 pc=0x42be6a]

runtime stack: runtime.MSpan_Sweep(0x7fa08d904d00, 0xe100000000, 0x100000001) /usr/local/go/src/runtime/mgc0.c:960 +0x14a

goroutine 3 [running]: runtime.switchtoM() /usr/local/go/src/runtime/asm_amd64.s:198 fp=0xc20801dfa8 sp=0xc20801dfa0 runtime.gosweepone(0x0) /usr/local/go/src/runtime/mgc0.c:1165 +0x1e fp=0xc20801dfc0 sp=0xc20801dfa8 runtime.bgsweep() /usr/local/go/src/runtime/mgc0.go:85 +0x36 fp=0xc20801dfe0 sp=0xc20801dfc0 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:2232 +0x1 fp=0xc20801dfe8 sp=0xc20801dfe0 created by gc /usr/local/go/src/runtime/mgc0.c:1383

goroutine 1 [select (no cases), 39 minutes]: main.main() /imsgit_local2/work/CMREPO_APS/repos/ims_cmrepo/src/swrepo/swrepo.go:116 +0x5da

goroutine 5 [chan receive, 39 minutes]: code.google.com/p/log4go.ConsoleLogWriter.run(0xc20805a060, 0x7fa08d911c18, 0xc208036008) /imsgit_local2/work/CMREPO_APS/repos/ims_cmrepo/src/code.google.com/p/log4go/termlog.go:27 +0x7a created by code.google.com/p/log4go.NewConsoleLogWriter /imsgit_local2/work/CMREPO_APS/repos/ims_cmrepo/src/code.google.com/p/log4go/termlog.go:19 +0x6b

goroutine 11 [IO wait]: net.(_pollDesc).Wait(0xc2080d0060, 0x72, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/fd_poll_runtime.go:84 +0x47 net.(_pollDesc).WaitRead(0xc2080d0060, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/fd_poll_runtime.go:89 +0x43 net.(_netFD).Read(0xc2080d0000, 0xc208178000, 0x8000, 0x8000, 0x0, 0x7fa08d911ba0, 0xc20802b018) /imsgit/Tools/go_14/go_64/src/net/fd_unix.go:242 +0x40f net.(_conn).Read(0xc208036030, 0xc208178000, 0x8000, 0x8000, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/net.go:121 +0xdc crypto/tls.(_block).readFromUntil(0xc2080d3560, 0x7fa08d916bc0, 0xc208036030, 0x5, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/crypto/tls/conn.go:454 +0xe6 crypto/tls.(_Conn).readRecord(0xc208100000, 0x17, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/crypto/tls/conn.go:539 +0x2da crypto/tls.(_Conn).Read(0xc208100000, 0xc2080e7000, 0x1000, 0x1000, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/crypto/tls/conn.go:904 +0x166 net/http.noteEOFReader.Read(0x7fa08d916af8, 0xc208100000, 0xc2080a01b8, 0xc2080e7000, 0x1000, 0x1000, 0x752ee0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/http/transport.go:1270 +0x6e net/http.(_noteEOFReader).Read(0xc2080f7a00, 0xc2080e7000, 0x1000, 0x1000, 0xc208012000, 0x0, 0x0)

:125 +0xd4 bufio.(_Reader).fill(0xc2080c4de0) /imsgit/Tools/go_14/go_64/src/bufio/bufio.go:97 +0x1ce bufio.(_Reader).Peek(0xc2080c4de0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/bufio/bufio.go:132 +0xf0 net/http.(_persistConn).readLoop(0xc2080a0160) /imsgit/Tools/go_14/go_64/src/net/http/transport.go:842 +0xa4 created by net/http.(_Transport).dialConn /imsgit/Tools/go_14/go_64/src/net/http/transport.go:660 +0xc9f goroutine 7 [IO wait]: net.(_pollDesc).Wait(0xc2080d0d10, 0x72, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/fd_poll_runtime.go:84 +0x47 net.(_pollDesc).WaitRead(0xc2080d0d10, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/fd_poll_runtime.go:89 +0x43 net.(_netFD).accept(0xc2080d0cb0, 0x0, 0x7fa08d911ba0, 0xc20812bcf8) /imsgit/Tools/go_14/go_64/src/net/fd_unix.go:419 +0x40b net.(_TCPListener).AcceptTCP(0xc208036028, 0xc20805a1e0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/tcpsock_posix.go:234 +0x4e net.(_TCPListener).Accept(0xc208036028, 0x0, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/tcpsock_posix.go:244 +0x4c crypto/tls.(_listener).Accept(0xc20806a6a0, 0x0, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/crypto/tls/tls.go:46 +0x6b net/http.(_Server).Serve(0xc2080c5e60, 0x7fa08d9169b0, 0xc20806a6a0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/http/server.go:1728 +0x92 net/http.Serve(0x7fa08d9169b0, 0xc20806a6a0, 0x7fa08d9169e8, 0xc20809a630, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/http/server.go:1606 +0xa1 web.(_Server).RunTLS(0xc20801f5a0, 0xc20802af70, 0x5, 0xc208088480, 0x0, 0x0) /imsgit_local2/work/CMREPO_APS/repos/ims_cmrepo/src/web/server.go:87 +0x491 created by swrepo/sw.RunHTTPS /imsgit_local2/work/CMREPO_APS/repos/ims_cmrepo/src/swrepo/sw/server.go:96 +0x656 goroutine 9 [IO wait, 37 minutes]: net.(_pollDesc).Wait(0xc2080107d0, 0x72, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/fd_poll_runtime.go:84 +0x47 net.(_pollDesc).WaitRead(0xc2080107d0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/fd_poll_runtime.go:89 +0x43 net.(_netFD).Read(0xc208010770, 0xc208049c00, 0x400, 0x400, 0x0, 0x7fa08d911ba0, 0xc20802b040) /imsgit/Tools/go_14/go_64/src/net/fd_unix.go:242 +0x40f net.(_conn).Read(0xc2080e2080, 0xc208049c00, 0x400, 0x400, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/net.go:121 +0xdc crypto/tls.(_block).readFromUntil(0xc2080d2720, 0x7fa08d916bc0, 0xc2080e2080, 0x5, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/crypto/tls/conn.go:454 +0xe6 crypto/tls.(_Conn).readRecord(0xc2080cb340, 0x17, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/crypto/tls/conn.go:539 +0x2da crypto/tls.(_Conn).Read(0xc2080cb340, 0xc20800f000, 0x1000, 0x1000, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/crypto/tls/conn.go:904 +0x166 net/http.(_liveSwitchReader).Read(0xc2080f2228, 0xc20800f000, 0x1000, 0x1000, 0x1c00000000000008, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/http/server.go:214 +0xab io.(_LimitedReader).Read(0xc2080f6a80, 0xc20800f000, 0x1000, 0x1000, 0x400, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/io/io.go:408 +0xce bufio.(_Reader).fill(0xc2080c5ec0) /imsgit/Tools/go_14/go_64/src/bufio/bufio.go:97 +0x1ce bufio.(_Reader).ReadSlice(0xc2080c5ec0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/bufio/bufio.go:295 +0x257 bufio.(_Reader).ReadLine(0xc2080c5ec0, 0x0, 0x0, 0x0, 0xc207fff400, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/bufio/bufio.go:324 +0x62 net/textproto.(_Reader).readLineSlice(0xc20800b080, 0x0, 0x0, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/textproto/reader.go:55 +0x9e net/textproto.(_Reader).ReadLine(0xc20800b080, 0x0, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/textproto/reader.go:36 +0x4f net/http.ReadRequest(0xc2080c5ec0, 0xc20803cc30, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/http/request.go:598 +0xcb net/http.(_conn).readRequest(0xc2080f21e0, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/http/server.go:586 +0x26f net/http.(_conn).serve(0xc2080f21e0) /imsgit/Tools/go_14/go_64/src/net/http/server.go:1162 +0x69e created by net/http.(*Server).Serve /imsgit/Tools/go_14/go_64/src/net/http/server.go:1751 +0x35e goroutine 13 [runnable]: bytes.func·001() /imsgit/Tools/go_14/go_64/src/bytes/buffer.go:186 bytes.makeSlice(0x373f1, 0xc208220000, 0x373f1, 0x373f1) /imsgit/Tools/go_14/go_64/src/bytes/buffer.go:191 +0x98 bytes.(_Buffer).grow(0xc2081e0000, 0x6d91, 0x8000) /imsgit/Tools/go_14/go_64/src/bytes/buffer.go:99 +0x243 bytes.(_Buffer).Write(0xc2081e0000, 0xc2081e4000, 0x6d91, 0x8000, 0xc208036258, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/bytes/buffer.go:127 +0x52 mime/multipart.(_part).Write(0xc2081a5be0, 0xc2081e4000, 0x6d91, 0x8000, 0x6d91, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/mime/multipart/writer.go:179 +0x179 io.Copy(0x7fa08d920f68, 0xc2081a5be0, 0x7fa08d911b50, 0xc208036258, 0x18000, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/io/io.go:364 +0x278 swrepo/action.UploadLogFiles(0xc2081d06c0, 0x32, 0x0, 0x0, 0x0) /imsgit_local2/work/CMREPO_APS/repos/ims_cmrepo/src/swrepo/action/action.go:178 +0x552 swrepo/action.CompressFiles(0x816a30, 0x6, 0x89e610, 0x41) /imsgit_local2/work/CMREPO_APS/repos/ims_cmrepo/src/swrepo/action/action.go:224 +0x9db swrepo/action.(_ActionT).Run(0xc2080f2e60, 0xc20800b500, 0x0, 0x0, 0x0, 0xc2080df1a0, 0x0, 0x0) /imsgit_local2/work/CMREPO_APS/repos/ims_cmrepo/src/swrepo/action/action.go:369 +0x2d63 created by swrepo/sw.ExecuteAction /imsgit_local2/work/CMREPO_APS/repos/ims_cmrepo/src/swrepo/sw/handlers_agent.go:128 +0x13df goroutine 12 [select]: net/http.(_persistConn).writeLoop(0xc2080a0160) /imsgit/Tools/go_14/go_64/src/net/http/transport.go:945 +0x41d created by net/http.(_Transport).dialConn /imsgit/Tools/go_14/go_64/src/net/http/transport.go:661 +0xcbc goroutine 36 [IO wait]: net.(_pollDesc).Wait(0xc2080d0760, 0x72, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/fd_poll_runtime.go:84 +0x47 net.(_pollDesc).WaitRead(0xc2080d0760, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/fd_poll_runtime.go:89 +0x43 net.(_netFD).Read(0xc2080d0700, 0xc2080d5000, 0x400, 0x400, 0x0, 0x7fa08d911ba0, 0xc20812b668) /imsgit/Tools/go_14/go_64/src/net/fd_unix.go:242 +0x40f net.(_conn).Read(0xc208036238, 0xc2080d5000, 0x400, 0x400, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/net.go:121 +0xdc crypto/tls.(_block).readFromUntil(0xc2080d2900, 0x7fa08d916bc0, 0xc208036238, 0x5, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/crypto/tls/conn.go:454 +0xe6 crypto/tls.(_Conn).readRecord(0xc2080cadc0, 0x17, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/crypto/tls/conn.go:539 +0x2da crypto/tls.(_Conn).Read(0xc2080cadc0, 0xc208104000, 0x1000, 0x1000, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/crypto/tls/conn.go:904 +0x166 net/http.(_liveSwitchReader).Read(0xc208035308, 0xc208104000, 0x1000, 0x1000, 0x8, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/http/server.go:214 +0xab io.(_LimitedReader).Read(0xc2080f7440, 0xc208104000, 0x1000, 0x1000, 0x400, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/io/io.go:408 +0xce bufio.(_Reader).fill(0xc2080c48a0) /imsgit/Tools/go_14/go_64/src/bufio/bufio.go:97 +0x1ce bufio.(_Reader).ReadSlice(0xc2080c48a0, 0xc20800b10a, 0x0, 0x0, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/bufio/bufio.go:295 +0x257 bufio.(_Reader).ReadLine(0xc2080c48a0, 0x0, 0x0, 0x0, 0xc20800b100, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/bufio/bufio.go:324 +0x62 net/textproto.(_Reader).readLineSlice(0xc20809a0f0, 0x0, 0x0, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/textproto/reader.go:55 +0x9e net/textproto.(_Reader).ReadLine(0xc20809a0f0, 0x0, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/textproto/reader.go:36 +0x4f net/http.ReadRequest(0xc2080c48a0, 0xc2081881a0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/http/request.go:598 +0xcb net/http.(_conn).readRequest(0xc2080352c0, 0x0, 0x0, 0x0) /imsgit/Tools/go_14/go_64/src/net/http/server.go:586 +0x26f net/http.(_conn).serve(0xc2080352c0) /imsgit/Tools/go_14/go_64/src/net/http/server.go:1162 +0x69e created by net/http.(*Server).Serve /imsgit/Tools/go_14/go_64/src/net/http/server.go:1751 +0x35e
ianlancetaylor commented 8 years ago

Unfortunately, Go 1.4 is no longer supported. The garbage collector has been completely rewritten, so there is no particular reason to think that the same problem exists in current Go. That said, if possible please try your program with Go 1.6.2.

I would suggest running your program under the race detector.