From 4991e9ab6a2adefa78a08b4582b62b2b093a319c Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Fri, 16 Jan 2015 19:21:27 +0100 Subject: [PATCH] static-delta: limit the number of writes in process to 1 This will avoid too many open files at the same time that could cause an EMFILE error. Signed-off-by: Giuseppe Scrivano (cherry picked from commit bc092b06f0e34e93f7d6102957bf55fd7ffd1b9e) --- src/libostree/ostree-repo-static-delta-processing.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/libostree/ostree-repo-static-delta-processing.c b/src/libostree/ostree-repo-static-delta-processing.c index 13abc6c0..a663b84c 100644 --- a/src/libostree/ostree-repo-static-delta-processing.c +++ b/src/libostree/ostree-repo-static-delta-processing.c @@ -265,6 +265,11 @@ _ostree_static_delta_part_execute_raw (OstreeRepo *repo, guint8 opcode; OstreeStaticDeltaOperation *op; + /* Limit the number of outstanding writes to 1 to prevent too many open files + at the same time. */ + while (state->outstanding_content_writes > 1) + g_main_context_iteration (state->content_writing_context, TRUE); + if (state->object_start) { if (!open_output_target (state, cancellable, error))