jaegertracing / jaeger-idl

A set of shared data model definitions used by Jaeger components.
http://jaegertracing.io/
Apache License 2.0
82 stars 72 forks source link

[Bug]: Plugin killed by signal 11 by calling make proto #105

Open xhyzzZ opened 8 months ago

xhyzzZ commented 8 months ago

What happened?

I followed the guide to clone the repo and run make proto on my local desktop, then I am seeing this error

$ make proto
mkdir -p proto-gen-go \
        proto-gen-java \
        proto-gen-python \
        proto-gen-js \
        proto-gen-cpp \
        proto-gen-csharp
docker run --rm -u 501 -v "/Users/haoyuxu/workspace/jaeger-idl:/Users/haoyuxu/workspace/jaeger-idl" -w /Users/haoyuxu/workspace/jaeger-idl jaegertracing/protobuf:0.5.0 --proto_path=/Users/haoyuxu/workspace/jaeger-idl -Iproto/api_v2 -Iproto -I/usr/include/github.com/gogo/protobuf -Iopentelemetry-proto --gogo_out=plugins=grpc,Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/empty.proto=github.com/gogo/protobuf/types,Mgoogle/api/annotations.proto=github.com/gogo/googleapis/google/api,Mmodel.proto=github.com/jaegertracing/jaeger/model:/Users/haoyuxu/workspace/jaeger-idl/proto-gen-go --java_out=proto-gen-java --python_out=proto-gen-python --js_out=proto-gen-js --cpp_out=proto-gen-cpp --csharp_out=base_namespace:proto-gen-csharp \
        proto/api_v2/model.proto
docker run --rm -u 501 -v "/Users/haoyuxu/workspace/jaeger-idl:/Users/haoyuxu/workspace/jaeger-idl" -w /Users/haoyuxu/workspace/jaeger-idl jaegertracing/protobuf:0.5.0 --proto_path=/Users/haoyuxu/workspace/jaeger-idl -Iproto/api_v2 -Iproto -I/usr/include/github.com/gogo/protobuf -Iopentelemetry-proto --gogo_out=plugins=grpc,Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/empty.proto=github.com/gogo/protobuf/types,Mgoogle/api/annotations.proto=github.com/gogo/googleapis/google/api,Mmodel.proto=github.com/jaegertracing/jaeger/model:/Users/haoyuxu/workspace/jaeger-idl/proto-gen-go --java_out=proto-gen-java --python_out=proto-gen-python --js_out=proto-gen-js --cpp_out=proto-gen-cpp --csharp_out=base_namespace:proto-gen-csharp --grpc-java_out=proto-gen-java --grpc-python_out=proto-gen-python --grpc-js_out=proto-gen-js --grpc-cpp_out=proto-gen-cpp --grpc-csharp_out=proto-gen-csharp \
        proto/api_v2/query.proto \
        proto/api_v2/collector.proto \
        proto/api_v2/sampling.proto
--grpc-csharp_out: protoc-gen-grpc-csharp: Plugin killed by signal 11.
make: *** [proto-api-v2] Error 1

Steps to reproduce

  1. Clone the repo
  2. Run make proto

Expected behavior

All the gRPC files should be generated.

Relevant log output

$ make proto
mkdir -p proto-gen-go \
        proto-gen-java \
        proto-gen-python \
        proto-gen-js \
        proto-gen-cpp \
        proto-gen-csharp
docker run --rm -u 501 -v "/Users/haoyuxu/workspace/jaeger-idl:/Users/haoyuxu/workspace/jaeger-idl" -w /Users/haoyuxu/workspace/jaeger-idl jaegertracing/protobuf:0.5.0 --proto_path=/Users/haoyuxu/workspace/jaeger-idl -Iproto/api_v2 -Iproto -I/usr/include/github.com/gogo/protobuf -Iopentelemetry-proto --gogo_out=plugins=grpc,Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/empty.proto=github.com/gogo/protobuf/types,Mgoogle/api/annotations.proto=github.com/gogo/googleapis/google/api,Mmodel.proto=github.com/jaegertracing/jaeger/model:/Users/haoyuxu/workspace/jaeger-idl/proto-gen-go --java_out=proto-gen-java --python_out=proto-gen-python --js_out=proto-gen-js --cpp_out=proto-gen-cpp --csharp_out=base_namespace:proto-gen-csharp \
        proto/api_v2/model.proto
