jmeter-grpc-request icon indicating copy to clipboard operation
jmeter-grpc-request copied to clipboard

protoc not found

Open ldubrois opened this issue 2 years ago • 10 comments

Hello

I'm new to JMeter and GRPC.

I am trying to run a simple load test on a GRPC. I "designed" the plan on my Windows desktop and run it from a docker image I have created composed of JMeter 5.5 and your plugin.

On Windows, everything works fine, and my GRPC respond correctly when I make calls on it ; however when I try to run it on my docker image, I have the following error :

protoc-jar: executing: [/root/protocjar2836171193531476824/bin/protoc.exe, /data/plans/various-net-rest/protos/definitions/groups.proto, /data/plans/various-net-rest/protos/definitions/orgunits.proto, /data/plans/various-net-rest/protos/definitions/idecsi.proto, /data/plans/various-net-rest/protos/definitions/users.proto, /data/plans/various-net-rest/protos/definitions/bcl.proto, -I/data/plans/various-net-rest, -I/tmp/polyglot-well-known-types6152673638723248615, -I/data/plans/various-net-rest/protos/definitions, --descriptor_set_out=/tmp/descriptor7298494316876722494.pb.bin, --include_imports]
protoc-jar: caught exception, retrying: java.io.IOException: Cannot run program "/root/protocjar2836171193531476824/bin/protoc.exe": error=2, No such file or directory

It seems JMeter tries to extract protoc and fails. I've check on my root folder (inside the container) ; a lot of folders have been created but are empty :

bash-5.0# ls -la /root
total 592
drwx------    1 root     root         12288 Aug 29 12:26 .
drwxr-xr-x    1 root     root          4096 Aug 26 19:02 ..
drwxr-xr-x    3 root     root          4096 Aug 26 19:05 .java
drwxr-xr-x    3 root     root          4096 Aug 26 19:05 .xmlresolver.org
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1054210220643666033
drwxr-xr-x    3 root     root          4096 Aug 29 12:26 protocjar1081656123494679070
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1089281204173412717
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1114364354043061131
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1134672610318948229
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1172626416833290321
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1223208108087094134
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1232693709059410816
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1260332253508817565
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1264778688547381355
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1386086665470300468
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1449530617661051350
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1496269232531476479
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1540482937336149640
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1590485306313282116
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1618616069122318440
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1623098157640015427
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1664865795063888450
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1669475240043161766
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1707075011610564955
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1709591080239414703
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1778303094870944149
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar1878993455605160081
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar2034346621181491212
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar2106859008023225578
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar242551655593392514
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar243632539110690730
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar2506925832112169634
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar2583122099460856004
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar2691221759204620640
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar2733455136926175725
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar2780475174038679529
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar2869931571714916886
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3015123906820178517
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3045776301432332179
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3114683371406970261
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3144485781043123920
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3155121317356815876
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3191360066612902157
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar321562358659344195
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3250191847640920589
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3283940336472176313
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3313943695562098098
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3354555365357757256
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3420372486352804567
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3576292858546711492
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3621218243137717819
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3630854805995288999
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar365831272505823174
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3664340628592229079
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3710636514533506847
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3852408437458857524
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3924097895725999231
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3927591239970303828
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar3948458543881489478
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar4044650413542618403
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar4054383577064371598
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar4102151736629967346
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar4161577444500283862
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar419735281032981219
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar4310586350124852317
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar4336835803840794721
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar4395559507666532741
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar457828673721173097
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar4640265267978412539
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar4671837626054415733
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar4697286433514108387
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar4856216694880841200
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar4872409807639073408
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar4894803778292145090
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar5094746039036437318
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar5124055277314159222
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar5153524229866043084
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar5192084314039628128
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar5229118292170851443
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar5241694007773917464
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar5355813502918316877
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar5365594003576639208
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar5414033862469173657
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar5416435204943337719
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar5583203317703000164
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar5650910980155130334
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar5838044162675796622
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar5877799402706014925
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6003178606191828344
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6050610456984547220
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6163295099905306192
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6181899192750505069
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6190602713284064702
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6210960580234131445
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar625371809549746054
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6276830892355356187
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6410575272853645980
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6431642531826122293
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6527956140073416111
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6649937652308925438
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6675885953660925697
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6697972143999687130
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6777815885894476060
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar681132467248344173
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6823871841609013683
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6845378200459299573
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6892906776619240183
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar6902785029200315244
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7126910146497554603
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7133980788893587565
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7151240730361083719
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7166287483440667436
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7182453750413314467
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7273201974551591132
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7370219170333339583
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7464116743858685913
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7472812962784843850
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7570987526320710874
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7592041012732292143
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7649856451818995265
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7767637067305376911
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7796094961125101293
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7849890528917453671
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7888301976616466083
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar788855230829598645
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7908401646960832858
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar7995336769913269255
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar8116987583992325509
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar8128419829351246496
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar8137201499832424017
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar8145681470668343811
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar8147039162178037902
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar8149923457472612196
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar8229930901450300916
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar8241319938476525041
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar830005262355985283
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar8570664122024261737
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar8623534296579070161
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar8719119486192403267
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar8800096361573052204
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar8800188615106822802
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar892901950674721167
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar9007657700832241981
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar9065292837087329990
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar9119602616069626877
drwxr-xr-x    2 root     root          4096 Aug 29 12:26 protocjar925979855443337382

