← Back to team overview

maria-developers team mailing list archive

Re: [Commits] Rev 3429: MDEV-329: MariaDB 5.5 does not use fdatasync(). in http://bazaar.launchpad.net/~maria-captains/maria/5.5

 


> -----Original Message-----
> From: Kristian Nielsen [mailto:knielsen@xxxxxxxxxxxxxxx]
> Sent: Freitag, 8. Juni 2012 12:17
> To: Vladislav Vaintroub
> Cc: maria-developers@xxxxxxxxxxxxxxxxxxx
> Subject: Re: [Commits] Rev 3429: MDEV-329: MariaDB 5.5 does not use
> fdatasync(). in http://bazaar.launchpad.net/~maria-captains/maria/5.5
> 
> Hi wlad,
> 
> Can I get you to review the following one-liner? (Just the Cmake part).
> 
> The problem is that the code in 5.5 currently does not use fdatasync(),
> falling back to fsync(). The fdatasync() is detected correctly by cmake,
but
> the HAVE_DECL_FDATASYNC symbol does not get defined so code does not
> use it.
> 
> Is adding HAVE_DECL_FDATASYNC to config.h.cmake the correct fix?

Hi Kristian ,
Yes, this is correct.
Wlad

>  - Kristian.
> 
> knielsen@xxxxxxxxxxxxxxx writes:
> 
> > At http://bazaar.launchpad.net/~maria-captains/maria/5.5
> >
> > ------------------------------------------------------------
> > revno: 3429
> > revision-id: knielsen@xxxxxxxxxxxxxxx-20120608091856-jmxb22ehrdp8xjdo
> > parent: timour@xxxxxxxxxxxx-20120606131948-0k4ih4get2fttge0
> > committer: knielsen@xxxxxxxxxxxxxxx
> > branch nick: mariadb-5.5
> > timestamp: Fri 2012-06-08 11:18:56 +0200
> > message:
> >   MDEV-329: MariaDB 5.5 does not use fdatasync().
> >
> >   The --debug-no-sync incorrectly defaulted to ON, disabling sync calls
> >   by default which can loose data or cause corruption. Also, the code
> >   used fsync() instead of the sometimes more efficient fdatasync().
> > === modified file 'config.h.cmake'
> > --- a/config.h.cmake	2012-04-19 02:02:28 +0000
> > +++ b/config.h.cmake	2012-06-08 09:18:56 +0000
> > @@ -150,6 +150,7 @@
> >  #cmakedefine HAVE_FCNTL 1
> >  #cmakedefine HAVE_FCONVERT 1
> >  #cmakedefine HAVE_FDATASYNC 1
> > +#cmakedefine HAVE_DECL_FDATASYNC 1
> >  #cmakedefine HAVE_FESETROUND 1
> >  #cmakedefine HAVE_FINITE 1
> >  #cmakedefine HAVE_FP_EXCEPT 1
> >
> > === modified file 'sql/mysqld.cc'
> > --- a/sql/mysqld.cc	2012-05-21 18:54:41 +0000
> > +++ b/sql/mysqld.cc	2012-06-08 09:18:56 +0000
> > @@ -6161,7 +6161,7 @@ struct my_option my_long_options[]=
> >  #endif
> >    {"debug-no-sync", 0,
> >     "Disables system sync calls. Only for running tests or debugging!",
> > -   &my_disable_sync, &my_disable_sync, 0, GET_BOOL, NO_ARG, 1, 0, 0,
> 0, 0, 0},
> > +   &my_disable_sync, &my_disable_sync, 0, GET_BOOL, NO_ARG, 0, 0, 0,
> 0, 0, 0},
> >  #ifdef HAVE_REPLICATION
> >    {"debug-sporadic-binlog-dump-fail", 0,
> >     "Option used by mysql-test for debugging and testing of
replication.",
> >
> > _______________________________________________
> > commits mailing list
> > commits@xxxxxxxxxxx
> > https://lists.askmonty.org/cgi-bin/mailman/listinfo/commits



Follow ups

References