[gnome-continuous-yocto/gnomeostree-3.28-rocko: 7003/8267] bitbake: process: Don't leak open pipes upon reconnection
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 7003/8267] bitbake: process: Don't leak open pipes upon reconnection
- Date: Sun, 17 Dec 2017 05:38:17 +0000 (UTC)
commit 07cee9dea1ad3408a49e4b9d9f5318474ddfa60b
Author: Richard Purdie <richard purdie linuxfoundation org>
Date: Fri Jul 28 15:42:50 2017 +0100
bitbake: process: Don't leak open pipes upon reconnection
If we reconnect to the server, stop leaking pipes and clean up
after ourselves.
(Bitbake rev: f41e4e971e807157be68cf4496580494b8b60643)
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
bitbake/lib/bb/server/process.py | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
---
diff --git a/bitbake/lib/bb/server/process.py b/bitbake/lib/bb/server/process.py
index 6106c07..3530bdc 100644
--- a/bitbake/lib/bb/server/process.py
+++ b/bitbake/lib/bb/server/process.py
@@ -420,7 +420,11 @@ def connectProcessServer(sockname, featureset):
finally:
os.chdir(cwd)
+ readfd = writefd = readfd1 = writefd1 = readfd2 = writefd2 = None
+ eq = command_chan_recv = command_chan = None
+
try:
+
# Send an fd for the remote to write events to
readfd, writefd = os.pipe()
eq = BBUIEventQueue(readfd)
@@ -435,9 +439,22 @@ def connectProcessServer(sockname, featureset):
server_connection = BitBakeProcessServerConnection(command_chan, command_chan_recv, eq, sock)
+ # Close the ends of the pipes we won't use
+ for i in [writefd, readfd1, writefd2]:
+ os.close(i)
+
server_connection.connection.updateFeatureSet(featureset)
- except:
+ except (Exception, SystemExit) as e:
+ if command_chan_recv:
+ command_chan_recv.close()
+ if command_chan:
+ command_chan.close()
+ for i in [writefd, readfd1, writefd2]:
+ try:
+ os.close(i)
+ except OSError:
+ pass
sock.close()
raise
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]