I noticed this while testing the high FD usage patch. It can get stuck in the while loop.
Signed-off-by: Angus Salkeld <[email protected]> --- lib/util.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/lib/util.c b/lib/util.c index f285eb5..76b3891 100644 --- a/lib/util.c +++ b/lib/util.c @@ -339,6 +339,9 @@ openais_service_connect ( shmkey = random(); ipc_segment->shmid = shmget (shmkey, sizeof (struct shared_memory), IPC_CREAT|IPC_EXCL|0600); + if (ipc_segment->semid == -1 && errno == ENOSPC) { + goto error_exit; + } } while (ipc_segment->shmid == -1); /* @@ -347,6 +350,9 @@ openais_service_connect ( do { semkey = random(); ipc_segment->semid = semget (semkey, 3, IPC_CREAT|IPC_EXCL|0600); + if (ipc_segment->semid == -1 && errno == ENOSPC) { + goto error_exit; + } ipc_segment->euid = geteuid (); } while (ipc_segment->semid == -1); -- 1.7.4 _______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
