devinbost opened a new issue #7463:
URL: https://github.com/apache/pulsar/issues/7463


   I am getting C++ build errors when I try building a Docker image to run the 
Pulsar Go client. 
   I have tried it with the Debian build of Pulsar 2.5.0, 2.5.2, and 2.6.0. 
   It previously worked, so I'm not sure why it's not working now. It seems 
like perhaps an upstream library was updated.
   
   Here's one of the Dockerfile versions that previously worked but no longer 
does:
   
   ```
   FROM ubuntu:16.04 as builder 
   RUN apt-get update && \
       apt-get install -y tig g++ cmake libssl-dev libcurl4-openssl-dev \
                   liblog4cxx-dev libprotobuf-dev libboost-all-dev \
                   libjsoncpp-dev libxml2-utils protobuf-compiler wget \
                   curl clang-format-5.0 \
                   gnupg2 golang-1.10-go zip unzip libzstd-dev libsnappy-dev
   
   RUN apt-get update && \
       apt-get install -y cmake libssl-dev libcurl4-openssl-dev liblog4cxx-dev \
     libprotobuf-dev protobuf-compiler libboost-all-dev libjsoncpp-dev
   
   ENV GOPATH "$HOME/go"
   ENV PATH "/usr/lib/go-1.10/bin:$GOPATH/bin:$PATH"
   
   WORKDIR /srv/app/server
   
   # Setup the Pulsar C++ client:
   RUN wget 
"https://archive.apache.org/dist/pulsar/pulsar-2.5.0/DEB/apache-pulsar-client.deb";
 -O apache-pulsar-client.deb
   RUN wget 
"https://archive.apache.org/dist/pulsar/pulsar-2.5.0/DEB/apache-pulsar-client-dev.deb";
 -O apache-pulsar-client-devel.deb
   RUN apt install ./apache-pulsar-client*.deb
   RUN go get -u github.com/apache/pulsar/pulsar-client-go/pulsar
   ```
   When I run this, it blows up at that last line, like this:
   
   > Step 17/24 : RUN go get -u github.com/apache/pulsar/pulsar-client-go/pulsar
   >  ---> Running in f3ded9e1fea0
   > # github.com/apache/pulsar/pulsar-client-go/pulsar
   > In file included from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_client.go:24:0,
   >                  from _cgo_export.c:3:
   > /go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h: In 
function '_pulsar_producer_send_async':
   > 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h:70:51: 
warning: passing argument 3 of 'pulsar_producer_send_async' from incompatible 
pointer type [-Wincompatible-pointer-types]
   >      pulsar_producer_send_async(producer, message, 
pulsarProducerSendCallbackProxy, ctx);
   >                                                    ^
   > In file included from /usr/include/pulsar/c/client.h:26:0,
   >                  from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h:22,
   >                  from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_client.go:24,
   >                  from _cgo_export.c:3:
   > /usr/include/pulsar/c/producer.h:80:20: note: expected 
