Bugzilla will be upgraded to version 5.0 on a still to be determined date in the near future. The original upgrade date has been delayed.
Bug 1356897 - MariaDB removes all databases
MariaDB removes all databases
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: mariadb (Show other bugs)
7.4
All Linux
unspecified Severity high
: rc
: ---
Assigned To: Michal Schorm
Karel Volný
Lenka Špačková
:
: 1449072 (view as bug list)
Depends On: 1335849
Blocks: 1400961 1393868
  Show dependency treegraph
 
Reported: 2016-07-15 04:56 EDT by Pavel Raiskup
Modified: 2017-08-01 15:39 EDT (History)
13 users (show)

See Also:
Fixed In Version: mariadb-5.5.56-2.el7
Doc Type: Release Note
Doc Text:
Data are no longer lost when the *MariaDB* init script fails Previously, if the *MariaDB* init script failed, it called "rm -rf" on the whole directory. This could consequently lead to a loss of data or even deletion of the mount point. With this update, several additional checking mechanisms have been added to the init script. Now, if the script fails, it removes only files newer than a timestamp generated prior to the critical file operations. In addition, a set of human-readable status reports and error messages have been added.
Story Points: ---
Clone Of: 1335849
Environment:
Last Closed: 2017-08-01 15:39:08 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
git patch for rhel-7.4 branch - update 1 (5.58 KB, text/plain)
2017-03-07 09:06 EST, Michal Schorm
no flags Details


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2017:2192 normal SHIPPED_LIVE Moderate: mariadb security and bug fix update 2017-08-01 14:18:36 EDT

  None (edit)
Description Pavel Raiskup 2016-07-15 04:56:01 EDT
Short sum-up, consider that:

* /var/lib/mysql is mount point
* 'systemctl start mariadb' is executed
    * this runs '/usr/bin/mysql_install_db' in /var/lib/mysql when
      the '[ ! -d /var/lib/mysql/mysql ]'
    * if the mysql_install_db fails, 'rm -rf' is called there

The issue is when user mistakenly mounts the directory wrongly.

E.g. the whole '/var' mountpoint mounted as /var/lib/mysql:

* the '/var/lib/mysql/mysql' does not exist
* the mysql_install_db is called, but it fails (permissions)
* the 'rm -rf' is called, removes recursivelly all files owned by mysql

Clear user error, but we can protect user against disaster.

For more info:
+++ This bug was initially created as a clone of Bug #1335849 +++
Comment 1 Jan ONDREJ 2016-07-15 05:20:07 EDT
There are other cases too:

- backup of databases, for example
    mkdir /var/lib/mysql/BACKUP; mv /var/lib/mysql/* /var/lib/mysql/BACKUP
- permission problems or fail of filesystem + over quota = removal of files
- may be others too...

Should be fixed before more users will loss its data.
Comment 8 Michal Schorm 2017-03-07 14:41:48 EST
Patch applied, moving to QA.
Comment 11 Honza Horak 2017-05-11 03:22:00 EDT
*** Bug 1449072 has been marked as a duplicate of this bug. ***
Comment 29 errata-xmlrpc 2017-08-01 15:39:08 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2017:2192

Note You need to log in before you can comment on or make changes to this bug.