Bug 255531 - Akonadi server cannot be started on KMail startup after I switched to akonadi 1.4.1
Summary: Akonadi server cannot be started on KMail startup after I switched to akonadi...
Status: RESOLVED UPSTREAM
Alias: None
Product: Akonadi
Classification: Frameworks and Libraries
Component: server (show other bugs)
Version: 1.4.0
Platform: PiSi Linux Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-28 19:51 UTC by Gökçen Eraslan
Modified: 2010-11-11 23:41 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gökçen Eraslan 2010-10-28 19:51:39 UTC
Version:           1.4.0 (using KDE 4.5.2) 
OS:                Linux

I cannot start akonadi (and kmail) after I switch from 1.4.0 to 1.4.1. In 1.4.0, I could use kmail but in akonadi 1.4.1 kmail refuses to start since akonadisever cannot be started. 

When I try to start akonadiserver in System Settings, it says "Akonadi Personal Information management service is not operational." and here is the log I got when I click details and "Copy report to clipboard":

Akonadi Server Self-Test Report
===============================

Test 1:  SUCCESS
--------

Database driver found.
Details: The QtSQL driver 'QMYSQL' is required by your current Akonadi server configuration and was found on your system.

File content of '/home/gokcen/.config/akonadi/akonadiserverrc':
[QMYSQL]
Name=akonadi
Host=
Options="UNIX_SOCKET=/home/gokcen/.local/share/akonadi/db_misc/mysql.socket"
ServerPath=/usr/sbin/mysqld
StartServer=true

[Debug]
Tracer=null


Test 2:  SUCCESS
--------

Akonadi is not running as root
Details: Akonadi is not running as a root/administrator user, which is the recommended setup for a secure system.

Test 3:  SUCCESS
--------

MySQL server found.
Details: You have currently configured Akonadi to use the MySQL server '/usr/sbin/mysqld'.
Make sure you have the MySQL server installed, set the correct path and ensure you have the necessary read and execution rights on the server executable. The server executable is typically called 'mysqld'; its location varies depending on the distribution.

Test 4:  SUCCESS
--------

MySQL server is executable.
Details: MySQL server found: 101028 20:46:40 [Warning] '--default-character-set' is deprecated and will be removed in a future release. Please use '--character-set-server' instead.
101028 20:46:40 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
/usr/sbin/mysqld  Ver 5.1.51 for pc-linux-gnu on i686 (Pardus Linux)


Test 5:  ERROR
--------

MySQL server log contains errors.
Details: The MySQL server error log file &apos;<a href='/home/gokcen/.local/share/akonadi/db_data/mysql.err'>/home/gokcen/.local/share/akonadi/db_data/mysql.err</a>&apos; contains errors.

File content of '/home/gokcen/.local/share/akonadi/db_data/mysql.err':
101028 20:44:48  InnoDB: Started; log sequence number 0 430083318
101028 20:44:48 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.1.51'  socket: '/home/gokcen/.local/share/akonadi/db_misc/mysql.socket'  port: 0  Pardus Linux
101028 20:44:48 - mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.

key_buffer_size=8384512
read_buffer_size=131072
max_used_connections=2
max_threads=256
threads_connected=2
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 566891 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

thd: 0x980e668
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0xaf56436c thread_stack 0x30000
/usr/sbin/mysqld(my_print_stacktrace+0x2a) [0x84abc3a]
/usr/sbin/mysqld(handle_segfault+0x4fc) [0x81dbeec]
[0xffffe400]
/usr/sbin/mysqld(check_access(THD*, unsigned long, char const*, unsigned long*, bool, bool, bool)+0xa5) [0x81e6c75]
/usr/sbin/mysqld(check_table_access(THD*, unsigned long, TABLE_LIST*, unsigned int, bool)+0x295) [0x81e77a5]
/usr/sbin/mysqld(mysql_execute_command(THD*)+0x39fb) [0x81eeb0b]
/usr/sbin/mysqld(mysql_parse(THD*, char*, unsigned int, char const**)+0x30a) [0x81f490a]
/usr/sbin/mysqld(dispatch_command(enum_server_command, THD*, char*, unsigned int)+0x610) [0x81f4f20]
/usr/sbin/mysqld(do_command(THD*)+0x102) [0x81f62b2]
/usr/sbin/mysqld(handle_one_connection+0x281) [0x81e5261]
/lib/libpthread.so.0(+0x5e81) [0xb788de81]
/lib/libc.so.6(clone+0x5e) [0xb746aaee]
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort...
thd->query at 0x9818060 = CHECK TABLE `collectionattributetable`  FOR UPGRADE
thd->thread_id=2
thd->killed=NOT_KILLED
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.


