[
https://issues.apache.org/jira/browse/PROTON-1415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15880158#comment-15880158
]
Jeremy Gooch commented on PROTON-1415:
--------------------------------------
Thanks for looking into this.
I found two problems:-
h2. 1. make failed
It complained about a lack of type on {{PN_TRANSPORT_READ_CLOSED}} in _event.h_.
I changed line 363 to read:-
{{static const pn_event_type_t PN_TRANSPORT_READ_CLOSED =
PN_TRANSPORT_TAIL_CLOSED;}}
The project then built successfully (pull request =
https://github.com/alanconway/qpid-proton/pull/1).
h2. 2. negative WaitGroup counter
Then, when I ran my _receive.go_ client, it failed with the following error:-
{code}
root@1919183e6e52:/usr/src/go-electron# go run receive.go
2017/02/23 09:00:37 Connecting to amqp://localhost:5672
Listening on 1 connections
panic: sync: negative WaitGroup counter
goroutine 5 [running]:
panic(0x5369c0, 0xc420092020)
/usr/local/go/src/runtime/panic.go:500 +0x1a1
sync.(*WaitGroup).Add(0x844fa0, 0xffffffffffffffff)
/usr/local/go/src/sync/waitgroup.go:75 +0x1fe
sync.(*WaitGroup).Done(0x844fa0)
/usr/local/go/src/sync/waitgroup.go:100 +0x34
main.consume(0x570178, 0x15)
/usr/src/go-electron/receive.go:95 +0x530
created by main.main
/usr/src/go-electron/receive.go:47 +0x2cb
exit status 2
{code}
I haven't yet managed to solve this second one. Sample code is in my repo -
https://github.com/goochjs/amqp-activemq-python-go/tree/master/go-electron
> go binding does not create durable subscriber
> ---------------------------------------------
>
> Key: PROTON-1415
> URL: https://issues.apache.org/jira/browse/PROTON-1415
> Project: Qpid Proton
> Issue Type: Bug
> Components: go-binding
> Affects Versions: 0.17.0
> Environment: Docker for Windows 1.13.1
> Docker golang:1.7
> ActiveMQ 5.14.3 (Java 1.8.0_111)
> Reporter: Jeremy Gooch
> Assignee: Alan Conway
>
> When creating a subscription from Qpid Electron, the subscription name is not
> set, meaning that durable subscriptions cannot be created.
> Example code ->
> https://github.com/goochjs/amqp-activemq-python-go/blob/master/go-electron/receive.go
> Go example snippet (setting container ID):-
> container = electron.NewContainer(fmt.Sprintf("receive-client[%v]",
> os.Getpid()))
> Go example snippet (failing to set subscription name):-
> if r, err := c.Receiver(electron.LinkName(SubscriptionName),
> electron.Source("topic://"+AmqpResourceName)); err == nil {
> For comparison, I have a working Qpid Proton Python client, which sets both
> connection ID and subscription name ->
> https://github.com/goochjs/amqp-activemq-python-go/blob/master/python-proton/message_receiver.py
> Python example snippet (setting container ID):-
> # Name the subscription after the script file name
> event.container.container_id = __file__
> Python example snippet (setting subscription name):-
> messaging_connection = event.container.connect(self.url)
> event.container.create_receiver(
> messaging_connection,
> self.resource,
> name=self.subscription_name,
> options=durable
> )
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]