Pierre,

RDFLib/SPARQLWrapper is using an HTML form upload.

The scalable way is to POST with "Content-type: application/sparql-update" and the INSERT in the body, then it will stream - directly reading the update from the HTTP input stream with no HTML Form (Request.extractFormParameters) on the execution path.

Fro an HTML form, the entire requests ends up in memory - its the way that HTML forms have to handled to see all the name=value pairs in the form. Incidentally, the same is true in the client.

The default form size is already bumped up to 10M from the Jetty default of 200K.

If the server is running in verbose mode, the entire SPARQL update is read in for logging/debugging purposes.

The default jetty configuration is in code. For the form size, that is JettyFusekiWebapp.createWebApp which is 10M - we can make that default bigger but not 101M which is the request.

Otherwise, break the request into parts and send multiple requests.

    Andy

On 07/08/2019 08:49, Pierre Grenon wrote:
Thank you, Lorenz.

I did as you suggest and made the changes indicated.

Fuseki started and seems to have accepted the jetty config. But then when trying to send 
the update the same error occurs and the limit seems unmodified (I used    
<Arg>200000000</Arg>).

Caused by: java.lang.IllegalStateException: Form too large: 100948991 > 10000000
         at 
org.eclipse.jetty.server.Request.extractFormParameters(Request.java:545)
         at 
org.eclipse.jetty.server.Request.extractContentParameters(Request.java:475)
         at org.eclipse.jetty.server.Request.getParameters(Request.java:386)
         ... 50 more

Can it be that the config does not override some default set elsewhere in 
Fuseki?

I’ll try to figure if I’m not doing something else wrong…

Many thanks,
Pierre

For reference:
https://www.eclipse.org/jetty/documentation/current/configuring-form-size.html

Reply via email to