profile
viewpoint
Arpad Borsos Swatinem @getsentry Vienna, Austria https://swatinem.de

nickmerwin/node-coveralls 1064

lcov posting to coveralls.io

matthewmueller/array 709

A better array for the browser and node.js. Supports events & many functional goodies.

rust-minidump/rust-minidump 383

Type definitions, parsing, and analysis for the minidump file format.

Swatinem/analyses 9

basic data flow analyses framework based on esprima

ForbesLindesay/component-release 6

Node.js based git-release for use with component

pagestrip/reisy 4

runtime extendable inline styles

Swatinem/analyses-old 3

Static Analysis based on Esprima

Swatinem/codingcontest-2018-11-16 2

https://register.codingcontest.org/listing/6-2018-11-16

push eventSwatinem/kycok

Arpad Borsos

commit sha 70cffdf0d64b845273f7fc3fe461c9937c27fac1

make it generic

view details

Arpad Borsos

commit sha 3dce990a415ac5920e26ad31ce617a24a77ff3a5

implement all strategies

view details

Arpad Borsos

commit sha c78aa85ce5515df55f5a166129d660fe4675fd6e

readme

view details

push time in 7 hours

create barnchSwatinem/kycok

branch : master

created branch time in 10 hours

created repositorySwatinem/kycok

Dealing with chunked files

created time in 10 hours

PR opened getsentry/symbolicator

Add a metric for needed files per JS event

Interestingly enough, we did not have this metric previously

#skip-changelog

+4 -0

0 comment

2 changed files

pr created time in a day

create barnchgetsentry/symbolicator

branch : swatinem/metric-needed=iles

created branch time in a day

Pull request review commentgetsentry/symbolicator

