Bug #17352 MySQL Administrator crashes when using the "User Administration"
Submitted: 13 Feb 2006 20:29 Modified: 15 Jun 2006 18:19
Reporter: Thierry Rietsch Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Administrator Severity:S2 (Serious)
Version:1.1.6 / 1.1.8 OS:Linux (Linux)
Assigned to: CPU Architecture:Any

[13 Feb 2006 20:29] Thierry Rietsch
Description:
I try to use the "User Administration" feature from the MySQL Administrator. I am able to connect to the server over a socket:

--------------------
User: root
Host: localhost
Socket: /tmp/mysql.sock
--------------------

When I try to click on the "User Administration", the applicatios open the "User Administration" page in inactive mode (everything is gray and disabled). In the bottom there is the Message "Retrieving data from MySQL..." and then the applications hangs. The only way to stop it, is to kill it over the command line.

MySQL Version: MySQL 5.0.18

MySQL is fresh installed under archlinux over an archlinux package. The only thing I have done, is changed the root password of the MySQL DB over the cli tool "mysql".

How to repeat:
Connect to MySQL Database with MySQL Administrator. Click on "User Administration".
[13 Feb 2006 20:34] Thierry Rietsch
Also this happens when I try to use the binary Linux (x86, glibc-2.2, "standard" is static, gcc) version of MySQL Administrator.
[14 Feb 2006 19:26] Stefan Wold
I have detected the same problem. These are the versions I'm currently running

mysql-administrator 1.1.8
gcc 3.4.5
glibc 2.3.6 compiled with nptl
kernel 2.6.14.5
mysql 5.0.18

According to strace there seem to be trouble with FUTEX and that resources is temporarily unavailable. I have tested this on a clean installation of mysql 5.0.18 to make sure the database is in order but the problem is still there.

I'll upload the strace of mysql-administrator (if possible).
[14 Feb 2006 19:29] Stefan Wold
Sorry just noticed I added wrong version for mysql-administrator, it should have been 1.1.6.
And since only the bug author could upload files I'll paste the last lines of my strace:

