mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2025-08-14 15:02:39 +00:00
CTS: fix buffer overrun in test agent.
Also to make debugging easier: 1) don't stop abrt 2) fix debug message 3) catch a failed mesage to the TA and fail the test. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2680 fd59a12c-fef9-0310-b244-a6a79926bd2f
This commit is contained in:
parent
1924e328ca
commit
b5a9d81f1f
@ -72,7 +72,7 @@ typedef struct {
|
||||
char payload[1];
|
||||
} msg_t;
|
||||
|
||||
#define LOG_STR_SIZE 128
|
||||
#define LOG_STR_SIZE 256
|
||||
typedef struct {
|
||||
char log[LOG_STR_SIZE];
|
||||
struct list_head list;
|
||||
@ -129,7 +129,7 @@ static void delivery_callback (
|
||||
|
||||
log_pt = malloc (sizeof(log_entry_t));
|
||||
list_init (&log_pt->list);
|
||||
snprintf (log_pt->log, 128, "%d:%d:%d:%d;",
|
||||
snprintf (log_pt->log, LOG_STR_SIZE, "%d:%d:%d:%d;",
|
||||
msg_pt->nodeid, msg_pt->pid, msg_pt->seq, status);
|
||||
list_add_tail (&log_pt->list, &msg_log_head);
|
||||
total_stored_msgs++;
|
||||
@ -155,7 +155,7 @@ static void config_change_callback (
|
||||
|
||||
log_pt = malloc (sizeof(log_entry_t));
|
||||
list_init (&log_pt->list);
|
||||
snprintf (log_pt->log, 256, "%s,%d,%d,left",
|
||||
snprintf (log_pt->log, LOG_STR_SIZE, "%s,%d,%d,left",
|
||||
groupName->value, left_list[i].nodeid,left_list[i].pid);
|
||||
list_add_tail(&log_pt->list, &config_chg_log_head);
|
||||
}
|
||||
@ -164,7 +164,7 @@ static void config_change_callback (
|
||||
|
||||
log_pt = malloc (sizeof(log_entry_t));
|
||||
list_init (&log_pt->list);
|
||||
snprintf (log_pt->log, 256, "%s,%d,%d,join",
|
||||
snprintf (log_pt->log, LOG_STR_SIZE, "%s,%d,%d,join",
|
||||
groupName->value, joined_list[i].nodeid,joined_list[i].pid);
|
||||
list_add_tail (&log_pt->list, &config_chg_log_head);
|
||||
}
|
||||
|
@ -261,7 +261,6 @@ class corosync_flatiron(ClusterManager):
|
||||
for node in self.Env["nodes"]:
|
||||
self.ShouldBeStatus[node] = ""
|
||||
self.unisolate_node(node)
|
||||
self.rsh(node, 'service abrtd stop', 1)
|
||||
self.StataCM(node)
|
||||
|
||||
def HasQuorum(self, node_list):
|
||||
@ -355,7 +354,6 @@ class TestAgent(object):
|
||||
|
||||
def start(self):
|
||||
'''Set up the given ScenarioComponent'''
|
||||
|
||||
self.env.debug('test agent: start (' + self.node + ')')
|
||||
self.sock = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
|
||||
ip = socket.gethostbyname(self.node)
|
||||
@ -369,7 +367,7 @@ class TestAgent(object):
|
||||
is_connected = True
|
||||
except socket.error, msg:
|
||||
if retries > 5:
|
||||
self.env.debug( "Retried " + str(retries) + " times. Error: " + msg )
|
||||
self.env.debug("Retried " + str(retries) + " times. Error: " + str(msg))
|
||||
time.sleep(1)
|
||||
self.started = True
|
||||
self.used = False
|
||||
|
@ -96,7 +96,10 @@ class CpgConfigChangeBase(CoroTest):
|
||||
printit = 0
|
||||
self.CM.log("Waiting for config change on " + self.listener)
|
||||
while not found:
|
||||
event = self.CM.agent[self.listener].read_config_event()
|
||||
try:
|
||||
event = self.CM.agent[self.listener].read_config_event()
|
||||
except:
|
||||
return self.failure('connection to test agent failed.')
|
||||
if not event == None:
|
||||
self.CM.debug("RECEIVED: " + str(event))
|
||||
if event == None:
|
||||
|
Loading…
Reference in New Issue
Block a user