feat: Return "scraping attempts" from JS symbolication

 impl ArtifactFetcher {     /// (because multiple files can share one [`DebugId`]).     #[tracing::instrument(skip(self))]     pub async fn get_file(&mut self, key: &FileKey) -> CachedFileEntry {-        if let Some(file) = self.try_get_file_using_index(key).await {-            return file;+        let mut file = self.try_get_file_using_index(key).await;++        if file.is_none() {+            // Try looking up the file in one of the artifact bundles that we know about.+            file = self.try_get_file_from_bundles(key);         } -        // Try looking up the file in one of the artifact bundles that we know about.-        if let Some(file) = self.try_get_file_from_bundles(key) {-            return file;+        if file.is_none() {+            // Otherwise, try to get the file from an individual artifact.+            file = self.try_fetch_file_from_artifacts(key).await;         } -        // Otherwise, try to get the file from an individual artifact.-        if let Some(file) = self.try_fetch_file_from_artifacts(key).await {-            return file;+        if file.is_none() {+            // Otherwise: Do a (cached) API lookup for the `abs_path` + `DebugId`+            if self.query_sentry_for_file(key).await {+                // At this point, *one* of our known artifacts includes the file we are looking for.+                // So we do the whole dance yet again.+                file = self.try_get_file_from_bundles(key);+                if file.is_none() {+                    file = self.try_fetch_file_from_artifacts(key).await;+                }+            }         } -        // Otherwise: Do a (cached) API lookup for the `abs_path` + `DebugId`-        if self.query_sentry_for_file(key).await {-            // At this point, *one* of our known artifacts includes the file we are looking for.-            // So we do the whole dance yet again.-            if let Some(file) = self.try_get_file_from_bundles(key) {-                return file;+        match file {+            Some(file) => {

if let for this block, yes.

in general this looks good, as I don’t know how we could retain the early-return behavior otherwise.

loewenheim

comment created time in a day

PullRequestReviewEvent

Pull request review commentgetsentry/symbolicator

feat: Return "scraping attempts" from JS symbolication

 impl ArtifactFetcher {     /// (because multiple files can share one [`DebugId`]).     #[tracing::instrument(skip(self))]     pub async fn get_file(&mut self, key: &FileKey) -> CachedFileEntry {-        if let Some(file) = self.try_get_file_using_index(key).await {-            return file;+        let mut file = self.try_get_file_using_index(key).await;++        if file.is_none() {+            // Try looking up the file in one of the artifact bundles that we know about.+            file = self.try_get_file_from_bundles(key);         } -        // Try looking up the file in one of the artifact bundles that we know about.-        if let Some(file) = self.try_get_file_from_bundles(key) {-            return file;+        if file.is_none() {+            // Otherwise, try to get the file from an individual artifact.+            file = self.try_fetch_file_from_artifacts(key).await;         } -        // Otherwise, try to get the file from an individual artifact.-        if let Some(file) = self.try_fetch_file_from_artifacts(key).await {-            return file;+        if file.is_none() {+            // Otherwise: Do a (cached) API lookup for the `abs_path` + `DebugId`+            if self.query_sentry_for_file(key).await {+                // At this point, *one* of our known artifacts includes the file we are looking for.+                // So we do the whole dance yet again.+                file = self.try_get_file_from_bundles(key);+                if file.is_none() {+                    file = self.try_fetch_file_from_artifacts(key).await;+                }+            }         } -        // Otherwise: Do a (cached) API lookup for the `abs_path` + `DebugId`-        if self.query_sentry_for_file(key).await {-            // At this point, *one* of our known artifacts includes the file we are looking for.-            // So we do the whole dance yet again.-            if let Some(file) = self.try_get_file_from_bundles(key) {-                return file;+        match file {+            Some(file) => {

I would rather use if let and early-return.

In general I hope the compiler is smart enough to optimize all of these checks away in the sense that it jumps over all the is_none checks when the file is actually found early.

loewenheim

comment created time in a day

PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent

startedminio/minio

started time in 2 days

startedseaweedfs/seaweedfs

started time in 2 days

PullRequestReviewEvent

issue commentgetsentry/sentry-rust

Propagate tracing span attributes in sentry events

I don’t think this is currently possible. Other members of the team are prototyping ways to rewamp the performance monitoring / tracing APIs to make such things easier in the future, but it is still very early in that process.

samscott89

comment created time in 2 days

issue openedmoka-rs/moka

Memory leak in moka 0.12

I tried upgrading from moka 0.11 to 0.12, which lead to a memory leak.

As we use moka extensively in multiple places, both sync and async variants, its hard to pinpoint this to a very specific usage.

One indication that I have though is that the leak only occurred in our native processing pipeline, and not the JS processing pipeline. The native pipeline uses moka in a couple more places than the JS pipeline, both sync and async.

So far I’m a bit at a loss how to pinpoint the exact leak, I will try to run this through a local stresstest to see if that also exhibits the leak we were observing in production.

created time in 2 days

push eventSwatinem/moka

Arpad Borsos

commit sha da251c45b65800bbc275ca156b2e02599cd41903

Remove `probe_loop` in favor of Iterator This tries to reduce compile times and slightly improve the code by avoiding theclosure-based `probe_loop` fn and related control flow types/matches. Instead this uses an Iterator with a special `reload` flag.

view details

Peter C. S. Scholtens

commit sha ec3ed289448fd43cbfb37004e36aa345e7154df7

An examples directory is added to allow cargo to run the given examples. The earlier documented sync and async examples are added as also a size-aware-eviction and an eviction-listener example to demonstrate the subtleties of the cache behavior. For CI purposes the required-features of these examples are defined in Cargo.toml. Update README.md

view details

Tatsuya Kawano

commit sha 992584b975ceed1acbd444cc0375d511bbd49446

Merge pull request #268 from peter-scholtens/patch-1 An examples directory is added to allow cargo to run the given exampl…

view details

Tatsuya Kawano

commit sha a6b4cf6783d149524af632b8cf9eb4ef0d22ed09

Workaround a CI failure for Miri test by using a specific version of Rust nightly

view details

Tatsuya Kawano

commit sha 40735efd01bf439022d0bb9e05eda881af0327ee

Merge pull request #270 from moka-rs/fix-ci-miri CI: Workaround a CI failure for Miri test by using a specific version of Rust nightly

view details

Tatsuya Kawano

commit sha 62d035c4623f304b88fb008f6f6a9e43b83ae903

Bump the version to v0.11.1

view details

Tatsuya Kawano

commit sha 356543071d121658619c5d0bd85eebabc8c4326b

Tweak some examples - Reorder some cache operations in the `eviction_listener` example and add some comments. - Apply `cargo fmt`.

view details

Tatsuya Kawano

commit sha dc767db315e2376fed0ebbf8164e7f9ed81c4a81

Update the change log

view details

Tatsuya Kawano

commit sha feded145a73469a0eb06d07221c00adcfe4a2d3e

Merge pull request #271 from moka-rs/tweak-examples Tweak some examples

view details

Tatsuya Kawano

commit sha cde334dfaa8ec929de9403fc9d600c6437be28f6

Add some test harnesses to the `FrequencySketch` to ensure no panic occurs Using the harnesses, Kani Verifier should detect panics in `FrequencySketch::index_of` method with some `u64` hash input.

view details

Tatsuya Kawano

commit sha b762483fa6e5995f86a566f1553c21cec00ce14e

Fix occasional panics in `FrequencySketch::index_of` method in a debug build - Replace `u64` `+` with `wrapping_add` to avoid overflow panic. - Kani Verifier reports no panic in the `FrequencySketch::index_of` and other methods.

view details

Tatsuya Kawano

commit sha e9afa96a2ad52fbc4351dfc180bc3188489ed3c3

Add a CI job to run Kani Verifier

view details

Tatsuya Kawano

commit sha 34d9ec7b98dda26ad5b6441926113512ed442a6a

Update the change log

view details

Tatsuya Kawano

commit sha a0d3342dda11b1107afb9fcf965fa1d4cfbde9e3

Merge pull request #272 from moka-rs/fix-overflow-in-freq-sketch Fix occasional panic in `FrequencySketch` in debug build

view details

Tatsuya Kawano

commit sha c4b113a69e46bd3f03791840459cfdf11f4cfda4

Tweak the README contents

view details

Tatsuya Kawano

commit sha 4d108a8629b818d36d7def493ab1adabdffcc93c

Revert "Workaround a CI failure for Miri test by using a specific version" This reverts commit a6b4cf6783d149524af632b8cf9eb4ef0d22ed09.

view details

Tatsuya Kawano

commit sha db160d12d7e9d15419ec164a64e40c302c767f7f

Fix Clippy warnings clippy 0.1.71 (eff24c06d8f 2023-05-29)

view details

Tatsuya Kawano

commit sha 2ec7e9740cc9c5cd0130189442dd8bbaa04550d5

Merge pull request #274 from moka-rs/fix-clippy-warnings-2023-06-03 CI: Fix CI errors 2023-06

view details

Tatsuya Kawano

commit sha b8b5d6b978040b0dcf0aaf86a00cf1748dcc057b

Bump the minimum supported Rust version (MSRV) to 1.65 (Nov 3, 2022)

view details

Tatsuya Kawano

commit sha ec0f8d1c2e653eb0784234cbc9476ac822535864

Update the change log

view details

push time in 2 days

pull request commentgetsentry/symbolic

upgrade memmap2 used by symbolic-common

I upgraded straight to 0.8.0 in https://github.com/getsentry/symbolic/pull/815, so closing this.

demoray

comment created time in 3 days

delete branch getsentry/symbolic

delete branch : swatinem/bump-deps

delete time in 3 days

push eventgetsentry/symbolic

Arpad Borsos

commit sha 85280703970ff9e39ada987fe65a5d32b5c5b009

Update Dependencies (#815)

view details

push time in 3 days

PR merged getsentry/symbolic

Update crate dependencies

#skip-changelog

+296 -348

2 comments

18 changed files

Swatinem

pr closed time in 3 days

issue closedgetsentry/sentry-native

Merge Tags when sending event

Description

When I capture an event, I add some specific tags in the event. But when I capture the event, all the "globally settled tags" via sentry_set_tag are dropped

This is due to this line which replace the globals tags by the currently settled one: https://github.com/getsentry/sentry-native/blob/master/src/sentry_scope.c#L281

As the comment in code suggest, should the tags be merged? If it is the case then we cannot replace all tags anymore... Maybe a function should be added to add "volatile" tags only on the current event?

In the mean time how can I retrieve the originals globals tags and add it to my new tags object?

When does the problem happen

Each time I capture an event with specific key tags settled

  • [ ] During build
  • [X ] During run-time
  • [ ] When capturing a hard crash

Environment

WSL Linux Ubuntu 20.04 64bits

Steps To Reproduce

Call this line with new_tags containing others tags value and then capture event

sentry_value_set_by_key(event, "tags", new_tags);

closed time in 3 days

xamix

issue commentgetsentry/sentry-native

Merge Tags when sending event

Yes I believe it was

xamix

comment created time in 3 days

delete branch getsentry/symbolicator

delete branch : swatinem/downgrade-moka

delete time in 3 days

push eventgetsentry/symbolicator

Arpad Borsos

commit sha 7ce9f63c11acaebceb7c86872969b6c07049158c

Downgrade `moka` (#1310) The recent dependency update introduced a memory leak, which might be related to the `moka` update, so try downgrading that.

view details

push time in 3 days

PR merged getsentry/symbolicator

Downgrade `moka`

The recent dependency update introduced a memory leak, which might be related to the moka update, so try downgrading that.

#skip-changelog

+137 -15

1 comment

3 changed files

Swatinem

pr closed time in 3 days

PR opened getsentry/symbolicator

Reviewers
Downgrade `moka`

The recent dependency update introduced a memory leak, which might be related to the moka update, so try downgrading that.

#skip-changelog

+137 -15

0 comment

3 changed files

pr created time in 3 days

create barnchgetsentry/symbolicator

branch : swatinem/downgrade-moka

created branch time in 3 days

delete branch getsentry/symbolicator

delete branch : swatinem/bump-deps

delete time in 3 days

more