profile
viewpoint
Timothy Olaleke Timtech4u Mercurie Nigeria http://timtech4u.com.ng/ Dev | Cloud GDE | https://fullstackgcp.com

mercurieinc/gcp-blip 3

Clean up tool to take off resources from GCP (like Thanos) and save costs.

mercurieinc/saleor 3

MercurieMart eCommerce

Ingressive/cers 2

Crowd Sourced Emergency Reporting System

mustaphagarba/buk-cashtrack 1

Final year project for FCSIT BUK using Django (PWA)

blahk/blahk.github.io 0

My Personal Website

issue commentgolang/go

cmd/go: handle space in path to C compiler

Backport issue(s) opened: #43859 (for 1.14), #43860 (for 1.15).

Remember to create the cherry-pick CL(s) as soon as the patch is submitted to master, according to https://golang.org/wiki/MinorReleases.

apmckinlay

comment created time in a minute

issue openedgolang/go

cmd/go: handle space in path to C compiler [1.15 backport]

@jayconrod requested issue #43808 to be considered for backport to the next 1.15 minor release.

@gopherbot Please backport to 1.14 and 1.15. This was a regression.

created time in a minute

issue openedgolang/go

cmd/go: handle space in path to C compiler [1.14 backport]

@jayconrod requested issue #43808 to be considered for backport to the next 1.14 minor release.

@gopherbot Please backport to 1.14 and 1.15. This was a regression.

created time in a minute

issue commentgolang/go

cmd/go: handle space in path to C compiler

@gopherbot Please backport to 1.14 and 1.15. This was a regression.

apmckinlay

comment created time in a minute

pull request commentcri-o/cri-o

Move unit tests to GitHub actions

/retest

saschagrunert

comment created time in 3 minutes

startedflosch/pongo2

started time in 5 minutes

issue closedgolang/go

x/time/rate: Parallel reservations in Limiter.WaitN are served in parallel, violating rate limit

What version of Go are you using (go version)?

go version go1.14.13 linux/amd64

Does this issue reproduce with the latest release?

Yes

What operating system and processor architecture are you using (go env)?

$ lsb_release -a
Distributor ID:	Ubuntu
Description:	Ubuntu 20.10
Release:	20.10
Codename:	groovy
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN="/home/nbingham/go/bin"
GOCACHE="/home/nbingham/.cache/go-build"
GOENV="/home/nbingham/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOOS="linux"
GOPATH="/home/nbingham/go"
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/opt/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/opt/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build682703074=/tmp/go-build -gno-record-gcc-switches"

What did you do?

package main

import (
  "context"
  "fmt"
  "sync"
  "golang.org/x/time/rate"
  "time"
)

func do_things(ctx context.Context, limiter *rate.Limiter, wg *sync.WaitGroup) {
  for i := 0; i < 10; i++ {
    limiter.WaitN(ctx, 100.0)
  }
  wg.Done()
}

func main() {
  ctx := context.Background()
  burst := 1000000000
  limiter := rate.NewLimiter(rate.Limit(1000.0), burst)
  limiter.AllowN(time.Now(), burst)

  var wg sync.WaitGroup

  startTime := time.Now()
  for i := 0; i < 10; i++ {
    wg.Add(1)
    go do_things(ctx, limiter, &wg)
  }

  wg.Wait()
  endTime := time.Now()

  elapsed := endTime.Sub(startTime).Seconds()
  fmt.Printf("elapsed: %f, rate: %f != %f\n", elapsed, 1000000/elapsed, 1000.0)
}

What did you expect to see?

The rate achieved by the 10 goroutines should not exceed the rate limit.

What did you see instead?

The overall rate is 10x what it should be.

elapsed: 10.000078, rate: 99999.223486 != 1000.000000

Suspected Cause

https://github.com/golang/time/blob/7e3f01d253248a0a5694eb5b7376dfea18b6397e/rate/rate.go#L345

