jmeter-grpc-request
jmeter-grpc-request copied to clipboard
protoc not found
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
Could you please provide your command line to run the test with docker
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
could you try with a version v1.2.4
I meet the same issue, and I tried v1.2.4, still not work
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 ?
Change the base image works for me. alpine
-> phusion/baseimage
Do you know why it is not working on Alpine ?
Our images are all based on Alpine ; this image will then become an exception
No idea. I'm also looking forward to using Alpine
Please help to run the command line in your docker image and provide the output from terminal "arch"
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
This issue is stale because it has been open for 30 days with no activity.
This issue was closed because it has been inactive for 14 days since being marked as stale.