You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2019/12/03 07:09:12 UTC
[GitHub] [pulsar] lspgn commented on issue #5695: Go: Segfault on messageId
serialize after getting it from producer
lspgn commented on issue #5695: Go: Segfault on messageId serialize after getting it from producer
URL: https://github.com/apache/pulsar/issues/5695#issuecomment-561032305
@wolfstudy sorry to re-open (was on vacations), I ran tests with the example file:
I'm getting the following:
It rarely manages to display a message Id (maybe a race condition?), most of the time, it just panic at the first one.
```
The message Id value is: [(4294967295,140734859843417,57,0)]
The message Id value is: [(75552472,0,2433,36)]
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x470fafa]
runtime stack:
runtime.throw(0x434b363, 0x2a)
/usr/local/Cellar/go/1.13.3/libexec/src/runtime/panic.go:774 +0x72
runtime.sigpanic()
/usr/local/Cellar/go/1.13.3/libexec/src/runtime/signal_unix.go:378 +0x47c
goroutine 1 [syscall]:
runtime.cgocall(0x42932a0, 0xc000109800, 0x40)
/usr/local/Cellar/go/1.13.3/libexec/src/runtime/cgocall.go:128 +0x5b fp=0xc0001097d0 sp=0xc000109798 pc=0x400519b
github.com/apache/pulsar/pulsar-client-go/pulsar._Cfunc_pulsar_message_id_str(0x6e003b0, 0x0)
_cgo_gotypes.go:1279 +0x4a fp=0xc000109800 sp=0xc0001097d0 pc=0x4279c3a
github.com/apache/pulsar/pulsar-client-go/pulsar.(*messageID).String.func1(0xc0000a8080, 0x4037e80)
/Users/me/go/pkg/mod/github.com/apache/pulsar/pulsar-client-go@v0.0.0-20191203033040-9137065ffcac/pulsar/c_message.go:199 +0x5e fp=0xc000109840 sp=0xc000109800 pc=0x428906e
github.com/apache/pulsar/pulsar-client-go/pulsar.(*messageID).String(0xc0000a8080, 0x0, 0x0)
/Users/me/go/pkg/mod/github.com/apache/pulsar/pulsar-client-go@v0.0.0-20191203033040-9137065ffcac/pulsar/c_message.go:199 +0x37 fp=0xc0001098a8 sp=0xc000109840 pc=0x4280ba7
fmt.(*pp).handleMethods(0xc000120000, 0x76, 0x1)
/usr/local/Cellar/go/1.13.3/libexec/src/fmt/print.go:630 +0x302 fp=0xc000109ab8 sp=0xc0001098a8 pc=0x40bc262
fmt.(*pp).printArg(0xc000120000, 0x42e3bc0, 0xc0000a8080, 0xc000000076)
/usr/local/Cellar/go/1.13.3/libexec/src/fmt/print.go:713 +0x206 fp=0xc000109b50 sp=0xc000109ab8 pc=0x40bc826
fmt.(*pp).doPrintf(0xc000120000, 0x4346be0, 0x1f, 0xc000109e20, 0x1, 0x1)
/usr/local/Cellar/go/1.13.3/libexec/src/fmt/print.go:1030 +0x15b fp=0xc000109c38 sp=0xc000109b50 pc=0x40c01eb
fmt.Fprintf(0x43a5ce0, 0xc0000a8008, 0x4346be0, 0x1f, 0xc000109e20, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.13.3/libexec/src/fmt/print.go:204 +0x72 fp=0xc000109ca0 sp=0xc000109c38 pc=0x40b9092
fmt.Printf(...)
/usr/local/Cellar/go/1.13.3/libexec/src/fmt/print.go:213
main.main()
/Users/me/repos/pulsar-test/producer.go:61 +0x2ee fp=0xc000109f60 sp=0xc000109ca0 pc=0x4291d1e
runtime.main()
/usr/local/Cellar/go/1.13.3/libexec/src/runtime/proc.go:203 +0x21e fp=0xc000109fe0 sp=0xc000109f60 pc=0x4030cae
runtime.goexit()
/usr/local/Cellar/go/1.13.3/libexec/src/runtime/asm_amd64.s:1357 +0x1 fp=0xc000109fe8 sp=0xc000109fe0 pc=0x405b561
exit status 2
```
```
The message Id value is: [(75552472,0,2433,36)]
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x470fafa]
runtime stack:
runtime.throw(0x434b363, 0x2a)
/usr/local/Cellar/go/1.13.3/libexec/src/runtime/panic.go:774 +0x72
runtime.sigpanic()
/usr/local/Cellar/go/1.13.3/libexec/src/runtime/signal_unix.go:378 +0x47c
goroutine 1 [syscall]:
runtime.cgocall(0x42932a0, 0xc000109800, 0xa0)
/usr/local/Cellar/go/1.13.3/libexec/src/runtime/cgocall.go:128 +0x5b fp=0xc0001097d0 sp=0xc000109798 pc=0x400519b
github.com/apache/pulsar/pulsar-client-go/pulsar._Cfunc_pulsar_message_id_str(0x7001240, 0x0)
_cgo_gotypes.go:1279 +0x4a fp=0xc000109800 sp=0xc0001097d0 pc=0x4279c3a
github.com/apache/pulsar/pulsar-client-go/pulsar.(*messageID).String.func1(0xc0000a8078, 0x4037e80)
/Users/me/go/pkg/mod/github.com/apache/pulsar/pulsar-client-go@v0.0.0-20191203033040-9137065ffcac/pulsar/c_message.go:199 +0x5e fp=0xc000109840 sp=0xc000109800 pc=0x428906e
github.com/apache/pulsar/pulsar-client-go/pulsar.(*messageID).String(0xc0000a8078, 0x0, 0x0)
/Users/me/go/pkg/mod/github.com/apache/pulsar/pulsar-client-go@v0.0.0-20191203033040-9137065ffcac/pulsar/c_message.go:199 +0x37 fp=0xc0001098a8 sp=0xc000109840 pc=0x4280ba7
fmt.(*pp).handleMethods(0xc00011e000, 0x76, 0x1)
/usr/local/Cellar/go/1.13.3/libexec/src/fmt/print.go:630 +0x302 fp=0xc000109ab8 sp=0xc0001098a8 pc=0x40bc262
fmt.(*pp).printArg(0xc00011e000, 0x42e3bc0, 0xc0000a8078, 0x76)
/usr/local/Cellar/go/1.13.3/libexec/src/fmt/print.go:713 +0x206 fp=0xc000109b50 sp=0xc000109ab8 pc=0x40bc826
fmt.(*pp).doPrintf(0xc00011e000, 0x4346be0, 0x1f, 0xc000109e20, 0x1, 0x1)
/usr/local/Cellar/go/1.13.3/libexec/src/fmt/print.go:1030 +0x15b fp=0xc000109c38 sp=0xc000109b50 pc=0x40c01eb
fmt.Fprintf(0x43a5ce0, 0xc0000a8008, 0x4346be0, 0x1f, 0xc000109e20, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.13.3/libexec/src/fmt/print.go:204 +0x72 fp=0xc000109ca0 sp=0xc000109c38 pc=0x40b9092
fmt.Printf(...)
/usr/local/Cellar/go/1.13.3/libexec/src/fmt/print.go:213
main.main()
/Users/me/repos/pulsar-test/producer.go:63 +0x2ee fp=0xc000109f60 sp=0xc000109ca0 pc=0x4291d1e
runtime.main()
/usr/local/Cellar/go/1.13.3/libexec/src/runtime/proc.go:203 +0x21e fp=0xc000109fe0 sp=0xc000109f60 pc=0x4030cae
runtime.goexit()
/usr/local/Cellar/go/1.13.3/libexec/src/runtime/asm_amd64.s:1357 +0x1 fp=0xc000109fe8 sp=0xc000109fe0 pc=0x405b561
exit status 2
```
I'm trying to debug it. Issue seems to be there:
https://github.com/apache/pulsar/blob/be6a102511560349701dbe6b83fabf831dc81340/pulsar-client-go/pulsar/c_message.go#L199
Which in the library is the following:
https://github.com/apache/pulsar/blame/master/pulsar-client-cpp/lib/c/c_MessageId.cc#L62-L65
Not very familiar with the C build but will try to have verbose debug.
(managed to reproduce the [make from Homebrew](https://github.com/Homebrew/homebrew-core/blob/master/Formula/libpulsar.rb))
```
cmake . \
-DBUILD_TESTS=OFF \
-DBUILD_PYTHON_WRAPPER=OFF \
-DBoost_INCLUDE_DIRS=/usr/local/Cellar/boost/1.71.0/include/ \
-DProtobuf_INCLUDE_DIR=/usr/local/Cellar/protobuf/3.10.0/include \
-DProtobuf_LIBRARIES=/usr/local/Cellar/protobuf/3.10.0/lib/libprotobuf.dylib
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services