1
0
mirror of https://github.com/MariaDB/server.git synced 2025-09-02 09:41:40 +03:00
Commit Graph

387 Commits

Author SHA1 Message Date
stewart@mysql.com[stewart]
e8121e50e8 [PATCH] WL#3704 mgmapi timeouts: Return sane errors for timeout in mgmapi
In ndb_mgm_call, add checks for expired timeout in (Input|Output)Stream.
In case of timeout, we set NdbMgmHandle->last_error and return NULL.

In api calls not using ndb_mgm_call (or using it in conjunction with
own IO), they'll need to check for timeouts manually. Macros are provided
to do this.

Add ndb_mgm_disconnect_quiet(h) to disconnect without checking errors
(so we don't clobber NdbMgmHandle->last_error). This helps us provide
the *consistent* semantic that on timeout we leave the NdbMgmHandle
*disconnected*. We check for this in testMgm.

Change CHECK_REPLY in mgmapi to also check for set error in handle->last_error
This will pick up the ETIMEDOUT errors and return them to client (through
returning correct failure code for API call and setting NdbMgmHandle error).
Applications written to MGMAPI before this patch will behave as before,
and even hopefully check get_last_error and report the error back to the
end user!

Adding the last CHECK_TIMEDOUT_RET and delete in ndb_mgm_call() we
slightly change behaviour of mgmapi. Previously, if disconnect
midway through a reply, where there were only optional parameters left,
we'd get a Properties object from ndb_mgm_call() containing NULLs for
the optional parameters, leading to interesting error messages. This
enables the returning of the *real* message and actually improves the API
without breaking compatibility.

ndb_mgm_start_signallog
ndb_mgm_stop_signallog
ndb_mgm_log_signals
ndb_mgm_set_trace
ndb_mgm_insert_error
ndb_mgm_set_int64_parameter [1]
ndb_mgm_set_string_parameter [1]
ndb_mgm_purge_stale_sessions [2]
 - return error code on error during ndb_mgm_call

TODO:
ndb_mgm_report_event [2]

[1] marked for removal, unused.
[2] return codes incorrect in CHECK_HANDLE/CONNECTED. undocumented.


Server side:
 in Services (per session) add macro for injecting timeout error
 (just waiting 10 seconds before continuing... it does work!)

 We inject these errors in a number of critical places - including
 the tricky api functions that don't just use ndb_mgm_call but do
 their own thing (get_config, get_status and friends)

ATRT:
 Expand testMgm to add timout tests for API. Fully automated.
 *THEORETICALLY* timing dependent - an ultra-slow network will
 cause problems and "fake" failures... I welcome other solutions.

 Tests aren't exhaustive, but cover the generics and the tricky bits.
 Also test some calling semantics (incl disconnected on error).

 It is encouraged to add *more* mgmapi tests, not less :)

InputStream:
  Fix where timedout error is set


Index: ndb-work/storage/ndb/src/mgmapi/mgmapi.cpp
===================================================================
2007-03-22 22:33:56 +11:00
stewart@mysql.com[stewart]
64361ee36f [PATCH] WL#3704 mgmapi timeouts: Add bool timeout flag to Streams
Index: ndb-work/storage/ndb/include/util/InputStream.hpp
===================================================================
2007-03-22 22:33:43 +11:00
stewart@mysql.com[stewart]
36888199ac [PATCH] WL#3704 mgmapi timeouts: add ndb_mgm_set_timeout(h,ms)
Add not so neat set_timeout call to make testMgm work

Index: ndb-work/storage/ndb/include/mgmapi/mgmapi.h
===================================================================
2007-03-22 22:33:19 +11:00
stewart@mysql.com[stewart]
395a24409d [PATCH] WL#3704 mgmapi timeouts: Add ndb_mgmd error injection
Add error injection either for this connection or for whole server.

Currently nothing for injecting errors into *another* connection... but that's
perhaps getting tricky-dicky for this point in time. Perhaps needed for events
if we don't do anything fancy.

