concurrency.Session fails if there is reconnection to server

Hi!
I am experimenting with etcdv3 (built from master). I tried to use concurrency.Session primitive and seems that it can stuck if client connection to server fails and then reestablishes. I came up with code like this:
package housekeeping

import (
	"github.com/coreos/etcd/clientv3"
	"github.com/coreos/etcd/clientv3/concurrency"
	"github.com/golang/glog"
	"golang.org/x/net/context"
	"time"
)

var nodeValue string = "Lock"

type CancellableFunc func(context.Context)

func notFound(key string) clientv3.Cmp {
	return clientv3.Compare(clientv3.ModRevision(key), "=", 0)
}

func LockAndRun(ctx context.Context, c *clientv3.Client, name string, runnable CancellableFunc) {
	glog.Infof("Started locking %s", name)
	for {
	session:
		cancelCtx, cancelFunc := context.WithCancel(ctx)
		s, err := concurrency.NewSession(c)
		if err == nil {
			glog.Info("Created session with lease ID: ", s.Lease())
			for {
				glog.V(2).Info("Iterating")
				txnResp, err := c.KV.Txn(ctx).If(
					notFound(name),
				).Then(
					clientv3.OpPut(name, nodeValue, clientv3.WithLease(s.Lease())),
				).Commit()
				if err != nil {
					if ctx.Err() != nil {
						// We have been cancelled
						return
					}
					// We might have disconnected and need to start a new session
					glog.Error("Failed to create lock file: ", err.Error())
					s.Orphan()
					time.Sleep(5 * time.Second) // Avoid busy looping
					goto session
				} else if !txnResp.Succeeded {
					glog.V(2).Info("Transaction failed, will retry...")
					time.Sleep(5 * time.Second)
				} else {
					break
				}
			}
			// Now we have created file with lease, assuming lock is held
			glog.Infof("Assuming control over '%s', starting runnable", name)
			go runnable(cancelCtx)
			select {
			case <-ctx.Done(): // If initial context is Done - stop all activities
				cancelFunc()
				return
			case <-s.Done(): // If session is Done, just start all over again
				cancelFunc()
				break
			}
			glog.Infof("Stopped runnable, will retry")
			continue
		} else if ctx.Err() != nil {
			glog.Info("Context cancelled ", ctx.Err().Error())
		} else {
			glog.Errorf("Failed to establish session: %s", err.Error())
			time.Sleep(5 * time.Second)
		}
	}
}

If I run it and restart etcd in another terminal, I get something like this
I0606 18:34:51.588098   30070 leader.go:23] Started locking /_leaders/housekeeper
I0606 18:34:51.588793   30070 leader.go:29] Created session with lease ID:<PHONE_NUMBER>049219091
I0606 18:34:51.588806   30070 leader.go:31] Iterating
I0606 18:34:51.592221   30070 leader.go:55] Assuming control over '/_leaders/housekeeper', starting runnable
# At this point we are leading and runnable is running
I0606 18:36:17.425689   30070 leader.go:65] Stopped runnable, will retry
# etcd is shut down
E0606 18:36:17.425809   30070 leader.go:70] Failed to establish session: grpc: timed out trying to connect
E0606 18:36:22.426144   30070 leader.go:70] Failed to establish session: grpc: timed out trying to connect
# etcd is started
I0606 18:36:30.240222   30070 leader.go:29] Created session with lease ID:<PHONE_NUMBER>076462850
I0606 18:36:30.240238   30070 leader.go:31] Iterating
I0606 18:36:30.241878   30070 leader.go:48] Transaction failed, will retry...
I0606 18:36:35.242068   30070 leader.go:31] Iterating
I0606 18:36:35.242682   30070 leader.go:48] Transaction failed, will retry...
I0606 18:36:40.242878   30070 leader.go:31] Iterating
I0606 18:36:40.243489   30070 leader.go:48] Transaction failed, will retry...
I0606 18:36:45.243656   30070 leader.go:31] Iterating
I0606 18:36:45.244288   30070 leader.go:48] Transaction failed, will retry...
I0606 18:36:50.244409   30070 leader.go:31] Iterating
I0606 18:36:50.245018   30070 leader.go:48] Transaction failed, will retry...
I0606 18:36:55.245211   30070 leader.go:31] Iterating
I0606 18:36:55.245900   30070 leader.go:48] Transaction failed, will retry...
I0606 18:37:00.246091   30070 leader.go:31] Iterating
I0606 18:37:00.246916   30070 leader.go:48] Transaction failed, will retry...
I0606 18:37:05.247146   30070 leader.go:31] Iterating
I0606 18:37:05.247941   30070 leader.go:48] Transaction failed, will retry...
I0606 18:37:10.248086   30070 leader.go:31] Iterating
I0606 18:37:10.248686   30070 leader.go:48] Transaction failed, will retry...
I0606 18:37:15.248883   30070 leader.go:31] Iterating
I0606 18:37:15.249545   30070 leader.go:48] Transaction failed, will retry...
I0606 18:37:20.249891   30070 leader.go:31] Iterating
I0606 18:37:20.250546   30070 leader.go:48] Transaction failed, will retry...
I0606 18:37:25.250735   30070 leader.go:31] Iterating
I0606 18:37:25.251353   30070 leader.go:48] Transaction failed, will retry...
I0606 18:37:30.251481   30070 leader.go:31] Iterating
I0606 18:37:30.252107   30070 leader.go:48] Transaction failed, will retry...
I0606 18:37:35.252273   30070 leader.go:31] Iterating
# At this point my code will call s.Orphan() and get stuck
E0606 18:37:35.252894   30070 leader.go:43] Failed to create lock file: etcdserver: requested lease not found

Any help will be appreciated.

@nekto0n I can't seem to reproduce this failure. There's not much in Orphan that can lock up (I read through the cancelation path and it looks OK). Can you ctrl+| when it hangs and post the trace here?

Yeah, I failed to reproduce this behavior today. But nevertheless I see strange things :)
Part 1

Run this http://pastebin.com/QZy5rNpv with -logtostderr -v2 and etcd running
Restart etcd after we assume that we have control over key
See, that session is alive (i.e. we see Tick message repeating)

Here is SIGQUIT output: http://pastebin.com/36Mr5sGL. Even if etcd never comes back session.Done() never closes.
Part 2

Fix example by setting DialTimeot in clientv3.Config to 1 second and run again.
Restart etcd, see that session is closed correctly, runnable stopped and new session created.
Wait for a minute for previous session lease to expire.
See that runnable is started again.
Restart etcd again - session is assumed alive, runnable keeps looping.

Here is SIGQUIT output for this case: http://pastebin.com/r9Xb7nm0

@nekto0n,
(1) is because the lease code will keep retrying to keepalive until it gets some response from etcd. I think this can be safely fixed in the client by having a timeout that closes the keepalive channel if the delay for a response exceeds the lease duration.
(2) I don't understand what's the bug with this one. The loop creates a new session on retry if the old one expired-- why shouldn't runnable start again?

In case (2) session is not closed and recreated after etcd being restarted second time, runnable does not restart second time - it just keeps running. Sorry if my description didn't make it clear.

@nekto0n I tried the code with #5603 and it seems OK. I launched a 3 member cluster and stopped the etcd on <IP_ADDRESS>:2379 to cut off the keep-alives and expire the lease. The code ticks until expiration and finishes runnable. I repeated this process and runnable goes up/down with the lease each time.
Let me know if it's still broken in case I missed something when trying to repro the issue. Thanks!

Yes, just applied provided patch and everything went smoothly. Thanks!

#5603 merged. Closing.


Use jigsaw as a library

Is it possible to use jigsaw as a library, e.g. in a existing Laravel project?

Per this closed issue and comment by Keith, no it doesn't appear like that's on the roadmap unfortunately:
https://github.com/tightenco/jigsaw/issues/376#issuecomment-591746786

@Wulfheart @HeroVega It's not possible at the moment, but this is a high priority for an upcoming v2 of Jigsaw that we've begun working on ...

Is it possible to build my laravel (app) and jigsaw (for my docs) and then redirect any request to /docs to my jigsaw path and not to laravel?


GitHub actions

:tada: This PR is included in version 1.16.3 :tada:
The release is available on:

v1.16.3
GitHub release

Your semantic-release bot :package::rocket:


Update readmes to match common design (analysis category)

With the common designs now having gone through a full overhaul, this PR applies the updated readmes to the Java samples in the category Analysis.
I've done my best to apply all the proper terminology in the how to use the sample and how it works sections. For example click instead of tap, and to use the correct API names. The data in this batch matches the data used in the common designs, so there's no need to change here.
@Rachael-E could you have a look when you find some time between Android readmes? Thanks!!

Thanks @Rachael-E for the detailed review. There's definitely a few things to keep an eye out for. Should get better with the next batch, hopefully.
Could you have another look please with the applied changes?


1ES Transition Items - "Extras"

Discovered long tail items

[ ] Transition azure-sdk-for-android
[ ] Scan azure-sdk-build-tools exes with 1es-templates
[ ] Remove download-credscan-suppression.yml

Designer Builds
The following builds are designer, and will not benefit from the yml updates above.

[ ] mgmt-netsdk-sign
[ ] mgmt-NetCore-SDK-Publish
[ ] mgmt-netsdk-multiapi-publish
[ ] mgmt-netsdk-sdkcommon-publish
[ ] mgmt-netsdk-publish
[ ] Specs Repo - Update readme.md all-api-versions tags.
[ ] Autorest Npm Admin Task
[ ] tools - Codex - vscode.dev
[ ] We need to come up with a strategy for these.

Release Builds
Need to come up with a strategy for all the internal release pipelines that do not have yaml attached to them. Full List

