profile
viewpoint
David Calavera calavera Sunnyvale, CA

bpftools/linux-observability-with-bpf 181

Code snippets from the O'Reilly book

calavera/active-proxy 136

Dynamic reverse proxy

bpftools/bpf-workshop 30

Let's share some eBPF love!

calavera/atompub-server 10

add atomPub server capabilities to you rails application

calavera/boring-github 7

Chrome extension to remove reactions from issues and pull requests

calavera/Ape 5

The Atom Protocol Exerciser

calavera/acts_as_unvlogable 4

An easy way to include external video services in a rails app.

calavera/Akuma 3

Unofficial fork of http://akuma.dev.java.net

calavera/ape-extensions-bundle 3

A bunch of textmate snippets in order to create ape extensions

calavera/bitescript 1

The BiteScript API and language

startedbodil/smartstring

started time in 21 hours

startedfnichol/limitation

started time in 21 hours

PR opened apache/trafficserver

Backport 7.1.x: HTTP/2: ignore unknown settings

(cherry picked from commit 74d65887625fe9a291a27520598dc93326d800b0)

Fixes https://github.com/apache/trafficserver/issues/6964

Netlify has been running with this patch for a week and it fixes the problem described in the Chromium issue.

+3 -2

0 comment

2 changed files

pr created time in 6 days

create barnchcalavera/trafficserver

branch : backport_ignore_settings_71x

created branch time in 6 days

create barnchnetlify/trafficserver

branch : backport_ignore_settings_71x

created branch time in 6 days

push eventcalavera/k6

David Calavera

commit sha 985e556c3bd49ca6e30572d1beb5781ef8a1f280

Remove unused constant. Signed-off-by: David Calavera <david.calavera@gmail.com>

view details

push time in 11 days

Pull request review commentloadimpact/k6

