diff options
author | Chrysostomos Nanakos <cnanakos@grnet.gr> | 2014-09-18 14:30:49 +0300 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2014-09-22 11:39:48 +0100 |
commit | 2f78e491d7b46542158ce0b8132ee4e05bc0ade4 (patch) | |
tree | b0bbeff681f1f2910502ecf132cfb96258a350ad /include | |
parent | e91a8b2fef92e7d31290e785a35f85a503fa1356 (diff) |
async: aio_context_new(): Handle event_notifier_init failure
On a system with a low limit of open files the initialization
of the event notifier could fail and QEMU exits without printing any
error information to the user.
The problem can be easily reproduced by enforcing a low limit of open
files and start QEMU with enough I/O threads to hit this limit.
The same problem raises, without the creation of I/O threads, while
QEMU initializes the main event loop by enforcing an even lower limit of
open files.
This commit adds an error message on failure:
# qemu [...] -object iothread,id=iothread0 -object iothread,id=iothread1
qemu: Failed to initialize event notifier: Too many open files in system
Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/block/aio.h | 2 | ||||
-rw-r--r-- | include/qemu/main-loop.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/include/block/aio.h b/include/block/aio.h index 67a75ddd56..156272177f 100644 --- a/include/block/aio.h +++ b/include/block/aio.h @@ -102,7 +102,7 @@ void aio_set_dispatching(AioContext *ctx, bool dispatching); * They also provide bottom halves, a service to execute a piece of code * as soon as possible. */ -AioContext *aio_context_new(void); +AioContext *aio_context_new(Error **errp); /** * aio_context_ref: diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h index 6f0200a7ac..62c68c0f32 100644 --- a/include/qemu/main-loop.h +++ b/include/qemu/main-loop.h @@ -42,7 +42,7 @@ * * In the case of QEMU tools, this will also start/initialize timers. */ -int qemu_init_main_loop(void); +int qemu_init_main_loop(Error **errp); /** * main_loop_wait: Run one iteration of the main loop. |