Skip to content

Commit a2a22ea

Browse files
author
Ole John Aske
committed
Merge branch 'mysql-8.0' into mysql-trunk
Change-Id: I2f006d71dccb604da9c18b2d6c60ef0453af6a09
2 parents fc1e595 + ff5c164 commit a2a22ea

File tree

1 file changed

+22
-27
lines changed

1 file changed

+22
-27
lines changed

storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp

Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1516,7 +1516,7 @@ cmp_event_buf(const void * ptr0, const void * ptr1)
15161516
}
15171517

15181518
#if defined VM_TRACE || defined ERROR_INSERT
1519-
static Uint32 f_free_segments[32];
1519+
static Uint32 f_free_segments[256];
15201520
static Uint32 f_free_segment_pos = 0;
15211521
#endif
15221522

@@ -1824,45 +1824,40 @@ Cmvmi::execDUMP_STATE_ORD(Signal* signal)
18241824
if (arg == DumpStateOrd::CmvmiLongSignalMemorySnapshot)
18251825
{
18261826
#if defined VM_TRACE || defined ERROR_INSERT
1827-
f_free_segments[f_free_segment_pos] = g_sectionSegmentPool.getNoOfFree();
1828-
f_free_segment_pos = (f_free_segment_pos + 1) % NDB_ARRAY_SIZE(f_free_segments);
1827+
if (f_free_segment_pos < NDB_ARRAY_SIZE(f_free_segments))
1828+
{
1829+
f_free_segments[f_free_segment_pos++] = g_sectionSegmentPool.getNoOfFree();
1830+
}
1831+
else
1832+
{
1833+
g_eventLogger->warning("CmvmiLongSignalMemorySnapshot IGNORED"
1834+
", exceeded the max %lu snapshots",
1835+
NDB_ARRAY_SIZE(f_free_segments));
1836+
}
18291837
#endif
18301838
}
18311839

18321840
if (arg == DumpStateOrd::CmvmiLongSignalMemorySnapshotCheck)
18331841
{
18341842
#if defined VM_TRACE || defined ERROR_INSERT
1835-
Uint32 start = (f_free_segment_pos + 1)% NDB_ARRAY_SIZE(f_free_segments);
1836-
Uint32 stop = (f_free_segment_pos - 1) % NDB_ARRAY_SIZE(f_free_segments);
1843+
Uint32 start = 1;
1844+
Uint32 stop = f_free_segment_pos;
18371845
Uint32 cnt_dec = 0;
18381846
Uint32 cnt_inc = 0;
18391847
Uint32 cnt_same = 0;
1840-
Uint32 count = 0;
1841-
for (Uint32 i = start;
1842-
i != stop;
1843-
i = (i + 1) % NDB_ARRAY_SIZE(f_free_segments))
1848+
for (Uint32 i = start; i < stop; i++)
18441849
{
1845-
/**
1846-
* Only check start of test with stop of test, avoid checks of what
1847-
* happened when test wasn't active.
1848-
*/
1849-
if (count != 0 && ((count % 2) == 0))
1850-
{
1851-
Uint32 prev = (i - 1) % NDB_ARRAY_SIZE(f_free_segments);
1852-
if (f_free_segments[prev] == f_free_segments[i])
1853-
cnt_same++;
1854-
else if (f_free_segments[prev] > f_free_segments[i])
1855-
cnt_dec++;
1856-
else if (f_free_segments[prev] < f_free_segments[i])
1857-
cnt_inc++;
1858-
}
1859-
count++;
1850+
Uint32 prev = (i - 1);
1851+
if (f_free_segments[prev] == f_free_segments[i])
1852+
cnt_same++;
1853+
else if (f_free_segments[prev] > f_free_segments[i])
1854+
cnt_dec++;
1855+
else
1856+
cnt_inc++;
18601857
}
18611858

18621859
printf("snapshots: ");
1863-
for (Uint32 i = start;
1864-
i != stop;
1865-
i = (i + 1) % NDB_ARRAY_SIZE(f_free_segments))
1860+
for (Uint32 i = 0; i < stop; i++)
18661861
{
18671862
printf("%u ", f_free_segments[i]);
18681863
}

0 commit comments

Comments
 (0)