Hi,
> 1. Check that the client is properly reading the whole of the response 
> 9even if zero bytes) and is actually closing the connection, or 
> returning it to the connection pool. Check by running "netstat" to see 
> TCp connections ("-t" on *nix)

With netstat I saw several connections in TIME_WAIT state when running my test. 
I think it means that the tcp-connections have been properly closed.

I understand that unproperly terminated tcp-connections could lead to error 
case "Maximum lock count exceeded", but what could cause jena-fuseki 5.1.0 use 
much more memory than 3.14 did with exactly same program code and input in the 
client side and same data in the database ? 


I also collected the return values of queries and updates and noticed that, 
they should be fine as well:
i.e. the following code 

def run_update(query_formatted):
    sparql = init_rdf_triple_store_for('update')
    sparql.method = 'POST'
    sparql.setQuery(fix_eol_chars(query_formatted))
    ret = sparql.query()
    print("run_update, ret:", ret)
    sparql = None


def init_rdf_triple_store_for(what):
    curframe = inspect.currentframe()
    calframe = inspect.getouterframes(curframe, 2)
    try:
        endpoint = settings.JENADATABASE.format(JENA_SERVER_URL, what)
        sparql = SPARQLWrapper(endpoint)
        sparql.setHTTPAuth(BASIC)
        sparql.setCredentials(JENA_SERVER_USERNAME, JENA_SERVER_PASSWORD)
        return sparql
    except BaseException:
        return '' 

returned

run_update, ret: <SPARQLWrapper.Wrapper.QueryResult object at 
0x00007F15172B68B0>
{"requestedFormat" : 'xml',
"response (a file-like object, as return by the urllib2.urlopen library call)" 
: {
        "url" : "http://localhost:3030/ds/update";,
        "code" : "200",
        "headers" : Date: Tue, 29 Oct 2024 10:05:21 GMT
 Vary: Accept-Encoding
 Vary: Origin
 Set-Cookie: JSESSIONID=node01v3s1dzzrrzzu1g8mi8ek6acvj75760.node0; Path=/
 Expires: Thu, 01 Jan 1970 00:00:00 GMT
 Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Mon, 28-Oct-2024 
10:05:21 GMT; SameSite=lax
 Fuseki-Request-Id: 110110
 Content-Type: text/plain;charset=utf-8
 Content-Length: 17
 Connection: close
 }}

Of course I could run the whole test and check the return-code (and Connection 
close or not ) for each update, but I don't think it would help. (The above was 
produced by running just few lines of the huge excel-file).

Br, Jaana

