Browse Source

Fixed global symbol cache and update dsym

Armin Ronacher 9 years ago
parent
commit
3f9938fd0b
3 changed files with 11 additions and 9 deletions
  1. 1 1
      setup.py
  2. 7 5
      src/sentry/lang/native/dsymcache.py
  3. 3 3
      src/sentry/lang/native/symbolizer.py

+ 1 - 1
setup.py

@@ -137,7 +137,7 @@ postgres_requires = [
 ]
 
 dsym_requires = [
-    'symsynd>=0.1.0,<1.0.0',
+    'symsynd>=0.2.0,<1.0.0',
 ]
 
 

+ 7 - 5
src/sentry/lang/native/dsymcache.py

@@ -23,13 +23,15 @@ class DSymCache(object):
         return os.path.join(settings.DSYM_CACHE_PATH, 'global')
 
     def fetch_dsyms(self, project, uuids):
-        base = self.get_project_path(project)
+        bases = set()
         loaded = []
         for image_uuid in uuids:
-            dsym = self.fetch_dsym(project, image_uuid)
-            if dsym is not None:
+            rv = self.fetch_dsym(project, image_uuid)
+            if rv is not None:
+                base, dsym = rv
                 loaded.append(dsym)
-        return base, loaded
+                bases.add(base)
+        return list(bases), loaded
 
     def try_bump_timestamp(self, path, old_stat):
         now = int(time.time())
@@ -70,7 +72,7 @@ class DSymCache(object):
                 shutil.copyfileobj(sf, df)
             os.rename(dsym + '_tmp', dsym)
 
-        return dsym
+        return base, dsym
 
     def clear_old_entries(self):
         try:

+ 3 - 3
src/sentry/lang/native/symbolizer.py

@@ -8,11 +8,11 @@ except ImportError:
 from sentry.lang.native.dsymcache import dsymcache
 
 
-def make_symbolizer(project, binary_images):
+def make_symolizer(project, binary_images):
     if not have_symsynd:
         raise RuntimeError('symsynd is unavailable.  Install sentry with '
                            'the dsym feature flag.')
     driver = Driver()
-    dsym_path, loaded = dsymcache.fetch_dsyms(project,
+    dsym_paths, loaded = dsymcache.fetch_dsyms(project,
         [x['uuid'] for x in binary_images])
-    return ReportSymbolizer(driver, dsym_path, binary_images)
+    return ReportSymbolizer(driver, dsym_paths, binary_images)