Index: ndb-work/storage/ndb/src/mgmsrv/MgmtSrvr.cpp
===================================================================
2007-03-22 22:33:07 +11:00
jonas@perch.ndb.mysql.com
05a8790f0b Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.1-new-ndb
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-03-22 11:23:47 +01:00
jonas@perch.ndb.mysql.com
4a1c8d296b Merge perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-03-22 11:21:26 +01:00
jonas@perch.ndb.mysql.com
155e3d1139 ndb -
fix testprg
2007-03-22 11:20:38 +01:00
jonas@perch.ndb.mysql.com
0e1974d2bf ndb - fix test prg 2007-03-22 11:17:57 +01:00
pekka@clam.(none)
2082a9e35b Merge clam.ndb.mysql.com:/export/space/pekka/ndb/version/my50-bug24028
into  clam.ndb.mysql.com:/export/space/pekka/ndb/version/my51-bug24028
2007-03-22 07:40:04 +01:00
tsmith@quadxeon.mysql.com
54e7bc8daa Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1
into  quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/51
2007-03-22 01:04:39 +01:00
jonas@perch.ndb.mysql.com
8c3751209c Merge perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-03-20 16:36:31 +01:00
jonas@perch.ndb.mysql.com
42b3e0a5af Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into  perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
2007-03-20 16:32:11 +01:00
kostja@bodhi.local
bdb10baec1 Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into  bodhi.local:/opt/local/work/mysql-5.1-runtime
2007-03-20 00:42:11 +03:00
jonas@perch.ndb.mysql.com
229ee6d4f1 Merge perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-03-19 14:55:13 +01:00
jonas@perch.ndb.mysql.com
886e11736b ndb - test_event
Fix compile error with gcc4
2007-03-19 14:51:17 +01:00
jonas@perch.ndb.mysql.com
6856693904 Merge perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-03-19 12:39:03 +01:00
jonas@perch.ndb.mysql.com
09e403aa9e ndb - bug#20185
Fix race in testprg...causing random TC crashes
2007-03-19 12:31:23 +01:00
jonas@perch.ndb.mysql.com
582312fd34 Merge perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-03-19 11:15:05 +01:00
jonas@perch.ndb.mysql.com
bdb70f7b43 ndb - autotest
increase some timeouts...
2007-03-19 11:13:10 +01:00
kostja@bodhi.local
7d84ef0e11 Bug#26765 "typo when running mysql-test-run"
Fix a typo (togheter -> together)
2007-03-15 23:17:44 +03:00
jonas@perch.ndb.mysql.com
85220e3940 Merge perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-03-15 13:37:04 +01:00
jonas@perch.ndb.mysql.com
1bf8202fce ndb - bug#27169
Fix bug in SUMA::resend_bucket which could cause mysqld to crash
2007-03-15 13:30:42 +01:00
jonas@perch.ndb.mysql.com
f8483eccc3 Merge perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-03-15 11:06:57 +01:00
jonas@perch.ndb.mysql.com
1c203fcc04 Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into  perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
2007-03-15 11:06:01 +01:00
jonas@perch.ndb.mysql.com
14de245543 Merge perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-03-15 07:16:44 +01:00
jonas@perch.ndb.mysql.com
1fa2a64778 ndb -
fix test_event -n EventOperationApplier
2007-03-15 07:08:15 +01:00
jonas@perch.ndb.mysql.com
a7714519a7 Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.1-new-ndb
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-03-14 15:41:24 +01:00
jonas@perch.ndb.mysql.com
72bd367013 Merge perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-03-14 15:40:06 +01:00
jonas@perch.ndb.mysql.com
3b21f00f87 ndb - bug#27005
Handle API failure during resend
    API failure could cause release of table object, which will make resend crash
      when dereferencing table object
      
    Solution, use table_id+hash+schemaversion instead of *raw* pointer in resend
