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
bool
opt_endinfo
=
0
;
my_bool
opt_ndb_shm
;
my_bool
opt_core
;
#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 \
{ "usage", '?', "Display this help and exit.", \
...
...
@@ -57,7 +63,10 @@ my_bool opt_ndb_shm;
GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0},\
{ "connect-string", OPT_NDB_CONNECTSTRING, "same as --ndb-connectstring",\
(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
#define NDB_STD_OPTS(prog_name) \
...
...
@@ -80,6 +89,7 @@ enum ndb_std_options {
OPT_NDB_SHM
=
256
,
OPT_NDB_SHM_SIGNUM
,
OPT_NDB_OPTIMIZED_NODE_SELECTION
,
OPT_WANT_CORE
,
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" {
extern
void
(
*
ndb_new_handler
)();
}
extern
EventLogger
g_eventLogger
;
extern
my_bool
opt_core
;
/**
* Declare the global variables
...
...
@@ -168,23 +169,25 @@ NdbShutdown(NdbShutdownType type,
}
const
char
*
exitAbort
=
0
;
#if defined VM_TRACE && ( ! ( defined NDB_OSE || defined NDB_SOFTOSE) )
exitAbort
=
"aborting"
;
#else
exitAbort
=
"exiting"
;
#endif
if
(
opt_core
)
exitAbort
=
"aborting"
;
else
exitAbort
=
"exiting"
;
if
(
type
==
NST_Watchdog
){
/**
* Very serious, don't attempt to free, just die!!
*/
g_eventLogger
.
info
(
"Watchdog shutdown completed - %s"
,
exitAbort
);
#if defined VM_TRACE && ( ! ( defined NDB_OSE || defined NDB_SOFTOSE) )
signal
(
6
,
SIG_DFL
);
abort
();
#else
exit
(
-
1
);
#endif
if
(
opt_core
)
{
signal
(
6
,
SIG_DFL
);
abort
();
}
else
{
exit
(
-
1
);
}
}
#ifndef NDB_WIN32
...
...
@@ -236,12 +239,15 @@ NdbShutdown(NdbShutdownType type,
if
(
type
==
NST_ErrorHandlerStartup
)
kill
(
getppid
(),
SIGUSR1
);
g_eventLogger
.
info
(
"Error handler shutdown completed - %s"
,
exitAbort
);
#if ( defined VM_TRACE || defined ERROR_INSERT ) && ( ! ( defined NDB_OSE || defined NDB_SOFTOSE) )
signal
(
6
,
SIG_DFL
);
abort
();
#else
exit
(
-
1
);
#endif
if
(
opt_core
)
{
signal
(
6
,
SIG_DFL
);
abort
();
}
else
{
exit
(
-
1
);
}
}
/**
...
...
ndb/src/mgmsrv/ConfigInfo.cpp
View file @
4a584b17
...
...
@@ -25,6 +25,7 @@
#include <m_string.h>
extern
my_bool
opt_ndb_shm
;
extern
my_bool
opt_core
;
#define MAX_LINE_LENGTH 255
#define KEY_INTERNAL 0
...
...
@@ -2140,11 +2141,10 @@ static void require(bool v)
{
if
(
!
v
)
{
#ifndef DBUG_OFF
abort
();
#else
exit
(
-
1
);
#endif
if
(
opt_core
)
abort
();
else
exit
(
-
1
);
}
}
...
...
@@ -2214,7 +2214,7 @@ ConfigInfo::ConfigInfo()
ndbout
<<
"Error: Parameter "
<<
param
.
_fname
<<
" defined twice in section "
<<
param
.
_section
<<
"."
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
// Add new pinfo to section
...
...
@@ -2264,7 +2264,7 @@ ConfigInfo::ConfigInfo()
ndbout
<<
"Check that each entry has a section failed."
<<
endl
;
ndbout
<<
"Parameter
\"
"
<<
m_ParamInfo
[
i
].
_fname
<<
endl
;
ndbout
<<
"Edit file "
<<
__FILE__
<<
"."
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
if
(
m_ParamInfo
[
i
].
_type
==
ConfigInfo
::
CI_SECTION
)
...
...
@@ -2277,7 +2277,7 @@ ConfigInfo::ConfigInfo()
<<
"
\"
does not exist in section
\"
"
<<
m_ParamInfo
[
i
].
_section
<<
"
\"
."
<<
endl
;
ndbout
<<
"Edit file "
<<
__FILE__
<<
"."
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
}
}
...
...
ndb/src/mgmsrv/MgmtSrvr.cpp
View file @
4a584b17
...
...
@@ -65,6 +65,18 @@
extern
int
global_flag_send_heartbeat_now
;
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
*
MgmtSrvr
::
logLevelThread_C
(
void
*
m
)
...
...
@@ -436,14 +448,14 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
if
(
tmp_nodeid
==
0
)
{
ndbout_c
(
m_config_retriever
->
getErrorString
());
exit
(
-
1
);
require
(
false
);
}
// read config from other managent server
_config
=
fetchConfig
();
if
(
_config
==
0
)
{
ndbout
<<
m_config_retriever
->
getErrorString
()
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
_ownNodeId
=
tmp_nodeid
;
}
...
...
@@ -454,7 +466,7 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
_config
=
readConfig
();
if
(
_config
==
0
)
{
ndbout
<<
"Unable to read config file"
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
}
...
...
@@ -511,7 +523,7 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
if
((
m_node_id_mutex
=
NdbMutex_Create
())
==
0
)
{
ndbout
<<
"mutex creation failed line = "
<<
__LINE__
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
if
(
_ownNodeId
==
0
)
// we did not get node id from other server
...
...
@@ -522,7 +534,7 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
0
,
0
,
error_string
)){
ndbout
<<
"Unable to obtain requested nodeid: "
<<
error_string
.
c_str
()
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
_ownNodeId
=
tmp
;
}
...
...
@@ -533,7 +545,7 @@ MgmtSrvr::MgmtSrvr(SocketServer *socket_server,
_ownNodeId
))
{
ndbout
<<
m_config_retriever
->
getErrorString
()
<<
endl
;
exit
(
-
1
);
require
(
false
);
}
}
...
...
@@ -2203,18 +2215,18 @@ MgmtSrvr::alloc_node_id(NodeId * nodeId,
iter
(
*
(
ndb_mgm_configuration
*
)
_config
->
m_configValues
,
CFG_SECTION_NODE
);
for
(
iter
.
first
();
iter
.
valid
();
iter
.
next
())
{
unsigned
tmp
=
0
;
if
(
iter
.
get
(
CFG_NODE_ID
,
&
tmp
))
abort
(
);
if
(
iter
.
get
(
CFG_NODE_ID
,
&
tmp
))
require
(
false
);
if
(
*
nodeId
&&
*
nodeId
!=
tmp
)
continue
;
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
)
continue
;
found_matching_type
=
true
;
if
(
connected_nodes
.
get
(
tmp
))
continue
;
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
)
config_hostname
=
0
;
else
if
(
client_addr
)
{
...
...
@@ -2561,7 +2573,7 @@ MgmtSrvr::backupCallback(BackupEvent & event)
int
MgmtSrvr
::
repCommand
(
Uint32
*
repReqId
,
Uint32
request
,
bool
waitCompleted
)
{
abort
(
);
require
(
false
);
return
0
;
}
...
...
@@ -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
);
break
;
default:
abort
(
);
require
(
false
);
}
assert
(
res
);
}
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) {
}
#endif
/* MGM_GET_CONFIG_BACKWARDS_COMPAT */
inline
void
require
(
bool
b
){
if
(
!
b
)
abort
();
}
void
MgmApiSession
::
getConfig
(
Parser_t
::
Context
&
ctx
,
const
class
Properties
&
args
)
{
...
...
ndb/tools/Makefile.am
View file @
4a584b17
...
...
@@ -30,7 +30,7 @@ ndb_restore_SOURCES = restore/restore_main.cpp \
restore/consumer.cpp
\
restore/consumer_restore.cpp
\
restore/consumer_printer.cpp
\
restore/Restore.cpp
restore/Restore.cpp
$(tools_common_sources)
ndb_config_SOURCES
=
ndb_config.cpp
\
../src/mgmsrv/Config.cpp
\
...
...
ndb/tools/ndb_config.cpp
View file @
4a584b17
...
...
@@ -42,6 +42,7 @@ static const char * g_field_delimiter=",";
static
const
char
*
g_row_delimiter
=
" "
;
int
g_print_full_config
,
opt_ndb_shm
;
my_bool
opt_core
;
typedef
ndb_mgm_configuration_iterator
Iter
;
...
...
ndb/tools/restore/consumer_restore.cpp
View file @
4a584b17
...
...
@@ -14,9 +14,12 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include <NDBT_ReturnCodes.h>
#include "consumer_restore.hpp"
#include <NdbSleep.h>
extern
my_bool
opt_core
;
extern
FilteredNdbOut
err
;
extern
FilteredNdbOut
info
;
extern
FilteredNdbOut
debug
;
...
...
@@ -458,7 +461,11 @@ bool BackupRestore::errorHandler(restore_callback_t *cb)
void
BackupRestore
::
exitHandler
()
{
release
();
exit
(
-
1
);
NDBT_ProgramExit
(
NDBT_FAILED
);
if
(
opt_core
)
abort
();
else
exit
(
NDBT_FAILED
);
}
...
...
@@ -492,7 +499,7 @@ BackupRestore::logEntry(const LogEntry & tup)
{
// Deep shit, TODO: handle the error
err
<<
"Cannot start transaction"
<<
endl
;
exit
(
-
1
);
exit
Handler
(
);
}
// if
const
NdbDictionary
::
Table
*
table
=
get_table
(
tup
.
m_table
->
m_dictTable
);
...
...
@@ -500,7 +507,7 @@ BackupRestore::logEntry(const LogEntry & tup)
if
(
op
==
NULL
)
{
err
<<
"Cannot get operation: "
<<
trans
->
getNdbError
()
<<
endl
;
exit
(
-
1
);
exit
Handler
(
);
}
// if
int
check
=
0
;
...
...
@@ -518,13 +525,13 @@ BackupRestore::logEntry(const LogEntry & tup)
default:
err
<<
"Log entry has wrong operation type."
<<
" Exiting..."
;
exit
(
-
1
);
exit
Handler
(
);
}
if
(
check
!=
0
)
{
err
<<
"Error defining op: "
<<
trans
->
getNdbError
()
<<
endl
;
exit
(
-
1
);
exit
Handler
(
);
}
// if
Bitmask
<
4096
>
keys
;
...
...
@@ -553,7 +560,7 @@ BackupRestore::logEntry(const LogEntry & tup)
if
(
check
!=
0
)
{
err
<<
"Error defining op: "
<<
trans
->
getNdbError
()
<<
endl
;
exit
(
-
1
);
exit
Handler
(
);
}
// if
}
...
...
@@ -582,7 +589,7 @@ BackupRestore::logEntry(const LogEntry & tup)
if
(
!
ok
)
{
err
<<
"execute failed: "
<<
errobj
<<
endl
;
exit
(
-
1
);
exit
Handler
(
);
}
}
...
...
@@ -629,7 +636,7 @@ BackupRestore::tuple(const TupleS & tup)
{
// Deep shit, TODO: handle the error
ndbout << "Cannot start transaction" << endl;
exit
(-1
);
exit
Handler(
);
} // if
const TableS * table = tup.getTable();
...
...
@@ -638,7 +645,7 @@ BackupRestore::tuple(const TupleS & tup)
{
ndbout << "Cannot get operation: ";
ndbout << trans->getNdbError() << endl;
exit
(-1
);
exit
Handler(
);
} // if
// TODO: check return value and handle error
...
...
@@ -646,7 +653,7 @@ BackupRestore::tuple(const TupleS & tup)
{
ndbout << "writeTuple call failed: ";
ndbout << trans->getNdbError() << endl;
exit
(-1
);
exit
Handler(
);
} // if
for (int i = 0; i < tup.getNoOfAttributes(); i++)
...
...
@@ -680,7 +687,7 @@ BackupRestore::tuple(const TupleS & tup)
{
ndbout << "execute failed: ";
ndbout << trans->getNdbError() << endl;
exit
(-1
);
exit
Handler(
);
}
m_ndb->closeTransaction(trans);
if (ret == 0)
...
...
ndb/tools/restore/restore_main.cpp
View file @
4a584b17
...
...
@@ -20,6 +20,7 @@
#include <ndb_limits.h>
#include <NdbTCP.h>
#include <NdbOut.hpp>
#include <NDBT_ReturnCodes.h>
#include "consumer_restore.hpp"
#include "consumer_printer.hpp"
...
...
@@ -116,14 +117,14 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
if
(
ga_nodeId
==
0
)
{
printf
(
"Error in --nodeid,-n setting, see --help
\n
"
);
exit
(
1
);
exit
(
NDBT_ProgramExit
(
NDBT_WRONGARGS
)
);
}
break
;
case
'b'
:
if
(
ga_backupId
==
0
)
{
printf
(
"Error in --backupid,-b setting, see --help
\n
"
);
exit
(
1
);
exit
(
NDBT_ProgramExit
(
NDBT_WRONGARGS
)
);
}
break
;
}
...
...
@@ -136,7 +137,7 @@ readArguments(int *pargc, char*** pargv)
load_defaults
(
"my"
,
load_default_groups
,
pargc
,
pargv
);
if
(
handle_options
(
pargc
,
pargv
,
my_long_options
,
get_one_option
))
{
exit
(
1
);
exit
(
NDBT_ProgramExit
(
NDBT_WRONGARGS
)
);
}
BackupPrinter
*
printer
=
new
BackupPrinter
();
...
...
@@ -226,6 +227,15 @@ free_data_callback()
g_consumers
[
i
]
->
tuple_free
();
}
static
void
exitHandler
(
int
code
)
{
NDBT_ProgramExit
(
code
);
if
(
opt_core
)
abort
();
else
exit
(
code
);
}
int
main
(
int
argc
,
char
**
argv
)
{
...
...
@@ -233,7 +243,7 @@ main(int argc, char** argv)
if
(
!
readArguments
(
&
argc
,
&
argv
))
{
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
Ndb
::
setConnectString
(
opt_connect_str
);
...
...
@@ -245,7 +255,7 @@ main(int argc, char** argv)
if
(
!
metaData
.
readHeader
())
{
ndbout
<<
"Failed to read "
<<
metaData
.
getFilename
()
<<
endl
<<
endl
;
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
const
BackupFormat
::
FileHeader
&
tmp
=
metaData
.
getFileHeader
();
...
...
@@ -263,20 +273,20 @@ main(int argc, char** argv)
if
(
res
==
0
)
{
ndbout_c
(
"Restore: Failed to load content"
);
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
if
(
metaData
.
getNoOfTables
()
==
0
)
{
ndbout_c
(
"Restore: The backup contains no tables "
);
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
if
(
!
metaData
.
validateFooter
())
{
ndbout_c
(
"Restore: Failed to validate footer."
);
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
Uint32
i
;
...
...
@@ -285,7 +295,7 @@ main(int argc, char** argv)
if
(
!
g_consumers
[
i
]
->
init
())
{
clearConsumers
();
return
-
11
;
exitHandler
(
NDBT_FAILED
)
;
}
}
...
...
@@ -300,7 +310,7 @@ main(int argc, char** argv)
ndbout_c
(
"Restore: Failed to restore table: %s. "
"Exiting..."
,
metaData
[
i
]
->
getTableName
());
return
-
11
;
exitHandler
(
NDBT_FAILED
)
;
}
}
}
...
...
@@ -309,7 +319,7 @@ main(int argc, char** argv)
if
(
!
g_consumers
[
i
]
->
endOfTables
())
{
ndbout_c
(
"Restore: Failed while closing tables"
);
return
-
11
;
exitHandler
(
NDBT_FAILED
)
;
}
if
(
ga_restore
||
ga_print
)
...
...
@@ -322,7 +332,7 @@ main(int argc, char** argv)
if
(
!
dataIter
.
readHeader
())
{
ndbout
<<
"Failed to read header of data file. Exiting..."
;
return
-
11
;
exitHandler
(
NDBT_FAILED
)
;
}
...
...
@@ -340,12 +350,12 @@ main(int argc, char** argv)
{
ndbout_c
(
"Restore: An error occured while restoring data. "
"Exiting..."
);
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
if
(
!
dataIter
.
validateFragmentFooter
())
{
ndbout_c
(
"Restore: Error validating fragment footer. "
"Exiting..."
);
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
}
// while (dataIter.readFragmentHeader(res))
...
...
@@ -353,7 +363,7 @@ main(int argc, char** argv)
{
err
<<
"Restore: An error occured while restoring data. Exiting... "
<<
"res="
<<
res
<<
endl
;
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
...
...
@@ -366,7 +376,7 @@ main(int argc, char** argv)
if
(
!
logIter
.
readHeader
())
{
err
<<
"Failed to read header of data file. Exiting..."
<<
endl
;
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
const
LogEntry
*
logEntry
=
0
;
...
...
@@ -380,7 +390,7 @@ main(int argc, char** argv)
{
err
<<
"Restore: An restoring the data log. Exiting... res="
<<
res
<<
endl
;
return
-
1
;
exitHandler
(
NDBT_FAILED
)
;
}
logIter
.
validateFooter
();
//not implemented
for
(
i
=
0
;
i
<
g_consumers
.
size
();
i
++
)
...
...
@@ -395,14 +405,14 @@ main(int argc, char** argv)
ndbout_c
(
"Restore: Failed to finalize restore table: %s. "
"Exiting..."
,
metaData
[
i
]
->
getTableName
());
return
-
11
;
exitHandler
(
NDBT_FAILED
)
;
}
}
}
}
}
clearConsumers
();
return
0
;
return
NDBT_ProgramExit
(
NDBT_OK
)
;
}
// main
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