diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c index e83330b084fabf51d17314b44630ba9dd8ef9367..1c5fec375714d927025e0fbe03892c3f2222b7cb 100644 --- a/src/common/slurm_protocol_defs.c +++ b/src/common/slurm_protocol_defs.c @@ -266,7 +266,7 @@ void slurm_free_kill_tasks_msg ( kill_tasks_msg_t * msg ) void slurm_init_job_desc_msg ( job_desc_msg_t * job_desc_msg ) { - job_desc_msg -> contiguous = SLURM_JOB_DESC_DEFAULT_CONTIGUOUS ; + job_desc_msg -> contiguous = (uint16_t) SLURM_JOB_DESC_DEFAULT_CONTIGUOUS ; job_desc_msg -> dist = SLURM_JOB_DESC_DEFAULT_DIST ; job_desc_msg -> features = SLURM_JOB_DESC_DEFAULT_FEATURES ; job_desc_msg -> groups = SLURM_JOB_DESC_DEFAULT_GROUPS ; /* will be set by api */ @@ -281,7 +281,7 @@ void slurm_init_job_desc_msg ( job_desc_msg_t * job_desc_msg ) job_desc_msg -> procs_per_task = SLURM_JOB_DESC_DEFAULT_PROCS_PER_TASK ; job_desc_msg -> req_nodes = SLURM_JOB_DESC_DEFAULT_REQ_NODES ; job_desc_msg -> job_script = SLURM_JOB_DESC_DEFAULT_JOB_SCRIPT ; - job_desc_msg -> shared = SLURM_JOB_DESC_DEFAULT_SHARED ; + job_desc_msg -> shared = (uint16_t) SLURM_JOB_DESC_DEFAULT_SHARED ; job_desc_msg -> time_limit = SLURM_JOB_DESC_DEFAULT_TIME_LIMIT ; job_desc_msg -> num_procs = SLURM_JOB_DESC_DEFAULT_NUM_PROCS ; job_desc_msg -> num_nodes = SLURM_JOB_DESC_DEFAULT_NUM_NODES ; diff --git a/src/common/slurm_protocol_socket_implementation.c b/src/common/slurm_protocol_socket_implementation.c index d8fed427643fc616154689b1e86d8479ec86e572..663884e196733bba16fee264b7dc1b86c6b56f63 100644 --- a/src/common/slurm_protocol_socket_implementation.c +++ b/src/common/slurm_protocol_socket_implementation.c @@ -104,12 +104,13 @@ ssize_t _slurm_msg_sendto ( slurm_fd open_fd, char *buffer , size_t size , uint3 /* ignore SIGPIPE so that send can return a error code if the other side closes the socket */ signal(SIGPIPE, SIG_IGN); - + pack32 ( size , ( void ** ) & size_buffer , & size_buffer_len ) ; - + if ( ( send_len = _slurm_send ( open_fd , size_buffer_temp , sizeof ( uint32_t ) , SLURM_PROTOCOL_NO_SEND_RECV_FLAGS ) ) != sizeof ( uint32_t ) ) { info ( "Error sending length of datagram" ) ; + signal(SIGPIPE, SIG_DFL); return SLURM_PROTOCOL_ERROR ; } @@ -117,9 +118,11 @@ ssize_t _slurm_msg_sendto ( slurm_fd open_fd, char *buffer , size_t size , uint3 if ( send_len != size ) { info ( "_slurm_msg_sendto only transmitted %i of %i bytes", send_len , size ) ; + signal(SIGPIPE, SIG_DFL); return SLURM_PROTOCOL_ERROR ; } + signal(SIGPIPE, SIG_DFL); return send_len ; }