r.timeToAct = now.Add(waitDuration)

should be

r.timeToAct = lim.lastEvent.Add(waitDuration)

closed time in 5 minutes

nbingham1

issue commentgolang/go

x/time/rate: Parallel reservations in Limiter.WaitN are served in parallel, violating rate limit

I'm silly, it was a pointer issue in my other code.

nbingham1

comment created time in 5 minutes

Pull request review commentenvoyproxy/envoy

ext_proc: Implement response path for headers only

 FilterHeadersStatus Filter::decodeHeaders(RequestHeaderMap& headers, bool end_of   return FilterHeadersStatus::StopAllIterationAndWatermark; } +FilterHeadersStatus Filter::encodeHeaders(ResponseHeaderMap& headers, bool end_of_stream) {+  if (stream_closed_) {+    return FilterHeadersStatus::Continue;

FWIW I changed the filter to always call sendLocalReply on encoder_callbacks_, and now the extra call to encodeHeaders doesn't show up. So the only way we should get to encodeHeaders with stream_closed_ set to true is if either the remote processor closed the stream or if we closed it while ignoring an error.

gbrail

comment created time in 5 minutes

pull request commentenvoyproxy/envoy

extension: User space event

@antoniovicente ready to be reviewed now

lambdai

comment created time in 6 minutes

push eventgolang/go

Jay Conrod

commit sha a2cef9b544708ecae983ed8836ee2425a28aab68

cmd/go: don't lookup the path for CC when invoking cgo Previously, if CC was a path without separators (like gcc or clang), we'd look it up in PATH in cmd/go using internal/execabs.LookPath, then pass the resolved path to cgo in CC. This caused a regression: if the directory in PATH containing CC has a space, cgo splits it and interprets it as multiple arguments. With this change, cmd/go no longer resolves CC before invoking cgo. cgo does the path lookup on each invocation. This reverts the security fix CL 284780, but that was redundant with the addition of internal/execabs (CL 955304), which still protects us. Fixes #43808 Updates #41400 Change-Id: I65d91a1e303856df8653881eb6e2e75a3bf95c49 Reviewed-on: https://go-review.googlesource.com/c/go/+/285873 Trust: Jay Conrod <jayconrod@google.com> Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>

view details

push time in 7 minutes

issue closedgolang/go

cmd/go: handle space in path to C compiler

<!-- Please answer these questions before submitting your issue. Thanks! -->

What version of Go are you using (go version)?

<pre> $ go version go version go1.15.7 windows/amd64 </pre>

What operating system and processor architecture are you using (go env)?

<details><summary><code>go env</code> Output</summary><br><pre> $ go env set GO111MODULE= set GOARCH=amd64 set GOBIN= set GOCACHE=C:\Users\andrew\AppData\Local\go-build set GOENV=C:\Users\andrew\AppData\Roaming\go\env set GOEXE=.exe set GOFLAGS= set GOHOSTARCH=amd64 set GOHOSTOS=windows set GOINSECURE= set GOMODCACHE=C:\Users\andrew\go\pkg\mod set GONOPROXY= set GONOSUMDB= set GOOS=windows set GOPATH=C:\Users\andrew\go set GOPRIVATE= set GOPROXY=https://proxy.golang.org,direct set GOROOT=c:\go set GOSUMDB=sum.golang.org set GOTMPDIR= set GOTOOLDIR=c:\go\pkg\tool\windows_amd64 set GCCGO=gccgo set AR=ar set CC=gcc set CXX=g++ set CGO_ENABLED=1 set GOMOD=V:\gsuneido\go.mod set CGO_CFLAGS=-g -O2 set CGO_CPPFLAGS= set CGO_CXXFLAGS=-g -O2 set CGO_FFLAGS=-g -O2 set CGO_LDFLAGS=-g -O2 set PKG_CONFIG=pkg-config set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\andrew\AppData\Local\Temp\go-build158816006=/tmp/go-build -gno-record-gcc-switches GOROOT/bin/go version: go version go1.15.7 windows/amd64 GOROOT/bin/go tool compile -V: compile version go1.15.7 gdb --version: GNU gdb (GDB) 8.1 </pre></details>

What did you do?

<pre>

go build -v -ldflags "-s -w -X 'main.builtDate=Jan 20 2021 11:17:27' -X main.mode=gui -H windowsgui" </pre>

What did you expect to see?

Successful build

What did you see instead?

<pre>

github.com/apmckinlay/gsuneido/builtin/goc

cgo: exec c:\Program: exec: "c:\Program": file does not exist </pre>

It builds successfully on 1.15.6 (and 1.16beta1)

I cut my path down to:

<pre> PATH=C:\WINDOWS\System32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32;C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin;C:\Go\bin;C:\Users\andrew\go\bin </pre>

In particular, mingw-w64 is in c:\program files I think that was the default, but I can't remember for sure.

Cmd finds g++ using this path

<pre>

g++ --version g++ (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0 </pre>

closed time in 7 minutes

apmckinlay

Pull request review commentenvoyproxy/envoy

extension: User space event

+load(+    "//bazel:envoy_build_system.bzl",+    "envoy_cc_extension",+    "envoy_extension_package",+)++licenses(["notice"])  # Apache 2++envoy_extension_package()++envoy_cc_extension(+    name = "peer_buffer_lib",+    hdrs = ["peer_buffer.h"],+    security_posture = "unknown",+    status = "alpha",+    deps = [+        "//source/common/buffer:buffer_lib",+        "//source/common/buffer:watermark_buffer_lib",+        "//source/common/common:empty_string",+    ],+)++envoy_cc_extension(

add an empty config.h the status is wip. secruity_posture is "unknown".

What is the best secruity_posture indicating "don't use"?

lambdai

comment created time in 8 minutes

issue commentgoharbor/harbor

OIDC users with admin role are not shown as "Admin"

why not fix it and make it show up as 'yes'?

AllForNothing

comment created time in 9 minutes

Pull request review commentenvoyproxy/envoy

extension: User space event

+#include "extensions/io_socket/user_space_io_socket/user_space_file_event_impl.h"++#include <cstdint>++#include "common/common/assert.h"++#include "extensions/io_socket/user_space_io_socket/peer_buffer.h"++namespace Envoy {+namespace Extensions {+namespace IoSocket {+namespace UserSpaceIoSocket {++UserSpaceFileEventImpl::UserSpaceFileEventImpl(Event::Dispatcher& dispatcher, Event::FileReadyCb cb,

renamed and moved all trivial method to header file

lambdai

comment created time in 12 minutes

Pull request review commentenvoyproxy/envoy

extension: User space event

+#include "extensions/io_socket/user_space_io_socket/user_space_file_event_impl.h"++#include <cstdint>++#include "common/common/assert.h"++#include "extensions/io_socket/user_space_io_socket/peer_buffer.h"++namespace Envoy {+namespace Extensions {+namespace IoSocket {+namespace UserSpaceIoSocket {++UserSpaceFileEventImpl::UserSpaceFileEventImpl(Event::Dispatcher& dispatcher, Event::FileReadyCb cb,+                                               uint32_t events, UserspaceIoHandle& io_source)+    : schedulable_(dispatcher.createSchedulableCallback([this, cb]() {+        auto ephemeral_events = event_listener_.getAndClearEphemeralEvents();+        ENVOY_LOG(trace, "User space event {} invokes callbacks on events = {}",+                  static_cast<void*>(this), ephemeral_events);+        cb(ephemeral_events);+      })),+      io_source_(io_source) {+  setEnabled(events);+}++void EventListenerImpl::clearEphemeralEvents() {+  // Clear ephemeral events to align with FileEventImpl::setEnable().+  ephemeral_events_ = 0;+}++void EventListenerImpl::onEventActivated(uint32_t activated_events) {+  ephemeral_events_ |= activated_events;+}++void EventListenerImpl::setEnabledEvents(uint32_t enabled_events) {+  enabled_events_ = enabled_events;+}++void UserSpaceFileEventImpl::activate(uint32_t events) {+  // Only supported event types are set.+  ASSERT((events & (Event::FileReadyType::Read | Event::FileReadyType::Write |+                    Event::FileReadyType::Closed)) == events);

Won't change:see activateIfEnabled()

lambdai

comment created time in 14 minutes

PR opened vitessio/vitess

Reviewers
fix common select script to work for both local and operator examples

Signed-off-by: deepthi deepthi@planetscale.com

Description

In #7245 we removed a file (select_commerce_data.sql) from the operator example. However, the README still points to the deleted file. This PR fixes the README to use the correct path to the file. In addition, the use command in that file only worked for the local example, not the operator example. That has also been fixed.

Related Issue(s)

#7245 A website PR will be created after 9.0 is released and we have archived the 9.0 docs.

Checklist

  • [ ] Should this PR be backported?
  • [x] Tests were added or are not required
  • [ ] Documentation was added or is not required

Impacted Areas in Vitess

Components that this PR will affect:

  • [ ] Query Serving
  • [ ] VReplication
  • [ ] Cluster Management
  • [ ] Build
  • [ ] VTAdmin
+3 -3

0 comment

2 changed files

pr created time in 15 minutes

pull request commentetcd-io/etcd

Fix codecov collection (Part 2/2)

The PR (finally) works as expected. The first full coverage report for a long time is here: https://codecov.io/gh/etcd-io/etcd/tree/66255967e83c758f95613c89789a9aa426ce3c85

  • It manages to execute all tests (so is faster)
  • It has proper paths resolution, such that you can click any file to see the report
  • If filters our generated files (like pb.go & pb.gw.go)
ptabor

comment created time in 17 minutes

Pull request review commentenvoyproxy/envoy

scaled range timer: guard against queue deletion during timer fire

 void ScaledRangeTimerManagerImpl::onQueueTimerFired(Queue& queue) {    // Pop and trigger timers until the one at the front isn't supposed to have expired yet (given the   // current scale factor).+  queue.processing_timers_ = true;   while (!timers.empty() &&          computeTriggerTime(timers.front(), queue.duration_, scale_factor_) <= now) {     auto item = std::move(queue.range_timers_.front());     queue.range_timers_.pop_front();     item.timer_.trigger();   }+  queue.processing_timers_ = false;

So processing_timers_ needs to be per queue since otherwise the queue not empty invariant would not hold if a timer from queue A removes a timer from queue B. It would be good to also cover that case in tests.

Also, is there code somewhere that verifies the invariant that all active queues are non-empty?

chradcliffe

comment created time in 20 minutes

issue commentgolang/go

x/time/rate: Parallel reservations in Limiter.WaitN are served in parallel, violating rate limit

I don't see a problem here other than an error in your output: 1000000/elapsed? 10 goroutines x 10 iterations x 100 = 10000 10000 / 10 seconds for program execution = 1000 rps == the configured rate limiter

nbingham1

comment created time in 21 minutes

push eventgraphql/graphql-js

Rob Richard

commit sha 01663f61121b91f37ff9920d5b817cfbd413b9ed

Add @stream directive to specified directives

view details

Rob Richard

commit sha a0cef35c9ee6b9be51f6e44a9d57be6361ebaa76

Implement support for @stream directive

view details

Rob Richard

commit sha 637fefb36226424127b4a59025024f74dd821015

add defer/stream support for subscriptions (#7)

view details

Rob Richard

commit sha 1c4940a2f6be95e9a7183435045c69ad5f62c9dd

Return underlying AsyncIterators when execute result is returned (#2843)

view details

push time in 22 minutes

Pull request review commentenvoyproxy/envoy

route config: Allow to configure direct response body size

 TEST_F(RouteEntryMetadataMatchTest, ParsesMetadata) {   } } +class RouteConfigurationDirectResponseBodyTest : public testing::Test, public ConfigImplTestBase {};++TEST_F(RouteConfigurationDirectResponseBodyTest, DirectResponseBodySizeTooLarge) {

Added a case above. And the cases of different data sources combination for setting body content is covered in RouteMatcherTest.DirectResponse.

dio

comment created time in 22 minutes

push eventvitessio/vitess

Andrew Mason

commit sha e24c3aed4afe07dec65463cb94f1cc089a3d0371

Define GetSchema RPC, run generators, add server impl stub Signed-off-by: Andrew Mason <amason@slack-corp.com>

view details

Andrew Mason

commit sha 77fbde75582783d86e40091f86d96448d0670723

Add implementation, tests, and another test tmclient Signed-off-by: Andrew Mason <amason@slack-corp.com>

view details

Andrew Mason

commit sha 6e261beed2e781dd331f92dbb02f6cd3e770c53a

Rewrite legacy vtctl GetSchema test to use packaged fake tmclient Signed-off-by: Andrew Mason <amason@slack-corp.com>

view details

Andrew Mason

commit sha da1437c3edcd77c4d7252b812bc27cc8ab06303c

Implement CLI command, refactor legacy command to use new RPC Signed-off-by: Andrew Mason <amason@slack-corp.com>

view details

Andrew Mason

commit sha 3ee391be2c149bf33ba4357cd9ece36d511b1042

Any test that needs a VtctldServer needs to override the protocol to the fake Signed-off-by: Andrew Mason <amason@slack-corp.com>

view details

Rohit Nayak

commit sha e34764d1df3b96ad1095bb7c1ed221130abc8bd6

Merge pull request #7346 from tinyspeck/am_vtctld_getschema [vtctld] Migrate GetSchema

view details

push time in 23 minutes

PR merged vitessio/vitess

Reviewers
[vtctld] Migrate GetSchema

<!-- How to contribute: https://vitess.io/docs/contributing/ Please first make sure there is an open Issue to discuss the feature/fix suggested in this PR. If this is a new feature, please mark the Issue as "RFC". -->

<!-- if this PR is Work in Progress please create it as a Draft Pull Request -->

Description

<!-- A few sentences describing the overall goals of the pull request's commits. -->

This migrates the GetSchema vtctl command to a vtctld rpc, and reimplements the old command to use the new RPC under the hood.

Example:

❯ vtctldclient --server "localhost:15999" GetSchema zone1-0000000100
{
  "database_schema": "CREATE DATABASE /*!32312 IF NOT EXISTS*/ {{.DatabaseName}} /*!40100 DEFAULT CHARACTER SET utf8 */",
  "table_definitions": [
    {
      "name": "corder",
      "schema": "CREATE TABLE `corder` (\n  `order_id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `customer_id` bigint(20) DEFAULT NULL,\n  `sku` varbinary(128) DEFAULT NULL,\n  `price` bigint(20) DEFAULT NULL,\n  PRIMARY KEY (`order_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8",
      "columns": [
        "order_id",
        "customer_id",
        "sku",
        "price"
      ],
      "primary_key_columns": [
        "order_id"
      ],
      "type": "BASE TABLE",
      "data_length": "16384",
      "row_count": "0",
      "fields": [
        {
          "name": "order_id",
          "type": "INT64",
          "table": "corder",
          "org_table": "corder",
          "database": "vt_commerce",
          "org_name": "order_id",
          "column_length": 20,
          "charset": 63,
          "decimals": 0,
          "flags": 49667,
          "column_type": ""
        },
        {
          "name": "customer_id",
          "type": "INT64",
          "table": "corder",
          "org_table": "corder",
          "database": "vt_commerce",
          "org_name": "customer_id",
          "column_length": 20,
          "charset": 63,
          "decimals": 0,
          "flags": 32768,
          "column_type": ""
        },
        {
          "name": "sku",
          "type": "VARBINARY",
          "table": "corder",
          "org_table": "corder",
          "database": "vt_commerce",
          "org_name": "sku",
          "column_length": 128,
          "charset": 63,
          "decimals": 0,
          "flags": 128,
          "column_type": ""
        },
        {
          "name": "price",
          "type": "INT64",
          "table": "corder",
          "org_table": "corder",
          "database": "vt_commerce",
          "org_name": "price",
          "column_length": 20,
          "charset": 63,
          "decimals": 0,
          "flags": 32768,
          "column_type": ""
        }
      ]
    },
    {
      "name": "customer",
      "schema": "CREATE TABLE `customer` (\n  `customer_id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `email` varbinary(128) DEFAULT NULL,\n  PRIMARY KEY (`customer_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8",
      "columns": [
        "customer_id",
        "email"
      ],
      "primary_key_columns": [
        "customer_id"
      ],
      "type": "BASE TABLE",
      "data_length": "16384",
      "row_count": "0",
      "fields": [
        {
          "name": "customer_id",
          "type": "INT64",
          "table": "customer",
          "org_table": "customer",
          "database": "vt_commerce",
          "org_name": "customer_id",
          "column_length": 20,
          "charset": 63,
          "decimals": 0,
          "flags": 49667,
          "column_type": ""
        },
        {
          "name": "email",
          "type": "VARBINARY",
          "table": "customer",
          "org_table": "customer",
          "database": "vt_commerce",
          "org_name": "email",
          "column_length": 128,
          "charset": 63,
          "decimals": 0,
          "flags": 128,
          "column_type": ""
        }
      ]
    },
    {
      "name": "product",
      "schema": "CREATE TABLE `product` (\n  `sku` varbinary(128) NOT NULL,\n  `description` varbinary(128) DEFAULT NULL,\n  `price` bigint(20) DEFAULT NULL,\n  PRIMARY KEY (`sku`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8",
      "columns": [
        "sku",
        "description",
        "price"
      ],
      "primary_key_columns": [
        "sku"
      ],
      "type": "BASE TABLE",
      "data_length": "16384",
      "row_count": "0",
      "fields": [
        {
          "name": "sku",
          "type": "VARBINARY",
          "table": "product",
          "org_table": "product",
          "database": "vt_commerce",
          "org_name": "sku",
          "column_length": 128,
          "charset": 63,
          "decimals": 0,
          "flags": 20611,
          "column_type": ""
        },
        {
          "name": "description",
          "type": "VARBINARY",
          "table": "product",
          "org_table": "product",
          "database": "vt_commerce",
          "org_name": "description",
          "column_length": 128,
          "charset": 63,
          "decimals": 0,
          "flags": 128,
          "column_type": ""
        },
        {
          "name": "price",
          "type": "INT64",
          "table": "product",
          "org_table": "product",
          "database": "vt_commerce",
          "org_name": "price",
          "column_length": 20,
          "charset": 63,
          "decimals": 0,
          "flags": 32768,
          "column_type": ""
        }
      ]
    }
  ],
  "version": "4a696261cc73c605a887ad6a547dce18"
}
❯ vtctldclient --server "localhost:15999" GetSchema -n zone1-0000000100
corder
customer
product

Related Issue(s)

<!-- List related issues and pull requests: -->

  • (finally!) closes #7134

Checklist

  • [ ] Should this PR be backported? No
  • [x] Tests were added or are not required
  • [x] Documentation was added or is not required

Deployment Notes

<!-- Notes regarding deployment of the contained body of work. These should note any db migrations, etc. -->

Impacted Areas in Vitess

Components that this PR will affect:

  • [ ] Query Serving
  • [ ] VReplication
  • [ ] Cluster Management
  • [ ] Build
  • [ ] VTAdmin
+737 -151

2 comments

12 changed files

ajm188

pr closed time in 23 minutes

issue closedvitessio/vitess

Migrate simple read-only schema commands to vtctld gRPC API

Migrate the following server commands, with testing, and vtctldclient CLI commands:

  • [ ] GetSchema
  • [x] GetSrvVSchema
  • [x] GetVSchema

closed time in 23 minutes

ajm188

Pull request review commentenvoyproxy/envoy

scaled range timer: guard against queue deletion during timer fire

 TEST_F(ScaledRangeTimerManagerTest, DisableWhileScalingMax) {   simTime().advanceTimeAndRun(std::chrono::seconds(100), dispatcher_, Dispatcher::RunType::Block); } +TEST_F(ScaledRangeTimerManagerTest, DisableOtherTimerInCallbackEmptiesQueue) {+  ScaledRangeTimerManagerImpl manager(dispatcher_);++  MockFunction<TimerCb> callback1;+  auto timer1 =+      manager.createTimer(AbsoluteMinimum(std::chrono::seconds(5)), callback1.AsStdFunction());+  MockFunction<TimerCb> callback2;+  auto timer2 =+      manager.createTimer(AbsoluteMinimum(std::chrono::seconds(5)), callback2.AsStdFunction());++  timer1->enableTimer(std::chrono::seconds(100));+  timer2->enableTimer(std::chrono::seconds(100));

Either of those will work. The duration that matters is (max - min) which is (100 - 5) or (95 - 0) as adjusted.

chradcliffe

comment created time in 23 minutes

Pull request review commentenvoyproxy/envoy

scaled range timer: guard against queue deletion during timer fire

 TEST_F(ScaledRangeTimerManagerTest, DisableWhileScalingMax) {   simTime().advanceTimeAndRun(std::chrono::seconds(100), dispatcher_, Dispatcher::RunType::Block); } +TEST_F(ScaledRangeTimerManagerTest, DisableOtherTimerInCallbackEmptiesQueue) {+  ScaledRangeTimerManagerImpl manager(dispatcher_);++  MockFunction<TimerCb> callback1;+  auto timer1 =+      manager.createTimer(AbsoluteMinimum(std::chrono::seconds(5)), callback1.AsStdFunction());+  MockFunction<TimerCb> callback2;+  auto timer2 =+      manager.createTimer(AbsoluteMinimum(std::chrono::seconds(5)), callback2.AsStdFunction());++  timer1->enableTimer(std::chrono::seconds(100));+  timer2->enableTimer(std::chrono::seconds(100));

We need both timers to end up in the same queues so their durations should be the same.

I think the solution is to do an advance of 5 seconds between the first enable and the second enable.

chradcliffe

comment created time in 25 minutes

Pull request review commentenvoyproxy/envoy

route config: Allow to configure direct response body size

 message RouteConfiguration {   // option. Users may wish to override the default behavior in certain cases (for example when   // using CDS with a static route table).   google.protobuf.BoolValue validate_clusters = 7;++  // The maximum bytes of the response :ref:`direct response body+  // <envoy_api_field_config.route.v3.DirectResponseAction.body>` size. If not specified the default+  // is 4096.

Updated.

dio

comment created time in 25 minutes

Pull request review commentenvoyproxy/envoy

route config: Allow to configure direct response body size

 message RouteConfiguration {   // option. Users may wish to override the default behavior in certain cases (for example when   // using CDS with a static route table).   google.protobuf.BoolValue validate_clusters = 7;++  // The maximum bytes of the response :ref:`direct response body+  // <envoy_api_field_config.route.v3.DirectResponseAction.body>` size. If not specified the default+  // is 4096.+  //+  // .. warning::+  //+  //   The content of :ref:`direct response body+  //   <envoy_api_field_config.route.v3.DirectResponseAction.body>` will be held in memory.

Tried to add more description on this. Please let me know if I put it wrongly.

dio

comment created time in 25 minutes

delete branch golang/go

delete branch : release-branch.go1.15-security

delete time in 26 minutes

more