Annotation of embedaddon/php/ext/mysql/tests/mysql_pconn_kill.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: mysql_pconnect() - killing persitent connection
3: --SKIPIF--
4: <?php
5: require_once('skipif.inc');
6: require_once('skipifconnectfailure.inc');
7: ?>
8: --INI--
9: mysql.allow_persistent=1
10: mysql.max_persistent=2
11: --FILE--
12: <?php
13: include "connect.inc";
14: include "table.inc";
15:
16: if ($socket)
17: $myhost = sprintf("%s:%s", $host, $socket);
18: else if ($port)
19: $myhost = sprintf("%s:%s", $host, $port);
20: else
21: $myhost = $host;
22:
23: if (!($plink = mysql_pconnect($myhost, $user, $passwd)))
24: printf("[001] Cannot connect to the server using host=%s/%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
25: $host, $myhost, $user, $db, $port, $socket);
26: mysql_select_db($db, $plink);
27:
28: $pthread_id = mysql_thread_id($plink);
29: $thread_id = mysql_thread_id($link);
30:
31: if (!($res = mysql_query("SHOW FULL PROCESSLIST", $link)))
32: printf("[002] Cannot get processlist, [%d] %s\n", mysql_errno($link), mysql_error($link));
33:
34: $processlist = array();
35: while ($row = mysql_fetch_assoc($res))
36: $processlist[$row['Id']] = $row;
37: mysql_free_result($res);
38:
39: if (!isset($processlist[$thread_id]))
40: printf("[003] Cannot find regular connection thread in process list, [%d] %s\n", mysql_errno($link), mysql_error($link));
41: if (!isset($processlist[$pthread_id]))
42: printf("[004] Cannot find persistent connection thread in process list, [%d] %s\n", mysql_errno($link), mysql_error($link));
43:
44: if (!mysql_query(sprintf("KILL %d", $pthread_id), $link))
45: printf("[005] Cannot kill persistent connection thread, [%d] %s\n", mysql_errno($link), mysql_error($link));
46:
47: while (1) {
48: if (!($res = mysql_query("SHOW FULL PROCESSLIST", $link)))
49: printf("[006] Cannot get processlist, [%d] %s\n", mysql_errno($link), mysql_error($link));
50:
51: $processlist2 = array();
52: while ($row = mysql_fetch_assoc($res))
53: $processlist2[$row['Id']] = $row;
54: mysql_free_result($res);
55: if (isset($processlist2[$pthread_id])) {
56: sleep(1);
57: } else {
58: break;
59: }
60: }
61:
62: if (!isset($processlist2[$thread_id]))
63: printf("[007] Cannot find regular connection thread in process list, [%d] %s\n", mysql_errno($link), mysql_error($link));
64:
65: mysql_close($plink);
66:
67: /* mysql_pconnect cound generate a warning when linked against mysqlnd
68: PHP Warning: mysql_pconnect(): MySQL server has gone away */
69: if (!($plink = @mysql_pconnect($myhost, $user, $passwd)))
70: printf("[009] Cannot create new persistent connection, [%d] %s\n", mysql_errno(), mysql_error());
71: mysql_select_db($db, $plink);
72:
73: if (!($res = mysql_query("SELECT 1", $plink)))
74: printf("[010] Cannot run query on new persistent connection, [%d] %s\n", @mysql_errno($plink), @mysql_error($plink));
75: mysql_free_result($res);
76:
77: var_dump(mysql_ping($plink));
78:
79: if (!($res = mysql_query("SELECT 1", $plink)))
80: printf("[011] Cannot run query on new persistent connection, [%d] %s\n", @mysql_errno($plink), @mysql_error($plink));
81: mysql_free_result($res);
82:
83: if (!($link2 = mysql_connect($myhost, $user, $passwd, true)))
84: printf("[012] Cannot connect to the server using host=%s/%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
85: $host, $myhost, $user, $db, $port, $socket);
86: mysql_select_db($db, $link2);
87: if (!mysql_query(sprintf("KILL %d", $thread_id), $link2))
88: printf("[013] Cannot kill regular connection thread, [%d] %s\n", mysql_errno($link2), mysql_error($link2));
89:
90: if (!($link = mysql_connect($myhost, $user, $passwd, true)))
91: printf("[014] Cannot connect to the server using host=%s/%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
92: $host, $myhost, $user, $db, $port, $socket);
93: mysql_select_db($db, $link);
94: if (!($res = mysql_query("SELECT * FROM test", $link)))
95: printf("[015] Cannot run query on new regular connection, [%d] %s\n", @mysql_errno($link), @mysql_error($link));
96:
97: if (!($res = mysql_query("SELECT * FROM test", $link2)))
98: printf("[016] Cannot run query on other regular connection, [%d] %s\n", @mysql_errno($link2), @mysql_error($link2));
99:
100: mysql_free_result($res);
101: mysql_close($plink);
102: mysql_close($link);
103: mysql_close($link2);
104: print "done!";
105: ?>
106: --CLEAN--
107: <?php
108: require_once("clean_table.inc");
109: ?>
110: --EXPECTF--
111: bool(true)
112: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>