[1.13-rc2 experimental] docker service logs does not work as expected

Description
I've seen that when I try to use the new experimental feature to obtain the logs from a service quite often the obtained log belongs to another service.
Steps to reproduce the issue:

Start a swarm cluster, single node is enough
Launch a first service. For example:
docker service create --name pinger alpine ping www.google.com
Launch a second service. For example:
docker service create --name greetings alpine sh -c "while true; do echo Greetings; sleep 5; done"

Describe the results you received:
greetings.1.o91d5zubdis9@test1    | Greetings
greetings.1.o91d5zubdis9@test1    | Greetings
greetings.1.o91d5zubdis9@test1    | Greetings
docker@test1:~$ docker service logs pinger
greetings.1.o91d5zubdis9@test1    | Greetings
greetings.1.o91d5zubdis9@test1    | Greetings
greetings.1.o91d5zubdis9@test1    | Greetings
greetings.1.o91d5zubdis9@test1    | Greetings
greetings.1.o91d5zubdis9@test1    | Greetings

Describe the results you expected:
docker@test1:~$ docker service logs greetings
greetings.1.o91d5zubdis9@test1    | Greetings
greetings.1.o91d5zubdis9@test1    | Greetings
greetings.1.o91d5zubdis9@test1    | Greetings
docker@test1:~$ docker service logs pinger
pinger.1.ngjua3y4x6qq@test1    | PING www.google.com (<IP_ADDRESS>): 56 data bytes
pinger.1.ngjua3y4x6qq@test1    | 64 bytes from <IP_ADDRESS>: seq=0 ttl=61 time=26.072 ms
pinger.1.ngjua3y4x6qq@test1    | 64 bytes from <IP_ADDRESS>: seq=1 ttl=61 time=26.485 ms
pinger.1.ngjua3y4x6qq@test1    | 64 bytes from <IP_ADDRESS>: seq=2 ttl=61 time=38.046 ms
pinger.1.ngjua3y4x6qq@test1    | 64 bytes from <IP_ADDRESS>: seq=3 ttl=61 time=26.573 ms
pinger.1.ngjua3y4x6qq@test1    | 64 bytes from <IP_ADDRESS>: seq=4 ttl=61 time=27.507 ms

Additional information you deem important (e.g. issue happens only occasionally):
The behaviour is flaky. Sometimes the command will return you the right service, but as the more services you have in the cluster, obviously, the probability of obtain the right service logs decreases.
Output of docker version:
docker@test1:~$ docker version
Client:
 Version:      1.13.0-rc2
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   1f9b3ef
 Built:        Wed Nov 23 17:40:58 2016
 OS/Arch:      linux/amd64

Server:
 Version:             1.13.0-rc2
 API version:         1.25
 Minimum API version: 1.12
 Go version:          go1.7.3
 Git commit:          1f9b3ef
 Built:               Wed Nov 23 17:40:58 2016
 OS/Arch:             linux/amd64
 Experimental:        true

Output of docker info:
docker@test1:~$ docker info
Containers: 3
 Running: 3
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 1.13.0-rc2
Storage Driver: aufs
 Root Dir: /mnt/sda1/var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 7
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: active
 NodeID: q4hpreb8xhdd9isn5b5mzasbp
 Is Manager: true
 ClusterID: 9nvyvwhcakiycesh6y8mirc2d
 Managers: 1
 Nodes: 1
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: <IP_ADDRESS>
 Manager Addresses:
  <IP_ADDRESS>:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e
runc version: 51371867a01c467f08af739783b8beafc154c4d7
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.4.34-boot2docker
Operating System: Boot2Docker 1.13.0-rc2 (TCL 7.2); HEAD : 51fa426 - Wed Nov 23 20:08:44 UTC 2016
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 995.8 MiB
Name: test1
ID: M5TI:PEFT:HFCO:DZVL:SQE4:ETBT:SFIW:6LVL:J23J:ARVX:YA44:MQCU
Docker Root Dir: /mnt/sda1/var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 48
 Goroutines: 148
 System Time: 2016-11-29T02:14:09.705320285Z
 EventsListeners: 3
Registry: https://index.docker.io/v1/
Labels:
 provider=virtualbox
Experimental: true
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

Additional environment details (AWS, VirtualBox, physical, etc.):
I've seen this behaviour in a Virtualbox host created using docker machine and in our staging swarm cluster in AWS.

Probably, this is due to "the common mistake" here:
https://github.com/docker/docker/blob/v1.13.0-rc2/vendor/github.com/docker/swarmkit/agent/worker.go#L446
I'll open a PR after confirmation

opened https://github.com/docker/swarmkit/pull/1775

Reopen until censoring

Autocorrect: vendoring...

Fix has been vendored.


Narrator/JAWS are not narrating label mapped information for multiple controls in the dialog, while navigating in scan off mode.

Note: Same issue is observed throughout the application.
Impact on a Person with Disability (PWD):
Visually challenged users who rely on screen reader for navigation are facing difficulty as Narrator/JAWS are not narrating label mapped information for multiple controls in the dialog, while navigating in scan off mode.
Test Environment:
OS: Windows 11 [Version 22H2 (OS Build 22621.2283)].
Desktop application: SQL Nexus.
Screen Readers: Narrator, JAWS (2022.2110.6)
Pre-requisites:

Install SQL NEXUS application on the desktop.
Enable Narrator/JAWS.

Repro Steps:
Step 1: Open the SQL Nexus app in desktop.
Step 2: Connect to server Dialog gets displayed. Connect to the server by invoking connect button.
Step 3: Navigate to the Edit field controls present in the dialog.
Step 4: Verify whether Narrator/JAWS are narrating label mapped information for multiple controls in the dialog, while navigating in scan off mode or not.
Actual Result:
Narrator/JAWS are not narrating label mapped information for multiple controls in the dialog, while navigating in scan off mode.
Controls are Server name, Authentication, Username and Password
Observation: While navigating using scan/scan off modes, when focus land on "Server name" Narrator is narrating as "Desktop-PF2C19J"
Expected Result:
Narrator/JAWS should narrate label mapped information for all the edit fields which are present in the dialog, while navigating in scan off mode.
Ensure that: When focus lands on Server name edit field, Narrator should narrate as "Narrator is narrating as "Server Name Desktop-PF2C19J".
Suggestive Fixes:
Provide 'id' attribute for the input tag.
Assign 'id' value of the input tag to the 'for' attribute of the 'label' tag.
Repeat the same procedure for all edit fields.

1711656


What should happen when ufo1 and ufo2 have a lookup with the same name?

Drop the one in ufo1 in favor of the one in ufo2?

Hrm. Maybe ufomerge should subset both ufo1 and ufo2's features instead of just the latter before concatenating them. You'd prune ufo1 to contain just features for all glyphs that it does not share with ufo2, and then you should be able to safely concatenate their features...
Although I'm starting to wonder if this is getting too complicated or corner-casy? Am I forgetting something?


[Spotify Beta] Quick Actions are too nested to efficiently use them

Extension
https://www.raycast.com/mattisssa/spotify-beta
Description
Quick Actions are too nested. Right now to quickly perform an action you have to access the nested Quick Actions menu. For example, if I want to play, pause, or skip songs, I have to perform multiple steps.

Open Raycast
Type "Quick Actions" (or some subset of it)
Select Quick Actions
Type "Pause," "Play," etc.
Select the action

Ideally the Quick Actions are root actions instead of being nested. This would cut down on a lot of extra typing and nesting. this is how the original Spotify Commands extension works.
Who will benefit from this feature?
Anybody using the Quick Actions.
Anything else?
No response

This is resolved in #6204

Done https://github.com/raycast/extensions/pull/6204

I strongly believe the previous way was better overall. You could setup a quicklink with the action to have it in root search, or  you could keep it nested.
Now, you're forced to have it clutter up root search if you want to assign a hotkey to it; I'll never hit "Previous" from root search, since I have a hotkey linked to it, but I will always have the command cluttering my options.
To be clear, before I didn't have the commands in my root search since I had an external software open the command deeplink.

But you can only enable the ones you want. There's no need to clutter your root search. And keep it mind that Raycast uses fuzzy search + a ranking system for the results. So if you have something enabled that you rarely use, it will almost never show up there — unless it matches your search term obviously

Overall I understand that some people prefer the old approach. I kind of did too. But the vast majority didnt like it, so it's hard to please everyone. Having both approached seems extra confusing to me


[Grid] Item in direction column has set max-width not max-heigt on item

[x ] The issue is present in the latest release.
[x ] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
https://codesandbox.io/s/epic-star-bilvv?file=/src/App.js
Regardless of direction row/column of the grid container the Grid items get assigned the class .MuiGrid-grid-xs-4
This class has max-width set. Thats correct for direction row but has sideffects on direction column.
https://github.com/mui-org/material-ui/blob/0543dd7bd0f8bacf850780e16d48b0c8aa6f4df7/packages/material-ui/src/Grid/Grid.js#L56
Expected Behavior 🤔
max-width gets changed to max-height depending on the
Steps to Reproduce 🕹
https://codesandbox.io/s/epic-star-bilvv?file=/src/App.js
Create grid with direction column.
Inspect styles on grid items
Context 🔦
I wanted to split an Area in in Horizontal rows with full width