These are lo-pri... they existed before and they continue to exist after the transition.  We should not worry about these until we get dinged on them (and then we'll probably just delete them).

At least in Java we're finding that in some CI runs virus scanning can take 10 to 15 minutes to run. Looking at the step running virus scanning, this could be that we're using '$(System.DefaultWorkingDirectory)' as the output parent directory, which may mean we're scanning all source code, build artifacts, and test recordings downloaded and generated during CI.
We should investigate if moving these build artifacts to a subfolder reduces the number of files that need to be virus scanned.

These designer builds are lo-pri... they existed before and they continue to exist after the transition. We should not worry about these until we get dinged on them (and then we'll probably just delete them).

They were all deleted.

This is all done except for one item that I am blocked on. Publishing the ADO extension from openapi-alps-publish. Have a support ticket out with the 1es folks. Holding pattern until response.


Revert "New values.yaml reference page"

Reverts keptn/keptn.github.io#1342

We fixed the problem in https://github.com/keptn/keptn.github.io/pull/1378 so this is no longer needed.


chore: Use ServiceIdentifier Constants from the Service Binding Library

Context

SAP/cloud-sdk-java-backlog#428
This PR refactors our implementation to make use of the ServiceIdentifier constants provided by the SBL.
This has not been done earlier to avoid potential runtime issues caused by version conflicts of the SBL.
This PR also reverts: Make Service Binding Library usage backwards-compatible

Closed until we decide to increase our minimum SBL version.
DO NOT DELETE THIS BRANCH


VTOL Flight Issue

@RomanBapst Could you please have a look at this log file?
https://review.px4.io/plot_app?log=6fa2399a-ccb4-4a2d-8303-091dec28dda0
@PX4/testflights You can tag Roman for future issues directly.

@LorenzMeier for VTOL issues or any issue?

Any controls related issue.

@r0gelion Hi, I was looking at the above logs From what I can see the vehicle started to roll over immediately after the transition. Was this vehicle flying before or was this a maiden flight? I'm asking because it looks like the direction of the elevons was reversed or something like that.
If this was not the case let me know and I'll dig deeper.

@r0gelion Also I cannot see in the logs that the vehicle transitioned back to copter mode. It did stall at some point but until the very end there was not transition, as suggested in the description in the log.

Is there any video of this flight?
Do you have any preflight checks for fixed wing or vtol?

Last successful flights on this vtol:
vtol take-off and landing; good tracking in auto:
https://logs.px4.io/plot_app?log=7857f742-6dc4-45f2-83f9-3b8ac64c2d4b
https://logs.px4.io/plot_app?log=fb6061ba-31a9-4a64-a097-8af3489bdc16
manual take-off and transition to fw; stable flight:
https://logs.px4.io/plot_app?log=d749fb0e-a3cf-4d3d-a072-0d55c3b5d22e

@santiago3dr @dagar My conclusion here is the following:

You entered a spin by pulling up too much and thus reducing airspeed.
If you have a look at the animation you really get that impression
https://logs.px4.io/3d?log=6fa2399a-ccb4-4a2d-8303-091dec28dda0

Something went wrong with the elevons (failure).

I cannot completely rule out the second point but my feeling is that 1) was most likely to happen.

@santiago3dr By the way, I don't know if you are aware of that but you can enable quadchute based on euler angle violation. You can read more about it here, search for VT_FW_QC_P
I think this feature would have saved your wing in this case.

The odd flight that had a back momentary back transition to MR and then back to FW for a rough landing:
https://review.px4.io/plot_app?log=63b57036-d008-4917-b170-f17b8d142f8d
@dagar you suggested to check possible rc loss

@RomanBapst Let's try to find a final answer here.

@santiago3dr @LorenzMeier I had a look at the last log which you posted.
The  'unwanted' backtransition was a result of the vehicle receiving a DO-TRANSITON command when it was flying in AUTO mode. From the vehicle command fields it looks like the transition was part of the mission it was running. The vehicle did the transition upon which the pilot switched to stabilized mode. Since the transition switch was held in the ON position (fw flight) the vehicle transitioned to forward flight again. After that the vehicle remained in stabilized mode until it landed.
So far everything makes sense and I don't see any bug.
@santiago3dr Is there any other issue you want to raise from this? the only thing I could think of is to change the handling of the transition switch, e.g. do not transition if came back from AUTO mode and first require the user to flip the switch into the  mode(hover or forward flight) the vehicle currently is in.
I will close this for now, please reopen if you think there is an problem we should fix.

That all makes sense, the transition switch was on MR by default as both transition to FW and rtl were part of the waypoint mission; I will try to adjust the mission and transition manually prior to Auto so that any back-transitions do not come as a surprise.


openai-whisper-cpp: performance regression after upgrade to 24.11

Describe the bug

I recently upgraded one of my systems from version 24.05 to the 24.11 release preview and noticed a significant slowdown in the performance of the openai-whisper-cpp package. Upon reviewing the logs, it appears that the package is no longer detecting the available extensions on my CPU:
system_info: n_threads = 6 / 6 | AVX = 0 | AVX2 = 0 | AVX512 = 0 | FMA = 0 | NEON = 0 | ARM_FMA = 0 | METAL = 0 | F16C = 0 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 0 | SSE3 = 0 | SSSE3 = 0 | VSX = 0 | CUDA = 0 | COREML = 0 | OPENVINO = 0 | CANN = 0

I attempted to override the package to the latest upstream version (1.7.2), but unfortunately, that did not resolve the issue. I also looked into the package history in nixpkgs to identify any changes between versions 24.05 and 24.11 that might explain this regression, but I didn’t find anything conclusive.
After a quick review of the Makefile in the upstream source code, I considered that the CXX_FLAGS might be a factor, even though it seems that whisper-cpp performs detection at runtime. I ran resolve-march-native and recompiled the package with NIX_CFLAGS_COMPILE and NIX_CXXFLAGS_COMPILE set to match my CPU, and the extensions are now being detected correctly.
While this workaround works for me at the moment, I believe it may require someone with more expertise in Nix to implement a more permanent solution.
Steps To Reproduce
Steps to reproduce the behavior:

Run openai-whisper-bench and observe the system_info log line.

Expected behavior
I would expect the CPU's extensions to be detected and utilized effectively.
Screenshots

Additional context

Metadata

system: "x86_64-linux"
host os: Linux 6.11.7, NixOS, 24.11 (Vicuna), 24.11pre-git
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.24.10
nixpkgs: /nix/store/idq1bmwwy9rlkc21hccvx42wlwpxsx1f-source

Notify maintainers

@dit7ya @hughobrien

Note for maintainers: Please tag this issue in your PR.

Add a :+1: reaction to issues you find important.

Confirmed on 1.7.2 amd64, and the pending 1.7.2 update
I spent some time digging around and can see that -march native is used, but for some reason this doesn't pick up on the available simd extensions. We can manually add them to the makefile and the benchmark will then report them but this is hardly ideal.
I looked into manually specifying them based on hostPlatform but have hit something rather odd:
  preConfigure = ''
    echo linux: ${lib.optionalString stdenv.hostPlatform.isLinux "true"}
    echo x86_64: ${lib.optionalString stdenv.hostPlatform.isx86_64 "true"}
    echo sse3: ${lib.optionalString stdenv.hostPlatform.sse3Support "true"}
    echo ssse3: ${lib.optionalString stdenv.hostPlatform.ssse3Support "true"}
    echo sse4_1: ${lib.optionalString stdenv.hostPlatform.sse4_1Support "true"}
    echo sse4_2: ${lib.optionalString stdenv.hostPlatform.sse4_2Support "true"}
    echo sse4_a: ${lib.optionalString stdenv.hostPlatform.sse4_aSupport "true"}
    echo avx: ${lib.optionalString stdenv.hostPlatform.avxSupport "true"}
    echo avx2: ${lib.optionalString stdenv.hostPlatform.avx2Support "true"}
    echo avx512: ${lib.optionalString stdenv.hostPlatform.avx512Support "true"}
    echo fma: ${lib.optionalString stdenv.hostPlatform.fmaSupport "true"}
    echo fma4: ${lib.optionalString stdenv.hostPlatform.fma4Support "true"}
    exit
'';

Running phase: configurePhase
linux: true
x86_64: true
sse3:
ssse3:
sse4_1:
sse4_2:
sse4_a:
avx:
avx2:
avx512:
fma:
fma4:

They don't seem to be available there either. I'm out of my depth here I think.

gcc  -Iggml/include -Iggml/src -Iinclude -Isrc -Iexamples -D_XOPEN_SOURCE=600 -D_GNU_SOURCE -DNDEBUG -DGGML_USE_OPENMP  -std=c11   -fPIC -O3 -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -pthread -march=native -mtune=native -fopenmp -Wdouble-promotion    -c ggml/src/ggml.c -o ggml/src/ggml.o

I don't think it's 'stripping' -march=native but it certainly seems to be changing the behaviour of it. NIX_ENFORCE_NO_NATIVE seems to be the culprit. Details here
Indeed setting NIX_ENFORCE_NO_NATIVE=0 in preConfigure seems to be enough:
system_info: n_threads = 4 / 16 | AVX = 1 | AVX2 = 1 | AVX512 = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | METAL = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 0 | SSE3 = 1 | SSSE3 = 1 | VSX = 0 | CUDA = 0 | COREML = 0 | OPENVINO = 0 | CANN = 0

I don't know what the nix-ey way to solve for this is, possibly a variation of the derivation that assumes avx support.

Upstream discussed it: https://github.com/ggerganov/whisper.cpp/issues/1939

@PapayaJackal  This was caused by the dynamic backend selection not working correctly.


Remove 6.0.* version constants

This PR removes LegacyESVersion.V_6_0_* constants including all pre-release
versions and bug fixes in preparation for 2.0.0 and Lucene 9 upgrade.

start gradle check

Previous check failure giving an AccessDenied on the log. I wonder if this was a glitch in the jenkins matrix.

AWS Status is currently affecting PR builds. Validation awaits resolution...

start gradle check

start gradle check

start gradle precommit

I think we prematurely disabled pre-commit before merging #1664.

Le Sigh... Azure timeouts!!

start gradle check

Looks like the transient timeouts - retrying check
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':qa:smoke-test-multinode:integTest'.
> `cluster{:qa:smoke-test-multinode:integTest}` failed to wait for cluster health yellow after 40 SECONDS
    IO error while waiting cluster
    503 Service Unavailable

start gradle check


'DataHooks' object has no attribute 'on_init_start'

🐛 Bug
I am getting an error:
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/clearml/binding/hydra_bind.py", line 146, in _patched_task_function
    return task_function(a_config, *a_args, **a_kwargs)
  File "run.py", line 38, in main
    config.target.checkpoint_path = train(config)
  File "/workdir/src/train.py", line 61, in train
    trainer: Trainer = instantiate(
  File "/usr/local/lib/python3.8/dist-packages/hydra/_internal/instantiate/_instantiate2.py", line 180, in instantiate
    return instantiate_node(config, *args, recursive=_recursive_, convert=_convert_)
  File "/usr/local/lib/python3.8/dist-packages/hydra/_internal/instantiate/_instantiate2.py", line 249, in instantiate_node
    return _call_target(target, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/hydra/_internal/instantiate/_instantiate2.py", line 64, in _call_target
    raise type(e)(
  File "/usr/local/lib/python3.8/dist-packages/hydra/_internal/instantiate/_instantiate2.py", line 62, in _call_target
    return target(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pytorch_lightning/trainer/connectors/env_vars_connector.py", line 40, in insert_env_defaults
    return fn(self, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pytorch_lightning/trainer/trainer.py", line 426, in __init__
    self.on_init_start()
  File "/usr/local/lib/python3.8/dist-packages/pytorch_lightning/trainer/callback_hook.py", line 62, in on_init_start
    callback.on_init_start(self)
AttributeError: Error instantiating 'pytorch_lightning.trainer.trainer.Trainer' : 'DataHooks' object has no attribute 'on_init_start'

To Reproduce
It's quite hard to reproduce since my project is large.
Expected behavior
I guess should be no error :)
Environment

CUDA:
- GPU:
- NVIDIA GeForce RTX 3090
- NVIDIA GeForce RTX 3090
- available:         True
- version:           11.1
Packages:
- numpy:             1.21.2
- pyTorch_debug:     False
- pyTorch_version:   1.9.0+cu111
- pytorch-lightning: 1.4.1
- tqdm:              4.59.0
System:
- OS:                Linux
- architecture:
- 64bit
- ELF
- processor:         x86_64
- python:            3.8.5
- version:           #29~20.04.1-Ubuntu SMP Wed Aug 11 15:58:17 UTC 2021

Additional context
Previously I had no such error, but I've changed something and now I am unable to run the pipeline.

Actually found the problem :)

Actually found the problem :)

Could you comment here what the problem was and how you resolved it, so others that come to this issue know how to fix it?


How can i get the random []*ent?

I have a scenario where data is returned randomly when certain conditions are met.
How can i do?
@a8m thx

Hey @CNTWDev 👋
You can provide a custom ORDER BY function as follows:
nodes := client.T.
	Query().
	Where( /* Condition goes here. */ ).
	Order(func(s *sql.Selector) {
		// A custom ORDER BY function. Use "RANDOM()" in SQLite.
		s.OrderBy("RAND()")
	}).
	All(ctx)

Closing, but please feel free to reopen or join our Discord server if you still need help with this 😎


Some events outside angular's digest cycle

Hi,
At least the 'deselectNode' occurs outside angular's digest cycle (maybe more).
I have this (stripped) setup:
this.events = {
    selectNode: this.nodeSelected,
    deselectNode: this.nodeSelected
};

The 'nodeSelected' roughly looks like this:
public nodeSelected = (items) => {
    if (items.nodes.length) {
        this.selected = items.nodes[0];
    } else {
        this.selected = null;
    };
};

If i display the selected like this:

It updates the selected if the 'selectNode' is triggered, but not when the 'deselectNode' is triggered, only after a new digest cycle. The current workaround I implemented  is this:
public nodeSelected = (items) => {
    if (items.nodes.length) {
        this.selected = items.nodes[0];
    } else {
        this._$scope.$apply(() => {
            this.selected = null;
        });
    };
};

What causes this issue?

I found a similar problem with the stabilizationDone callback. The following does not always trigger the $watchCollection for the  options field. However, sometimes it is triggered quite late.
``
$scope.graphEvents = {
"stabilized": stabilizationDone
}
function stabilizationDone() {
$scope.graphOptions['physics'] = false;
}


Directory Memory Functionality

Details on the Directory Memory Functionality Trello card.

Resolved with PR 236, so closed.


Fallen Empire Options missing?

Crisis Manager Sleeper Edition:
Reported by Zetron & Leviathan:
"When I go in the configuration menu for the fallen empires and click any options, it doesn't open anything."
"I have the same problem as Leviathan."

Unable to duplicate; possibly related to issues with mods opening/menu functionality in general which were (hopefully) fixed in recent updates.
Leaving this open for now.


[#167507410] Enable AWS Shield

🚨 Do not merge this PR until PR 193 in the account wide terraform has been merged and applied in all environments 🚨
What
We've subscribed to AWS Shield Advanced in our AWS parent account, and that gives our other accounts access. This applies DDoS protection to the application and system load balancers using an AWS WAF rate based rule.
How to review

Code review
Run it down your dev env, then check in the AWS console that your app and system load balancers are protected by the WAF (see the integrated services tab)

Who can review
Anyone

Would it be possible to document reproduce how this 600k number can be calculated by a reviewer?

Would it be possible to document reproduce how this 600k number can be calculated by a reviewer?

Yep. In a Kibana data table visualisation, we searched for gorouter log lines with @source.component:gorouter, then we ...

split the table using the terms in the @source.deployment field to get a table of London and Ireland
bucketed lines using a date histogram with an interval of 5m
split columns using the gorouter.header.x_forwarded_for.keyword field (intended to give us an originating IP, since we don't have a field on the gorouter logs which is solely that)
Set the time range to the last 14 days

Finally, we downloaded the data as CSV, ordered it by request count descending, and looked for the biggest count in any 5 minute period.
Looking back, I'm not entirely happy with that method, so I'll redo it this morning and update as necessary.


How to check whether key for encrypted database is valid

We use an encrypted database that the user has to enter the key to access.  Is it possible to validate that the user has entered the key correctly?
If you try to query the database with an invalid key then we currently just get an assertion (debug mode) and the app halts.

That's not currently possible with the error model in the Swift 1.2 version. This will improve with the Swift 2 version, but that won't be ready for a little while.
One solution in the meantime would be to store the user's password in the keychain, and use that value for checking/keying the database.

Sadly thats not possible as the database is dynamically downloaded every so often with a different key.
Just for info, I've worked around it for the moment by added a new method to Cipher - can AccessDatabase which does a simple sqlite3_execute call without wrapping with the try and returns true if no error or false if any other error.

Any news on this?


Use .fr_cf instead of cf() mixin for grids

Why?

Consistency with the existing codebase. And as far the existing codebase goes, I went with util classes for smaller download sizes.

Alrighty

ended up going with the mixin after all.


UML 951 - want to understand when an LPA can be used

Purpose
https://opgtransform.atlassian.net/browse/UML-951
Fixes UML-951

Summary handler amended to pass actor details parameter to make content display decision in twig based on actor type
Fixed broken tests

Learning
Any tips and tricks, blog posts or tools which helped you. Plus anything notable you've discovered about the Refunds service
Checklist

[X] I have performed a self-review of my own code
[ ] I have added relevant logging with appropriate levels to my code
[ ] I have updated documentation (Confluence/GitHub wiki/tech debt doc) where relevant
[ ] I have added tests to prove my work
[ ] The product team have tested these changes

Coverage decreased (-0.07%) to 81.67% when pulling ef8515ca9e34a7ee8add2e29dcfad5b0d4e8a959 on UML-951 into a6b13b3c72af9764236e5252a1c31b44a079d037 on master.


Non-executable example files

The example file voice_recorder.py lacks the #!/usr/bin/env python3 at the top. It also isn't set to have executable privileges like the other examples.
The same is true for button_led.py. Might be more.

@holten Thank you for reporting this. This has been fixed in https://github.com/google/aiyprojects-raspbian/blob/aiyprojects/src/examples/voice/voice_recorder.py.
A new AIY release is also available at https://github.com/google/aiyprojects-raspbian/releases/tag/v20191113


Send money- Send money message displayed only after page refresh

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Issue found when executing PR https://github.com/Expensify/App/pull/20895
Action Performed:

Open the app
Open any report
Send any text (Hello)
Send money to report

Expected Result:
Send money message displayed
Actual Result:
Send money message displayed only after page refresh
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/f86bb75d-9596-4395-b505-884d5aafad71
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

I'm heading OOO until Tuesday so reassigning until I come back (Staying assigned for that purpose!)

We're actively not focusing on send money bugs right now https://expensify.slack.com/archives/C01GTK53T8Q/p1687388507073569
Going to close this.


TODO

v0.1

[ ] Prepare paper in IEEE format
[ ] An image can have multiple threat objects in it. We'll have to properly segregate them to send as an alert msg
[ ]  Add a script to handle threat (email and sms) and call it from main.py

[ ] Send email

[ ] Send SMS

[x] Script needs access the stored data from config file

[ ] We'll need to add a minimum time interval between alerts being sent through email/sms

[ ] Load the application onto raspberry pi module
[ ] Modify README
[ ] Collect evaluation results

v0.2

[ ] Config file encryption (protect user's mail password)

[ ] Necessary to switch to yaml format?

[ ] Retrain the model with necessary classes only (a person wearing mask, having gun, etc,.)

https://github.com/DanTremonti/smart-surveillance/issues/1#issue-1167192162
Need to work on email alert. I'm getting authentication error. Kindly pull, update config with your credentials and check. @raju-9-11


feat(lds): check envoy listener filter chains

Signed-off-by: jaellio<EMAIL_ADDRESS>

Codecov Report

Merging #96 (9d8440f) into main (7804647) will decrease coverage by 10.46%.
The diff coverage is 46.96%.

@@             Coverage Diff             @@
##             main      #96       +/-   ##
===========================================
- Coverage   49.18%   38.71%   -10.47%
===========================================
  Files          24       28        +4
  Lines         734     1152      +418
===========================================
+ Hits          361      446       +85
- Misses        373      706      +333

Flag
Coverage Δ

unittests
38.71% <46.96%> (-10.47%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/smi/access/routes_existence.go
0.00% <0.00%> (ø)

pkg/smi/access/routes_validity.go
0.00% <0.00%> (ø)

pkg/envoy/lds.go
51.92% <46.66%> (-20.17%)
:arrow_down:

pkg/smi/access/routes.go
100.00% <100.00%> (ø)

pkg/smi/access/traffic_target.go
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 42951a1...9d8440f. Read the comment docs.


CAMEL-10178: Google PubSub Component

Google PubSub component with producer and consumer endpoints, unit and integration tests.

@davsclaus Once again - thank you. Anything else?

Seems good. I think @oscerd and others have helped you review recently. So I will let them merge the PR.

Thanks the PR has been merged. I had to fix a little thing here:
https://github.com/apache/camel/commit/e3bc3ced52eeb7e4dbf620b9c77c2084c16deb75
Can you close the PR?
Many thanks!


[MLDB-1691] Added str_length function

pretty +1

@nicolaskruchten what is the function called in Postgres?

it's called char_length in postgres. I suppose it would be best to follow suit.

there's also a length function in postgres, that is a duplicate of char_length . I personally find char_length kind of odd

Ok, length works for me
On Friday, 27 May 2016, François Maillet<EMAIL_ADDRESS>wrote:

there's also a length function in postgres, that is a duplicate of
char_length . I personally find char_length kind of odd
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mldbai/mldb/pull/395#issuecomment-222249208, or mute
the thread
https://github.com/notifications/unsubscribe/AAMbA_YSlOugSL-IRtDGyZNKKsL5YeZFks5qF1gAgaJpZM4IozCI
.

--
Nicolas Kruchten, Eng  |  Staff Software Engineer at Datacratic  |
http://datacratic.com/


[BUG] Pydantic generator does not correctly handle nullable union

Describe the bug.
The following spec:
{
  title: 'NullableUnionTest',
  type: 'object',
  required: ['nullableUnionTest'],
  properties: {
    nullableUnionTest: {
      anyOf: [
        {
          title: 'Union1',
          type: 'object',
          properties: {
            testProp1: {
              type: 'string'
            }
          }
        },
        {
          type: 'null'
        }
      ]
    }
  }
};

generates the following Pydantic model:
class NullableUnionTest(BaseModel):
  nullableUnionTest: Union[Union1] = Field()
  additionalProperties: Optional[dict[Any, Any]] = Field(default=None)

which does not allow the null/None value.
Expected behavior
The generated model should support null/None values.
Screenshots

How to Reproduce

Clone https://github.com/janne-slamcore/modelina/tree/pydantic-nullable-union
Undo change to Pydantic.ts
npx jest test/generators/python/

🥦 Browser
None
👀 Have you checked for similar open issues?

[X] I checked and didn't find similar issue

🏢 Have you read the Contributing Guidelines?

[X] I have read the Contributing Guidelines

Are you willing to work on this issue ?
Yes I am willing to submit a PR!

@janne-slamcore go for it :v:

@janne-slamcore there is also quite a bit of fixes to python in the next branch in case you encounter more, check it out ✌


can't make the good result using real time processing data

Hi.
when i run the cartographer_ros using real time data,can't make the good result , if the size of scene not large,the result seems  good,But when the scene is a little bigger,the result seems not good,especially when i Return along the original path,The map is a mess,the map look like this:

this is launch and lau:
https://drive.google.com/file/d/0B33M6O52cUeNM2NhVWFwRmhQVzA/view?usp=sharing
https://drive.google.com/file/d/0B33M6O52cUeNTkZPUVhZWEYwQm8/view?usp=sharing
this is bag file:
https://drive.google.com/file/d/0B33M6O52cUeNbEREVk1IaFdwZHM/view?usp=sharing

Your example has two profound problems:

The outdoor environment violates the 2D assumption (flat floor, perpendicular walls, laser is perpendicular to the ground). This means that you will not be able to get great results there ever.
Your laser timestamps are wonky. Your laser is 40Hz, so you'd expect consecutive timestamps to be 25ms apart. This is true for your bag on average, but the smallest value 0.44ms. Since these differences in timing will be used for velocity estimation, the velocity predictions will go through the roof - this is the sliding you are seeing.

My suggestion is to fix your data - for example by hard coding that each scan is 25ms after the former instead of using your system clock for timing the scans. This should allow you to get a reasonable map. I opened a bug about the poor resilience of velocity estimation. https://github.com/googlecartographer/cartographer/issues/242

Another thought: Switching to http://wiki.ros.org/urg_node instead of the hokuyo node gives you more control over the timing. See calibrate_time and time_offset.

@SirVer ,Thank you very much.


Regression test cases failed

Hi All
I'm running the regression test against with the latest CRS in Docker-compose env with modsec3-nginx service, when the test done, there are about 134 case failed: test result.txt
I dig into one failed case, for example, the 944100-11, it contains the java runtime keyword, so it is being blocked by the rule 944100. But in the test cases, it does not expect the error to happen, so seems it's not correct to me.
 Matched "Operator `Ge\' with parameter `5\' against va...1o108,1v335,109t:urlDecodeUni"], client: <IP_ADDRESS>, server: localhost, request: "POST / HTTP/1.0", host: "localhost"']
log_contains = re.compile('id "944100"'), negate = True

    def test_log(self, lines, log_contains, negate):
        """
        Checks if a series of log lines contains a regex specified in the
        output stage. It will flag true on the first log_contains regex match
        and then assert on the flag at the end of the function
        """
        found = False
        print('lines: %s' % lines)
        for line in lines:
            if log_contains.search(line):
                found = True
                break
        if negate:
>           assert not found
E           assert not True

../../../lib/python3.8/dist-packages/ftw/testrunner.py:42: AssertionError
----------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------
=============================================================== 1 failed in 0.40 seconds ===============================================================

# tail tests/logs/modsec3-nginx/error.log
2022/01/04 14:19:30 [info] 26#26: *5228 ModSecurity: Warning. Matched "Operator `ValidateByteRange' with parameter `38,44-46,48-58,61,65-90,95,97-122' against variable `REQUEST_BODY' (Value: `<?xml version="1.0"?><xml><java.lang.Runtime attribute_name="attribute_value">value</java.lang.Runti (9 characters omitted)' ) [file "/etc/modsecurity.d/owasp-crs/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf"] [line "1533"] [id "920273"] [rev ""] [msg "Invalid character in request (outside of very strict set)"] [data "REQUEST_BODY=<?xml version="1.0"?><xml><java.lang.Runtime attribute_name="attribute_value">value</java.lang.Runtime></xml>"] [severity "2"] [ver "OWASP_CRS/3.4.0-dev"] [maturity "0"] [accuracy "0"] [tag "${MODSEC_TAG}"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-protocol"] [tag "OWASP_CRS"] [tag "capec/1000/210/272"] [tag "paranoia-level/4"] [hostname "<IP_ADDRESS>"] [uri "/"] [unique_id "1641305970"] [ref "o0,1o1,1o5,1o14,1o18,1o19,1o20,1o21,1o25,1o26,1o44,1o60,1o76,1o77,1o83,1o84,1o102,1o103,1o104,1o108,1v335,109t:urlDecodeUni"], client: <IP_ADDRESS>, server: localhost, request: "POST / HTTP/1.0", host: "localhost"
2022/01/04 14:19:30 [info] 26#26: *5228 ModSecurity: Warning. Matched "Operator `Rx' with parameter `java\.lang\.(?:runtime|processbuilder)' against variable `REQUEST_BODY' (Value: `<?xml version="1.0"?><xml><java.lang.Runtime attribute_name="attribute_value">value</java.lang.Runti (9 characters omitted)' ) [file "/etc/modsecurity.d/owasp-crs/rules/REQUEST-944-APPLICATION-ATTACK-JAVA.conf"] [line "33"] [id "944100"] [rev ""] [msg "Remote Command Execution: Suspicious Java class detected"] [data "Matched Data: <?xml version="1.0"?><xml><java.lang.runtime attribute_name="attribute_value">value</java.lang.runtime></xml> found within REQUEST_BODY"] [severity "2"] [ver "OWASP_CRS/3.4.0-dev"] [maturity "0"] [accuracy "0"] [tag "${MODSEC_TAG}"] [tag "application-multi"] [tag "language-java"] [tag "platform-multi"] [tag "attack-rce"] [tag "OWASP_CRS"] [tag "capec/1000/152/137/6"] [tag "PCI/6.5.2"] [tag "paranoia-level/1"] [hostname "<IP_ADDRESS>"] [uri "/"] [unique_id "1641305970"] [ref "o27,17v335,109t:lowercase"], client: <IP_ADDRESS>, server: localhost, request: "POST / HTTP/1.0", host: "localhost"
2022/01/04 14:19:30 [info] 26#26: *5228 ModSecurity: Warning. Matched "Operator `Rx' with parameter `(?:unmarshaller|base64data|java\.)' against variable `REQUEST_BODY' (Value: `<?xml version="1.0"?><xml><java.lang.Runtime attribute_name="attribute_value">value</java.lang.Runti (9 characters omitted)' ) [file "/etc/modsecurity.d/owasp-crs/rules/REQUEST-944-APPLICATION-ATTACK-JAVA.conf"] [line "65"] [id "944110"] [rev ""] [msg "Remote Command Execution: Java process spawn (CVE-2017-9805)"] [data "Matched Data: <?xml version="1.0"?><xml><java.lang.Runtime attribute_name="attribute_value">value</java.lang.Runtime></xml> found within REQUEST_BODY"] [severity "2"] [ver "OWASP_CRS/3.4.0-dev"] [maturity "0"] [accuracy "0"] [tag "${MODSEC_TAG}"] [tag "${MODSEC_TAG}"] [tag "application-multi"] [tag "language-java"] [tag "platform-multi"] [tag "attack-rce"] [tag "OWASP_CRS"] [tag "capec/1000/152/248"] [tag "PCI/6.5.2"] [tag "paranoia-level/1"] [hostname "<IP_ADDRESS>"] [uri "/"] [unique_id "1641305970"] [ref "o37,7v335,109t:lowercaseo27,5v335,109"], client: <IP_ADDRESS>, server: localhost, request: "POST / HTTP/1.0", host: "localhost"
2022/01/04 14:19:30 [info] 26#26: *5228 ModSecurity: Warning. Matched "Operator `PmFromFile' with parameter `java-classes.data' against variable `REQUEST_BODY' (Value: `<?xml version="1.0"?><xml><java.lang.Runtime attribute_name="attribute_value">value</java.lang.Runti (9 characters omitted)' ) [file "/etc/modsecurity.d/owasp-crs/rules/REQUEST-944-APPLICATION-ATTACK-JAVA.conf"] [line "120"] [id "944130"] [rev ""] [msg "Suspicious Java class detected"] [data "Matched Data: <?xml version="1.0"?><xml><java.lang.Runtime attribute_name="attribute_value">value</java.lang.Runtime></xml> found within REQUEST_BODY"] [severity "2"] [ver "OWASP_CRS/3.4.0-dev"] [maturity "0"] [accuracy "0"] [tag "${MODSEC_TAG}"] [tag "application-multi"] [tag "language-java"] [tag "platform-multi"] [tag "attack-rce"] [tag "OWASP_CRS"] [tag "capec/1000/152/248"] [tag "PCI/6.5.2"] [tag "paranoia-level/1"] [hostname "<IP_ADDRESS>"] [uri "/"] [unique_id "1641305970"] [ref "o27,17v335,109"], client: <IP_ADDRESS>, server: localhost, request: "POST / HTTP/1.0", host: "localhost"
2022/01/04 14:19:30 [info] 26#26: *5228 ModSecurity: Warning. Matched "Operator `Rx' with parameter `java\b.+(?:runtime|processbuilder)' against variable `REQUEST_BODY' (Value: `<?xml version="1.0"?><xml><java.lang.Runtime attribute_name="attribute_value">value</java.lang.Runti (9 characters omitted)' ) [file "/etc/modsecurity.d/owasp-crs/rules/REQUEST-944-APPLICATION-ATTACK-JAVA.conf"] [line "220"] [id "944250"] [rev ""] [msg "Remote Command Execution: Suspicious Java method detected"] [data "Matched Data: <?xml version="1.0"?><xml><java.lang.runtime attribute_name="attribute_value">value</java.lang.runtime></xml> found within REQUEST_BODY"] [severity "2"] [ver "OWASP_CRS/3.4.0-dev"] [maturity "0"] [accuracy "0"] [tag "${MODSEC_TAG}"] [tag "application-multi"] [tag "language-java"] [tag "platform-multi"] [tag "attack-rce"] [tag "OWASP_CRS"] [tag "capec/1000/152/248"] [tag "PCI/6.5.2"] [tag "paranoia-level/2"] [hostname "<IP_ADDRESS>"] [uri "/"] [unique_id "1641305970"] [ref "o27,75v335,109t:lowercase"], client: <IP_ADDRESS>, server: localhost, request: "POST / HTTP/1.0", host: "localhost"
2022/01/04 14:19:30 [info] 26#26: *5228 ModSecurity: Warning. Matched "Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `25' ) [file "/etc/modsecurity.d/owasp-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf"] [line "139"] [id "949110"] [rev ""] [msg "Inbound Anomaly Score Exceeded (Total Score: 25)"] [data ""] [severity "2"] [ver "OWASP_CRS/3.4.0-dev"] [maturity "0"] [accuracy "0"] [tag "${MODSEC_TAG}"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-generic"] [hostname "<IP_ADDRESS>"] [uri "/"] [unique_id "1641305970"] [ref ""], client: <IP_ADDRESS>, server: localhost, request: "POST / HTTP/1.0", host: "localhost"

So is there anything wrong with my testing?
Thanks,
Bali

Hi @leibaogit,
thanks for your report.
I'm really sorry to write, but unfortunately libmodsecurity3 is not fully compatible with Apache's mod_security2 module. There are few wrong behaviors, which triggers the mentioned false tests by you.
For example, the test above 944100-11 is failed, because variable REQUEST_BODY in libmodsecurity3 is always present. There is an issue about this bug, please check that.
Please let me know, if you have any question.

@airween thanks for your response, then we can close this issue, I will track with the bug issue. Thanks.


Update setHeadlessWhen.js

Headless mode has nothing to do with chrome sandbox, I would remove it. When required a special hook "setSandboxedWhen" would better fit.
Added also a comment reference why --disable-gpu is required (copied from https://stackoverflow.com/questions/42303119/selenium-webdriverio-chrome-headless )

Thanks! That's a valid fix


--include flag depreciated?

Running go get github.com/Stackdriver/stackdriver-prometheus-sidecar/... fetches an unknown version of the binary. This is indicated by running stackdriver-prometheus-sidecar --version, which returns:
prometheus, version  (branch: , revision: )
  build user:
  build date:
  go version:       go1.12.5

When running --help we have the following output:
stackdriver-prometheus-sidecar --helpusage: stackdriver-prometheus-sidecar --stackdriver.project-id=STACKDRIVER.PROJECT-ID [<flags>]

The Prometheus monitoring server

Flags:
  -h, --help                     Show context-sensitive help (also try --help-long and --help-man).
      --version                  Show application version.
      --config-file=CONFIG-FILE  A configuration file.
      --stackdriver.project-id=STACKDRIVER.PROJECT-ID
                                 The Google project ID where Stackdriver will store the metrics.
      --stackdriver.api-address=https://monitoring.googleapis.com:443/
                                 Address of the Stackdriver Monitoring API.
      --stackdriver.kubernetes.location=STACKDRIVER.KUBERNETES.LOCATION
                                 Value of the 'location' label in the Kubernetes Stackdriver MonitoredResources.
      --stackdriver.kubernetes.cluster-name=STACKDRIVER.KUBERNETES.CLUSTER-NAME
                                 Value of the 'cluster_name' label in the Kubernetes Stackdriver MonitoredResources.
      --stackdriver.generic.location=STACKDRIVER.GENERIC.LOCATION
                                 Location for metrics written with the generic resource, e.g. a cluster or data center name.
      --stackdriver.generic.namespace=STACKDRIVER.GENERIC.NAMESPACE
                                 Namespace for metrics written with the generic resource, e.g. a cluster or data center name.
      --stackdriver.metrics-prefix=STACKDRIVER.METRICS-PREFIX
                                 Customized prefix for Stackdriver metrics. If not set, external.googleapis.com/prometheus will be used
      --stackdriver.use-gke-resource
                                 Whether to use the legacy gke_container MonitoredResource type instead of k8s_container
      --prometheus.wal-directory="data/wal"
                                 Directory from where to read the Prometheus TSDB WAL.
      --prometheus.api-address=http://<IP_ADDRESS>:9090/
                                 Address to listen on for UI, API, and telemetry.
      --web.listen-address="<IP_ADDRESS>:9091"
                                 Address to listen on for UI, API, and telemetry.
      --filter=FILTER ...        PromQL-style label matcher which must pass for a series to be forwarded to Stackdriver. May be repeated.
      --log.level=info           Only log messages with the given severity or above. One of: [debug, info, warn, error]

note that there's no flag for --include, which is still references in the main README.md for the repo. Has this capability been depreciated?

Hi, the --include flag is still supported.
In https://github.com/Stackdriver/stackdriver-prometheus-sidecar/blob/master/cmd/stackdriver-prometheus-sidecar/main.go, there's:
a.Flag("include", "PromQL metric and label matcher which must pass for a series to be forwarded to Stackdriver. If repeated, the series must pass any of the filter sets to be forwarded.").
	StringsVar(&cfg.Filtersets)

When I run stackdriver-prometheus-sidecar --help, I see:
  --include=INCLUDE ...      PromQL metric and label matcher which must pass for a series to be forwarded to
                             Stackdriver. If repeated, the series must pass any of the filter sets to be
                             forwarded.


Add Fuzzing

https://github.com/cpuu/awesome-fuzzing/
[Fuzzing for security testing : related papers, workshop materials, video, tools and so on]
I revewed :
https://github.com/sindresorhus/awesome/pull/1493#issuecomment-452150802
https://github.com/sindresorhus/awesome/pull/1366#issuecomment-452151816
By submitting this pull request I confirm I've read and complied with the below requirements 🖖
Please read it multiple times. I spent a lot of time on these guidelines and most people miss a lot.
Requirements for your pull request

You have to review at least 2 other open pull requests. Try to prioritize unreviewed PRs, but you can also add more comments to reviewed PRs. Go through the below list when reviewing. This requirement is meant to help make the Awesome project self-sustaining. Comment here which PRs you reviewed. You're expected to put a good effort into this and to be thorough. Look at previous PR reviews for inspiration.
I have read and understood the instructions for creating a list.
This pull request has a descriptive title in the format Add Name of List (Example: Add Swift), not Update readme.md or Add awesome list.
The entry in the Awesome list should:

Include a short description about the project/theme of the list. It should not describe the list itself.Example: - [Fish](…) - User-friendly shell., not - [Fish](…) - Resources for Fish..
Be added at the bottom of the appropriate category.

The list I'm submitting complies with the below requirements.

Requirements for your Awesome list

Has been around for at least 30 days.That means 30 days from either the first real commit or when it was open-sourced. Whatever is most recent.
It's the result of hard work and the best I could possibly produce.
Non-generated Markdown file in a GitHub repo.
Includes a succinct description of the project/theme at the top of the readme. (Example)
The repo should have awesome-list & awesome as GitHub topics. I encourage you to add more relevant topics.
Not a duplicate.
Only has awesome items. Awesome lists are curations of the best, not everything.
Includes a project logo/illustration whenever possible.

Either centered, fullwidth, or placed at the top-right of the readme. (Example)
The image should link to the project website or any relevant website.
The image should be high-DPI. Set it to maximum half the width of the original image.

Entries have a description, unless the title is descriptive enough by itself. It rarely is though.
Includes the Awesome badge.

Should be placed on the right side of the readme heading.

Can be placed centered if the list has a centered graphics header.

Should link back to this list.

Has a Table of Contents section.

Should be named Contents, not Table of Contents.
Should be the first section in the list.
Should only have one level of nested lists, preferably none.

Has an appropriate license.

That means something like CC0, not a code licence like MIT, BSD, Apache, etc.
WTFPL and Unlicense are not acceptable licenses.
If you use a license badge, it should be SVG, not PNG.

Has contribution guidelines.

The file should be named contributing.md. Casing is up to you.

Has consistent formatting and proper spelling/grammar.

The link and description are separated by a dash. Example: - [AVA](…) - JavaScript test runner.
The description starts with an uppercase character and ends with a period.
Consistent and correct naming. For example, Node.js, not NodeJS or node.js.

Doesn't include a Travis badge.You can still use Travis for list linting, but the badge has no value in the readme.

Go to the top and read it again.

Thanks to @alexk111 ,  I have correctied what you mentioned.
@sindresorhus  , May I ask you to review again?

fuzzing is the action of running a Program Under Test (PUT) with “fuzz inputs”. -Prof. Barton P Miller

This is not a good explanation of what fuzzing is.

The repo description is out of sync with the readme.

The readme title should be Awesome Fuzzing, not Awesome Fuzzing & Fuzz Testing

❯ awesome-lint https://github.com/cpuu/awesome-fuzzing/
✖ Linting

  README.md:33:3
  ✖   15:1    ToC item "Platform" missing corresponding heading                                                                                remark-lint:awesome/toc
  ✖   33:3    Found reference to undefined definition                                                                                remark-lint:no-undefined-references
  ✖   33:3    Invalid list item link                                                                                remark-lint:awesome/list-item
  ✖   38:3    Link to https://www.researchgate.net/profile/Cristiano_Giuffrida/publication/311886374_VUzzer_Application-aware_Evolutionary_Fuzzing/links/585f3f5608aebf17d38d5678/VUzzer-Application-aware-Evolutionary-Fuzzing.pdf is dead  remark-lint:no-dead-urls
  ✖   47:3    Link to https://www.andrew.cmu.edu/user/rkersten/publications/ccs17-kersten.pdf is dead                                                                                remark-lint:no-dead-urls
  ✖   49:3    Link to https://www.comp.nus.edu.sg/~mboehme/paper/CCS17.pdf is dead                                                                                remark-lint:no-dead-urls
  ✖   51:112  List item link and description must be separated with a dash                                                                                remark-lint:awesome/list-item
  ✖   51:115  Text "github" should be written as "GitHub"                                                                                remark-lint:awesome/spell-check
  ✖  105:98   List item description must end with proper punctuation                                                                                remark-lint:awesome/list-item
  ✖  109:58   List item description must end with proper punctuation                                                                                remark-lint:awesome/list-item
  ✖  110:49   List item description must end with proper punctuation                                                                                remark-lint:awesome/list-item
  ✖  111:136  List item description must end with proper punctuation                                                                                remark-lint:awesome/list-item
  ✖  113:58   List item description must start with valid casing                                                                                remark-lint:awesome/list-item
  ✖  124:103  List item link and description must be separated with a dash                                                                                remark-lint:awesome/list-item

  14 errors

https://github.com/sindresorhus/awesome-lint

How great is awesome-lint tool!!
I modified according to the results.
cpuu@cpuu:~$ awesome-lint https://github.com/cpuu/awesome-fuzzing/
✔ Linting

You have not fixed all my points. Please read all my comments.

Linkify Fuzzing in Fuzzing or fuzz testing is an automated software testing technique that to https://en.wikipedia.org/wiki/Fuzzing

For the entries that link to a paper, it would be useful to add a description with a short summary of what the paper is about.

python => Python

To achieve a well-defined scope, I have chosen to include all publications on fuzzing in the last proceedings of 4 major security conferences and others from Jan 2008 to Feb 2019.

Awesome lists should be a curation of the best, not everything.

The sub-sections in the Paper section could use a description on what they are. For example, not clear what USENIX Security is.

Randoop : Feedback-directed => Randoop: Feedback-directed

To achieve a well-defined scope, I have chosen to include all publications on fuzzing in the last proceedings of 4 major security conferences and others from Jan 2008 to Feb 2019.

Awesome lists should be a curation of the best, not everything.

I selected only the best of the latest research trends related to fuzzing.
It is a mistake to write 'all'. it's a 'The only and the best of the best' list.
There are hundreds of security-related conferences. Among them, 4 were selected as the best societies. In those of papers, only the best papers on 'fuzzing' were selected.

Randoop : Feedback-directed => Randoop: Feedback-directed

I confirmed that Randoop is an alias, and the official name of the paper is "Feedback-directed ...", so I modified it accordingly.

The sub-sections in the Paper section could use a description on what they are. For example, not clear what USENIX Security is.

I included description of each conferences which are top 4 security society

For the entries that link to a paper, it would be useful to add a description with a short summary of what the paper is about.

It is a very good opinion and I hope to do so. But it will take a very long time and I will proceed gradually.

I added a sentence describing what fuzzing is, (a kind of software security test method).
More details are already included in the link.
and I merged branch

I'm reluctantly merging this. I hope you do a better effort maintaining the list than you did with this PR.


Wont inject

I can inject the dll using my vac bypass!!! Pls help

Sorry just found out I have to use external module bypassed my bad ;(


Pluralsight Unable to log in

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like that [x])
Use Preview tab to see how your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2017.03.07. If it's not read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2017.03.07

Before submitting an issue make sure you have:

[x] At least skimmed through README and most notably FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[x] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add -v flag to your command line you run youtube-dl with, copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
$ youtube-dl -v <your command line>
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
[debug] youtube-dl version 2017.03.07
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
[debug] Proxy map: {}
...
<end of log>

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: https://www.youtube.com/watch?v=BaW_jenozKc
Single video: https://youtu.be/BaW_jenozKc
Playlist: https://www.youtube.com/playlist?list=PL4lCao7KL_QFVb7Iudeipvc2BCavECqzc

Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.

In first time sorry for my bad english. Pluralsight unable to log-in. See the --verbose comand:
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--playlist-items', '7', '--limit-rate', '50K', '--username', 'PRIVATE', '--password', 'PRIVATE', '--all-subs', '-o', '%(playlist)s/07 - %(title)s.%(ext)s', '--force-ipv4', '--verbose', 'https://app.pluralsight.com/library/courses/c-sharp-fundamentals-with-visual-studio-2015/table-of-contents']
[debug] Encodings: locale cp1252, fs mbcs, out cp850, pref cp1252
[debug] youtube-dl version 2017.03.07
[debug] Python version 3.4.4 - Windows-10-10.0.10586
[debug] exe versions: none
[debug] Proxy map: {}
[pluralsight:course] c-sharp-fundamentals-with-visual-studio-2015: Downloading course JSON
[download] Downloading playlist: C# Fundamentals with Visual Studio 2015
[pluralsight:course] playlist C# Fundamentals with Visual Studio 2015: Collected 67 video ids (downloading 1 of them)
[download] Downloading video 1 of 1
[pluralsight] Downloading login page
[pluralsight] Logging in as<EMAIL_ADDRESS>ERROR: Unable to log in; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpvin3ute2\build\youtube_dl\YoutubeDL.py", line 761, in extract_info
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpvin3ute2\build\youtube_dl\extractor\common.py", line 426, in extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpvin3ute2\build\youtube_dl\extractor\common.py", line 384, in initialize
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpvin3ute2\build\youtube_dl\extractor\pluralsight.py", line 60, in _real_initialize
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpvin3ute2\build\youtube_dl\extractor\pluralsight.py", line 100, in _login
youtube_dl.utils.ExtractorError: Unable to log in; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Where is the duplicate, i can't found the original post

Hi tbaragao, just log out and log in Pluralsight and accept terms.


Split object lock table into two tables

The original table now stores only the "object is live" marker. Actual locks are stored in the new table.

My main question is whether we should do some tests to test the rollout of this PR, especially we are adding and renaming tables at the same time.

Yes, I will do a manual test with a local cluster. Keep in mind the "rename" doesn't do anything to the db, it just lets the rust id diverge from the cf name. The database will be the same


Align LTSV Log Output Issue (Fix)

Can you fix LTSV log output for the last column with *rule*? It is not alined as the rest.
Example:
00/00/00 00:00:00	<IP_ADDRESS>	aaa-bbbbbb-ccc-dddd.example.com *rule*
00/00/00 00:00:01	<IP_ADDRESS>	aaa-bbb-ccc-dd.example.com *rule*

I think, more available signs per 3-rd column will help (~60-70 symbols).

LTSV separates fields with a TAB. The intent is to make the output easy to parse: http://ltsv.org/
This format remains easy to read, way easier than JSON, but the intent is the same. If you add extra spaces, these will be considered a part of the string.

Thanks!
Just tell me please, what file I have to change? The rest I'll read by your link.
(I'm on Windows, using *.conf file for install)

The source code of the logging module is here: https://github.com/jedisct1/dnscrypt-proxy/blob/master/src/plugins/example-logging/example-logging.c
But if you change this, it won't be LTSV any more, so LTSV parsers won't work any more with it.

Unfortunately, I'm not a programmer :( And I leave it as it is.
Anyway, I'm very appreciate you for that great software!


🐛 [firebase_ui_auth] Cannot upgrade intl package, firebase_ui_auth requires intl 0.18.0.

Can't upgrade to 0.18.1 because of firebase_ui_auth

Firebase UI no longer depends on intl package.


Updating Assets location on Windows to ensure it always gets Assets f…

…rom the root of the applicaton.

I really don't have much of a clue about this react-native-windows stuff. Could you help out @jmcginty?


No error message, FPS unchanged

Followed the readme after downloading sekirofpsunlock-v0.2.0 and ran the command ./sekirofpsunlock 60 set-fps 164 with the game running, the command completed instantly, but the FPS in-game was still locked to 60.
I also attempted to run the command, and then launch the game, which did throw an error message after the game had loaded.
./sekirofpsunlock 60 set-fps 164
fgets() failed
is_process_sekiro() failed
find_sekiro_in_dir() failed
find_sekiro() failed
patch() failed

I did try running as a normal user and with sudo just in case, my specs are as follows:
Manjaro 21.3.2 KDE 5.95.0 Plasma 5.24.5
Linux Kernel - x86_64 5.15.50-1-MANJARO
AMD Ryzen 5 2600
Nvidia RTX 3070Ti with NVIDIA driver 515.57
GE-Proton7-24, and tried with proton experimental as well.
Is there something I'm doing wrong on my end? Is there a configuration item I'm missing to make it work?

Doesn't look like you're doing anything wrong.
You're describing two different problems here:

FPS lock does not get patched while the game is running. I'm going to need a memory dump of your game to figure out what gets (or doesn't get) patched. I'll think of a simple way you can do it and post it here.
The patcher looks for the game and exits with errors after failing to read /proc/<pid>/status of a process. I have never experienced this, not sure why it might be happening. How reproducible is it? Do you get errors every time you try, or does it sometimes work fine?

Hi! I only tried to run the patcher before launching the game once, but I'll try to replicate that issue now.
On the first attempt it did not throw any error code, but did not unlock the FPS. On a second attempt to run the command before running the game, it caused the same error:
./sekirofpsunlock 60 set-fps 164
fgets() failed
is_process_sekiro() failed
find_sekiro_in_dir() failed
find_sekiro() failed
patch() failed

On a third, fourth and fifth attempt the patcher seems to successfully find and then unsuccessfully attempt to patch the game with no error codes. When these errors do occur, the patcher process does not throw these errors until the game opens, it sits and waits until the game launches and then produces those error messages.
Running the patcher while the game is running seems to succeed every time, but does not change the FPS. The patcher does not give any output when I run it with the game running, is that normal operation when a patch is successful? Is there a verbose option to output which memory address is getting patched?
I'm still running GE-Proton7-24, with no launch options, and attempted the above with steam overlay disabled as well to see if it was interfering, netting the same results. I'm not sure how to dump the memory of my game, so pointing me in a way to do so would be nice. I'm new to linux gaming, but not to linux in general, but by far am no linux guru.
As a side note, I did also attempt to patch the FPS with v0.1.0 of this patcher, with the same result, no error message, but no FPS unlock. Thank you for taking the time to look at this issue, and for making this patcher in the first place.

Looks like there was a race condition that I was not aware of.
Normally the patcher looks for sekiro.exe by repeatedly reading each /proc/<pid>/status file. However, it seems that if the process dies after you opened the file but before you read from it, the read will fail. This is surprising (files normally stay around until you close them, even if they are deleted), but makes sense when you think about it — status is not a real file.
Anyway, I patched the logic to not fail if that happens, the commit is 60b29c79b422ce75e13ab9be927ca1d6e88dd9c6, you can build it if you want to test it. This should solve the second problem.
To dump the memory I pushed a script at contrib/dumpsection.py, you can download it from https://raw.githubusercontent.com/Lahvuun/sekirofpsunlock/ffe74cb10e3e5d64f02efe3ff13d24e6ec1d79ce/contrib/dumpsection.py
Fire up the game, wait until you're in the main menu and then run the script like so:
./dumpsection.py /proc/$(pgrep sekiro.exe)/mem .text > text

This will dump the section of the game's memory that has code in it. You'll get a file called text, should be around 40 megabytes in size. You should compress it and upload here. You can compress with tar:
tar -caf text.tar.gz text

It'll take a few seconds. Then, upload text.tar.gz here and I'll try to figure out why the FPS lock does not get changed.

Hm, when you try to set the frame lock higher than 75 does it stay at 60? I'm using a 164hz monitor, which is why I used "164" with the patcher, which worked when i played in windows with the patcher that inspired yours.
Later on I'll attempt to patch at a lower framerate and see if it's able to change it to that. I'm migrating my linux install over to a SSD so I'm unable to test at the moment, so I'll do so after work later tonight when I have steam set back up, and dump the memory as requested as well.

Hm, when you try to set the frame lock higher than 75 does it stay at 60?

No, it goes to 75.

worked when i played in windows with the patcher that inspired yours

Probably because Windows works in a very different way when it comes to presentation.

and dump the memory as requested as well

I don't think the problem is with the memory, so no need for the dump for now. See the following section.

I was able to reach FPS higher than 75 by using dxvk.conf with the following contents:
dxgi.syncInterval = 0

Try putting a file called dxvk.conf in the game's root folder (next to sekiro.exe) with dxgi.syncInterval = 0, that might fix it for you.
So far my theory is that the patcher works correctly (the chance of it patching the wrong thing are astronomically low), and something in the pipeline is limiting the FPS to 60 for you. Probably DXVK. But could be the Nvidia driver. The Windows unlocker mentions needing to disable VSync in the driver's settings, maybe something similar needs to be done under Linux. Either way, try dxvk.conf, if that doesn't work, we'll look into other options.

Adding dxgi.syncInterval = 0 to dxvk.conf fixed the issue, it seems that parameter may have disabled vsync? (It seems that way because it also eliminated some input lag)
I would try to disable vsync in Nvidia's control panel to see if it nets the same result, but I'm unfamiliar with the NVIDIA X Server Settings application and will need to test that later on. But I'm going to close this issue, thanks again for the assistance, you're doing god's work making linux gaming more worthwhile!
Feature request: donate button

Adding dxgi.syncInterval = 0 to dxvk.conf fixed the issue, it seems that parameter may have disabled vsync? (It seems that way because it also eliminated some input lag)

It does disable VSync, as stated in the example file: https://github.com/doitsujin/dxvk/blob/master/dxvk.conf
# Overrides synchronization interval (Vsync) for presentation.
# Setting this to 0 disables vertical synchronization entirely.
# A positive value 'n' will enable Vsync and repeat the same
# image n times, and a negative value will have no effect.
#
# Supported values: Any non-negative number

# dxgi.syncInterval = -1
# d3d9.presentInterval = -1

As I understand, games request the interval through https://docs.microsoft.com/en-us/windows/win32/api/dxgi/nf-dxgi-idxgiswapchain-present, but this option lets you disregard that request and use whichever value you want.
I still wonder why your game is limited to 60 FPS, though. You really shouldn't be needing dxvk.conf to fix that. If you're going to continue investigating, my first stop would be Nvidia driver settings.
Also, I remember that if you have multiple monitors, Wine may limit the FPS to the lowest refresh rate among them: https://www.reddit.com/r/wine_gaming/comments/752zo4/my_wine_games_have_a_maximum_of_60_hz_any_way_to/do3t3vl/
You never mentioned if you had any other monitors connected besides the 164Hz one, so I figured I'd let you know.

Feature request: donate button

Would be nice to have it, I guess, but I don't have a proper way to receive payments here. It'll have to wait until a better day.


Envoy does not seem to respect SDS load balancing weights with HTTP2 (GRPC)

Title: Load balancing weights not working as expected with GRPC (HTTP2)
Description:
I'm deploying Envoy as an edge proxy to load balance GRPC traffic but am not able to get it to load balance correctly between a set of GRPC endpoints.  It looks like the connections are causing session affinity between the clients and the servers and Envoy is not able re-balance properly once the connections are established.
As a workaround and to test Envoy's behavior, I implemented a simple EDS service that returns a set of GRPC endpoints to Envoy. To simulate an extreme case, the service returns five endpoints.

The first endpoint has load balancing weight set to 128 while the rest have it set to 1.
Envoy picks this up and as expected starts sending all requests to the first endpoint.
After a few minutes, I reverse the order of the endpoints in the EDS service so that the last service is assigned a weight of 128 and the first one is set to 1 along with the others.
Envoy picks up the new config just fine but struggles to re-balance the load.
After waiting for a few seconds to a couple of minutes, the new endpoint starts receiving some traffic while the old one continues to receive majority of the traffic. The balance changes from 100:0 to approximately 80:20 while as the expected change was supposed to be 0:100.
If Envoy is restarted, it correctly balances the traffic as expected.
If clients (service sending data to Envoy) are restarted, Envoy again is able to re-balance immediately.
Clients can only see Envoy's IP and cannot connect to any of the servers directly.
This is end to end GRPC, not GRPC web or some other bridge.
Note: The test was performed with connection pooling disabled by setting max_requests_per_connection to 1 which isn't too reasonable to do in production. Without this, Envoy takes much much longer to respond to the endpoint weight change and the end result is even worse.

I know this is an unrealistic simulation but I wanted to understand Envoy's LB behavior better to be able to load balance a real GRPC workload better. In the real workload, the endpoint with the most traffic often receives 10-20x more traffic than the one with the least traffic.
I was hoping using an SDS that dynamically returned LB weights based on performance/traffic metrics exposed by the upstream service would solve the issue for us but looks like the weights don't have as much of an effect as I was expecting with long-lived connections.
Config:
    node:
      id: id_1
      cluster: test_cluster
    static_resources:
      listeners:
      - address:
          socket_address:
            address: <IP_ADDRESS>
            port_value: 8000
        filter_chains:
        - filters:
          - name: envoy.http_connection_manager
            typed_config:
              "@type": type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager
              codec_type: auto
              stat_prefix: ingress_http
              access_log:
              - name: envoy.file_access_log
                config:
                  path: "/dev/stdout"
              route_config:
                name: local_route
                virtual_hosts:
                - name: backend
                  domains:
                  - "*"
                  routes:
                  - match:
                      prefix: ""
                    route:
                      cluster: grpc_cluster
              http_filters:
              - name: envoy.router
                typed_config: {}
      clusters:
      - name: grpc_cluster
        connect_timeout: 0.25s
        type: EDS
        lb_policy: ROUND_ROBIN
        # lb_policy: LEAST_REQUEST
        http2_protocol_options: {}
        max_requests_per_connection: 1
        eds_cluster_config:
          eds_config:
            api_config_source:
              api_type: REST
              cluster_names: [xds_cluster]
              refresh_delay: 1s

      - name: xds_cluster
        connect_timeout: 0.25s
        type: STRICT_DNS
        upstream_connection_options:
          tcp_keepalive: {}
        load_assignment:
          cluster_name: <IP_ADDRESS>
          endpoints:
          - lb_endpoints:
            - endpoint:
                address:
                  socket_address:
                    address: eds-service-address
                    port_value: 3000
    admin:
      access_log_path: "/dev/null"
      address:
        socket_address:
          address: <IP_ADDRESS>
          port_value: 8001

Initial cluster info
xds_cluster::default_priority::max_connections::1024
xds_cluster::default_priority::max_pending_requests::1024
xds_cluster::default_priority::max_requests::1024
xds_cluster::default_priority::max_retries::3
xds_cluster::high_priority::max_connections::1024
xds_cluster::high_priority::max_pending_requests::1024
xds_cluster::high_priority::max_requests::1024
xds_cluster::high_priority::max_retries::3
xds_cluster::added_via_api::false
xds_cluster::<IP_ADDRESS>:3000::cx_active::1
xds_cluster::<IP_ADDRESS>:3000::cx_connect_fail::0
xds_cluster::<IP_ADDRESS>:3000::cx_total::1
xds_cluster::<IP_ADDRESS>:3000::rq_active::0
xds_cluster::<IP_ADDRESS>:3000::rq_error::0
xds_cluster::<IP_ADDRESS>:3000::rq_success::44
xds_cluster::<IP_ADDRESS>:3000::rq_timeout::0
xds_cluster::<IP_ADDRESS>:3000::rq_total::44
xds_cluster::<IP_ADDRESS>:3000::health_flags::healthy
xds_cluster::<IP_ADDRESS>:3000::weight::1
xds_cluster::<IP_ADDRESS>:3000::region::
xds_cluster::<IP_ADDRESS>:3000::zone::
xds_cluster::<IP_ADDRESS>:3000::sub_zone::
xds_cluster::<IP_ADDRESS>:3000::canary::false
xds_cluster::<IP_ADDRESS>:3000::success_rate::-1
grpc_cluster::default_priority::max_connections::1024
grpc_cluster::default_priority::max_pending_requests::1024
grpc_cluster::default_priority::max_requests::1024
grpc_cluster::default_priority::max_retries::3
grpc_cluster::high_priority::max_connections::1024
grpc_cluster::high_priority::max_pending_requests::1024
grpc_cluster::high_priority::max_requests::1024
grpc_cluster::high_priority::max_retries::3
grpc_cluster::added_via_api::false

======  receives all the traffic as weight is set to 128 ======
grpc_cluster::<IP_ADDRESS>:9000::cx_active::13
grpc_cluster::<IP_ADDRESS>:9000::cx_connect_fail::0
grpc_cluster::<IP_ADDRESS>:9000::cx_total::89
grpc_cluster::<IP_ADDRESS>:9000::rq_active::8
grpc_cluster::<IP_ADDRESS>:9000::rq_error::151
grpc_cluster::<IP_ADDRESS>:9000::rq_success::0
grpc_cluster::<IP_ADDRESS>:9000::rq_timeout::0
grpc_cluster::<IP_ADDRESS>:9000::rq_total::159
grpc_cluster::<IP_ADDRESS>:9000::health_flags::healthy
grpc_cluster::<IP_ADDRESS>:9000::weight::128
grpc_cluster::<IP_ADDRESS>:9000::region::
grpc_cluster::<IP_ADDRESS>:9000::zone::
grpc_cluster::<IP_ADDRESS>:9000::sub_zone::
grpc_cluster::<IP_ADDRESS>:9000::canary::false
grpc_cluster::<IP_ADDRESS>:9000::success_rate::-1
====== ======

grpc_cluster::<IP_ADDRESS>:9000::cx_active::0
grpc_cluster::<IP_ADDRESS>:9000::cx_connect_fail::0
grpc_cluster::<IP_ADDRESS>:9000::cx_total::0
grpc_cluster::<IP_ADDRESS>:9000::rq_active::0
grpc_cluster::<IP_ADDRESS>:9000::rq_error::0
grpc_cluster::<IP_ADDRESS>:9000::rq_success::0
grpc_cluster::<IP_ADDRESS>:9000::rq_timeout::0
grpc_cluster::<IP_ADDRESS>:9000::rq_total::0
grpc_cluster::<IP_ADDRESS>:9000::health_flags::healthy
grpc_cluster::<IP_ADDRESS>:9000::weight::1
grpc_cluster::<IP_ADDRESS>:9000::region::
grpc_cluster::<IP_ADDRESS>:9000::zone::
grpc_cluster::<IP_ADDRESS>:9000::sub_zone::
grpc_cluster::<IP_ADDRESS>:9000::canary::false
grpc_cluster::<IP_ADDRESS>:9000::success_rate::-1
grpc_cluster::<IP_ADDRESS>:9000::cx_active::0
grpc_cluster::<IP_ADDRESS>:9000::cx_connect_fail::0
grpc_cluster::<IP_ADDRESS>:9000::cx_total::0
grpc_cluster::<IP_ADDRESS>:9000::rq_active::0
grpc_cluster::<IP_ADDRESS>:9000::rq_error::0
grpc_cluster::<IP_ADDRESS>:9000::rq_success::0
grpc_cluster::<IP_ADDRESS>:9000::rq_timeout::0
grpc_cluster::<IP_ADDRESS>:9000::rq_total::0
grpc_cluster::<IP_ADDRESS>:9000::health_flags::healthy
grpc_cluster::<IP_ADDRESS>:9000::weight::1
grpc_cluster::<IP_ADDRESS>:9000::region::
grpc_cluster::<IP_ADDRESS>:9000::zone::
grpc_cluster::<IP_ADDRESS>:9000::sub_zone::
grpc_cluster::<IP_ADDRESS>:9000::canary::false
grpc_cluster::<IP_ADDRESS>:9000::success_rate::-1
grpc_cluster::<IP_ADDRESS>:9000::cx_active::0
grpc_cluster::<IP_ADDRESS>:9000::cx_connect_fail::0
grpc_cluster::<IP_ADDRESS>:9000::cx_total::0
grpc_cluster::<IP_ADDRESS>:9000::rq_active::0
grpc_cluster::<IP_ADDRESS>:9000::rq_error::0
grpc_cluster::<IP_ADDRESS>:9000::rq_success::0
grpc_cluster::<IP_ADDRESS>:9000::rq_timeout::0
grpc_cluster::<IP_ADDRESS>:9000::rq_total::0
grpc_cluster::<IP_ADDRESS>:9000::health_flags::healthy
grpc_cluster::<IP_ADDRESS>:9000::weight::1
grpc_cluster::<IP_ADDRESS>:9000::region::
grpc_cluster::<IP_ADDRESS>:9000::zone::
grpc_cluster::<IP_ADDRESS>:9000::sub_zone::
grpc_cluster::<IP_ADDRESS>:9000::canary::false
grpc_cluster::<IP_ADDRESS>:9000::success_rate::-1
grpc_cluster::<IP_ADDRESS>:9000::cx_active::0
grpc_cluster::<IP_ADDRESS>:9000::cx_connect_fail::0
grpc_cluster::<IP_ADDRESS>:9000::cx_total::0
grpc_cluster::<IP_ADDRESS>:9000::rq_active::0
grpc_cluster::<IP_ADDRESS>:9000::rq_error::0
grpc_cluster::<IP_ADDRESS>:9000::rq_success::0
grpc_cluster::<IP_ADDRESS>:9000::rq_timeout::0
grpc_cluster::<IP_ADDRESS>:9000::rq_total::0
grpc_cluster::<IP_ADDRESS>:9000::health_flags::healthy
grpc_cluster::<IP_ADDRESS>:9000::weight::1
grpc_cluster::<IP_ADDRESS>:9000::region::
grpc_cluster::<IP_ADDRESS>:9000::zone::
grpc_cluster::<IP_ADDRESS>:9000::sub_zone::
grpc_cluster::<IP_ADDRESS>:9000::canary::false
grpc_cluster::<IP_ADDRESS>:9000::success_rate::-1

Cluster Info after LB weight reversal in EDS
xds_cluster::default_priority::max_connections::1024
xds_cluster::default_priority::max_pending_requests::1024
xds_cluster::default_priority::max_requests::1024
xds_cluster::default_priority::max_retries::3
xds_cluster::high_priority::max_connections::1024
xds_cluster::high_priority::max_pending_requests::1024
xds_cluster::high_priority::max_requests::1024
xds_cluster::high_priority::max_retries::3
xds_cluster::added_via_api::false
xds_cluster::<IP_ADDRESS>:3000::cx_active::1
xds_cluster::<IP_ADDRESS>:3000::cx_connect_fail::1
xds_cluster::<IP_ADDRESS>:3000::cx_total::3
xds_cluster::<IP_ADDRESS>:3000::rq_active::0
xds_cluster::<IP_ADDRESS>:3000::rq_error::1
xds_cluster::<IP_ADDRESS>:3000::rq_success::246
xds_cluster::<IP_ADDRESS>:3000::rq_timeout::0
xds_cluster::<IP_ADDRESS>:3000::rq_total::246
xds_cluster::<IP_ADDRESS>:3000::health_flags::healthy
xds_cluster::<IP_ADDRESS>:3000::weight::1
xds_cluster::<IP_ADDRESS>:3000::region::
xds_cluster::<IP_ADDRESS>:3000::zone::
xds_cluster::<IP_ADDRESS>:3000::sub_zone::
xds_cluster::<IP_ADDRESS>:3000::canary::false
xds_cluster::<IP_ADDRESS>:3000::success_rate::-1
grpc_cluster::default_priority::max_connections::1024
grpc_cluster::default_priority::max_pending_requests::1024
grpc_cluster::default_priority::max_requests::1024
grpc_cluster::default_priority::max_retries::3
grpc_cluster::high_priority::max_connections::1024
grpc_cluster::high_priority::max_pending_requests::1024
grpc_cluster::high_priority::max_requests::1024
grpc_cluster::high_priority::max_retries::3
grpc_cluster::added_via_api::false

====== Still has more connections open even though weight has changed to 1 ======
grpc_cluster::<IP_ADDRESS>:9000::cx_active::4
grpc_cluster::<IP_ADDRESS>:9000::cx_connect_fail::0
grpc_cluster::<IP_ADDRESS>:9000::cx_total::140
grpc_cluster::<IP_ADDRESS>:9000::rq_active::4
grpc_cluster::<IP_ADDRESS>:9000::rq_error::247
grpc_cluster::<IP_ADDRESS>:9000::rq_success::0
grpc_cluster::<IP_ADDRESS>:9000::rq_timeout::0
grpc_cluster::<IP_ADDRESS>:9000::rq_total::251
grpc_cluster::<IP_ADDRESS>:9000::health_flags::healthy
grpc_cluster::<IP_ADDRESS>:9000::weight::1
grpc_cluster::<IP_ADDRESS>:9000::region::
grpc_cluster::<IP_ADDRESS>:9000::zone::
grpc_cluster::<IP_ADDRESS>:9000::sub_zone::
grpc_cluster::<IP_ADDRESS>:9000::canary::false
grpc_cluster::<IP_ADDRESS>:9000::success_rate::-1
============

grpc_cluster::<IP_ADDRESS>:9000::cx_active::0
grpc_cluster::<IP_ADDRESS>:9000::cx_connect_fail::0
grpc_cluster::<IP_ADDRESS>:9000::cx_total::4
grpc_cluster::<IP_ADDRESS>:9000::rq_active::0
grpc_cluster::<IP_ADDRESS>:9000::rq_error::4
grpc_cluster::<IP_ADDRESS>:9000::rq_success::0
grpc_cluster::<IP_ADDRESS>:9000::rq_timeout::0
grpc_cluster::<IP_ADDRESS>:9000::rq_total::4
grpc_cluster::<IP_ADDRESS>:9000::health_flags::healthy
grpc_cluster::<IP_ADDRESS>:9000::weight::1
grpc_cluster::<IP_ADDRESS>:9000::region::
grpc_cluster::<IP_ADDRESS>:9000::zone::
grpc_cluster::<IP_ADDRESS>:9000::sub_zone::
grpc_cluster::<IP_ADDRESS>:9000::canary::false
grpc_cluster::<IP_ADDRESS>:9000::success_rate::-1
grpc_cluster::<IP_ADDRESS>:9000::cx_active::0
grpc_cluster::<IP_ADDRESS>:9000::cx_connect_fail::0
grpc_cluster::<IP_ADDRESS>:9000::cx_total::4
grpc_cluster::<IP_ADDRESS>:9000::rq_active::0
grpc_cluster::<IP_ADDRESS>:9000::rq_error::4
grpc_cluster::<IP_ADDRESS>:9000::rq_success::0
grpc_cluster::<IP_ADDRESS>:9000::rq_timeout::0
grpc_cluster::<IP_ADDRESS>:9000::rq_total::4
grpc_cluster::<IP_ADDRESS>:9000::health_flags::healthy
grpc_cluster::<IP_ADDRESS>:9000::weight::1
grpc_cluster::<IP_ADDRESS>:9000::region::
grpc_cluster::<IP_ADDRESS>:9000::zone::
grpc_cluster::<IP_ADDRESS>:9000::sub_zone::
grpc_cluster::<IP_ADDRESS>:9000::canary::false
grpc_cluster::<IP_ADDRESS>:9000::success_rate::-1
grpc_cluster::<IP_ADDRESS>:9000::cx_active::3
grpc_cluster::<IP_ADDRESS>:9000::cx_connect_fail::0
grpc_cluster::<IP_ADDRESS>:9000::cx_total::3
grpc_cluster::<IP_ADDRESS>:9000::rq_active::3
grpc_cluster::<IP_ADDRESS>:9000::rq_error::0
grpc_cluster::<IP_ADDRESS>:9000::rq_success::0
grpc_cluster::<IP_ADDRESS>:9000::rq_timeout::0
grpc_cluster::<IP_ADDRESS>:9000::rq_total::3
grpc_cluster::<IP_ADDRESS>:9000::health_flags::healthy
grpc_cluster::<IP_ADDRESS>:9000::weight::1
grpc_cluster::<IP_ADDRESS>:9000::region::
grpc_cluster::<IP_ADDRESS>:9000::zone::
grpc_cluster::<IP_ADDRESS>:9000::sub_zone::
grpc_cluster::<IP_ADDRESS>:9000::canary::false
grpc_cluster::<IP_ADDRESS>:9000::success_rate::-1

====== Has weight set to 128 but receives much less traffic  ======
grpc_cluster::<IP_ADDRESS>:9000::cx_active::1
grpc_cluster::<IP_ADDRESS>:9000::cx_connect_fail::0
grpc_cluster::<IP_ADDRESS>:9000::cx_total::4
grpc_cluster::<IP_ADDRESS>:9000::rq_active::1
grpc_cluster::<IP_ADDRESS>:9000::rq_error::7
grpc_cluster::<IP_ADDRESS>:9000::rq_success::0
grpc_cluster::<IP_ADDRESS>:9000::rq_timeout::0
grpc_cluster::<IP_ADDRESS>:9000::rq_total::8
grpc_cluster::<IP_ADDRESS>:9000::health_flags::healthy
grpc_cluster::<IP_ADDRESS>:9000::weight::128
grpc_cluster::<IP_ADDRESS>:9000::region::
grpc_cluster::<IP_ADDRESS>:9000::zone::
grpc_cluster::<IP_ADDRESS>:9000::sub_zone::
grpc_cluster::<IP_ADDRESS>:9000::canary::false
grpc_cluster::<IP_ADDRESS>:9000::success_rate::-1
=========

The graph shows almost no change when connection pooling is not disabled.

@owais what version of Envoy? Are these streaming gRPC APIs or unary APIs?

@mattklein123 It is a bi-directional stream. I tried with envoy-dev:latest and envoy:latest which I think is 1.10.

By definition bi-di streams are not load balanced once started. Once they start they are attached to an upstream host. Only new streams (requests) will be load balanced.

FWIW, I ran another test with real data and four endpoints. I configured the SDS to assign them 100, 50, 1 and  1 weights respectively. Envoy starts and balances the load as expected but then gets "stuck" in that state. I changed SDS config to flip the weights to 1, 1, 50 and 100. This takes effect only after a restart.

Okay, that explains it. Thanks. FWIW, I did test with nginx as well and it seemed to balance the load quite well with leave request/connection policy.
Is there a way to tell Envoy to terminate connection to upstream hosts and establish new ones after a connection has served a certain number of requests? I tried with max_requests_per_connection but it didn't seem to work.

I tried with max_requests_per_connection but it didn't seem to work.

This does work, but not for bi-di streams. These are requests that never end.


Add TargetPositionLockedOnFocusLock for pointers

Add TargetPositionLockedOnFocusLock  for pointers to to allow the cursor to not be position-locked on HandInteractionPan surfaces
Overview
In order for the pannable texture to be fixed to the pointer target position, the pointer target position needs to be movable when focus is locked. This change ensures that the focused object is maintained, even if the pointer ray cast may not be hitting the focused object anymore. This only happens when IMixedRealityPointer.IsTargetPositionLockedOnFocusLock is set to false (usually in an event handler). The default setting is to keep the position locked on focus lock.
Since focus lock is handled per pointer, target position lock needs to be handled on the same level.
The initial idea was to only allow a FocusSessionConfiguration object to be modified in the FocusEnter event. But since the FocusEnter event is not pointer specific, as it is only raised for the first pointer entering the focus, this is currently not possible.

/azp run mrtk_CI

/azp run mrtk_CI

/azp run mrtk_CI