docker run --rm -u 501 -v "/Users/haoyuxu/workspace/jaeger-idl:/Users/haoyuxu/workspace/jaeger-idl" -w /Users/haoyuxu/workspace/jaeger-idl jaegertracing/protobuf:0.5.0 --proto_path=/Users/haoyuxu/workspace/jaeger-idl -Iproto/api_v2 -Iproto -I/usr/include/github.com/gogo/protobuf -Iopentelemetry-proto --gogo_out=plugins=grpc,Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/empty.proto=github.com/gogo/protobuf/types,Mgoogle/api/annotations.proto=github.com/gogo/googleapis/google/api,Mmodel.proto=github.com/jaegertracing/jaeger/model:/Users/haoyuxu/workspace/jaeger-idl/proto-gen-go --java_out=proto-gen-java --python_out=proto-gen-python --js_out=proto-gen-js --cpp_out=proto-gen-cpp --csharp_out=base_namespace:proto-gen-csharp --grpc-java_out=proto-gen-java --grpc-python_out=proto-gen-python --grpc-js_out=proto-gen-js --grpc-cpp_out=proto-gen-cpp --grpc-csharp_out=proto-gen-csharp \
        proto/api_v2/query.proto \
        proto/api_v2/collector.proto \
        proto/api_v2/sampling.proto
--grpc-csharp_out: protoc-gen-grpc-csharp: Plugin killed by signal 11.
make: *** [proto-api-v2] Error 1
yurishkuro commented 8 months ago

are you running on ARM? I think our ARM image of jaegertracing/protobuf is missing csharp plugin

xhyzzZ commented 8 months ago

yes i am running on ARM. Even if I comment out all the csharp line, it's showing the same error but for java gRPC

mkdir -p proto-gen-go \
        proto-gen-java \
        proto-gen-python \
        proto-gen-js \
        proto-gen-cpp \
        proto-gen-csharp
docker run --rm -u 501 -v "/Users/haoyuxu/workspace/jaeger-idl:/Users/haoyuxu/workspace/jaeger-idl" -w /Users/haoyuxu/workspace/jaeger-idl jaegertracing/protobuf:0.5.0 --proto_path=/Users/haoyuxu/workspace/jaeger-idl -Iproto/api_v2 -Iproto -I/usr/include/github.com/gogo/protobuf -Iopentelemetry-proto --gogo_out=plugins=grpc,Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/empty.proto=github.com/gogo/protobuf/types,Mgoogle/api/annotations.proto=github.com/gogo/googleapis/google/api,Mmodel.proto=github.com/jaegertracing/jaeger/model:/Users/haoyuxu/workspace/jaeger-idl/proto-gen-go --java_out=proto-gen-java --python_out=proto-gen-python --js_out=proto-gen-js --cpp_out=proto-gen-cpp \
        proto/api_v2/model.proto
docker run --rm -u 501 -v "/Users/haoyuxu/workspace/jaeger-idl:/Users/haoyuxu/workspace/jaeger-idl" -w /Users/haoyuxu/workspace/jaeger-idl jaegertracing/protobuf:0.5.0 --proto_path=/Users/haoyuxu/workspace/jaeger-idl -Iproto/api_v2 -Iproto -I/usr/include/github.com/gogo/protobuf -Iopentelemetry-proto --gogo_out=plugins=grpc,Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/empty.proto=github.com/gogo/protobuf/types,Mgoogle/api/annotations.proto=github.com/gogo/googleapis/google/api,Mmodel.proto=github.com/jaegertracing/jaeger/model:/Users/haoyuxu/workspace/jaeger-idl/proto-gen-go --java_out=proto-gen-java --python_out=proto-gen-python --js_out=proto-gen-js --cpp_out=proto-gen-cpp --grpc-java_out=proto-gen-java --grpc-python_out=proto-gen-python --grpc-js_out=proto-gen-js --grpc-cpp_out=proto-gen-cpp \
        proto/api_v2/query.proto \
        proto/api_v2/collector.proto \
        proto/api_v2/sampling.proto