Test 6:  SUCCESS
--------

MySQL server default configuration found.
Details: The default configuration for the MySQL server was found and is readable at <a href='/etc/akonadi/mysql-global.conf'>/etc/akonadi/mysql-global.conf</a>.

File content of '/etc/akonadi/mysql-global.conf':
#
# Global Akonadi MySQL server settings,
# These settings can be adjusted using $HOME/.config/akonadi/mysql-local.conf
#
# Based on advice by Kris Köhntopp <kris@mysql.com>
#
[mysqld]
skip_grant_tables
skip_networking

# strict query parsing/interpretation
# TODO: make Akonadi work with those settings enabled
#sql_mode=strict_trans_tables,strict_all_tables,strict_error_for_division_by_zero,no_auto_create_user,no_auto_value_on_zero,no_engine_substitution,no_zero_date,no_zero_in_date,only_full_group_by,pipes_as_concat
#sql_mode=strict_trans_tables

# use InnoDB for transactions and better crash recovery
default_storage_engine=innodb
# case-insensitive table names, avoids trouble on windows
lower_case_table_names=1
character_set_server=utf8
collation_server=utf8_general_ci
table_cache=200
thread_cache_size=3
#log_bin=mysql-bin
#expire_logs_days=3
#sync_bin_log=0
# error log file name, relative to datadir
log_error=mysql.err
log_warnings=2
# log all queries, useful for debugging but generates an enormous amount of data
#log=mysql.full
# log queries slower than n seconds, log file name relative to datadir (for debugging only)
#log_slow_queries=mysql.slow
#long_query_time=1
# log queries not using indices, debug only, disable for production use
#log_queries_not_using_indexes=1
# maximum blob size
max_allowed_packet=32M
max_connections=256
# makes sense when having the same query multiple times
# makes no sense with prepared statements and/or transactions
query_cache_type=0
query_cache_size=0

innodb_file_per_table=1
innodb_log_buffer_size=1M
innodb_additional_mem_pool_size=1M
# messure database size and adjust
# SELECT sum(data_length) as bla, sum(index_length) as blub FROM information_schema.tables WHERE table_schema not in ("mysql", "information_schema");
innodb_buffer_pool_size=80M
# size of average write burst, keep Innob_log_waits small, keep Innodb_buffer_pool_wait_free small (see show global status like "inno%", show global variables)
innodb_log_file_size=8M
innodb_flush_log_at_trx_commit=2

# Do not drop the connection to the DB after 8 hours of inactivity
wait_timeout=1296000

[client]
default-character-set=utf8


Test 7:  SKIP
--------

MySQL server custom configuration not available.
Details: The custom configuration for the MySQL server was not found but is optional.

Test 8:  SUCCESS
--------

MySQL server configuration is usable.
Details: The MySQL server configuration was found at <a href='/home/gokcen/.local/share/akonadi/mysql.conf'>/home/gokcen/.local/share/akonadi/mysql.conf</a> and is readable.

File content of '/home/gokcen/.local/share/akonadi/mysql.conf':
#
# Global Akonadi MySQL server settings,
# These settings can be adjusted using $HOME/.config/akonadi/mysql-local.conf
#
# Based on advice by Kris Köhntopp <kris@mysql.com>
#
[mysqld]
skip_grant_tables
skip_networking

# strict query parsing/interpretation
# TODO: make Akonadi work with those settings enabled
#sql_mode=strict_trans_tables,strict_all_tables,strict_error_for_division_by_zero,no_auto_create_user,no_auto_value_on_zero,no_engine_substitution,no_zero_date,no_zero_in_date,only_full_group_by,pipes_as_concat
#sql_mode=strict_trans_tables

