Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
xhyzzZ opened this issue Feb 3, 2024 · 4 comments
Open

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

xhyzzZ opened this issue Feb 3, 2024 · 4 comments

Comments

@xhyzzZ
Copy link

xhyzzZ commented Feb 3, 2024

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
@xhyzzZ xhyzzZ added the bug label Feb 3, 2024
@yurishkuro
Copy link
Member

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

@xhyzzZ
Copy link
Author

xhyzzZ commented Feb 3, 2024

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
Copy link
Author

xhyzzZ commented Feb 9, 2024

Any update on this?

@yurishkuro yurishkuro changed the title [Bug]: Plugin killed by signal 11 by calling make proto make proto does not run on ARM chips Feb 9, 2024
@yurishkuro yurishkuro added enhancement help wanted good first issue Issue suitable for first-time contributors and removed bug labels Feb 9, 2024
@yurishkuro yurishkuro removed the good first issue Issue suitable for first-time contributors label Feb 9, 2024
@yurishkuro yurishkuro changed the title make proto does not run on ARM chips [Bug]: Plugin killed by signal 11 by calling make proto Feb 9, 2024
@yurishkuro
Copy link
Member

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants