OVS Switch batch shutdown crashes when used with Floodlight

Expected/Desired Behavior:
Switches should be shutdown on call to net.stop() without any errors and open port connections with ovs-vsctrl should be cleaned up.
Actual Behavior:
The error below is thrown indicating that the switches could not be unregistered from the ovsdb. Mininet then requires a manual cleanup to close the open connections (ie. sudo mn -c). It appears that the error occurs because the clean up command for the ovsdb is not being done through a shell. The batchStartup method does use a shell when it initializes the database entries.
File "build/bdist.linux-x86_64/egg/mininet/net.py", line 522, in stop
success = swclass.batchShutdown( switches )
File "build/bdist.linux-x86_64/egg/mininet/node.py", line 1237, in batchShutdown
' -- '.join( delcmd % s for s in switches ) )
File "build/bdist.linux-x86_64/egg/mininet/util.py", line 83, in errRun
popen = Popen( cmd, stdout=PIPE, stderr=stderr, shell=shell )
File "/usr/lib/python2.7/subprocess.py", line 710, in init
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
Detailed Steps to Reproduce the Behavior:
Within a python script, create a Mininet network with 3 or more OVSSwitches in a star topology using the Floodlight controller. Execute the net.stop() command and the above error will be reported. The switches will be reported as still active when using ovs-vsctrl as well.
Additional Information:
Proposed solution that has worked for me is to update Mininet/node.py such that the OVSSwitch.batchShutdown(...) method replaces line 1236-1237 with the following:
run( 'ovs-vsctl ' + ' -- '.join( delcmd % s for s in switches ) , shell=True)

I tried to reproduce this and it seems to work fine:
from mininet.net import Mininet
from mininet.topo import SingleSwitchTopo
from mininet.log import setLogLevel
setLogLevel( 'info' )
net = Mininet( topo=SingleSwitchTopo( 5 ) )
net.start()
net.pingAll()
net.stop()

Here is the output:
sudo python test.py
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2 h3 h4 h5
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1) (h3, s1) (h4, s1) (h5, s1)
*** Configuring hosts
h1 h2 h3 h4 h5
*** Starting controller
c0
*** Starting 1 switches
s1 ...
*** Ping: testing ping reachability
h1 -> h2 h3 h4 h5
h2 -> h1 h3 h4 h5
h3 -> h1 h2 h4 h5
h4 -> h1 h2 h3 h5
h5 -> h1 h2 h3 h4
*** Results: 0% dropped (20/20 received)
*** Stopping 1 controllers
c0
*** Stopping 5 links
.....
*** Stopping 1 switches
s1
*** Stopping 5 hosts
h1 h2 h3 h4 h5
*** Done

This is caused by unicode switch names.
Here's a modified version of your example @lantz that triggers this:
#!/usr/bin/env python
from __future__ import absolute_import
from __future__ import unicode_literals

from mininet.log import setLogLevel
from mininet.net import Mininet
from mininet.topo import SingleSwitchTopo

def main():
    setLogLevel('info')
    net = Mininet(topo=SingleSwitchTopo(5))
    net.switches[0].name = 's1'
    net.start()
    net.pingAll()
    net.stop()

if __name__ == '__main__':
    main()

produces:
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2 h3 h4 h5
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1) (h3, s1) (h4, s1) (h5, s1)
*** Configuring hosts
h1 h2 h3 h4 h5
*** Starting controller
c0
*** Starting 1 switches
s1 ...
*** Ping: testing ping reachability
h1 -> h2 h3 h4 h5
h2 -> h1 h3 h4 h5
h3 -> h1 h2 h4 h5
h4 -> h1 h2 h3 h5
h5 -> h1 h2 h3 h4
*** Results: 0% dropped (20/20 received)
*** Stopping 1 controllers
c0
*** Stopping 5 links
.....
*** Stopping 1 switches
Traceback (most recent call last):
  File "bad.py", line 18, in <module>
    main()
  File "bad.py", line 15, in main
    net.stop()
  File "build/bdist.linux-x86_64/egg/mininet/net.py", line 582, in stop
  File "build/bdist.linux-x86_64/egg/mininet/node.py", line 1254, in batchShutdown
  File "build/bdist.linux-x86_64/egg/mininet/util.py", line 83, in errRun
  File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

Notice the unicode_literals import. To fix the example snippet either remove that import, remove the net.switches[0].name = 's1' line, or pass a native string instead.
The accepted py2/3 compatible way to get native strings when using unicode_literals is the following:
>>> from future.utils import bytes_to_native_str as n

>>> s = n(b'ABCD')

from http://python-future.org/unicode_literals.html
If you set the log level to 'debug' you can see the difference in commands passed to run (and it becomes obvious why passing shell=True fixes the problem.
Working:
*** Stopping 1 switches
*** errRun: ['ovs-vsctl', '--if-exists', 'del-br', 's1']

Broken:
*** Stopping 1 switches
*** errRun: ovs-vsctl --if-exists del-br s1
Traceback (most recent call last):
  File "bad.py", line 18, in <module>
    main()
  File "bad.py", line 15, in main
    net.stop()
  File "build/bdist.linux-x86_64/egg/mininet/net.py", line 582, in stop
  File "build/bdist.linux-x86_64/egg/mininet/node.py", line 1254, in batchShutdown
  File "build/bdist.linux-x86_64/egg/mininet/util.py", line 83, in errRun
  File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

The problem section from batchShutdown above:
run( 'ovs-vsctl ' +
     ' -- '.join( delcmd % s for s in switches ) )

Which ends up running:
# Allow passing in a list or a string
if isinstance( cmd, str ) and not shell:
    cmd = cmd.split( ' ' )
    cmd = [ str( arg ) for arg in cmd ]
elif isinstance( cmd, list ) and shell:
    cmd = " ".join( arg for arg in cmd )
debug( '*** errRun:', cmd, '\n' )
popen = Popen( cmd, stdout=PIPE, stderr=stderr, shell=shell )

Mininet is attempting to execute a file called ovs-vsctl --if-exists del-br s1 instead of ovs-vsctl with args --if-exists del-br s1, hence the OSError: [Errno 2] No such file or directory.
fwiw an (untested) easy fix for this might even just be to use shlex.split():
# Allow passing in a list or a string
if isinstance( cmd, list ):
    if shell:
        cmd = " ".join( arg for arg in cmd )
elif not shell:
    cmd = shlex.split(cmd)
debug( '*** errRun:', cmd, '\n' )
popen = Popen( cmd, stdout=PIPE, stderr=stderr, shell=shell )

You'd also get the benefit of using a more robust lexer than simple string splitting.


TcpVideoStream error: TcpVideoStream timeout after 1000 ms.

Despite the patches of #23, I am still facing this trouble. I have the latest node and downloaded the updated library onto my system. Any ideas why the client is not reconnecting and taking care of this?

So I have made a go at it again. I had node v0.10.33 earlier and now I installed v0.12.7. The client re-connects if it has lost connection and streams in video but the parsing has stopped. In case anyone else faces this problem, try installing to the latest node.
I have checked if TcpVideoStream emits data events after re-connecting and it does. However, the parser has stopped emitting data events.
Has this issue been addressed where once the client loses connection, it is able to reconnect and stream in video from the drone BUT NOT parse it anymore to a h264 file ??

I think this is a duplicate of #105.

Yes it is. I had opened another issue before commenting on #105. Should I close this ?

Yes, I'll close this and we'll continue the discussion on #105.  Thanks!


Use go.uber.org/atomic in pkg/collector/corechecks/cluster/orchestrator/

What does this PR do?
Replaces direct use of the sync/atomic package with go.uber.org/atomic, in the given package
This should not change behavior.
Motivation
Alignment issues with atomic access. See https://github.com/DataDog/datadog-agent/pull/11716
Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes
Ordinary DCA QA should catch any issues here.
Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the config template has been updated.

LGTM! Thanks for taking care of this 👍


Reconciliation algorithm breaks z-order

The reconciliation algorithm does not sync z-order correctly. Repro by overlaying two shapes with solid fill colors and moving one to the front. You'll see that in collaborative mode both peers may not converge to the same state.

duplicate of https://github.com/excalidraw/excalidraw/issues/1376


E2E Test - Kubelet crash/stop on a node where pod is provisioned

The following steps are required to perform this operation.

Create a pod with a PVC.
Stop the kubelet on the node where pod got provisioned.
Verify the pod got provisioned on a different node with disks attached to it.
Verify the disks are detached from powered off VM after 6 minutes.

This scenario would not happen as by Kubernetes design, when kubelet is not responsive, there is no way to be sure what is going on the node. Controller cannot just delete a pod with unknown state. Similarly attach_detach controller cannot just detach a volume of an unknown state pod because some container might still write data to the volume, and detach might cause data corruption.
For new pods cannot start issue, currently k8s has replicationset, deployments, statefulsets etc. For statefulsets, controller will not start new pods if existing pods still in unknown state because statefulset weights correctness more than availability. Pods will stay in unknown state until user manually deletes them. All other controllers such as replicationset, deployments, they will start new pods because availability is more important. And in normal cases, replicationset or deployments do not have volumes attached. User should choose statefulset if volumes are needed.
Based on these things, we can close this issue.


Custom song infinite loading

ive downloaded noodle extensions off mod assistant im not sure why but everytime i download it im not able to play the custom songs i have but the basic ones work ive also uninstalled and the custom songs continue to work is there mods that are conflicting with it ?

I have the same problem and I found out, the Problem is happening from CustomJSONData.
Here is what I found in the Player.log (what I think is the Problem):
FieldAccessException: Field `BeatmapSaveDataVersion3.BeatmapSaveData:version2_6_0' is inaccessible from method `CustomJSONData.CustomBeatmap.CustomBeatmapSaveData:Deserialize (string,System.Collections.Generic.Dictionary`2<string, object>,System.Collections.Generic.Dictionary`2<string, object>)'

Please follow the template and make sure to upload your log from Beat Saber/Logs/_latest.log .
@thojo0 This is an issue from updating a modded Beat Saber from an older version, delete Beat Saber\UserData\Beat Saber IPA.json to fix your game.

Ok thx


package.json allow case sensitivity

In context, the README is describing an option WTF, which is an offensive word according to alex.  The natural approach would put the offensive word within the allow block, but it seems to be case sensitive:
$ alex --version
5.0.0
$ jq '.alex' package.json
{
  "allow": [
    "WTF"
  ]
}
$ echo "WTF is this" >> t.md
$ alex t.md
t.md
  1:1-1:4  warning  Don’t use “WTF”, it’s profane  wtf  retext-profanities
⚠ 1 warning

When the exemption is written in lowercase, everything works:
$ jq '.alex' package.json
{
  "allow": [
    "wtf"
  ]
}
$ cat t.md
WTF is this
$ alex t.md
t.md: no issues found

IMHO the exemptions should be case insensitive, especially for cases like WTF where the offending string is usually written in uppercase.

The stuff you need to add to allow is this:
1:1-1:4  warning  Don’t use “WTF”, it’s profane  wtf  retext-profanities.
So if you see a warning, add that part (the rule identifier) to allow. Due to technicalities, it’s not easy to allow any value in there, but I’m definitely for better docs! Do you have a suggestion what to add where?

The README and documentation should be refreshed to reflect the current output format.  The rule is included as the penultimate column in the current version but I guess it wasn't presented when the docs were last updated.

Following the example from https://github.com/wooorm/alex#command-line , the README currently claims the output for the example.md is:
example.md
  1:5-1:14   warning  `boogeyman` may be insensitive, use `boogey` instead                       boogeyman-boogeywoman
  1:42-1:48  warning  `master` / `slaves` may be insensitive, use `primary` / `replica` instead  master-slave
  2:52-2:54  warning  `he` may be insensitive, use `they`, `it` instead                          he-she
  2:61-2:68  warning  `cripple` may be insensitive, use `person with a limp` instead             cripple

⚠ 4 warnings

Running against the current version, I see:
$ alex example.md
example.md
   1:5-1:14  warning  `boogeyman` may be insensitive, use `boogey` instead                       boogeyman-boogeywoman  retext-equality
  1:42-1:48  warning  `master` / `slaves` may be insensitive, use `primary` / `replica` instead  master-slave           retext-equality
  1:69-1:75  warning  Don’t use “slaves”, it’s profane                                           slaves                 retext-profanities
  2:52-2:54  warning  `he` may be insensitive, use `they`, `it` instead                          he-she                 retext-equality
  2:61-2:68  warning  `cripple` may be insensitive, use `person with a limp` instead             cripple                retext-equality

⚠ 5 warnings

Would it be possible to add column labels to the output?  For the example, something like:

$ alex example.md
example.md
   name               message                                                                    source                 rule id
   1:5-1:14  warning  `boogeyman` may be insensitive, use `boogey` instead                       boogeyman-boogeywoman  retext-equality
  1:42-1:48  warning  `master` / `slaves` may be insensitive, use `primary` / `replica` instead  master-slave           retext-equality
  1:69-1:75  warning  Don’t use “slaves”, it’s profane                                           slaves                 retext-profanities
  2:52-2:54  warning  `he` may be insensitive, use `they`, `it` instead                          he-she                 retext-equality
  2:61-2:68  warning  `cripple` may be insensitive, use `person with a limp` instead             cripple                retext-equality

⚠ 5 warnings

(related question: is there any way to elicit an error? If not, maybe the whole warning column should be removed)

I haven't looked into the code , but what technical challenges are presented by optionally testing actual rather than ruleId?  For example, with WTF:

> require('alex').text('WTF').messages[0]
{ [1:1-1:4: Don’t use “WTF”, it’s profane]
  message: 'Don’t use “WTF”, it’s profane',
  name: '1:1-1:4',
  file: '',
  reason: 'Don’t use “WTF”, it’s profane',
  line: 1,
  column: 1,
  location:
   { start: { line: 1, column: 1, offset: 0 },
     end: { line: 1, column: 4, offset: 3 } },
  ruleId: 'wtf', // <-- this is the rule
  source: 'retext-profanities',
  fatal: false,
  profanitySeverity: 2,
  actual: 'WTF', // <-- the actual text is avaiable
  expected: null }

Would it be possible to make exemptions that checked the actual value rather than ruleId?  For example, the exemption !WTF would match the actual text WTF


Revert "Add interest cohort permission policy"

This reverts commit 29b91807ba98c83b5f1d741c9178d51128d96c3f.
This was intended to prevent GOV.UK content being used as part of the
FLoC proposal 1. Google has since replaced the FLoC proposal with a
new Topics API 2. We therefore no longer have a need to set this
header.

Closing this as this header would still be used as part of https://developer.chrome.com/docs/privacy-sandbox/topics/#site-opt-out


Toolbar not displayed when using runserver with IP address

I'm on a Windows 7 machine running a Django stack in an Ubuntu VM. To allow testing within browsers such as IE, my VM is using a bridged adapter, gaining it's own IP address on the network.
I then run runserver like:
$ sudo python manage.py runserver <IP_ADDRESS>:8000
When run in this way, debug toolbar does not activate, even though this is obviously still a development environment. However, using runserver in the basic manner allows debug toolbar to function fine, e.g.
$ python manage.py runserver

Having the same issue, with a VM running with vagrant (redirected ports) and this setting :
INTERNAL_IPS = ('<IP_ADDRESS>','<IP_ADDRESS>','<IP_ADDRESS>')

But it's not big deal to use this in a local_settings.py file
def custom_show_toolbar(self):
    return True

DEBUG_TOOLBAR_CONFIG = {
    'SHOW_TOOLBAR_CALLBACK': custom_show_toolbar,
}

domguard,
Did you by any chance remove DEBUG = True in settings.py. That seems to be one reason why it wouldnt show the DDT if you have put in the client ips in INTERNAL_IPS configuration. Can you add DEBUG = True if you havent already?

No, DEBUG=True was set, I think this is really a specific issue regarding IP adress

If that's the case, with your custom_show_toolbar, can you check what is the REMOTE_ADDR from the "HTTP Headers" Panel. DDT only checks if that IP is in the INTERNAL_IPS configuration.

That was <IP_ADDRESS> , this was hard to guess as it's the internal IP used between VirtualBox and OSX to do the port redirection...
Now it's working fine without the need for the True function, thanks !
Except if there's a real issue for @chrisdpratt , this can be closed for me

With DEBUG = True, and my client IP address in INTERNAL_IPS, this is still an issue in my development server.

I cannot access the toolbar when running in docker and using <IP_ADDRESS> as the internal IP


Application depends on flutter from sdk which depends on material_color_utilities 0.2.0, material_color_utilities 0.2.0 is required.

I'm following one of the Flutter team's videos "Material 3 from design to deployment" linked from here: https://m3.material.io/develop/flutter
The example uses material_color_utilities to manage the application's theming techniques, and specifically, the example uses Scheme.toColorScheme() to generate a new ColorScheme based on the application's theme customization.
However, when I depend on material_color_utilities ^0.8.0 - which provides this functionality - I get the following error:
[app_client] flutter pub get
Resolving dependencies...
Because app_client depends on flutter from sdk which depends on material_color_utilities 0.2.0, material_color_utilities 0.2.0 is required.
So, because app_client depends on material_color_utilities 0.8.0, version solving failed.
exit code 1

Any thoughts on how to resolve this dependency issue and make use of the updated Material 3 functionality?
I'm developing production apps with the following development environment:
Flutter 3.10.6 • channel stable • https://github.com/flutter/flutter.git
Framework • revision f468f3366c (2 weeks ago) • 2023-07-12 15:19:05 -0700
Engine • revision cdbeda788a
Tools • Dart 3.0.6 • DevTools 2.23.1

Thanks for posting this issue. I have the same problem and have not found a work-around without porting over and refactoring the source code.  Not recommended.
Hopefully someone will provide a way to resolve this dependency.

You're welcome @TriMontana. I suspect that the answer will be to switch to one of the development channels - but that makes me somewhat nervous when publishing production apps. Hopefully we get an answer either way.

I have same problems and solved by upgrading the flutter using command flutter upgrade.
I can use the material_color_utilities 0.5.0 after updating the flutter.
This is my latest flutter version.
Flutter 3.13.3 • channel stable • https://github.com/flutter/flutter.git
Framework • revision<PHONE_NUMBER> (5 days ago) • 2023-09-06 14:32:31 -0700
Engine • revision b8d35810e9
Tools • Dart 3.1.1 • DevTools 2.25.0


HyperTrie api

When writing more dynamic sites I’m missing a p2p database api in addition to the file one. Particularly I miss:

multi value transactions
streaming iteration
inlined values (for perf, less important)

We already have HyperTrie which supports all those 3 things.
Would love to get access to webified version of that that exposes in some form put, del, get, iterator, batch, diff, checkout

Okay taking a first pass at the API spec:
beaker.hypertrie.put(url: String, value: String|ArrayBuffer): Promise<void>
beaker.hypertrie.del(url: String): Promise<void>
beaker.hypertrie.get(url: String): Promise<String|ArrayBuffer>
beaker.hypertrie.iterator(url: String, { recursive: Boolean, random: Boolean }): HypertrieIterator
beaker.hypertrie.batch(actions: BatchAction[]): Promise<void>
beaker.hypertrie.diff(url: String, version: Number): Promise<DiffDesc[]>
beaker.hypertrie.checkout(url: String, version: Number): Hypertrie
beaker.hypertrie.trie(url): Hypertrie
Hypertrie#put(prefix: String, value: String|ArrayBuffer): Promise<void>
Hypertrie#del(prefix: String): Promise<void>
Hypertrie#get(prefix: String): Promise<String|ArrayBuffer>
Hypertrie#iterator(prefix: String, { recursive: Boolean, random: Boolean }): HypertrieIterator
Hypertrie#batch(actions: BatchAction[]): Promise<void>
Hypertrie#diff(prefix: String, version: Number): Promise<DiffDesc[]>
Hypertrie#checkout(version: Number): Hypertrie

type BatchAction {
  type: 'put' | 'del',
  key: String,
  value: Optional<String|ArrayBuffer>
}

HypertrieIterator ??

beaker.hypertrie.diff(url: String, version: Number): Promise<DiffDesc[]> should return an iterator also with <left: Node, right: Node>
beaker.hypertrie.get(url: String): Promise<String|ArrayBuffer> and the iterator returns Node
type Node {
  seq: PositiveInteger,
  key: String,
  value: Optional<String|Uint8Array>
}

In put/BatchAction the value should also be Uint8Array instead of ArrayBuffer

Updated spec:
beaker.hypertrie.put(url: String, value: String|Uint8Array): Promise<void>
beaker.hypertrie.del(url: String): Promise<void>
beaker.hypertrie.get(url: String): Promise<HypertrieNode>
beaker.hypertrie.iterator(url: String, { recursive: Boolean, random: Boolean }): HypertrieIterator
beaker.hypertrie.batch(actions: BatchAction[]): Promise<void>
beaker.hypertrie.diff(url: String, version: Number): HypertrieDiffIterator
beaker.hypertrie.checkout(url: String, version: Number): Hypertrie
beaker.hypertrie.trie(url): Hypertrie
Hypertrie#put(prefix: String, value: String|Uint8Array): Promise<void>
Hypertrie#del(prefix: String): Promise<void>
Hypertrie#get(prefix: String): Promise<HypertrieNode>
Hypertrie#iterator(prefix: String, { recursive: Boolean, random: Boolean }): HypertrieIterator
Hypertrie#batch(actions: HypertrieBatchAction[]): Promise<void>
Hypertrie#diff(prefix: String, version: Number): HypertrieDiffIterator
Hypertrie#checkout(version: Number): Hypertrie

type HypertrieNode {
  seq: Number,
  key: String,
  value: Optional<String|Uint8Array>
}

type HypertrieDiff {
  left: Optional<HypertrieNode>,
  right: Optional<HypertrieNode>
}

type HypertrieBatchAction {
  type: 'put' | 'del',
  key: String,
  value: Optional<String|Uint8Array>
}

type HypertrieIterator {
  next: Function(Function(node: HypertrieNode): Void):Void
}

type HypertrieDiffIterator {
  next: Function(Function(node: HypertrieDiff): Void):Void
}

@mafintosh any interest in making the iterators work with for await?
for await (let node of mytrie.iterator('/')) {
  console.log(node)
}

In addition to settling the API spec, we need to decide how Hypertries are managed for the user.

Is there an API for creating new Hypertries? (prob yes)
Is there an API for deleteing a Hypertrie?
Is there a browser UI for creating new Hypertries? (prob no)
Where do users find their created Hypertries? (in the library? somehow attached to the site that created the trie?)

What does Beaker render when you visit a Hypertrie?

@pfrazee def async iterators

Is there an API for creating new Hypertries? (prob yes)
yes

Is there an API for deleteing a Hypertrie?
v2 feature

Is there a browser UI for creating new Hypertries? (prob no)
v3 feature

Where do users find their created Hypertries? (in the library? somehow attached to the site that created the trie?)
a simple list in the library would be fine for now

How do users manage their Hypertries? (is it like a drive or is it more like localStorage values which are managed via devtools and cleared when you clear a site's storage?)
they are like drives

What does Beaker render when you visit a Hypertrie?
Just a page saying "this is a hypertrie with X changes"


token_expires event fires after using the OAuthService.logOut() routine from the library.

token_expires event fires after using the OAuthService logout routine. Its this a bug or expected behaviour

It currently is expected behavior, as far as I can tell, based on:
https://github.com/manfredsteyer/angular-oauth2-oidc/blob/8d152c20ea1dab006a7eca02898260254872e79b/projects/lib/src/oauth-service.ts#L408-L442
and:
https://github.com/manfredsteyer/angular-oauth2-oidc/blob/8d152c20ea1dab006a7eca02898260254872e79b/projects/lib/src/oauth-service.ts#L444-L463
I suppose you need to call stopAutomaticRefresh yourself?
Will be honest, I'm surprised to see this. Changing this behavior would be a breaking change of course though.

@jeroenheijmans thanks figure out by going thru the source. Is it possible to expose the   protected clearAccessTokenTimer() and protected clearIdTokenTimer() respectively.  Just had to pull a few hairs to note the stopAutomaticRefresh() was the right routine to use. We can close this issue though. Thanks


use Generic parameter

thanks @Jauzee this change worked for me

Thanks ! This also fixes compilation in Swift 3.2 mode.

@malcommac please check updated PR

Released 1.0.1 for Swift 4 in master branch.
Thanks


Duplication of items with graveyard

from gcrabman :
dans le graveyard, si on click puis on vire en mettant en dehors de l'inventaire sa dedouble

I can't reproduce that. What item was thrown away?

that was the spears, but i think you need to speak with @crabman77

It only happens with spears due to the fact that they're throw on drop.
This patch will allow anyone to drop anything from the graveyard at any moment and thus prevent spears from being multiplied when dropped.
https://github.com/MinetestForFun/server-minetestforfun/commit/576d732088733da1e6fd8ed496e9c76e8c5cc7c0


[10.x] Fix docs ResourceCollection and JsonCollection

I am closing this pull request because it lacks sufficient explanation, tests, or both. It is difficult for us to merge pull requests without these things because the change may introduce breaking changes to the framework.
Feel free to re-submit your change with a thorough explanation of the feature and tests - integration tests are preferred over unit tests. Please include it's benefit to end users; the reasons it does not break any existing features; how it makes building web applications easier, etc.
Thanks!


Add test if all keys are used

I suggest to add a test before committing (or at least before merging) to check if all the keys used in the calendars and src/lib/celebrations.ts are defined in the l10n files and also if all the keys defined in the l10n files are actually used.
The way I do it is as follows:
# Get list of all used l10n keys in all calendars
grep -hPo "^\s*key: '\K[^']+" src/calendars/* src/lib/Celebrations.ts | sed '/^aSampleCelebration[0-9]\+$\|^epiphany$\|^HOLY_WEEK$\|^holyWeek.season$\|^LENT$\|^lent.season$/d' | sort | uniq > cel_keys

# Get list of all keys in all l10n files
grep -hPo --exclude=index.ts "^\s+'*\K[^}': ]+(?='*:)" src/locales/* | sed '/^advent$\|^season$\|^$\|^feria$\|^sunday$\|^christmastide$\|^day$\|^octave$\|^epiphany$\|^before$\|^after$\|^ordinaryTime$\|^lent$\|^dayAfterAshWed$\|^holyWeek$\|^eastertide$\|^liturgicalColors$\|^GOLD$\|^GREEN$\|^PURPLE$\|^RED$\|^ROSE$\|^WHITE$\|^celebrations$\|^sanctoral$/d' | sort | uniq > all_keys

# Compare the to files (output should be empty if all keys are defined and no key defined is unused)
diff -y --suppress-common-lines all_keys cel_keys

Just a note that in bdb3fd3d386537a29bc3d69baaf7e36699dd9365 (current HEAD of PR #202), the output of the diff is as follows:
$ diff -y --suppress-common-lines all_keys cel_keys
blessedIstvanSandorMartyr				      <
shroveMonday						      <
shroveTuesday						      <

That means that in that branch, we have three keys defined in the l10n files that are not used in any of the calendars. In the past I thought we should keep them, but now I think we should remove them. When needed, we might re-add them in the future.

@tukusejssirs would you consider this covered by npm run data:checks?
 example of the "failing" output

 ERR   Useless martyrology items:
       - agapitus_of_palestrina_martyr
       - christopher_of_anatolia_martyr
       - cyriacus_martyr
       - lawrence_justinian
       - mammes_of_caesarea_martyr
       - marcellinus_of_ancona_bishop
       - mary_mother_of_hope
       - miltiades_pope
       - pelagia_the_penitent_virgin
       - romanus_martyr
       - thecla_of_iconium_virgin
       - theodore_stratelates
ERR   Useless localized 'el' items:
names:
- dedication_of_the_basilica_of_our_lady_of_the_snows_tinos_grece
- dedication_of_the_cathedral_of_saint_dionysius_athens
- lydia_of_philippi_first_european_christian
- our_lady_of_angels
- timothy_of_ephesus_and_titus_the_first_bishop_of_crete_bishops
- twelve_apostles
- zechariah_and_elizabeth_parents_of_john_the_baptist
ERR   Useless localized 'en-gb' items:
names:
- dedication_of_the_basilica_of_our_lady_of_the_snows_tinos_grece
- dedication_of_the_cathedral_of_saint_dionysius_athens
- lydia_of_philippi_first_european_christian
- timothy_of_ephesus_and_titus_the_first_bishop_of_crete_bishops
- twelve_apostles
- zechariah_and_elizabeth_parents_of_john_the_baptist
ERR   Useless localized 'en-ie' items:
names:
- dedication_of_the_basilica_of_our_lady_of_the_snows_tinos_grece
- dedication_of_the_cathedral_of_saint_dionysius_athens
- lydia_of_philippi_first_european_christian
- timothy_of_ephesus_and_titus_the_first_bishop_of_crete_bishops
- twelve_apostles
- zechariah_and_elizabeth_parents_of_john_the_baptist
ERR   Useless localized 'en' items:
names:
- dedication_of_the_basilica_of_our_lady_of_the_snows_tinos_grece
- dedication_of_the_cathedral_of_saint_dionysius_athens
- lydia_of_philippi_first_european_christian
- timothy_of_ephesus_and_titus_the_first_bishop_of_crete_bishops
- twelve_apostles
- zechariah_and_elizabeth_parents_of_john_the_baptist
WARN  Missing localized 'el' items for the Proper of Time and the General Roman Calendar:
ranks:
- optional_memorial
names:
- dedication_of_consecrated_churches

if not, what else should we add?

Yeah, @TobiTenno, I think this issue is already implement using data:checks.
Thanks for bringing this up! :pray:


Tests fail due to a DimensionMismatch when using the distributed branch.

Code example!

Oh I see. The tests. I'll take a look

Yes. On the anj/dist branch this is broken right now because I've disabled the conversion from Vector{Vector{T}} to Matrix{T} because it would be crazy inefficient for DArrays. I'll have to find away to generically convert the to a matrix when we are done with the iterations.
We could also consider to convert to a Matrix earlier, but then the problem would be that we cannot easily append columns to Matrix.


CRA linting only happens for start and not build

I started a brand new project using npx create-react-app my-app and then added the following to my app:
console.log("HELLO");
const foo = 123;

When running npm start I see
  Line 5:  'foo' is assigned a value but never used  no-unused-vars

But when I run npm run build, the build succeeds and I get the build folder. My questions are:

Why is linting only during dev-server mode?
Why is console.log not being flagged?
And why is quotation not consistent? All of the files have single quotes, and I am using double quotes.

by default warnings are ok when doing yarn build.  If you want to fail on warnings, do CI=true yarn build
I guess no-console rule is not enabled in eslint-config-react-app (i don't see it)
I think that's just an eslint thing of telling you its a user defined string

But when I run npm run build, the build succeeds and I get the build folder

Do you see a warning in build output though?

@bugzpodder that helped.

@gaearon I want the build to fail because I want to enforce linting. The CI=true did the trick. I'm going to close this issue.


#543 Add frontend component for the page listing the submissions for a given assessment

Proposed changes
This pull request resolves #543 by adding a page for the GET /assessments/:assessmentId/submissions route.
Checklist

[x] Related issue appears at beginning of pull request title with pound sign, and title describes the changes being proposed.
[x] Related issue is linked in pull request description using closing keywords.
[x] The appropriate label has been chosen for this pull request.
[x] The correct project has been selected for this pull request.
[x] All commits in this branch, including merge commits, begin with the issue number and a pound sign.
[x] Tests have been added, where appropriate; or, no tests are relevant for this pull request.
[x] This pull request contains UI changes, and screenshots of those UI images appear below; or, this pull request contains no UI changes.

Hi Kyle! Before we can review this, can you please pull the latest from GitHub (I updated your branch with the latest commits from the feature branch), run yarn delint, address the comments, and keep running yarn delint until you don't get any warnings or errors, then commit and push to GitHub? Thank you!

Hi @kaiyolau the force push I just did was to fix the ability to merge this with the current state of the feature branch; this means only your code should now be showing on the PR "Files Changed" page.

EOD :
today I have done adding more conditions for the button within the "Action" column,
and apply "Chip" styling for the "State" column,
also moved the "student ID" column to the first column.


Hovering over the "New" button should open the dropdown, pressing the "New" button should go to "/editor"

This will allow people to select from all the templates available on the "/editor" page

@seveibar Can you please assign this to me? It looks interesting. I can easily knock this out.

Thanks so much for assigning it to me.
I have just submitted the PR. Can you please review it whenever you get a chance? Thanks!


0033 spider pgh public schools

Making a pull request early and often, let me know if I am supposed to make the request into its own branch on your repo. The code may still need work. Settings needed to be edited to ignore robots too, there may be a more localized way to do this.

Hey @mishugana, we've made some updates so that the build will pass - if you can merge in changes from upstream/master and commit those changes, I think we'll be good to go

A reminder to sync this with the upstream fork so that Travis tests will past! Also, to enable edits from maintainers!
Enable edits from maintainers!:

In the the right sidebar of your pull request, select Allow edits from maintainers. You can change these permissions at any time by unselecting this option.

Syncing your fork:
git remote add upstream https://github.com/bonfirefan/city-scrapers-pitt.git
git fetch upstream
git merge upstream/master


dart2js footprint is huge

This tracker is for issues related to:

dart2js
Dart SDK version: 2.13.1 (stable) (Fri May 21 12:45:36 2021 +0200) on "macos_x64"

I used webdev build to build a hello world void main() { print('hello world'); } and the main.dart.js has 34kb of minified JS.
That is very big for a simple hello world.
Is this expected?
Can I reduce this somehow?

I was testing with webdev build alone, but after adding a build.yaml file with -O4 flag it shrink to 6kb.


Spark throwing an exception as "org.elasticsearch.hadoop.rest.EsHadoopTransportException: java.net.BindException"

Hi Team,
I am using elasticsearch-hadoop with the spark for events processing.
So when we are processing the events with 3 evt per second I am able to do the same successfully but when bandwidth is increased to 5 times that is 15 events per second then i am getting the below exception.
15/10/12 10:42:15 ERROR JobScheduler: Error running job streaming job<PHONE_NUMBER>000 ms.1
org.elasticsearch.hadoop.rest.EsHadoopTransportException: java.net.BindException: Address already in use
at org.elasticsearch.hadoop.rest.NetworkClient.execute(NetworkClient.java:121)
at org.elasticsearch.hadoop.rest.RestClient.execute(RestClient.java:317)
at org.elasticsearch.hadoop.rest.RestClient.execute(RestClient.java:313)
at org.elasticsearch.hadoop.rest.RestClient.count(RestClient.java:392)
at org.elasticsearch.hadoop.rest.RestRepository.count(RestRepository.java:456)
at org.elasticsearch.spark.rdd.AbstractEsRDD.count(AbstractEsRDD.scala:49)
This seems the issue like sockets are not getting closed after the operation so what is the param or how we can close the sockets.
Below is the API I am using for search :
JavaEsSpark.esRDD(sc, "json_events/events").count();
Let me know if anyone has any info for the same.

Looks like a connection leak. What version of es-hadoop are you using? Anything appearing in the logs before the operation?
How many times are you calling the count method? The RDD doesn't keep a persistent connection - it only opens one up when having to iterate; the connection is closed once the iterator is consumed or the job finished.
In 2.1.1, the count method has also been optimized so rather then pulling in all the data, it returns the result on the spot.
Outside a connection leak (which might be a bug), the only other reason I can think of is that for each even a processing is started which creates a connection to ES. Under load, there are simply too many connections at once causing the exception to occur.
Really the workaround in that case is to limit the number of connections - that is call it every X events not for each one simply it's simply too expensive.

Hi Costin,
I am using version 2.1.1. Before the operation the logs are as below :
15/10/12 13:29:53 INFO BlockManagerInfo: Added input-0-1444636792800 in memory on localhost:47598 (size: 1117.0 B, free: 265.0 MB)
15/10/12 13:29:53 INFO BlockManagerMaster: Updated info of block input-0-1444636792800
15/10/12 13:29:53 WARN BlockManager: Block input-0-1444636792800 replicated to only 0 peer(s) instead of 1 peers
15/10/12 13:29:53 INFO BlockGenerator: Pushed block input-0-1444636792800
15/10/12 13:29:54 INFO MemoryStore: ensureFreeSpace(2193) called with curMem=177221, maxMem=278019440
15/10/12 13:29:54 INFO MemoryStore: Block input-0-1444636793800 stored as bytes in memory (estimated size 2.1 KB, free 265.0 M
Count method is being called about 600 times a second. But as this will be calling elastic-hadoop function to create the socket and send to Elasticsearch, so there might be the case like connection is not getting closed once the request is being fulfilled or the iterator is consumed or the job finished.
Yes , while i am checking the same netstat -anl | grep 9200 , I can see lot of connections in TIME_WAIT means the previous connections are not closed even though job is finished and now system is not having any port to send new connection request (Also we are performing all operations sequentially so connection should also get closed after request is being completed)?
So what do you think could be the solution to this ?

I've discovered an issue with the way the connection is closed and pushed a fix for it - can you please try the latest dev build?
Note that in my tests, closing the connection seems to be just postpone the exception - the OS still runs out of connections (it depends how fast the OS is configured to release the socket after the TCP connection has been closed).
Thanks,

Hi Costin,
The build which you have provided at above link is still failing with below error logs.
15/10/12 17:07:03 INFO SparkContext: Starting job: foreach at Spark_ES_V4.java:47
Error: application failed with exception
org.elasticsearch.hadoop.rest.EsHadoopTransportException: java.net.BindException: Address already in use
at org.elasticsearch.hadoop.rest.NetworkClient.execute(NetworkClient.java:121)
at org.elasticsearch.hadoop.rest.RestClient.execute(RestClient.java:333)
at org.elasticsearch.hadoop.rest.RestClient.execute(RestClient.java:325)
at org.elasticsearch.hadoop.rest.RestClient.count(RestClient.java:412)
at org.elasticsearch.hadoop.rest.RestRepository.count(RestRepository.java:503)
at org.elasticsearch.spark.rdd.AbstractEsRDD.count(AbstractEsRDD.scala:49)
at org.apache.spark.api.java.JavaRDDLike$class.count(JavaRDDLike.scala:420)
at org.apache.spark.api.java.AbstractJavaRDDLike.count(JavaRDDLike.scala:46)
at org.paladion.atm.Spark_ES_V4$2.call(Spark_ES_V4.java:204)
at org.paladion.atm.Spark_ES_V4$2.call(Spark_ES_V4.java:81)
at org.apache.spark.streaming.api.java.JavaDStreamLike$$anonfun$foreachRDD$1.apply(JavaDStreamLike.scala:311)
at org.apache.spark.streaming.api.java.JavaDStreamLike$$anonfun$foreachRDD$1.apply(JavaDStreamLike.scala:311)
at org.apache.spark.streaming.dstream.DStream$$anonfun$foreachRDD$1.apply(DStream.scala:534)
at org.apache.spark.streaming.dstream.DStream$$anonfun$foreachRDD$1.apply(DStream.scala:534)
at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply$mcV$sp(ForEachDStream.scala:42)
at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply(ForEachDStream.scala:40)
at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply(ForEachDStream.scala:40)
at scala.util.Try$.apply(Try.scala:161)
at org.apache.spark.streaming.scheduler.Job.run(Job.scala:32)
at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply$mcV$sp(JobScheduler.scala:176)
at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply(JobScheduler.scala:176)
at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply(JobScheduler.scala:176)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler.run(JobScheduler.scala:175)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:382)
at java.net.Socket.bind(Socket.java:644)
at java.net.Socket.(Socket.java:433)
at java.net.Socket.(Socket.java:286)
at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80)
at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at org.elasticsearch.hadoop.rest.commonshttp.CommonsHttpTransport.execute(CommonsHttpTransport.java:417)
at org.elasticsearch.hadoop.rest.NetworkClient.execute(NetworkClient.java:104)
... 26 more
Let me know if you require any other info to analyze the same.
Thanks,

You can turn on logging on org.apache.commons.httpclient package (all the way to TRACE) to see that the connection is indeed closed. If that is indeed in the case, there's not much else that can be done at least in the official distro.
Basically you are opening way too many connections per second - either you stop doing that or reuse the connection between calls. If the count is all that you need, you can do the REST call yourself to get the number and reuse the connection within your code.
The RDD usage becomes too expensive in your case since really you aren't using any of its feature and further more, due to its lifecycle, the underlying connection cannot be shared across calls.

Actually we need to call count function for about 600 times per second, so how I can avoid opening too many connections per second or reuse the connection between calls.
As I just need the count so i am using long abc = JavaEsSpark.esRDD(sc, "json_events/events").count();.... Is there any alternative to do same without opening too many connection?
And to the REST call i need to send POST request and that will return the JSON response which again need to be parsed, So do you have any info which REST call can return only count with no other things as output?
Also which functions to be invoked from the package org.apache.commons.httpclient to trace the logs

Calling count 600/s is just  a complete waste of resources. I assume you are trying to double check whether the data went in but you already know this if POST request has succeeded.
Stepping aside for a bit, calling a service (whether it's Elastic or something else) 600 per second for a counter is simply way too ... unoptimal.
Use your own counter instead and use that instead - that is instead of calling count 600/s, call it every 2s or 5s and expect it to be 1200 or 3000 items more.
Batches are your friend.
The documentation on REST and the API in Elasticsearch can be easily found in the docs - no need to reproduce them here. And yes, you do have to do parsing of the data.
However the cat api might be useful as it is meant for the command-line.
Last but not least, turning on logging implies configuring log4j which means specifying a parameter within its configuration file. Again, there's plenty of documentation out there including in Spark itself.
I'm going to close the issue as the underlying bug (discovered through this issue) was fixed and your request can't be addressed by the project. For further discussions, please see the forum.
I maintain my recommendation to rethink a bit your block of code since a write is acknowledged once it is being performed, there's no need to verify it again. And writing multiple events/data at once is better for all parties then writing it one by one. The bigger the batch, the better the performance.

Hi ,
Here i am not performing the count for same query, as I am using the count as long cnt = JavaEsSpark.esRDD(sc, "json_events/events",strQuery).count(); as well.
So here in a second 600 different search queries are being fired to ES using param "strQuery". So all 600 queries perform search on various combination and give the output.
Yes, we have gone through with the _cat, and that will not be suffice as that gives the count and all wrt complete cluster not to particular query. And here count we are fetching with search query output as well because fetching the .value() instead of .count() will be too costly.
Do you think if any better way is there to perform search query and get output without using the above mentioned count method.
~Prashant


performance.html: use dark class too

The dark class has very sensible colors for hyperlinks. This body style="" stuff does not.

@Artoria2e5 Usually, I provide a dark/light mode toggle button on most of the pages on the site, excluding the 3D demos. However, for this page, I want it to be this theme exactly, with no light mode, and not relying on the browser's definition of dark mode. So this was an intentional decision.

The dark class is not affected by prefers-color-scheme. When the class is set, it is always dark.


The JSON-RPC connection with the remote party was lost before the request could complete.

Hello, I have been trying to setup image classification model with two type of Classes (bananas and grapes, 1.5k+ images each)
but I've been getting random errors while training. It never gets to the point where it works. I have tried to google the errors with no luck every time.
I have tried to train with CPU, I would get errors.
So I have decided to try to set it up for GPU (RTX 2070 SUPER, all specs below in screenshot)
with no good results. would either end up with memory issues or the "JSON-RPC connection" error...
although it does says it's compatible

My computer specs -

error I've been getting - "The JSON-RPC connection with the remote party was lost before the request could complete."

Do anyone here have an idea of what I could be doing wrong ?
Thank you very much!

@LittleLittleCloud Another instance of https://github.com/dotnet/machinelearning-modelbuilder/issues/1712

Hi @Aze1337
Let's track this issue in #1712

Hello @LittleLittleCloud ,
thank you for your response, I'll look into the other thread and see if it can help me.
I tried both CPU and GPU on the original post above, when I saw that CPU wasn't working. I installed everything for the gpu to be compatible , yet same errors...
also I just tried to load the folder with the data again and I get this..

have to reboot computer a few times to magically get it to load once.  any workaround ?
thank you very much

have to reboot computer a few times to magically get it to load once. any workaround ?
You can just kill the Servicehub.Host.CLR.x64.exe process in task manager

Back to the topic, How's your memory usage? I notice that the size of your image folder is really large, so it could be OOM which causes the training process to be terminated by OS. Could you check the memory usage  (Both memory and GPU memory) to see if there's a spike or massive grow before the exception?
Meanwhile, could you also try the image classification in mlnet-cli? The algo it uses is identical with Model Builder, except that it doesn't use servicehub. So it might get us more error information back.

have to reboot computer a few times to magically get it to load once. any workaround ?

You can just kill the Servicehub.Host.CLR.x64.exe process in task manager
Back to the topic, How's your memory usage? I notice that the size of your image folder is really large, so it could be OOM which causes the training process to be terminated by OS. Could you check the memory usage (Both memory and GPU memory) to see if there's a spike or massive grow before the exception?
Meanwhile, could you also try the image classification in mlnet-cli? The algo it uses is identical with Model Builder, except that it doesn't use servicehub. So it might get us more error information back.

I have recorded a youtube video from start to when it crashes with task manager being open.
what should I do tho ? let's say it's because of how big my folders are, how can I possibly lower it ? how much is enough ect ?
thank you very much
https://youtu.be/Ysd63RFUFQU
let me know if that's enough for you

@Aze1337
Thanks for the video, from the stream it looks like the training has started ( I assume you are using CPU) for a while, and then gets terminated because of a reason that we don't know but very possibly the memory outage. To confirm it you can use mlnet.cli, which should throw exception while getting terminated.

@LittleLittleCloud In the video, I was using GPU training. Task manager gpu usage was mostly used by OBS (the screen recorder) though.
Thank you for the commands, I'm going to try it right now.
I've ran the image classification, I'll edit this post once It's done running

Edit - it just crashed - https://gist.github.com/Aze1337/2d25219822496af3195f76e842bf5459
@LittleLittleCloud

@Aze1337

OP_REQUIRES failed at cast_op.cc:112 : Resource exhausted: OOM when allocating tensor with shape[4257,2833,3] and type float on /job:localhost/replica:0/task:0/device:CPU:0 by allocator cpu

Like I said.. it's an OOM error which happens when it tries to allocate space for tensor [4257, 2833, 3]. It's possible that some of your images have very high resolution.
You can try resizing your images to a relatively small size (224 * 224) before training. It's also good for increasing batch size and training speed.

ok


EditorPlugin C# - Can't cast Godot.Object to C# custom type in Handles method

Godot version:
3.2.1 official with mono support
OS/device including version:
Windows 10
Issue description:
In a C# editor plugin, I can't cast Godot.Object to the real C# custom type in bool Handles(Godot.Object) method.
But the AddCustomType documentation (provided by Intellisense) say that :

You can use the virtual method Godot.EditorPlugin.Handles(Godot.Object) to check if your custom object is being edited by checking the script or using the is keyword.

Steps to reproduce:
Create a C# editor plugin with a custom type.
Check if the Godot.Object is attached to the custom script.
Try to cast the Godot.Object to the custom C# type.
Minimal reproduction project:
CastToCustomType.zip

It's the same issue that #36395.
I must add [Tool] to CustomType.


fix(core): refactor to work with Sails 1.0, OpenAPI 3, JSDoc (work in progress)

Refactor hook initialisation to run after Sails ready in order to
ensure that sails.getActions() returns appropriate content.
Replace removed sails.controllers with equivalent data structure
derived from sails.getActions() (work in progress).
Utilise model attribute columnType to infer more type info (work
in progress).
Addresses https://github.com/theo4u/sails-hook-swagger-generator/issues/11#issuecomment-437683002 and https://github.com/theo4u/sails-hook-swagger-generator/issues/39

This needs further checking to ensure it is complete and covers all aspects of mapping actions and model attributes, but I've created a PR in case of interest and for comment on direction.

@danielsharvey thanks.

Replace removed sails.controllers with equivalent data structure
derived from sails.getActions() (work in progress).

See my thoughts about it here: https://github.com/theo4u/sails-hook-swagger-generator/issues/18#issuecomment-370853338

With this, there's no support for sails v0.12.x and maybe we want to do some fixes or feats that cuts across both version, I don't think it will be possible again with
-    "sails": "~0.11.0",
+    "sails": "^1.1.0"

Wdyt?

Apologies for long delay responding. I suspect maintaining support for both 0.12.x and 1.x will be difficult in the same release. Maintaining 2.x for Sails v0.12.x and releasing 3.x for 1.x support might be pragmatic.

With this, there's no support for sails v0.12.x and maybe we want to do some fixes or feats that cuts across both version, I don't think it will be possible again with
-    "sails": "~0.11.0",
+    "sails": "^1.1.0"

Wdyt?

Will push updated support shortly.

@theo4u, by way of update: This is progressing although not as quickly as I would like.
Question: Do you have an opinion on moving from Swagger to to OpenAPI 3?

Question: Do you have an opinion on moving from Swagger to OpenAPI 3?

No, I've not given this a thought

@theo4u Quick update as this has taken longer than anticipated. I found issues with using sails.getActions() and have moved to using listening to router:bind events. I've also worked to upgrade output to OpenAPI 3.

@danielsharvey cool 👍 , can you push so I try it out

@theo4u, this turned out to be a more significant refactor that I expected
once I got started now that I have included Sails 1.0, OpenAPI 3 and JSDoc.
Updates to the tests are a work-in-progress - I have not updated the all tests, only
the bootstrap test so far.
To run bootstrap only, use:
node ./node_modules/mocha/bin/mocha test/bootstrap.test.js

I have tested quite extensively on a project I'm using this for, but the test output
produced in swagger/swagger.json by the bootstrap test is OK, and has been
tested against:

http://editor.swagger.io/
https://redocly.github.io/redoc/

Hi @danielsharvey, just tried your code and despite some warnings, it worked to generate the open api from blueprints of my sails 1.0 application.
Keep up with the good work!

Thanks for the feedback @eduardotamaki. Feel free to let me know any specific warnings - I've dealt with a reasonable number so far but happy to address (as noted, I know that work is needed to finished updating the tests).

@theo4u, this turned out to be a more significant refactor that I expected
once I got started now that I have included Sails 1.0, OpenAPI 3 and JSDoc.
Updates to the tests are a work-in-progress - I have not updated the all tests, only
the bootstrap test so far.
To run bootstrap only, use:
node ./node_modules/mocha/bin/mocha test/bootstrap.test.js

I have tested quite extensively on a project I'm using this for, but the test output
produced in swagger/swagger.json by the bootstrap test is OK, and has been
tested against:

http://editor.swagger.io
redocly.github.io/redoc

Will try it out today and wait for the tests so we know how to release this, in case of any breaking changes

I was having problems with the original branch with sails 1.2.3. None of the blueprint rest endpoints was documented.
With this fork, everything works like a charm so THANKS!
I can't wait to see this merged!

Will try looking at this coming weekend so we can merge it in

Thanks for the feedback @enricodeleo. As I mentioned previously, I've not had time to work on the automated tests. But I will make sure I contribute quickly if other issues found (and I can help!) - I've been using myself for quite some time.

:tada: This issue has been resolved in version 3.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Intermittently start streaming fails and stream status gives an error

🐞 Bug Report
device-usb-camera
Is this a regression?
No
Description and Minimal Reproduction [REQUIRED]
After executing start streaming api with valid inputs, intermittently stream status gives an error (verified using get stream status api)
🔥 Exception or Error
"Error": "Failed Finish FFMPEG ([-nostats -loglevel 0 -y -input_format yuyv422 -s 640x480 -i /dev/video1 -aspect 4:3 -vcodec mpeg4 -qscale 5 -f rtsp -hls_list_size 0 rtsp://localhost:8554/stream/UVC_Camera_046d_0825-F410BE50]) with exit status 1 message
🌍  Your Environment
Deployment Environment:
EdgeX Version [REQUIRED]:

This is happening on Logitech C270 camera

Make sure passing bad parameters result in error returned to Start streaming. May be related to #23

Actually the original message says with valid inputs. More information is required though @vyshali-chitikeshi .

Issue reproducible with images on 10/27/22.
Intermittently start streaming fails even with valid inputs.
Here are input parameters given for starting stream:
{
"StartStreaming": {
"InputImageSize": "640x480",
"InputPixelFormat": "YUYV 4:2:2",
"OutputVideoQuality": "5",
"OutputAspect": "4:3",
"OutputVideoCodec": "mpeg4"
}
}
Below is the error in streaming status:
{
"apiVersion": "v2",
"statusCode": 200,
"event": {
"apiVersion": "v2",
"id": "bb6d9973-0345-4e0c-b2a0-2df5327c7022",
"deviceName": "UVC_Camera_046d_0825-F410BE50",
"profileName": "USB-Camera-General",
"sourceName": "StreamingStatus",
"origin":<PHONE_NUMBER>260786565,
"readings": [
{
"id": "c74430b0-2849-482e-9ca5-2d6f5a78807b",
"origin":<PHONE_NUMBER>260786565,
"deviceName": "UVC_Camera_046d_0825-F410BE50",
"resourceName": "StreamingStatus",
"profileName": "USB-Camera-General",
"valueType": "Object",
"value": "",
"objectValue": {
"Error": "Failed Finish FFMPEG ([-nostats -loglevel 0 -y -input_format yuyv422 -s 640x480 -i /dev/video0 -aspect 4:3 -vcodec mpeg4 -qscale 5 -f rtsp -hls_list_size 0 rtsp://localhost:8554/stream/UVC_Camera_046d_0825-F410BE50]) with exit status 1 message  ",
"InputFps": "",
"InputImageSize": "640x480",
"IsStreaming": false,
"OutputAspect": "4:3",
"OutputFps": "",
"OutputFrames": "",
"OutputImageSize": "",
"OutputVideoQuality": "5"
}
}
]
}
}
Below is the one of way to replicate the issue:

Just after setting up the stack, start streaming with valid inputs
Check stream status- 'Is streaming' set to true without any error message
Stop stream
Check stream status- 'Is streaming' set to false
start stream with invalid inputs - for e.g. with  "OutputVideoCodec": "mpeg45678"
Check stream status- check 'is streaming' set to false with error message
Stop stream
Start streaming with valid inputs

Expected result: Streamign should start correctly and 'is streaming' should set to true
actual result: with valid inputs, intermittently streaming not starting and 'is streaming' set to false
some times, just with starting stream(valid inputs) & stopping stream few times causes the problem.

Issue reproducible intermittently only using my camera so far. We tried with other cameras (different fw/driver version) using same code and its not reproducible. Suspecting its something to do with my camera fw/driver version. I will try with other cameras.
For now closing this ticket as its specific to my Logitech C270 camera with driver version 5.13.19


Add a section about Certificate's renewal time calculation

Fixes a bug that is preventing me from merging https://github.com/cert-manager/website/pull/585#issuecomment-854832231. When this page was merged to release-next, it broke the build on master since these new links do not exist yet on /docs. They only exist in /next-docs.
To remediate that, we use a relative path.
cc @irbekrm

Thank you very much for fixing this 🙏🏼 🙏🏼
/approve
/lgtm


Use deterministic randomness in the p2p tests

The p2p tests should use deterministic randomness similar to the chainstate tests. Ideally the chainstate test framework can be reused, see #182 for more details.

This is partially fixed with https://github.com/mintlayer/mintlayer-core/pull/720, but there are more tests that would benefit from randomness. Unfortunately, it isn't easy to fix because these tests use the libtest-mimic library and it isn't trivial to combine it with rstest.


xargs needs "--" argument stopper

xargs needs the "--" argument stopper
$ adb shell which bu
/system/bin/bu
$ adb shell which bu \|xargs --help
Toybox 0.8.6-android multicall binary (see toybox --help)
usage: xargs [-0prt] [-snE STR] COMMAND...
$ adb shell which bu \|xargs -- --help
xargs: exec --help: No such file or directory
$ adb shell which bu | xargs -I{} adb shell {} --help #Ah, finally, using genuine GNU xargs.
#Yes, we could have just done this instead:
$ adb shell bu --help

"Ah, finally, using genuine Gnu". Really? (To do what? It produced no output? Or did it say the second comment line you put there?) If you want to copy GPLv3 binaries onto your personal system, I'm happy to get out of the way of someone who thinks that BSD or MacOS or AIX binaries aren't "genuine" in their contexts.
You just did use -- in xargs: "$ adb shell which bu |xargs -- --help" returning "xargs: exec --help: No such file or directory" is saying it tried to exec --help as a command, because that's the first argument you gave it after you told it to stop parsing arguments with --. (It would also do that at the first unrecognized argument, but in that case the unrecognized argument wouldn't drop out and would be the executable it tried to run.)
I have no idea what you're trying to accomplish, other than to lobby for putting GPLv3 code onto the target. Which you don't need my help with on your own personal system?

I am just trying to run "bu --help" without erasing anything I already wrote. Just adding things to the back.

Toybox does have -- as is mentioned in "toybox --help", it's part of the standard argument parsing in lib/args.c, and thus in most commands?
'''
$ make clean defconfig toybox install_flat PREFIX=$PWD/here
...
$ here/toybox --help | grep '"--"'
The filename "-" means stdin/stdout, and "--" stops argument parsing.
$ here/toybox bu
toybox: Unknown command bu (see "toybox --help")
$ echo $'#!/bin/bash\ntoybox echo -- "$@"' > here/bu
$ chmod +x here/bu
$ echo $'one\ntwo\nthree' | PATH=$PWD/here xargs bu --help
--help one two three
'''
What am I missing here?


Position static disables z-index.

I changed static to absolute and it has the same visual result.

The position is now fixed, is this also ok?


messagePump failed due to client response Error

@PeteRager Have you seen this one?
Message pump error (S30Exception(...), "messagePump failed due to client response error [https://<IP_ADDRESS>/Messages/Aesculus_Downstairs/Retrieve] ClientResponseError Error while executing request: [Content-Length can't be present with Transfer-Encoding:\n\n  b'4B\\r'\n    ^]: error=<class 'aiohttp.client_exceptions.ClientResponseError'>, resp.status=[400], resp.request_info=[RequestInfo(url=URL('https://<IP_ADDRESS>/Messages/Aesculus_Downstairs/Retrieve?Direction=Oldest-to-Newest&MessageCount=10&StartTime=1&LongPollingTimeout=5'), method='GET', headers=<CIMultiDictProxy('Host': '<IP_ADDRESS>', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'User-Agent': 'Python/3.10 aiohttp/3.8.5')>, real_url=URL('https://<IP_ADDRESS>/Messages/Aesculus_Downstairs/Retrieve?Direction=Oldest-to-Newest&MessageCount=10&StartTime=1&LongPollingTimeout=5'))], resp.headers=[None]")
It was working fine for 3 days and suddenly it just started this on both of my S30's. Stopping and starting the Docker container resolved the problem.
EDIT: It appears it was only one S30. It is the one with two zones and this was the primary. Did not see any errors on the secondary but its data did not change so assume that it was not getting data either.

Yes those happen periodically and randomly.  Seem to be more likely on a system that has diagnostics enabled and is connected to the internet.  Solution is to restart the connection.  In rare cases a controller reset may be needed.
Here's where the error is trapped
https://github.com/PeteRager/lennoxs30api/blob/19549dea5ed0ac73679b645bb774bf8f6b57905e/lennoxs30api/s30exception.py#L56
https://github.com/PeteRager/lennoxs30/blob/25ce86f288fa4b94aa6096136efd35039467186d/custom_components/lennoxs30/__init__.py#L950
https://github.com/PeteRager/lennoxs30api/blob/19549dea5ed0ac73679b645bb774bf8f6b57905e/lennoxs30api/s30api_async.py#L715

OK. Thanks for the info. I guess I will need to add some logic for that error and do a shutdown and restart.
FYI my system is locally connected and diagnostics is off.

Being a neophyte how would you suggest I trap and recover from this? How do I see what code is delivered within the 'e' error and I know I should call a shutdown but how best to restart?
async def message_pump_task(s30api: s30api_async) -> None:
    global running

    try:
        # Login and establish connection
        await s30api.serverConnect()
        # For each S30 found, initiate the data subscriptions.
        for lsystem in s30api.system_list:
            await s30api.subscribe(lsystem)
    # Catch errors and exit this task.
    except S30Exception as e:
        sys.stderr.write("Failed to connect error " + str(e) + "\n")
        return
    while running:
        # Checks for new messages and processes them which may update the state of zones, etc.
        try:
            await s30api.messagePump()
            await asyncio.sleep(1)
        # Intermittent errors due to Lennox servers, etc, may occur, log and keep pumping.
        except S30Exception as e:
            sys.stderr.write("Message pump error " + str(e) + "\n")
    else:
        await s30api.shutdown()
        sys.stderr.write("shutdown\n")

In the exception:
if e.code == ?:
    await s30api.shutdown()

then what do I call here? just a await s30api.serverConnect() or do I need to call this routine again to get the subscribe working?

That's a good question.  The HASS integration calls serverconnect then reestablishes the subscriptions.
https://github.com/PeteRager/lennoxs30/blob/25ce86f288fa4b94aa6096136efd35039467186d/custom_components/lennoxs30/__init__.py#L784

Hah. In the HASS message pump I find this:
Since the S30 will close connections and kill the subscription periodically, these errors are expected.  Log as warnings
So this should be expected after so many hours I guess.
And the recovery does need a resubscription based on what I see in the HASS code.  So my question is more of a python question I think.
I know I need to kill the subscription and restart and subscribe. That would seem to be to recall my message_pump_task above. But I am worried about being recursive.
So in my exception do I:
call a shutdown
then recall the message_pump_task routine
then return to exit the old routine where the new one will take over
or
call a shutdown
then do a connect and subscribe
but if the later will I still be working within the message_pump_task routine and have exception tracking for the next time this occurs or will my subscribes just be rogue?

I think you have a number of options.
a) When your message pump task encounters an exception, have it launch a new message pump task and exit.
b) Put another while running loop around the try: , exit the inner loop with a break; which will then cause existing logic to reconnect to happen
Another consideration is to add a delay before retrying.  What the HASS integration does is immediately tries to reconnect and if that reconnect fails then it delays for 30 seconds and tries again.

I like this:
b) Put another while running loop around the try: , exit the inner loop with a break; which will then cause existing logic to reconnect to happen
But shouldn't I call a shutdown before I call the break?
And I probably need some sort of flag to terminate the mess in case I am not successful in the reconnects like with the delay mentioned. I'll see what I can steal from the HASS code. :-)

You could call disconnect, don't know that it is necessary as you've been disconnected already and are reconnecting immediately. The main purpose of calling disconnect is to cancel the subscription so the internal queues don't overflow.  As a side note, calling disconnect on the S40 (after the april firmware updates) renders the S40 un-connectable.
Basically you want a state machine with two steps:

Connect/Subscribe

When in this state try to connect and subscribe; if that fails; sleep for X seconds and retry indefinitely AND perhaps send yourself a notification after Y attempts .

MessagePump

When in this state pump messages; when an exception occurs go to the Connect/Subscribe state.  When a shutdown occurs got to third state

Shutdown

Shutdown the connection; exit the task.

OK. I'll see if I can code that up.

@PeteRager
Does this look reasonable to you? I will have to run it for 36 hours before I know if the error trap is the right one and it behaves properly.
async def message_pump_task(s30api: s30api_async) -> None:
    global running
    connected = True
    retries = 0
    while connected:
        if retries > 10:
            sys.stderr.write("Retries exceeded. Shutting down.\n")
            running = False
            break;
        try:
            # Login and establish connection
            await s30api.serverConnect()
            # For each S30 found, initiate the data subscriptions.
            for lsystem in s30api.system_list:
                await s30api.subscribe(lsystem)
        # Catch errors and exit this task.
        except S30Exception as e:
            sys.stderr.write("Failed to connect error " + str(e) + "\n")
            return
        while running:
            # Checks for new messages and processes them which may update the state of zones, etc.
            try:
                await s30api.messagePump()
                await asyncio.sleep(1)
            # Intermittent errors due to Lennox servers, etc, may occur, log and keep pumping.
            except S30Exception as e:
                sys.stderr.write("Message pump error " + str(e) + "\n")
                retries += 1
                if e.status == 400:
                    await s30api.shutdown()
                    await asyncio.sleep(10)
                    break
            retries = 0
        else:
            connected = False
            await s30api.shutdown()
            sys.stderr.write("shutdown\n")
    else:
        running = False

Well I tried various logic streams and never got a successful trap. I have now realized that you cannot depend on metrics.last_receive_time to stay the same or even vary when metrics.message_count.
So I have now moved to adding and resetting a simple counter when the metrics.message_count is the same. After about 1 minute of that not changing, I decide to take action and reset the connection to the S30.
The last test I did where I had a small flaw in my code took 3 days to reach my threshold. So it takes a bit of time for each test cycle.
In the mean time the Grafana dashboard is fully functional.

Making progress and as reported the test interval is a killer. I tried forcing both logouts and disconnects programmatically but they are not the same as when the device terminates a session.
I think I have finally created a solution that definately responds to the disconnects. I may still have some work to do on when it will not communicate after a lengthy session of communications, but that is a rare bird I have only seen once before.
An interesting aspect is when you login again after a device logout, the message count continues from where it was before the disconnection:
{"log":"INFO:20230926082210 system=Aesculus_Downstairs message_count = 6355 last_receive_time = 2023-09-26 08:21:49.216600+00:00\n","stream":"stderr","time":"2023-09-26T08:22:10.26021364Z"}
{"log":"INFO:Message pump error - (S30Exception(...), 'messagePump failed due Server Disconnected [https://<IP_ADDRESS>/Messages/Aesculus_Downstairs/Retrieve]')\n","stream":"stderr","time":"2023-09-26T08:22:36.586789433Z"}
{"log":"\n","stream":"stderr","time":"2023-09-26T08:22:36.586847698Z"}
{"log":"INFO:Trying to connect to Aesculus_Downstairs\n","stream":"stderr","time":"2023-09-26T08:22:36.586875238Z"}
{"log":"\n","stream":"stderr","time":"2023-09-26T08:22:36.586899305Z"}
{"log":"INFO:Updating lennox_home homeIdx [0 homeId [local] homeName [local]\n","stream":"stderr","time":"2023-09-26T08:22:36.93679041Z"}
{"log":"INFO:Update lennox_system idx [0] sysId [LCC]\n","stream":"stderr","time":"2023-09-26T08:22:36.9368483Z"}
{"log":"INFO:login Success homes [1] systems [1]\n","stream":"stderr","time":"2023-09-26T08:22:36.936985662Z"}
{"log":"INFO:20230926082310 system=Aesculus_Downstairs message_count = 6370 last_receive_time = 2023-09-26 08:23:08.695924+00:00\n","stream":"stderr","time":"2023-09-26T08:23:10.422126781Z"}

Those counters are tracked in the API.  If you want to reset them, there is a reset method you can call
https://github.com/PeteRager/lennoxs30api/blob/19549dea5ed0ac73679b645bb774bf8f6b57905e/lennoxs30api/metrics.py#L9
The way I tackled this in the API and HA integration was by using PyTest and then injecting the errors and looking at the results.
https://github.com/PeteRager/lennoxs30api/blob/19549dea5ed0ac73679b645bb774bf8f6b57905e/tests/test_receive_errors.py#L19

Thanks for the extra info. I think I am OK now for my two scenarios. Any other situations I should expect and trap?
I probably won't bother to reset the counter, I just thought it was interesting that it did not reset after a new login, but that is the difference I guess between being logged out vs terminating the connection.

Update: For the past week my system has been running pretty reliably. Its reset itself 3 times (twice for duplication of message count and once when a system stopped communicating). Its a hack code but I think I will probably just tidy it up a bit and then run it for a number of months before doing anything more to it.


Shell agent

allow the host of dispatcher to inject their own AppAgentProvider.
Create a shell app agent and move the shell related commands (and the opaque shell settings) to the shell
Refactor the enable/disabled state to the AppAgentManager.  The session now stores the "overrides" for enable/disable on session start.

@robgruen Just FYI.


Doc: link to latest doc is broken

Link points to http://gatling.io/#/docs while doc is now located at http://gatling.io/#/resources/documentation.
@notdryft I'm going to directly replace. I'll let you take care of the long term solution.

@notdryft BTW, why use an absolute url for the link?

@notdryft I've fixed the deployed version, but don't know where the source is.


ETCDCTL TLS/SSL

I have the following in my cloud config after successfully deploying TLS/SSL for ETCD:
  - path: /etc/environment
    permissions: 0644
    content: |
      ETCDCTL_CA_FILE=/home/core/.ssl/certs/ca-cert.pem
      ETCDCTL_CERT_FILE=/home/core/.ssl/certs/cert.pem
      ETCDCTL_KEY_FILE=/home/core/.ssl/certs/key.pem
      ETCDCTL_ENDPOINT=https://<IP_ADDRESS>:4001

But still I have to provide ETCD client the following:
etcdctl --endpoint=https://<IP_ADDRESS>:4001 --ca-file=ca.pem --cert-file=cert.pem --key-file=key.pem --no-sync cluster-health

or I get the following error:
cluster may be unhealthy: failed to list members
Error:  client: etcd cluster is unavailable or misconfigured
error #0: malformed HTTP response "\x15\x03\x01\x00\x02\x02"
error #1: dial tcp <IP_ADDRESS>:2379: getsockopt: connection refused

It appears the environment variables for core user aren't being set.

I do not quite understand this issue. Did you set the environment variable for the user that ran the etcdctl command? I suspect that the environment variable is not set correctly.
Can you try
ETCDCTL_ENDPOINT=https://<IP_ADDRESS>:4001 [other envs] ./etcdctl --endpoint=...

@xiang90 what is the recommended way of having environment variables permanently set for a users session in CoreOS.
most solutions I have seen recommend this, is there an alternative - http://stackoverflow.com/questions/30596866/how-can-i-customize-bashrc-bash-profile-or-profile-on-a-coreos-installation

@vmatekole If it is a CoreOS related question, you should open an issue here https://github.com/coreos/bugs/issues. There are more eyes and experts watching that repo. It would also make the issue more searchable for future reference.

@xiang90 Thanks for the tip but I think I found the answer - https://github.com/wiliamsouza/marlito/blob/develop/user-data.sample#L36-L42

Specifically, this is the correct method:
 - path: /etc/profile.d/01-etcd.sh
    permissions: 0644
    owner: root
    content: |
      export ETCDCTL_CA_FILE=/home/core/.ssl/certs/ca-cert.pem
      export ETCDCTL_CERT_FILE=/home/core/.ssl/certs/cert.pem
      export ETCDCTL_KEY_FILE=/home/core/.ssl/certs/key.pem
      export ETCDCTL_ENDPOINT=https://<IP_ADDRESS>:4001


gardener-apiserver: Fix the kubelet version constraint validation to cover the Shoot K8s version update

How to categorize this PR?

/area quality
/kind bug
What this PR does / why we need it:
In https://github.com/gardener/gardener/pull/7265 I missed the following case:

Create K8s 1.25 Shoot with machine image version with containerd < 1.6.0<EMAIL_ADDRESS>

Update the Shoot to K8s 1.26

Although the machine image has the proper kubeletVersionConstraint in the CloudProfile
apiVersion: core.gardener.cloud/v1beta1
kind: CloudProfile
# ...
spec:
  machineImages:
  - name: gardenlinux
    versions:
    - version: 576.12.0 # comes with<EMAIL_ADDRESS>      kubeletVersionConstraint: "< 1.26"

the update request is not rejected by gardener-apiserver, the Shoot is updated to K8s 1.26 with machine image version that does not support<EMAIL_ADDRESS>(see https://kubernetes.io/blog/2022/12/09/kubernetes-v1-26-release/#cri-v1alpha2-removed).
The reason the validation to work for CREATE request and not to cover the above-described UPDATE request is the early exit  in:
https://github.com/gardener/gardener/blob/56d0d1f4bfca4ec85e44c3e3ed57ef6926710319/plugin/pkg/shoot/validator/admission.go#L1321-L1324
If there is no change to the pool's machine image and arch, the validateMachineImagesConstraints returns nil. However for the  kubelet version constraint validation we need the validation to execute always (not only on machine image change).
Which issue(s) this PR fixes:
See above
Special notes for your reviewer:
N/A
Release note:

gardener-apiserver: The kubelet version constraint validation is now fixed to also cover the Shoot K8s version update. Previously it was possible to update the Shoot K8s version to a new minor version when the Shoot has a worker pool with machine image version which kubeletVersionConstraint does not match the new K8s version.

/assign

/approve


ThingDropdown.js tests

Tests will probably focus on making sure the right functions are called. It would be particularly important to make sure the dropdown doesn't reopen after exiting a modal. I tried that and found it very ugly.

This does not need tests


Update fs2-io to 3.0.6

Updates co.fs2:fs2-io from 3.0.5 to 3.0.6.
GitHub Release Notes - Changelog - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "co.fs2", artifactId = "fs2-io" } ]

labels: library-update, semver-patch

Codecov Report

Merging #526 (e69b070) into master (802be18) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #526   +/-   ##
=======================================
  Coverage   62.54%   62.54%
=======================================
  Files          39       39
  Lines        1303     1303
  Branches        7        7
=======================================
  Hits          815      815
  Misses        488      488

Continue to review full report at Codecov.

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


Fix win.yml

#13782 broke Windows CI but this went unnoticed because GitHub actions does not properly report broken CI configuration.

this is the only way to fix it? can it be fixed in a way that it keeps the original spirit of taking the version from configuration?

@beta-ziliani I have no idea if there could be a better solution and I didn't find anything useful so far. This makes it work. We can improve later if we find a better way to do it.


refactor: remove SendTransfer, require IBC transfers to be initiated with MsgTransfer

Description

closes: #1918

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (see CONTRIBUTING.md)
[x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[x] Code follows the module structure standards.
[x] Wrote unit and integration tests
[x] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[x] Added relevant godoc comments.
[x] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[x] Re-reviewed Files changed in the Github PR explorer
[x] Review Codecov Report in the comment section below once CI passes

Codecov Report

Merging #2446 (7549663) into main (7dcfc2c) will increase coverage by 0.05%.
The diff coverage is 100.00%.

Additional details and impacted files

@@            Coverage Diff             @@
##             main    #2446      +/-   ##
==========================================
+ Coverage   78.63%   78.68%   +0.05%
==========================================
  Files         178      178
  Lines       12354    12343      -11
==========================================
- Hits         9714     9712       -2
+ Misses       2208     2202       -6
+ Partials      432      429       -3

Impacted Files
Coverage Δ

modules/apps/transfer/keeper/relay.go
91.16% <ø> (+2.49%)
:arrow_up:

modules/apps/transfer/keeper/msg_server.go
100.00% <100.00%> (ø)


Draft: Port the all-clusters-app to the Open IoT SDK and run certificate test suite on FVP

Port the all-clusters-app to the Open IoT SDK and run certificate test suite on FVP

@chrisswinchatt-arm Can we exclude the certificate test suite from this PR? There will be more clear to review only all-cluster-app changes.


Fixes notification events that evaluate to multi character strings.

Fixes #75 .
This should do the trick. I ran prettier and tslint on my commit which sort of mangled some spacing and imports. I can revert those chunks but then Husky won't allow me to commit.

This fix will not work actually, I still had the one test with true, false and null focused.
I'm thinking that whenever an object is passed to cold(marbles, events, error?), the events object should just be passed through to TestScheduler.expectObservable(obs$).toBe(marbles, events, error?) without alteration. That's the way jasmine-marbles does it, and it works fine with jasmine. But that would require a complete rewrite of Marblizer.
I'll look into this a bit more.

Actually it is kind of already done this way.
I just didn't consider primitives (which in this case should be treated as objects).
So essentially the check should be whether there is something that is not a single char among the notifications. If so, the whole thing shouldn't be marblized. And no change required in the Marblizer.

That's great news. I reverted my initial fix and implemented a shouldMarblize function which does just that. All tests (also the one I added that broke marblization) run just fine now.

Thank you for pushing changes, I did not have time to look into this more the last few days.
Everything looks good to me!


Keep Getting Index Error

I am trying to apply it to the walls of a simple castle and keep getting this error: I don't understand why I am getting these errors while you have letters like P and F in your sample scene. The castle wall is just another F with more holes.
IndexOutOfRangeException: Index was outside the bounds of the array. FragmentData..ctor (UnityEngine.Mesh mesh) (at Library/PackageCache/com.dgreenheck.openfracture@7edc606bae/Runtime/Scripts/Fragment/FragmentData.cs:114) Fragmenter.Fracture (UnityEngine.GameObject sourceObject, FractureOptions options, UnityEngine.GameObject fragmentTemplate, UnityEngine.Transform parent, System.Boolean saveToDisk, System.String saveFolderPath) (at Library/PackageCache/com.dgreenheck.openfracture@7edc606bae/Runtime/Scripts/Fragment/Fragmenter.cs:32) Fracture.ComputeFracture () (at Library/PackageCache/com.dgreenheck.openfracture@7edc606bae/Runtime/Scripts/Fracture.cs:164) Fracture.OnCollisionEnter (UnityEngine.Collision collision) (at Library/PackageCache/com.dgreenheck.openfracture@7edc606bae/Runtime/Scripts/Fracture.cs:79).
Error is in these lines
// Add mesh vertices
        for (int i = 0; i < positions.Length; i++)
        {
            this.Vertices.Add(new MeshVertex(positions[i], normals[i], uv[i]));
        }

You most likely do not have UV data on your mesh. Placing a breakpoint there should verify.

Yes had a same issue, regenerating UVs in blender (smart UV project) fixed it and now it works perfectly. So even if mesh doesnt use material with texture, uvs still needs to be generated.

For anyone else dealing with the same issue, the above solutions did not work for me in a built application.
However going to Project Settings > Player > Optimize Mesh Data and disabling it, fixed it for me.


Update GETTING_STARTED.md

Typo correction. config should be configs

Many thanks!

Hi @bryanyzhu！
First of all, we want to express our gratitude for your significant PR in the mmaction project. Your contribution is highly appreciated, and we are grateful for your efforts in helping improve this open-source project during your personal time. We believe that many developers will benefit from your PR.
We would also like to invite you to join our Special Interest Group (SIG) private channel on Discord, where you can share your experiences, ideas, and build connections with like-minded peers. To join the SIG channel, simply message moderator— OpenMMLab on Discord or briefly share your open-source contributions in the #introductions channel and we will assist you. Look forward to seeing you there! Join us ：https://discord.gg/raweFPmdzG
If you have WeChat，welcome to join our community on WeChat. You can add our assistant ：openmmlabwx. Please add "mmsig + Github ID" as a remark when adding friends：）
Thank you again for your contribution❤


Failed to enable linkerd

Here is the terminal output, along with microk8s and OS info and microk8s.inspect tarball.
$ microk8s.enable linkerd
Enabling Linkerd2
Enabling DNS
Applying manifest
serviceaccount/coredns unchanged
configmap/coredns unchanged
deployment.apps/coredns unchanged
service/kube-dns unchanged
Restarting kubelet
DNS is enabled
/snap/microk8s/671/actions/enable.linkerd.sh: line 24: /var/snap/microk8s/671/bin/linkerd: Permission denied
error: no objects passed to apply
Failed to enable linkerd

$ microk8s.status |grep enabled
dns: enabled
storage: enabled
registry: enabled
dashboard: enabled

$ kubectl config get-contexts
CURRENT   NAME        CLUSTER            AUTHINFO                              NAMESPACE
*   microk8s          microk8s-cluster               admin

$ microk8s.kubectl version
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:32:14Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}

$ uname -a
Linux [...] 5.0.0-21-generic #22-Ubuntu SMP Tue Jul 2 13:27:33 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

inspection-report-20190728_205224.tar.gz

That's strange, it seems like there exist a linkerd file at /var/snap/microk8s/671/bin/.  Can help
me check if linkerd exist in /var/snap/microk8s/671/bin/.  If yes, can you delete it and then enable linkerd again?  You should see that it will download the binary first.

Or do a microk8s.disable linkerd should throw the binary away.

disable / enable again worked..
This is strange cause I did it many times the othere day, the only difference is that this time I also made a reboot in between tentatives...
Anyway, good, thanks.

Still strange... But good that it works now.  Btw linkerd version is still 2.3.0.


DM-39199: Add a note about FITS libraries from Python

as requested by the DM-CCB on RFC-921.

Typo fixed, comment about pyfits removed and wording changed slightly.