def kill_during_compaction(self):

        nodeA = self.servers[0]
        logp = NSLogPoller(0)
        logp.start()
        running = True
        threads = []

        def loader():
            while running:
                try:
                    self.load_docs(nodeA, 1000)
                except:
                    pass

        def compact():
            rest = RestConnection(nodeA)
            rest.compact_bucket()

        # async doc loaders
        for  i in range(10):
            t = threading.Thread(target=loader)
            t.start()
            threads.append(t)

        # watch for compaction start
        logp.setCompactEventFlag(True)

        # async compact
        t = threading.Thread(target=compact)
        t.start()

        # verify compaction event did happen
	assert logp.getEventQItem()
        logp.setCompactEventFlag(False)

        # kill mc
        assert self.kill_memcached(0)

        # stop data loading
        running = False
        [t.join() for t in threads]

        # get dmp_path from log poller
        dmp_path = logp.getDumpQItem()
        # verify a coresponding dmp exists on filesystem
        assert dmp_path and os.access(dmp_path, os.R_OK)
Пример #2
0
    def kill_during_compaction(self):

        nodeA = self.servers[0]
        logp = NSLogPoller(0)
        logp.start()
        running = True
        threads = []

        def loader():
            while running:
                try:
                    self.load_docs(nodeA, 1000)
                except:
                    pass

        def compact():
            rest = RestConnection(nodeA)
            rest.compact_bucket()

        # async doc loaders
        for i in range(10):
            t = threading.Thread(target=loader)
            t.start()
            threads.append(t)

        # watch for compaction start
        logp.setCompactEventFlag(True)

        # async compact
        t = threading.Thread(target=compact)
        t.start()

        # verify compaction event did happen
        assert logp.getEventQItem()
        logp.setCompactEventFlag(False)

        # kill mc
        assert self.kill_memcached(0)

        # stop data loading
        running = False
        [t.join() for t in threads]

        # get dmp_path from log poller
        dmp_path = logp.getDumpQItem()
        # verify a coresponding dmp exists on filesystem
        assert dmp_path and os.access(dmp_path, os.R_OK)