@@ -1516,7 +1516,7 @@ cmp_event_buf(const void * ptr0, const void * ptr1)
1516
1516
}
1517
1517
1518
1518
#if defined VM_TRACE || defined ERROR_INSERT
1519
- static Uint32 f_free_segments[32 ];
1519
+ static Uint32 f_free_segments[256 ];
1520
1520
static Uint32 f_free_segment_pos = 0 ;
1521
1521
#endif
1522
1522
@@ -1824,45 +1824,40 @@ Cmvmi::execDUMP_STATE_ORD(Signal* signal)
1824
1824
if (arg == DumpStateOrd::CmvmiLongSignalMemorySnapshot)
1825
1825
{
1826
1826
#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
+ }
1829
1837
#endif
1830
1838
}
1831
1839
1832
1840
if (arg == DumpStateOrd::CmvmiLongSignalMemorySnapshotCheck)
1833
1841
{
1834
1842
#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;
1837
1845
Uint32 cnt_dec = 0 ;
1838
1846
Uint32 cnt_inc = 0 ;
1839
1847
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++)
1844
1849
{
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++;
1860
1857
}
1861
1858
1862
1859
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++)
1866
1861
{
1867
1862
printf (" %u " , f_free_segments[i]);
1868
1863
}
0 commit comments