Bug #44038 Installing MEM sometimes fails.
Submitted: 2 Apr 2009 8:44 Modified: 25 Jun 2009 14:26
Reporter: Meiji KIMURA Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Enterprise Monitor: Installing Severity:S3 (Non-critical)
Version:2.0.5 OS:Linux (CentOS)
Assigned to: BitRock Merlin CPU Architecture:Any

[2 Apr 2009 8:44] Meiji KIMURA
Description:
MEM installing sometimes fails.
At that time, this error reported.

Installing

Innitializing User accounts. (4/6)

Error running /opt/mysql/enterprise/monitor/mysql/bin/mysql --defaults-file=/opt/mysql/enterprise/monitor/mysql/my.cnf -S /opt/mysql/enterprise/monitor/mysql/tmp/mysql.sock -u root -D mysql -e "update user set Password = PASSWORD('service_manager') where User = 'root'; update user set User = 'service_manager' where User = 'root';delete from user where User = '';flush privileges;" : ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/mysql/enterprise/monitor/mysql/tmp/mysql.sock' (2)

After this error, MEM installer report 'completed', but the message display error in that message. 'Report2.SetInstallerVariable.errorsOnSQLStatementsText'.

Completed installing files.

Setup has completed installing the MySQL Enterprise Monitor files on your computerReport2.SetInstallerVariable.errorsOnSQLStatementsText

Uninstalling the MySQL Enterprise Monitor files can be done by invoking:
/opt/mysql/enterprise/monitor/uninstall

To complete the installation, launch the MySQL Enterprise Dashboard and complete the initial setup and product activation information. Refer to the readme file for additional information and a list of known issues.

Please press next to launch the Dashboard.

How to repeat:
This error reported specific environment. 

(1) CentOS 5.3 with 2GB on DELL SX260.
(2) CentOS 4.7 with 512MB on Virtual Box on DELL note PC.

But always report the same error on 'Innitializing User accounts. (4/6)'.

Suggested fix:
N/A
[28 Apr 2009 19:15] Mark Matthews
Does the installer wait for a hard-coded amount of time before trying to connect to the mysqld used for the repository, or does it poll and re-try a number of times? I noticed similar issues with the startup script on Solaris x86, and there it just waits a hard-coded amount of time (5 seconds), which at least on the machine I was using wasn't long enough, and certainly wouldn't be long enough if we were launching from a crash and InnoDB was going through recovery.

The most optimal solution would be to poll mysqld a few times to see if it's up and running (don't trust the pid, the application can be running but not accepting connections), and failing after some set number of poll/wait/retry cycles.
[30 Apr 2009 9:56] BitRock Merlin
The current installer approach is to poll the MySQL port (not the pid) to check if it is available. The timeout for this action is 90 seconds. Let us know if this approach is valid for you or we should increase the timeout for this action. Please also specify the target version.
[30 Apr 2009 18:43] Gary Whizin
for installer's first-time startup, extend timeout period from 90 secs to 180 secs...

(and we acknowledge that this does not help if innodb is doing some massive amount of processing)
[4 May 2009 12:15] BitRock Merlin
Patch sent to Keith. We have extended the timeout period from 90 secs to 180 secs.
[4 May 2009 23:29] Keith Russell
Patch installed in versions => 2.1.0.1036.
[25 Jun 2009 14:26] Tony Bedford
An entry was added to the 2.1.0 changelog:

MySQL Enterprise Monitor installation sometimes failed, generating the following error:

Installing

Innitializing User accounts. (4/6)

Error running /opt/mysql/enterprise/monitor/mysql/bin/mysql
--defaults-file=/opt/mysql/enterprise/monitor/mysql/my.cnf -S
/opt/mysql/enterprise/monitor/mysql/tmp/mysql.sock -u root -D mysql -e "update user set
Password = PASSWORD('service_manager') where User = 'root'; update user set User =
'service_manager' where User = 'root';delete from user where User = '';flush privileges;"
: ERROR 2002 (HY000): Can't connect to local MySQL server through socket
'/opt/mysql/enterprise/monitor/mysql/tmp/mysql.sock' (2)

After displaying this error, the MySQL Enterprise Monitor installer reported that it had “completed”, but the message displayed contained an error message string:

Report2.SetInstallerVariable.errorsOnSQLStatementsText