@Kai-W Thanks for the report, in the past we have discussed the same issue in a couple of time, e.g. #13277. What do you think about this fix?
diff --git a/packages/material-ui/src/Grid/Grid.js b/packages/material-ui/src/Grid/Grid.js
index 84cd214987..b4bb14de87 100644
--- a/packages/material-ui/src/Grid/Grid.js
+++ b/packages/material-ui/src/Grid/Grid.js
@@ -120,6 +120,9 @@ export const styles = (theme) => ({
   /* Styles applied to the root element if `direction="column"`. */
   'direction-xs-column': {
     flexDirection: 'column',
+    '& $item': {
+      maxWidth: 'none',
+    },
   },
   /* Styles applied to the root element if `direction="column-reverse"`. */
   'direction-xs-column-reverse': {

Reading the linked issue provided helpful insights. And the provided fix should resolve my issue.

@Kai-W Great, feel free to work on a pull request :)


Alerts slack integration UI

closes #4410
Adds a section to add slack notifications if it is enabled.
Run rill env set "connector.slack.bot_token" "xoxb-..." --project ... to enable slack connector.

I'm seeing the Slack section, even though I haven't yet enabled the connector.

Good catch about the slack showing up. There was a bug in how i used the signal.


Typecheck compose function

Just to avoid ambiguity: The compose function is a function that satisfies compose(f, g, h)(...args) == f(g(h(...args))).
How can I type check the compose function implementation with Flow? Since it could receive an arbitrary number of args, I was thinking on providing different signatures and provide types of all of them up to, say, 5 arguments, but not sure about the syntax for that.
This is what I tried, but it's not working:
declare function compose<T1>(
  f: (...args: any) => T1
): (...args: any) => T1

declare function compose<T1, T2>(
  f: (x: T1) => T2,
  g: (...args: any) => T1
): (x: T1) => T2

//... up to 5 args

export default function compose(...args) {
 // function implementation
}

Another approach that didn't work either was:
type Compose1<T1> = (
  f: (...args: any) => T1
) => (...args: any) => T1

type Compose2<T1, T2> = (
  f: (x: T1) => T2,
  g: (...args: any) => T1
) => (x: T1) => T2

//... up to 5 args

type Compose = Compose1 | Compose2 | Compose3 | Compose4 | Compose5;

const compose : Compose = (...funcs) => {
 // function impl
}

export default compose;

Any hints? Is this even supported?

@leoasis Take a look at this typescript interfaces for ramda. There is a compose function that you can base your approach on. They use function overloading while as far as I understand it's recommended to use intersection type for flow. In fact you were close but you used union type for your composes

Looks like that compose and similar functions with multiple typed arguments, is not possible declare in flow.
@leoasis Have you found any solution?

@istarkov check out ramda typings

@alexeygolev  Why do u write about rambda typings as typescript and flow is not the same things.
This and similar will not work in flow
        compose<V0, T1, T2>(fn1: (x: T1) => T2, fn0: (x0: V0) => T1): (x0: V0) => T2;
        compose<V0, V1, T1, T2>(fn1: (x: T1) => T2, fn0: (x0: V0, x1: V1) => T1): (x0: V0, x1: V1) => T2;
        compose<V0, V1, V2, T1, T2>(fn1: (x: T1) => T2, fn0: (x0: V0, x1: V1, x2: V2) => T1): (x0: V0, x1: V1, x2: V2) => T2;

as flow just get the first definition,
also no luck with union/intersection types.

@istarkov  I meant this

@alexeygolev Thank you, will try

Looks like even ...rest: Array should not help,
here is simple non working example
declare function test<A, B>(a: A, b: B, ...rest: Array<void>) : B;
declare function test<A>(a: A, ...rest: Array<void>) : A;

const xxxx = test(1, 2); // flow detects that xxxx is a number
const yyyy = test(1); // flow detects that yyyy is void, as 1 declare used

oops this work
declare function test<A>(a: A, ...rest: Array<void>) : A;
declare function test<A, B>(a: A, b: B, ...rest: Array<void>) : B;

const xxxx = test(1, 2);
const yyyy = test(1);

@alexeygolev Thank you a lot, all works fine!!!!

@istarkov Let's first decide if we're talking about variadics in general or compose in particular

@istarkov look through my tests for ramda in the same repo) might give you some more examples

Looks like till now I start to live in ramda repo ;-)

Nice! will check that out too then!

To be clear and to double-check my understanding: Flow doesn't currently support a way to make a correct type declaration for a compose function that can take any number of functions, right? I think that'd be a great feature for Flow.

@AgentME do you know any type system (not only for JS) that can do it?
Just to have a reference point

@alexeygolev No, I don't.
In https://github.com/facebook/flow/issues/1251#issuecomment-244284732, I proposed that the compose function might be popular enough to warrant its own special type like Promise.all currently has, and I also proposed an alternate more general solution involving a template with a special reduce type function that operates on the parameter types which could also be used to type functions like Promise.all.

You should use ...rest: [] instead of ...rest: Array<void>.
The latter allows undefined which can screw up arguments.length.

Here is how you would type compose():
function compose<T, TArgs: Iterable<mixed>>(fn: (...TArgs) => T, ...args: TArgs): T {
  return fn(...args);
}

function myFn(a: number, b: string): string {
  return a + b;
}

const x: empty = compose(myFn, 'nope', 42);

Note that this would not work in TypeScript 😉
https://flow.org/try/#0GYVwdgxgLglg9mABBOBbADnAzgUwDwAqANIgQIIBOA5lgFyICSUOFAhgEYA2+qMAHjgAmAPmEAKYGHpiAdHPLUsASkQBeYaRJyZrRfQU0l+xAG8AUIkQUcUEBSSTZc3YYDcZgL5mzoSLASIqACeAGJgYqz0YCCo7Cwk7PRYUBQwYFRGiMmp6aYWVjZ2SKyIANSI7O5eZihgyYh89DgYUEFqyGiYuGLBYSQA5GBw6Dj9JAAsAExK7kA

@calebmer Sorry, that's a different compose function than this thread is about. This thread is about the compose function as defined in libraries like Ramda, transducers.js, and Lodash (as "flowRight"), which takes multiple functions and combines them into one function which calls all the given functions while passing each one's result as the next one's parameter.
R.compose(x => x+0.2, x => x*10, x => x+1)(5);
// 60.2

@calebmer better to use ramda compose, mixed is bad idea, type inference would not work,
as an example recompose https://github.com/acdlite/recompose/tree/master/types use it

BTW I found strange behavior of compose https://github.com/facebook/flow/issues/4342
Some errors not detected if compose defined in libdef file

@AgentME sorry for the misunderstanding 😔
I recommend using function overloading in this case as is suggested by @istarkov. I’m going to be looking at typing Redux soon and if it makes sense then we may add a special case for compose().
@istarkov I’ll comment in #4342 👍

Hey @calebmer did you end up with a solution for the compose use case?

@FezVrasta $Compose and $ComposeReverse exist probably about ten versions.

Oh thanks, sorry I did miss that.


How do I set autoplay when I first enter the page

How do I set autoplay when I first enter the page

unfortunately there is no autoplay on load available at that moment. but this would be a nice addition to have.
adding this to the list of items planned for the next update.


Allow poster to choose reviewers

Allow the poster of a PR to choose reviewers (add only).
Solve #20746.
Screenshot

TODO
#21085
Reviewer chooser is missed in creating PR form, users can choose reviewers only after creating the PR.

Codecov Report

Merging #21084 (905ed61) into main (b5d21c0) will decrease coverage by 0.03%.
The diff coverage is 33.33%.

@@            Coverage Diff             @@
##             main   #21084      +/-   ##
==========================================
- Coverage   47.12%   47.09%   -0.04%
==========================================
  Files        1008     1008
  Lines      137718   137678      -40
==========================================
- Hits        64900    64833      -67
- Misses      64884    64910      +26
- Partials     7934     7935       +1

Impacted Files
Coverage Δ

routers/web/repo/issue.go
36.38% <10.00%> (-0.02%)
:arrow_down:

services/issue/assignee.go
45.87% <80.00%> (+0.85%)
:arrow_up:

modules/git/url/url.go
27.77% <0.00%> (-46.30%)
:arrow_down:

modules/sync/status_pool.go
64.00% <0.00%> (-36.00%)
:arrow_down:

modules/util/filebuffer/file_backed_buffer.go
51.25% <0.00%> (-7.50%)
:arrow_down:

modules/queue/queue_bytefifo.go
47.29% <0.00%> (-5.78%)
:arrow_down:

modules/notification/mail/mail.go
39.04% <0.00%> (-2.74%)
:arrow_down:

modules/queue/workerpool.go
54.92% <0.00%> (-1.82%)
:arrow_down:

modules/notification/ui/ui.go
58.92% <0.00%> (-1.79%)
:arrow_down:

models/activities/notification.go
62.22% <0.00%> (-1.10%)
:arrow_down:

... and 9 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


TS-4483: NetAccept & SSLNetAccept Optimize, replace getEtype() with member etype.

What's the Jira # for this?

Sorry, forget to create it, please link to TS-4483.

Cool. Can you rename Subject line for this PR to include the Jira # please?

I thought we were getting rid of the SSL threads (and thus ET_SSL).  If so, we could probably do some more simplification here.

@shinrich ET_SSL is still here. SSLNetAccept::etype is set to ET_SSL by sslNetProcessor::upgradeEtype().