22952 gettimeofday({1139944747, 16178}, NULL) = 0
22952 poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, 0) = 0
22952 write(3, "5\30\4\0F\6\300\2\262\3\300\2\16\1\23\0\234\4\5\0G\6\300"..., 1288) = 1288
22952 ioctl(3, FIONREAD, [0])           = 0
22952 gettimeofday({1139944747, 19995}, NULL) = 0
22952 poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, 0) = 0
22952 ioctl(3, FIONREAD, [0])           = 0
22952 gettimeofday({1139944747, 20080}, NULL) = 0
22952 poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, 0) = 0
22952 futex(0xbf999d48, FUTEX_WAIT, 2, NULL <unfinished ...>
22958 fcntl64(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0
22958 read(6, 0x84ec4b0, 8192)          = -1 EAGAIN (Resource temporarily unavailable)
22958 fcntl64(6, F_SETFL, O_RDWR)       = 0
22958 write(6, "#\0\0\0\3SELECT * FROM mysql.user WH"..., 39) = 39
22958 read(6, "\1\0\0\1%+\0\0\2\3def\5mysql\4user\4user\4Ho"..., 16384) = 2376
22958 fcntl64(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0
22958 read(6, 0x84ec4b0, 8192)          = -1 EAGAIN (Resource temporarily unavailable)
22958 fcntl64(6, F_SETFL, O_RDWR)       = 0
22958 write(6, "#\0\0\0\3SELECT * FROM mysql.db   WH"..., 39) = 39
22958 read(6, "\1\0\0\1\24\'\0\0\2\3def\5mysql\2db\2db\4Host\4H"..., 16384) = 1193
22958 fcntl64(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0
22958 read(6, 0x84ec4b0, 8192)          = -1 EAGAIN (Resource temporarily unavailable)
22958 fcntl64(6, F_SETFL, O_RDWR)       = 0
22958 write(6, "$\0\0\0\3SHOW TABLE STATUS FROM `x` "..., 40) = 40
22958 read(6, "\35\0\0\1\377\31\4#42000Unknown database \'x"..., 16384) = 33
22958 fcntl64(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0
22958 read(6, 0x84ec4b0, 8192)          = -1 EAGAIN (Resource temporarily unavailable)
22958 fcntl64(6, F_SETFL, O_RDWR)       = 0
22958 write(6, "#\0\0\0\3SHOW COLUMNS FROM mysql.pro"..., 39) = 39
22958 read(6, "\1\0\0\1\6-\0\0\2\3def\0\7COLUMNS\0\5Field\vCO"..., 16384) = 617
22958 fcntl64(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0
22958 read(6, 0x84ec4b0, 8192)          = -1 EAGAIN (Resource temporarily unavailable)
22958 fcntl64(6, F_SETFL, O_RDWR)       = 0
22958 write(6, "+\0\0\0\3SHOW TABLE STATUS FROM `mys"..., 47) = 47
22958 read(6, "\1\0\0\1\22*\0\0\2\3def\0\6TABLES\0\4Name\nTABL"..., 16384) = 1116
22958 brk(0x8601000)                    = 0x8601000
22958 fcntl64(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0
22958 read(6, 0x84ec4b0, 8192)          = -1 EAGAIN (Resource temporarily unavailable)
22958 fcntl64(6, F_SETFL, O_RDWR)       = 0
22958 write(6, "$\0\0\0\3SHOW COLUMNS FROM mysql.tab"..., 40) = 40
22958 read(6, "\1\0\0\1\6-\0\0\2\3def\0\7COLUMNS\0\5Field\vCO"..., 16384) = 709
22958 fcntl64(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0
22958 read(6, 0x84ec4b0, 8192)          = -1 EAGAIN (Resource temporarily unavailable)
22958 fcntl64(6, F_SETFL, O_RDWR)       = 0
22958 write(6, "%\0\0\0\3SHOW COLUMNS FROM mysql.col"..., 41) = 41
22958 read(6, "\1\0\0\1\6-\0\0\2\3def\0\7COLUMNS\0\5Field\vCO"..., 16384) = 572
22958 write(5, "\357\276\255\336\30\235\231\277\360\2203\10", 12) = 12
22958 _exit(0)                          = ?
22952 <... futex resumed> )             = -1 EINTR (Interrupted system call)
22952 --- SIGTERM (Terminated) @ 0 (0) ---
22952 +++ killed by SIGTERM +++
[16 Feb 2006 12:52] MySQL Verification Team
I was unable to repeat this issue on Fedora Core 4 and Administrator
1.1.6. I connected as root, then clicked User Administration and selecting
and user account or pressing the New User button the User Information
screen is available. However with a limited user's privileges then I got
a screen saying that was unable for to get the user privileges information.
[16 Feb 2006 19:43] Stefan Wold
If there is something else you want me to do for debugging purpose just let me know and I will be happy to test it. Mysql administrator work just fine with the exception of clicking on "User administration", as the bug author claimed the whole application freeze and has to be killed on the command line.
[7 Mar 2006 19:38] Thierry Rietsch
I tried it on another archlinux installation, and it crashes also. What kind of informatione do you need from my system?
[26 Mar 2006 8:14] Panu Bloigu
Hello.

I'm experiencing exactly the same problem with MySQL Administrator 1.1.6 and MySQL 5.0.18 on Fedora Core 5. I'm also willing to provide any infomation about my system that   would help to solve this issue.
[10 Jun 2006 22:44] Matt
Same problem with Debian's testing (Etch) tag. MySQL 5.0.22, MySQL Admin 1.1.10. This is was a clean install on a clean server and logging in as root.
[15 Jun 2006 18:19] Thierry Rietsch
So what's going on with this case? I would help you and provide information, but I need to know what information you need!
[30 Jul 2006 11:40] Jarod McKnight
Hi, I am using Debian Etch, too. I have the same problem with the testing MySQL server (5.0.22) and the testing MySQL-Administrator (1.1.10), both up to date from apt.
I downloaded the "Linux (non RPM package) downloads, Linux (x86, glibc-2.2, "standard" is static, gcc)" (1.1.10a) Version, and that versions "User Administration" is running for me.
[11 Aug 2006 0:22] [ name withheld ]
I have the same problem on Debian Sid and the following patch seems to solve what appears to be a deadlock/race condition without any adverse effects. I think the user_selected is being called at the same time as show and for some reason they are deadlocking around the LockMySQL call that gets hit if you trace it.

*** MAUserAdministrationPanel.cc.old	2006-08-11 10:13:20.000000000 +1000
--- MAUserAdministrationPanel.cc	2006-08-11 07:29:24.000000000 +1000
***************
*** 2236,2242 ****
    else
      unshow_user();
    
!   reload_catalogs();
  }
  
  
--- 2236,2242 ----
    else
      unshow_user();
    
!   //reload_catalogs();
  }
  
 
I remember a similar thing happened with Inkscape a while back on the transition to the same version of gtk. So it might be a gtk bug, but in the end I believe the problem was resolved in Inkscape code.
[7 Sep 2006 5:52] Stefan Wold
That patch solved the issue for me as well. I'm compiling against GTK+2.10.3.
[27 Sep 2006 20:53] Niklas Lagergren
I have Ubuntu 6.06 LTS and MySQL Administrator 6.06. I have the exact same problem.

I however do not know how to recomplie, does anyone have the time to give me some instructions on how to do that? 

Regards,
Lani