Announcement

Collapse
No announcement yet.

Akonadi server fails to start on amd64 and home in AFS

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Akonadi server fails to start on amd64 and home in AFS

    Hi,

    Akonadi server fails to start on Kubuntu 12.04 amd64 when I try to start KMail and home is in AFS. First I thougt that the folders ~/.config/akonadi and ~/.local/share/akonadi might need to be outside of AFS so I moved them to the local hard drive and added symbolic links, but the problem is still the same. When looking at the akonadi-selftest-report log the problem seem to start at "Test 10" which says "Akonadi control process not registered at D-Bus.". I would appreciate any hints on how to dig further into the problem to try to solve it, e.g. how do I try to run some of the steps manually with more verbose logging of what goes wrong?

    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 '/afs/mydomain/myuser/.config/akonadi/akonadiserverrc':
    [%General]
    Driver=QMYSQL

    [QMYSQL]
    Name=akonadi
    Host=
    Options="UNIX_SOCKET=/afs/mydomain/myuser/.local/share/akonadi/socket-ledig/mysql.socket"
    ServerPath=/usr/sbin/mysqld-akonadi
    StartServer=true


    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-akonadi'.
    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: /usr/sbin/mysqld Ver 5.5.32-0ubuntu0.12.04.1 for debian-linux-gnu on x86_64 ((Ubuntu))


    Test 5: SUCCESS
    --------

    No current MySQL error log found.
    Details: The MySQL server did not report any errors during this startup. The log can be found in '/afs/mydomain/myuser/.local/share/akonadi/db_data/mysql.err'.

    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]

    # strict query parsing/interpretation
    # TODO: make Akonadi work with those settings enabled
    # sql_mode=strict_trans_tables,strict_all_tables,str ict_error_for_division_by_zero,no_auto_create_user ,no_auto_value_on_zero,no_engine_substitution,no_z ero_date,no_zero_in_date,only_full_group_by,pipes_ as_concat
    # sql_mode=strict_trans_tables

    # DEBUGGING:
    # 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
    #
    # mesure database size and adjust innodb_buffer_pool_size
    # SELECT sum(data_length) as bla, sum(index_length) as blub FROM information_schema.tables WHERE table_schema not in ("mysql", "information_schema");

    # NOTES:
    # Keep Innob_log_waits and keep Innodb_buffer_pool_wait_free small (see show global status like "inno%", show global variables)

    #expire_logs_days=3

    #sync_bin_log=0

    # Use UTF-8 encoding for tables
    character_set_server=utf8
    collation_server=utf8_general_ci

    # use InnoDB for transactions and better crash recovery
    default_storage_engine=innodb

    # memory pool InnoDB uses to store data dictionary information and other internal data structures (default:1M)
    innodb_additional_mem_pool_size=1M

    # memory buffer InnoDB uses to cache data and indexes of its tables (default:128M)
    # Larger values means less I/O
    innodb_buffer_pool_size=80M

    # Create a .ibd file for each table (default:0)
    innodb_file_per_table=1

    # Write out the log buffer to the log file at each commit (default:1)
    innodb_flush_log_at_trx_commit=2

    # Buffer size used to write to the log files on disk (default:1M for builtin, 8M for plugin)
    # larger values means less I/O
    innodb_log_buffer_size=1M

    # Size of each log file in a log group (default:5M) larger means less I/O but more time for recovery.
    innodb_log_file_size=64M

    # # error log file name, relative to datadir (default:hostname.err)
    log_error=mysql.err

    # print warnings and connection errors (default:1)
    log_warnings=2

    # Convert table named to lowercase
    lower_case_table_names=1

    # Maximum size of one packet or any generated/intermediate string. (default:1M)
    max_allowed_packet=32M

    # Maximum simultaneous connections allowed (default:100)
    max_connections=256

    # The two options below make no sense with prepared statements and/or transactions
    # (make sense when having the same query multiple times)

    # Memory allocated for caching query results (default:0 (disabled))
    query_cache_size=0

    # Do not cache results (default:1)
    query_cache_type=0

    # Do not use the privileges mechanisms
    skip_grant_tables

    # Do not listen for TCP/IP connections at all
    skip_networking

    # The number of open tables for all threads. (default:64)
    table_cache=200

    # How many threads the server should cache for reuse (default:0)
    thread_cache_size=3

    # wait 365d before dropping the DB connection (default:8h)
    wait_timeout=31536000

    [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='/afs/mydomain/myuser/.local/share/akonadi/mysql.conf'>/afs/mydomain/myuser/.local/share/akonadi/mysql.conf</a> and is readable.

    File content of '/afs/mydomain/myuser/.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]

    # strict query parsing/interpretation
    # TODO: make Akonadi work with those settings enabled
    # sql_mode=strict_trans_tables,strict_all_tables,str ict_error_for_division_by_zero,no_auto_create_user ,no_auto_value_on_zero,no_engine_substitution,no_z ero_date,no_zero_in_date,only_full_group_by,pipes_ as_concat
    # sql_mode=strict_trans_tables

    # DEBUGGING:
    # 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
    #
    # mesure database size and adjust innodb_buffer_pool_size
    # SELECT sum(data_length) as bla, sum(index_length) as blub FROM information_schema.tables WHERE table_schema not in ("mysql", "information_schema");

    # NOTES:
    # Keep Innob_log_waits and keep Innodb_buffer_pool_wait_free small (see show global status like "inno%", show global variables)

    #expire_logs_days=3

    #sync_bin_log=0

    # Use UTF-8 encoding for tables
    character_set_server=utf8
    collation_server=utf8_general_ci

    # use InnoDB for transactions and better crash recovery
    default_storage_engine=innodb

    # memory pool InnoDB uses to store data dictionary information and other internal data structures (default:1M)
    innodb_additional_mem_pool_size=1M

    # memory buffer InnoDB uses to cache data and indexes of its tables (default:128M)
    # Larger values means less I/O
    innodb_buffer_pool_size=80M

    # Create a .ibd file for each table (default:0)
    innodb_file_per_table=1

    # Write out the log buffer to the log file at each commit (default:1)
    innodb_flush_log_at_trx_commit=2

    # Buffer size used to write to the log files on disk (default:1M for builtin, 8M for plugin)
    # larger values means less I/O
    innodb_log_buffer_size=1M

    # Size of each log file in a log group (default:5M) larger means less I/O but more time for recovery.
    innodb_log_file_size=64M

    # # error log file name, relative to datadir (default:hostname.err)
    log_error=mysql.err

    # print warnings and connection errors (default:1)
    log_warnings=2

    # Convert table named to lowercase
    lower_case_table_names=1

    # Maximum size of one packet or any generated/intermediate string. (default:1M)
    max_allowed_packet=32M

    # Maximum simultaneous connections allowed (default:100)
    max_connections=256

    # The two options below make no sense with prepared statements and/or transactions
    # (make sense when having the same query multiple times)

    # Memory allocated for caching query results (default:0 (disabled))
    query_cache_size=0

    # Do not cache results (default:1)
    query_cache_type=0

    # Do not use the privileges mechanisms
    skip_grant_tables

    # Do not listen for TCP/IP connections at all
    skip_networking

    # The number of open tables for all threads. (default:64)
    table_cache=200

    # How many threads the server should cache for reuse (default:0)
    thread_cache_size=3

    # wait 365d before dropping the DB connection (default:8h)
    wait_timeout=31536000

    [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.7.2


    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/default:/usr/local/share/:/usr/share/'; make sure this includes all paths where Akonadi agents are installed.

    Directory listing of '/usr/share/akonadi/agents':
    akonadinepomukfeederagent.desktop
    akonotesresource.desktop
    birthdaysresource.desktop
    calendarsearchagent.desktop
    contactsresource.desktop
    davgroupwareresource.desktop
    icalresource.desktop
    imapresource.desktop
    invitationsagent.desktop
    kabcresource.desktop
    kalarmdirresource.desktop
    kalarmresource.desktop
    kcalresource.desktop
    kdeaccountsresource.desktop
    knutresource.desktop
    kolabproxyresource.desktop
    localbookmarksresource.desktop
    maildirresource.desktop
    maildispatcheragent.desktop
    mailfilteragent.desktop
    mboxresource.desktop
    microblog.desktop
    mixedmaildirresource.desktop
    mtdummyresource.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/default:/usr/local/share/:/usr/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='/afs/mydomain/myuser/.local/share/akonadi/akonadiserver.error'>/afs/mydomain/myuser/.local/share/akonadi/akonadiserver.error</a>.

    File content of '/afs/mydomain/myuser/.local/share/akonadi/akonadiserver.error':
    Database process exited unexpectedly during initial connection!
    executable: "/usr/sbin/mysqld-akonadi"
    arguments: ("--defaults-file=/afs/mydomain/myuser/.local/share/akonadi/mysql.conf", "--datadir=/afs/mydomain/myuser/.local/share/akonadi/db_data/", "--socket=/afs/mydomain/myuser/.local/share/akonadi/socket-ledig/mysql.socket")
    stdout: ""
    stderr: "Could not open required defaults file: /afs/mydomain/myuser/.local/share/akonadi/mysql.conf
    Fatal error in defaults handling. Program aborted
    "
    exit code: 1
    process error: "Unknown error"
    "[
    0: akonadiserver() [0x419875]
    1: akonadiserver() [0x419b3c]
    2: /lib/x86_64-linux-gnu/libc.so.6(+0x364a0) [0x7f8fb7f3e4a0]
    3: /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35) [0x7f8fb7f3e425]
    4: /lib/x86_64-linux-gnu/libc.so.6(abort+0x17b) [0x7f8fb7f41b8b]
    5: /usr/lib/x86_64-linux-gnu/libQtCore.so.4(_Z17qt_message_output9QtMsgTypePKc+ 0x11b) [0x7f8fb9a0c50b]
    6: akonadiserver() [0x41bc82]
    7: /usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN9QIODevice5writeEPKcx+0xaf) [0x7f8fb9aa8caf]
    8: /usr/lib/x86_64-linux-gnu/libQtCore.so.4(+0x119272) [0x7f8fb9ab4272]
    9: /usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN11QTextStreamD1Ev+0x39) [0x7f8fb9abd109]
    10: akonadiserver() [0x412e96]
    11: akonadiserver() [0x4a0d33]
    12: akonadiserver() [0x41ca21]
    13: akonadiserver() [0x41e1e5]
    14: akonadiserver() [0x41f8e7]
    15: akonadiserver() [0x4123f2]
    16: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f8fb7f2976d]
    17: akonadiserver() [0x412d21]
    ]
    "


    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='/afs/mydomain/myuser/.local/share/akonadi/akonadiserver.error.old'>/afs/mydomain/myuser/.local/share/akonadi/akonadiserver.error.old</a>.

    File content of '/afs/mydomain/myuser/.local/share/akonadi/akonadiserver.error.old':
    Database process exited unexpectedly during initial connection!
    executable: "/usr/sbin/mysqld-akonadi"
    arguments: ("--defaults-file=/afs/mydomain/myuser/.local/share/akonadi/mysql.conf", "--datadir=/afs/mydomain/myuser/.local/share/akonadi/db_data/", "--socket=/afs/mydomain/myuser/.local/share/akonadi/socket-ledig/mysql.socket")
    stdout: ""
    stderr: "Could not open required defaults file: /afs/mydomain/myuser/.local/share/akonadi/mysql.conf
    Fatal error in defaults handling. Program aborted
    "
    exit code: 1
    process error: "Unknown error"
    "[
    0: akonadiserver() [0x419875]
    1: akonadiserver() [0x419b3c]
    2: /lib/x86_64-linux-gnu/libc.so.6(+0x364a0) [0x7f2c94a074a0]
    3: /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35) [0x7f2c94a07425]
    4: /lib/x86_64-linux-gnu/libc.so.6(abort+0x17b) [0x7f2c94a0ab8b]
    5: /usr/lib/x86_64-linux-gnu/libQtCore.so.4(_Z17qt_message_output9QtMsgTypePKc+ 0x11b) [0x7f2c964d550b]
    6: akonadiserver() [0x41bc82]
    7: /usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN9QIODevice5writeEPKcx+0xaf) [0x7f2c96571caf]
    8: /usr/lib/x86_64-linux-gnu/libQtCore.so.4(+0x119272) [0x7f2c9657d272]
    9: /usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN11QTextStreamD1Ev+0x39) [0x7f2c96586109]
    10: akonadiserver() [0x412e96]
    11: akonadiserver() [0x4a0d33]
    12: akonadiserver() [0x41ca21]
    13: akonadiserver() [0x41e1e5]
    14: akonadiserver() [0x41f8e7]
    15: akonadiserver() [0x4123f2]
    16: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f2c949f276d]
    17: akonadiserver() [0x412d21]
    ]
    "


    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.

    #2
    Obviously the problem might be that MySQL, which Akonadi uses, does not work in AFS, but the MySQL files are not stored in AFS since I have made symbolic links for the folders ~/.config/akonadi and ~/.local/share/akonadi to the local harddrive (ext4) and the MySQL files that Akonadi uses seem to be stored in /local/myuser/.local/share/akonadi/db_data/mysql/:
    $ df -h /local/myuser/.local/share/akonadi/db_data/mysql/.
    Filesystem Size Used Avail Use% Mounted on
    /dev/sda3 213G 192M 202G 1% /local

    This is how I have created the symbolic links:
    $ mkdir -p /local/myuser/.local/share
    $ mv ~/.local/share/akonadi /local/myuser/.local/share/
    $ ln -s /local/myuser/.local/share/akonadi ~/.local/share/
    $ mkdir -p /local/myuser/.config
    $ mv ~/.config/akonadi /local/myuser/.config/
    $ ln -s /local/myuser/.config/akonadi ~/.config/
    $ ls -l ~/.local/share/akonadi
    lrwxr-xr-x 1 myuser mygroup 34 Oct 16 09:01 /afs/mydomain/myuser/.local/share/akonadi -> /local/myuser/.local/share/akonadi
    $ ls -l ~/.config/akonadi
    lrwxr-xr-x 1 myuser mygroup 29 Oct 16 09:01 /afs/mydomain/myuser/.config/akonadi -> /local/myuser/.config/akonadi

    Comment


      #3
      I have now also tried to move the whole folders ~/.config ~/.local ~/.kde from AFS to the local harddrive (ext4) but the problem is the same.

      Is it not strange that it complains with the following:
      stderr: "Could not open required defaults file: /afs/mydomain/myuser/.local/share/akonadi/mysql.conf
      Fatal error in defaults handling. Program aborted
      "
      because the file /afs/mydomain/myuser/.local/share/akonadi/mysql.conf is there and is readable both by myuser and by root).

      Comment


        #4
        If the problem is that Akonadi uses MySQL (which might have problem with AFS), then how do I change so that Akonadi uses some other database management system like SQLite or PostgreSQL? If I install the package "akonadi-backend-sqlite" or "akonadi-backend-postgresql" and try to remove "akonadi-backend-mysql" the system also wants to remove "akonadi-server" :-(

        Comment


          #5
          I am unfamiliar with AFS, so I can't offer advice there.

          akonadi-server has a hard dependency on akonadi-backend-mysql, but that doesn't mean you have to use it. You can install one of the other two backend packages. Then press Ctrl+F2 and start typing a k o n. When you see Akonadi Configuration, choose that.

          Now, go to the Akonadi Server Configuration tab. Change the Database driver option to match the backend that you installed.

          Comment

          Working...
          X