Releases: getsentry/symbolicator
Releases · getsentry/symbolicator
23.4.0
Features
- Migrate to monthly CalVer releases. (#1130)
- Introduce a
CacheKeyBuilder
and human-readableCacheKey
metadata. (#1033, #1036) - Use new
CacheKey
for writes and shared-cache. (#1038) - Consolidate
CacheVersions
and bump to refreshCacheKey
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
Features
- Added a field
adjust_instruction_addr: Option<bool>
toRawFrame
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
toaws-sdk-s3
. (#849, #954) - Replace the last remaining LRU caches with
moka
versions and removelru
dependency. (#978)
Dependencies
0.6.0
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
0.5.1
0.5.0
Features
- Support for
external_debug_info
section in wasm-split for external dwarf files. (#619) - Added windows binaries for
wasm-split
andsymsorter
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
andsimplified
logging formats. (#755) - Make sure "source" candidates are being recorded (ISSUE-1365). (#765)
0.4.2
0.4.1
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
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 toSome(120)
. (#521, #537) - Introduced
hostname_tag
(#513) - Introduced
max_lazy_redownloads
andmax_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
andmax_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
0.3.4
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
andwasm-split
can be downloaded from GitHub releases now. (#422)
0.3.3
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)