Details
- 
    
Bug
 - 
    Status: Closed (View Workflow)
 - 
    
Blocker
 - 
    Resolution: Fixed
 - 
    10.1.13
 - 
    None
 - 
    Hyper-V Windows Server 2012 R2
Ubuntu 16.04 
Description
Step 1. Create a virtual hard drive with a 4K logical sector size VHDX.
We can use power shell to do this: New-VHD –Path "G:\ProgramData\Microsoft\Windows\Hyper-V\Ubuntu Slave\slave.vhdx" –SizeBytes 127GB –Dynamic –BlockSizeBytes 1MB –LogicalSectorSizeBytes 4096
I assume this issue is also reproducible on 4k native storage systems.
2. Create a VM and attach the previously created VHDX as only disk.
3. Install Ubuntu 16.04 as usual.
I suppose this issue is also reproducible on other systems using the Linux kernel, but haven't tested that
4. Install MariaDB 10.1.13 as usual
The setup will end with an error:
					Setting up mariadb-server-10.1 (10.1.13+maria-1~wily) ...  | 
		
					dpkg: error processing package mariadb-server-10.1 (--configure):  | 
		
					subprocess installed post-installation script returned error exit status 1  | 
		
					dpkg: dependency problems prevent configuration of mariadb-server:
			 | 
		
					mariadb-server depends on mariadb-server-10.1 (= 10.1.13+maria-1~wily); however:  | 
		
					Package mariadb-server-10.1 is not configured yet.  | 
		
| 
					 | 
		
					dpkg: error processing package mariadb-server (--configure):  | 
		
					 dependency problems - leaving unconfigured
			 | 
		
					Processing triggers for libc-bin (2.23-0ubuntu3) ...  | 
		
					No apport report written because the error message indicates its a followup error from a previous failure.
			 | 
		
					Processing triggers for ureadahead (0.100.0-19) ...  | 
		
					Processing triggers for systemd (229-4ubuntu4) ...  | 
		
					Errors were encountered while processing:  | 
		
					mariadb-server-10.1  | 
		
					 mariadb-server
			 | 
		
					E: Sub-process /usr/bin/dpkg returned an error code (1)  | 
		
The syslog tells us:
					May 3 01:26:26 france mysqld_safe[3200]: 2016-05-03 1:26:26 140199430514944 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: 2016-05-03 1:26:26 140199430514944 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: 2016-05-03 1:26:26 140199430514944 [Note] InnoDB: Database physically writes the file full: wait...  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: 2016-05-03 1:26:26 140199430514944 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: 2016-05-03 1:26:26 140199430514944 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: 2016-05-03 01:26:26 7f82b940e900 InnoDB: Error: Write to file ./ib_logfile101 failed at offset 0.  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: InnoDB: 512 bytes should have been written, only 0 were written.  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: InnoDB: Operating system error number 22.  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: InnoDB: Check that your OS and file system support files of this size.  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: InnoDB: Check also that the disk is not full or a disk quota exceeded.  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: InnoDB: Error number 22 means 'Invalid argument'.  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: InnoDB: Some operating system error numbers are described at  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: InnoDB: http://dev.mysql.com/doc/refman/5.6/en/operating-system-error-codes.html  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: 2016-05-03 01:26:26 7f82b940e900 InnoDB: Operating system error number 22 in a file operation.  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: InnoDB: Error number 22 means 'Invalid argument'.  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: InnoDB: Some operating system error numbers are described at  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: InnoDB: http://dev.mysql.com/doc/refman/5.6/en/operating-system-error-codes.html  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: InnoDB: Operation os_file_write_func to file /home/buildbot/buildbot/build/mariadb-10.1.13/storage/xtradb/os/os0file.cc and at line 5062  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: 2016-05-03 1:26:26 140199430514944 [ERROR] InnoDB: File ./ib_logfile101: 'os_file_write_func' returned OS error 222. Cannot continue operation  | 
		
					May 3 01:26:26 france mysqld_safe[3200]:  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: Installation of system tables failed! Examine the logs in  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: /var/lib/mysql for more information.  | 
		
					May 3 01:26:26 france mysqld_safe[3200]:  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: The problem could be conflicting information in an external  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: my.cnf files. You can ignore these by doing:  | 
		
					May 3 01:26:26 france mysqld_safe[3200]:  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: shell> /usr/scripts/scripts/mysql_install_db --defaults-file=~/.my.cnf  | 
		
					May 3 01:26:26 france mysqld_safe[3200]:  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: You can also try to start the mysqld daemon with:  | 
		
					May 3 01:26:26 france mysqld_safe[3200]:  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: shell> /usr/sbin/mysqld --skip-grant --general-log &  | 
		
					May 3 01:26:26 france mysqld_safe[3200]:  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: and use the command line tool /usr/bin/mysql  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: to connect to the mysql database and look at the grant tables:  | 
		
					May 3 01:26:26 france mysqld_safe[3200]:  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: shell> /usr/bin/mysql -u root mysql  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: mysql> show tables;  | 
		
					May 3 01:26:26 france mysqld_safe[3200]:  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: Try 'mysqld --help' if you have problems with paths. Using  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: --general-log gives you a log in /var/lib/mysql that may be helpful.  | 
		
					May 3 01:26:26 france mysqld_safe[3200]:  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: The latest information about mysql_install_db is available at  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: https://mariadb.com/kb/en/installing-system-tables-mysql_install_db  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: MariaDB is hosted on launchpad; You can find the latest source and  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: email lists at http://launchpad.net/maria  | 
		
					May 3 01:26:26 france mysqld_safe[3200]:  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: Please check all of the above before submitting a bug report  | 
		
					May 3 01:26:26 france mysqld_safe[3200]: at http://mariadb.org/jira  | 
		
Looks to me like MariaDB's InnoDB engine can't handle the 4k logical sector size and assumes the system is using 512 bytes, which is still very common.