upload_symbols: get tests passing under Python 3

There's one encoding fix to get pass the hard failure, then a bunch
of explicit socket/file closing to avoid resource leakage warnings.

BUG=chromium:997354
TEST=`./run_tests` passes

Change-Id: Icde02806e524a2bee835dd31126e1e1d2915683c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1919673
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/scripts/upload_symbols.py b/scripts/upload_symbols.py
index afbb020..09e4adb 100644
--- a/scripts/upload_symbols.py
+++ b/scripts/upload_symbols.py
@@ -261,10 +261,10 @@
         prefix='upload_symbols',
         dir=tempdir, delete=False) as temp_sym_file:
 
-      temp_sym_file.writelines(
-          [x for x in open(symbol.file_name, 'rb').readlines()
-           if not x.startswith('STACK CFI')]
-      )
+      with open(symbol.file_name, 'rb') as fp:
+        temp_sym_file.writelines(
+            x for x in fp.readlines() if not x.startswith(b'STACK CFI')
+        )
 
       original_file_size = file_size
       symbol.file_name = temp_sym_file.name
@@ -390,10 +390,11 @@
                    {'debug_file': symbol.header.name,
                     'debug_id': symbol.header.id.replace('-', '')}
                   }
-    ExecRequest('put',
-                upload['uploadUrl'], timeout,
-                api_key=api_key,
-                data=open(symbol.file_name, 'r'))
+    with open(symbol.file_name, 'r') as fp:
+      ExecRequest('put',
+                  upload['uploadUrl'], timeout,
+                  api_key=api_key,
+                  data=fp)
     ExecRequest('post',
                 '%s/uploads/%s:complete' % (
                     upload_url, upload['uploadKey']),