'pulsar_send_callback {aka void (*)(enum <anonymous>,  struct 
_pulsar_message_id *, void *)}' but argument is of type 'void 
(*)(pulsar_result,  pulsar_message_t *, void *) {aka void (*)(enum <anonymous>, 
 struct _pulsar_message *, void *)}'
   >  PULSAR_PUBLIC void pulsar_producer_send_async(pulsar_producer_t 
*producer, pulsar_message_t *msg,
   >                     ^
   > # github.com/apache/pulsar/pulsar-client-go/pulsar
   > In file included from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_client.go:24:0:
   > /go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h: In 
function '_pulsar_producer_send_async':
   > 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h:70:51: 
warning: passing argument 3 of 'pulsar_producer_send_async' from incompatible 
pointer type [-Wincompatible-pointer-types]
   >      pulsar_producer_send_async(producer, message, 
pulsarProducerSendCallbackProxy, ctx);
   >                                                    ^
   > In file included from /usr/include/pulsar/c/client.h:26:0,
   >                  from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h:22,
   >                  from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_client.go:24:
   > /usr/include/pulsar/c/producer.h:80:20: note: expected 
'pulsar_send_callback {aka void (*)(enum <anonymous>,  struct 
_pulsar_message_id *, void *)}' but argument is of type 'void 
(*)(pulsar_result,  pulsar_message_t *, void *) {aka void (*)(enum <anonymous>, 
 struct _pulsar_message *, void *)}'
   >  PULSAR_PUBLIC void pulsar_producer_send_async(pulsar_producer_t 
*producer, pulsar_message_t *msg,
   >                     ^
   > # github.com/apache/pulsar/pulsar-client-go/pulsar
   > In file included from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_consumer.go:23:0:
   > /go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h: In 
function '_pulsar_producer_send_async':
   > 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h:70:51: 
warning: passing argument 3 of 'pulsar_producer_send_async' from incompatible 
pointer type [-Wincompatible-pointer-types]
   >      pulsar_producer_send_async(producer, message, 
pulsarProducerSendCallbackProxy, ctx);
   >                                                    ^
   > In file included from /usr/include/pulsar/c/client.h:26:0,
   >                  from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h:22,
   >                  from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_consumer.go:23:
   > /usr/include/pulsar/c/producer.h:80:20: note: expected 
'pulsar_send_callback {aka void (*)(enum <anonymous>,  struct 
_pulsar_message_id *, void *)}' but argument is of type 'void 
(*)(pulsar_result,  pulsar_message_t *, void *) {aka void (*)(enum <anonymous>, 
 struct _pulsar_message *, void *)}'
   >  PULSAR_PUBLIC void pulsar_producer_send_async(pulsar_producer_t 
*producer, pulsar_message_t *msg,
   >                     ^
   > # github.com/apache/pulsar/pulsar-client-go/pulsar
   > In file included from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_error.go:25:0:
   > /go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h: In 
function '_pulsar_producer_send_async':
   > 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h:70:51: 
warning: passing argument 3 of 'pulsar_producer_send_async' from incompatible 
pointer type [-Wincompatible-pointer-types]
   >      pulsar_producer_send_async(producer, message, 
pulsarProducerSendCallbackProxy, ctx);
   >                                                    ^
   > In file included from /usr/include/pulsar/c/client.h:26:0,
   >                  from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h:22,
   >                  from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_error.go:25:
   > /usr/include/pulsar/c/producer.h:80:20: note: expected 
'pulsar_send_callback {aka void (*)(enum <anonymous>,  struct 
_pulsar_message_id *, void *)}' but argument is of type 'void 
(*)(pulsar_result,  pulsar_message_t *, void *) {aka void (*)(enum <anonymous>, 
 struct _pulsar_message *, void *)}'
   >  PULSAR_PUBLIC void pulsar_producer_send_async(pulsar_producer_t 
*producer, pulsar_message_t *msg,
   >                     ^
   > # github.com/apache/pulsar/pulsar-client-go/pulsar
   > In file included from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_message.go:23:0:
   > /go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h: In 
function '_pulsar_producer_send_async':
   > 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h:70:51: 
warning: passing argument 3 of 'pulsar_producer_send_async' from incompatible 
pointer type [-Wincompatible-pointer-types]
   >      pulsar_producer_send_async(producer, message, 
pulsarProducerSendCallbackProxy, ctx);
   >                                                    ^
   > In file included from /usr/include/pulsar/c/client.h:26:0,
   >                  from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h:22,
   >                  from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_message.go:23:
   > /usr/include/pulsar/c/producer.h:80:20: note: expected 
'pulsar_send_callback {aka void (*)(enum <anonymous>,  struct 
_pulsar_message_id *, void *)}' but argument is of type 'void 
(*)(pulsar_result,  pulsar_message_t *, void *) {aka void (*)(enum <anonymous>, 
 struct _pulsar_message *, void *)}'
   >  PULSAR_PUBLIC void pulsar_producer_send_async(pulsar_producer_t 
*producer, pulsar_message_t *msg,
   >                     ^
   > # github.com/apache/pulsar/pulsar-client-go/pulsar
   > In file included from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_producer.go:23:0:
   > /go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h: In 
function '_pulsar_producer_send_async':
   > 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h:70:51: 
warning: passing argument 3 of 'pulsar_producer_send_async' from incompatible 
pointer type [-Wincompatible-pointer-types]
   >      pulsar_producer_send_async(producer, message, 
pulsarProducerSendCallbackProxy, ctx);
   >                                                    ^
   > In file included from /usr/include/pulsar/c/client.h:26:0,
   >                  from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h:22,
   >                  from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_producer.go:23:
   > /usr/include/pulsar/c/producer.h:80:20: note: expected 
'pulsar_send_callback {aka void (*)(enum <anonymous>,  struct 
_pulsar_message_id *, void *)}' but argument is of type 'void 
(*)(pulsar_result,  pulsar_message_t *, void *) {aka void (*)(enum <anonymous>, 
 struct _pulsar_message *, void *)}'
   >  PULSAR_PUBLIC void pulsar_producer_send_async(pulsar_producer_t 
*producer, pulsar_message_t *msg,
   >                     ^
   > # github.com/apache/pulsar/pulsar-client-go/pulsar
   > In file included from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_reader.go:23:0:
   > /go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h: In 
function '_pulsar_producer_send_async':
   > 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h:70:51: 
warning: passing argument 3 of 'pulsar_producer_send_async' from incompatible 
pointer type [-Wincompatible-pointer-types]
   >      pulsar_producer_send_async(producer, message, 
pulsarProducerSendCallbackProxy, ctx);
   >                                                    ^
   > In file included from /usr/include/pulsar/c/client.h:26:0,
   >                  from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_go_pulsar.h:22,
   >                  from 
/go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_reader.go:23:
   > /usr/include/pulsar/c/producer.h:80:20: note: expected 
'pulsar_send_callback {aka void (*)(enum <anonymous>,  struct 
_pulsar_message_id *, void *)}' but argument is of type 'void 
(*)(pulsar_result,  pulsar_message_t *, void *) {aka void (*)(enum <anonymous>, 
 struct _pulsar_message *, void *)}'
   >  PULSAR_PUBLIC void pulsar_producer_send_async(pulsar_producer_t 
*producer, pulsar_message_t *msg,
   >                     ^
   > # github.com/apache/pulsar/pulsar-client-go/pulsar
   > /go/src/github.com/apache/pulsar/pulsar-client-go/pulsar/c_message.go:232: 
t.Milliseconds undefined (type time.Duration has no field or method 
Milliseconds)
   > The command '/bin/sh -c go get -u 
github.com/apache/pulsar/pulsar-client-go/pulsar' returned a non-zero code: 2


----------------------------------------------------------------
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:
[email protected]


Reply via email to