> 28.10.2024 19.59 EET Andy Seaborne <a...@apache.org> kirjoitti:
> 
>  
> On 28/10/2024 10:42, jaa...@kolumbus.fi wrote:
> > Hello, thanks for your answer.
> > 
> >> I don't see why you said UI doesn't work.
> > It was a mistake, I'm sorry. It works, but currentky I have problems with 
> > version 5.1.0.
> > 
> > Let me explain:
> > I have been running image docker.io/stain/jena-fuseki:3.14.0 for years 
> > without problems, but after upgrade to 5.x I started to get problems.
> > 
> > I pulled  docker.io/stain/jena-fuseki:5.1.0 from docker hub, deployed into 
> > my test server and started to test. I tried to update my 
> > jena-fuseki-database running in podman container by reading an excel-file 
> > line by line in Python-code and running 6 sparql updates for each line. My 
> > excel-file has 21 412 lines.
> > 
> > With 3.14.0-version this update passed in 4 and half hours, but with 5.1.0 
> > it does not pass at all; either the execution stops for running out of 
> > memory or it stops for error message “Maximum lock count exceeded”.
> > 
> > In 5.1.0 the execution also slows down: In the beginning about 50 
> > rows/minute become handled but after 5 hours only 5 rows/minute become 
> > handled. I guess this is due to running short of memory.
> > 
> > I also guess that there are no memory leaks, but the carbage collection 
> > should be configured in different manner. We have just the following 
> > settings in our container run command:
> >                                        --memory 6g \
> >                                        --env="JVM_ARGS"="-Xms6144m 
> > -Xmx6144m" \
> > 
> > Maybe I should have something else, too. What ?
> 
> 1. Check that the client is properly reading the whole of the response 
> 9even if zero bytes) and is actually closing the connection, or 
> returning it to the connection pool. Check by running "netstat" to see 
> TCp connections ("-t" on *nix)
> 
> 2. On Windows - don't run client and server on the same machine; Windows 
> is slow to recycle TCP connections under load.
> 
> > 
> > Thanks so much if you could help !
> > Br, Jaana
> > 
> > 
> >> 28.10.2024 12.00 EET Lorenz Buehmann <buehm...@informatik.uni-leipzig.de> 
> >> kirjoitti:
> >>
> >>   
> >> The advice was to simply try out version 5.1.0 from the
> >> stain/jena-fuseki repo: https://hub.docker.com/r/stain/jena-fuseki/tags
> >>
> >> The image does nothing more than downloading Fuseki dist tarball,
> >> setting all things up and starting the server. I don't see why you said
> >> UI doesn't work.
> >>
> >>
> >> Lorenz
> >>
> >> On 28.10.24 06:09, jaa...@kolumbus.fi wrote:
> >>> Hello, you write below, that stain/* shouldn't be used as it is not part 
> >>> of Apache Jena project and that there's 5.1.0 in dockerhub. Yes, there 
> >>> are several 5.* images in dockerhub, but I don't know which ones of them 
> >>> are part of Apache Jena project. Can you help ?
> >>>
> >>> Jaana
> >>>
> >>>
> >>>> 17.10.2024 14.38 EEST Andy Seaborne <a...@apache.org> kirjoitti:
> >>>>
> >>>>    
> >>>> On 17/10/2024 10:31, jaa...@kolumbus.fi wrote:
> >>>>>> You should upgrade to Jena 5.x to get security updates.
> >>>>> The problem is that UI does not work in stain/jena-fuseki-version 
> >>>>> higher than 4.0.0.
> >>>> 1. stain/* is not a product of the Apache Jena project.
> >>>>
> >>>> 2. Are you sure? There is a 5.1.0 on dockerhub.
> >>>>
> >>>>       Andy
> >>>>
> >>>>> Jaana
> >>>>>
> >>>>>> 17.10.2024 11.45 EEST Andy Seaborne <a...@apache.org> kirjoitti:
> >>>>>>
> >>>>>>     
> >>>>>> On 17/10/2024 03:37, jaa...@kolumbus.fi wrote:
> >>>>>>>      
> >>>>>>> I'm running docker.io/stain/jena-fuseki:3.14.0 in podman container on 
> >>>>>>> linux redHat host. I a very heavy load it can happen that 
> >>>>>>> /var/log/messages-file receives huge amount of INFO-level messages 
> >>>>>>> from jena-fuseki. How can I change the log level of my container to 
> >>>>>>> get rid of these messages ?
> >>>>>>>      
> >>>>>>> This is similar with 
> >>>>>>> https://stackoverflow.com/questions/71615972/change-jena-fuseki-logging-level
> >>>>>>>  
> >>>>>>> https://stackoverflow.com/questions/71615972/change-jena-fuseki-logging-level
> >>>>>>>  , but the problem now is that I cannot find the file 
> >>>>>>> log4j2.properties from inside the container.
> >>>>>>>      
> >>>>>>> Br, Jaana
> >>>>>> 3.14.0 used log4j1  The file will be called log4j.properties.
> >>>>>>
> >>>>>> If it does not exist, then the server uses a built in default. You can
> >>>>>> place a logging setup in the container at the expected pl;ace and it
> >>>>>> should use on start-up.
> >>>>>>
> >>>>>> You should upgrade to Jena 5.x to get security updates.
> >>>>>>
> >>>>>>         Andy
> >>
> >> -- 
> >> Lorenz Bühmann
> >> Research Associate/Scientific Developer
> >>
> >> Email buehm...@infai.org
> >>
> >> Institute for Applied Informatics e.V. (InfAI) | Goerdelerring 9 | 04109 
> >> Leipzig | Germany

Reply via email to