Hello community,
here is the log from the commit of package akonadi-runtime for openSUSE:Factory
checked in at Tue Feb 9 23:04:59 CET 2010.
--------
--- KDE/akonadi-runtime/akonadi-runtime.changes 2010-01-20 21:42:15.000000000 +0100
+++ /mounts/work_src_done/STABLE/akonadi-runtime/akonadi-runtime.changes 2010-02-09 13:39:08.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Feb 9 12:38:28 UTC 2010 - llunak@novell.com
+
+- update to 1.3.1:
+ - fix D-Bus connection leak problem
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
akonadi-1.3.0.tar.bz2
New:
----
akonadi-1.3.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ akonadi-runtime.spec ++++++
--- /var/tmp/diff_new_pack.2ZrpUQ/_old 2010-02-09 23:04:36.000000000 +0100
+++ /var/tmp/diff_new_pack.2ZrpUQ/_new 2010-02-09 23:04:36.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package akonadi-runtime (Version 1.3.0)
+# spec file for package akonadi-runtime (Version 1.3.1)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -23,7 +23,7 @@
%if %suse_version > 1020
BuildRequires: fdupes
%endif
-Version: 1.3.0
+Version: 1.3.1
Release: 1
%define rversion %version
License: LGPLv2.1+
++++++ akonadi-1.3.0.tar.bz2 -> akonadi-1.3.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-1.3.0/CMakeLists.txt new/akonadi-1.3.1/CMakeLists.txt
--- old/akonadi-1.3.0/CMakeLists.txt 2010-01-20 10:13:55.000000000 +0100
+++ new/akonadi-1.3.1/CMakeLists.txt 2010-02-09 12:32:45.000000000 +0100
@@ -32,7 +32,7 @@
set(AKONADI_VERSION_MAJOR "1")
set(AKONADI_VERSION_MINOR "3")
-set(AKONADI_VERSION_PATCH "0")
+set(AKONADI_VERSION_PATCH "1")
set(AKONADI_VERSION "${AKONADI_VERSION_MAJOR}.${AKONADI_VERSION_MINOR}.${AKONADI_VERSION_PATCH}")
# If Subversion is installed, and a '.svn' directory is found,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-1.3.0/ChangeLog new/akonadi-1.3.1/ChangeLog
--- old/akonadi-1.3.0/ChangeLog 2010-01-20 10:13:54.000000000 +0100
+++ new/akonadi-1.3.1/ChangeLog 2010-02-09 12:32:45.000000000 +0100
@@ -1,3 +1,43 @@
+2010-02-09 11:22 +0000 [r1087567-1087574] Volker Krause vkrause@kde.org
+
+ * branches/akonadi/1.3/server/src/search/queryserviceclient.cpp:
+ Backport SVN commit 1087546 by dfaure from trunk: And now the
+ real fix for the dbus connection leak problem :/ Next step: doing
+ the same (but not the same) in kdelibs/nepomuk. But at least the
+ akonadiserver leak (triggered by kmail) is fixed by this.
+
+ * branches/akonadi/1.3/server/src/search/queryserviceclient.cpp:
+ Backport SVN commit 1087524 by dfaure from trunk: Fix the dbus
+ connection leak (every time I switched mails in kmail, a new dbus
+ connection would be made and would stay). Sorry for suspecting
+ r1084698, it was not guilty. The bug -was- related to nepomuk,
+ but wasn't -in- nepomuk :-)
+
+ * branches/akonadi/1.3/server/shared/akdebug.h,
+ branches/akonadi/1.3/server/control/main.cpp,
+ branches/akonadi/1.3/server/shared/akdebug.cpp: Backport SVN
+ commit 1087237 by dfaure from trunk: Fix confusing error message:
+ unable to register service %s "" due to trying to write into a
+ file that ended with akonadi_control's full path. Reviewed by
+ Volker once I managed to drag him away from Jesper :-)
+
+2010-02-09 11:12 +0000 [r1087553-1087555] Volker Krause vkrause@kde.org
+
+ * branches/akonadi/1.3/server/src/storage/mysql-global.conf:
+ Backport SVN commit 1074641 by vkrause from trunk: Disable
+ logging of slow queries by default, it's only needed for
+ debugging and apparently not supported by all MySQL versions.
+
+ * branches/akonadi/1.3/server/src/search/queryserviceclient.cpp:
+ Backport SVN commit 1076866 by tmcguire from trunk: Better debug
+ output
+
+2010-01-20 08:55 +0000 [r1077444] Volker Krause vkrause@kde.org
+
+ * branches/akonadi/1.3/makechangelog,
+ branches/akonadi/1.3/ChangeLog, branches/akonadi/1.3/NEWS,
+ branches/akonadi/1.3/CMakeLists.txt: prepare the 1.3.0 release
+
2010-01-20 08:23 +0000 [r1077436] Volker Krause vkrause@kde.org
* branches/akonadi/1.3/server/src/nepomuksearch.cpp: Backport from
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-1.3.0/NEWS new/akonadi-1.3.1/NEWS
--- old/akonadi-1.3.0/NEWS 2010-01-20 10:13:55.000000000 +0100
+++ new/akonadi-1.3.1/NEWS 2010-02-09 12:32:45.000000000 +0100
@@ -1,3 +1,8 @@
+1.3.1 09-February-2010
+---------------------------------------------
+- Fix D-Bus connection leak in Nepomuk search backend.
+- Disable slow query logging by default for internal MySQL.
+
1.3.0 20-January-2010
---------------------------------------------
- Work around D-Bus bug that could cause SEARCH to hang.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-1.3.0/server/control/main.cpp new/akonadi-1.3.1/server/control/main.cpp
--- old/akonadi-1.3.0/server/control/main.cpp 2010-01-20 10:13:51.000000000 +0100
+++ new/akonadi-1.3.1/server/control/main.cpp 2010-02-09 12:32:36.000000000 +0100
@@ -52,8 +52,14 @@
app.setDescription( "Akonadi Control Process\nDo not run this manually, use 'akonadictl' instead to start/stop Akonadi." );
app.parseCommandLine();
- if ( !QDBusConnection::sessionBus().registerService( AKONADI_DBUS_CONTROL_SERVICE ) )
- akFatal() << "Unable to register service: " << QDBusConnection::sessionBus().lastError().message();
+ if ( !QDBusConnection::sessionBus().registerService( AKONADI_DBUS_CONTROL_SERVICE ) ) {
+ // We couldn't register. Most likely, it's already running.
+ const QString lastError = QDBusConnection::sessionBus().lastError().message();
+ if (lastError.isEmpty())
+ akFatal() << "Unable to register service as" << AKONADI_DBUS_CONTROL_SERVICE << "Maybe it's already running?";
+ else
+ akFatal() << "Unable to register service as" << AKONADI_DBUS_CONTROL_SERVICE << "Error was:" << lastError;
+ }
new ControlManager;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-1.3.0/server/shared/akdebug.cpp new/akonadi-1.3.1/server/shared/akdebug.cpp
--- old/akonadi-1.3.0/server/shared/akdebug.cpp 2010-01-20 10:13:51.000000000 +0100
+++ new/akonadi-1.3.1/server/shared/akdebug.cpp 2010-02-09 12:32:37.000000000 +0100
@@ -105,9 +105,10 @@
return QDebug( fileStream );
}
- void setName( const QString &baseName )
+ void setName( const QString &appName )
{
- name = baseName;
+ // Keep only the executable name, e.g. akonadi_control
+ name = appName.mid( appName.lastIndexOf( QLatin1Char('/') ) + 1 );
fileStream->setFileName( errorLogFileName() );
}
@@ -133,10 +134,10 @@
return sInstance()->stream( QtDebugMsg );
}
-void akInit( const QString &baseName )
+void akInit( const QString &appName )
{
AkonadiCrash::init();
- sInstance()->setName( baseName );
+ sInstance()->setName( appName );
QFileInfo infoOld( sInstance()->errorLogFileName() + QString::fromLatin1(".old") );
if ( infoOld.exists() ) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-1.3.0/server/shared/akdebug.h new/akonadi-1.3.1/server/shared/akdebug.h
--- old/akonadi-1.3.0/server/shared/akdebug.h 2010-01-20 10:13:51.000000000 +0100
+++ new/akonadi-1.3.1/server/shared/akdebug.h 2010-02-09 12:32:37.000000000 +0100
@@ -39,9 +39,9 @@
QDebug akDebug();
/**
- * Rotate error logs.
+ * Init and rotate error logs.
*/
-void akInit( const QString &baseName );
+void akInit( const QString &appName );
/**
* Returns the contents of @p name environment variable if it is defined,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-1.3.0/server/src/search/queryserviceclient.cpp new/akonadi-1.3.1/server/src/search/queryserviceclient.cpp
--- old/akonadi-1.3.0/server/src/search/queryserviceclient.cpp 2010-01-20 10:13:53.000000000 +0100
+++ new/akonadi-1.3.1/server/src/search/queryserviceclient.cpp 2010-02-09 12:32:40.000000000 +0100
@@ -40,21 +40,34 @@
{
public:
QDBusConnectionPerThreadHelper()
- : m_counter( 0 ) {
+ : m_connection( QDBusConnection::connectToBus(
+ QDBusConnection::SessionBus,
+ QString::fromLatin1("NepomukQueryServiceConnection%1").arg(newNumber()) ) )
+ {
}
-
- QDBusConnection newConnection() {
- QMutexLocker lock( &m_mutex );
- return QDBusConnection::connectToBus( QDBusConnection::SessionBus,
- QString::fromLatin1("NepomukQueryServiceConnection%1").arg(++m_counter) );
+ ~QDBusConnectionPerThreadHelper() {
+ QDBusConnection::disconnectFromBus( m_connection.name() );
}
+ static QDBusConnection threadConnection();
+
private:
- int m_counter;
- QMutex m_mutex;
+ int newNumber() {
+ return m_counter.fetchAndAddAcquire(1);
+ }
+ QAtomicInt m_counter;
+ QDBusConnection m_connection;
};
- Q_GLOBAL_STATIC(QDBusConnectionPerThreadHelper, s_globalDBusConnectionPerThreadHelper)
+ QThreadStorage