[
https://issues.apache.org/jira/browse/IGNITE-11835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dmitriy Govorukhin updated IGNITE-11835:
----------------------------------------
Description:
Support JMX/control.sh API for page lock dump
JMX
{code}
public interface PageLockMXBean {
String dumpLocks();
void dumpLocksToLog();
String dumpLocksToFile();
String dumpLocksToFile(String path);
}
{code}
control.sh
{code}
--diagnostic pageLocksTracker dump // Return dump in string format.
--diagnostic pageLocksTracker dump log // Print dump to console on node.
--diagnostic pageLocksTracker dump file // Save dump to file generated in
IGNITE_HOME dir.
--diagnostic pageLocksTracker dump file {path} // Save dump to specific path.
{code}
HeapArrayLockStack and HeapArrayLockStack output:
org.apache.ignite.internal.processors.cache.persistence.diagnostic.PageLockStackTest#testThreeReadPageLock_3
{code}
1. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
-> try read lock, pageId=1 [pageIdxHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
2. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
3. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
-> try read lock, pageId=11 [pageIdxHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
4. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]
0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
5. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
-> try read lock, pageId=111 [pageIdxHex=000000000000006f, partId=111,
pageIdx=111, flags=00000000]
1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]
0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
6. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
2 pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111,
flags=00000000]
1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]
0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
7. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
2 pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111,
flags=00000000]
1 -
0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
8. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
{code}
HeapArrayLockLog and OffHeapLockLog
org.apache.ignite.internal.processors.cache.persistence.diagnostic.PageLockLogTest#testThreeReadPageLock_3
{code}
Locked pages = []
Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
-> Try Read lock nextOpPageId=1, nextOpStructureId=123
[pageIdHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
Locked pages = [1(r=1|w=0)]
Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001,
partId=1, pageIdx=1, flags=00000000]
Locked pages = [1(r=1|w=0)]
Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001,
partId=1, pageIdx=1, flags=00000000]
-> Try Read lock nextOpPageId=11, nextOpStructureId=123
[pageIdHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
Locked pages = [1(r=1|w=0),11(r=1|w=0)]
Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001,
partId=1, pageIdx=1, flags=00000000]
L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b,
partId=11, pageIdx=11, flags=00000000]
Locked pages = [1(r=1|w=0)]
Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001,
partId=1, pageIdx=1, flags=00000000]
L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b,
partId=11, pageIdx=11, flags=00000000]
L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b,
partId=11, pageIdx=11, flags=00000000]
Locked pages = [1(r=1|w=0)]
Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001,
partId=1, pageIdx=1, flags=00000000]
L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b,
partId=11, pageIdx=11, flags=00000000]
L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b,
partId=11, pageIdx=11, flags=00000000]
-> Try Read lock nextOpPageId=111, nextOpStructureId=123
[pageIdHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
Locked pages = [1(r=1|w=0),111(r=1|w=0)]
Locked pages log: main time=(1559049634783, 2019-05-28 16:20:34.783)
L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001,
partId=1, pageIdx=1, flags=00000000]
L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b,
partId=11, pageIdx=11, flags=00000000]
L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b,
partId=11, pageIdx=11, flags=00000000]
L=2 -> Read lock pageId=111, structureId=123 [pageIdHex=000000000000006f,
partId=111, pageIdx=111, flags=00000000]
Locked pages = [1(r=1|w=0)]
Locked pages log: main time=(1559049634783, 2019-05-28 16:20:34.783)
L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001,
partId=1, pageIdx=1, flags=00000000]
L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b,
partId=11, pageIdx=11, flags=00000000]
L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b,
partId=11, pageIdx=11, flags=00000000]
L=2 -> Read lock pageId=111, structureId=123 [pageIdHex=000000000000006f,
partId=111, pageIdx=111, flags=00000000]
L=1 <- Read unlock pageId=111, structureId=123 [pageIdHex=000000000000006f,
partId=111, pageIdx=111, flags=00000000]
{code}
was:
Support JMX/control.sh API for page lock dump
JMX
{code}
public interface PageLockMXBean {
String dumpLocks();
void dumpLocksToLog();
String dumpLocksToFile();
String dumpLocksToFile(String path);
}
{code}
control.sh
{code}
--diagnostic pageLocksTracker dump // Return dump in string format.
--diagnostic pageLocksTracker dump log // Print dump to console on node.
--diagnostic pageLocksTracker dump file // Save dump to file generated in
IGNITE_HOME dir.
--diagnostic pageLocksTracker dump file {path} // Save dump to specific path.
{code}
HeapArrayLockStack and HeapArrayLockStack output:
org.apache.ignite.internal.processors.cache.persistence.diagnostic.PageLockStackTest#testThreeReadPageLock_3
{code}
1. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
-> try read lock, pageId=1 [pageIdxHex=0000000000000001, partId=1,
pageIdx=1, flags=00000000]
2. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
3. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
-> try read lock, pageId=11 [pageIdxHex=000000000000000b, partId=11,
pageIdx=11, flags=00000000]
0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
4. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]
0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
5. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
-> try read lock, pageId=111 [pageIdxHex=000000000000006f, partId=111,
pageIdx=111, flags=00000000]
1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]
0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
6. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
2 pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111,
flags=00000000]
1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11,
flags=00000000]
0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
7. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
2 pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111,
flags=00000000]
1 -
0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
8. Step
main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
flags=00000000]
{code}
HeapArrayLockLog and OffHeapLockLog
org.apache.ignite.internal.processors.cache.persistence.diagnostic.PageLockLogTest#testThreeReadPageLock_3
{code}
1. Step
main
locked pages = []
-> Try read lock nextOpPageId=1, nextOpStructureId=123
[pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
2. Step
main
locked pages = [1(r=1|w=0)]
L=1 -> Read lock nextOpPageId=1, nextOpCacheId=123
[pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
3. Step
main
locked pages = [1(r=1|w=0)]
L=1 -> Read lock nextOpPageId=1, nextOpCacheId=123
[pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
-> Try read lock nextOpPageId=11, nextOpStructureId=123
[pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
4. Step
main
locked pages = [1(r=1|w=0),11(r=1|w=0)]
L=1 -> Read lock nextOpPageId=1, nextOpCacheId=123
[pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
L=2 -> Read lock nextOpPageId=11, nextOpCacheId=123
[pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
5. Step
main
locked pages = [1(r=1|w=0),11(r=1|w=0)]
L=1 -> Read lock nextOpPageId=1, nextOpCacheId=123
[pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
L=2 -> Read lock nextOpPageId=11, nextOpCacheId=123
[pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
-> Try read lock nextOpPageId=111, nextOpStructureId=123
[pageIdxHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
6. Step
main
locked pages = [1(r=1|w=0),11(r=1|w=0),111(r=1|w=0)]
L=1 -> Read lock nextOpPageId=1, nextOpCacheId=123
[pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
L=2 -> Read lock nextOpPageId=11, nextOpCacheId=123
[pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
L=3 -> Read lock nextOpPageId=111, nextOpCacheId=123
[pageIdxHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
7. Step
main
locked pages = [1(r=1|w=0),111(r=1|w=0)]
L=1 -> Read lock nextOpPageId=1, nextOpCacheId=123
[pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
L=2 -> Read lock nextOpPageId=11, nextOpCacheId=123
[pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
L=3 -> Read lock nextOpPageId=111, nextOpCacheId=123
[pageIdxHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
L=2 <- Read unlock nextOpPageId=11, nextOpCacheId=123
[pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
8. Step
main
locked pages = [1(r=1|w=0)]
L=1 -> Read lock nextOpPageId=1, nextOpCacheId=123
[pageIdxHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
L=2 -> Read lock nextOpPageId=11, nextOpCacheId=123
[pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
L=3 -> Read lock nextOpPageId=111, nextOpCacheId=123
[pageIdxHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
L=2 <- Read unlock nextOpPageId=11, nextOpCacheId=123
[pageIdxHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
L=1 <- Read unlock nextOpPageId=111, nextOpCacheId=123
[pageIdxHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
9. Step
main
locked pages = []
{code}
> Support JMX/control.sh API for page lock dump
> ---------------------------------------------
>
> Key: IGNITE-11835
> URL: https://issues.apache.org/jira/browse/IGNITE-11835
> Project: Ignite
> Issue Type: Sub-task
> Reporter: Dmitriy Govorukhin
> Assignee: Dmitriy Govorukhin
> Priority: Major
> Fix For: 2.8
>
>
> Support JMX/control.sh API for page lock dump
> JMX
> {code}
> public interface PageLockMXBean {
> String dumpLocks();
> void dumpLocksToLog();
> String dumpLocksToFile();
> String dumpLocksToFile(String path);
> }
> {code}
> control.sh
> {code}
> --diagnostic pageLocksTracker dump // Return dump in string format.
> --diagnostic pageLocksTracker dump log // Print dump to console on node.
> --diagnostic pageLocksTracker dump file // Save dump to file generated in
> IGNITE_HOME dir.
> --diagnostic pageLocksTracker dump file {path} // Save dump to specific path.
> {code}
> HeapArrayLockStack and HeapArrayLockStack output:
> org.apache.ignite.internal.processors.cache.persistence.diagnostic.PageLockStackTest#testThreeReadPageLock_3
> {code}
> 1. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> -> try read lock, pageId=1 [pageIdxHex=0000000000000001, partId=1,
> pageIdx=1, flags=00000000]
> 2. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> 0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
> flags=00000000]
> 3. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> -> try read lock, pageId=11 [pageIdxHex=000000000000000b, partId=11,
> pageIdx=11, flags=00000000]
> 0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
> flags=00000000]
> 4. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> 1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11,
> flags=00000000]
> 0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
> flags=00000000]
> 5. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> -> try read lock, pageId=111 [pageIdxHex=000000000000006f, partId=111,
> pageIdx=111, flags=00000000]
> 1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11,
> flags=00000000]
> 0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
> flags=00000000]
> 6. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> 2 pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111,
> flags=00000000]
> 1 pageId=11 [pageIdxHex=000000000000000b, partId=11, pageIdx=11,
> flags=00000000]
> 0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
> flags=00000000]
> 7. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> 2 pageId=111 [pageIdxHex=000000000000006f, partId=111, pageIdx=111,
> flags=00000000]
> 1 -
> 0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
> flags=00000000]
> 8. Step
> main (time=1557216932196, 2019-05-07 11:15:32.196) locked pages stack:
> 0 pageId=1 [pageIdxHex=0000000000000001, partId=1, pageIdx=1,
> flags=00000000]
> {code}
> HeapArrayLockLog and OffHeapLockLog
> org.apache.ignite.internal.processors.cache.persistence.diagnostic.PageLockLogTest#testThreeReadPageLock_3
> {code}
> Locked pages = []
> Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
> -> Try Read lock nextOpPageId=1, nextOpStructureId=123
> [pageIdHex=0000000000000001, partId=1, pageIdx=1, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
> L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001,
> partId=1, pageIdx=1, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
> L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001,
> partId=1, pageIdx=1, flags=00000000]
> -> Try Read lock nextOpPageId=11, nextOpStructureId=123
> [pageIdHex=000000000000000b, partId=11, pageIdx=11, flags=00000000]
> Locked pages = [1(r=1|w=0),11(r=1|w=0)]
> Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
> L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001,
> partId=1, pageIdx=1, flags=00000000]
> L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b,
> partId=11, pageIdx=11, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
> L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001,
> partId=1, pageIdx=1, flags=00000000]
> L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b,
> partId=11, pageIdx=11, flags=00000000]
> L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b,
> partId=11, pageIdx=11, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages log: main time=(1559049634782, 2019-05-28 16:20:34.782)
> L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001,
> partId=1, pageIdx=1, flags=00000000]
> L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b,
> partId=11, pageIdx=11, flags=00000000]
> L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b,
> partId=11, pageIdx=11, flags=00000000]
> -> Try Read lock nextOpPageId=111, nextOpStructureId=123
> [pageIdHex=000000000000006f, partId=111, pageIdx=111, flags=00000000]
> Locked pages = [1(r=1|w=0),111(r=1|w=0)]
> Locked pages log: main time=(1559049634783, 2019-05-28 16:20:34.783)
> L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001,
> partId=1, pageIdx=1, flags=00000000]
> L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b,
> partId=11, pageIdx=11, flags=00000000]
> L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b,
> partId=11, pageIdx=11, flags=00000000]
> L=2 -> Read lock pageId=111, structureId=123 [pageIdHex=000000000000006f,
> partId=111, pageIdx=111, flags=00000000]
> Locked pages = [1(r=1|w=0)]
> Locked pages log: main time=(1559049634783, 2019-05-28 16:20:34.783)
> L=1 -> Read lock pageId=1, structureId=123 [pageIdHex=0000000000000001,
> partId=1, pageIdx=1, flags=00000000]
> L=2 -> Read lock pageId=11, structureId=123 [pageIdHex=000000000000000b,
> partId=11, pageIdx=11, flags=00000000]
> L=1 <- Read unlock pageId=11, structureId=123 [pageIdHex=000000000000000b,
> partId=11, pageIdx=11, flags=00000000]
> L=2 -> Read lock pageId=111, structureId=123 [pageIdHex=000000000000006f,
> partId=111, pageIdx=111, flags=00000000]
> L=1 <- Read unlock pageId=111, structureId=123 [pageIdHex=000000000000006f,
> partId=111, pageIdx=111, flags=00000000]
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)