Yes, I know it is still there.  Just bringing up the broader issue since you are working in that area anyway.  @zwoop and @SolidWallOfCode am I remembering correctly that ultimately we are looking at getting rid of the SSL threads?

Ya, I believe the idea was to eliminate ET_SSL for 7.0.0. See https://issues.apache.org/jira/browse/TS-3046.

This looks very reasonable to me. @oknet can you please rebase onto master?

@jpeach create a new PR#734 base on master.


find().projection("_id:1").as(ObjectId.class) returns incorrect ObjectId's

Hey everyone, thanks for Jongo! We are currently using it for accessing the MongoDB of our game server and it's been a real pleasure to work with.
However, I think I might have encountered a bug! I'm trying to query a list of ObjectId fields from a collection. Just the ID's, nothing else. Simplified example below.
for(ObjectId userId : userCollection.find().projection("{_id:1}").as(ObjectId.class))
{
   // Do something with userId
}

Expected result: the ObjectId's of all the documents in the userCollection.
But in Jongo 0.4, this returns incorrect ObjectId's... ObjectId's that don't even look like the ID's from the collection.
What's up? Is this a bug with the deserializer, or is this expected behaviour? How would I tackle this situation?
Thanks! :+1:

Is it implemented?


multithreaded eigen decomposition slower than single-threaded version, with NumPy

I am using NumPy 0.11.0, linked against libopenblas_haswellp-r0.2.18 built by myself.
My CPU is Intel(R) Core(TM) i7-4710MQ CPU @ 2.50GHz
I found that OpenBLAS is slower when using multiple threads to do Eigen decomposition. Here is my Python code:
import numpy as np
import time

n = 1000

A = np.random.randn(n,n)

t = time.time()
w, v = np.linalg.eig(A)
td = time.time() - t

print  ("(%d, %d) randn EigenDecomp, secs: %0.3f" % (n, n, td))

Result:
$> OPENBLAS_NUM_THREADS=1 python ./testnumpy.py
(1000, 1000) randn EigenDecomp, secs: 3.616
$> OPENBLAS_NUM_THREADS=2 python ./testnumpy.py
(1000, 1000) randn EigenDecomp, secs: 3.573
$> OPENBLAS_NUM_THREADS=4 python ./testnumpy.py
(1000, 1000) randn EigenDecomp, secs: 3.904
$> OPENBLAS_NUM_THREADS=5 python ./testnumpy.py
(1000, 1000) randn EigenDecomp, secs: 5.801
$> OPENBLAS_NUM_THREADS=8 python ./testnumpy.py
(1000, 1000) randn EigenDecomp, secs: 9.269

More threads bring no benefit. Performance significantly reduces when num of threads > 4.
I am sorry that I don't know which routine NumPy exactly calls. But I guess I should post the issue here. How to solve this?

Your hyperthreads are just facelift, no performance in them
There is some thread pool sizing issue on top of that:
n=5000 12core CPu with hyperthreads off
$ for a in 12 6 4 3 2 1 ; do OPENBLAS_NUM_THREADS=$a time python 873.py; done
(5000, 5000) randn EigenDecomp, secs: 102.124
586.74user 591.35system 1:43.76elapsed 1135%CPU (0avgtext+0avgdata 1401664maxresident)k
0inputs+0outputs (0major+6132581minor)pagefaults 0swaps
(5000, 5000) randn EigenDecomp, secs: 88.160
326.73user 186.28system 1:29.64elapsed 572%CPU (0avgtext+0avgdata 1399048maxresident)k
0inputs+0outputs (0major+4812354minor)pagefaults 0swaps
(5000, 5000) randn EigenDecomp, secs: 90.964
242.11user 113.69system 1:32.42elapsed 384%CPU (0avgtext+0avgdata 1396948maxresident)k
0inputs+0outputs (0major+3292859minor)pagefaults 0swaps
(5000, 5000) randn EigenDecomp, secs: 102.464
227.28user 74.45system 1:44.08elapsed 289%CPU (0avgtext+0avgdata 1395868maxresident)k
0inputs+8outputs (0major+1123119minor)pagefaults 0swaps
(5000, 5000) randn EigenDecomp, secs: 130.448
208.62user 50.39system 2:11.93elapsed 196%CPU (0avgtext+0avgdata 1394672maxresident)k
0inputs+8outputs (0major+5804352minor)pagefaults 0swaps
(5000, 5000) randn EigenDecomp, secs: 228.030
227.98user 1.52system 3:49.67elapsed 99%CPU (0avgtext+0avgdata 1391808maxresident)k
0inputs+8outputs (0major+944643minor)pagefaults 0swaps

I do reproduce this issue.  np.linalg.eig mostly call gemm and gemv (size from 5 to n). Using perf I can see that during gemm steps, the kernel scheduling overhead is very high. So I guess that the gemm threshold is still not good.

https://code.openhub.net/file?fid=s9iZncQcPLDk224dPuKR0QWwG9k&cid=c1rWbQq120U&s=&fp=300512&projSelected=true#L2579
must be sgeev in test case

Down the road gemm and gemmv are invoked indirectly

The main problem is swap. When I fixed #731 I wondered if removing multi-threading was not a good idea. I don't understand what's the point having multi-thread in swap. I do not see any case where the memory bus will not be the bottleneck.
Anyone against removing multi-threading in swap ?
A thread thresholding is also missing in trmv but the effect is much lower.

back then my hypothesis was that swap is optimal while data is approx cache per thread, if data is (?how much?) less it bounces lower speed transfer between caches. If data is more than all caches - 2 CPUs can saturate remaining memory channel.
I dont think it will be easy to keep result warm in caches for next call after in that exact L2 cache it will be used....

trmv threshold missing is absolutely cause of a problem exactly like #731
signalling all other threads to chew few bytes is plain waste.
Better limit to 2 threads in all-memory-bound swap (trmv looks like is the same memory bound)
Also axpy threshold is quite low, with all same considerations, but does not hit us in this case.

Benchmarks without threading in swap:
+ OPENBLAS_NUM_THREADS=1 python ./testnumpy.py
(1200, 1200) randn EigenDecomp, secs: 3.482
+ OPENBLAS_NUM_THREADS=2 python ./testnumpy.py
(1200, 1200) randn EigenDecomp, secs: 2.942
+ OPENBLAS_NUM_THREADS=4 python ./testnumpy.py
(1200, 1200) randn EigenDecomp, secs: 2.603
+ OPENBLAS_NUM_THREADS=5 python ./testnumpy.py
(1200, 1200) randn EigenDecomp, secs: 2.557
+ OPENBLAS_NUM_THREADS=8 python ./testnumpy.py
(1200, 1200) randn EigenDecomp, secs: 2.465

+ OPENBLAS_NUM_THREADS=1 python ./testnumpy.py
(1000, 1000) randn EigenDecomp, secs: 2.273
+ OPENBLAS_NUM_THREADS=2 python ./testnumpy.py
(1000, 1000) randn EigenDecomp, secs: 1.964
+ OPENBLAS_NUM_THREADS=4 python ./testnumpy.py
(1000, 1000) randn EigenDecomp, secs: 1.885
+ OPENBLAS_NUM_THREADS=5 python ./testnumpy.py
(1000, 1000) randn EigenDecomp, secs: 1.651
+ OPENBLAS_NUM_THREADS=8 python ./testnumpy.py
(1000, 1000) randn EigenDecomp, secs: 1.631

swap benchmark that shows no benefits of threading whatever the size of the cache and the size of the buffer:
https://gist.github.com/jeromerobert/af2a5b6ceec1a4858ef3d191bcb440a6

I'll try to build this patch on my own and test it. Thx!

Better than before. When matrix goes larger more threads bring more benefits. But for my 1000x1000 case no significant improvement on my machine. At least now it does not go slower. That's probably because I only modified the swap.c, without merging other modification recently. Thank you again!

Yes you won't get a good speed up. Internally this algorithm work on sub blocks which are too small to be multi threaded. A part of the algorithm is also iterative which does not help.
You'll get a better speed up on large matrices because the number of multi-thread operation will be higher. But as some (no idea of the ratio, but this is the key), will remain single threaded because too small, it won't be that efficient.


Flash partition coredump backend broken when CONFIG_ASSERT=y

Description:
The flash partition coredump backend attempts to acquire a semaphore via k_sem_take() in interrupt context. When CONFIG_ASSERT=y k_sem_take() will assert. Given coredumps are specifically designed to run in interrupt context I believe the k_sem_take() should be removed or it should only be called if k_is_in_isr() returns false meaning the system is in thread context.
Steps to reproduce the behavior:

Build any board/app combination with CONFIG_ASSERT=y, CONFIG_DEBUG_COREDUMP=y, CONFIG_DEBUG_COREDUMP_BACKEND_FLASH_PARTITION=y
Force a coredump via k_oops()
Observe assert (and lack of coredump)

Expected behavior:
No assert and coredump collection
Impact:
Impossible to collect a coredump via the flash partition backend when CONFIG_ASSERT=y
Console output:
ASSERTION FAIL [((arch_is_in_isr() == 0) || ((timeout).ticks == (((k_timeout_t) {0})).ticks))] @ ZEPHYR_BASE/kernel/sem.c:121

