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
162aa18e
Commit
162aa18e
authored
Jan 20, 2007
by
jonas@perch.ndb.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ndb - Fix bug when sending NODE_VERSION_REP
parent
372cbc1d
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
24 deletions
+44
-24
storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp
storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp
+6
-0
storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp
storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp
+38
-24
No files found.
storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp
View file @
162aa18e
...
...
@@ -455,6 +455,12 @@ private:
void
recompute_version_info
(
Uint32
type
,
Uint32
version
);
void
execNODE_VERSION_REP
(
Signal
*
signal
);
void
sendApiVersionRep
(
Signal
*
signal
,
NodeRecPtr
nodePtr
);
void
sendVersionedDb
(
NodeReceiverGroup
rg
,
GlobalSignalNumber
gsn
,
Signal
*
signal
,
Uint32
length
,
JobBufferLevel
jbuf
,
Uint32
minversion
);
};
#endif
storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp
View file @
162aa18e
...
...
@@ -2786,37 +2786,51 @@ void Qmgr::execAPI_REGREQ(Signal* signal)
recompute_version_info
(
type
,
version
);
if
(
info
.
m_type
[
NodeInfo
::
DB
].
m_min_version
>=
NDBD_NODE_VERSION_REP
)
{
jam
();
signal
->
theData
[
0
]
=
apiNodePtr
.
i
;
signal
->
theData
[
1
]
=
version
;
NodeReceiverGroup
rg
(
QMGR
,
c_clusterNodes
);
rg
.
m_nodes
.
clear
(
getOwnNodeId
());
sendVersionedDb
(
rg
,
GSN_NODE_VERSION_REP
,
signal
,
2
,
JBB
,
NDBD_NODE_VERSION_REP
);
signal
->
theData
[
0
]
=
apiNodePtr
.
i
;
signal
->
theData
[
1
]
=
version
;
sendSignal
(
rg
,
GSN_NODE_VERSION_REP
,
signal
,
2
,
JBB
);
EXECUTE_DIRECT
(
NDBCNTR
,
GSN_API_START_REP
,
signal
,
1
);
}
return
;
}
//Qmgr::execAPI_REGREQ()
void
Qmgr
::
sendVersionedDb
(
NodeReceiverGroup
rg
,
GlobalSignalNumber
gsn
,
Signal
*
signal
,
Uint32
length
,
JobBufferLevel
jbuf
,
Uint32
minversion
)
{
jam
();
NodeVersionInfo
info
=
getNodeVersionInfo
();
if
(
info
.
m_type
[
NodeInfo
::
DB
].
m_min_version
>=
minversion
)
{
jam
();
sendSignal
(
rg
,
gsn
,
signal
,
length
,
jbuf
);
}
else
{
Uint32
i
=
0
;
while
((
i
=
c_clusterNodes
.
find
(
i
+
1
))
!=
NdbNodeBitmask
::
NotFound
)
jam
();
Uint32
i
=
0
,
cnt
=
0
;
while
((
i
=
rg
.
m_nodes
.
find
(
i
+
1
))
!=
NodeBitmask
::
NotFound
)
{
jam
();
if
(
i
==
getOwnNodeId
())
continue
;
if
(
getNodeInfo
(
i
).
m_version
>=
NDBD_NODE_VERSION_REP
)
if
(
getNodeInfo
(
i
).
m_version
>=
minversion
)
{
jam
();
sendSignal
(
calcQmgrBlockRef
(
i
),
GSN_NODE_VERSION_REP
,
signal
,
2
,
JBB
)
;
}
cnt
++
;
sendSignal
(
numberToRef
(
rg
.
m_block
,
i
),
gsn
,
signal
,
length
,
jbuf
);
}
}
signal
->
theData
[
0
]
=
apiNodePtr
.
i
;
EXECUTE_DIRECT
(
NDBCNTR
,
GSN_API_START_REP
,
signal
,
1
);
ndbassert
(
cnt
<
rg
.
m_nodes
.
count
());
}
return
;
}
//Qmgr::execAPI_REGREQ()
}
void
Qmgr
::
execAPI_VERSION_REQ
(
Signal
*
signal
)
{
...
...
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