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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
4a584b17
Commit
4a584b17
authored
Sep 05, 2005
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added --core-file option to ndb executables
added parseable printout in ndb_restore
parent
354fa102
Changes
9
Hide 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 @
4a584b17
...
@@ -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 @
4a584b17
...
@@ -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
);
{
abort
();
signal
(
6
,
SIG_DFL
);
#else
abort
();
exit
(
-
1
);
}
#endif
else
{
exit
(
-
1
);
}
}
}
#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
);
{
abort
();
signal
(
6
,
SIG_DFL
);
#else
abort
();
exit
(
-
1
);
}
#endif
else
{
exit
(
-
1
);
}
}
}
/**
/**
...
...
ndb/src/mgmsrv/ConfigInfo.cpp
View file @
4a584b17
...
@@ -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 @
4a584b17
...
@@ -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 @
4a584b17
...
@@ -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 @
4a584b17
...
@@ -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 @
4a584b17
...
@@ -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 @
4a584b17
...
@@ -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 @
4a584b17
...
@@ -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