google / gopacket

Provides packet processing capabilities for Go
BSD 3-Clause "New" or "Revised" License
6.32k stars 1.13k forks source link

sigsegv during reading tp_status in af_packet #717

Open ajaykul opened 5 years ago

ajaykul commented 5 years ago

The full paths are replaced by X, however I dont understand why this code crashed. Just trying to fetch the packet using ZeroCopyReadPacketData() here.

The Go version is 1.9.2 OS el8 (kernel 4.18)

Stack trace: unexpected fault address 0x7fd15a4fc008 fatal error: fault [signal SIGSEGV: segmentation violation code=0x1 addr=0x7fd15a4fc008 pc=0x9c2a89] goroutine 3484 [running]: runtime.throw(0xbc3fa9, 0x5) X/go-1.9.2/src/runtime/panic.go:605 +0x95 fp=0xc4201b3bc8 sp=0xc4201b3ba8 pc=0x42d685 runtime.sigpanic() X/go-1.9.2/src/runtime/signal_unix.go:374 +0x227 fp=0xc4201b3c18 sp=0xc4201b3bc8 pc=0x4443e7 X/vendor/github.com/google/gopacket/afpacket.(v3wrapper).getStatus(0xc4204166c0, 0x1) /local/jenkins/workspace/SensorMasterBuild/sensor-X/vendor/github.com/google/gopacket/afpacket/header.go:156 +0x9 fp=0xc4201b3c20 sp=0xc4201b3c18 pc=0x9c2a89 X/vendor/github.com/google/gopacket/afpacket.(TPacket).pollForFirstPacket(0xc420416600, 0x1327c80, 0xc4204166c0, 0xc420010e80, 0x413666) XX/gopath/src/github.com/TetrationAnalytics/tetration/sensor-go/deep/vendor/github.com/google/gopacket/afpacket/afpacket.go:458 +0x5e fp=0xc4201b3c78 sp=0xc4201b3c20 pc=0x9c214e X/vendor/github.com/google/gopacket/afpacket.(TPacket).ZeroCopyReadPacketData(0xc420416600, 0xc4201b3d68, 0x9d, 0xc420453380, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...) X/vendor/github.com/google/gopacket/afpacket/afpacket.go:307 +0x127 fp=0xc4201b3d18 sp=0xc4201b3c78 pc=0x9c1217 github.com/TetrationAnalytics/tetration/sensor-go/deep/vendor/github.com/google/gopacket/afpacket.(TPacket).ReadPacketData(0xc420416600, 0xc4211960a0, 0xc4201b3e01, 0xc4201b3e60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...) X/gopath/src/github.com/TetrationAnalytics/tetration/sensor-go/deep/vendor/github.com/google/gopacket/afpacket/afpacket.go:421 +0x91 fp=0xc4201b3e20 sp=0xc4201b3d18 pc=0x9c1d21

sharang commented 5 years ago

we also get a similar crash

go version: 1.13 kernel: 3.10.0-327.el7.x86_64

Oct  7 18:30:14 localhost: unexpected fault address 0x7f7c7810001a
Oct  7 18:30:14 localhost: fatal error: fault
Oct  7 18:30:14 localhost: [signal SIGSEGV: segmentation violation code=0x2 addr=0x7f7c7810001a pc=0x8c883e]
Oct  7 18:30:14 localhost: goroutine 134 [running]:
Oct  7 18:30:14 localhost: runtime.throw(0xd6ca2d, 0x5)
Oct  7 18:30:14 localhost: /usr/lib/golang/src/runtime/panic.go:774 +0x72 fp=0xc000a1dc40 sp=0xc000a1dc10 pc=0x430c92
Oct  7 18:30:14 localhost: runtime.sigpanic()
Oct  7 18:30:14 localhost: /usr/lib/golang/src/runtime/signal_unix.go:401 +0x3de fp=0xc000a1dc70 sp=0xc000a1dc40 pc=0x4462ce
Oct  7 18:30:14 localhost: github.com/google/gopacket/afpacket.(*v3wrapper).getData(0xc0001dc4c0, 0xc0001dc438, 0xe7791f700, 0x1686580, 0x0)
Oct  7 18:30:14 localhost: /Y/vendor/github.com/google/gopacket/afpacket/header.go:174 +0x3e fp=0xc000a1dd10 sp=0xc000a1dc70 pc=0x8c883e
Oct  7 18:30:14 localhost: github.com/google/gopacket/afpacket.(*TPacket).ZeroCopyReadPacketData(0xc0001dc400, 0x7f7c77e0000b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
Oct  7 18:30:14 localhost: /Y/vendor/github.com/google/gopacket/afpacket/afpacket.go:312 +0x1c5 fp=0xc000a1dda8 sp=0xc000a1dd10 pc=0x8c6f55
Oct  7 18:30:14 localhost: gitlab.x.lan/platform/trident/dispatcher.(*BaseDispatcher).recv(0xc000f36000, 0x7f7c77e0000b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
Oct  7 18:30:14 localhost: /Y/dispatcher/dispatcher_linux.go:54 +0x72 fp=0xc000a1de68 sp=0xc000a1dda8 pc=0xb4d472