Think i have replied only to Martin.

This the code that causes the problems.

Regards,
Ionut

---------- Forwarded message ----------
From: Putinei .Ionut <putineiio...@gmail.com>
Date: Fri, Jul 5, 2013 at 10:06 AM
Subject: Re: [Tracker] Tracker closing the databse
To: Martyn Russell <mar...@lanedo.com>


The TrackerSparqlConnection is left open since is a class member and is
closed in destructor.
TrackerSparqlCursor is unrefed.

Here i am about to execute a banch of queries.....but i am not interested
in results....i am only interested if query has any results
bool TestClass::ExecuteBatchQuery(std::vector<std::string>
&queries,std::vector<bool>* queryResponseCount){
    TrackerSparqlConnection *trackerConnection = getTrackerConnection(); //
here we get the connection and we assign it to a class member...further
calls to this will return the class member
    if (trackerConnection == NULL) {
        return false;
    }
    for (int i=0;i<queries.size();++i){

        GError* error = NULL;
        TrackerSparqlCursor* cursor =
tracker_sparql_connection_query(trackerConnection, queries.at(i).c_str(),
NULL, &error);
        if (error) {
            queryResponseCount->push_back(false);
            g_error_free (error);
            continue;
        }

        if (cursor == NULL) {
            queryResponseCount->push_back(false);
            continue;
        } else {
            int cursorcount=0;
            while (tracker_sparql_cursor_next(cursor, NULL, &error)) {
                if (error)
                    break;
                cursorcount++;
                break;
            }

            if(cursorcount)
                queryResponseCount->push_back(true);
            else
                queryResponseCount->push_back(false);


        g_object_unref(cursor);
    }
    }
    return true;
}


On Thu, Jul 4, 2013 at 11:02 PM, Martyn Russell <mar...@lanedo.com> wrote:

> On 07/03/2013 02:43 PM, Putinei .Ionut wrote:
>
>> Hello,
>>
>
> Hello,
>
>  I run a  bunch for queries with tracker_sparql_connection_**query(sync
>> version).....with same TrackerSparqlConnection.
>>
>> After 40-50 queries my app hangs.
>>
>> I see in tracker log that about the same time tracker is closing the
>> sqlite database.
>>
>> Do you have any advice for this issue?Could the fact that tracker is
>> closing database i get the hang?
>>
>
> Are you able to share the code with us?
>
> I suspect you have references open to one or more TrackerSparqlCursor
> objects, though it's hard to tell without looking at the code.
>
>
>  Why is the reason to close the database.....since i have seen in code
>> that close is done in "tracker_db_interface_sqlite_**finalize" that is
>> seem like a destructor function GObject TrackerDBInterface.
>>
>
> Usually, if you unref and finish with the connection we clean up yes.
> If you're not expecting this it could be related. Again, sharing the code
> would go a long way to help us help you figure out what might be the
> problem.
>
> Thanks,
>
> --
> Regards,
> Martyn
>
> Founder and CEO of Lanedo GmbH.
>
_______________________________________________
tracker-list mailing list
tracker-list@gnome.org
https://mail.gnome.org/mailman/listinfo/tracker-list

Reply via email to