--grpc-java_out: protoc-gen-grpc-java: Plugin killed by signal 11.

THRIFT_VER?=0.13
THRIFT_IMG?=jaegertracing/thrift:$(THRIFT_VER)
THRIFT=docker run --rm -u $(shell id -u) -v "${PWD}:/data" $(THRIFT_IMG) thrift

SWAGGER_VER=0.12.0
SWAGGER_IMAGE=quay.io/goswagger/swagger:$(SWAGGER_VER)
SWAGGER=docker run --rm -u ${shell id -u} -v "${PWD}:/go/src/${PROJECT_ROOT}" -w /go/src/${PROJECT_ROOT} $(SWAGGER_IMAGE)

PROTOTOOL_VER=1.8.0
PROTOTOOL_IMAGE=uber/prototool:$(PROTOTOOL_VER)
PROTOTOOL=docker run --rm -u ${shell id -u} -v "${PWD}:/go/src/${PROJECT_ROOT}" -w /go/src/${PROJECT_ROOT} $(PROTOTOOL_IMAGE)

PROTOC_VER=0.5.0
PROTOC_IMAGE=jaegertracing/protobuf:$(PROTOC_VER)
PROTOC=docker run --rm -u ${shell id -u} -v "${PWD}:${PWD}" -w ${PWD} ${PROTOC_IMAGE} --proto_path=${PWD}

THRIFT_GO_ARGS=thrift_import="github.com/apache/thrift/lib/go/thrift"
THRIFT_PY_ARGS=new_style,tornado
THRIFT_JAVA_ARGS=private-members
THRIFT_PHP_ARGS=psr4

THRIFT_GEN=--gen lua --gen go:$(THRIFT_GO_ARGS) --gen py:$(THRIFT_PY_ARGS) --gen java:$(THRIFT_JAVA_ARGS) --gen js:node --gen cpp --gen php:$(THRIFT_PHP_ARGS)
THRIFT_CMD=$(THRIFT) -o /data $(THRIFT_GEN)

THRIFT_FILES=agent.thrift jaeger.thrift sampling.thrift zipkincore.thrift crossdock/tracetest.thrift \
    baggage.thrift dependency.thrift aggregation_validator.thrift

test-ci: thrift swagger-validate protocompile proto proto-zipkin
    git diff --exit-code ./swagger/api_v3/query_service.swagger.json

swagger-validate:
    $(SWAGGER) validate ./swagger/zipkin2-api.yaml

clean:
    rm -rf *gen-* || true

thrift: thrift-image clean $(THRIFT_FILES)

$(THRIFT_FILES):
    @echo Compiling $@
    $(THRIFT_CMD) /data/thrift/$@

thrift-image:
    docker pull $(THRIFT_IMG)
    $(THRIFT) -version

protocompile:
    $(PROTOTOOL) prototool compile proto --dry-run

PROTO_INCLUDES := \
    -Iproto/api_v2 \
    -Iproto \
    -I/usr/include/github.com/gogo/protobuf \
    -Iopentelemetry-proto
# Remapping of std types to gogo types (must not contain spaces)
PROTO_GOGO_MAPPINGS := $(shell echo \
        Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/types, \
        Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types, \
        Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types, \
        Mgoogle/protobuf/empty.proto=github.com/gogo/protobuf/types, \
        Mgoogle/api/annotations.proto=github.com/gogo/googleapis/google/api, \
        Mmodel.proto=github.com/jaegertracing/jaeger/model \
    | sed 's/ //g')

