← Back to team overview

maria-developers team mailing list archive

Re: 673ea509e2c: MDEV-26870 --skip-symbolic-links does not disallow .isl file creation

 

Hi Sergei,

On Thu, Jan 20, 2022 at 5:35 PM Sergei Golubchik <serg@xxxxxxxxxxx> wrote:
>
> Hi, Marko,
>
> On Jan 20, Marko Mäkelä wrote:
> > revision-id: 673ea509e2c (mariadb-10.2.40-230-g673ea509e2c)
[snip]
> > +-- source include/have_symlink.inc
>
> when can have_symlink be false?

The tests where I added that line would fail after this change if I
ran them with
./mtr --mysqld=--skip-symbolic-links

> Why InnoDB tests depend on server's symlink support?
> InnoDB does not use symlinks, it uses isl files.

In https://jira.mariadb.org/browse/MDEV-26870 you suggested using
my_use_symdir, which I did.
That variable is bound to the Boolean start-up parameter symbolic_links.

Changing InnoDB to use actual symlinks (and to stop creating
"databasename" directories, to be similar to other storage engines)
would be a file format change that could break downgrades to earlier
minor versions. Therefore, it is only doable in a development release.

> > +             push_warning(
> > +                     m_thd, Sql_condition::WARN_LEVEL_WARN,
> > +                     ER_ILLEGAL_HA_CREATE_OPTION,
> > +                     "InnoDB: DATA DIRECTORY requires HAVE_SYMLINK.");
> > +             ret = "DATA DIRECTORY";
>
> MyISAM does
>
>       push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN,
>                           WARN_OPTION_IGNORED,
>                           ER_THD(thd, WARN_OPTION_IGNORED),
>                           "DATA DIRECTORY");
> Archive does
>
>     if (create_info->data_file_name)
>       my_error(WARN_OPTION_IGNORED, MYF(ME_WARNING), "DATA DIRECTORY");
>
> I suggest you do one of the above too.

I had copied the reporting style of
create_table_info_t::create_option_data_directory_is_valid().

I agree that it is better to flag warnings for the
--skip-symbolic-links rather than errors.
It will cause fewer surprises to users as well.

Best regards,

Marko
-- 
Marko Mäkelä, Lead Developer InnoDB
MariaDB Corporation


Follow ups

References