This version of coronerd includes support for PLCrashReporter, a new object reception mechanism, support for new symbol formats, improved performance and several bug fixes.
Features and Improvements
- HTTP return codes are now used consistently on the receive path.
- Significant improvements have been made to the core object storage and
I/O subsystems, allowing for out-of-order attributes, attachments and
objects. In addition to this, a new persistent identifier is used
for ephemeral objects before final commit, exposed as the
_rxidattribute. This attribute can be used interchangeably with any existing object identifier. It is now possible to query against previously submitted objects using these extensions.
- A new receive timestamp is now available, that stores the timestamp an object was received rather than the client-side generated timestamp of occurrence.
- The object store will cache all unindexed attributes and a value associated
with them. This will allow for easier identification of potential attributes
to index against. This is exposed in
- Semantics for UUID fields have been relaxed. Any valid hexadecimal string is cast to a valid 16-byte UUID. This is to cope with legacy libraries that incorrectly generate UUIDs.
- The “none” format is now the default for all attributes without a specified format.
- Improved performance through improved lazy evaluation of aggregations in the presence of sort and limit criteria in queries.
- For customers with storage sampling enabled, observability of sampling has been
morgue sampling status.
- Support has been added for multi-attribute sampling. It is possible to configure
dynamic rate-based sampling bucketed by multiple attributes. The default
is fingerprint, but users find it useful to include other attributes such
versionor other custom attributes.
ssl.prefer_server_ciphersis a new boolean option to
coronerd.conf, allowing to specify server cipher preference should be used over client-side cipher preference.
ssl.dhparamis a new option, specifies a dhparam file to use for SSL sessions.
ssl.ecdh_curve, allows for specification of ECDH curves for SSL sessions.
- A new
restrict_guesttop-level boolean option ahs been added. This permits guests to download JSON resource forks of objects, but unable to download the original file. In addition to this, it enables detailed audit logs of all get requests.
- Unique e-mail addresses are now enforced along with username, and can now be used for password recovery purposes.
- A new attribute called
_mod_faulting_tidcan now be set on object submission of minidump objects. If it is set, it specifies the thread to use for deduplication. Customers primarly use this attribute to incorporate their watchdog system for detecting hung threads.
- Support has been added for symbolicating JSON documents. It is now possible to submit JSON objects in unsymbolicated form, and Backtrace will symbolicate them asynchronously using the same dynamic symbol processing capabilities for minidump files.
- Support has been added for PLCrashReporter.
The object store is now able to ingest these files, just specify the
plcrashformat in the POST handler. Please refer to documentation for more information. Learn more here.
- Support has been added for native
ELFdebug information (both formatted in DWARF). Learn more here.
- Several bug fixes to memory management in the HTTP subsystem, including memory leaks impacting long-running workloads.
- Fixes an issue with response message handling for multipart requests.
- Fixes an issue where new retention policies could not be added on a per-project basis.
These issues only impact minidump consumers.
- Fixes an issue where code or debug identifiers casing was mismatched between different consumers in the system. This only impacts minidump consumers.
- Fixes an issue where the missing symbol journal is not properly cleaned up. This can lead to unnecessary load being generated and wasted disk space.
- A limit has been introduced for watcher count and time thresholds.
- Fixes an issue where a watcher may not be invoked if count or time thresholds have been exceeded until the next incoming object.