PROTO_GEN_GO_DIR ?= proto-gen-go
PROTO_GEN_PYTHON_DIR ?= proto-gen-python
PROTO_GEN_JAVA_DIR ?= proto-gen-java
PROTO_GEN_JS_DIR ?= proto-gen-js
PROTO_GEN_CPP_DIR ?= proto-gen-cpp
PROTO_GEN_CSHARP_DIR ?= proto-gen-csharp

PROTOC_WITHOUT_GRPC := $(PROTOC) \
        $(PROTO_INCLUDES) \
        --gogo_out=plugins=grpc,$(PROTO_GOGO_MAPPINGS):$(PWD)/${PROTO_GEN_GO_DIR} \
        --java_out=${PROTO_GEN_JAVA_DIR} \
        --python_out=${PROTO_GEN_PYTHON_DIR} \
        --js_out=${PROTO_GEN_JS_DIR} \
        --cpp_out=${PROTO_GEN_CPP_DIR}

PROTOC_WITH_GRPC := $(PROTOC_WITHOUT_GRPC) \
        --grpc-java_out=${PROTO_GEN_JAVA_DIR} \
        --grpc-python_out=${PROTO_GEN_PYTHON_DIR} \
        --grpc-js_out=${PROTO_GEN_JS_DIR} \
        --grpc-cpp_out=${PROTO_GEN_CPP_DIR}

PROTOC_INTERNAL := $(PROTOC) \
        $(PROTO_INCLUDES) \
        --python_out=${PROTO_GEN_PYTHON_DIR}

.PHONY: proto
proto: proto-prepare proto-api-v2 proto-api-v3

.PHONY: proto-prepare
proto-prepare:
    mkdir -p ${PROTO_GEN_GO_DIR} \
        ${PROTO_GEN_JAVA_DIR} \
        ${PROTO_GEN_PYTHON_DIR} \
        ${PROTO_GEN_JS_DIR} \
        ${PROTO_GEN_CPP_DIR} \
        ${PROTO_GEN_CSHARP_DIR}

.PHONY: proto-api-v2
proto-api-v2:
    $(PROTOC_WITHOUT_GRPC) \
        proto/api_v2/model.proto

    $(PROTOC_WITH_GRPC) \
        proto/api_v2/query.proto \
        proto/api_v2/collector.proto \
        proto/api_v2/sampling.proto

.PHONY: proto-api-v3
proto-api-v3:
    # API v3
    $(PROTOC_WITH_GRPC) \
        proto/api_v3/query_service.proto
    # GRPC gateway
    $(PROTOC) \
        $(PROTO_INCLUDES) \
        --grpc-gateway_out=logtostderr=true,grpc_api_configuration=proto/api_v3/query_service_http.yaml,$(PROTO_GOGO_MAPPINGS):${PROTO_GEN_GO_DIR} \
        proto/api_v3/query_service.proto
    # Swagger
    $(PROTOC) \
        $(PROTO_INCLUDES) \
        --swagger_out=disable_default_errors=true,logtostderr=true,grpc_api_configuration=proto/api_v3/query_service_http.yaml:./swagger \
        proto/api_v3/query_service.proto

    $(PROTOC_INTERNAL) \
        google/api/annotations.proto \
        google/api/http.proto \
        protoc-gen-swagger/options/annotations.proto \
        protoc-gen-swagger/options/openapiv2.proto \
        gogoproto/gogo.proto

proto-zipkin:
    $(PROTOC_WITHOUT_GRPC) \
        proto/zipkin.proto

init-submodule:
    git submodule init
    git submodule update

.PHONY: test-ci clean thrift thrift-image $(THRIFT_FILES) swagger-validate protocompile proto proto-zipkin init-submodule
xhyzzZ commented 7 months ago

Any update on this?

yurishkuro commented 7 months ago

https://github.com/jaegertracing/docker-protobuf/issues/37