- 17 Mar, 2008 4 commits
-
-
davi@buzz.(none) authored
into buzz.(none):/home/davi/mysql-5.1-runtime
-
davi@mysql.com/endora.local authored
-
anozdrin/alik@quad. authored
The problem was in a test case for Bug33507: - when the number of active connections reaches the limit, the server accepts only root connections. That's achieved by accepting a connection, negotiating with the client and checking user credentials. If it is not SUPER, the connection is dropped. - when the server accepts connection, it increases the counter; - when the server drops connection, it decreases the counter; - the race was in between of decreasing the counter and accepting new connection: - max_user_connections = 2; - 2 oridinary user connections accepted; - extra user connection is establishing; - server checked user credentials, and sent 'Too many connections' error; - the client receives the error and establishes extra SUPER user connection; - the server however didn't decrease the counter (the extra user connection still is "alive" in the server) -- so, the new SUPER-user connection, will be dropped, because it exceeds (max_user_connections + 1). The fix is to implement "safe connect", which makes several attempts to connect and use it in the test script.
-
anozdrin/alik@quad. authored
The problem was that 'connect' command didn't set mysql_errno variable, thus the script was unable to determine whether connection was opened or not. The fix is to set this variable. Test cases will be added in the scope of Bug33507 into connect.test file.
-
- 14 Mar, 2008 2 commits
-
-
davi@mysql.com/endora.local authored
The problem was that the COM_STMT_SEND_LONG_DATA was sending a response packet if the prepared statement wasn't found in the server (due to reconnection). The commands COM_STMT_SEND_LONG_DATA and COM_STMT_CLOSE should not send any packets, even error packets should not be sent since they are not expected by the client API. The solution is to clear generated during the execution of the aforementioned commands and to skip resend of prepared statement commands. Another fix is that if the connection breaks during the send of prepared statement command, the command is not sent again since the prepared statement is no longer in the server.
-
anozdrin/alik@quad. authored
in some case. ER_CON_COUNT_ERROR is defined with SQL state 08004. However, this SQL state is not always returned. This error can be thrown in two cases: 1. when an ordinary user (a user w/o SUPER privilege) is connecting, and the number of active user connections is equal or greater than max_connections. 2. when a user is connecting and the number of active user connections is already (max_connections + 1) -- that means that no more connections will be accepted regardless of the user credentials. In the 1-st case, SQL state is correct. The bug happens in the 2-nd case -- on UNIX the client gets 00000 SQL state, which is absolutely wrong (00000 means "not error SQL state); on Windows the client accidentally gets HY000 (which means "unknown SQL state). The cause of the problem is that the server rejects extra connection prior to read a packet with client capabilities. Thus, the server does not know if the client supports SQL states or not (if the client supports 4.1 protocol or not). So, the server supposes the worst and does not send SQL state at all. The difference in behavior on UNIX and Windows occurs because on Windows CLI_MYSQL_REAL_CONNECT() invokes create_shared_memory(), which returns an error (in default configuration, where shared memory is not configured). Then, the client does not reset this error, so when the connection is rejected, SQL state is HY000 (from the error from create_shared_memory()). The bug appeared after test case for Bug#33507 -- before that, this behavior just had not been tested. The fix is to 1) reset the error after create_shared_memory(); 2) set SQL state to 'unknown error' if it was not received from the server. A separate test case is not required, since the behavior is already tested in connect.test. Note for doc-team: the manual should be updated to say that under some circumstances, 'Too many connections' has HY000 SQL state.
-
- 13 Mar, 2008 4 commits
-
-
davi@endora.local authored
into mysql.com:/Users/davi/mysql/mysql-5.1-runtime
-
davi@mysql.com/endora.local authored
The problem is that since MyISAM's concurrent_insert is on by default some concurrent SELECT statements might not see changes made by INSERT statements in other connections, even if the INSERT statement has returned. The solution is to disable concurrent_insert so that INSERT statements returns after the data is actually visible to other statements.
-
anozdrin/alik@quad. authored
into quad.:/mnt/raid/alik/MySQL/devel/bug-35074/5.1-rt-bug35074
-
anozdrin/alik@quad. authored
The problem was that number of threads was used to calculate max_used_connections. The fix is to use number of active connections.
-
- 12 Mar, 2008 6 commits
-
-
anozdrin/alik@quad. authored
-
anozdrin/alik@quad. authored
than max_connections -- which results in user lockout. The problem was that the variable thread_count that contains the number of active threads was interpreted as a number of active connections. The fix is to introduce a new counter for active connections.
-
anozdrin/alik@quad. authored
-
anozdrin/alik@quad. authored
into quad.:/mnt/raid/alik/MySQL/devel/5.1-rt-merged
-
anozdrin/alik@quad. authored
In cases when TRUNCATE was executed by invoking mysql_delete() rather than by table recreation (for example, when TRUNCATE was issued on InnoDB table with is referenced by foreign key) triggers were invoked. In debug builds this also led to crash because of an assertion, which assumes that some preliminary actions take place before trigger invocation, which doesn't happen in case of TRUNCATE. The fix is not to execute triggers in mysql_delete() when this function is used by TRUNCATE.
-
anozdrin/alik@quad. authored
into quad.:/mnt/raid/alik/MySQL/devel/5.1-rt
-
- 10 Mar, 2008 1 commit
-
-
thek@adventure.(none) authored
into adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
-
- 06 Mar, 2008 2 commits
-
-
davi@mysql.com/endora.local authored
Disable test case for bug 29948, which is causing sporadically failures in other tests inside mysql_client_test.
-
thek@adventure.(none) authored
The initial value of free memory blocks in 0. When the query cache is enabled a new memory block gets allocated and is assigned number 1. The free memory block is later split each time query cache memory is allocated for new blocks. This means that the free memory block counter won't be reduced to zero when the number of allocated blocks are zero, but rather one. To avoid confusion this patch changes this behavior so that the free memory block counter is reset to zero when the query cache is disabled. Note that when the query cache is enabled and resized the free memory block counter was still calculated correctly.
-
- 05 Mar, 2008 1 commit
-
-
andrey@whirlpool.hristov.com authored
-
- 04 Mar, 2008 5 commits
-
-
davi@endora.local authored
into mysql.com:/Users/davi/mysql/mysql-5.1-runtime
-
davi@mysql.com/endora.local authored
-
davi@endora.local authored
into mysql.com:/Users/davi/mysql/mysql-5.1-runtime
-
davi@endora.local authored
into mysql.com:/Users/davi/mysql/mysql-5.1-runtime
-
davi@mysql.com/endora.local authored
It's impossible to determine which test inside mysql_client_test failed if the log file is overwritten by mysqltest when dumping the test case results. Redirect mysql_client_test output to a separate file.
-
- 03 Mar, 2008 1 commit
-
-
anozdrin/alik@quad. authored
into quad.:/mnt/raid/alik/MySQL/devel/5.1-rt
-
- 29 Feb, 2008 2 commits
-
-
davi@endora.local authored
into mysql.com:/Users/davi/mysql/mysql-5.1-runtime
-
anozdrin/alik@quad. authored
READ_ONLY token was accidentally placed into wrong place ('ident' rule). The proper place is in the 'keyword_sp' rule. The manual should be re-generated after this patch, because the manual depends on the 'keyword_sp' rule.
-
- 28 Feb, 2008 6 commits
-
-
davi@buzz.(none) authored
into buzz.(none):/home/davi/mysql-5.1-runtime
-
davi@mysql.com/endora.local authored
must match the order which they were declared in the class definition.
-
davi@mysql.com/endora.local authored
Rename client_last_error to last_error and client_last_errno to last_errno to not break connectors which use the internal net structure for error handling.
-
davi@mysql.com/endora.local authored
The problem is that passing anything other than a integer to a limit clause in a prepared statement would fail. This limitation was introduced to avoid replication problems (e.g: replicating the statement with a string argument would cause a parse failure in the slave). The solution is to convert arguments to the limit clause to a integer value and use this converted value when persisting the query to the log.
-
anozdrin/alik@quad. authored
sporadically.
-
anozdrin/alik@quad. authored
(show_check.test fails sporadically). Fix test case for Bug#12183 to make it stable.
-
- 27 Feb, 2008 6 commits
-
-
davi@endora.local authored
into mysql.com:/Users/davi/mysql/mysql-5.1-runtime
-
davi@mysql.com/endora.local authored
to reach the desired value.
-
anozdrin/alik@quad. authored
into quad.:/mnt/raid/alik/MySQL/devel/5.1-rt-build
-
anozdrin/alik@quad. authored
-
anozdrin/alik@quad. authored
-
davi@mysql.com/endora.local authored
Disable the test case.
-