feature: Add optional port to host mappings.

 func (b BlackListedIPError) Error() string {  // DialContext wraps the net.Dialer.DialContext and handles the k6 specifics func (d *Dialer) DialContext(ctx context.Context, proto, addr string) (net.Conn, error) {-	delimiter := strings.LastIndex(addr, ":")-	host := addr[:delimiter]--	// lookup for domain defined in Hosts option before trying to resolve DNS.-	ip, ok := d.Hosts[host]-	if !ok {-		var err error-		ip, err = d.Resolver.FetchOne(host)-		if err != nil {-			return nil, err-		}-	}--	for _, ipnet := range d.Blacklist {-		if (*net.IPNet)(ipnet).Contains(ip) {-			return nil, BlackListedIPError{ip: ip, net: ipnet}-		}-	}-	ipStr := ip.String()-	if strings.ContainsRune(ipStr, ':') {-		ipStr = "[" + ipStr + "]"+	dialAddr, err := d.dialAddr(addr)+	if err != nil {+		return nil, err 	}-	conn, err := d.Dialer.DialContext(ctx, proto, ipStr+":"+addr[delimiter+1:])

I've added new tests for ipV6.

calavera

comment created time in 11 days

push eventcalavera/k6

David Calavera

commit sha a63c977e6298d544dc836f2d782edc51e56579c1

Make host & port work with IPv6. Add new tests for dialer and options. Signed-off-by: David Calavera <david.calavera@gmail.com>

view details

push time in 11 days

create barnchcalavera/tracing-datadog

branch : master

created branch time in 12 days

created repositorycalavera/tracing-datadog

created time in 12 days

fork calavera/tracing-honeycomb

Rust utilities for publishing distributed traces to honeycomb.io and other backends.

https://docs.rs/tracing-honeycomb

fork in 13 days

Pull request review commentloadimpact/k6

feature: Add optional port to host mappings.

 func (b BlackListedIPError) Error() string {  // DialContext wraps the net.Dialer.DialContext and handles the k6 specifics func (d *Dialer) DialContext(ctx context.Context, proto, addr string) (net.Conn, error) {-	delimiter := strings.LastIndex(addr, ":")-	host := addr[:delimiter]--	// lookup for domain defined in Hosts option before trying to resolve DNS.-	ip, ok := d.Hosts[host]-	if !ok {-		var err error-		ip, err = d.Resolver.FetchOne(host)-		if err != nil {-			return nil, err-		}-	}--	for _, ipnet := range d.Blacklist {-		if (*net.IPNet)(ipnet).Contains(ip) {-			return nil, BlackListedIPError{ip: ip, net: ipnet}-		}-	}-	ipStr := ip.String()-	if strings.ContainsRune(ipStr, ':') {-		ipStr = "[" + ipStr + "]"+	dialAddr, err := d.dialAddr(addr)+	if err != nil {+		return nil, err 	}-	conn, err := d.Dialer.DialContext(ctx, proto, ipStr+":"+addr[delimiter+1:])

I discovered that these changes don't work very well with IPv6 hosts. I'll change the logic to make it work and add new tests.

calavera

comment created time in 13 days

push eventcalavera/k6

David Calavera

commit sha b6d7524374fbc456cd31a4031491e0e5f4c61d4a

Extract fetchHostAddress method. Clean lint errors. Signed-off-by: David Calavera <david.calavera@gmail.com>

view details

push time in 13 days

push eventcalavera/k6

David Calavera

commit sha de5b5451fac7db42342a4c2c714d4e4371e6934a

Fix serialization. - Fix default ports for tests. Signed-off-by: David Calavera <david.calavera@gmail.com>

view details

push time in 14 days

pull request commentloadimpact/k6

feature: Add optional port to host mappings.

@MStoykov I've updated the code with your suggestions, thanks! :raised_hands:

I'll wait for your review to make any changes in the docs.

calavera

comment created time in 14 days

push eventcalavera/k6

David Calavera

commit sha 67c0083536e036e2822dba1fe89c4ef63d34c7d3

Alias HostAddress with net.TCPAddr - Include tests for denied hosts. - Include copyright notice in new file. Signed-off-by: David Calavera <david.calavera@gmail.com>

view details

push time in 14 days

issue openedapache/trafficserver

Compiler errors on Ubuntu 20.04

The fix for Ubuntu 16 seems to break building TrafficServer on Ubuntu 20, with gcc and clang, as far as I can tell.

I don't know why that change was made since there is no issue associated to the PR. This is the error I get compiling on Ubuntu 20.04:

ink_res_init.cc:97:3: error: excess elements in scalar initializer
  {HOST_RES_PREFER_IPV4, HOST_RES_PREFER_IPV6, HOST_RES_PREFER_NONE}};
  ^                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

These are the commands I run:

./configure CXXFLAGS=-std=c++17 CC=clang CXX=clang++
make

I've tried with Clang 10, Clang 9 and GCC 9.3.0.

created time in 22 days

pull request commentloadimpact/k6

feature: Add optional port to host mappings.

So unfortunately this (as well as a bunch of other PRs) will probably wait for at least another month (hopefully not more) until we get back to you

Thanks for the heads up @MStoykov. Don't worry about it, take your time with all other priorities that you have. I actually wrote this code months ago an never had time to push the PR. I'll address your comments for when you're ready to take a deeper look.

I was going to write some documentation about this change, but I couldn't find any place to do it. Any pointers will be appreciated.

calavera

comment created time in a month

PR opened loadimpact/k6

feature: Add optional port to host mappings.

This is an extension for the host mapping feature. It allows people to map to a different port than the one in the original url.

This is very convenient when you run k6 against a fleet of docker containers to test the same service but want to keep the port mapping.

Signed-off-by: David Calavera david.calavera@gmail.com

+174 -34

0 comment

6 changed files

pr created time in a month

create barnchcalavera/k6

branch : host_options_with_port

created branch time in a month

fork calavera/k6

A modern load testing tool, using Go and JavaScript - https://k6.io

fork in a month

issue commentnetlify/cli

Netlify does not support multiValueHeaders in Functions, but netlify dev does

Thanks for opening this issue @FinnWoelm ! I think this issue is caused because we've not upgraded our internal type definitions for Lambda responses in a while. I'm going to transfer this issue to a private repository later today so we can triage it. I don't think it should be hard to fix. Since there is a thread in community, we'll send updates there.

FinnWoelm

comment created time in a month

issue commenthashicorp/nomad

System Scheduler use new Update stanza and Deployments

@dadgar we're investigating using Nomad at Netlify for a large heterogeneous deployment. Solving this issue would help us tremendously to decide whether to use Nomad. Is there anything we can do to help it move forward? The documentation says that this will be fixed in "future releases", but it'd be great to know whether you have more specific plans to address it.

aaroncline

comment created time in a month

created tagnetlify/netlify-toml-rs

tagv0.3.1

created time in a month

push eventnetlify/netlify-toml-rs

David Calavera

commit sha ccbe40c49255ce727f886ad6e6d895f19e02f2a3

Bump version to 0.3.1 Signed-off-by: David Calavera <david.calavera@gmail.com>

view details

push time in a month

push eventnetlify/netlify-toml-rs

David Calavera

commit sha 041d0eed90988ed1b4c0c1b43f9b398f3cb12c53

Alias configuration. This add a new alias for redirect keywords. Signed-off-by: David Calavera <david.calavera@gmail.com>

view details

David Calavera

commit sha 773e27b52a726483d6837ba8256ed9b8229a1091

Merge pull request #6 from netlify/aliases Alias configuration.

view details

push time in a month

delete branch netlify/netlify-toml-rs

delete branch : aliases

delete time in a month

PR merged netlify/netlify-toml-rs

Alias configuration. type: chore

This add a new alias for redirect keywords.

Signed-off-by: David Calavera david.calavera@gmail.com

+1 -0

0 comment

1 changed file

calavera

pr closed time in a month

PR opened netlify/netlify-toml-rs

Alias configuration.

This add a new alias for redirect keywords.

Signed-off-by: David Calavera david.calavera@gmail.com

+1 -0

0 comment

1 changed file

pr created time in a month

create barnchnetlify/netlify-toml-rs

branch : aliases

created branch time in a month

issue commentnetlify/build

Build plugins do not work on Node 6 (or earlier)

However, at some point, we will make Netlify Build public to every user, so we need a strategy for this to happen without breaking users on Node 6.

I don't agree with this, and it will suck for some customers. We cannot maintain runtimes that are not maintained by the language maintainers anymore. I rather make the work to communicate to customers still using Node 6 that we don't support it anymore. We should give them two options:

  1. They upgrade to a newer supported version before X date.
  2. We upgrade them automatically if they are still deploying with Node 6 after X date.

I know @verythorough started a document about runtime release versions, and we should implement the work to keep our customers up to date before trying to maintain all runtime versions forever.

ehmicky

comment created time in 2 months

issue commentapache/trafficserver

Random traffic lock in 9.0.x

We have not had time to investigate this as much as I wanted, but I'm starting to think that this is caused by one of our plugins, and not the core.

I think this should not be considered a blocker for the 9.0.x release.

calavera

comment created time in 2 months

delete branch netlify/build-image

delete branch : fix-swiftenv-install

delete time in 2 months

pull request commentnetlify/build-image

Support installing tools via homebrew

What if we removed this from the included_software doc so that we made it clear it's not generally available, then we could continue testing without officially "supporting" it? Then we could decide on a release date if this is a pattern we like.

I think that it's a good idea, or even mark it as experimental. This change as it is makes much more sense than other tools that we've merged before, and I don't think we should hold it back.

mraerino

comment created time in 2 months

PR opened rust-rocksdb/rust-rocksdb

Expose `open_with_ttl`.

This api allows you to open a database with a TTL filter. This filter is applied during compaction, and entries get dropped if their TTL has expired.

This is based on the current RocksDB C bindings that don't expose additional functionality from the ttl utilities.

Signed-off-by: David Calavera david.calavera@gmail.com

+44 -0

0 comment

2 changed files

pr created time in 2 months

create barnchcalavera/rust-rocksdb

branch : open_with_ttl

created branch time in 2 months

Pull request review commentrust-rocksdb/rust-rocksdb

Allow to build RocksDB with a different stdlib.

 fn try_to_find_and_link_lib(lib_name: &str) -> bool {     false } +fn cxx_standard() -> String {+    env::var("ROCKSDB_CXX_STDLIB").map_or_else(

sounds great, thanks for the suggestion.

calavera

comment created time in 2 months

push eventcalavera/rust-rocksdb

David Calavera

commit sha 8fec27ebd9826318a8fe0f615827d101b3b2839b

Replace map_or_else with map_or. Signed-off-by: David Calavera <david.calavera@gmail.com>

view details

push time in 2 months

push eventcalavera/rust-rocksdb

David Calavera

commit sha 8e2aa163210c9a9463c888f3cd4baecce34ec05c

Use map_or_else to make the env value. Signed-off-by: David Calavera <david.calavera@gmail.com>

view details

push time in 2 months

Pull request review commentrust-rocksdb/rust-rocksdb

Allow to build RocksDB with a different stdlib.

 fn try_to_find_and_link_lib(lib_name: &str) -> bool {     false } +fn stdlib_flag() -> String {+    let lib = env::var("ROCKSDB_CXX_STDLIB").unwrap_or_else(|_| "-std=c++11".to_owned());+    if !lib.starts_with("-std=") {

I'm thinking about this, and I wonder if it's not better to let the build fail if the flag is not valid.

If you change this value, and you made a typo, and we use the default c++11, you'd be building with a std version that you don't want, which might be more unexpected, and you might not even notice.

If you change this value, and the build fails fast, you can identify the problem right away.

calavera

comment created time in 2 months

push eventcalavera/rust-rocksdb

David Calavera

commit sha 6c4d563cdfedc7aa98e59f6c84eaa1b617735975

Update cxx standard flag name. Signed-off-by: David Calavera <david.calavera@gmail.com>

view details

push time in 2 months

fork calavera/rocksdb

A library that provides an embeddable, persistent key-value store for fast storage.

http://rocksdb.org

fork in 2 months

Pull request review commentrust-rocksdb/rust-rocksdb

Allow to build RocksDB with a different stdlib.

 fn try_to_find_and_link_lib(lib_name: &str) -> bool {     false } +fn stdlib_flag() -> String {+    let lib = env::var("ROCKSDB_CXX_STDLIB").unwrap_or_else(|_| "-std=c++11".to_owned());+    if !lib.starts_with("-std=") {

what should it validate?

calavera

comment created time in 2 months

PR opened rust-rocksdb/rust-rocksdb

Allow to build RocksDB with a different stdlib.

RocksDB supports up to C++20, so this should be configurable.

I've left the default value as it currently is.

Signed-off-by: David Calavera david.calavera@gmail.com

+12 -1

0 comment

1 changed file

pr created time in 2 months

create barnchcalavera/rust-rocksdb

branch : stdlib_flag

created branch time in 2 months

issue closedrust-rocksdb/rust-rocksdb

rerun-if-changed directives in librocksdb-sys don't work

I'm not completely sure if this is a problem with the build.rs script in librocksdb-sys or with cargo.

I'd expect librocksdb-sys to not build RocksDB if nothing changes in that workspace. However, cargo build builds librocksdb-sys every time it runs.

I tried adding an extra guard for the C bindings in a branch but that didn't work either. I'm including below what I changed. Does anyone know why this is happening?

diff --git i/librocksdb-sys/build.rs w/librocksdb-sys/build.rs
index 2cf1a42..be11b70 100644
--- i/librocksdb-sys/build.rs
+++ w/librocksdb-sys/build.rs
@@ -33,9 +33,9 @@ fn rocksdb_include_dir() -> String {
     }
 }
 
-fn bindgen_rocksdb() {
+fn bindgen_rocksdb(header: &str) {
     let bindings = bindgen::Builder::default()
-        .header(rocksdb_include_dir() + "/rocksdb/c.h")
+        .header(header)
         .derive_debug(false)
         .blacklist_type("max_align_t") // https://github.com/rust-lang-nursery/rust-bindgen/issues/550
         .ctypes_prefix("libc")
@@ -312,7 +312,9 @@ fn try_to_find_and_link_lib(lib_name: &str) -> bool {
 fn main() {
     println!("cargo:rerun-if-changed=build.rs");
 
-    bindgen_rocksdb();
+    let header = rocksdb_include_dir() + "/rocksdb/c.h";
+    println!("cargo:rerun-if-changed={}", &header);
+    bindgen_rocksdb(&header);
 
     if !try_to_find_and_link_lib("ROCKSDB") {
         println!("cargo:rerun-if-changed=rocksdb/");

closed time in 2 months

calavera

issue commentrust-rocksdb/rust-rocksdb

rerun-if-changed directives in librocksdb-sys don't work

nevermind, those directives are only for rustc, so they won't work for cc::Build.

calavera

comment created time in 2 months

issue openedrust-rocksdb/rust-rocksdb

rerun-if-changed directives in librocksdb-sys don't work

I'm not completely sure if this is a problem with the build.rs script in librocksdb-sys or with cargo.

I'd expect librocksdb-sys to not build RocksDB if nothing changes in that workspace. However, cargo build builds librocksdb-sys every time it runs.

I tried adding an extra guard for the C bindings in a branch but that didn't work either. I'm including below what I changed. Does anyone know why this is happening?

diff --git i/librocksdb-sys/build.rs w/librocksdb-sys/build.rs
index 2cf1a42..be11b70 100644
--- i/librocksdb-sys/build.rs
+++ w/librocksdb-sys/build.rs
@@ -33,9 +33,9 @@ fn rocksdb_include_dir() -> String {
     }
 }
 
-fn bindgen_rocksdb() {
+fn bindgen_rocksdb(header: &str) {
     let bindings = bindgen::Builder::default()
-        .header(rocksdb_include_dir() + "/rocksdb/c.h")
+        .header(header)
         .derive_debug(false)
         .blacklist_type("max_align_t") // https://github.com/rust-lang-nursery/rust-bindgen/issues/550
         .ctypes_prefix("libc")
@@ -312,7 +312,9 @@ fn try_to_find_and_link_lib(lib_name: &str) -> bool {
 fn main() {
     println!("cargo:rerun-if-changed=build.rs");
 
-    bindgen_rocksdb();
+    let header = rocksdb_include_dir() + "/rocksdb/c.h";
+    println!("cargo:rerun-if-changed={}", &header);
+    bindgen_rocksdb(&header);
 
     if !try_to_find_and_link_lib("ROCKSDB") {
         println!("cargo:rerun-if-changed=rocksdb/");

created time in 2 months

PublicEvent

push eventcalavera/netlify-build-rust

David Calavera

commit sha a608efc9daa1574cc0be5efbaefa84c8a14734dd

Fix onPostBuild log. Signed-off-by: David Calavera <david.calavera@gmail.com>

view details

push time in 2 months

PR opened rust-rocksdb/rust-rocksdb

Cleanup tests.

@aleksuss had some good points in #406 regarding test formatting. Since that PR was merged before I saw them, I decided to open a new PR to address them.

Signed-off-by: David Calavera david.calavera@gmail.com

+6 -9

0 comment

1 changed file

pr created time in 2 months

create barnchcalavera/rust-rocksdb

branch : cleanup_tests

created branch time in 2 months

pull request commentnetlify/netlify-toml-rs

Update toml & shield from future toml changes

@GeorgeHahn I've added you to the owners in crates.io. You should be able to publish a new version when you get the invite.

GeorgeHahn

comment created time in 2 months

delete branch calavera/rust-rocksdb

delete branch : secondary

delete time in 2 months

pull request commentrust-rocksdb/rust-rocksdb

Add support for open_as_secondary APIs.

Overall looks good. But to be honest I'd like to see some tests for covering this functionality. Could you add a couple ? Thanks.

I've added a test @aleksuss, thanks for the reminder! :raised_hands:

calavera

comment created time in 2 months

push eventcalavera/rust-rocksdb

David Calavera

commit sha d9a6b1a6e2a526f9b4a4a0cf0bc5bed9e87f42cf

Add a test for open_as_secodary. Include a case to use try_catch_up_with_primary. Signed-off-by: David Calavera <david.calavera@gmail.com>

view details

push time in 2 months

PR opened rust-rocksdb/rust-rocksdb

Add support for open_as_secondary APIs.

This change adds support for the OpenAsSecondary APIs to open a database as a secondary. It also adds support for TryCatchUpWithPrimary to allow clients to synchronize primary and secondary.

/cc @aleksuss

Signed-off-by: David Calavera david.calavera@gmail.com

+64 -1

0 comment

1 changed file

pr created time in 2 months

push eventcalavera/rust-rocksdb

Bas van Dijk

commit sha 8a7996e943d4ba56fc32f9e657e8a3cd41b83d1e

Fix building librocksdb-sys with system libraries (#393)

view details

wqfish

commit sha a8b77cfd8ac494557f350d982a659099417fe56b

Add support for open_for_read_only APIs (#402)

view details

wqfish

commit sha 4ee65f451be26702df266ee8035240efc50fd902

Fix doc for DBRawIterator::prev and next methods (#405)

view details

David Calavera

commit sha 48347afa9612e0e1d576e7db548bc21985f38091

Add support for open_as_secondary APIs. This change adds support for the OpenAsSecondary APIs to open a database as a secondary. It also adds support for TryCatchUpWithPrimary to allow clients to syncronize primary and secondary. Signed-off-by: David Calavera <david.calavera@gmail.com>

view details

push time in 2 months

push eventcalavera/rust-rocksdb

David Calavera

commit sha de8716e639235e1f9db4d4875ddcc738ad3b0492

Add support for open_as_secondary APIs. This change adds support for the OpenAsSecondary APIs to open a database as a secondary. It also adds support for TryCatchUpWithPrimary to allow clients to syncronize primary and secondary. Signed-off-by: David Calavera <david.calavera@gmail.com>

view details

push time in 2 months

create barnchcalavera/rust-rocksdb

branch : secondary

created branch time in 2 months

pull request commentrust-rocksdb/rust-rocksdb

Add support for open_for_read_only APIs

@aleksuss I have implemented OpenAsSecondary on top of the AccessType enum introduced in this pull request. I was wonder when you're going to merge it, so I can open a new pull request without complicating the review more than necessary.

wqfish

comment created time in 2 months

fork calavera/rust-rocksdb

rust wrapper for rocksdb

fork in 2 months

delete branch netlify/netlify-credential-helper

delete branch : release_0.1.9

delete time in 3 months

push eventnetlify/netlify-credential-helper

David Calavera

commit sha b8e21e2c785a2771f0a3b5d2fe85096d86e52a82

Update installer submodules for release 0.1.9

view details

David Calavera

commit sha 0af5c396be58183675fd8bc7c3fbf61254caf0a5

Merge pull request #43 from netlify/release_0.1.9 Update installer submodules for release 0.1.9

view details

push time in 3 months

create barnchnetlify/netlify-credential-helper

branch : release_0.1.9

created branch time in 3 months

push eventnetlify/scoop-git-credential-netlify

David Calavera

commit sha 7d133850345094215376c3aecd938497246c4d12

Release Version 0.1.9

view details

push time in 3 months

push eventnetlify/homebrew-git-credential-netlify

David Calavera

commit sha a91e9d08cf30b5adf3f7b9b04e27ba578f1c924a

Release Version 0.1.9

view details

push time in 3 months

release netlify/netlify-credential-helper

v0.1.9

released time in 3 months

created tagnetlify/netlify-credential-helper

tagv0.1.9

Git credential helper to use Netlify's API as authentication backend

created time in 3 months

push eventnetlify/netlify-credential-helper

Keiko Oda

commit sha d22bc645db2ab57337be576f156baf7b9f89f636

Add netlify.app as netlifyHost

view details

David Calavera

commit sha 55f25e722c3309082cc27978533fb12a845d59b2

Merge pull request #42 from netlify/add-dot-app Add netlify.app as netlifyHost

view details

push time in 3 months

delete branch netlify/netlify-credential-helper

delete branch : add-dot-app

delete time in 3 months

PR merged netlify/netlify-credential-helper

Add netlify.app as netlifyHost

Netlify recently migrated the default site domain from netlify.com to netlify.app. This change will support using this helper with netlify.app too.

+6 -3

1 comment

2 changed files

keiko713

pr closed time in 3 months

pull request commentnetlify/netlify-credential-helper

Add netlify.app as netlifyHost

exactly what I had in mind :+1: I will cut a release.

keiko713

comment created time in 3 months

issue commentnetlify/cli

Headers files with TOML content allowed in CI but fail in CLI

I'm pretty sure that we do not parse _header files with any toml parser, however, deploys don't fail when there is a parsing error, we only log the errors and move on. That repository has probably just worked, but never actually injected any header.

erquhart

comment created time in 3 months

more