Skip to content

Releases: getsentry/symbolicator

23.4.0

15 Apr 19:09
Compare
Choose a tag to compare

Features

  • Migrate to monthly CalVer releases. (#1130)
  • Introduce a CacheKeyBuilder and human-readable CacheKey metadata. (#1033, #1036)
  • Use new CacheKey for writes and shared-cache. (#1038)
  • Consolidate CacheVersions and bump to refresh CacheKey usage. (#1041, #1042)
  • Automatically block downloads from unreliable hosts. (#1039)
  • Fully migrate CacheKey usage and remove legacy markers. (#1043)
  • Add support for in-memory caching. (#1028)
  • Add --log-level argument to symbolicli. (#1074)
  • Resolve source context from embedded source links (mainly in Portable PDBs) (#1103, #1108)

Fixes

  • Mask invalid file names in minidumps. (#1047, #1133)
  • Update minidump-processor so minidumps with a 0-sized module are being processed. (#1131)

Dependencies

0.7.0

09 Feb 14:09
Compare
Choose a tag to compare

Features

  • Added a field adjust_instruction_addr: Option<bool> to RawFrame to signal whether the
    frame's instruction address needs to be adjusted for symbolication. (#948)
  • Added offline mode and caching to symbolicli. (#967,#968)
  • Support PortablePDB embedded sources. (#996)
  • Properly support NuGet symbols with SymbolChecksum. (#993)

Internal

  • Use a default crash DB if we have a Cache configured. (#941)
  • Simplified internal error and cache architecture. (#929,
    #936, #937)
  • Migrate from rusoto to aws-sdk-s3. (#849, #954)
  • Replace the last remaining LRU caches with moka versions and remove lru dependency. (#978)

Dependencies

0.6.0

23 Nov 13:30
Compare
Choose a tag to compare

Features

  • Use Portable PDB files for .NET event symbolication (#883)
  • Use Unity il2cpp line mapping files in symcache creation (#831)
  • Read thread names from minidumps and Apple crash reports (#834)
  • Add support for serving web requests using HTTPS (#829)
  • Bump Native SDK to v0.5.0 (#865)
  • Use rust:bullseye-slim as base image for docker container builder. (#885)
  • Use debian:bullseye-slim as base image for docker container runner. (#885)
  • Use jemalloc as global allocater (for Rust and C). (#885)
  • Clean up empty cache directories. (#887)
  • Update symbolic and increase SymCache Version to 4 which now uses a LEB128-prefixed string table. (#886)
  • Add Configuration options for in-memory Caches. (#911)

Fixes

  • Update symbolic and increase the SymCache version for the following fixes: (#857)
    • fixed problems with DWARF functions that have the same line records for different inline hierarchy
    • fixed problems with PDB where functions have line records that don't belong to them
    • fixed problems with PDB/DWARF when parent functions don't have matching line records
    • using a new TypeFormatter for PDB that can pretty-print function arguments
  • Update symbolic and increase CFI/SymCache versions for the following fixes: ([#861](https://github.com/getsentry/symbolicator/pull/
    861))
    • Allow underflow in Win-x64 CFI which allows loading registers from outside the stack frame.
    • Another round of SymCache fixes as followup to the above.
  • Extract the correct code_id from iOS minidumps. (#858)
  • Fetch/use CFI for modules that only have a CodeId. (#860)
  • Properly mask Portable PDB Age for symstore/SSQP lookups. (#888)
  • Avoid a redundant open/read and fix shared cache refresh. (#893)
  • Correctly return object candidates for malformed caches. (#917)

Internal

  • Fetch CFI on-demand during stackwalking (#838)
  • Deduplicate SymbolFile computations in SymbolicatorSymbolProvider (#856)
  • Separated the symbolication service from the http interface. (#903)
  • Move Request/Response/Poll handling into web frontend. (#904)
  • Remove unused processing_pool_size config. (#910)

0.5.1

07 Jun 19:59
Compare
Choose a tag to compare

Features

  • Added an internal option to capture minidumps for hard crashes. This has to be enabled via the _crash_db config parameter. (#795)

Fixes

  • Update symbolic to generate/use higher fidelity CFI instructions for Win-x64 binaries. (#822)

0.5.0

27 Apr 13:43
Compare
Choose a tag to compare

Features

  • Support for external_debug_info section in wasm-split for external dwarf files. (#619)
  • Added windows binaries for wasm-split and symsorter to releases (#624)
  • Also populate the shared cache from existing items in the local cache, not only new ones. (#648)
  • Switch minidump processing entirely to rust-minidump, this is currently faster, more reliable and produces at least similar quality stacktraces. Breakpad has been removed as a dependency. (#723 #731 #732)

Fixes

  • Avoid errors from symbol source in bcsymbolmap lookups from cancelling the entire symcache lookup. (#643)
  • Use wildcard matcher for symstore proxy. (#671)
  • Detect unwind and debug information in ELF files that contain sections with offset 0. They were previously skipped in some cases. (#688)
  • Support processing unwind information in ELF files linked with gold. (#688)
  • Automatically refresh expired AWS ECS container credentials. (#754)
  • Don't emit ANSI escape sequences with auto=false and simplified logging formats. (#755)
  • Make sure "source" candidates are being recorded (ISSUE-1365). (#765)

0.4.2

27 Jan 08:48
Compare
Choose a tag to compare

Features

  • Support for external_debug_info section in wasm-split for external dwarf files. (#619)
  • Added windows binaries for wasm-split and symsorter to releases (#624)

Fixes

  • Avoid errors from symbol source in bcsymbolmap lookups from cancelling the entire symcache lookup. (#643)

0.4.1

22 Dec 11:34
Compare
Choose a tag to compare

Features

  • Very basic shared-cache support, allowing multiple symbolicators to share one global cache and have faster warmup times. (#581)
  • Support concurrency control and backpressure on uploading to shared cache. (#584)
  • Use Google Application Credentials to authenticate to GCS in the shared cache. (#591)

Fixes

  • Truncate Malformed and Cache-Specific entries in the cache to match the length of their contents, in case they overwrote some longer, existing entry. (#586)

0.4.0

20 Oct 10:16
Compare
Choose a tag to compare

Features

symbolic

  • Bump symbolic to support versioning of CFI Caches. (#467)
  • Update symbolic to write versioned CFI Caches, and fix SymCache conversion related to inline-parent offset. (#470)
  • Update symbolic to allow processing PDB files with broken inlinee records. (#477)
  • Update symbolic to correctly apply bcsymbolmaps to symbol and filenames coming from DWARF. (#479)
  • Update symbolic to correctly restore registers when using compact unwinding. (#487)

New Config Settings

  • Introduced max_download_timeout for source downloads, which defaults to 315s. (#482, #489, #503)
  • Introduced streaming_timeout for source downloads, which defaults to 250s. (#489, #503)
  • Introduced connect_timeout for source downloads, which has a default of 15s. (#491, #496)
  • Introduced max_concurrent_requests config setting, which limits the number of requests that will be processed concurrently. It defaults to Some(120). (#521, #537)
  • Introduced hostname_tag (#513)
  • Introduced max_lazy_redownloads and max_lazy_recomputations for downloaded and derived caches respectively. These limit the number of downloads and cache computations that can be performed in the background. (#535)
  • Introduced custom_tags for metrics (#569)

Everything else

  • S3 sources: add support for custom regions. (#448)
  • GCS, S3, HTTP, and local filesystem sources: Attempt to retry failed downloads at least once. (#485)
  • Refresh symcaches when a new BcSymbolMap becomes available. (#493)
  • Cache download failures and do not retry the download for a while (#484, #501)
  • Introduced a new cache status to represent failures specific to the cache: Download failures that aren't related to the file being missing in download caches and conversion errors in derived caches. Download failure entries expire after 1 hour, and conversion errors expire after 1 day, or after symbolicator is restarted. (#509)
  • Malformed and Cache-specific Error cache entries now contain some diagnostic info. (#510)
  • Source candidates which symbolicator has failed to download due to non-400 errors are now being returned in symbolication payloads. These candidates include additional diagnostic info which briefly describes the download error. (#512)
  • If a DIF object candidate could not be downloaded due to a lack of permissions, their respective entry in a symbolication response will now mention something about permissions instead of marking the candidate as just Missing. (#512, #518)
  • Symbolication tasks are being spawned on a tokio 1 Runtime now. (#531)
  • Symbolicator now allows explicitly versioning its caches. It will fall back to supported outdated cache versions immediately instead of eagerly waiting for updated cache files. Recomputations of newer cache versions are being done lazily in the background, bounded by new settings max_lazy_redownloads and max_lazy_recomputations for downloaded and derived caches respectively. (#524, #533, #535)
  • Remove actix-web in favor of axum. This changes the web framework and also completely switches to the tokio 1 Runtime. (#544)
  • Search for all known types of debug companion files during symbolication, in case there exists for example an ELF debug companion for a PE. (#555)

Fixes

  • Skip trailing garbage frames after _start. (#514)
  • Respect the build_id provided on the commandline of wasm-split. (#554)
  • Update symbolic to a version with more lenient ELF parsing which is able to process invalid flutter 2.5 debug files. (#562)

Tools

  • symsorter no longer emits files with empty debug identifiers. (#469)
  • MacOS universal builds (x86_64 + ARM in one fat binary) of symbolicator, symsorter and wasm-split can be downloaded from GitHub releases now. (#565, #568)

Internal

  • Measure how long it takes to download sources from external servers. (#483)
  • Avoid serialization overhead when processing large minidumps out-of-process. (#508)

0.3.4

11 Jun 10:20
Compare
Choose a tag to compare

Features

  • Add support for BCSymbolMap auxiliary files which when present on the symbol server will automatically resolve obfuscated symbol names (#403)
  • S3 sources: add support for using AWS container credentials provided by IAM task roles. (#417)
  • Implement new Symbolication Quality Metrics. (#426)
  • Convert stackwalking/cfi loading into a fixpoint iteration. (#450)

Bug Fixes

  • Update the mtime of a cache when it is 1h out of date. (#390)
  • Bump symbolic to fix large public records. (#385, #387)
  • Bump symbolic to support debug_addr indexes in DWARF functions. (#389)
  • Fix retry of DIF downloads from sentry (#397)
  • Remove expired cache entries in auxdifs and diagnostics (#444)
  • Bump symbolic to update other DWARF and WASM handling dependencies, and improve support for compact unwind information, including stackless functions in MachO, with special handling for _sigtramp. (#457)

Tools

  • wasm-split can remove names with --strip-names. (#412)
  • Linux x64 builds of symsorter and wasm-split can be downloaded from GitHub releases now. (#422)

0.3.3

11 Feb 11:26
Compare
Choose a tag to compare

Features

  • Add NotFound status for sources which didn't provide any DIF object candidates. (#327)
  • Symbolication responses include download, debug and unwind information about all DIF object files which were looked up on the available object sources. (#309 #316 #324 #344)

Bug Fixes

  • Silently ignore unknown fields in minidump and apple crash report requests instead of responding with 400 Bad Request. (#321)
  • Update breakpad to allow processing MIPS minidumps and support reading MIPS debug sections. (#325)
  • Improve amd64 stack scanning by excluding some false-positive frames. (#325)
  • Resolve correct line information for large inline functions.

Internal

  • Changed the internal HTTP transport layer. There is no expected difference in the way Symbolicator downloads files from symbol servers, although some internal timeouts and error messages may change. (#335)
  • Report more descriptive errors if symbolication fails with internal errors, timeouts or crashes. (#365)
  • Remove an unused threadpool. (#370, #378)