Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.1.12, 10.0(EOL), 10.1(EOL)
-
Centos 5.
Description
Hi All,
I'm running these rpms:
MariaDB-common-10.1.12-1
|
MariaDB-server-10.1.12-1
|
MariaDB-test-10.1.12-1
|
MariaDB-shared-10.1.12-1
|
MariaDB-connect-engine-10.1.12-1
|
MariaDB-client-10.1.12-1
|
MariaDB-compat-10.1.12-1
|
I've created a directory /drbd2
# ls -al /drbd2
|
total 28
|
drwxr-xr-x 4 mysql mysql 4096 Mar 3 13:58 .
|
drwxr-xr-x 31 root root 4096 Mar 3 12:11 ..
|
drwxrwx--- 2 mysql mysql 4096 Mar 3 13:58 radius
|
drwx------ 2 mysql mysql 16384 Mar 3 12:12 lost+found
|
When I try to create a myisam with Data Directory it works:
CREATE TABLE `radacct3` ( |
`radacctid` bigint(20) NOT NULL AUTO_INCREMENT, `acctsessionid` varchar(64) NOT NULL DEFAULT '', `acctuniqueid` varchar(32) NOT NULL DEFAULT '', `username` varchar(64) NOT NULL DEFAULT '', `groupname` varchar(64) NOT NULL DEFAULT '', `realm` varchar(64) DEFAULT '', `nasipaddress` varchar(15) NOT NULL DEFAULT '', `nasportid` varchar(15) DEFAULT NULL, `nasporttype` varchar(32) DEFAULT NULL, `acctstarttime` datetime DEFAULT NULL, `acctstoptime` datetime DEFAULT NULL, `acctsessiontime` int(11) DEFAULT NULL, `acctauthentic` varchar(32) DEFAULT NULL, `connectinfo_start` varchar(50) DEFAULT NULL, `connectinfo_stop` varchar(50) DEFAULT NULL, `acctinputoctets` bigint(20) DEFAULT NULL, `acctoutputoctets` bigint(20) DEFAULT NULL, `calledstationid` varchar(50) NOT NULL DEFAULT '', `callingstationid` varchar(50) NOT NULL DEFAULT '', `acctterminatecause` varchar(32) NOT NULL DEFAULT '', `servicetype` varchar(32) DEFAULT NULL, `framedprotocol` varchar(32) DEFAULT NULL, `framedipaddress` varchar(15) NOT NULL DEFAULT '', `acctstartdelay` int(11) DEFAULT NULL, `acctstopdelay` int(11) DEFAULT NULL, `acctupdatetime` datetime DEFAULT NULL, `deleted` char(1) DEFAULT '', `objectclass` varchar(64) DEFAULT 'AAA-SessionInfo', PRIMARY KEY (`radacctid`), KEY `username` (`username`), KEY `framedipaddress` (`framedipaddress`), KEY `acctsessionid` (`acctsessionid`), KEY `acctsessiontime` (`acctsessiontime`), KEY `acctuniqueid` (`acctuniqueid`), KEY `acctstarttime` (`acctstarttime`), KEY `acctstoptime` (`acctstoptime`), KEY `nasipaddress` (`nasipaddress`), KEY `acctupdatetime` (`acctupdatetime`), KEY `deleted` (`deleted`), KEY `objectclass` (`objectclass`) |
) ENGINE=Myisam data directory='/drbd2'; |
Query OK, 0 rows affected (0.00 sec) |
# ls -al /drbd2/
|
total 28
|
drwxr-xr-x 4 mysql mysql 4096 Mar 3 14:12 .
|
drwxr-xr-x 31 root root 4096 Mar 3 12:11 ..
|
drwxrwx--- 2 mysql mysql 4096 Mar 3 13:58 radius
|
drwx------ 2 mysql mysql 16384 Mar 3 12:12 lost+found
|
-rw-rw---- 1 mysql mysql 0 Mar 3 14:12 radacct3.MYD
|
MariaDB [ant_truauth]> drop table radacct3; |
Query OK, 0 rows affected (0.00 sec) |
So it looks like it correctly puts the myisam data file in the /drbd2 directory.
However creating a table with Innodb seems to fail and I can't figure out the answer.
The radacct3.idb file should have been created in the /drbd2/radius/ directory.
MariaDB [ant_truauth]> CREATE TABLE `radacct3` ( |
`radacctid` bigint(20) NOT NULL AUTO_INCREMENT, `acctsessionid` varchar(64) NOT NULL DEFAULT '', `acctuniqueid` varchar(32) NOT NULL DEFAULT '', `username` varchar(64) NOT NULL DEFAULT '', `groupname` varchar(64) NOT NULL DEFAULT '', `realm` varchar(64) DEFAULT '', `nasipaddress` varchar(15) NOT NULL DEFAULT '', `nasportid` varchar(15) DEFAULT NULL, `nasporttype` varchar(32) DEFAULT NULL, `acctstarttime` datetime DEFAULT NULL, `acctstoptime` datetime DEFAULT NULL, `acctsessiontime` int(11) DEFAULT NULL, `acctauthentic` varchar(32) DEFAULT NULL, `connectinfo_start` varchar(50) DEFAULT NULL, `connectinfo_stop` varchar(50) DEFAULT NULL, `acctinputoctets` bigint(20) DEFAULT NULL, `acctoutputoctets` bigint(20) DEFAULT NULL, `calledstationid` varchar(50) NOT NULL DEFAULT '', `callingstationid` varchar(50) NOT NULL DEFAULT '', `acctterminatecause` varchar(32) NOT NULL DEFAULT '', `servicetype` varchar(32) DEFAULT NULL, `framedprotocol` varchar(32) DEFAULT NULL, `framedipaddress` varchar(15) NOT NULL DEFAULT '', `acctstartdelay` int(11) DEFAULT NULL, `acctstopdelay` int(11) DEFAULT NULL, `acctupdatetime` datetime DEFAULT NULL, `deleted` char(1) DEFAULT '', `objectclass` varchar(64) DEFAULT 'AAA-SessionInfo', PRIMARY KEY (`radacctid`), KEY `username` (`username`), KEY `framedipaddress` (`framedipaddress`), KEY `acctsessionid` (`acctsessionid`), KEY `acctsessiontime` (`acctsessiontime`), KEY `acctuniqueid` (`acctuniqueid`), KEY `acctstarttime` (`acctstarttime`), KEY `acctstoptime` (`acctstoptime`), KEY `nasipaddress` (`nasipaddress`), KEY `acctupdatetime` (`acctupdatetime`), KEY `deleted` (`deleted`), KEY `objectclass` (`objectclass`) |
) ENGINE=Innodb data directory='/drbd2'; |
ERROR 1005 (HY000): Can't create table `radius`.`radacct3` (errno: -1 "Internal error < 0 (Not system error)") |
The mysql.log shows:
2016-03-03 13:58:19 2aaebe6eed40 InnoDB: Error: Write to file ./radius/radacct3.isl failed at offset 0.
|
InnoDB: 31 bytes should have been written, only 0 were written.
|
InnoDB: Operating system error number 22.
|
InnoDB: Check that your OS and file system support files of this size.
|
InnoDB: Check also that the disk is not full or a disk quota exceeded.
|
InnoDB: Error number 22 means 'Invalid argument'.
|
InnoDB: Some operating system error numbers are described at
|
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/operating-system-error-codes.html
|
I managed to do this with the i686 version, which I mistakenly installed as I thought was the 64bit version. After upgrading to the 64bit version of Mariadb it seems to fail.
# df -h
|
Filesystem Size Used Avail Use% Mounted on
|
(removed the other directories)
|
/dev/drbd2 7.7G 146M 7.2G 2% /drbd2 |
|
# df -i
|
Filesystem Inodes IUsed IFree IUse% Mounted on
|
(removed the other directories)
|
/dev/drbd2 1024128 12 1024116 1% /drbd2 |
Hence its not a diskspace or inode issue.
There are no errors in /var/log/messages.
Since I could created the myisam version I think permissions to the directory is fine for mariadb to create the files.
Any idea what is wrong?
Regards,
Michael
Michaelv,
We don't have information about 10.2 release date yet, but it's not going to become production-ready any time soon.
For whether the fix will be ported to 10.1, let's wait for jplindst decision, he's an innoDB expert and will be able to conclude whether it is technically possible and safe enough to have it in 10.1.