- Added
dry-run
mode to thecleanup
command that simulates the cleanup without deleting files. (#1531) - Parse debug identifiers from scraped JavaScript source files (#1534)
- Transaction sample rate is now configurable through the config file (#1517).
- In native symbolication, trying to download a source file from a sourcelink now creates a candidate (#1507).
- No documented changes.
- The
symbolicate-jvm
endpoint now additionally accepts a listclasses
of class names to deobfuscate. (#1496)
- fix: Don't report max requests errors to Sentry (#1471) by @loewenheim
- config: Turn max_concurrent_requests up to 200 (#1467) by @loewenheim
- Do a
cargo update
(#1468) by @Swatinem - ref(proguard): Don't log "not found" errors (#1469) by @loewenheim
- ref(js): Always serialize
symbolicated
flag (#1465) by @loewenheim
- feat(proguard): Remap filenames and abs_paths (#1432) by @loewenheim
- fix(js): Don't apply minified source context to symbolicated frame (#1449) by @loewenheim
- meta(proguard:) Update comments about remapping (#1444) by @loewenheim
- fix: Always trim source context lines (#1443) by @loewenheim
- fix(symbolicli): Add C# platform (#1442) by @loewenheim
- fix(proguard): Don't set
in_app
if frame wasn't mapped (#1440) by @loewenheim - fix(proguard): Correctly compute source file name (#1441) by @loewenheim
- Do a
cargo update
(#1439) by @Swatinem - ref(proguard): Increase in-memory cache size to 5GiB (#1438) by @loewenheim
- feat(js): JS frames have a new field
data.sourcemap_origin
containing information about where the sourcemap used to symbolicate the frame came frmo (#1447) by @loewenheim
- proguard: Added a mandatory
index
field toJvmFrame
(#1411) by @loewenheim - proguard: Support for source contex (#1414) by @loewenheim
- proguard: Field
lineno
onJvmFrame
is now optional (#1417) by @loewenheim - proguard: add support for frame signature (#1425 ) by @viglia
- proguard: add the translated and deobfuscated signature even in the case that the the whole frame could not be remapped (#1427) by @viglia
- Allow http symbol sources to indicate that invalid SSL certificates should be accepted (#1405) by @loewenheim
- Make host deny list optional and allow exclusion of individual hosts (#1407) by @loewenheim
- Do a
cargo update
(#1377) by @Swatinem - Increase percentage of sampled transactions (#1376) by @Swatinem
- feat(proguard): Add types for JVM requests (#1373) by @loewenheim
- Make stresstest observability configurable (#1375) by @Swatinem
- chore(ci): Revert upload-artifact version (#1374) by @azaslavsky
- doc(sources): Document rationale for Sentry list_file behavior (#1372) by @loewenheim
- Add a basic
proguard
workspace crate (#1371) by @Swatinem - build(deps): bump google-github-actions/auth from 1 to 2 (#1365) by @dependabot
- build(deps): bump actions/setup-python from 4 to 5 (#1364) by @dependabot
- build(deps): bump actions/checkout from 3 to 4 (#1368) by @dependabot
- build(deps): bump codecov/codecov-action from 3 to 4 (#1367) by @dependabot
- build(deps): bump actions/upload-artifact from 3.1.1 to 4.3.1 (#1366) by @dependabot
- Add dependabot for github actions. (#1362)
- No documented changes.
- No documented changes.
- No documented changes.
- No documented changes.
- No documented changes.
- No documented changes.
- No documented changes.
- No documented changes.
- No documented changes.
- Docker containers were updated to debian bookworm. (#1293)
- Do not process
.o
files in Symsorter. (#1288) - symsorter now uses the same filter as sentry-cli to ignore (very) large files and precompiled headers. (#1273)
- JS source mapping URLs are now read without query strings or fragments. (#1294)
- Bump
symbolic
from 12.3.0 to 12.4.0. (#1294)
- Bump
aws-sdk-rust
from 0.55.3 to 0.56.0. (#1282)
- Add a new
BundleIndex
for SourceMap processing (#1251) by @Swatinem
- Add authentication to Source Context fetching via scraping config (#1250)
- Add
--symbols
argument tosymbolicli
(#1241) - Add a new
BundleIndex
for SourceMap processing. (#1251)
- Reintroduce
--version
option tosymsorter
andwasm-split
(#1219) - Add special case for extracting name of rewritten async functions in Dart lang (#1246)
- No documented changes.
- JsFrame::lineno is no longer optional (#1203)
- No documented changes.
- Add single-file ZipArchive support to
maybe_decompress_file
(#1139) - Make source-context application optional. (#1173)
symbolicli
now supports JS symbolication. (#1186)- Tighten up download related timeouts and introduce new
head_timeout
. (#1190)
- Allow symbolicli to connect to reserved IPs (#1165)
- JS symbolication now requires a Sentry source (#1180)
symbolicli
now uses the right stacktraces for symbolication. (#1189)
- 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)
- Mask invalid file names in minidumps. (#1047, #1133)
- Update
minidump-processor
so minidumps with a 0-sized module are being processed. (#1131)
- 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)
- Use
moka
as an in-memoryCacher
implementation. (#1010)
- 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)
- 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)
- Add the
symbolicli
utility for local symbolication. (#919)
- 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)
- 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)
- Added an internal option to capture minidumps for hard crashes. This has to be enabled via the
_crash_db
config parameter. (#795)
- Update symbolic to generate/use higher fidelity CFI instructions for Win-x64 binaries. (#822)
- 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)
- 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)
- 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)
- 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)
- S3 sources: add support for custom regions. (#448)
- 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)
- Make various timeouts related to downloading files configurable. (#482, #489, #491)
- Introduced the
max_download_timeout
config setting for source downloads, which defaults to 315s. (#482, #489, #503 - Introduced the
streaming_timeout
config setting for source downloads, which defaults to 250s. (#489, #503 - Introduced the
connect_timeout
config setting for source downloads, which has a default of 15s. (#491, #496) - 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)
- New configuration option
hostname_tag
(#513) - 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)
- New configuration option
environment_tag
(#517) - 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)
- Introduced the
max_concurrent_requests
config setting, which limits the number of requests that will be processed concurrently. It defaults toSome(120)
. (#521, #537) - 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)
- Introduced the
custom_tags
config setting for metrics (#569) - Use the
tracing
crate for logging (#534)
- 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)
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)
- Measure how long it takes to download sources from external servers. (#483)
- Avoid serialization overhead when processing large minidumps out-of-process. (#508)
- 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)
- 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)
wasm-split
can remove names with--strip-names
. (#412)- Linux x64 builds of
symsorter
andwasm-split
can be downloaded from GitHub releases now. (#422)
- 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)
- 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.
- 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)
- Ensure deserialisation works for objects passed through procspawn. (#314)
wasm-split
now retains all sections. (#311)
- Symbolicator will now track Release Health Sessions for each symbolication request. (#289)
- Add support for DWARF in WASM. (#301)
- Support symbolication of native Dart stack traces by prioritizing DWARF function names over symbol table entries.
- Add
wasm-split
, which splits WASM files into code and debug information. (#303)
- Publish Docker containers to DockerHub at
getsentry/symbolicator
. (#271) - Add
processing_pool_size
configuration option that allows to set the size of the processing pool. (#273) - Use a dedicated
tmp
sub-directory in the cache directory to write temporary files into. (#265) - Use STATSD_SERVER environment variable to set metrics.statsd configuration option (#182)
- Added WASM support. (#301)
- Fix a bug where Sentry requests were cached even though caches were disabled. (#260)
- Fix CFI cache status in cases where the PDB file was found but not the PE file. (#279)
- Instead of marking unused unwind info as missing, report it as unused. (#293)
- This changelog is entirely incomplete, future releases will try to improve this.
- The configuration file is stricter on which fields can be present, unknown fields will no longer be accepted and cause an error.
- Configuring cache durations is now done using humantime.
- Initial version of symbolicator