[MCOL-971] 1.0 to 1.1 non-root upgrade issue - problem shows after a reboot, still using 1.0 ENV variables Created: 2017-10-12  Updated: 2023-10-26  Resolved: 2017-10-26

Status: Closed
Project: MariaDB ColumnStore
Component/s: ?
Affects Version/s: 1.0.11
Fix Version/s: 1.1.1

Type: Bug Priority: Major
Reporter: David Hill (Inactive) Assignee: Daniel Lee (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Environment:

non-root install, my test environment was Amazon AMI


Sprint: 2017-20, 2017-21

 Description   

After a 1.0 non-root install was upgraded and then the server was rebooted, the following error occurred:

mcsadmin
/home/mariadb-user/mariadb/columnstore/bin/mcsadmin: error while loading shared libraries: libmariadb.so.3: cannot open shared object file: No such file or directory

This is happening because the 1.0 ENV variables aren't cleanly removed as part of the 1.0 install and erase/upgrade process to 1.1.

The main issue is 1.0 postConfigure also calls post-install, which messes up the saved .bashrc file. In 1.1, postConfigure was changed to NOT call post-install, so the problem is not in the 1.1 code.

So a fix in 1.0.12 will need to be done, BUT there might need to be some code or workaround in 1.1 to prevent the problem when user upgrades from 1.0.11 or earlier

-------------------------------------------------------------------------
here is the scenario and why the problem occurred

at 1.0.11 ami launch -

.bashrc

  1. MariaDB Columnstore Non-Root Environment Variables
    export COLUMNSTORE_INSTALL_DIR=/home/mariadb-user/mariadb/columnstore
    export LD_LIBRARY_PATH=:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/mysql/lib/mysql:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/mysql/lib/mysql

.bashrc.columnstore - is empty

$ cat .bashrc.columnstoreSave

  1. .bashrc
  1. Source global definitions
    if [ -f /etc/bashrc ]; then
    . /etc/bashrc
    fi

AFTER postConfigure is run:

cat .bashrc.columnstoreSave // has the ENV and alias in there

so when the pre-uninstall is run, the 1.0 ENV and alias will remain.

./mariadb/columnstore/bin/pre-uninstall --installdir=/home/mariadb-user/mariadb/columnstore

cat .bashrc

  1. MariaDB Columnstore Non-Root Environment Variables
    export COLUMNSTORE_INSTALL_DIR=/home/mariadb-user/mariadb/columnstore
    export LD_LIBRARY_PATH=:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/mysql/lib/mysql:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/mysql/lib/mysql

install mariadb 1.1 and run post-install

  1. MariaDB Columnstore Non-Root Environment Variables
    export COLUMNSTORE_INSTALL_DIR=/home/mariadb-user/mariadb/columnstore
    export LD_LIBRARY_PATH=:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/mysql/lib/mysql:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/mysql/lib/mysql
  2. MariaDB Columnstore Alias Commands
    #
    alias mcsmysql='/home/mariadb-user/mariadb/columnstore/mysql/bin/mysql --defaults-extra-file=/home/mariadb-user/mariadb/columnstore/mysql/my.cnf -u root'
    alias ma=/home/mariadb-user/mariadb/columnstore/bin/mcsadmin
    alias mcsadmin=/home/mariadb-user/mariadb/columnstore/bin/mcsadmin
    alias cpimport=/home/mariadb-user/mariadb/columnstore/bin/cpimport
    alias home='cd /home/mariadb-user/mariadb/columnstore'
    alias log='cd /var/log/mariadb/columnstore/'
    alias core='cd /var/log/mariadb/columnstore/corefiles'
    alias tmsg='tail -f /var/log/messages'
    alias tdebug='tail -f /var/log/mariadb/columnstore/debug.log'
    alias tinfo='tail -f /var/log/mariadb/columnstore/info.log'
    alias dbrm='cd /home/mariadb-user/mariadb/columnstore/data1/systemFiles/dbrm'
    alias module='cat /home/mariadb-user/mariadb/columnstore/local/module'

run postconfigure with new ENV

export COLUMNSTORE_INSTALL_DIR=/home/mariadb-user/mariadb/columnstore
export LD_LIBRARY_PATH=:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/mysql/lib/mysql:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/mysql/lib/mysql:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/mysql/lib:/home/mariadb-user/mariadb/columnstore/lib:/home/mariadb-user/mariadb/columnstore/mysql/lib
/home/mariadb-user/mariadb/columnstore/bin/postConfigure -i /home/mariadb-user/mariadb/columnstore

successfully installs

then reboot

$ mcsadmin
/home/mariadb-user/mariadb/columnstore/bin/mcsadmin: error while loading shared libraries: libmariadb.so.3: cannot open shared object file: No such file or directory



 Comments   
Comment by David Hill (Inactive) [ 2017-10-24 ]

This will be fix by MCOL-667 fix, moving alias's from .bashrc and /etc/profile.d files.

Since the whole file is replaced on upgraded, old settings cant remain anymore like it did when we was using .bashrc files.

how to test:

install 1.0... you will see alias's in .bashrc
do upgrade process where you uninstall 1.0. after completion, alias commands will exist in /etc/profile.d/columnstorealias.

Comment by Daniel Lee (Inactive) [ 2017-10-26 ]

Build verified: Github source for 1.1.1

/root/columnstore/mariadb-columnstore-server
commit f6cd94ea167789970db7b5b501569a6549495d10
Merge: 3d846d3 91b2553
Author: David.Hall <david.hall@mariadb.com>
Date: Tue Oct 24 09:15:58 2017 -0500

Merge pull request #72 from mariadb-corporation/MCOL-982

MCOL-982 Merge MariaDB 10.2.9

/root/columnstore/mariadb-columnstore-server/mariadb-columnstore-engine
commit 4985f3456e02b4ade6254f3dcc05a26a6bc4d338
Merge: 723620d 7aa588f
Author: David.Hall <david.hall@mariadb.com>
Date: Thu Oct 26 09:15:42 2017 -0500

Merge pull request #302 from mariadb-corporation/MCOL-984

MCOL-984 Fix API bulk insert rowID/HWM calulation

Generated at Thu Feb 08 02:25:11 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.