From 4c3abf617a377de0ba74d96edc3d66949e34b066 Mon Sep 17 00:00:00 2001 From: "jonas@perch.ndb.mysql.com" <> Date: Tue, 25 Apr 2006 16:30:44 +0200 Subject: [PATCH 1/5] ndb - Fix so that testDict can use/handle disk tables --- storage/ndb/test/ndbapi/testDict.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/storage/ndb/test/ndbapi/testDict.cpp b/storage/ndb/test/ndbapi/testDict.cpp index 0176db8d4fd..7ade359342d 100644 --- a/storage/ndb/test/ndbapi/testDict.cpp +++ b/storage/ndb/test/ndbapi/testDict.cpp @@ -109,7 +109,7 @@ int runCreateTheTable(NDBT_Context* ctx, NDBT_Step* step){ const NdbDictionary::Table* pTab = ctx->getTab(); // Try to create table in db - if (pTab->createTableInDb(pNdb) != 0){ + if (NDBT_Tables::createTable(pNdb, pTab->getName()) != 0){ return NDBT_FAILED; } @@ -151,7 +151,7 @@ int runCreateTableWhenDbIsFull(NDBT_Context* ctx, NDBT_Step* step){ } // Try to create table in db - if (pTab->createTableInDb(pNdb) == 0){ + if (NDBT_Tables::createTable(pNdb, pTab->getName()) == 0){ result = NDBT_FAILED; } @@ -203,7 +203,7 @@ int runCreateAndDrop(NDBT_Context* ctx, NDBT_Step* step){ ndbout << i << ": "; // Try to create table in db - if (pTab->createTableInDb(pNdb) != 0){ + if (NDBT_Tables::createTable(pNdb, pTab->getName()) != 0){ return NDBT_FAILED; } @@ -254,7 +254,8 @@ int runCreateAndDropWithData(NDBT_Context* ctx, NDBT_Step* step){ while (i < loops){ ndbout << i << ": "; // Try to create table in db - if (pTab->createTableInDb(pNdb) != 0){ + + if (NDBT_Tables::createTable(pNdb, pTab->getName()) != 0){ return NDBT_FAILED; } @@ -336,7 +337,7 @@ int runCreateAndDropDuring(NDBT_Context* ctx, NDBT_Step* step){ Ndb* pNdb = GETNDB(step); g_debug << "Creating table" << endl; - if (pTab->createTableInDb(pNdb) != 0){ + if (NDBT_Tables::createTable(pNdb, pTab->getName()) != 0){ g_err << "createTableInDb failed" << endl; result = NDBT_FAILED; continue; @@ -357,7 +358,6 @@ int runCreateAndDropDuring(NDBT_Context* ctx, NDBT_Step* step){ g_debug << "Dropping table" << endl; - if (pNdb->getDictionary()->dropTable(pTab2->getName()) != 0){ g_err << "Failed to drop "<getName()<<" in db" << endl; result = NDBT_FAILED; From 93a21814c007309d22b3ad1ffceb9e51992d8305 Mon Sep 17 00:00:00 2001 From: "jonas@perch.ndb.mysql.com" <> Date: Wed, 26 Apr 2006 14:53:43 +0200 Subject: [PATCH 2/5] ndb - bug#17150 ndb_mgmd limited no of api nodes, by restricting no of mgmsessions (these are used for dynamic port allocation) --- ndb/include/util/SocketServer.hpp | 2 +- ndb/src/common/util/SocketServer.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ndb/include/util/SocketServer.hpp b/ndb/include/util/SocketServer.hpp index ee2dd31c41f..02a0a6b5d92 100644 --- a/ndb/include/util/SocketServer.hpp +++ b/ndb/include/util/SocketServer.hpp @@ -74,7 +74,7 @@ public: /** * Constructor / Destructor */ - SocketServer(int maxSessions = 32); + SocketServer(unsigned maxSessions = ~(unsigned)0); ~SocketServer(); /** diff --git a/ndb/src/common/util/SocketServer.cpp b/ndb/src/common/util/SocketServer.cpp index db5c03f925a..755764c7700 100644 --- a/ndb/src/common/util/SocketServer.cpp +++ b/ndb/src/common/util/SocketServer.cpp @@ -27,7 +27,7 @@ #define DEBUG(x) ndbout << x << endl; -SocketServer::SocketServer(int maxSessions) : +SocketServer::SocketServer(unsigned maxSessions) : m_sessions(10), m_services(5) { @@ -124,7 +124,7 @@ SocketServer::setup(SocketServer::Service * service, DBUG_RETURN(false); } - if (listen(sock, m_maxSessions) == -1){ + if (listen(sock, m_maxSessions > 32 ? 32 : m_maxSessions) == -1){ DBUG_PRINT("error",("listen() - %d - %s", errno, strerror(errno))); NDB_CLOSE_SOCKET(sock); From a8f407a7ef471a48e110c04acb4419d0ae5ca49a Mon Sep 17 00:00:00 2001 From: "jonas@perch.ndb.mysql.com" <> Date: Wed, 26 Apr 2006 14:54:20 +0200 Subject: [PATCH 3/5] Add ndb_config to rpm spec --- support-files/mysql.spec.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index b161ec13073..08aba7e2231 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -630,6 +630,7 @@ fi %attr(755, root, root) %{_bindir}/ndb_desc %attr(755, root, root) %{_bindir}/ndb_show_tables %attr(755, root, root) %{_bindir}/ndb_test_platform +%attr(755, root, root) %{_bindir}/ndb_config %files ndb-extra %defattr(-,root,root,0755) From 011061580b7769f768c47d432fbfb0125ae421d7 Mon Sep 17 00:00:00 2001 From: "jonas@perch.ndb.mysql.com" <> Date: Wed, 26 Apr 2006 15:12:32 +0200 Subject: [PATCH 4/5] ndb - backport from 5.1 Fix alignment of sockaddr(_in) --- ndb/src/common/transporter/Transporter.cpp | 12 ++++++------ ndb/src/mgmsrv/Services.cpp | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ndb/src/common/transporter/Transporter.cpp b/ndb/src/common/transporter/Transporter.cpp index 328ce2816de..902dfea9c8e 100644 --- a/ndb/src/common/transporter/Transporter.cpp +++ b/ndb/src/common/transporter/Transporter.cpp @@ -100,10 +100,10 @@ Transporter::connect_server(NDB_SOCKET_TYPE sockfd) { } { - struct sockaddr addr; + struct sockaddr_in addr; SOCKET_SIZE_TYPE addrlen= sizeof(addr); - int r= getpeername(sockfd, &addr, &addrlen); - m_connect_address= ((struct sockaddr_in *)&addr)->sin_addr; + int r= getpeername(sockfd, (struct sockaddr*)&addr, &addrlen); + m_connect_address= (&addr)->sin_addr; } bool res = connect_server_impl(sockfd); @@ -173,10 +173,10 @@ Transporter::connect_client() { } { - struct sockaddr addr; + struct sockaddr_in addr; SOCKET_SIZE_TYPE addrlen= sizeof(addr); - int r= getpeername(sockfd, &addr, &addrlen); - m_connect_address= ((struct sockaddr_in *)&addr)->sin_addr; + int r= getpeername(sockfd, (struct sockaddr*)&addr, &addrlen); + m_connect_address= (&addr)->sin_addr; } bool res = connect_client_impl(sockfd); diff --git a/ndb/src/mgmsrv/Services.cpp b/ndb/src/mgmsrv/Services.cpp index 1a5b0592066..0ce89aacefc 100644 --- a/ndb/src/mgmsrv/Services.cpp +++ b/ndb/src/mgmsrv/Services.cpp @@ -427,9 +427,9 @@ MgmApiSession::get_nodeid(Parser_t::Context &, return; } - struct sockaddr addr; + struct sockaddr_in addr; SOCKET_SIZE_TYPE addrlen= sizeof(addr); - int r = getpeername(m_socket, &addr, &addrlen); + int r = getpeername(m_socket, (struct sockaddr*)&addr, &addrlen); if (r != 0 ) { m_output->println(cmd); m_output->println("result: getpeername(%d) failed, err= %d", m_socket, r); @@ -441,7 +441,7 @@ MgmApiSession::get_nodeid(Parser_t::Context &, if(tmp == 0 || !m_allocated_resources->is_reserved(tmp)){ BaseString error_string; if (!m_mgmsrv.alloc_node_id(&tmp, (enum ndb_mgm_node_type)nodetype, - &addr, &addrlen, error_string)){ + (struct sockaddr*)&addr, &addrlen, error_string)){ const char *alias; const char *str; alias= ndb_mgm_get_node_type_alias_string((enum ndb_mgm_node_type) From 7641844f9fb6ace96f48f8465955306bee594de2 Mon Sep 17 00:00:00 2001 From: "jonas@perch.ndb.mysql.com" <> Date: Wed, 26 Apr 2006 15:15:30 +0200 Subject: [PATCH 5/5] ndb dd - fix dirty page handling during opt.nr --- storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp index 0000796d7b2..b4e79729399 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp @@ -3130,6 +3130,7 @@ Dbtup::nr_delete(Signal* signal, Uint32 senderData, } PagePtr disk_page = *(PagePtr*)&m_pgman.m_ptr; + disk_page_set_dirty(disk_page); preq.m_callback.m_callbackFunction = safe_cast(&Dbtup::nr_delete_logbuffer_callback); @@ -3164,7 +3165,7 @@ Dbtup::nr_delete_page_callback(Signal* signal, Ptr gpage; m_global_page_pool.getPtr(gpage, page_id); PagePtr pagePtr= *(PagePtr*)&gpage; - + disk_page_set_dirty(pagePtr); Dblqh::Nr_op_info op; op.m_ptr_i = userpointer; op.m_disk_ref.m_page_no = pagePtr.p->m_page_no;