I came across this issue, which I've experienced as well. To solve it I've applied the attached patch to Zephyr. LMK if you think this is a good fit; if so, I can file a PR.
0003-fix-Omit-k_sem_take-blocking-assertion-if-we-re-on-a.patch

Would it be better to just update the flash backend to not take/give the semaphore in coredump_flash_backend_start/end? Nothing else should be running that could interfere at that point, right?
cc @dcpleung

Would it be better to just update the flash backend to not take/give the semaphore in coredump_flash_backend_start/end? Nothing else should be running that could interfere at that point, right?

@mrkhldn I don't think that'll work when the underlying flash APIs use blocking calls (e.g: using an external Flash hooked up over SPI).

Would it be better to just update the flash backend to not take/give the semaphore in coredump_flash_backend_start/end? Nothing else should be running that could interfere at that point, right?

@mrkhldn I don't think that'll work when the underlying flash APIs use blocking calls (e.g: using an external Flash hooked up over SPI).

I'm still not sure why taking a semaphore would be required though. Once you're in coredump_flash_backend_start, there won't be other threads trying to simultaneously access the flash, only the coredump handler code will run until its completed.

@mrkhldn Right - I do agree removing the semaphore from coredump_flash_backend will address the issue when the fault occurs. I imagine the semaphore also attempts to provide some sort of thread-safety for processing the coredump: reading, erasing, etc.

Right, so I guess my suggestion would be to update partition_open() to take a param indicating whether or not to skip the semaphore. Then only use the semaphore for the read/erase operations, not the actual dump writing while handling a crash. This approach seems more tactical than updating kernel code.

Ah, I'm not sure what the right approach would be there. @tbursztyka is it safe to access the semaphore in the spi driver mentioned above during a crash dump? Should we be looking for some way to disable the assert causing problems?

I think the fundamental question here is: Are coredumps ever taken in thread context?
If the answer is no then removing the sem_take/sem_give is the right approach given they are not working as it currently is. It's just that the error is not seen unless CONFIG_ASSERT is on. In other words, by removing the semaphore usage we'd be in no different of a scenario then we are now.
If the answer is yes the solution becomes a little more complicated. For example, we may want to think about using k_is_in_isr() to determine if the semaphore should be used.

The problem description is a bit cryptic, which semaphore are we talking about?  spi context's one or partition_open or any semaphore on the way to handle a coredump?
I don't know this subsystem, but being in isr mode, dealing with a SPI based flash, this could collide with an on-going SPI transaction. So you could force your transaction to take over, but this would cascade into another issue: the primary  SPI transaction caller would end up in an unknown state (hang up, crash or?). Actually this is not limited to SPI, and seems more like a generic problem.
I really should take a look at this coredump part, because a lot of questions are popping up in my head such as: :

What about coredumped thread owned kernel objects?
What if the coredumped thread was in the middle of something affecting the coredump handling itself (flash, spi, you name it...)?*
etc...

*This reminds me, that I proposed long ago to add a way to cancel any device call, whatever it would be. Seems like this use-case exposed here would be a relevant user of such feature.

What's the status of this issue? Someone still working on it?

@tbursztyka @mrkhldn (see previous comment)


[stable/sealed-secrets] Chart doesn't work out of the box without specific Helm release name

Describe the bug
If one deploys the stable/sealed-secrets chart with a release name other than sealed-secrets-controller, then the kubeseal command will not be able to find it by default. That's because the service is named after the Helm release and kubeseal expects this service to be named sealed-secrets-controller by default. It will fail with this error if it is named differently, e.g. my-release:
$ kubeseal version
panic: Error fetching certificate: services "sealed-secrets-controller" not found

goroutine 1 [running]:
main.main()
        /home/travis/gopath/src/github.com/bitnami-labs/sealed-secrets/cmd/kubeseal/main.go:216 +0x3b9

The only way to avoid this is to explicitly specify it like so:
$ kubeseal --controller-name=my-release version

This is unintuitive for users of kubeseal.
Version of Helm and Kubernetes: Not relevant
Which chart: stable/sealed-secrets
What happened: See previous.
What you expected to happen: The README should recommend that the Helm release is always named sealed-secrets-controller to avoid unexpected problems with kubeseal.
How to reproduce it (as minimally and precisely as possible): See previous.
Anything else we need to know: Nothing.

Just ran into the same issue myself. It is confusing. Per author, this is what you have to
helm install \
  --namespace kube-system \
  --name sealed-secrets-controller \ # <- Must set this release name for kubeseal to work w/o specifying controller name
  stable/sealed-secrets

How do we get someone to pick this up?

Maybe current owners @olib963 or @stefanprodan could advise?


Some HTTPs tests are slower on macOS 10.13 (High Sierra) than 10.12

From @BrennanConroy

I’ve noticed that a couple of our tests have increased in length significantly from 10.12 to 10.13
RequireCertificateFailsWhenNoCertificate() : https://github.com/aspnet/KestrelHttpServer/blob/ec72c255f60efa17ce8bea69936e01dd71f61960/test/Microsoft.AspNetCore.Server.Kestrel.FunctionalTests/HttpsConnectionAdapterTests.cs#L64
< 3 seconds to > 40 seconds
DoesNotSupportTls10() : https://github.com/aspnet/KestrelHttpServer/blob/ec72c255f60efa17ce8bea69936e01dd71f61960/test/Microsoft.AspNetCore.Server.Kestrel.FunctionalTests/HttpsConnectionAdapterTests.cs#L211
1 second to 10 seconds

Related to the Core issues with macOS High Sierra? https://github.com/dotnet/announcements/issues/22

It looks like SslStream.AuthenticateAsClientAsync takes nearly a minute to throw after a failed handshake on High Sierra. This is a regression from the previous version of macOS (sierra) where AuthenticateAsClientAsync would throw in less than a second. I create a corefx issue here: https://github.com/dotnet/corefx/issues/22515
I added some logging to Kestrel to demonstrate things are still behaving the same on the server:
# Windows 10 Client SslStream configured to validate cert

xUnit.net Console Runner (64-bit .NET Core 4.6.00001.0)
  Discovering: Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
  Discovered:  Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
  Starting:    Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
[07/21/2017 23:00:27.824] HttpsConnectionAdapter ctor
[07/21/2017 23:00:27.986] Log Debug[3]: Hosting starting
[07/21/2017 23:00:28.074] Log Debug[4]: Hosting started
[07/21/2017 23:00:28.076] Log Debug[0]: Loaded hosting startup assembly Microsoft.AspNetCore.Server.Kestrel.FunctionalTests, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60
[07/21/2017 23:00:28.090] Starting AuthenticateAsClientAsync.
[07/21/2017 23:00:28.132] Log Debug[1]: Connection id "0HL6GHH3PBR9L" started.
[07/21/2017 23:00:28.161] Connection started.
[07/21/2017 23:00:28.166] Handshake starting.
[07/21/2017 23:00:28.316] Entered userCertificateValidationCallback.
[07/21/2017 23:00:28.316] Client cert not found. Client cert mode: RequireCertificate.
[07/21/2017 23:00:28.356] AuthenticateAsClientAsync threw.
[07/21/2017 23:00:28.357] Calling HttpClientSlim2.GetStringAsync.
[07/21/2017 23:00:28.361] Log Debug[19]: Connection id "0HL6GHH3PBR9L" reset.
[07/21/2017 23:00:28.363] Log Debug[10]: Connection id "0HL6GHH3PBR9L" disconnecting.
[07/21/2017 23:00:28.318] handshake failed!?! System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)

   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result)
   at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Server.Kestrel.Https.Internal.HttpsConnectionAdapter.<InnerOnConnectionAsync>d__10.MoveNext() in D:\dev\aspnet\KestrelHttpServer\src\Microsoft.AspNetCore.Server.Kestrel.Https\Internal\HttpsConnectionAdapter.cs:line 124
[07/21/2017 23:00:28.367] Calling GetSocket.
[07/21/2017 23:00:28.369] Log Error[0]: Uncaught exception from the OnConnectionAsync method of an IConnectionAdapter. The remote certificate is invalid according to the validation procedure.
[07/21/2017 23:00:28.386] Log Debug[7]: Connection id "0HL6GHH3PBR9L" sending FIN.
[07/21/2017 23:00:28.394] Log Debug[2]: Connection id "0HL6GHH3PBR9L" stopped.
[07/21/2017 23:00:29.378] Calling AuthenticateAsClientAsync.
[07/21/2017 23:00:29.379] Log Debug[1]: Connection id "0HL6GHH3PBR9M" started.
[07/21/2017 23:00:29.379] Connection started.
[07/21/2017 23:00:29.380] Handshake starting.
[07/21/2017 23:00:29.391] Entered userCertificateValidationCallback.
[07/21/2017 23:00:29.392] Client cert not found. Client cert mode: RequireCertificate.
[07/21/2017 23:00:29.401] HttpClientSlim2.GetStringAsync threw.
[07/21/2017 23:00:29.394] handshake failed!?! System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)

   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int33 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result)
   at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Server.Kestrel.Https.Internal.HttpsConnectionAdapter.<InnerOnConnectionAsync>d__10.MoveNext() in D:\dev\aspnet\KestrelHttpServer\src\Microsoft.AspNetCore.Server.Kestrel.Https\Internal\HttpsConnectionAdapter.cs:line 124
