zalopay-oss/jmeter-grpc-request

Unable to resolve service by invoking protoc on M1 Mac

steverawlins-zebra opened this issue · 2 comments

When I try "Listing" (to see all those methods available), the Full Method: dropdown remains empty and the log shows a problem trying to invoke protoc:

2022-07-13 13:56:36,293 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.visualizers.StatVisualizer[Aggregate Report,0,0,877x717,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]
2022-07-13 13:56:36,293 DEBUG o.a.j.g.GuiPackage: Gui retrieved = org.apache.jmeter.visualizers.ViewResultsFullVisualizer[View Results Tree,0,0,877x717,invalid,layout=java.awt.BorderLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@3b0a2cb7,flags=9,maximumSize=,minimumSize=,preferredSize=]
2022-07-13 13:56:37,867 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.StringProperty: vn.zalopay.benchmark.GRPCSamplerGui
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.StringProperty: vn.zalopay.benchmark.GRPCSampler
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.StringProperty: ListAllProperties
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: Replacement result: ListAllProperties
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.BooleanProperty: true
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: Won't replace true
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.StringProperty: ${protoFiles}
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: Replacement result: /Users/srawlins/Projects/phoenix-services/libs/protobuf/src/main/proto
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.StringProperty: ${protoLib}
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: Replacement result: /Users/srawlins/Projects/phoenix-services/libs/protobuf/src/google
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.StringProperty: ${authToken}
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: Replacement result: Authorization:Bearer bb6eb4c3-d365-3e23-8acb-a452170e3148
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.StringProperty: ${env}
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: Replacement result: uat-ssppcores.pp.zebra.com
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.StringProperty: ${port}
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: Replacement result: 443
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.StringProperty: property.PropertyService/ListProperties
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: Replacement result: property.PropertyService/ListProperties
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.StringProperty: ${gRPCDeadline}
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: Replacement result: 3000
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.BooleanProperty: true
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: Won't replace true
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.StringProperty: {}
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: Replacement result: {}
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.BooleanProperty: false
2022-07-13 13:56:37,868 DEBUG o.a.j.e.u.ValueReplacer: Won't replace false
2022-07-13 13:56:37,869 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.StringProperty: 1000
2022-07-13 13:56:37,869 DEBUG o.a.j.e.u.ValueReplacer: Replacement result: 1000
2022-07-13 13:56:37,869 DEBUG o.a.j.e.u.ValueReplacer: About to replace in property of type: class org.apache.jmeter.testelement.property.StringProperty: 
2022-07-13 13:56:37,869 DEBUG o.a.j.e.u.ValueReplacer: Replacement result: 
2022-07-13 13:56:37,930 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[AWT-EventQueue-0,6,main]
java.lang.RuntimeException: Unable to resolve service by invoking protoc
	at vn.zalopay.benchmark.core.ClientList.getServiceResolver(ClientList.java:51) ~[jmeter-grpc-request-v1.2.1.jar:?]
	at vn.zalopay.benchmark.GRPCSamplerGui.getMethods(GRPCSamplerGui.java:315) ~[jmeter-grpc-request-v1.2.1.jar:?]
	at vn.zalopay.benchmark.GRPCSamplerGui.access$100(GRPCSamplerGui.java:40) ~[jmeter-grpc-request-v1.2.1.jar:?]
	at vn.zalopay.benchmark.GRPCSamplerGui$1.actionPerformed(GRPCSamplerGui.java:276) ~[jmeter-grpc-request-v1.2.1.jar:?]
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) ~[?:?]
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) ~[?:?]
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) ~[?:?]
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) ~[?:?]
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) ~[?:?]
	at java.awt.Component.processMouseEvent(Component.java:6616) ~[?:?]
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3398) ~[?:?]
	at java.awt.Component.processEvent(Component.java:6381) ~[?:?]
	at java.awt.Container.processEvent(Container.java:2266) ~[?:?]
	at java.awt.Component.dispatchEventImpl(Component.java:4991) ~[?:?]
	at java.awt.Container.dispatchEventImpl(Container.java:2324) ~[?:?]
	at java.awt.Component.dispatchEvent(Component.java:4823) ~[?:?]
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) ~[?:?]
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) ~[?:?]
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) ~[?:?]
	at java.awt.Container.dispatchEventImpl(Container.java:2310) ~[?:?]
	at java.awt.Window.dispatchEventImpl(Window.java:2780) ~[?:?]
	at java.awt.Component.dispatchEvent(Component.java:4823) ~[?:?]
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775) ~[?:?]
	at java.awt.EventQueue$4.run(EventQueue.java:720) ~[?:?]
	at java.awt.EventQueue$4.run(EventQueue.java:714) ~[?:?]
	at java.security.AccessController.doPrivileged(AccessController.java:399) ~[?:?]
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) ~[?:?]
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) ~[?:?]
	at java.awt.EventQueue$5.run(EventQueue.java:747) ~[?:?]
	at java.awt.EventQueue$5.run(EventQueue.java:745) ~[?:?]
	at java.security.AccessController.doPrivileged(AccessController.java:399) ~[?:?]
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) ~[?:?]
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:744) ~[?:?]
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) ~[?:?]
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) ~[?:?]
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) ~[?:?]
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) ~[?:?]
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) ~[?:?]
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) ~[?:?]
Caused by: vn.zalopay.benchmark.core.protobuf.ProtocInvoker$ProtocInvocationException: Unable to execute protoc binary
	at vn.zalopay.benchmark.core.protobuf.ProtocInvoker.invokeBinary(ProtocInvoker.java:137) ~[jmeter-grpc-request-v1.2.1.jar:?]
	at vn.zalopay.benchmark.core.protobuf.ProtocInvoker.invoke(ProtocInvoker.java:115) ~[jmeter-grpc-request-v1.2.1.jar:?]
	at vn.zalopay.benchmark.core.ClientList.getServiceResolver(ClientList.java:44) ~[jmeter-grpc-request-v1.2.1.jar:?]
	... 38 more
Caused by: java.io.FileNotFoundException: Unsupported platform: protoc-3.11.4-osx-aarch_64.exe
	at com.github.os72.protocjar.Protoc.extractProtoc(Protoc.java:223) ~[jmeter-grpc-request-v1.2.1.jar:?]
	at com.github.os72.protocjar.Protoc.extractProtoc(Protoc.java:184) ~[jmeter-grpc-request-v1.2.1.jar:?]
	at com.github.os72.protocjar.Protoc.runProtoc(Protoc.java:68) ~[jmeter-grpc-request-v1.2.1.jar:?]
	at com.github.os72.protocjar.Protoc.runProtoc(Protoc.java:55) ~[jmeter-grpc-request-v1.2.1.jar:?]
	at vn.zalopay.benchmark.core.protobuf.ProtocInvoker.invokeBinary(ProtocInvoker.java:134) ~[jmeter-grpc-request-v1.2.1.jar:?]
	at vn.zalopay.benchmark.core.protobuf.ProtocInvoker.invoke(ProtocInvoker.java:115) ~[jmeter-grpc-request-v1.2.1.jar:?]
	at vn.zalopay.benchmark.core.ClientList.getServiceResolver(ClientList.java:44) ~[jmeter-grpc-request-v1.2.1.jar:?]
	... 38 more

And when I try executing the test, I get:

2022-07-13 13:55:08,856 ERROR o.a.j.s.SampleResult: setEndTime must be called after setStartTime

@steverawlins-zebra, you can work around it by inputting the java properties "-Dos.arch=x86_64" since the library of protoc did not have an executable for M1 with arm chipset.

They still open the PR os72/protoc-jar#94

Thank you! That worked.