Bug #22379 im_daemon_life_cycle.test fails on merge of 5.1 -> 5.1-engines
| Submitted: | 15 Sep 2006 7:44 | Modified: | 4 Oct 2006 19:22 |
|---|---|---|---|
| Reporter: | Ingo Strüwing | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | Instance Manager | Severity: | S1 (Critical) |
| Version: | 5.0 + 5.1 | OS: | Linux (Linux) |
| Assigned to: | Magnus Blåudd | CPU Architecture: | Any |
[15 Sep 2006 7:44]
Ingo Strüwing
[19 Sep 2006 15:29]
Magnus Blåudd
Can be seen in most clones. The significant error message is "mysql-test-run: *** ERROR: Can not kill Instance Manager or its children." This is cause by the mysqld started by im is still alive but there is no pid file for it.
[21 Sep 2006 15:56]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/12354 ChangeSet@1.2348, 2006-09-21 17:56:36+02:00, msvensson@shellback.(none) +3 -0 Bug #22379 im_daemon_life_cycle.test fails on merge of 5.1 -> 5.1-engines - Remove race situations that occur when removing pidfiles. Primarily each process should remove it's own pidfile, secondly it should be removed by the process that created it and _only_ if it's certain the process is dead. Third, mysql-test-run.pl will remove the pidfile when process has been killed.
[21 Sep 2006 17:20]
Magnus Blåudd
A check that fscanf returns 1 is also needed to avoid race, see below patch:
[msvensson@shellback instance-manager]$ bk diffs -u instance_options.cc
===== instance_options.cc 1.36 vs edited =====
--- 1.36/server-tools/instance-manager/instance_options.cc 2006-09-21 19:19:52 +02:00
+++ edited/instance_options.cc 2006-09-21 18:53:28 +02:00
@@ -406,7 +406,8 @@
{
pid_t pid;
- fscanf(pid_file_stream, "%i", &pid);
+ if (fscanf(pid_file_stream, "%i", &pid) != 1)
+ pid= 0;
my_fclose(pid_file_stream, MYF(0));
return pid;
}
[21 Sep 2006 18:23]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/12360 ChangeSet@1.2281, 2006-09-21 20:23:12+02:00, msvensson@shellback.(none) +4 -0 Bug #22379 im_daemon_life_cycle.test fails on merge of 5.1 -> 5.1-engines - Remove race situations that occur when removing pidfiles. Primarily each process should remove its own pidfile, secondly it should be removed by the process that created it and _only_ if it's certain the process is dead. Third, mysql-test-run.pl will remove the pidfile when process has been killed.
[22 Sep 2006 13:54]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/12405 ChangeSet@1.2355, 2006-09-22 15:54:09+02:00, msvensson@neptunus.(none) +1 -0 Bug#22379 im_daemon_life_cycle.test fails on merge of 5.1 -> 5.1-engines
[22 Sep 2006 14:14]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/12407 ChangeSet@1.2286, 2006-09-22 16:14:23+02:00, msvensson@neptunus.(none) +1 -0 Bug#22379 im_daemon_life_cycle.test fails on merge of 5.1 -> 5.1-engines - Set state to STARTING before calling instance->start() - Check that pidfile has been created before changing STARTING => STARTED
[25 Sep 2006 7:29]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/12457 ChangeSet@1.2245, 2006-09-25 09:28:52+02:00, msvensson@neptunus.(none) +3 -0 Bug #22379 im_daemon_life_cycle.test fails on merge of 5.1 -> 5.1-engines Remove race situations that occur when removing pidfiles. Primarily each process should remove its own pidfile, secondly it should be removed by the process that created it and _only_ if it's certain the process is dead. Third, mysql-test-run.pl will remove the pidfile when process has been killed. - Set state of an instance to STARTING _before_ calling instance->start() - Check that pidfile of instance has been created before changing STARTING => STARTED - Only remove the pidfile if IM kills an instance with SIGKILL, otherwise the instance will remove it itself
[28 Sep 2006 9:38]
Petr Chardin
pushed to 5.1.12
[3 Oct 2006 19:47]
Dmitry Lenev
Pushed to 5.0.27
[4 Oct 2006 19:22]
Paul DuBois
Noted in 5.0.27, 5.1.12 changelogs. Instance Manager had a race condition involving mysqld PID file removal.
[24 Oct 2006 14:24]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/14267 ChangeSet@1.2325, 2006-10-24 18:25:24+04:00, anozdrin@alik. +1 -0 Enable im_daemon_life_cycle.imtest, since BUG#22379 is closed.
[25 Oct 2006 16:45]
Paul DuBois
The 5.0.x fix is in 5.0.30.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.047 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.