2007-03-14 15:37:47 +01:00
kent@kent-amd64.(none)
ac91a4a89f Merge mysql.com:/home/kent/bk/tmp/mysql-5.0-build
into  mysql.com:/home/kent/bk/tmp/mysql-5.1-build
2007-03-14 14:37:50 +01:00
Justin.He/justin.he@dev3-240.dev.cn.tlan
9b77ac20a5 Merge jhe@bk-internal.mysql.com:/home/bk/mysql-5.1-new-ndb
into  dev3-240.dev.cn.tlan:/home/justin.he/mysql/mysql-5.1/mysql-5.1-new-ndb-bj.merge
2007-03-14 10:16:24 +08:00
jonas@perch.ndb.mysql.com
023ce289b6 Merge perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-03-13 13:56:51 +01:00
jonas@perch.ndb.mysql.com
4a27e9adb9 ndb - bug#27003
merge to 5.1, adopt testprg to optimized node recovery
2007-03-13 12:38:47 +01:00
jonas@perch.ndb.mysql.com
620731060f Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into  perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
2007-03-13 12:07:33 +01:00
Justin.He/justin.he@dev3-240.dev.cn.tlan
8b049838bf Merge dev3-240.dev.cn.tlan:/home/justin.he/mysql/mysql-5.1/mysql-5.1-new-ndb.test
into  dev3-240.dev.cn.tlan:/home/justin.he/mysql/mysql-5.1/mysql-5.1-new-ndb-bj.test
2007-03-13 18:18:17 +08:00
knielsen@ymer.(none)
4fe26832e4 Merge ymer.(none):/usr/local/mysql/mysql-5.0-ndb
into  ymer.(none):/usr/local/mysql/mysql-5.1-new-ndb
2007-03-12 08:42:59 +01:00
Justin.He/justin.he@dev3-240.dev.cn.tlan
2248cd3d3e bug#24568, NdbScanFilter NAND/NOR operations sometimes do not work as expected
when merge from 5.0 to 5.1, update a function call in testScanFilter.cpp 
beacuase the function's definition is changed from 5.0 to 5.1
2007-03-02 11:03:16 +08:00
Justin.He/justin.he@dev3-240.dev.cn.tlan
e1a90408db bug#24568, NdbScanFilter NAND/NOR operations sometimes do not work as expected,
add a new file in 5.0 and rename it in 5.1 because the directory of ndb is changed from 5.0 to 5.1
2007-03-02 09:41:47 +08:00
Justin.He/justin.he@dev3-240.dev.cn.tlan
2dc3fbf925 Merge dev3-240.dev.cn.tlan:/home/justin.he/mysql/mysql-5.0/bug24568-5.0-ndb-bj
into  dev3-240.dev.cn.tlan:/home/justin.he/mysql/mysql-5.1/bug24568-5.1-new-ndb-bj
2007-03-01 17:43:14 +08:00
jonas@perch.ndb.mysql.com
e8cd384de5 Merge perch.ndb.mysql.com:/home/jonas/src/51-work
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-02-21 18:06:06 +01:00
jonas@eel.(none)
53fe7d831c Merge localhost:/home/jonas/src/51-work
into  eel.(none):/home/jonas/src/51-work
2007-02-21 16:44:39 +01:00
jonas@eel.(none)
5059ce2143 ndb -
write testcase for bug#26450...
  no solution however...
2007-02-20 20:33:53 +01:00
jonas@perch.ndb.mysql.com
5d37bbee56 Merge perch.ndb.mysql.com:/home/jonas/src/51-work
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-02-20 01:00:18 +01:00
jonas@perch.ndb.mysql.com
1d99e609ed Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into  perch.ndb.mysql.com:/home/jonas/src/51-work
2007-02-20 00:58:25 +01:00
jonas@perch.ndb.mysql.com
9bc3503489 Merge perch.ndb.mysql.com:/home/jonas/src/51-work
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-02-19 22:56:15 +01:00
jonas@perch.ndb.mysql.com
f2e2e7a6e7 Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into  perch.ndb.mysql.com:/home/jonas/src/51-work
2007-02-19 22:53:17 +01:00
jonas@perch.ndb.mysql.com
6c54eccda2 Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into  perch.ndb.mysql.com:/home/jonas/src/51-telco-gca
2007-02-19 21:19:21 +01:00
jonas@perch.ndb.mysql.com
20c8b292e7 Merge perch.ndb.mysql.com:/home/jonas/src/51-work
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-02-19 20:34:48 +01:00
jonas@perch.ndb.mysql.com
1cfd066e90 Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into  perch.ndb.mysql.com:/home/jonas/src/51-work
2007-02-19 20:21:28 +01:00
jonas@perch.ndb.mysql.com
44fa3eaaf6 Merge perch.ndb.mysql.com:/home/jonas/src/51-work
into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb
2007-02-18 00:23:08 +01:00