I'm seeing multiple HTTP 500
errors when Caliper
tries to upload the JSON result files for the benchmarks I'm running. The logs are filled with exceptions similar to the one below:
Dec 19, 2013 3:29:20 PM com.google.caliper.runner.ResultsUploader logUploadFailure
SEVERE: Could not upload trial c0e4f478-7408-4050-88d3-7446e21bb7a1. Consider uploading it manually.
com.sun.jersey.api.client.UniformInterfaceException: POST https://microbenchmarks.appspot.com/data/trials?key={my-valid-api-key} returned a response status of 500 Internal Server Error
at com.sun.jersey.api.client.WebResource.voidHandle(WebResource.java:697)
at com.sun.jersey.api.client.WebResource.access$400(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:548)
at com.google.caliper.runner.ResultsUploader.processTrial(ResultsUploader.java:104)
at com.google.caliper.runner.ExperimentingCaliperRun.run(ExperimentingCaliperRun.java:231)
at com.google.caliper.runner.CaliperMain.exitlessMain(CaliperMain.java:135)
at com.google.caliper.runner.CaliperMain.main(CaliperMain.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
at java.lang.Thread.run(Thread.java:695)
However, a report does show up on the /runs
page under my account, so it seems it's able to upload at least some of them. Doing a curl POST
to the specified URL with any of the failed trials results in the same error.
Has anyone else encountered these errors? Is there something I'm missing in my configuration?
Caliper config.properties
:
# Caliper config file
# Run with --print-config to see all of the options being applied
# INSTRUMENT CONFIG
# instrument.micro.options.warmup=10s
# instrument.micro.options.timingInterval=500ms
# instrument.micro.options.reportedIntervals=7
# instrument.micro.options.maxRuntime=10s
# VM CONFIG
vm.args=-Xmx3g -Xms3g
# See the Caliper webapp to get a key so you can associate results with your account
results.upload.options.key={my-valid-api-key}
Caliper version:
<dependency>
<groupId>com.google.caliper</groupId>
<artifactId>caliper</artifactId>
<version>1.0-beta-SNAPSHOT</version>
</dependency>
System properties:
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 08:22:22-0700)
Maven home: ~/maven3/apache-maven-3.1.1
Java version: 1.6.0_65, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.9.1", arch: "x86_64", family: "mac"
Also, the error logs suggest uploading the failed results manually. However, I don't see any option on the Microbenchmarks Appspot page to upload results.
Edit 1: Benchmark launch command:
mvn exec:java -Dexec.mainClass="com.google.caliper.runner.CaliperMain" -Dexec.args="my.benchmarkclass"