# use InnoDB for transactions and better crash recovery
default_storage_engine=innodb
# case-insensitive table names, avoids trouble on windows
lower_case_table_names=1
character_set_server=utf8
collation_server=utf8_general_ci
table_cache=200
thread_cache_size=3
#log_bin=mysql-bin
#expire_logs_days=3
#sync_bin_log=0
# error log file name, relative to datadir
log_error=mysql.err
log_warnings=2
# log all queries, useful for debugging but generates an enormous amount of data
#log=mysql.full
# log queries slower than n seconds, log file name relative to datadir (for debugging only)
#log_slow_queries=mysql.slow
#long_query_time=1
# log queries not using indices, debug only, disable for production use
#log_queries_not_using_indexes=1
# maximum blob size
max_allowed_packet=32M
max_connections=256
# makes sense when having the same query multiple times
# makes no sense with prepared statements and/or transactions
query_cache_type=0
query_cache_size=0

innodb_file_per_table=1
innodb_log_buffer_size=1M
innodb_additional_mem_pool_size=1M
# messure database size and adjust
# SELECT sum(data_length) as bla, sum(index_length) as blub FROM information_schema.tables WHERE table_schema not in ("mysql", "information_schema");
innodb_buffer_pool_size=80M
# size of average write burst, keep Innob_log_waits small, keep Innodb_buffer_pool_wait_free small (see show global status like "inno%", show global variables)
innodb_log_file_size=8M
innodb_flush_log_at_trx_commit=2

# Do not drop the connection to the DB after 8 hours of inactivity
wait_timeout=1296000

[client]
default-character-set=utf8


Test 9:  SUCCESS
--------

akonadictl found and usable
Details: The program '/usr/bin/akonadictl' to control the Akonadi server was found and could be executed successfully.
Result:
Akonadi 1.4.1


Test 10:  ERROR
--------

Akonadi control process not registered at D-Bus.
Details: The Akonadi control process is not registered at D-Bus which typically means it was not started or encountered a fatal error during startup.

Test 11:  ERROR
--------

Akonadi server process not registered at D-Bus.
Details: The Akonadi server process is not registered at D-Bus which typically means it was not started or encountered a fatal error during startup.

Test 12:  SUCCESS
--------

Nepomuk search service registered at D-Bus.
Details: The Nepomuk search service is registered at D-Bus which typically indicates it is operational.

Test 13:  SUCCESS
--------

Nepomuk search service uses an appropriate backend. 
Details: The Nepomuk search service uses one of the recommended backends.

Test 14:  SKIP
--------

Protocol version check not possible.
Details: Without a connection to the server it is not possible to check if the protocol version meets the requirements.

Test 15:  ERROR
--------

No resource agents found.
Details: No resource agents have been found, Akonadi is not usable without at least one. This usually means that no resource agents are installed or that there is a setup problem. The following paths have been searched: '/usr/share/akonadi/agents'. The XDG_DATA_DIRS environment variable is set to '/usr/share/kde4:/usr/share:/usr/local/share'; make sure this includes all paths where Akonadi agents are installed.

Directory listing of '/usr/share/akonadi/agents':
akonotesresource.desktop
birthdaysresource.desktop
calendarsearchagent.desktop
contactsresource.desktop
davgroupwareresource.desktop
icalresource.desktop
imapresource.desktop
invitationsagent.desktop
kabcresource.desktop
kcalresource.desktop
kdeaccountsresource.desktop
knutresource.desktop
kolabproxyresource.desktop
localbookmarksresource.desktop
maildirresource.desktop
maildispatcheragent.desktop
mboxresource.desktop
microblog.desktop
mixedmaildirresource.desktop
mtdummyresource.desktop
nepomukcalendarfeeder.desktop
nepomukcontactfeeder.desktop
nepomukemailfeeder.desktop
nepomuktagresource.desktop
nntpresource.desktop
notesresource.desktop
openxchangeresource.desktop
pop3resource.desktop
vcarddirresource.desktop
vcardresource.desktop

Environment variable XDG_DATA_DIRS is set to '/usr/share/kde4:/usr/share:/usr/local/share'

Test 16:  ERROR
--------

Current Akonadi server error log found.
Details: The Akonadi server reported errors during its current startup. The log can be found in <a href='/home/gokcen/.local/share/akonadi/akonadiserver.error'>/home/gokcen/.local/share/akonadi/akonadiserver.error</a>.