[07/21/2017 23:00:29.418] Log Debug[5]: Hosting shutdown
[07/21/2017 23:00:29.419] Log Error[0]: Uncaught exception from the OnConnectionAsync method of an IConnectionAdapter. The remote certificate is invalid according to the validation procedure.
[07/21/2017 23:00:29.419] Log Debug[10]: Connection id "0HL6GHH3PBR9M" disconnecting.
[07/21/2017 23:00:29.419] Log Debug[7]: Connection id "0HL6GHH3PBR9M" sending FIN.
[07/21/2017 23:00:29.451] Log Debug[2]: Connection id "0HL6GHH3PBR9M" stopped.
  Finished:    Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
=== TEST EXECUTION SUMMARY ===
   Microsoft.AspNetCore.Server.Kestrel.FunctionalTests  Total: 1, Errors: 0, Failed: 0, Skipped: 0, Time: 1.899s

# macOS Client SslStream configured to validate cert

  Discovering: Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
  Discovered:  Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
  Starting:    Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
[07/21/2017 23:04:47.645] HttpsConnectionAdapter ctor
[07/21/2017 23:04:47.835] Log Debug[3]: Hosting starting
[07/21/2017 23:04:47.937] Log Debug[4]: Hosting started
[07/21/2017 23:04:47.940] Log Debug[0]: Loaded hosting startup assembly Microsoft.AspNetCore.Server.Kestrel.FunctionalTests, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60
[07/21/2017 23:04:47.948] Starting AuthenticateAsClientAsync.
[07/21/2017 23:04:47.982] Log Debug[1]: Connection id "0HL6GHJH7GPO9" started.
[07/21/2017 23:04:47.997] Connection started.
[07/21/2017 23:04:48.001] Handshake starting.
[07/21/2017 23:04:48.145] Entered userCertificateValidationCallback.
[07/21/2017 23:04:48.145] Client cert not found. Client cert mode: RequireCertificate.
[07/21/2017 23:04:48.146] handshake failed!?! System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result)
   at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Server.Kestrel.Https.Internal.HttpsConnectionAdapter.<InnerOnConnectionAsync>d__10.MoveNext() in /Users/aspnetci/KestrelHttpServer/src/Microsoft.AspNetCore.Server.Kestrel.Https/Internal/HttpsConnectionAdapter.cs:line 124
[07/21/2017 23:04:48.173] Log Error[0]: Uncaught exception from the OnConnectionAsync method of an IConnectionAdapter. The remote certificate is invalid according to the validation procedure.
[07/21/2017 23:04:48.188] Log Debug[10]: Connection id "0HL6GHJH7GPO9" disconnecting.
[07/21/2017 23:04:48.192] Log Debug[7]: Connection id "0HL6GHJH7GPO9" sending FIN.
[07/21/2017 23:04:48.195] Log Debug[2]: Connection id "0HL6GHJH7GPO9" stopped.
[07/21/2017 23:05:38.805] AuthenticateAsClientAsync threw.
[07/21/2017 23:05:38.805] Calling HttpClientSlim2.GetStringAsync.
[07/21/2017 23:05:38.812] Calling GetSocket.
[07/21/2017 23:05:38.813] Calling AuthenticateAsClientAsync.
[07/21/2017 23:05:38.813] Log Debug[1]: Connection id "0HL6GHJH7GPOA" started.
[07/21/2017 23:05:38.813] Connection started.
[07/21/2017 23:05:38.813] Handshake starting.
[07/21/2017 23:05:48.969] Entered userCertificateValidationCallback.
[07/21/2017 23:05:48.970] Client cert not found. Client cert mode: RequireCertificate.
[07/21/2017 23:05:48.970] handshake failed!?! System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result)
   at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Server.Kestrel.Https.Internal.HttpsConnectionAdapter.<InnerOnConnectionAsync>d__10.MoveNext() in /Users/aspnetci/KestrelHttpServer/src/Microsoft.AspNetCore.Server.Kestrel.Https/Internal/HttpsConnectionAdapter.cs:line 124
[07/21/2017 23:05:48.974] Log Error[0]: Uncaught exception from the OnConnectionAsync method of an IConnectionAdapter.
  Finished:    Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
=== TEST EXECUTION SUMMARY ===
   Microsoft.AspNetCore.Server.Kestrel.FunctionalTests  Total: 1, Errors: 0, Failed: 0, Skipped: 0, Time: 132.545s

# Windows 10 Client SslStream configured to *not* validate cert

xUnit.net Console Runner (64-bit .NET Core 4.6.00001.0)
  Discovering: Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
  Discovered:  Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
  Starting:    Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
[07/21/2017 23:08:46.715] HttpsConnectionAdapter ctor
[07/21/2017 23:08:46.875] Log Debug[3]: Hosting starting
[07/21/2017 23:08:46.962] Log Debug[4]: Hosting started
[07/21/2017 23:08:46.965] Log Debug[0]: Loaded hosting startup assembly Microsoft.AspNetCore.Server.Kestrel.FunctionalTests, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60
[07/21/2017 23:08:46.978] Starting AuthenticateAsClientAsync.
[07/21/2017 23:08:47.019] Log Debug[1]: Connection id "0HL6GHLOF41TK" started.
[07/21/2017 23:08:47.044] Connection started.
[07/21/2017 23:08:47.055] Handshake starting.
[07/21/2017 23:08:47.189] Entered userCertificateValidationCallback.
[07/21/2017 23:08:47.190] Client cert not found. Client cert mode: RequireCertificate.
[07/21/2017 23:08:47.192] handshake failed!?! System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)

   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result)
   at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Server.Kestrel.Https.Internal.HttpsConnectionAdapter.<InnerOnConnectionAsync>d__10.MoveNext() in D:\dev\aspnet\KestrelHttpServer\src\Microsoft.AspNetCore.Server.Kestrel.Https\Internal\HttpsConnectionAdapter.cs:line 124
