Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
d5d360b1
Commit
d5d360b1
authored
Sep 05, 2005
by
tulin@dl145b.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added --core-file option to ndb executables
added parseable printout in ndb_restore
parent
7573d043
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
114 additions
and
70 deletions
+114
-70
ndb/include/util/ndb_opts.h
ndb/include/util/ndb_opts.h
+11
-1
ndb/src/kernel/vm/Emulator.cpp
ndb/src/kernel/vm/Emulator.cpp
+23
-17
ndb/src/mgmsrv/ConfigInfo.cpp
ndb/src/mgmsrv/ConfigInfo.cpp
+8
-8
ndb/src/mgmsrv/MgmtSrvr.cpp
ndb/src/mgmsrv/MgmtSrvr.cpp
+23
-11
ndb/src/mgmsrv/Services.cpp
ndb/src/mgmsrv/Services.cpp
+0
-2
ndb/tools/Makefile.am
ndb/tools/Makefile.am
+1
-1
ndb/tools/ndb_config.cpp
ndb/tools/ndb_config.cpp
+1
-0
ndb/tools/restore/consumer_restore.cpp
ndb/tools/restore/consumer_restore.cpp
+18
-11
ndb/tools/restore/restore_main.cpp
ndb/tools/restore/restore_main.cpp
+29
-19
No files found.
ndb/include/util/ndb_opts.h
View file @
d5d360b1
...
@@ -30,8 +30,14 @@ my_bool opt_ndb_optimized_node_selection
...
@@ -30,8 +30,14 @@ my_bool opt_ndb_optimized_node_selection
bool
opt_endinfo
=
0
;
bool
opt_endinfo
=
0
;
my_bool
opt_ndb_shm
;
my_bool
opt_ndb_shm
;
my_bool
opt_core
;
#define OPT_NDB_CONNECTSTRING 'c'
#define OPT_NDB_CONNECTSTRING 'c'
#if defined VM_TRACE && ( ! ( defined NDB_OSE || defined NDB_SOFTOSE) )
#define OPT_WANT_CORE_DEFAULT 1
#else
#define OPT_WANT_CORE_DEFAULT 0
#endif
#define NDB_STD_OPTS_COMMON \
#define NDB_STD_OPTS_COMMON \
{ "usage", '?', "Display this help and exit.", \
{ "usage", '?', "Display this help and exit.", \
...
@@ -57,7 +63,10 @@ my_bool opt_ndb_shm;
...
@@ -57,7 +63,10 @@ my_bool opt_ndb_shm;
GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0},\
GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0},\
{ "connect-string", OPT_NDB_CONNECTSTRING, "same as --ndb-connectstring",\
{ "connect-string", OPT_NDB_CONNECTSTRING, "same as --ndb-connectstring",\
(gptr*) &opt_connect_str, (gptr*) &opt_connect_str, 0,\
(gptr*) &opt_connect_str, (gptr*) &opt_connect_str, 0,\
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 }
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },\
{ "core-file", OPT_WANT_CORE, "Write core on errors.",\
(gptr*) &opt_core, (gptr*) &opt_core, 0,\
GET_BOOL, NO_ARG, OPT_WANT_CORE_DEFAULT, 0, 0, 0, 0, 0}
#ifndef DBUG_OFF
#ifndef DBUG_OFF
#define NDB_STD_OPTS(prog_name) \
#define NDB_STD_OPTS(prog_name) \
...
@@ -80,6 +89,7 @@ enum ndb_std_options {
...
@@ -80,6 +89,7 @@ enum ndb_std_options {
OPT_NDB_SHM
=
256
,
OPT_NDB_SHM
=
256
,
OPT_NDB_SHM_SIGNUM
,
OPT_NDB_SHM_SIGNUM
,
OPT_NDB_OPTIMIZED_NODE_SELECTION
,
OPT_NDB_OPTIMIZED_NODE_SELECTION
,
OPT_WANT_CORE
,
NDB_STD_OPTIONS_LAST
/* should always be last in this enum */
NDB_STD_OPTIONS_LAST
/* should always be last in this enum */
};
};
...
...
ndb/src/kernel/vm/Emulator.cpp
View file @
d5d360b1
...
@@ -39,6 +39,7 @@ extern "C" {
...
@@ -39,6 +39,7 @@ extern "C" {
extern
void
(
*
ndb_new_handler
)();
extern
void
(
*
ndb_new_handler
)();
}
}
extern
EventLogger
g_eventLogger
;
extern
EventLogger
g_eventLogger
;
extern
my_bool
opt_core
;
/**
/**
* Declare the global variables
* Declare the global variables
...
@@ -168,23 +169,25 @@ NdbShutdown(NdbShutdownType type,
...
@@ -168,23 +169,25 @@ NdbShutdown(NdbShutdownType type,
}
}
const
char
*
exitAbort
=
0
;
const
char
*
exitAbort
=
0
;
#if defined VM_TRACE && ( ! ( defined NDB_OSE || defined NDB_SOFTOSE)
)
if
(
opt_core
)
exitAbort
=
"aborting"
;
exitAbort
=
"aborting"
;
#
else
else
exitAbort
=
"exiting"
;
exitAbort
=
"exiting"
;
#endif
if
(
type
==
NST_Watchdog
){
if
(
type
==
NST_Watchdog
){
/**
/**
* Very serious, don't attempt to free, just die!!
* Very serious, don't attempt to free, just die!!
*/
*/
g_eventLogger
.
info
(
"Watchdog shutdown completed - %s"
,
exitAbort
);
g_eventLogger
.
info
(
"Watchdog shutdown completed - %s"
,
exitAbort
);
#if defined VM_TRACE && ( ! ( defined NDB_OSE || defined NDB_SOFTOSE) )
if
(
opt_core
)
{
signal
(
6
,
SIG_DFL
);
signal
(
6
,
SIG_DFL
);
abort
();
abort
();
#else
}
else
{
exit
(
-
1
);
exit
(
-
1
);
#endif
}
}
}
#ifndef NDB_WIN32
#ifndef NDB_WIN32
...
@@ -236,12 +239,15 @@ NdbShutdown(NdbShutdownType type,
...
@@ -236,12 +239,15 @@ NdbShutdown(NdbShutdownType type,
if
(
type
==
NST_ErrorHandlerStartup
)
if
(
type
==
NST_ErrorHandlerStartup
)
kill
(
getppid
(),
SIGUSR1
);
kill
(
getppid
(),
SIGUSR1
);
g_eventLogger
.
info
(
"Error handler shutdown completed - %s"
,
exitAbort
);
g_eventLogger
.
info
(
"Error handler shutdown completed - %s"
,
exitAbort
);
#if ( defined VM_TRACE || defined ERROR_INSERT ) && ( ! ( defined NDB_OSE || defined NDB_SOFTOSE) )
if
(
opt_core
)
{
signal
(
6
,
SIG_DFL
);
signal
(
6
,
SIG_DFL
);
abort
();
abort
();
#else
}
else
{
exit
(
-
1
);
exit
(
-
1
);
#endif
}
}
}
/**
/**
...
...
ndb/src/mgmsrv/ConfigInfo.cpp
View file @
d5d360b1
...
@@ -25,6 +25,7 @@
...
@@ -25,6 +25,7 @@
#include <m_string.h>
#include <m_string.h>
extern
my_bool
opt_ndb_shm
;
extern
my_bool
opt_ndb_shm
;
extern
my_bool
opt_core
;
#define MAX_LINE_LENGTH 255
#define MAX_LINE_LENGTH 255
#define KEY_INTERNAL 0
#define KEY_INTERNAL 0
...
@@ -2140,11 +2141,10 @@ static void require(bool v)
...
@@ -2140,11 +2141,10 @@ static void require(bool v)
{
{
if
(
!
v
)
if
(
!
v
)
{
{
#ifndef DBUG_OFF
if
(
opt_core
)
abort
();
abort
();
#
else
else
exit
(
-
1
);
exit
(
-
1
);
#endif
}
}
}
}
...
@@ -2214,7 +2214,7 @@ ConfigInfo::ConfigInfo()
...
@@ -2214,7 +2214,7 @@ ConfigInfo::ConfigInfo()
ndbout
<<
"Error: Parameter "
<<
param
.
_fname
ndbout
<<
"Error: Parameter "
<<
param
.
_fname
<<
" defined twice in section "
<<
param
.
_section
<<
" defined twice in section "
<<
param
.
_section
<<
"."
<<
endl
;
<<
"."
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
}
// Add new pinfo to section
// Add new pinfo to section
...
@@ -2264,7 +2264,7 @@ ConfigInfo::ConfigInfo()
...
@@ -2264,7 +2264,7 @@ ConfigInfo::ConfigInfo()
ndbout
<<
"Check that each entry has a section failed."
<<
endl
;
ndbout
<<
"Check that each entry has a section failed."
<<
endl
;
ndbout
<<
"Parameter
\"
"
<<
m_ParamInfo
[
i
].
_fname
<<
endl
;
ndbout
<<
"Parameter
\"
"
<<
m_ParamInfo
[
i
].
_fname
<<
endl
;
ndbout
<<
"Edit file "
<<
__FILE__
<<
"."
<<
endl
;
ndbout
<<
"Edit file "
<<
__FILE__
<<
"."
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
}
if
(
m_ParamInfo
[
i
].
_type
==
ConfigInfo
::
CI_SECTION
)
if
(
m_ParamInfo
[
i
].
_type
==
ConfigInfo
::
CI_SECTION
)
...
@@ -2277,7 +2277,7 @@ ConfigInfo::ConfigInfo()
...
@@ -2277,7 +2277,7 @@ ConfigInfo::ConfigInfo()
<<
"
\"
does not exist in section
\"
"
<<
"
\"
does not exist in section
\"
"
<<
m_ParamInfo
[
i
].
_section
<<
"
\"
."
<<
endl
;
<<
m_ParamInfo
[
i
].
_section
<<
"
\"
."
<<
endl
;
ndbout
<<
"Edit file "
<<
__FILE__
<<
"."
<<
endl
;
ndbout
<<
"Edit file "
<<
__FILE__
<<
"."
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
}
}
}
}
}
...
...
ndb/src/mgmsrv/MgmtSrvr.cpp
View file @
d5d360b1
...
@@ -65,6 +65,18 @@
...
@@ -65,6 +65,18 @@
extern
int
global_flag_send_heartbeat_now
;
extern
int
global_flag_send_heartbeat_now
;
extern
int
g_no_nodeid_checks
;
extern
int
g_no_nodeid_checks
;
extern
my_bool
opt_core
;
static
void
require
(
bool
v
)
{
if
(
!
v
)
{
if
(
opt_core
)
abort
();
else
exit
(
-
1
);
}
}
void
*
void
*
MgmtSrvr
::
logLevelThread_C
(
void
*
m
)
MgmtSrvr
::
logLevelThread_C
(
void
*
m
)
...
@@ -436,14 +448,14 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
...
@@ -436,14 +448,14 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
if
(
tmp_nodeid
==
0
)
if
(
tmp_nodeid
==
0
)
{
{
ndbout_c
(
m_config_retriever
->
getErrorString
());
ndbout_c
(
m_config_retriever
->
getErrorString
());
exit
(
-
1
);
require
(
false
);
}
}
// read config from other managent server
// read config from other managent server
_config
=
fetchConfig
();
_config
=
fetchConfig
();
if
(
_config
==
0
)
if
(
_config
==
0
)
{
{
ndbout
<<
m_config_retriever
->
getErrorString
()
<<
endl
;
ndbout
<<
m_config_retriever
->
getErrorString
()
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
}
_ownNodeId
=
tmp_nodeid
;
_ownNodeId
=
tmp_nodeid
;
}
}
...
@@ -454,7 +466,7 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
...
@@ -454,7 +466,7 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
_config
=
readConfig
();
_config
=
readConfig
();
if
(
_config
==
0
)
{
if
(
_config
==
0
)
{
ndbout
<<
"Unable to read config file"
<<
endl
;
ndbout
<<
"Unable to read config file"
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
}
}
}
...
@@ -511,7 +523,7 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
...
@@ -511,7 +523,7 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
if
((
m_node_id_mutex
=
NdbMutex_Create
())
==
0
)
if
((
m_node_id_mutex
=
NdbMutex_Create
())
==
0
)
{
{
ndbout
<<
"mutex creation failed line = "
<<
__LINE__
<<
endl
;
ndbout
<<
"mutex creation failed line = "
<<
__LINE__
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
}
if
(
_ownNodeId
==
0
)
// we did not get node id from other server
if
(
_ownNodeId
==
0
)
// we did not get node id from other server
...
@@ -522,7 +534,7 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
...
@@ -522,7 +534,7 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
0
,
0
,
error_string
)){
0
,
0
,
error_string
)){
ndbout
<<
"Unable to obtain requested nodeid: "
ndbout
<<
"Unable to obtain requested nodeid: "
<<
error_string
.
c_str
()
<<
endl
;
<<
error_string
.
c_str
()
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
}
_ownNodeId
=
tmp
;
_ownNodeId
=
tmp
;
}
}
...
@@ -533,7 +545,7 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
...
@@ -533,7 +545,7 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
_ownNodeId
))
_ownNodeId
))
{
{
ndbout
<<
m_config_retriever
->
getErrorString
()
<<
endl
;
ndbout
<<
m_config_retriever
->
getErrorString
()
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
}
}
}
...
@@ -2203,18 +2215,18 @@ MgmtSrvr::alloc_node_id(NodeId * nodeId,
...
@@ -2203,18 +2215,18 @@ MgmtSrvr::alloc_node_id(NodeId * nodeId,
iter
(
*
(
ndb_mgm_configuration
*
)
_config
->
m_configValues
,
CFG_SECTION_NODE
);
iter
(
*
(
ndb_mgm_configuration
*
)
_config
->
m_configValues
,
CFG_SECTION_NODE
);
for
(
iter
.
first
();
iter
.
valid
();
iter
.
next
())
{
for
(
iter
.
first
();
iter
.
valid
();
iter
.
next
())
{
unsigned
tmp
=
0
;
unsigned
tmp
=
0
;
if
(
iter
.
get
(
CFG_NODE_ID
,
&
tmp
))
abort
(
);
if
(
iter
.
get
(
CFG_NODE_ID
,
&
tmp
))
require
(
false
);
if
(
*
nodeId
&&
*
nodeId
!=
tmp
)
if
(
*
nodeId
&&
*
nodeId
!=
tmp
)
continue
;
continue
;
found_matching_id
=
true
;
found_matching_id
=
true
;
if
(
iter
.
get
(
CFG_TYPE_OF_SECTION
,
&
type_c
))
abort
(
);
if
(
iter
.
get
(
CFG_TYPE_OF_SECTION
,
&
type_c
))
require
(
false
);
if
(
type_c
!=
(
unsigned
)
type
)
if
(
type_c
!=
(
unsigned
)
type
)
continue
;
continue
;
found_matching_type
=
true
;
found_matching_type
=
true
;
if
(
connected_nodes
.
get
(
tmp
))
if
(
connected_nodes
.
get
(
tmp
))
continue
;
continue
;
found_free_node
=
true
;
found_free_node
=
true
;
if
(
iter
.
get
(
CFG_NODE_HOST
,
&
config_hostname
))
abort
(
);
if
(
iter
.
get
(
CFG_NODE_HOST
,
&
config_hostname
))
require
(
false
);
if
(
config_hostname
&&
config_hostname
[
0
]
==
0
)
if
(
config_hostname
&&
config_hostname
[
0
]
==
0
)
config_hostname
=
0
;
config_hostname
=
0
;
else
if
(
client_addr
)
{
else
if
(
client_addr
)
{
...
@@ -2561,7 +2573,7 @@ MgmtSrvr::backupCallback(BackupEvent & event)
...
@@ -2561,7 +2573,7 @@ MgmtSrvr::backupCallback(BackupEvent & event)
int
int
MgmtSrvr
::
repCommand
(
Uint32
*
repReqId
,
Uint32
request
,
bool
waitCompleted
)
MgmtSrvr
::
repCommand
(
Uint32
*
repReqId
,
Uint32
request
,
bool
waitCompleted
)
{
{
abort
(
);
require
(
false
);
return
0
;
return
0
;
}
}
...
@@ -2715,7 +2727,7 @@ MgmtSrvr::setDbParameter(int node, int param, const char * value,
...
@@ -2715,7 +2727,7 @@ MgmtSrvr::setDbParameter(int node, int param, const char * value,
ndbout_c
(
"Updating node %d param: %d to %s"
,
node
,
param
,
val_char
);
ndbout_c
(
"Updating node %d param: %d to %s"
,
node
,
param
,
val_char
);
break
;
break
;
default:
default:
abort
(
);
require
(
false
);
}
}
assert
(
res
);
assert
(
res
);
}
while
(
node
==
0
&&
iter
.
next
()
==
0
);
}
while
(
node
==
0
&&
iter
.
next
()
==
0
);
...
...
ndb/src/mgmsrv/Services.cpp
View file @
d5d360b1
...
@@ -343,8 +343,6 @@ MgmApiSession::getConfig_old(Parser_t::Context &ctx) {
...
@@ -343,8 +343,6 @@ MgmApiSession::getConfig_old(Parser_t::Context &ctx) {
}
}
#endif
/* MGM_GET_CONFIG_BACKWARDS_COMPAT */
#endif
/* MGM_GET_CONFIG_BACKWARDS_COMPAT */
inline
void
require
(
bool
b
){
if
(
!
b
)
abort
();
}
void
void
MgmApiSession
::
getConfig
(
Parser_t
::
Context
&
ctx
,
MgmApiSession
::
getConfig
(
Parser_t
::
Context
&
ctx
,
const
class
Properties
&
args
)
{
const
class
Properties
&
args
)
{
...
...
ndb/tools/Makefile.am
View file @
d5d360b1
...
@@ -30,7 +30,7 @@ ndb_restore_SOURCES = restore/restore_main.cpp \
...
@@ -30,7 +30,7 @@ ndb_restore_SOURCES = restore/restore_main.cpp \
restore/consumer.cpp
\
restore/consumer.cpp
\
restore/consumer_restore.cpp
\
restore/consumer_restore.cpp
\
restore/consumer_printer.cpp
\
restore/consumer_printer.cpp
\
restore/Restore.cpp
restore/Restore.cpp
$(tools_common_sources)
ndb_config_SOURCES
=
ndb_config.cpp
\
ndb_config_SOURCES
=
ndb_config.cpp
\
../src/mgmsrv/Config.cpp
\
../src/mgmsrv/Config.cpp
\
...
...
ndb/tools/ndb_config.cpp
View file @
d5d360b1
...
@@ -42,6 +42,7 @@ static const char * g_field_delimiter=",";
...
@@ -42,6 +42,7 @@ static const char * g_field_delimiter=",";
static
const
char
*
g_row_delimiter
=
" "
;
static
const
char
*
g_row_delimiter
=
" "
;
int
g_print_full_config
,
opt_ndb_shm
;
int
g_print_full_config
,
opt_ndb_shm
;
my_bool
opt_core
;
typedef
ndb_mgm_configuration_iterator
Iter
;
typedef
ndb_mgm_configuration_iterator
Iter
;
...
...
ndb/tools/restore/consumer_restore.cpp
View file @
d5d360b1
...
@@ -14,9 +14,12 @@
...
@@ -14,9 +14,12 @@
along with this program; if not, write to the Free Software
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include <NDBT_ReturnCodes.h>
#include "consumer_restore.hpp"
#include "consumer_restore.hpp"
#include <NdbSleep.h>
#include <NdbSleep.h>
extern
my_bool
opt_core
;
extern
FilteredNdbOut
err
;
extern
FilteredNdbOut
err
;
extern
FilteredNdbOut
info
;
extern
FilteredNdbOut
info
;
extern
FilteredNdbOut
debug
;
extern
FilteredNdbOut
debug
;
...
@@ -458,7 +461,11 @@ bool BackupRestore::errorHandler(restore_callback_t *cb)
...
@@ -458,7 +461,11 @@ bool BackupRestore::errorHandler(restore_callback_t *cb)
void
BackupRestore
::
exitHandler
()
void
BackupRestore
::
exitHandler
()
{
{
release
();
release
();
exit
(
-
1
);
NDBT_ProgramExit
(
NDBT_FAILED
);
if
(
opt_core
)
abort
();
else
exit
(
NDBT_FAILED
);
}
}
...
@@ -492,7 +499,7 @@ BackupRestore::logEntry(const LogEntry & tup)
...
@@ -492,7 +499,7 @@ BackupRestore::logEntry(const LogEntry & tup)
{
{
// Deep shit, TODO: handle the error
// Deep shit, TODO: handle the error
err
<<
"Cannot start transaction"
<<
endl
;
err
<<
"Cannot start transaction"
<<
endl
;
exit
(
-
1
);
exit
Handler
(
);
}
// if
}
// if
const
NdbDictionary
::
Table
*
table
=
get_table
(
tup
.
m_table
->
m_dictTable
);
const
NdbDictionary
::
Table
*
table
=
get_table
(
tup
.
m_table
->
m_dictTable
);
...
@@ -500,7 +507,7 @@ BackupRestore::logEntry(const LogEntry & tup)
...
@@ -500,7 +507,7 @@ BackupRestore::logEntry(const LogEntry & tup)
if
(
op
==
NULL
)
if
(
op
==
NULL
)
{
{
err
<<
"Cannot get operation: "
<<
trans
->
getNdbError
()
<<
endl
;
err
<<
"Cannot get operation: "
<<
trans
->
getNdbError
()
<<
endl
;
exit
(
-
1
);
exit
Handler
(
);
}
// if
}
// if
int
check
=
0
;
int
check
=
0
;
...
@@ -518,13 +525,13 @@ BackupRestore::logEntry(const LogEntry & tup)
...
@@ -518,13 +525,13 @@ BackupRestore::logEntry(const LogEntry & tup)
default:
default:
err
<<
"Log entry has wrong operation type."
err
<<
"Log entry has wrong operation type."
<<
" Exiting..."
;
<<
" Exiting..."
;
exit
(
-
1
);
exit
Handler
(
);
}
}
if
(
check
!=
0
)
if
(
check
!=
0
)
{
{
err
<<
"Error defining op: "
<<
trans
->
getNdbError
()
<<
endl
;
err
<<
"Error defining op: "
<<
trans
->
getNdbError
()
<<
endl
;
exit
(
-
1
);
exit
Handler
(
);
}
// if
}
// if
Bitmask
<
4096
>
keys
;
Bitmask
<
4096
>
keys
;
...
@@ -553,7 +560,7 @@ BackupRestore::logEntry(const LogEntry & tup)
...
@@ -553,7 +560,7 @@ BackupRestore::logEntry(const LogEntry & tup)
if
(
check
!=
0
)
if
(
check
!=
0
)
{
{
err
<<
"Error defining op: "
<<
trans
->
getNdbError
()
<<
endl
;
err
<<
"Error defining op: "
<<
trans
->
getNdbError
()
<<
endl
;
exit
(
-
1
);
exit
Handler
(
);
}
// if
}
// if
}
}
...
@@ -582,7 +589,7 @@ BackupRestore::logEntry(const LogEntry & tup)
...
@@ -582,7 +589,7 @@ BackupRestore::logEntry(const LogEntry & tup)
if
(
!
ok
)
if
(
!
ok
)
{
{
err
<<
"execute failed: "
<<
errobj
<<
endl
;
err
<<
"execute failed: "
<<
errobj
<<
endl
;
exit
(
-
1
);
exit
Handler
(
);
}
}
}
}
...
@@ -629,7 +636,7 @@ BackupRestore::tuple(const TupleS & tup)
...
@@ -629,7 +636,7 @@ BackupRestore::tuple(const TupleS & tup)
{
{
// Deep shit, TODO: handle the error
// Deep shit, TODO: handle the error
ndbout << "Cannot start transaction" << endl;
ndbout << "Cannot start transaction" << endl;
exit
(-1
);
exit
Handler(
);
} // if
} // if
const TableS * table = tup.getTable();
const TableS * table = tup.getTable();
...
@@ -638,7 +645,7 @@ BackupRestore::tuple(const TupleS & tup)
...
@@ -638,7 +645,7 @@ BackupRestore::tuple(const TupleS & tup)
{
{
ndbout << "Cannot get operation: ";
ndbout << "Cannot get operation: ";
ndbout << trans->getNdbError() << endl;
ndbout << trans->getNdbError() << endl;
exit
(-1
);
exit
Handler(
);
} // if
} // if
// TODO: check return value and handle error
// TODO: check return value and handle error
...
@@ -646,7 +653,7 @@ BackupRestore::tuple(const TupleS & tup)
...
@@ -646,7 +653,7 @@ BackupRestore::tuple(const TupleS & tup)
{
{
ndbout << "writeTuple call failed: ";
ndbout << "writeTuple call failed: ";
ndbout << trans->getNdbError() << endl;
ndbout << trans->getNdbError() << endl;
exit
(-1
);
exit
Handler(
);
} // if
} // if
for (int i = 0; i < tup.getNoOfAttributes(); i++)
for (int i = 0; i < tup.getNoOfAttributes(); i++)
...
@@ -680,7 +687,7 @@ BackupRestore::tuple(const TupleS & tup)
...
@@ -680,7 +687,7 @@ BackupRestore::tuple(const TupleS & tup)
{
{
ndbout << "execute failed: ";
ndbout << "execute failed: ";
ndbout << trans->getNdbError() << endl;
ndbout << trans->getNdbError() << endl;
exit
(-1
);
exit
Handler(
);
}
}
m_ndb->closeTransaction(trans);
m_ndb->closeTransaction(trans);
if (ret == 0)
if (ret == 0)
...
...
ndb/tools/restore/restore_main.cpp
View file @
d5d360b1
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
#include <ndb_limits.h>
#include <ndb_limits.h>
#include <NdbTCP.h>
#include <NdbTCP.h>
#include <NdbOut.hpp>
#include <NdbOut.hpp>
#include <NDBT_ReturnCodes.h>
#include "consumer_restore.hpp"
#include "consumer_restore.hpp"
#include "consumer_printer.hpp"
#include "consumer_printer.hpp"
...
@@ -116,14 +117,14 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
...
@@ -116,14 +117,14 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
if
(
ga_nodeId
==
0
)
if
(
ga_nodeId
==
0
)
{
{
printf
(
"Error in --nodeid,-n setting, see --help
\n
"
);
printf
(
"Error in --nodeid,-n setting, see --help
\n
"
);
exit
(
1
);
exit
(
NDBT_ProgramExit
(
NDBT_WRONGARGS
)
);
}
}
break
;
break
;
case
'b'
:
case
'b'
:
if
(
ga_backupId
==
0
)
if
(
ga_backupId
==
0
)
{
{
printf
(
"Error in --backupid,-b setting, see --help
\n
"
);
printf
(
"Error in --backupid,-b setting, see --help
\n
"
);
exit
(
1
);
exit
(
NDBT_ProgramExit
(
NDBT_WRONGARGS
)
);
}
}
break
;
break
;
}
}
...
@@ -136,7 +137,7 @@ readArguments(int *pargc, char*** pargv)
...
@@ -136,7 +137,7 @@ readArguments(int *pargc, char*** pargv)
load_defaults
(
"my"
,
load_default_groups
,
pargc
,
pargv
);
load_defaults
(
"my"
,
load_default_groups
,
pargc
,
pargv
);
if
(
handle_options
(
pargc
,
pargv
,
my_long_options
,
get_one_option
))
if
(
handle_options
(
pargc
,
pargv
,
my_long_options
,
get_one_option
))
{
{
exit
(
1
);
exit
(
NDBT_ProgramExit
(
NDBT_WRONGARGS
)
);
}
}
BackupPrinter
*
printer
=
new
BackupPrinter
();
BackupPrinter
*
printer
=
new
BackupPrinter
();
...
@@ -226,6 +227,15 @@ free_data_callback()
...
@@ -226,6 +227,15 @@ free_data_callback()
g_consumers
[
i
]
->
tuple_free
();
g_consumers
[
i
]
->
tuple_free
();
}
}
static
void
exitHandler
(
int
code
)
{
NDBT_ProgramExit
(
code
);
if
(
opt_core
)
abort
();
else
exit
(
code
);
}
int
int
main
(
int
argc
,
char
**
argv
)
main
(
int
argc
,
char
**
argv
)
{
{
...
@@ -233,7 +243,7 @@ main(int argc, char** argv)
...
@@ -233,7 +243,7 @@ main(int argc, char** argv)
if
(
!
readArguments
(
&
argc
,
&
argv
))
if
(
!
readArguments
(
&
argc
,
&
argv
))
{
{
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
}
Ndb
::
setConnectString
(
opt_connect_str
);
Ndb
::
setConnectString
(
opt_connect_str
);
...
@@ -245,7 +255,7 @@ main(int argc, char** argv)
...
@@ -245,7 +255,7 @@ main(int argc, char** argv)
if
(
!
metaData
.
readHeader
())
if
(
!
metaData
.
readHeader
())
{
{
ndbout
<<
"Failed to read "
<<
metaData
.
getFilename
()
<<
endl
<<
endl
;
ndbout
<<
"Failed to read "
<<
metaData
.
getFilename
()
<<
endl
<<
endl
;
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
}
const
BackupFormat
::
FileHeader
&
tmp
=
metaData
.
getFileHeader
();
const
BackupFormat
::
FileHeader
&
tmp
=
metaData
.
getFileHeader
();
...
@@ -263,20 +273,20 @@ main(int argc, char** argv)
...
@@ -263,20 +273,20 @@ main(int argc, char** argv)
if
(
res
==
0
)
if
(
res
==
0
)
{
{
ndbout_c
(
"Restore: Failed to load content"
);
ndbout_c
(
"Restore: Failed to load content"
);
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
}
if
(
metaData
.
getNoOfTables
()
==
0
)
if
(
metaData
.
getNoOfTables
()
==
0
)
{
{
ndbout_c
(
"Restore: The backup contains no tables "
);
ndbout_c
(
"Restore: The backup contains no tables "
);
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
}
if
(
!
metaData
.
validateFooter
())
if
(
!
metaData
.
validateFooter
())
{
{
ndbout_c
(
"Restore: Failed to validate footer."
);
ndbout_c
(
"Restore: Failed to validate footer."
);
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
}
Uint32
i
;
Uint32
i
;
...
@@ -285,7 +295,7 @@ main(int argc, char** argv)
...
@@ -285,7 +295,7 @@ main(int argc, char** argv)
if
(
!
g_consumers
[
i
]
->
init
())
if
(
!
g_consumers
[
i
]
->
init
())
{
{
clearConsumers
();
clearConsumers
();
return
-
11
;
exitHandler
(
NDBT_FAILED
)
;
}
}
}
}
...
@@ -300,7 +310,7 @@ main(int argc, char** argv)
...
@@ -300,7 +310,7 @@ main(int argc, char** argv)
ndbout_c
(
"Restore: Failed to restore table: %s. "
ndbout_c
(
"Restore: Failed to restore table: %s. "
"Exiting..."
,
"Exiting..."
,
metaData
[
i
]
->
getTableName
());
metaData
[
i
]
->
getTableName
());
return
-
11
;
exitHandler
(
NDBT_FAILED
)
;
}
}
}
}
}
}
...
@@ -309,7 +319,7 @@ main(int argc, char** argv)
...
@@ -309,7 +319,7 @@ main(int argc, char** argv)
if
(
!
g_consumers
[
i
]
->
endOfTables
())
if
(
!
g_consumers
[
i
]
->
endOfTables
())
{
{
ndbout_c
(
"Restore: Failed while closing tables"
);
ndbout_c
(
"Restore: Failed while closing tables"
);
return
-
11
;
exitHandler
(
NDBT_FAILED
)
;
}
}
if
(
ga_restore
||
ga_print
)
if
(
ga_restore
||
ga_print
)
...
@@ -322,7 +332,7 @@ main(int argc, char** argv)
...
@@ -322,7 +332,7 @@ main(int argc, char** argv)
if
(
!
dataIter
.
readHeader
())
if
(
!
dataIter
.
readHeader
())
{
{
ndbout
<<
"Failed to read header of data file. Exiting..."
;
ndbout
<<
"Failed to read header of data file. Exiting..."
;
return
-
11
;
exitHandler
(
NDBT_FAILED
)
;
}
}
...
@@ -340,12 +350,12 @@ main(int argc, char** argv)
...
@@ -340,12 +350,12 @@ main(int argc, char** argv)
{
{
ndbout_c
(
"Restore: An error occured while restoring data. "
ndbout_c
(
"Restore: An error occured while restoring data. "
"Exiting..."
);
"Exiting..."
);
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
}
if
(
!
dataIter
.
validateFragmentFooter
())
{
if
(
!
dataIter
.
validateFragmentFooter
())
{
ndbout_c
(
"Restore: Error validating fragment footer. "
ndbout_c
(
"Restore: Error validating fragment footer. "
"Exiting..."
);
"Exiting..."
);
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
}
}
// while (dataIter.readFragmentHeader(res))
}
// while (dataIter.readFragmentHeader(res))
...
@@ -353,7 +363,7 @@ main(int argc, char** argv)
...
@@ -353,7 +363,7 @@ main(int argc, char** argv)
{
{
err
<<
"Restore: An error occured while restoring data. Exiting... "
err
<<
"Restore: An error occured while restoring data. Exiting... "
<<
"res="
<<
res
<<
endl
;
<<
"res="
<<
res
<<
endl
;
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
}
...
@@ -366,7 +376,7 @@ main(int argc, char** argv)
...
@@ -366,7 +376,7 @@ main(int argc, char** argv)
if
(
!
logIter
.
readHeader
())
if
(
!
logIter
.
readHeader
())
{
{
err
<<
"Failed to read header of data file. Exiting..."
<<
endl
;
err
<<
"Failed to read header of data file. Exiting..."
<<
endl
;
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
}
const
LogEntry
*
logEntry
=
0
;
const
LogEntry
*
logEntry
=
0
;
...
@@ -380,7 +390,7 @@ main(int argc, char** argv)
...
@@ -380,7 +390,7 @@ main(int argc, char** argv)
{
{
err
<<
"Restore: An restoring the data log. Exiting... res="
err
<<
"Restore: An restoring the data log. Exiting... res="
<<
res
<<
endl
;
<<
res
<<
endl
;
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
}
logIter
.
validateFooter
();
//not implemented
logIter
.
validateFooter
();
//not implemented
for
(
i
=
0
;
i
<
g_consumers
.
size
();
i
++
)
for
(
i
=
0
;
i
<
g_consumers
.
size
();
i
++
)
...
@@ -395,14 +405,14 @@ main(int argc, char** argv)
...
@@ -395,14 +405,14 @@ main(int argc, char** argv)
ndbout_c
(
"Restore: Failed to finalize restore table: %s. "
ndbout_c
(
"Restore: Failed to finalize restore table: %s. "
"Exiting..."
,
"Exiting..."
,
metaData
[
i
]
->
getTableName
());
metaData
[
i
]
->
getTableName
());
return
-
11
;
exitHandler
(
NDBT_FAILED
)
;
}
}
}
}
}
}
}
}
}
}
clearConsumers
();
clearConsumers
();
return
0
;
return
NDBT_ProgramExit
(
NDBT_OK
)
;
}
// main
}
// main
template
class
Vector
<
BackupConsumer
*
>;
template
class
Vector
<
BackupConsumer
*
>;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment