Exemple #1
0
 def test_run_with_no_pid_file(self, mock1, mock2):
     segments = [
         self._get_mock_segment('seg1', '/tmp/gpseg1', 1234, 'host1',
                                'host1')
     ]
     c = CleanSharedMem(segments)
     c.run()
Exemple #2
0
 def test_run(self, mock1, mock2):
     segments = [self._get_mock_segment('seg1', '/tmp/gpseg1', 1234, 'host1', 'host1')]
     c = CleanSharedMem(segments)
     file_contents = 'asdfads\nasdfsd asdfadsf\n12345 23456'.split()
     m = MagicMock()
     m.return_value.__enter__.return_value.readlines.return_value = file_contents
     with patch('__builtin__.open', m, create=True):
         c.run()
Exemple #3
0
 def test_run_with_error_in_workerpool(self, mock1, mock2, mock3):
     segments = [self._get_mock_segment('seg1', '/tmp/gpseg1', 1234, 'host1', 'host1')]
     c = CleanSharedMem(segments)
     file_contents = 'asdfads\nasdfsd asdfadsf\n12345 23456'.split()
     m = MagicMock()
     m.return_value.__enter__.return_value.readlines.return_value = file_contents
     with patch('__builtin__.open', m, create=True):
         with self.assertRaisesRegexp(Exception, 'Unable to clean up shared memory'):
             c.run()
Exemple #4
0
 def test_run_with_invalid_pid_file(self, mock1, mock2):
     segments = [self._get_mock_segment('seg1', '/tmp/gpseg1', 1234, 'host1', 'host1')]
     c = CleanSharedMem(segments)
     file_contents = 'asdfadsasdfasdf'.split()
     m = MagicMock()
     m.return_value.__enter__.return_value.readlines.return_value = file_contents
     with patch('__builtin__.open', m, create=True):
         with self.assertRaisesRegexp(Exception, 'Unable to clean up shared memory for segment'):
             c.run()
Exemple #5
0
    def __ensureSharedMemCleaned(self, gpEnv, directives):
        """

        @param directives a list of the GpStopSegmentDirectoryDirective values indicating which segments to cleanup 

        """

        if len(directives) == 0:
            return

        logger.info(
            'Ensuring that shared memory is cleaned up for stopped segments')
        segments = [d.getSegment() for d in directives]
        segmentsByHost = GpArray.getSegmentsByHostName(segments)
        operation_list = [
            RemoteOperation(CleanSharedMem(segments), host=hostName)
            for hostName, segments in segmentsByHost.items()
        ]
        ParallelOperation(operation_list).run()

        for operation in operation_list:
            try:
                operation.get_ret()
            except Exception as e:
                logger.warning(
                    'Unable to clean up shared memory for stopped segments on host (%s)'
                    % operation.host)
 def test_run_with_no_pid_file(self, mock1, mock2):
     segments = [self._get_mock_segment('seg1', '/tmp/gpseg1', 1234, 'host1', 'host1')]
     c = CleanSharedMem(segments)
     c.run()