Hello, I’m migrating data from one measurement to another (changed my schema design). I’ve written a program, in Java, that will read the data from the first measurement and write it into the new measurement. This is working fine for some measurements. However, there’s on measurement, which I read all the data from successfully, and queue it up in my HttpURLConnection object, and then call getResponseCode, at which point I get an IOException, with a somewhat generic message from java saying “Error writing to server”. I don’t get a response code, I don’t see anything in the /var/log/message for influx, other than the post.
Any idea what extra debugging/logging I could turn on to isolate this? I don’t think I particularly have more data in this measurement, since my java program only migrates 200 timestamps at a time (but that is for all field keys), to reduce load on the system and database.
This same java program works fine on other measurements, and correctly writes the data to the database in the new measurement and schema/field format.
Thoughts?
Forgot to mention, java client is locally running on same linux (Redhat 7.4) server as influxdb, version 1.4.2.
I tried turning on trace logging in the conf file, but that hasn’t yielded any new information as to the cause. It simply shows the post to the write api, and that’s it. My program logs the exception, and I move onto the next 200 timestamps.
Here’s what the Post from the log looks like:
[httpd] 127.0.0.1 - - [29/Dec/2017:14:37:07 -0500] “POST /write?db=database&precision=ms&rp=RP_14+Day%28s%29 HTTP/1.1” 413 37 “-” “Java/1.8.0_51” a7f37b36-eccf-11e7-8092-000000000000 150
[httpd] 127.0.0.1 - - [29/Dec/2017:14:37:08 -0500] “POST /write?db=database&precision=ms&rp=RP_14+Day%28s%29 HTTP/1.1” 413 37 “-” “Java/1.8.0_51” a8402c7b-eccf-11e7-8093-000000000000 187
I do now see that the return code is a 413. What would cause that?
This is the Java stack exception, sterilized:
[CommonRMI][upgradeVer1ToVer2] SCHEMA MIGRATION: 'Error writing to server’
java.io.IOException: Error writing to server
at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:665)
at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:677)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1533)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at com.xxxxxxxx.xxxxxxxx.rmi.commons.CommonRMI.upgradeVer1ToVer2(CommonRMI.java:1104)
I found the following comment in the 1.3.0 release notes, after i noticed the 413 return code. Side note: It would be nice if an error message is also returned with this 413, like other messages when there are errors like timeout, etc.
I didn’t get any error message, just the connection closed on me.
max-body-size was added with a default of 25,000,000, but can be disabled by setting it to 0. Specifies the maximum size (in bytes) of a client request body. When a client sends data that exceeds the configured maximum size, a 413 Request Entity Too Large HTTP response is returned.
I changed the max-body-size to 0, and that got rid of my errors during my large data writes and schema migration.
Hope this helps someone else.