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
09eab9a8
Commit
09eab9a8
authored
Feb 05, 2006
by
pekka@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ndb - TUP scan: unlock outstanding locks on scan close (lost+found patch)
parent
66c52cbd
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
0 deletions
+17
-0
storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp
storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp
+17
-0
No files found.
storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp
View file @
09eab9a8
...
...
@@ -895,6 +895,23 @@ Dbtup::disk_page_tup_scan_callback(Signal* signal, Uint32 scanPtrI, Uint32 page_
void
Dbtup
::
scanClose
(
Signal
*
signal
,
ScanOpPtr
scanPtr
)
{
ScanOp
&
scan
=
*
scanPtr
.
p
;
ndbrequire
(
!
(
scan
.
m_bits
&
ScanOp
::
SCAN_LOCK_WAIT
)
&&
scan
.
m_accLockOp
==
RNIL
);
// unlock all not unlocked by LQH
LocalDLFifoList
<
ScanLock
>
list
(
c_scanLockPool
,
scan
.
m_accLockOps
);
ScanLockPtr
lockPtr
;
while
(
list
.
first
(
lockPtr
))
{
jam
();
AccLockReq
*
const
lockReq
=
(
AccLockReq
*
)
signal
->
getDataPtrSend
();
lockReq
->
returnCode
=
RNIL
;
lockReq
->
requestInfo
=
AccLockReq
::
Abort
;
lockReq
->
accOpPtr
=
lockPtr
.
p
->
m_accLockOp
;
EXECUTE_DIRECT
(
DBACC
,
GSN_ACC_LOCKREQ
,
signal
,
AccLockReq
::
UndoSignalLength
);
jamEntry
();
ndbrequire
(
lockReq
->
returnCode
==
AccLockReq
::
Success
);
list
.
release
(
lockPtr
);
}
// send conf
NextScanConf
*
const
conf
=
(
NextScanConf
*
)
signal
->
getDataPtrSend
();
conf
->
scanPtr
=
scanPtr
.
p
->
m_userPtr
;
conf
->
accOperationPtr
=
RNIL
;
...
...
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