File content of '/home/gokcen/.local/share/akonadi/akonadiserver.error':
Failed to create database 
Query error: "MySQL server has gone away QMYSQL: Unable to execute query" 
Database error: "Can't connect to local MySQL server through socket '/home/gokcen/.local/share/akonadi/db_misc/mysql.socket' (111) QMYSQL: Unable to connect" 
"[
0: akonadiserver(_Z11akBacktracev+0x36) [0x8051e56]
1: akonadiserver() [0x80523f4]
2: [0xffffe400]
3: [0xffffe424]
4: /lib/libc.so.6(gsignal+0x52) [0xb7083622]
5: /lib/libc.so.6(abort+0x17e) [0xb708517e]
6: /usr/lib/libQtCore.so.4(_Z17qt_message_output9QtMsgTypePKc+0x92) [0xb7447962]
7: [0x9b3b0f0]
]
" 


Test 17:  ERROR
--------

Previous Akonadi server error log found.
Details: The Akonadi server reported errors during its previous startup. The log can be found in <a href='/home/gokcen/.local/share/akonadi/akonadiserver.error.old'>/home/gokcen/.local/share/akonadi/akonadiserver.error.old</a>.

File content of '/home/gokcen/.local/share/akonadi/akonadiserver.error.old':
Failed to create database 
Query error: "MySQL server has gone away QMYSQL: Unable to execute query" 
Database error: "Can't connect to local MySQL server through socket '/home/gokcen/.local/share/akonadi/db_misc/mysql.socket' (111) QMYSQL: Unable to connect" 
"[
0: akonadiserver(_Z11akBacktracev+0x36) [0x8051e56]
1: akonadiserver() [0x80523f4]
2: [0xffffe400]
3: [0xffffe424]
4: /lib/libc.so.6(gsignal+0x52) [0xb70cc622]
5: /lib/libc.so.6(abort+0x17e) [0xb70ce17e]
6: /usr/lib/libQtCore.so.4(_Z17qt_message_output9QtMsgTypePKc+0x92) [0xb7490962]
7: [0x95730f0]
]
" 


Test 18:  SUCCESS
--------

No current Akonadi control error log found.
Details: The Akonadi control process did not report any errors during its current startup.

Test 19:  SUCCESS
--------

No previous Akonadi control error log found.
Details: The Akonadi control process did not report any errors during its previous startup.




Reproducible: Always

Steps to Reproduce:
1. Upgrade to akonadi 1.4.1
2. Open kmail.

Actual Results:  
KMail does not start since akonadiserver cannot be started.


I use KDE 4.5.2, akonadi 1.4.1, kdepim 4.4.93, kdepim-runtime 4.4.93, mysql 5.1.51.
Comment 1 Tobias Koenig 2010-11-09 23:59:57 UTC
Hej Gökcen,

> Test 5:  ERROR
> --------
<snip>
> File content of '/home/gokcen/.local/share/akonadi/db_data/mysql.err':
> 101028 20:44:48  InnoDB: Started; log sequence number 0 430083318
> 101028 20:44:48 [Note] /usr/sbin/mysqld: ready for connections.
> Version: '5.1.51'  socket:
> '/home/gokcen/.local/share/akonadi/db_misc/mysql.socket'  port: 0  Pardus Linux
> 101028 20:44:48 - mysqld got signal 11 ;
> This could be because you hit a bug. It is also possible that this binary
> or one of the libraries it was linked against is corrupt, improperly built,
> or misconfigured. This error can also be caused by malfunctioning hardware.
> We will try our best to scrape up some info that will hopefully help diagnose
> the problem, but since we have already crashed, something is definitely wrong
> and this may fail.

Looks like your mysql daemon has some issues...
Does starting mysqld manually work?

Try to remove /home/gokcen/.local/share/akonadi/db_data/mysql.err and restart akonadi.

Ciao,
Tobias
Comment 2 Gökçen Eraslan 2010-11-11 23:41:48 UTC
I've filed a bug[1] to mysql and understood that is a problem with GCC. When I use -fPIC as a CXXFLAG in i686 architecture, mysqld segfaults in mysqlcheck command. Removed the flag now, and it's OK now.

Closing as UPSTREAM since this is a gcc or glibc bug. Sorry for the noise.

[1] http://bugs.mysql.com/bug.php?id=57822