Re: DBI errors for Authentication protocol and old_password segfaults
Patrick Galbraith <[email protected]> Thu, 27 Mar 2008 17:27:29 -0400
| Newsgroups | gmane.comp.db.mysql.perl |
|---|---|
| Message-ID | <[email protected]> |
Is there any way you could write a simple DBI perl script to connect to
the db, select something out of a table, etc.. That way you could
isolate it a bit more, and if there's anything wrong with the driver, I
can look at it.
Musolino, Peter wrote:
>Hi,
>I have been working on a problem relating to Request Tracker. I have been scouring the web for answers to questions, but instead of answers, I just get new questions.
>A bit about the environment, the modules, and the app:
>
>RHEL 4.0 Update 6
>Apache 2.0.52-38
>MySQL-client-standard 5.0.24a-0
>MySQL-devel-standard-5.0.24a-0
>MySQL-server-standard-5.0.24a-0
>MySQL-shared-compat-5.0.24a-0
>mod_perl 2.0.1
>DBD::mysql 4.006
>DBI 1.604
>RT 3.6.6
>DBIx::SearchBuilder-1.51
>
>We were first getting the following error in the apache error logs:
>
>DBI connect('dbname=rt3;host=localhost','rt',...) failed: Client does not support authentication protocol requested by server; consider upgrading MySQL client at /usr/lib/perl5/site_perl/5.8.5/DBIx/SearchBuilder/Handle.pm line 106
>[Wed Mar 26 09:47:11 2008] [error] [client 10.20.1.102] Connect Failed Client does not support authentication protocol requested by server; consider upgrading MySQL client\n at /opt/rt3/lib/RT.pm line 220\n
>
>I checked and there would be no reason that the DBD::mysql would not be using anything but the latest mysql client libraries, so I am not sure why it is still trying to use the older protocol and choking on the new long password scheme. So I took the second of the more suggested routes and changed the password of that user with the old_password method. Instead of that error, I started to get segfaults.
>
>[Tue Mar 25 12:26:40 2008] [notice] child pid 25271 exit signal Segmentation fault (11)
>
>There were no errors in the mysql err logs nor the system logs.
>
>I decided to do an strace against the running apache process and saw the following:
>
>connect(1, {sa_family=AF_FILE, path="/var/lib/mysql/mysql.sock"}, 110) = 0
>setsockopt(1, SOL_IP, IP_TOS, [8], 4) = -1 EOPNOTSUPP (Operation not supported)
>setsockopt(1, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
>read(1, ">\0\0\0", 4) = 4
>read(1, "\n5.0.24a-standard\0\304\224\0\0-gCVdwJK\0,"..., 62) = 62
>open("/usr/share/mysql/charsets/Index", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
>write(1, "\24\0\0\1\217 \0\0\0rt\0P[XJIQKK\0rt3", 24) = 24
>read(1, "\5\0\0\2", 4) = 4
>read(1, "\0\0\0\2\0", 5) = 5
>fcntl64(1, F_SETFL, O_RDWR|O_NONBLOCK) = 0
>read(1, 0xc0977b8, 8192) = -1 EAGAIN (Resource temporarily unavailable)
>fcntl64(1, F_SETFL, O_RDWR) = 0
>write(1, "\21\0\0\0\3set autocommit=1", 21) = 21
>read(1, "\5\0\0\1", 4) = 4
>read(1, "\0\0\0\2\0", 5) = 5
>time(NULL) = 1206447319
>time(NULL) = 1206447319
>--- SIGSEGV (Segmentation fault) @ 0 (0) ---
>chdir("/etc/httpd") = 0
>rt_sigaction(SIGSEGV, {SIG_DFL}, {SIG_DFL}, 8) = 0
>kill(5043, SIGSEGV) = 0
>sigreturn() = ? (mask now [])
>--- SIGSEGV (Segmentation fault) @ 0 (0) ---
>Process 5043 detached
>
>The Index error is for missing files which can be found in mysql 3.0. I copied the Index files and relevant .conf files into the charsets directory and the Index error and replaced with
>
>open("/usr/share/mysql/charsets/Index", O_RDONLY|O_LARGEFILE) = 36
>fstat64(36, {st_mode=S_IFREG|0755, st_size=549, ...}) = 0
>mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e63000
>read(36, "# sql/share/charsets/Index\n#\n# T"..., 4096) = 549
>read(36, "", 4096) = 0
>close(36) = 0
>munmap(0xb7e63000, 4096) = 0
>
>However the segfault still remains.
>
>I also ran an strace against mysql and got a similar error.
>
>fcntl64(12, F_SETFL, O_RDWR|O_NONBLOCK) = 0
>accept(12, {sa_family=AF_FILE, path="��
> n"}, [2]) = 18
>fcntl64(12, F_SETFL, O_RDWR) = 0
>getsockname(18, {sa_family=AF_FILE, path="/var/lib/mysql"}, [28]) = 0
>fcntl64(18, F_SETFL, O_RDONLY) = 0
>fcntl64(18, F_GETFL) = 0x2 (flags O_RDWR)
>fcntl64(18, F_SETFL, O_RDWR|O_NONBLOCK) = 0
>setsockopt(18, SOL_IP, IP_TOS, [8], 4) = -1 EOPNOTSUPP (Operation not supported)
>time(NULL) = 1206613476
>clone(child_stack=0xb16b24c4, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID|CLONE_DETACHED, parent_tidptr=0xb16b2be8, {entry_number:6, base_addr:0xb16b2ba0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0xb16b2be8) = 13994
>select(13, [10 12], NULL, NULL, NULL <unfinished ...>
>
>I am fresh out of ideas. Can anyone assist? I have posted to the RT list have not yet received any response and given roots in mysql and DBI, I thought this would be appropriate
>
>Thanks in advance,
>
>Peter Musolino
>D.B. Zwirn (UK) Ltd.
>peter.musolino a t dbzco.com
>
>
>
>
>
>This e-mail message is intended only for the named recipient(s) above. It may contain confidential information. If you are not the intended recipient, you are hereby noti
>fied that any use, dissemination, distribution or copying of this e-mail and any attachment(s) is strictly prohibited. D.B. Zwirn & Co., L.P. reserves the right to archive
> and monitor all e-mail communications through its networks. If you have received this e-mail in error, please immediately notify the sender by replying to this e-mail and
> delete the message and any attachment(s) from your system. Thank you.
>
>
>
--
Patrick Galbraith, Senior Programmer
Grazr - Easy feed grazing and sharing
http://www.grazr.com
Satyam Eva Jayate - Truth Alone Triumphs
Mundaka Upanishad
--
MySQL Perl Mailing List
For list archives: http://lists.mysql.com/perl
To unsubscribe: http://lists.mysql.com/[email protected]