Uploaded image for project: 'Percona Server'
  1. Percona Server
  2. PS-1509

LP #1326348: Uninitialized flush_counters_t::unzip_LRU_evicted use

    XMLWordPrintable

    Details

      Description

      **Reported in Launchpad by Laurynas Biveinis last update 10-06-2014 09:21:42

      ==5873== Thread 23:
      ==5873== Conditional jump or move depends on uninitialised value(s)
      ==5873== at 0xA15646: buf_do_LRU_batch(buf_pool_t*, unsigned long, bool, flush_counters_t*) (buf0flu.cc:1657)
      ==5873== by 0xA15A71: buf_flush_batch(buf_pool_t*, buf_flush_t, unsigned long, unsigned long, bool, flush_counters_t*) (buf0flu.cc:1790)
      ==5873== by 0xA15F04: buf_flush_LRU(buf_pool_t*, unsigned long, bool, flush_counters_t*) (buf0flu.cc:1954)
      ==5873== by 0xA1618C: buf_flush_LRU_tail() (buf0flu.cc:2259)
      ==5873== by 0xA16469: buf_flush_lru_manager_thread (buf0flu.cc:2850)
      ==5873== by 0x506A9D0: start_thread (in /lib64/libpthread-2.12.so)
      ==5873== by 0x634CB6C: clone (in /lib64/libc-2.12.so)
      ==5873== Uninitialised value was created by a stack allocation
      ==5873== at 0xA15F44: buf_flush_LRU_tail() (buf0flu.cc:2211)
      ==5873==

      The cause is

      if (max > n->unzip_LRU_evicted) {

      in buf_do_LRU_batch propagated from

      n->unzip_LRU_evicted
      += buf_free_from_unzip_LRU_list_batch(buf_pool, max);

      in the same function, called from buf_flush_LRU, called from buf_flush_LRU_tail, which has a stack-allocated uninitialised flush_counters_t variable propagated down. Regression introduced by bug 1295268 fix.

        Smart Checklist

          Attachments

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                lpjirasync lpjirasync (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: