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/test/.config/akonadi/akonadiserverrc': [Debug] Tracer=null [%General] Driver=QMYSQL [QMYSQL] Host= Name=akonadi Options="UNIX_SOCKET=/run/user/500/akonadi/mysql.socket" ServerPath=/usr/sbin/mysqld 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'. 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: One can only use the --user switch if running as root 2022-06-07 15:37:42 0 [ERROR] chroot: Operation not permitted 2022-06-07 15:37:42 0 [ERROR] Aborting /usr/sbin/mysqld Ver 10.4.20-MariaDB-alt1 for Linux on x86_64 ((ALT Sisyphus)) Test 5: ERROR -------- MySQL server log contains errors. Details: The MySQL server error log file '/home/test/.local/share/akonadi/db_data/mysql.err' contains errors. File content of '/home/test/.local/share/akonadi/db_data/mysql.err': 2022-06-07 15:32:08 0 [Note] InnoDB: Using Linux native AIO 2022-06-07 15:32:08 0 [Note] InnoDB: The first innodb_system data file 'ibdata1' did not exist. A new tablespace will be created! 2022-06-07 15:32:08 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2022-06-07 15:32:08 0 [Note] InnoDB: Uses event mutexes 2022-06-07 15:32:08 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 2022-06-07 15:32:08 0 [Note] InnoDB: Number of pools: 1 2022-06-07 15:32:08 0 [Note] InnoDB: Using generic crc32 instructions 2022-06-07 15:32:08 0 [Note] mysqld: O_TMPFILE is not supported on /tmp/.private/test (disabling future attempts) 2022-06-07 15:32:08 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M 2022-06-07 15:32:08 0 [Note] InnoDB: Completed initialization of buffer pool 2022-06-07 15:32:08 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority(). 2022-06-07 15:32:08 0 [Note] InnoDB: Setting file './ibdata1' size to 12 MB. Physically writing the file full; Please wait ... 2022-06-07 15:32:08 0 [Note] InnoDB: File './ibdata1' size is now 12 MB. 2022-06-07 15:32:08 0 [Note] InnoDB: Setting log file ./ib_logfile101 size to 16777216 bytes 2022-06-07 15:32:08 0 [Note] InnoDB: Setting log file ./ib_logfile1 size to 16777216 bytes 2022-06-07 15:32:09 0 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0 2022-06-07 15:32:09 0 [Note] InnoDB: New log files created, LSN=11451 2022-06-07 15:32:09 0 [Note] InnoDB: Doublewrite buffer not found: creating new 2022-06-07 15:32:09 0 [Note] InnoDB: Doublewrite buffer created 2022-06-07 15:32:09 0 [Note] InnoDB: 128 out of 128 rollback segments are active. 2022-06-07 15:32:09 0 [Note] InnoDB: Creating foreign key constraint system tables. 2022-06-07 15:32:09 0 [Note] InnoDB: Creating tablespace and datafile system tables. 2022-06-07 15:32:09 0 [Note] InnoDB: Creating sys_virtual system tables. 2022-06-07 15:32:09 0 [Note] InnoDB: Creating shared tablespace for temporary tables 2022-06-07 15:32:09 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... 2022-06-07 15:32:09 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. 2022-06-07 15:32:09 0 [Note] InnoDB: 10.4.20 started; log sequence number 0; transaction id 7 2022-06-07 15:32:09 0 [Note] Plugin 'FEEDBACK' is disabled. 2022-06-07 15:32:09 0 [Note] Reading of all Master_info entries succeeded 2022-06-07 15:32:09 0 [Note] Added new Master_info '' to hash table 2022-06-07 15:32:09 0 [Note] /usr/sbin/mysqld: ready for connections. Version: '10.4.20-MariaDB-alt1' socket: '/run/user/500/akonadi/mysql.socket' port: 0 (ALT Sisyphus) 2022-06-07 15:32:09 10 [ERROR] InnoDB: Table `mysql`.`innodb_table_stats` not found. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`collectiontable` index `CollectionTable_parentAndNameIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`collectiontable` index `CollectionTable_parentIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`collectiontable` index `CollectionTable_resourceIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`collectiontable` index `CollectionTable_enabledIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`collectiontable` index `CollectionTable_syncPrefIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`collectiontable` index `CollectionTable_displayPrefIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`collectiontable` index `CollectionTable_indexPrefIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`pimitemtable` index `PimItemTable_collectionIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`pimitemtable` index `PimItemTable_mimeTypeIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`pimitemtable` index `PimItemTable_gidIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`pimitemtable` index `PimItemTable_ridIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`pimitemtable` index `PimItemTable_idSortIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`parttypetable` index `PartTypeTable_partTypeNameIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`parttable` index `PartTable_pimItemIdTypeIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`parttable` index `PartTable_pimItemIdSortIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`parttable` index `PartTable_partTypeIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`collectionattributetable` index `CollectionAttributeTable_collectionIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`tagtable` index `TagTable_parentIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`tagtable` index `TagTable_typeIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`tagattributetable` index `TagAttributeTable_tagIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`tagremoteidresourcerelationtable` index `TagRemoteIdResourceRelationTable_tagIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`tagremoteidresourcerelationtable` index `TagRemoteIdResourceRelationTable_resourceIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`relationtable` index `RelationTable_RelationIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`relationtable` index `RelationTable_leftIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`relationtable` index `RelationTable_rightIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`relationtable` index `RelationTable_typeIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`pimitemflagrelation` index `PimItemFlagRelation_PimItem_idIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`pimitemflagrelation` index `PimItemFlagRelation_Flag_idIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`pimitemflagrelation` index `PimItemFlagRelation_pimItemIdSortIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`pimitemtagrelation` index `PimItemTagRelation_PimItem_idIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`pimitemtagrelation` index `PimItemTagRelation_Tag_idIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`collectionmimetyperelation` index `CollectionMimeTypeRelation_Collection_idIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`collectionmimetyperelation` index `CollectionMimeTypeRelation_MimeType_idIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`collectionpimitemrelation` index `CollectionPimItemRelation_Collection_idIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2022-06-07 15:32:09 10 [Note] InnoDB: Recalculation of persistent statistics requested for table `akonadi`.`collectionpimitemrelation` index `CollectionPimItemRelation_PimItem_idIndex` but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. Test 6: SUCCESS -------- MySQL server default configuration found. Details: The default configuration for the MySQL server was found and is readable at /etc/kf5/xdg//akonadi/mysql-global.conf. File content of '/etc/kf5/xdg//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 # [mysqld] # 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 # 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 # # measure 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 buffer InnoDB uses to cache data and indexes of its tables (default:128M) # Larger values means less I/O innodb_buffer_pool_size=128M # 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=16M # # error log file name, relative to datadir (default:hostname.err) log_error=mysql.err # print warnings and connection errors (default:1) loose_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)) loose_query_cache_size=0 # Do not cache results (default:1) loose_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_open_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 # We use InnoDB, so don't let MyISAM eat up memory key_buffer_size=16K [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 /home/test/.local/share/akonadi/mysql.conf and is readable. File content of '/home/test/.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 # [mysqld] # 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 # 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 # # measure 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 buffer InnoDB uses to cache data and indexes of its tables (default:128M) # Larger values means less I/O innodb_buffer_pool_size=128M # 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=16M # # error log file name, relative to datadir (default:hostname.err) log_error=mysql.err # print warnings and connection errors (default:1) loose_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)) loose_query_cache_size=0 # Do not cache results (default:1) loose_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_open_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 # We use InnoDB, so don't let MyISAM eat up memory key_buffer_size=16K [client] default-character-set=utf8 Test 9: SUCCESS -------- akonadictl found and usable Details: The program '/usr/lib/kf5/bin/akonadictl' to control the Akonadi server was found and could be executed successfully. Result: akonadictl 5.20.1 (22.04.1) Test 10: SUCCESS -------- Akonadi control process registered at D-Bus. Details: The Akonadi control process is registered at D-Bus which typically indicates it is operational. Test 11: SUCCESS -------- Akonadi server process registered at D-Bus. Details: The Akonadi server process is registered at D-Bus which typically indicates it is operational. Test 12: 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 13: SUCCESS -------- Resource agents found. Details: At least one resource agent has been found. Directory listing of '/usr/share/akonadi5/agents': akonadiindexingagent.desktop akonotesresource.desktop birthdaysresource.desktop contactsresource.desktop davgroupwareresource.desktop ewsmtaresource.desktop ewsresource.desktop googleresource.desktop icaldirresource.desktop icalresource.desktop imapresource.desktop knutresource.desktop maildirresource.desktop maildispatcheragent.desktop mboxresource.desktop migrationagent.desktop mixedmaildirresource.desktop newmailnotifieragent.desktop notesagent.desktop notesresource.desktop openxchangeresource.desktop pop3resource.desktop tomboynotesresource.desktop vcarddirresource.desktop vcardresource.desktop Environment variable XDG_DATA_DIRS is set to '/home/test/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share/kf5:/usr/share:/var/lib/snapd/desktop' Test 14: SUCCESS -------- No current Akonadi server error log found. Details: The Akonadi server did not report any errors during its current startup. Test 15: SUCCESS -------- No previous Akonadi server error log found. Details: The Akonadi server did not report any errors during its previous startup. Test 16: SUCCESS -------- No current Akonadi control error log found. Details: The Akonadi control process did not report any errors during its current startup. Test 17: SUCCESS -------- No previous Akonadi control error log found. Details: The Akonadi control process did not report any errors during its previous startup.