[07/21/2017 23:08:47.235] Log Error[0]: Uncaught exception from the OnConnectionAsync method of an IConnectionAdapter. The remote certificate is invalid according to the validation procedure.
[07/21/2017 23:08:47.237] AuthenticateAsClientAsync didn't thow!
[07/21/2017 23:08:47.254] Log Debug[10]: Connection id "0HL6GHLOF41TK" disconnecting.
[07/21/2017 23:08:47.257] Log Debug[5]: Hosting shutdown
[07/21/2017 23:08:47.258] Log Debug[7]: Connection id "0HL6GHLOF41TK" sending FIN.
[07/21/2017 23:08:47.271] Log Debug[2]: Connection id "0HL6GHLOF41TK" stopped.
    RequireCertificateFailsWhenNoCertificate [FAIL]
      System.IO.IOException : The decryption operation failed, see inner exception.
      ---- System.ComponentModel.Win32Exception : An unknown error occurred while processing the certificate
      Stack Trace:
           at System.Net.Security.SslStreamInternal.ProcessReadErrorCode(SecurityStatusPal status, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest, Byte[] extraBuffer)
           at System.Net.Security.SslStreamInternal.ProcessFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
           at System.Net.Security.SslStreamInternal.StartFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
           at System.Net.Security.SslStreamInternal.StartFrameHeader(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
           at System.Net.Security.SslStreamInternal.StartReading(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
           at System.Net.Security.SslStreamInternal.ProcessRead(Byte[] buffer, Int32 offset, Int32 count, BufferAsyncResult asyncResult)
           at System.Net.Security.SslStream.BeginRead(Byte[] buffer, Int32 offset, Int32 count, AsyncCallback asyncCallback, Object asyncState)
           at System.IO.Stream.<>c.<BeginEndReadAsync>b__43_0(Stream stream, ReadWriteParameters args, AsyncCallback callback, Object state)
           at System.Threading.Tasks.TaskFactory`1.FromAsyncTrim[TInstance,TArgs](TInstance thisRef, TArgs args, Func`5 beginMethod, Func`3 endMethod)

           at System.IO.Stream.BeginEndReadAsync(Byte[] buffer, Int32 offset, Int32 count)
           at System.IO.Stream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
           at System.IO.Stream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count)
           at System.IO.StreamReader.<ReadBufferAsync>d__65.MoveNext()
        --- End of stack trace from previous location where exception was thrown ---
           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
           at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
           at System.IO.StreamReader.<ReadToEndAsyncInternal>d__61.MoveNext()
        --- End of stack trace from previous location where exception was thrown ---
           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
           at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
        D:\dev\aspnet\KestrelHttpServer\test\Microsoft.AspNetCore.Server.Kestrel.FunctionalTests\HttpsConnectionAdapterTests.cs(152,0): at Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.HttpsConnectionAdapterTests.<ReadResponse>d__6.MoveNext()
        --- End of stack trace from previous location where exception was thrown ---
           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
           at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
        D:\dev\aspnet\KestrelHttpServer\test\Microsoft.AspNetCore.Server.Kestrel.FunctionalTests\HttpsConnectionAdapterTests.cs(121,0): at Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.HttpsConnectionAdapterTests.<RequireCertificateFailsWhenNoCertificate>d__4.MoveNext()
        --- End of stack trace from previous location where exception was thrown ---
           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
        --- End of stack trace from previous location where exception was thrown ---
           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
        --- End of stack trace from previous location where exception was thrown ---
           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
        ----- Inner Stack Trace -----

  Finished:    Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
=== TEST EXECUTION SUMMARY ===
   Microsoft.AspNetCore.Server.Kestrel.FunctionalTests  Total: 1, Errors: 0, Failed: 1, Skipped: 0, Time: 0.861s

# macOS High Sierra Client SslStream configured to *not* validate cert

xUnit.net Console Runner (65-bit .NET Core 4.6.00001.0)
  Discovering: Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
  Discovered:  Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
  Starting:    Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
[07/21/2017 23:14:41.731] HttpsConnectionAdapter ctor
[07/21/2017 23:14:41.923] Log Debug[3]: Hosting starting
[07/21/2017 23:14:42.018] Log Debug[4]: Hosting started
[07/21/2017 23:14:42.021] Log Debug[0]: Loaded hosting startup assembly Microsoft.AspNetCore.Server.Kestrel.FunctionalTests, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60
[07/21/2017 23:14:42.031] Starting AuthenticateAsClientAsync.
[07/21/2017 23:14:42.064] Log Debug[1]: Connection id "0HL6GHP294CAJ" started.
[07/21/2017 23:14:42.079] Connection started.
[07/21/2017 23:14:42.083] Handshake starting.
[07/21/2017 23:14:42.210] Entered userCertificateValidationCallback.
[07/21/2017 23:14:42.210] Client cert not found. Client cert mode: RequireCertificate.
[07/21/2017 23:14:42.226] AuthenticateAsClientAsync didn't thow!
[07/21/2017 23:14:42.211] handshake failed!?! System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result)
   at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.AspNetCore.Server.Kestrel.Https.Internal.HttpsConnectionAdapter.<InnerOnConnectionAsync>d__10.MoveNext() in /Users/aspnetci/KestrelHttpServer/src/Microsoft.AspNetCore.Server.Kestrel.Https/Internal/HttpsConnectionAdapter.cs:line 124
[07/21/2017 23:14:42.236] Log Error[0]: Uncaught exception from the OnConnectionAsync method of an IConnectionAdapter. The remote certificate is invalid according to the validation procedure.
[07/21/2017 23:14:42.250] Log Debug[10]: Connection id "0HL6GHP294CAJ" disconnecting.
[07/21/2017 23:14:42.254] Log Debug[7]: Connection id "0HL6GHP294CAJ" sending FIN.
[07/21/2017 23:14:42.255] Received response?!: ''.
[07/21/2017 23:14:42.256] Log Debug[2]: Connection id "0HL6GHP294CAJ" stopped.
[07/21/2017 23:14:42.261] Log Debug[5]: Hosting shutdown
    RequireCertificateFailsWhenNoCertificate [FAIL]
      System.ArgumentOutOfRangeException : Length cannot be less than zero.
      Parameter name: length
      Stack Trace:
           at System.String.Substring(Int32 startIndex, Int32 length)
        /Users/aspnetci/KestrelHttpServer/test/Microsoft.AspNetCore.Server.Kestrel.FunctionalTests/HttpsConnectionAdapterTests.cs(145,0): at Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.HttpsConnectionAdapterTests.GetStatus(String response)
        /Users/aspnetci/KestrelHttpServer/test/Microsoft.AspNetCore.Server.Kestrel.FunctionalTests/HttpsConnectionAdapterTests.cs(155,0): at Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.HttpsConnectionAdapterTests.<ReadResponse>d__6.MoveNext()
        --- End of stack trace from previous location where exception was thrown ---
           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
           at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
        /Users/aspnetci/KestrelHttpServer/test/Microsoft.AspNetCore.Server.Kestrel.FunctionalTests/HttpsConnectionAdapterTests.cs(121,0): at Microsoft.AspNetCore.Server.Kestrel.FunctionalTests.HttpsConnectionAdapterTests.<RequireCertificateFailsWhenNoCertificate>d__4.MoveNext()
        --- End of stack trace from previous location where exception was thrown ---
           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
        --- End of stack trace from previous location where exception was thrown ---
           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
        --- End of stack trace from previous location where exception was thrown ---
           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
  Finished:    Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
=== TEST EXECUTION SUMMARY ===
   Microsoft.AspNetCore.Server.Kestrel.FunctionalTests  Total: 1, Errors: 0, Failed: 1, Skipped: 0, Time: 0.928s


Dockerhub Cleanup Fix

DockerHub Clean-up Workflow Fix
Basically, our PR tags weren't getting deleted. It wasn't immediately obvious, because the HTTP status codes being wrong doesn't make curl error. This adds a method (which should fail if done incorrectly) to delete tags properly.
Details about GHA and our image stuff like this should probably make their way into NUbook at some point. I might make an issue

Looks like we have liftoff
Should be good to go


Envycontrol does not work on Clear Linux v35000

Details:

CPU: Intel i5 8250U
GPU: Intel UHD 620 + Nvidia MX150
Distro: Clear Linux Desktop v35000 (GNOME)

Description:

Envycontrol fails to switch gpu mode on Clear Linux v35000.
After manually creating /etc/modprobe.d folder, it works as expected.

Steps:

git clone https://github.com/geminis3/envycontrol.git
cd envycontrol
sudo python ./envycontrol.py --switch integrated

Error:

cannot find file /etc/modprobe.d/blacklist-nvidia.conf

Fix:

sudo mkdir -pv /etc/modprobe.d
sudo python ./envycontrol.py --switch integrated

Suggestions:

During GPU switching, check if /etc/modprobe.d exists.
If it does not, create the directory explicitly.

Should be fixed on latest main, thanks for your report.


Emulator 4.14.1 does not prompt for user properly after having logged out

Version
4.14.1
Describe the bug
I am testing the BotAuthenitcationMSGraph sample.  I have it working and need to change the user for other testing.  I have restarted the sample as well as the emulator.  I have also logged out of the Bot using the emulator. However, the first user's credentials are cached in the emulator's Login Page and I am not asked to change to a different user.
To Reproduce

Set up BotAuthenticationMSGraph sample and get it running
Log into the Bot using the Log prompt
Log out
Log in again - the credentials are not prompted. The prompt window appears with no content for a second then disappears.
The bot claims I am logged in again using the old credentials.
Restart bot sample as well as emulator.
Log in - same behavior as step 4.

Expected behavior

Set up BotAuthenticationMSGraph sample and get it running
Log into the Bot using the Log prompt
Log out
Log in again - the prompt window appears and asks for username.  I choose a different user.
Bot works using new user.

Screenshots

[bug]

Hi @mattsmall1972 I will attempt to reproduce and see if I get the same.
Can you try a quick test by setting the Use a sign-in verification code for OAuthCards setting in Emulator? I'm assuming doing that will allow logout without issue, but I want to be sure.

When I enable the sign-in verification code the same behavior occurs except with a code instead of silent authentication.  The emulator automatically logs me in using current credentials and does not give me the option to change credentials.

Hi @mattsmall1972 I am able to reproduce similar. Do you see any errors in Emulator such as:
[14:48:50]Failed to generate an actual sign-in link: Error: Failed to connect to ngrok instance for OAuth postback URL: FetchError: request to http://<IP_ADDRESS>:4041/api/tunnels failed, reason: connect ECONNREFUSED <IP_ADDRESS>:4041
OR
[14:48:50]Falling back to emulated OAuth token.

I have not seen any error like that in the Emulator.

Thanks @mattsmall1972 Do you see any errors or anything in the Emulator logging/tracing pane? Does this reproduce in WebChat (using ngrok if needed)?

Closing due to lack of reply and ability to reproduce exact error. If you still need assistance with this issue, please comment or reopen and we will continue.


GraphQL API

Checklist

[ ] TypeDef generation
[ ] Resolver generation
[ ] API Secret Management
[ ] API Docs

Summary
This will likely be the breaking change for version 3, running the API under its own container.
This is proving a fun challenge, the typedefs and resolvers need to be dynamically generated. The API is no use to someone if they have to lookup and asset and its fields etc... they want to use their own assets etc...
This will take a fair bit of work, this PR will end up a bit of a notepad

API Keys
API Keys should come in 2 variants.

User generated long lived keys, show once and permission-able.
System generated short lived keys, possibly tied to the session? so the main app can make use of the API.

Fields
Fields will need a gql handler as well, so that the data can be returned in a gql compatible way.
For example a relation field will need to return an array of IDs that then resolve into objects that match the type. Making the typeDef:
type Laptop {
  id: String
  asset: AssetRegister
}


make the .env file conditional

Is it possible to make the .env file conditional?
If the env variables can be found in the process.env the package shouldn't launch an error even if the ".env" is missing!

@riccardogiorato I am just re-reading this now and I didn't read your issue correctly. I will ship support for this in the first major plus a ton of other new and improved features.


Fix a few minor bugs with NFT

[x] Support ABI for PinkRobo
[x] Fix bug parsing URL for some collections
[x] Support Azero Domain NFT

Version test: https://file.cdmteck.com/s/4oimk9zDJ8R5Aai/download?path=%2F&files=./upgrade-ui-pr-1818-build-1.1.8-2023-08-18T11-16-22UTC.zip
Validation passed


Check if there are any new queries or aggs that we still do not support.

Looks like https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html#query-dsl-match-query-phrase and https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html#query-dsl-match-query-phrase-prefix are missing, or am I missing something?
I'm planning on creating one for the latter and can put it in a PR if you like.

Hey @RonRademaker! If you could make a PR with those missing queries we would appreciate a lot ;).

Great work @einorler, but you are missing the docs page for every query.


Remove shadow from wallet consent button

to keep it consistent with our design language, I would remove the drop shadow from the button.

Please use correct padding for the modal here as well:

should be 32px horizontal and match the modal heading padding and alignment

👋


GraphQL: Document collections, batches and UDTs support

We should document support for collections, batches and user-defined types.

Example code for "atomic" mutations (that translates into a CQL logged batch):
mutation @atomic {
    productMutation: insertProducts(value: $productValue, options: $options) {
        applied
        value {
            id
            name
            price
            created
            description
        }
    },
    orderMutation: updateOrders(value: $orderValue) {
        applied
        value {
            id
            prodId
            prodName
            customerName
            address
            description
            price
            sellPrice
        }
    }
}

Note the @atomic directive.
Mutation options can only appear once.


Allow clusters to include other clusters and not just hosts

csshX allows tags/clusters to include other clusters which eases the management of large groups of servers. I would find it very useful for i2cssh to replicate this behaviour. We can implement it by adding in the following function and calling it from get_clusters_from_cluster_names() in place of config["clusters"][cluster_name]["hosts"]
def cluster_to_host_strings(cluster_name, config, cluster_names_done = None):
    """
    Given a cluster name, recursively convert any cluster entries
    in it to a host_string elements.
    """
    cluster_names_done = cluster_names_done or []
    if cluster_name in cluster_names_done:
        return []

    host_strings = []
    for cluster_or_host in config["clusters"][cluster_name]["hosts"]:
        if cluster_or_host in config["clusters"]:
            if cluster_or_host not in cluster_names_done and cluster_or_host != cluster_name:
                host_strings.extend(cluster_to_host_strings(cluster_or_host, config, cluster_names_done))
                cluster_names_done.append(cluster_or_host)
        else:
            host_strings.append(cluster_or_host)

    return host_strings

I like the idea, but what should the grouping for tabs be in case we specify -t or -T? Do the included clusters get their own tab or are all hosts just included in the list of hosts (as per your example)? Do we just want to include the hosts from the other cluster, or do we want to respect the cluster options (like login, shell, etc) from the included cluster as well?

If we start to consider options or tab groupings for included clusters, the complexity spirals out of control. Also, you would most likely only want the superset options. For example, the rows & columns specifications of a sub-cluster should not be applied to the superset!
Also, this will then give you the ability to apply different sets of settings against the same hosts by having multiple super-clusters including the same sub-cluster.

Exactly. So what we could do (as your PR does) is to just include the hosts of a different cluster and don't worry about the settings of the other cluster. I kind of like that idea, because that basically gives you the opportunity to connect to a group of hosts in different ways (different login, different shell, etc).
I will add a different header in the config (like include_hosts_from_cluster) or something, to make the configuration explicit, rather than having "special" hosts that are actually clusters. I'll not make this recursive for now, since the user has the opportunity to explicitly add one or more clusters.

I've uploaded version 0.0.11 that has the option include_from. This is only enabled as a parameter in the config file. Let me know what you think.

I'm happy with the include_from keyword, although I'm not personally inclined to cater for people who use the same name for a cluster as they do for a hostname!
One small fix to allow for a cluster to not have a hosts section:
382c382
<         host_strings = config["clusters"][cluster_name].get("hosts", [])
---
>         host_strings = config["clusters"][cluster_name]["hosts"]


[BUG] Fatal Python error: init_interp_main: can't initialize time

When running on a Raspberry Pi 4, I get the following error:
Fatal Python error: init_interp_main: can't initialize time
Python runtime state: core initialized
PermissionError: [Errno 1] Operation not permitted

Current thread 0xb6f40390 (most recent call first):
<no Python frame>

Based on other project threads (ie. here), it appears to be a problem with Alpine and the RPi.
Installing libseccomp2 from backports is a workaround.

Changing the base image from alpine to slim-buster resolves the issue.

I'd prefer to use alpine base images rather than slim to keep image sizes as small as possible and as it appears to be an issue just with Docker and Raspberry Pi 4's and there are documented fixes (e.g. https://blog.samcater.com/fix-workaround-rpi4-docker-libseccomp2-docker-20/) I'm going to close this.

@dchesterton we're talking about a difference of ~50mb between alpine and slim. You'll find more issues with Alpine down the road (ie. musl DNS) that just create more headaches than it's worth to save a few MBs for an image that will not be pulled too often. Image size is really only paramount in situations where you have highly elastic workloads.
I would strongly encourage you to reconsider as Debian based images have much better support, especially in the @Home environment. Or at the very least, build for both using a separate tag.

I've built many, many Docker images based on Alpine and it's always worked flawlessly. I'll happily use a more feature packed base image when I have a more complicated project with more dependencies but this is a fairly simple script and Alpine suits it just fine. I also disagree that image size doesn't matter much beyond Kubernetes etc. but that's a discussion for another day 🙂
There's a documented fix and this issue itself is not even a problem with Alpine per-se but more outdated dependencies on the host. Therefore, all things considered, I'm not going to add a Debian build and unnecessarily increase the complexity of the build process.


Xoriant/m1

We are creating the PR for Xoriant Phase-1 /Milestone-1 . We have covered 20 ADT messages.

/azp run

/azp run

In the latest codes, we are using a JSON file CodeSystem.json to record all the mappings for CodeSystems. The liquid templates are removed and not used anymore. Instead of adding new liquid templates for CodeSystems, could you please add the mappings to the JSON file? The details could be found here.

We have already added the codesystem mapping in JSON file "CodeSystem.json". The template can be use to refer what mapping exist.
All the liquid template code mapping is present in JSON file "CodeSystem.json".

In the latest codes, we are using a JSON file CodeSystem.json to record all the mappings for CodeSystems. The liquid templates are removed and not used anymore. Instead of adding new liquid templates for CodeSystems, could you please add the mappings to the JSON file? The details could be found here.

We have already added the codesystem mapping in JSON file "CodeSystem.json". The template can be use to refer what mapping exist.
All the liquid template code mapping is present in JSON file "CodeSystem.json".

Thanks! Then we can just remove all the CodeSystem liquid templates except the sample one (_SampleUniversalIDType.liquid).

Besides, some unit tests fail as well in CI. Could you please check them as well?

In the latest codes, we are using a JSON file CodeSystem.json to record all the mappings for CodeSystems. The liquid templates are removed and not used anymore. Instead of adding new liquid templates for CodeSystems, could you please add the mappings to the JSON file? The details could be found here.

We have already added the codesystem mapping in JSON file "CodeSystem.json". The template can be use to refer what mapping exist.
All the liquid template code mapping is present in JSON file "CodeSystem.json".

Thanks! Then we can just remove all the duplicate CodeSystem liquid templates except the sample one (_SampleUniversalIDType.liquid).

We have removed the liquid template files and put the sample one (_SampleUniversalIDType.liquid).

Besides, some unit tests fail as well in CI. Could you please check them as well?

We have updated the Unit tests and Functional Test and all the test are passing now.
Build got failed during pipeline execution on generating notice file. We are not sure on this why it has failed.
Let us know if any thing need to be changed from our side on this.

/azp run

Besides, some unit tests fail as well in CI. Could you please check them as well?

We have updated the Unit tests and Functional Test and all the test are passing now.
Build got failed during pipeline execution on generating notice file. We are not sure on this why it has failed.
Let us know if any thing need to be changed from our side on this.

Thanks! We have updated the CI pipeline and the step of notice file generation is skipped now.

Can we add the new cases in rule-based tests as well?

/azp run

Can we add the new cases in rule-based tests as well?

Hi @shashanknarang27, could you please update the codes to the latest xoriant/m1? We have removed some tests that take too long, which lead to time out in CI.

Can we add the new cases in rule-based tests as well?

We have added new RuleBase test cases for 20 ADT messages

@BoyaWu10 : Should we rebase the code to latest xoriant/m1 ?  We have seen that there are few changes been pushed to xoriant/m1

@BoyaWu10 : Should we rebase the code to latest xoriant/m1 ? We have seen that there are few changes been pushed to xoriant/m1

Both would be OK! We have pushed some commits to xoriant/m1 to reduce CI running time. It has already taken effect in current PR. :smile:


Material Design Issue

While navigating in navigation bar ,Toolbar title remains same as application name but it should be the name of fragment we are in. ( however it changes for "About BuildmLearn" section/activity)
Keylines are not followed as per Material Design specs as shown below.

Can I work on these if it seems fine. Thanks.

@codingblazer actually while solving issue #180, I realized this issue and solved it too. I'll soon be sending a PR for this. Sorry for trouble.

@chiragw15 No problem.Thanks for informing me.

Closed via #206


k8s cluster with no access to internet

can you add exception options when the cluster dont have access to the internet ?

Hi,
The software uses the internet connection for 3 main purposes:

At startup, to download the client with the specified version (OPTION VELERO_CLI_VERSION, see readme).
To send notifications (watchdog, in case you use it together with velero-api).
To perform checks for new available versions.

I understand that there are isolated clusters or that you may want to limit connectivity, which would also limit some functionality.
Currently, the software is mainly designed with the assumption of internet connectivity. However, it should work by foregoing notifications related to backups/restores/schedules operations and updates.
Regarding the specific version, in the case of no connectivity, there are 2 options:

Use the custom folder (OPTION VELERO_CLI_PATH_CUSTOM, see readme to be mounted at the startup of the pod).
Use the fallback client (velero client 1.12.1 contained within the Velero API image).

Everything else should function without issues.
We are currently working on a solution for multi-cluster monitoring and cannot conduct extensive tests for isolated cluster. Nevertheless, if you encounter any errors and report them here, we can consider possible solutions.


Support display of timezone for datetime and datetime64

PR checklist:

Did you run ClangFormat ?
Did you separate headers to a different section in existing community code base ?
Did you surround proton: starts/ends for new code in existing community code base ?

Please write user-readable short description of the changes:
close #835

I would suggest creating build 1.6.1 after this PR is merged, since it will change how the datetime with explicit timezone will be displayed in console and to_string function. Too many patch build for 1.5.x already and this change need a bit more attention.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: Jasmine-ge:x: hanfei1991You have signed the CLA already but the status is still pending? Let us recheck it.


Use controller to control the car

As a user I want to use the button on the mobile app to control the car.
Acceptance criteria:

[x] The car will move forward when "Ahead" is clicked, right when "Right" is clicked, left when "Left" is clicked and either break (if the car is in motion) or start reversing when the user clicks "Stop".

The controller function is working in test environment


Remove this bundle?

Looks like this bundle is not maintained anymore, nor relevant. Should we just remove it now?

Similar queries are now supported by DoctrineBundle directly since a long time.
So I suggest marking this bundle as abandoned indeed.


User data not displayed

Describe the bug
The contributor info is not rendering properly
Screenshot

GitMate.io thinks possibly related issues are https://github.com/monsij/StudentPortal/issues/39 (IP not displayed), https://github.com/monsij/StudentPortal/issues/19 (Unusual display size), https://github.com/monsij/StudentPortal/issues/47 (Improved user profile page), https://github.com/monsij/StudentPortal/issues/8 (Typo in /pro1/users/models.py  ), and https://github.com/monsij/StudentPortal/issues/20 (Current dynamic date,time,weather and user IP).


fix(tabs): fix bottom line calculation

исправляет расчет нижней полосы когда меняется размер одного из табов
https://jira.moscow.alfaintra.net/browse/DS-8065

Pull Request Test Coverage Report for Build<PHONE_NUMBER>2
Details

12 of 15 (80.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.02%) to 82.381%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

packages/tabs/src/components/title/Component.tsx
10
11
90.91%

packages/tabs/src/components/primary-tablist/Component.tsx
2
4
50.0%

Totals

Change from base Build<PHONE_NUMBER>8:
-0.02%

Covered Lines:
10630

Relevant Lines:
11779

💛  - Coveralls


Add link to Zapier in Edit > Webhooks

As suggested by Xavier, we should add a link to the Zapier app to promote it in Edit > Webhooks.

Resolved by https://github.com/opencollective/opencollective-frontend/pull/2245


feat: add upgrade access button to user settings page

Description

This Pull Request adds the StripeCheckoutButton component to the User Settings page.
What type of PR is this? (check all applicable)

[x] 🍕 Feature
[ ] 🐛 Bug Fix
[ ] 📝 Documentation Update
[ ] 🎨 Style
[ ] 🧑💻 Code Refactor
[ ] 🔥 Performance Improvements
[ ] ✅ Test
[ ] 🤖 Build
[ ] 🔁 CI
[ ] 📦 Chore (Release)
[ ] ⏩ Revert

Related Tickets & Documents

Fixes #1394
Mobile & Desktop Screenshots/Recordings

screencast-localhost_3000-2023.07.20-20_43_11.webm
Added tests?

[ ] 👍 yes
[x] 🙅 no, because they aren't needed
[ ] 🙋 no, because I need help

Added to documentation?

[ ] 📜 README.md
[ ] 📓 docs.opensauced.pizza
[ ] 🍕 dev.to/opensauced
[ ] 📕 storybook
[x] 🙅 no documentation needed

[optional] Are there any post-deployment tasks we need to perform?
NA
[optional] What gif best describes this PR or how it makes you feel?

Changes Made to make the StripeCheckoutButton component more flexible:

Modified the StripeCheckoutButton component to accept children and props of type StripeCheckoutButtonProps. The children prop allows users to customize the text content of the button, while the props can be used to pass additional styling or behavior options.
Removed the unnecessary
 element and replaced it with a <form> element to wrap the Button. This ensures better semantic structure for form submission.
Removed the redundant
 element around the <form> element, as it is no longer necessary.
Updated the Button component usage to spread the props object so that any additional props provided to StripeCheckoutButton can be passed down to the Button component.

Overall, these changes have made the StripeCheckoutButton component more flexible and reusable, allowing users to easily customize the button's appearance and behavior based on their specific use cases. Sample Use Cases seen below
The dashboard Reports Component use case
<>
  <Text>Upgrade to a subscription to gain access to generate custom reports!</Text>

    // HERE
    <StripeCheckoutButton variant="primary" className="w-52 h-[38px] flex justify-center"/>

</>

The User Settings page use case

    Upgrade Access

      <Text>Upgrade to a subscription to gain access to generate custom reports!</Text>

  // HERE
  <StripeCheckoutButton variant="primary" />

The User Settings page use case (with custom button content)
<StripeCheckoutButton variant="primary">
  Subscribe Now
</StripeCheckoutButton>

@babblebey changes look better. Got some build/test failures on the PR preview

changes look better. Got some build/test failures on the PR preview

I was out of sync with the new build configuration #1396
Now Fixed 🍕

@babblebey thanks. One more addition is that button shouldn't be displayed if the user account already has access. The hasReports property from the useSession hook gives you this info https://github.com/open-sauced/insights/blob/beta/lib/hooks/useSession.ts#L43
Should be good to go then

thanks. One more addition is that button shouldn't be displayed if the user account already has access.

Haha, funny how I didn't think about that logic
Will do 🍕


Allow compiling against slightly different tensorflow directory layouts.

Checks to see if the directory layout of --tensorflow-host-include-dir is
third_party/tensorflow/... and then adjusts all the paths accordingly. When building against normal tensorflow, everything should work normally.

@swift-ci please test tensorflow

@swift-ci please test tensorflow

@swift-ci please test tensorflow

I'll ask cmake expert @dan-zheng take a look at this.

Looks like it was not pressed.


Update to 2020.2 and PYNQ v2.7

Ported overlays und IP to Vivado/Vitis HLS 2020.2

Build scripts works with and bit files are generated successfully (tested with 2020.2 and 2021.2).
BUT designs do not work because of a change in Vitis HLS:
In versions greater than 2019.2, HLS doesn't generate TLAST signals on AXI Stream busses for the current implementation.
Thereby the connection to AXI DMA blocks is broken.
I will adjust the multiplier IP according the HLS stream example from the PYNQ forum:
https://discuss.pynq.io/t/tutorial-using-a-hls-stream-ip-with-dma-part-1-hls-design/3344

Thank you very much for the Pull Request. We're in the process of moving the primary repository to https://github.com/schelleg/overlay_tutorial. Would you be able to reissue it there?

I created a pull request on https://github.com/schelleg/overlay_tutorial with the same changes.

Thank you - I'll close this PR


Update dependencies and workflows

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (18667a6) to head (047a1e5).
Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #235   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           35        35
  Lines          796       796
  Branches        27        27
=========================================
  Hits           796       796

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Swap dot and dot.op

From Maximum Limelihood Estimator on discord:

dot being a period instead of the dot product. If I wanted a period I would type a period.

I had the same reaction initially too and just didn't file an issue then. But I agree, dot should be multiplication. Or perhaps * should be converted to dot.op?

Or perhaps * should be converted to dot.op?

Hard disagree. Multiplication is rarely explicit, and * is used for convolutions, duals, adjoints etc.

I actually didn't realize before now that dot.c is not the same symbol as \cdot in latex. That's really confusing.
How about making dot.c work as the existing dot.c in text mode, and as dot.op in math mode, and simply remove dot.op? Or is it not possible to make them context dependent?

The first option sounds reasonable. 👍

Made a PR, though I didn't see how to specify conditions on text mode so didn't do that.


Add result of job to Events.JobFinished

In my task, I had to do postprocessing after doing the work in Verk.Events.JobFinished
Maybe it will be useful ...

Coverage remained the same at 86.797% when pulling 5d56bb263f7a88caca0d0f8f598dfae46b94abca on salisbury-espinosa:master into 062811eeb706133bd5d55e85cd36c017a7ee2da7 on edgurgel:master.

My initial reaction is 👎 because the events are send to multiple consumers and the return of perform may be something that allocates a lot of memory. We will end up sending multiple messages with the Event and copying the result over and over.
I think this is something that should be done client side so if your worker needs the result simply use it at that moment. It seems to be a weird redirection to expect the result after the job has finished when the worker.perform is defined by the client anyway.
If you need this for every worker simply create your own abstraction like a Behaviour for your workers and always perform then use the result somehow.


Fixed errors when processing routes after unmounting a  tag

Fixes https://github.com/riot/route/issues/86

@cognitom we can merge this right? It shouldn't be a breaking change

thank you so much!


Update maxonapp.sh

Update to use installbuilder.sh CLI Installer, with appropriate arguments to run silently.

I think this is a duplicate of PR 1394.

I think this is a duplicate of PR 1394.

It absolutely is. Sorry I didn’t catch that.