Do you know how to fix this issue ?

Thanks

ldubrois avatar Aug 29 '22 13:08 ldubrois

Could you please provide your command line to run the test with docker

minhhoangvn avatar Aug 29 '22 13:08 minhhoangvn

The Dockerfile corresponding to the image I have created is

# inspired by https://github.com/alpine-docker/jmeter/blob/master/Dockerfile

FROM alpine:3.10

ARG JMETER_VERSION="5.5"
ENV JMETER_HOME /opt/apache-jmeter-${JMETER_VERSION}
ENV	JMETER_BIN	${JMETER_HOME}/bin
ENV	JMETER_DOWNLOAD_URL  https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-${JMETER_VERSION}.tgz

# Install extra packages
# See https://github.com/gliderlabs/docker-alpine/issues/136#issuecomment-272703023
# Change TimeZone TODO: TZ still is not set!
ARG TZ="Europe/Amsterdam"
RUN    apk update \
	&& apk upgrade \
	&& apk add ca-certificates \
	&& update-ca-certificates \
	&& apk add --update openjdk8-jre tzdata curl unzip bash \
	&& apk add --no-cache nss \
	&& rm -rf /var/cache/apk/* \
	&& mkdir -p /tmp/dependencies  \
	&& curl -L --silent ${JMETER_DOWNLOAD_URL} >  /tmp/dependencies/apache-jmeter-${JMETER_VERSION}.tgz  \
	&& mkdir -p /opt  \
	&& tar -xzf /tmp/dependencies/apache-jmeter-${JMETER_VERSION}.tgz -C /opt  \
	&& rm -rf /tmp/dependencies



# Set global PATH such that "jmeter" command is found
ENV PATH $PATH:$JMETER_BIN

# Entrypoint has same signature as "jmeter" command
COPY entrypoint.sh /
COPY rmi_keystore.jks $JMETER_BIN/
COPY jmeter-grpc-request-v1.2.1.jar $JMETER_HOME/lib/ext
WORKDIR	${JMETER_HOME}

ENTRYPOINT ["/entrypoint.sh"]

The corresponding entrypoint.sh :

#!/bin/bash
# Inspired from https://github.com/hhcordero/docker-jmeter-client
# Basically runs jmeter, assuming the PATH is set to point to JMeter bin-dir (see Dockerfile)
#
# This script expects the standdard JMeter command parameters.
#
set -e
freeMem=`awk '/MemFree/ { print int($2/1024) }' /proc/meminfo`
s=$(($freeMem/10*8))
x=$(($freeMem/10*8))
n=$(($freeMem/10*2))
export JVM_ARGS="-Xmn${n}m -Xms${s}m -Xmx${x}m"

echo "START Running Jmeter on `date`"
echo "JVM_ARGS=${JVM_ARGS}"
echo "jmeter args=$@"

# Keep entrypoint simple: we must pass the standard JMeter arguments
jmeter $@
echo "END Running Jmeter on `date`"

#     -n \
#    -t "/tests/${TEST_DIR}/${TEST_PLAN}.jmx" \
#    -l "/tests/${TEST_DIR}/${TEST_PLAN}.jtl"
# exec tail -f jmeter.log
#    -D "java.rmi.server.hostname=${IP}" \
#    -D "client.rmi.localport=${RMI_PORT}" \
#  -R $REMOTE_HOSTS

The container is then started with an override of the entrypoint : tail -f /dev/null to be able to run a bash inside it, the JMeter is started as usual : jmeter -n -t test.jmx

ldubrois avatar Aug 29 '22 14:08 ldubrois

could you try with a version v1.2.4

minhhoangvn avatar Aug 29 '22 14:08 minhhoangvn

I meet the same issue, and I tried v1.2.4, still not work

qiangzhichen avatar Aug 30 '22 04:08 qiangzhichen

I also tries with the version 1.2.4 and it does not work.

I am absolutely not a java / protoc expert, but the log indicates "protoc.exe", could it be os72 which does not compute the right environment (linux vs windows) and tries to put the wrong protoc version ?

ldubrois avatar Aug 30 '22 07:08 ldubrois

Change the base image works for me. alpine -> phusion/baseimage

qiangzhichen avatar Aug 30 '22 08:08 qiangzhichen

Do you know why it is not working on Alpine ?

Our images are all based on Alpine ; this image will then become an exception

ldubrois avatar Aug 30 '22 09:08 ldubrois

No idea. I'm also looking forward to using Alpine

qiangzhichen avatar Aug 30 '22 09:08 qiangzhichen

Please help to run the command line in your docker image and provide the output from terminal "arch"

minhhoangvn avatar Aug 30 '22 09:08 minhhoangvn

Here some details on the container

bash-5.0# cat /etc/os-release
  NAME="Alpine Linux"
  ID=alpine
  VERSION_ID=3.10.9
  PRETTY_NAME="Alpine Linux v3.10"
  HOME_URL="https://alpinelinux.org/"
  BUG_REPORT_URL="https://bugs.alpinelinux.org/"
bash-5.0# arch
  x86_64

ldubrois avatar Aug 30 '22 11:08 ldubrois

This issue is stale because it has been open for 30 days with no activity.

huynhminhtan avatar Sep 30 '22 04:09 huynhminhtan

This issue was closed because it has been inactive for 14 days since being marked as stale.

huynhminhtan avatar Oct 15 '22 04:10 huynhminhtan