Update tests to use Hamcrest matchers instead of JUnit assertions

Pull Request
Apologies for the enormous PR!
Related issue
Fixes #324
What does this PR do?

Converts existing tests to use Hamcrest matchers where possible (it still uses JUnit for assertThrows and assertDoesNotThrow)
Removes some unnecessary casts and other small tweaks to the tests here and there

PR checklist
Please check if your PR fulfills the following requirements:

[x] Does this PR fix an existing issue, or have you listed the changes applied in the PR description (and why they are needed)?
[x] Have you read the contributing guidelines?
[x] Have you made sure that the title is accurate and descriptive of the changes?

Thank you so much for contributing to Meilisearch!

Thanks for the PR @jrhenderson1988 can you check the CI please?

Hi @brunoocasali - I've pushed a new commit fixing some of the tests. However, I'm not able to re-run the build. Would you be able to kick it off again, please?

@brunoocasali Thanks for re-running the build. I've managed to pin down the reason for that last test failure now, so hopefully another build should do the trick. Would you mind kicking another one off, please?

No problem @brunoocasali - happy to help 😄


License Header in OTEL Webserver Modules shows all "Appdynamics" License

Describe your environment
The Header of the OTEL Webserver Module files shows all "Appdynamics License".
See Screenshot at the end
What is the expected behavior?
Should we Change Appdynamics to Opentelemetry or some thing?
What is the actual behavior?
Do not see content from the commercial "upstream" project
Additional context

Hi @kpratyus, please check this with Cisco stakeholders.

Updated the License Information. PR is https://github.com/open-telemetry/opentelemetry-cpp-contrib/pull/233
Hence closing the ticket


Tester doesn't properly set global arguments on command line for Calc

Trying to specify a command line of "e7 -- abc def 1 2 3 --" doesn't set any of the global $0, $1, etc. values.

Actually, there are several (seemingly) unrelated problems, none of them in Tester itself that are causing the problem.


Add systemd integration

What does this PR do?
Add new systemd integration as corecheck to monitor systemd itself and the units it manages.
Related PR in integrations-core with metrics description in `metadata.csv, service checks description, README.md documentation, logs, etc: https://github.com/DataDog/integrations-core/pull/3830
Context information:

The documentation: https://github.com/DataDog/integrations-core/tree/davidb/systemd_v2/systemd
The integration metrics: https://github.com/DataDog/integrations-core/blob/davidb/systemd_v2/systemd/metadata.csv
The service checks: https://github.com/DataDog/integrations-core/blob/davidb/systemd_v2/systemd/assets/service_checks.json

Motivation
This integration has been requested by users.
Additional Notes
/
TODO
[X] Check it works debian
[ ] Check it works ubuntu
[ ] Check it works CentOS, etc...

General question: should we store the example yaml file in this repo, since I believe the example yaml files in integrations-core are used to populate the integration docs on https://docs.datadoghq.com?

At the moment, the conf.yaml.example files are not used to populate docs.


Advanced plugin interface

Types of changes

[ ] Enhancement (project structure, spelling, grammar, formatting)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

A description of the changes proposed in the Pull Request

Advanced plugin interface

not actual since fixed by #527


PriorityGrid: flattening, priority and hierarchy sorting, nullable types, search bar hiding and fixes

I know this is a huge PR making it harder to review but still wanted to contribute the changes in one row because there is some overlapping stuff.
This PR introduces the following new features to the PropertyGrid:

Unknown type flattening
Default sorting mode
HierarchyLevelAttribute added
Sorting by hierarchy level
PriorityAttribute added #885
Sorting by priority #885
NecessaryAttribute added
Hide Search bar #497 (1)
Nullable types support #819
Support for overriding GroupHeaderTemplate and GroupHeaderMargin

This PR changes the following:

TextBox instead of TextBlock as title element
Enum type editor now uses and favors existing enum entry descriptions.  Note: I took this code from another PR or commit somewhere here in this Github repo. I cannot remember where exactly and couldn't find the original posting, so please adjust if you know who provided this code originally. But it was such a useful contribution that I needed to include it (though slightly modified).

This PR fixes the following bugs:

Search is not case insensitive #828
Clients can now subclass PropertyGrid #812

Unknown type flattening
Types which do not have a known type editor are usually shown as a ReadOnlyTextBox which is inappropriate for almost any complex type. One could write an own custom editor but that's not always desired or possible.
This PR introduces flattening of "unknown" types (unknown as in no type editor available).
Child type properties are browsed and flattened into the highest level as if their properties belonged in the class that is currently handled by the PropertyGrid.
Furthermore some flattening options are available to decide in which category to place the flattened properties and how to name that category.
Flattening options:

Off No flattening applied. Same behavior as before. [Default]
Uncategorized: properties are categorized into the default category
ParentCategory: child properties are placed into the category assigned to the parent property (i.e. via CategoryAttribute)
ParentNameAsCategory: child properties are placed into a category named after the parent

While the flattening is off by default to keep the default behavior, the demo has been extented to apply flattening.
Here is the result of Flattening.ParentNameAsCategory with the PropertyGrid demo model.

Hide Search Bar
This Introduces a dependency property ShowSearchBar in order to hide the search bar.
The search bar XAML mark up has been updated to adjust the visibility accordingly.
Furthermore, multibinding is used to collapse the dockpanel visbility if the search bar and the sort buttons are both hidden.
To support that the BooleanArr2VisibilityConverter has been extented to optionally return a visible state if any of the bindings are visible (instead of all). For that the ConverterParameter can pass "UseAny"
Only show sort buttons, i.e. ShowSearchBar="False" ShowSortButton="True"

Collapsed Dock Panel if all hidden, i.e. ShowSearchBar="False" ShowSortButton="False"

Default Sorting Mode
This Introduces a dependency property DefaultSorting and enum SortingMode in order to set the default sorting mode.
Use DefaultSorting="Category"
SortingMode options

Category
Name
HierarchyLevel

Sorting by hierarchy level
This is a flattening related sorting mode. If an unknown type is flattened, its properties are one hierarchy level deeper.

The sorting mode allows to have deeper level properties be ordered after all higher level properties.

The hierarchy level can be explicitly set by using the added HierarchyLevelAttribute on any property. The input value is an integer describing the hierarchy level of that property.
Sorting by priority
This uses the added PriorityAttribute to allow explicit order of property items.
By default all items are assumed to have a priority of 0 and will be sorted just as before by the main sorting modes (category, name, hierarchy level).
By adding a [Priority(1)] to a property, this will order that property to the top of the sorting chain, before all properties with a priority < 1.

TextBox instead of TextBlock as Title
The PropertyGridBaseStyle has been changed to use a TextBox instead of a TextBlock for the Title element.
This allows to support the hc:TitleElement.Necessary attached property. An according dependency property for IsNecessary was added to the PropertyItem which value is resolved by the PropertyResolver using the added NecessaryAttribute.
So by adding [Necessary] to a property, this will show the required field symbol. Here is an example:

I noticed that your previous pr contained the following string: 'Copyright (C) Xion GmbH', so I would like to ask is there a copyright problem with these code?

This was the default template of the company I am working at, whenever I create a new file this header is auto-added. Being in pandemic home office, this also applies at home. I simply forgot to remove them from the aforementioned files for the pr.
None of this code is related in any way to the company I work at.
I am personally contributing to this public repo of HandyControl, with useful general purpose features.
None of the code in this pr is copyrighted and can be happily added to HandyControl
I currently reference my fork branch at work as I use it in production for one of our inhouse tools. We have a lot more features and extensions implemented at work for the PropertyGrid though, which I cannot share of course because that is property of the company I work at.

Is there any reason to not merge this? @NaBian

PR Issue. Button Colour Mismatch on Dark Theme:


Temporal inputs are 2px taller than other textual inputs in Chrome

In Chrome, <input class="form-control">s with a type of datetime-local, date, month, week, or time are 40px tall, but <input type="text" class="form-control"> (and similar) are 38px tall. They ought to all match.
Looks like the temporal inputs use Flexbox internally; that's likely a factor.

To be clear, this is NOT causally related to #17308.

Is there any update on this?

@alex321 https://twitter.com/slicknet/status/782274190451671040

Same here !!!!!
On Oct 31, 2016 9:49 PM, "Chris Rebert"<EMAIL_ADDRESS>wrote:

@alex321 https://github.com/alex321 https://twitter.com/slicknet/
status/782274190451671040
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/twbs/bootstrap/issues/18842#issuecomment-257349000,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEeuOi8lGVdUffVn56By4CPREt7SzodFks5q5hwigaJpZM4HCLGQ
.

can't find the temporal input types in the new docs except for the reboot page
so is this stil an issue?

yes, issue is still present for date, time, datetime-local, month and week in both Chrome and Edge (possibly others on MacOS and mobile, not tested). this is due to browsers' user agent stylesheet assigning subtly different padding/margin to these types of inputs. may explore if these can be somehow normalised.
(and as an aside, <input type="color">  and <input type="range"> are of course totally bonkers)

turns out that only giving all inputs an explicit height (e.g. height:2.4rem for the regular sized inputs) can guarantee that the temporal inputs are the same height as non-temporal ones. which is a pain since this will then need to be done for small and large variants as well, and it subtly changes the overall vertical spacing and alignment of the user-entered value etc.

Relevant: https://bugs.chromium.org/p/chromium/issues/detail?id=417606
It's unfortunately WontFix (and very old), but there's a solution:
::-webkit-inner-spin-button { display: none; }

It's a terrible solution on its own when you think about how critical that spinner is for input[type="number"], but when you target the inputs where it's not quite as helpful, it turns out to be pretty great:
input[type="date"],
input[type="datetime-local"],
input[type="time"],
input[type="month"],
input[type="week"] {
  &::-webkit-inner-spin-button {
	display: none;
  }
}

Before - http://jsbin.com/kigayoyeja/1/edit?html,css,output
After - http://jsbin.com/hifamocuwi/1/edit?html,css,output
Did I miss any input types?

inline css isn't great but I've done this incase it's any use to anyone:
input[type="date"],
input[type="datetime-local"],
input[type="time"],
input[type="month"],
input[type="week"] {
    height: 38px;
}


Torch script support for Compose, RandomApply and others

🚀 Feature
Idea is to make sure that a compose of transforms could be scripted. For example, the following should work
transforms = T.Compose([
    T.RandomResizedCrop(...),
    T.Random.RandomHorizontalFlip(),
    T.Normalize(...)
])

transforms = torch.jit.scrtipt(transforms)

img = torch.Tensor(...)
out_img = transforms(img)

Transforms to support:

[ ] Normalize
[ ] Compose
[ ] RandomApply

cc @vfdev-5

We have to go progressively with that. Let's suggest to the user to use torch.nn.Sequential in order to torch jit script transformations.

What is the difference between "Scripted transforms" and the transforms that are "composed". The only difference as per the docs is that scripted transforms support only Torch tensors. Is there any other difference or benefit of using one over the other?

@bgswaroop scripted transforms allow you to use them in C++ via torchscript, while other transforms don't and you'd have to re-implement them in C++ (by for example using OpenCV)


SelectDropdown: Not focusing on selection

The SelectDropdown component does not refocus after an item has been selected. It works if using a keyboard, but not when using a mouse.

It looks like it may be a downshift thing. The useSelect example has the same behaviours:
https://www.downshift-js.com/use-select

It looks like it may be a downshift thing. The useSelect example has the same behaviours:
https://www.downshift-js.com/use-select


Did the following changes.

Squash your commits into one please. Also what did you fix?

Also resolve your merge conflicts

I introduced slow scrolling in the web page. Also, i introduced the part like when you click on any link in the menu in the phone, the menu drawer closes. Plus I introduced a sleek scroll bar. And also the address bar color changes when you view it on a phone having android 5.0+. Also in iOS.

Resolve merge conflicts.

Closing this as No response from 2 days. Please reopen when you want.


Write to STDERR, not STDOUT (for webpack --json > stats.json)

Operating System: macOS 10.13.6
Node Version: v8.7.0
NPM Version: 5.4.2
webpack Version: 4.12.0
webpack-dev-server Version: N/A

[ ] This is a bug
[x] This is a feature request
[x] This is a modification request

Code
$ node -e '"log,debug,info,warn,error".split(",").forEach(level =>  require("webpack-log")({ name: "test" })[level](level))' > /dev/null
⚠ ｢test｣: warn
✖ ｢test｣: error

Expected Behavior
Always write to STDERR, or at least configurable from caller.
Actual Behavior
Only warn and error are written to STDERR, others are written to STDOUT.
For Features; What is the motivation and/or use-case for the feature?
webpack --json > stats.json will cause corrupted JSON if log written to STDOUT.
https://github.com/s-panferov/awesome-typescript-loader/issues/461

STDERR foe errors, why we should write information in error buffer? Please provide reproducible test repo where JSON is broken

Created test repo:
https://github.com/ypresto/webpack-log-stdout-json-issue

See also: https://github.com/webpack/webpack/issues/1904 and https://github.com/johnagan/clean-webpack-plugin/issues/11

Solutions:

Write always in STDERR (but other tools/plugins write in STDOUT)
Allow to defined env variable to change behaviour
Check if user want to write in stdout write logs in STDERR

Any feedback

https://github.com/webpack/webpack/issues/1904#issuecomment-172762537

loaders and plugins should not log to the console. Loaders can log errors and warnings with this.emitWarning and this.emitError. Plugins can add them to compilation.warnings and compilation.errors.

According to this, the messages written to webpack-log is kind message (like progress, debug info, etc) for user and is not formal output of webpack plugins or loaders. So IMO they should always be written to STDERR.

@ypresto hm, can we find something same inside webpack?

Write always in STDERR (but other tools/plugins write in STDOUT)

I think this is the proper way to log outside of webpack, which this plugin aims to do. Otherwise I think you should use webpack's this.emitWarning, this.emitError, compilation.warnings or compilation.errors.

hm, can we find something same inside webpack?

@evilebottnawi Could you be more specific what you are asking?

@chrisblossom we can look logic for ProgressPlugin and determinate where he writes output and use this logic too


OpsGenie Alerter

This PR adds a simple OpsGenie Alerter in modules/opsgenie.py. It is a simple alerter which if matched by a rule sends an https request to OpsGenie's API to create an alert which can be directed at recipients for notification. Our use case is roughly; a log message that we don't like appears in Elasticsearch, notify team X that there might be an issue to investigate.
I think I updated the documentation in the relevant places but I might have missed something.
I've primarily been testing with a frequency rule, however once we get it deployed to staging more might find issues but the OGAlerter is pretty stupid simple. I did create a couple unit tests for the OpsGenieAlerter, however my python chops aren't what they used to be so critique welcome.
tox passes all tests on my end :four_leaf_clover:

@Qmando thank you for the feedback. I don't disagree on any of the issues you brought up, so I'll push a fix.

@Qmando I think I've found a good exception raising path for the OpsGenie Alert. This is what the output looks like when a bogus google.com path is given as the (now optional)opsgenie_addr field:
python -m elastalert.elastalert --verbose --rule lytics_rules/freq_rule.yaml
ERROR:root:Error querying for last run: TransportError(404, u'IndexMissingException[[elastalert_status] missing]')
INFO:urllib3.connectionpool:Starting new HTTP connection (1): <IP_ADDRESS>
INFO:elastalert:Queried rule elastalerttestrule from 9-8 14:32 PDT to 9-8 15:17 PDT: 900 hits
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): google.com
INFO:elastalert:Error response from https://google.com/hihi
 API Response: <Response [404]>
ERROR:root:Error while running alert opsgenie: Error sending alert: 404 Client Error: Not Found

This should appear if there's an issue of some connection issue with the request being sent. I think it strikes a decent balance of being informative without too much over-logging.
Let me know what you think.

Looks good. I changed the style on a few lines and merged it in here: #244


added support and tests for mq_setattr

now finally the PR for mq_setattr.
On Linux only O_NONBLOCK can be set.
If the PR is ok I'll add convenience methods for setting and removing that flag to make it clearer and easier.

looks like it fails on a 32 machine as I am casting something to i64 (long in C).
I'll have a look how to fix this.

Now it builds on 32bit systems as well.
Next steps:

adding convenience methods for setting O_NONBLOCK that are easier to use than mq_setattr
adding documentation

Merged, thanks! fad667e4e2c72889b55bcc7a21d87fa72218e101


Add custom file-based resource paths

tl;dr
Enables custom resource paths that users can setup and use themselves.
# Adds a resource path
FileAccess.add_resource_path("home", "/home/myself")
# (with or without the ://, it adds it automatically)
FileAccess.add_resource_path("home://", "/home/myself")
# Removes a resource path
FileAccess.remove_resource_path("home")
# Checks if the protocol is supported
FileAccess.is_resource_path("home")
# Returns `/home/myself` for instance here
FileAccess.get_resource_path("home")
# Returns a dictionary with all the resource paths set
FileAccess.get_resource_paths()

Todo

[ ] Write the documentation

Fixes

Fix (the file-based part) godotengine/godot-proposals#6307

This is big step (even not directly) towards global addons 🥳

This is big step (even not directly) towards global addons 🥳

That's the goal!

Why do is_resource_path and get_resource_path(s) fail for res and user? I understand that adding/removing them is dangerous, so those erroring makes sense.
But the current handling of the getter methods are just exposing an implementation detail to the user. They should instead be a consistent API for "every virtual path *:// managed by Godot"...

But the current handling of the getter methods are just exposing an implementation detail to the user.

No, user:// and res:// are special cases handled differently. This PR is not about exposing an implementation detail, it's a feature in itself.

the pr is good.
i used the pr, i think will need add prefix_dir options in "EditorFileDialog" and "FileDialog"

@adamscott Do you think it's possible to add memory based file system to this PR? A simple VFS so files can be used directly from memory like "memory://my_scene.tscn"

@adamscott Do you think it's possible to add memory based file system to this PR? A simple VFS so files can be used directly from memory like "memory://my_scene.tscn"

This clearly isn't in the scope of my PR.

@adamscott Do you think it's possible to add memory based file system to this PR? A simple VFS so files can be used directly from memory like "memory://my_scene.tscn"

This? #98287


Add a readme to the item_template mod

that way you can know whats going on 😄

Is on hold for awhile, Item_Templates is not setup in a way that a readme can even be written for it.

Change of Plans, this mod is now getting a full redo to bring it up to line with something that isn't horrible, the instructions will be written for that version of the mod!


[Snyk] Upgrade json-schema-to-ts from 2.7.2 to 2.8.0

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade json-schema-to-ts from 2.7.2 to 2.8.0.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 2 versions ahead of your current version.
The recommended version was released a month ago, on 2023-04-17.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
101

Relevant Lines:
101

💛  - Coveralls


Add Kotlin sample

Adds a Kotlin sample.
Closes #1147

I rebased this PR so that it (hopefully) passes travis and also added some coroutines exemples there => https://github.com/apollographql/apollo-android/pull/1200

@MarkNjunge @martinbonnin Any news on this merge-request? Is the Kotlin coroutine example stable enough to use as an example on how to integrate Apollo that way instead of with callbacks?
One small feedback after I started browsing the changed files:
In the build.gradle the dependencies are listed e.g. as implementation dep.apolloCoroutinesSupport. I've found that a bit confusing since I couldn't find where you define the dep.?
Since it's a sample to learn from, maybe the dependencies could be listed directly? I've managed to guess them comparing the names with the apollo bintray, but adds another layer to be able to follow the example.
Suggestion to replace all dependency lines and only keep the version as variable e.g.
implementation "com.apollographql.apollo:apollo-coroutine-support:${versions.apollo}"

@friederikewild The kotlin sample app is merged. See https://github.com/apollographql/apollo-android/pull/1200. We should actually close this PR (@sav007, are you around?)
Regarding the dep.XYZ dependencies, you can find them there: https://github.com/apollographql/apollo-android/blob/master/gradle/dependencies.gradle
It allows to factor the declarations so that all modules dependencies are kept in sync. It's true it's another level of indirection but it's a good practice in a multi-modules project.

@martinbonnin Great that it's already merged! I also came across the other PR after my question, seems this one just wasn't automatically closed along.
Also, thanks for the link to the dependencies - seems I didn't navigate up enough in the project when looking for it yesterday. You are right, it does make sense for this kind of setup. Maybe in the future, the main readme could be extended to also state the newer dependency options (for coroutines) on there.


Screenshots.

What do you want
Screenshots.
Why
Kinda the most basic thing to add to a software repo...
Implementation hints
Take screenshots. Commit. Push. Add to repo description,

@Falkgaard https://github.com/Eris9/DisCli/tree/main/.github/images

it is already there if you bothered to look


cmd/go: cgo flags drops quotes.

There doesn't seem to be a way to pass a quoted value with cgo flags.
package libsass

/*
#cgo CFLAGS: -D VERSION="3.2.4-0ae11a4"

char* version(void) {
  return VERSION;
}
*/
import "C"

func Version() string {
    return C.GoString(C.version())
}

$ go build -x -v
WORK=/tmp/go-build030587731
test/cgoflag
mkdir -p $WORK/test/cgoflag/_obj/
mkdir -p $WORK/test/cgoflag/_obj/exe/
cd /home/ome/go/src/test/cgoflag
CGO_LDFLAGS="-g" "-O2" /usr/local/go/pkg/tool/linux_amd64/cgo -objdir $WORK/test/cgoflag/_obj/ -importpath test/cgoflag -- -I $WORK/test/cgoflag/_obj/ -D VERSION=3.2.4-0ae11a4 main.go
# test/cgoflag
./main.go: In function 'version':
<command-line>:0:9: error: too many decimal points in number
./main.go:8:10: note: in expansion of macro 'VERSION'
   return VERSION;
          ^
<command-line>:0:15: error: invalid suffix "ae11a4" on integer constant
./main.go:8:10: note: in expansion of macro 'VERSION'
   return VERSION;

I have also tried '"3.2.4-0ae11a4"' and some other variations, they all yield:
can't load package: package test/cgoflag: /home/ome/go/src/test/cgoflag/main.go: malformed #cgo argument: VERSION="3.2.4-0ae11a4"

I'm running into this same issue.

I had the same problem, When I try to use quickjs
quickjs has a macro CONFIG_VERSION is a string, Using the #cgo directives is always wrong, I made a successful attempt with the CGO_CFLAGS environment, but this may not be a good approach
CGO_CFLAGS="-DCONFIG_VERSION=\"1.0.0\"" go build

@ianlancetaylor Would you accept a fix for this? I would much rather not having to use a bash/makefile to just pass a CFLAG.

I don't know what the fix would look like, but, yes, in principle, a fix for this would be fine (for the 1.17 release).

I believe the fix is simply the removal of an unexpected check in go/build.expandSrcDir. safeCgoName fails for escaped strings as commented, but I am not sure why it is used on args that don't have ${SRCDIR}?
https://github.com/golang/go/blob/bc7e4d9257693413d57ad467814ab71f1585a155/src/go/build/build.go#L1690-L1699
It will be a very minimal change:
 func expandSrcDir(str string, srcdir string) (string, bool) {
 	// "\" delimited paths cause safeCgoName to fail
 	// so convert native paths with a different delimiter
 	// to "/" before starting (eg: on windows).
 	srcdir = filepath.ToSlash(srcdir)

 	chunks := strings.Split(str, "${SRCDIR}")
 	if len(chunks) < 2 {
- 		return str, safeCgoName(str)
+		return str, nil
 	}

I believe the bug is in go/build.expandSrcDir, I will investigate.
https://github.com/golang/go/blob/bc7e4d9257693413d57ad467814ab71f1585a155/src/go/build/build.go#L1650-L1660

Okay, it seems like safeCgoName does not allow quote marks, even though the function that splits cflags, splitQuoted, is quotes aware as the name suggests.
The proper solution would be to make safeCgoName quote aware, in that it should only consider a string valid if there is a matching closing quote for any opened?
https://github.com/golang/go/blob/bc7e4d9257693413d57ad467814ab71f1585a155/src/go/build/build.go#L1740-L1759

I think we need a clearer definition of what is safe and what is not.  safeCgoName was originally intended to only allow obviously safe constructs.  We've gotten farther and farther away from that over time.  Permitting pairs of quotation marks seems fairly safe, until we start permitting backslashes.
On the other hand, safeCgoName precedes the code in cmd/go/internal/work/security.go, and perhaps we can delegate to that.  I'm not sure offhand.
The attack we are protecting against is someone who provides a package with a #cgo CFLAGS line that includes arguments that cause arbitrary execution on the machine of the person running go get.

Based on https://github.com/golang/go/commit/dba926d7a37bd6b3d740c132e8d6346214b6355c, I guess " should just go in the safeString and we can call it a day.

cc @rsc

I know that in the past, parentheses have been deemed unsafe, as well. See #23911. I feel like there should be a better way to sanitize these strings. Thoughts?


Revert meta-package rename and fix watchdog command

Ensured no package rename (for now)
Topic should be /tf_watchdog_command and not /tf_watch_dog_command

Also need to change watch_dog to watchdog in buoy_gazebo/src/controllers/ServicesNotImplemented/NoOpController.cpp

Also need to change watch_dog to watchdog in buoy_gazebo/src/controllers/ServicesNotImplemented/NoOpController.cpp

That's already in the mbari_wec_gz PR!


Force bokeh box_zoom to keep aspect of plot

When plotting with geoviews Elements the BoxZoomTool of a bokeh plot should have the match_aspect option enabled.

This was implemented in https://github.com/ioam/geoviews/pull/60, which was merged and is part of the 1.2.0 release.


Create Maven Assembly for Cryodex and binary distribution builds.

This adds a profile, release, that will generate a binary distribution in ZIP and TAR.GZ formats. It includes :

Cryodex.jar
cryodex.bat
cryodex.sh

Cryodex.bat and Cryodex.sh are simple batch files that execute cryodex.  This makes it easier for those that aren't familiar with java to startup cryodex.
Also this bumps the pom version numbers to 4.1.1-SNAPSHOT.  I've noticed that the pom versions aren't being incremented when a new version is done.  Ideally maven would be used to produce the release artificat, and you would increment the pom version when necessary:
mvnw versions:set -DnewVersion=x.x.x
If you want to create a release version:
mvnw versions:set -DnewVersion=4.1.1
mvnw clean install -Drelease
To increment to a new development version after release:
mvnw versions:set -DnewVersion=4.1.2-SNAPSHOT
This pull request also re-arranages the source directory slightly.  It moves it under src/main/java,  this follows the maven standard directory structure and just makes it easier to work with the maven tooling and plugins.  It also allows for the assembly script to be kept in a specified area as well as the bat/sh scripts used during the assembly.
Try this in a seprate branch before merging, as we may need a few interations of this to get it to where you want it for the project in general.

Is this pull request still relevant? It looks to be quite old. Let me know and we can revisit this.

Yeah, it all depends on if you want to get to a point where the build system handles building and assembling a release, instead of tying he release to a particular IDE.   It would allow anybody to build a release even if they used a different IDE, and in case you got fed up working on things. :)

Gotcha. Yeah I currently just do an export to an executable jar. I understand the maven way is prolly much better, I'll make the jump eventually. I just don't know when. Thanks for all the help, keep pushing me to get better. I'll hear it eventually.


Generate ROS 2 Images

What would you like to be added?
Add pipelines that covers ROS 2 distros:

Galactic
Foxy
Humble
Iron

Why is this needed?
It's needed to generate images for Robot Operator.

Available under pipelines/ros2 and dockerfiles/ros2.


Cannot use giscus on my repository

Hi Team, i have followed the self-hosting instruction, and have checked the three demands.

My repo is public:  https://github.com/presentzeng/giscus
The giscus app installed, i can see it in my repo's Github apps
The discussion feature is enabled on my repo

but when i input: presentzeng/giscus, it still shows : Cannot use giscus on this repository. Make sure all of the above criteria has been met.
Could you help me on it, Tks a lot

Where's your deployed instance of the self-hosted giscus application? I can't help you if I can't access it. Make sure you use that instance to input your repo, not on https://giscus.app.
If you are inputting it on https://giscus.app, there's no need to self-host it, but you have to install it on your repository (https://github.com/apps/giscus/installations/new). I just checked and my giscus instance is not installed on your repository.

Hi laymonage, tks for your help, it works now! let me write down my issue in case other users encounter the same.
actually i misunderstood the procedure, i installed it by following the self-hosting procedure

and i thought the config of https://giscus.app/ is also part of self-host, actually it is two different way, So i just have to into: https://github.com/apps/giscus and install the app for my repo, then it will be ok. Again tks laymonage, what a good comment tool!


App failed to deploy (unless I specified env in UI)

I followed the instructions and deployed the app to Bluemix. However, even with defining the creds in the .env file, I couldn't run the app UNTIL I defined the Twitter app creds in the Bluemix UI (Runtime -> Environment Variables -> User Defined). Suggest adding this to the README.

Hey @RogerIBMSnook Thanks for reporting the issue.
Do you think you can write a PR for this?

Fixed in cbc1bb6afc14bbaba6af75a986a68e2de4b7e623. It will be merged to master this week


How to ensure Bot composer bot with Azure function runtime is upgraded from .NET core 3.1

Creating an Empty bot with function app as runtime defaults to .NET core 3.1 and which is now obsolete. How to upgrade the bot target framework
I tried below but it does not work.
1.Opened the solution is Visual studio and updated the target framework as.Net 6.0.
2. Re-opened the bot via bot composer and set the custom runtime to net6.0 in the configure section.
3. The bot throws, and error message is "An error occurred posting activity to the bot. Internal Server Error."
func start --script-root bin\Debug\net6.0

See this related issue: https://github.com/microsoft/BotFramework-Composer/issues/9639. The project needs to update to use a supported runtime.


I can't get the example code to run

I do npm install shoutcast, then I create test.js with this content:
var cast = require('shoutcast');
var station = cast.Station(conf);

http.createServer(function (req, res) {
  station.connect(res, function() {
    console.log("Stream ended?");
  });
}).listen(7000);

station.start();

When I do node ./test.js I get
module.js:338
    throw err;
          ^
Error: Cannot find module 'shoutcast'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:278:25)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/Users/mf/code/shoutcast/server.js:1:74)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)

I tried a different node module and that worked, so I don't think it's anything to do with my paths - could it be that shoutcast-node is using an old way of doing modules or something?

Okay I've hacked about a bit and got it sort of working but it turns out it doesn't do what I wanted really so I'll just close this down for now.


Correct info about closing an async socket

See RT#129244 for some additional discussion I had with myself on the subject.


Upgraded compiletest_rs to 0.9.0

The workspace inheritance is in there as well. I will rebase when those are merged in (done).

Wait why did android fail all of a sudden?

Wait why did android fail all of a sudden?

(I assume) blocked on #945

Wait why did android fail all of a sudden?

This is why: #945 🙂


Add support for JOSM backgrounds based on location

Support for location specific JOSM backgrounds should be added to iD.
Then, when editing a specific location, the backgrounds relevant to that location would be offered to the user, like it is with JOSM.
Each location specific background has a <bounds> property allowing the editor to select the relevant backgrounds.

iD has a similar feature, pulling sources from https://github.com/osmlab/editor-layer-index .
Most of the difference is that there is not yet support for some types of backgrounds in iD https://github.com/openstreetmap/iD/issues/1141 .

Yes, if there are backgrounds available for tracing that don't yet show up in iD, Potlatch, Vespucci - the correct place to add them is the editor-layer-index project @maxerickson linked to above.  PRs welcome!
There is a related ticket in that repository about the JOSM imagery list:  https://github.com/osmlab/editor-layer-index/issues/88
We don't have any tools for updating the JOSM list from editor-layer-index, or vice versa, or for link checking any of the imagery sources (they go stale sometimes).  Lots of room for improvement here for someone who wants to take this up.  For now, the lists are both manually curated.


forced proxy test cases

added forced proxy test cases for both the values true and false

Closing the PR since the respective changes are already in place.


create table failed after network chaos

================================================================================
chaos-mesh Result
================================================================================
Result               FAIL
Pipeline Message     Nightly ch-benchmark-pg-cdc
Namespace            longcmkf-20240724-190253
TestBed              medium-arm-all-affinity
RW Version           nightly-20240724
Test Start time      2024-07-24 19:09:00
Test End time        2024-07-24 22:35:29
Test Queries         q1,q2,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q17,q18,q19,q20,q21,q22
Grafana Metric       https://grafana.test.risingwave-cloud.xyz/d/EpkBw5W4k/risingwave-dev-dashboard?orgId=1&var-datasource=Prometheus:%20test-useast1-eks-a&var-namespace=longcmkf-20240724-190253&from=1721848140000&to=1721860529000
Grafana Logs         https://grafana.test.risingwave-cloud.xyz/d/liz0yRCZz1/log-search-dashboard?orgId=1&var-data_source=Logging:%20test-useast1-eks-a&var-namespace=longcmkf-20240724-190253&from=1721848140000&to=1721860529000
Memory Dumps         https://s3.console.aws.amazon.com/s3/buckets/test-useast1-mgmt-bucket-archiver?region=us-east-1&bucketType=general&prefix=k8s/longcmkf-20240724-190253/&showversions=false
Buildkite Job        https://buildkite.com/risingwave-test/chaos-mesh/builds/957

sql failed message:
Running command create table t1 (x int, y int);
--
  | Failed to run the query
  |
  | Caused by these errors (recent errors listed first):
  | 1: gRPC request to meta service failed: Internal error
  | 2: get error from control stream, in worker node 3
  | 3: gRPC request to stream service failed: Internal error
  | 4: failed to complete epoch
  | 5: Storage error
  | 6: Hummock error
  | 7: Other error: failed to sync: ObjectStore failed with IO error: Timeout error: Retry attempts exhausted for streaming_upload. Please modify streaming_upload_attempt_timeout_ms (current=5000) and streaming_upload_retry_attempts (current=3) under [storage.object_store.retry] in the config accordingly if needed.
  |
  | Backtrace:
  | 0: std::backtrace_rs::backtrace::libunwind::trace
  | at ./rustc/4a0cc881dcc4d800f10672747f61a94377ff6662/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
  | 1: std::backtrace_rs::backtrace::trace_unsynchronized
  | at ./rustc/4a0cc881dcc4d800f10672747f61a94377ff6662/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
  | 2: std::backtrace::Backtrace::create
  | at ./rustc/4a0cc881dcc4d800f10672747f61a94377ff6662/library/std/src/backtrace.rs:331:13
  | 3: <thiserror_ext::backtrace::MaybeBacktrace as thiserror_ext::backtrace::WithBacktrace>::capture
  | at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/thiserror-ext-0.1.2/src/backtrace.rs:30:18
  | 4: thiserror_ext::ptr::ErrorBox<T,B>::new
  | at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/thiserror-ext-0.1.2/src/ptr.rs:40:33
  | 5: <risingwave_object_store::object::error::ObjectError as core::convert::From<E>>::from
  | at ./risingwave/src/object_store/src/object/error.rs:26:45
  | 6: <T as core::convert::Into<U>>::into
  | at ./rustc/4a0cc881dcc4d800f10672747f61a94377ff6662/library/core/src/convert/mod.rs:759:9
  | 7: risingwave_object_store::object::error::ObjectError::timeout
  | at ./risingwave/src/object_store/src/object/error.rs:26:65
  | 8: risingwave_object_store::object::retry_request::{{closure}}::{{closure}}::{{closure}}::{{closure}}
  | at ./risingwave/src/object_store/src/object/mod.rs:1163:25
  | 9: core::result::Result<T,E>::unwrap_or_else
  | at ./rustc/4a0cc881dcc4d800f10672747f61a94377ff6662/library/core/src/result.rs:1431:23
  | 10: risingwave_object_store::object::retry_request::{{closure}}::{{closure}}::{{closure}}
  | at ./risingwave/src/object_store/src/object/mod.rs:1160:13
  | 11: tokio_retry::future::RetryState<A>::poll
  | at ./root/.cargo/git/checkouts/rust-tokio-retry-38aa0853644639a4-shallow/95e2fd3/src/future.rs:27:73
  | 12: <tokio_retry::future::RetryIf<I,A,C> as core::future::future::Future>::poll
  | at ./root/.cargo/git/checkouts/rust-tokio-retry-38aa0853644639a4-shallow/95e2fd3/src/future.rs:156:15
  | 13: risingwave_object_store::object::retry_request::{{closure}}
  | at ./risingwave/src/object_store/src/object/mod.rs:1171:62
  | 14: risingwave_object_store::object::s3::S3StreamingUploader::upload_next_part::{{closure}}::{{closure}}
  | at ./risingwave/src/object_store/src/object/s3.rs:227:88
  | 15: <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll
  | at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/src/instrument.rs:321:9
  | 16: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
  | at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/task/core.rs:328:17
  | 17: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
  | at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/loom/std/unsafe_cell.rs:16:9
  | 18: tokio::runtime::task::core::Core<T,S>::poll
  | at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/task/core.rs:317:30
  | 19: tokio::runtime::task::harness::poll_future::{{closure}}
  | at ./root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/task/harness.rs:485:19
  | 20: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
  | at ./rustc/4a0cc881dcc4d800f10672747f61a94377ff6662/library/core/src/panic/unwind_safe.rs:272:9
  | 21: std::panicking::try::do_call
  | at ./rustc/4a0cc881dcc4d800f10672747f61a94377ff6662/library/std/src/panicking.rs:552:40
  | 22: std::panicking::try
  | at ./rustc/4a0cc881dcc4d800f10672747f61a94377ff6662/library/std/src/panicking.rs:516:19

cc. @Li0k for awareness

The problem happened after the network chaos


bugfix(accesslog): allow different provider between modes

Please provide a description of this PR:
Take workload's mode into consideration, when compute inScopeProviders.
So, we can allow user config different access log providers for different mode.
This maybe what we expected.
Please check any characteristics that apply to this pull request.

[] Does not have any user-facing changes. This may include CLI changes, API changes, behavior changes, performance improvements, etc.

Hi @j2gg0s. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

this seems related to https://github.com/istio/istio/pull/39696

this seems related to #39521

Yes, it is related but not same. This PR don't change current logic and just fix obvious unexpected behavior.

this seems related to #39521

Yes, it is related but not same. This PR don't change current logic and just fix obvious unexpected behavior.

I think the root case is multi accesslogging not working, let's hold this first, WDYK?

Yes, two PR is conflict
But if we want to change Telemetry's AccessLogging behavior, Maybe it's better to define what we expected before coding.
one Telemetry has many AccessLoging，one HCM also has many access_log.
one AccessLogging has many providers, how we map this to envoy's HCM?

@j2gg0s: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


Enable TLGU to convert entire TLG and build in ~/cltk_data/greek/text/tlg/

Read files from ~/cltk_data/originals/tlg and move them to ~/cltk_data/text/tlg + name of conversion type, eg, plaintext, full. This will only read `TLG*.TXT files.

I fixed this a while back.


Launch DRM-Free Steam and Epic Games without the launcher app

Describe the solution you'd like
I would like an option to disable opening the launcher of Steam and Epic Games for games that do not have DRM. A list of these games can be found here: Steam, Epic
Maybe just launching the game through the detected .exe file will work.

We used to have this for Epic, but it's basically impossible to reliably detect if a game is DRM-free or not, so I removed it. For that reason it's not going to be implemented. You can always manually edit game's play action to launch executable directly.


[BUG] high volume of unix socket connections causes unresponsiveness

Describe the bug
KeyDB's unix socket becomes unresponsive after creating a high volume of connections.
To reproduce

Install KeyDB >= v6.3.0
Use this keydb.conf file:

# these are custom parameters needed for replicating this specific bug.
unixsocket /var/run/keydb/keydb.sock
unixsocketperm 766
maxclients 32
save 60 1
save 15 10
save 1  100

# This is the default keydb config shipped by the debian package
bind <IP_ADDRESS> -::1
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
pidfile /var/run/keydb/keydb-server.pid
loglevel notice
logfile /var/log/keydb/keydb-server.log
databases 16
always-show-logo yes
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir /var/lib/keydb
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no
oom-score-adj no
oom-score-adj-values 0 200 800
disable-thp yes
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes
server-threads 2
replica-weighting-factor 2

Run a program which creates and closes client connections to the KeyDB unix socket rapidly. It should create at least 30,000 connections per minute.

Here is the Go program which I used.

package main

import (
  "context"
  "crypto/rand"
  "encoding/hex"
  "fmt"
  "log"
  mrand "math/rand"
  "os"
  "os/signal"
  "sync"
  "sync/atomic"
  "time"

  "github.com/gomodule/redigo/redis"
)

const (
  nWorkers     = 16
  averageDelay = time.Millisecond * 50
)

func randomKey() string {
  buf := make([]byte, 8)
  rand.Read(buf)
  return hex.EncodeToString(buf)
}

type RedisDialer struct {
  SocketPath string
  Counter    atomic.Int64
}

// getRedisConnection dials a new redis connection with the unix socket.
func (dialer *RedisDialer) getConnection() (redis.Conn, error) {
  conn, err := redis.Dial("unix", dialer.SocketPath)
  if err != nil {
    return nil, fmt.Errorf("dial error: %w", err)
  }
  dialer.Counter.Add(1)
  return conn, nil
}

func (dialer *RedisDialer) RunBasicCommands() error {
  key := randomKey()
  {
    conn, err := dialer.getConnection()
    if err != nil {
      return err
    }
    conn.Do("SET", key, "value")
    if err := conn.Err(); err != nil {
      return err
    }
    conn.Close()
  }

  {
    conn, err := dialer.getConnection()
    if err != nil {
      return err
    }
    conn.Do("DEL", key)
    if err := conn.Err(); err != nil {
      return err
    }
    conn.Close()
  }
  return nil
}

func run() error {
  dialer := &RedisDialer{
    SocketPath: "/var/run/keydb/keydb.sock",
  }

  var wg sync.WaitGroup
  wg.Add(nWorkers)

  start := time.Now()

  ctx, cancel := context.WithCancel(context.Background())
  defer cancel()
  go func() {
    wg.Wait()
    cancel()
  }()

  ctx, stop := signal.NotifyContext(ctx, os.Interrupt)
  defer stop()

  for i := 0; i < nWorkers; i++ {
    go func(i int) {
      defer wg.Done()
      for {
        if err := dialer.RunBasicCommands(); err != nil {
          log.Printf("worker %d failed to get redis connection: %s", i, err)
          return
        }
        time.Sleep(time.Duration(mrand.Float64() * float64(averageDelay*2)))
      }
    }(i)
  }

  ticker := time.Tick(time.Second * 5)
  for {
    select {
    case <-ctx.Done():
      return nil
    case <-ticker:
      count := dialer.Counter.Load()
      elapsedMinutes := float64(time.Since(start)) / float64(time.Minute)
      log.Printf("conns_per_min=%f total_conns=%d", float64(count)/elapsedMinutes, count)
    }
  }
}

func main() {
  if err := run(); err != nil {
    fmt.Fprintf(os.Stderr, "ERROR: %s\n", err)
    os.Exit(1)
  }
}

Let this program run for 10-20 minutes. It will print out logs like this:

2023/03/23 11:20:09 conns_per_min=46378.274487 total_conns=3865
2023/03/23 11:20:14 conns_per_min=46565.346739 total_conns=7761
2023/03/23 11:20:19 conns_per_min=46444.193688 total_conns=11612
2023/03/23 11:20:24 conns_per_min=46480.637364 total_conns=15494
2023/03/23 11:20:29 conns_per_min=46482.932439 total_conns=19368
2023/03/23 11:20:34 conns_per_min=46544.728133 total_conns=23273
2023/03/23 11:20:39 conns_per_min=46480.190414 total_conns=27115
2023/03/23 11:20:44 conns_per_min=46445.575717 total_conns=30964

Eventually the KeyDB client workers will start to fail with a series of socket dialing errors:

2023/03/22 16:59:07 worker 0 failed to get redis connection: dial error: read unix @->/var/run/keydb/keydb.sock: read: connection reset by peer
2023/03/22 16:59:07 worker 1 failed to get redis connection: dial error: read unix @->/var/run/keydb/keydb.sock: read: connection reset by peer

Or, the client connections might just hang forever (total connection count will stop increasing):
2023/03/23 11:43:15 conns_per_min=11279.996248 total_conns=133480
2023/03/23 11:43:20 conns_per_min=11201.050724 total_conns=133480
2023/03/23 11:43:25 conns_per_min=11123.328851 total_conns=133480
2023/03/23 11:43:30 conns_per_min=11046.616550 total_conns=133480
2023/03/23 11:43:35 conns_per_min=10970.953141 total_conns=133480
2023/03/23 11:43:40 conns_per_min=10896.322333 total_conns=133480
2023/03/23 11:43:45 conns_per_min=10822.698386 total_conns=133480
2023/03/23 11:43:50 conns_per_min=10750.062451 total_conns=133480
2023/03/23 11:43:55 conns_per_min=10678.395946 total_conns=133480
2023/03/23 11:44:00 conns_per_min=10607.678355 total_conns=133480
2023/03/23 11:44:05 conns_per_min=10537.890471 total_conns=133480
2023/03/23 11:44:10 conns_per_min=10469.014608 total_conns=133480
2023/03/23 11:44:15 conns_per_min=10401.035448 total_conns=133480
2023/03/23 11:44:20 conns_per_min=10333.931676 total_conns=133480
2023/03/23 11:44:25 conns_per_min=10267.688375 total_conns=133480
2023/03/23 11:44:30 conns_per_min=10202.289030 total_conns=133480
2023/03/23 11:44:35 conns_per_min=10137.717807 total_conns=133480

After this point is reached, the keydb unix socket becomes very hard to connect with. keydb-cli usually times out with an I/O error:
$ keydb-cli -s /var/run/keydb/keydb.sock
Message of the day:
  KeyDB has now joined Snap! See the announcement at:  https://docs.keydb.dev/news

{{ hangs here for a long time }}
I/O error
redis /var/run/keydb/keydb.sock> client list

{{ hangs here for a long time }}
I/O error
Error: Connection reset by peer

Sometimes keydb-cli will succeed and connect for a while, then later it will start to fail and time out. I haven't been able to find a pattern to the behavior.
Requirements
From local testing i can confirm that for the bug to manifest:

[x] KeyDB must be v6.3.0 or newer. I have tried to replicate this bug on various KeyDB versions and confirmed that only v6.3.0 and above are vulnerable to it.
[x] RDB dumps must be enabled (see below for logs for more info).
[x] Client connections must be created and closed rapidly. The bug does not occur if connections are long-lived.
[x] Unix sockets must be used to create the connections rapidly. I was unable to cause the bug to occur with a KeyDB TCP server, because I could not get enough connections per minute without getting 'connection refused' errors.

Expected behavior
Since every connection is being closed properly by the client, KeyDB should not become unresponsive. Unix sockets are able to handle very high load
Additional information

The maxclients config setting determines the amount of time our connection-creating program needs to run for, before KeyDB becomes unresponsive. The higher maxclients is, the longer the program needs to run before KeyDB becomes unresponsive.
In the original situation where I discovered this bug, we were using maxclients 10000, and creating about 3000 connections per minute. At that rate, KeyDB became unresponsive once every 24 hours.
Once keydb has become unresponsive, you may or may not be able to run keydb-cli client list. I did, and this is what I saw:

redis /var/run/keydb/keydb.sock> client list
id=179454 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=170 name= age=593 idle=593 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=179455 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=171 name= age=593 idle=593 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=175045 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=165 name= age=601 idle=601 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=182681 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=159 name= age=2 idle=0 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=40954 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 events=r cmd=client user=default redir=-1
id=175046 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=166 name= age=601 idle=601 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=181695 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=172 name= age=587 idle=587 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=175047 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=167 name= age=601 idle=601 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=175048 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=168 name= age=601 idle=601 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=175049 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=169 name= age=601 idle=601 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=172388 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=161 name= age=603 idle=603 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=182445 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=173 name= age=585 idle=585 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=168495 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=160 name= age=606 idle=606 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=175042 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=162 name= age=601 idle=601 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=182678 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=174 name= age=583 idle=583 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=182679 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=175 name= age=583 idle=583 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=175043 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=163 name= age=601 idle=601 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1
id=175044 addr=/var/run/keydb/keydb.sock:0 laddr=/var/run/keydb/keydb.sock:0 fd=164 name= age=601 idle=601 flags=U db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=4 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20488 events=r cmd=NULL user=default redir=-1

As soon as KeyDB becomes unresponsive, the amount of memory used for RDB background saves starts to inflate slowly, even though the database size was not increasing. Note the following logs:

KeyDB Logs (bug occurs around 17:17:31)

19072:19080:M 14 Mar 2023 17:15:13.105 * Background saving started
19072:1274402:M 14 Mar 2023 17:15:13.120 * DB saved on disk
19072:1274402:M 14 Mar 2023 17:15:13.121 * RDB: 6 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:15:13.125 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:15:29.001 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:15:29.002 * Background saving started
19072:1274663:M 14 Mar 2023 17:15:29.012 * DB saved on disk
19072:1274663:M 14 Mar 2023 17:15:29.013 * RDB: 6 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:15:29.022 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:15:45.003 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:15:45.004 * Background saving started
19072:1274866:M 14 Mar 2023 17:15:45.014 * DB saved on disk
19072:1274866:M 14 Mar 2023 17:15:45.016 * RDB: 6 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:15:45.025 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:15:55.477 * 100 changes in 1 seconds. Saving...
19072:19080:M 14 Mar 2023 17:15:55.477 * Background saving started
19072:1275021:M 14 Mar 2023 17:15:55.488 * DB saved on disk
19072:1275021:M 14 Mar 2023 17:15:55.489 * RDB: 6 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:15:55.498 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:16:01.228 * 100 changes in 1 seconds. Saving...
19072:19080:M 14 Mar 2023 17:16:01.228 * Background saving started
19072:1275341:M 14 Mar 2023 17:16:01.239 * DB saved on disk
19072:1275341:M 14 Mar 2023 17:16:01.240 * RDB: 6 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:16:01.249 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:16:13.968 * 100 changes in 1 seconds. Saving...
19072:19080:M 14 Mar 2023 17:16:13.968 * Background saving started
19072:1275782:M 14 Mar 2023 17:16:13.978 * DB saved on disk
19072:1275782:M 14 Mar 2023 17:16:13.979 * RDB: 6 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:16:13.988 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:16:29.012 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:16:29.012 * Background saving started
19072:1276029:M 14 Mar 2023 17:16:29.022 * DB saved on disk
19072:1276029:M 14 Mar 2023 17:16:29.024 * RDB: 6 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:16:29.032 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:16:45.019 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:16:45.020 * Background saving started
19072:1276213:M 14 Mar 2023 17:16:45.031 * DB saved on disk
19072:1276213:M 14 Mar 2023 17:16:45.032 * RDB: 6 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:16:45.041 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:16:54.505 * 100 changes in 1 seconds. Saving...
19072:19080:M 14 Mar 2023 17:16:54.506 * Background saving started
19072:1276374:M 14 Mar 2023 17:16:54.516 * DB saved on disk
19072:1276374:M 14 Mar 2023 17:16:54.517 * RDB: 6 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:16:54.526 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:17:01.456 * 100 changes in 1 seconds. Saving...
19072:19080:M 14 Mar 2023 17:17:01.456 * Background saving started
19072:1276636:M 14 Mar 2023 17:17:01.466 * DB saved on disk
19072:1276636:M 14 Mar 2023 17:17:01.468 * RDB: 6 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:17:01.477 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:17:17.009 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:17:17.009 * Background saving started
19072:1277099:M 14 Mar 2023 17:17:17.019 * DB saved on disk
19072:1277099:M 14 Mar 2023 17:17:17.020 * RDB: 7 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:17:17.029 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:18:08.008 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:18:08.008 * Background saving started
19072:1277931:M 14 Mar 2023 17:18:08.018 * DB saved on disk
19072:1277931:M 14 Mar 2023 17:18:08.019 * RDB: 14 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:18:08.028 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:19:08.346 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:19:08.347 * Background saving started
19072:1278970:M 14 Mar 2023 17:19:08.356 * DB saved on disk
19072:1278970:M 14 Mar 2023 17:19:08.358 * RDB: 19 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:19:08.368 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:19:24.011 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:19:24.011 * Background saving started
19072:1279330:M 14 Mar 2023 17:19:24.021 * DB saved on disk
19072:1279330:M 14 Mar 2023 17:19:24.022 * RDB: 21 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:19:24.031 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:20:08.441 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:20:08.441 * Background saving started
19072:1280022:M 14 Mar 2023 17:20:08.456 * DB saved on disk
19072:1280022:M 14 Mar 2023 17:20:08.458 * RDB: 26 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:20:08.462 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:20:24.007 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:20:24.007 * Background saving started
19072:1280387:M 14 Mar 2023 17:20:24.016 * DB saved on disk
19072:1280387:M 14 Mar 2023 17:20:24.017 * RDB: 27 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:20:24.027 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:21:08.517 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:21:08.517 * Background saving started
19072:1281064:M 14 Mar 2023 17:21:08.527 * DB saved on disk
19072:1281064:M 14 Mar 2023 17:21:08.528 * RDB: 30 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:21:08.538 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:21:24.012 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:21:24.012 * Background saving started
19072:1281398:M 14 Mar 2023 17:21:24.021 * DB saved on disk
19072:1281398:M 14 Mar 2023 17:21:24.023 * RDB: 31 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:21:24.033 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:22:08.497 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:22:08.498 * Background saving started
19072:1282076:M 14 Mar 2023 17:22:08.507 * DB saved on disk
19072:1282076:M 14 Mar 2023 17:22:08.508 * RDB: 36 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:22:08.518 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:23:08.001 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:23:08.001 * Background saving started
19072:1283140:M 14 Mar 2023 17:23:08.015 * DB saved on disk
19072:1283140:M 14 Mar 2023 17:23:08.016 * RDB: 43 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:23:08.022 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:23:24.016 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:23:24.016 * Background saving started
19072:1283485:M 14 Mar 2023 17:23:24.026 * DB saved on disk
19072:1283485:M 14 Mar 2023 17:23:24.028 * RDB: 43 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:23:24.037 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:24:08.393 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:24:08.393 * Background saving started
19072:1284219:M 14 Mar 2023 17:24:08.403 * DB saved on disk
19072:1284219:M 14 Mar 2023 17:24:08.404 * RDB: 46 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:24:08.413 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:25:07.724 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:25:07.725 * Background saving started
19072:1285244:M 14 Mar 2023 17:25:07.735 * DB saved on disk
19072:1285244:M 14 Mar 2023 17:25:07.737 * RDB: 50 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:25:07.745 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:25:23.006 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:25:23.007 * Background saving started
19072:1285597:M 14 Mar 2023 17:25:23.016 * DB saved on disk
19072:1285597:M 14 Mar 2023 17:25:23.018 * RDB: 50 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:25:23.027 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:26:08.503 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:26:08.504 * Background saving started
19072:1286319:M 14 Mar 2023 17:26:08.518 * DB saved on disk
19072:1286319:M 14 Mar 2023 17:26:08.520 * RDB: 54 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:26:08.524 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:26:24.002 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:26:24.002 * Background saving started
19072:1286671:M 14 Mar 2023 17:26:24.012 * DB saved on disk
19072:1286671:M 14 Mar 2023 17:26:24.014 * RDB: 55 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:26:24.023 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:27:08.388 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:27:08.389 * Background saving started
19072:1287369:M 14 Mar 2023 17:27:08.398 * DB saved on disk
19072:1287369:M 14 Mar 2023 17:27:08.400 * RDB: 58 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:27:08.409 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:28:08.337 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:28:08.337 * Background saving started
19072:1288367:M 14 Mar 2023 17:28:08.346 * DB saved on disk
19072:1288367:M 14 Mar 2023 17:28:08.348 * RDB: 62 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:28:08.358 * Background saving terminated with success
19072:19080:M 14 Mar 2023 17:28:24.006 * 10 changes in 15 seconds. Saving...
19072:19080:M 14 Mar 2023 17:28:24.006 * Background saving started
19072:1288740:M 14 Mar 2023 17:28:24.020 * DB saved on disk
19072:1288740:M 14 Mar 2023 17:28:24.023 * RDB: 63 MB of memory used by copy-on-write
19072:19080:M 14 Mar 2023 17:28:24.027 * Background saving terminated with success

Increasing the connection-creation frequency does NOT make the bug manifest any faster, beyond a certain point. I cranked my program to the max, creating hundreds of thousands of connections per minute, but this still took the same amount of time to reproduce the bug.
Increasing the RDB dump frequency also does not make the bug manifest faster. I tried adding save 1 1 to the config, and used the same Go program to create and close 30k+ connections per minute, and this still took the same amount of time to reproduce the bug.
Redis v7.0.10 is NOT vulnerable to this bug.

Hi
I have the same problem on 6.3.2  version
check lsof of rbd file.
I change config to
save ""
save 900 1
save 300 10
save 60 10000
that's fix my problem
Thnx


Feature request: animations with logarithmic speed

The speed of animations isn't "natural" for things which are more "exponential" in nature, for instance solar panel production or electricity consumption.
For instance, with settings like:
      thresholdOffValue: 10
      thresholdLwrValue: 100
      thresholdLwrDurationSecs: 1
      thresholdUprValue: 5000
      thresholdUprDurationSecs: 0.1

with the current formula (in Python) I get values like:
>>> [round(durationSecs(x, 100, 1, 5000, 0.1), 3) for x in [100, 200, 400, 800, 1600, 3200, 4700, 5000]]
[1.0, 0.982, 0.945, 0.871, 0.724, 0.431, 0.155, 0.1]

The issue is that there is barely any difference between 200 and 400 even though it is twice as much.
Another way to look at it is that there is as much difference between 100 and 400 than between 4700 and 5000: 0.06. However 400 is 4 times 100 so we expect to see a big difference in speed, while 4700 is almost the same as 5000 so we expect little difference in speed.
I think a simple way to solve this would be to make the duration logarithmic, e.g. below https://github.com/andymchugh/andrewbmchugh-flow-panel/blob/4d72da2dc8d050c3ff908d3dc65f49aa052e2836/src/components/SvgUpdater.tsx#L341 add the typescript equivalent of:
    factor = math.log2(factor+1)

With this I get a spread of speeds which I think should feel more "natural":
>>> [round(durationSecsLog(x, 100, 1, 5000, 0.1), 3) for x in [100, 200, 400, 800, 1600, 3200, 4700, 5000]]
[1.0, 0.974, 0.923, 0.827, 0.653, 0.364, 0.14, 0.1]

Would you consider giving this as a (configurable) option?
Thanks.
ps: if log2 didn't feel right, possible alternatives that could be tried would be a sin-based function, e.g. in Python:
    factor = math.sin( (math.pi/2) * (v-thresholdLwrValue)/(thresholdUprValue-thresholdLwrValue))

or based on a circle formula, e.g. in Python:
    factor = (v-thresholdLwrValue)/(thresholdUprValue-thresholdLwrValue)
    factor = math.sqrt(2*factor-factor*factor)

Thanks for the time you've put into it. I'll have a think.
In the meantime you should be able to achieve this using the bespoke drive. With that you can use a mathjs formula on your data to create the dataRef that flows into the animFlow drive. I'd be interested to know how that goes.  At least it will unblock you for now.

I like your idea. I've implemented it as a power function so you get to specify the biasPower to shape the curve. It defaults to the current 1. Between values 0 and 1 you'll be ramping up early as you've asked for. Above 1 you'll be ramping up late. It will get built into the next version 1.16.4.

Feature available in 1.16.4, now published.

Thanks @andymchugh , that's a nice way to implement it.


Steps to reproduce:
I have checked all positions where using scrollToBottom, and add xxx && xxx.scrollToBottom to avoid null objects, but it happens still.

Hello, thanks for opening an issue with us. Could your please provide a repro case? You can use this plunker as a template.

Hello all! As it seems it has been a while since there was any activity on this issue i will be closing it for now. Feel free to comment if you are still running into this issue. Thanks for using Ionic!

@jgw96
every easy to run into it again and again. but currently I can't figure out why.

@calidion I solved it whit this fix:
if(this.content._scroll) this.content.scrollToBottom(0);

@pablo-albaladejo That solution worked perfectly. My problem is that the initialized view that has scrolling gets closed before the data is loaded. The _scroll property evaluates to null on this case and it was throwing the error.

@pablo-albaladejo Thanks, drove me crazy for days, owe you one.

Thank you so very much @pablo-albaladejo ! <3

@pablo-albaladejo Thanks! works like a charm!

@pablo-albaladejo Thank you


Testing, please ignore. (fzmtuj)

Bug bounty test - please ignore.... Please DO NOT APPROVE THIS! (fzmtuj)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.aviluzgalnome seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Enhance error context and support for custom locales

This pull request adds additional context to error messages and allows users to override locales with their own error messages. The locales support more flexible messages with a new ErrorDetails type and basic string replacements over fmt.Sprintf.
The reason for this pull request is for more context so library users can both customize error messages with their own locales, as well as have more flexibility to programmatically determine what errors occurred and create their own custom error messages (if they need to).
Currently if validation determines a "firstName" field is missing, there is no way to know what happened and pass an error message on with more context than just a string. You can determine that the error was on the "firstName" field based on the jsonContext, but you can't tell what type of error is the culprit (i.e. was the field required and not given, was it of the wrong type, did it not meet enum criteria?). So transforming that error into say, a JSON response with error codes and custom messages, isn't currently possible.
This pull request does a few things:

Changes the locales from a group of constants that could previously not be changed to an interface with a default implementation that works automatically with no intervention from the user.
Adds enhanced ErrorDetails to each error and allows locales to tap into those using basic string replacements -- including the field name -- in every error message.
Adds a Type() method to each error to determine which error occurred (i.e. required and missing error returns the string "required" when calling Type() on the error. Enum errors returns "enum" when calling Type() on the error)
Makes each error it's own type implementing the ResultError interface. This allows for type checking on the errors (i.e. InvalidTypeError, RequiredError, ArrayMinItemsError, StringLengthGTEError, etc).
Allows users to overwrite the result of err.String() by creating their own custom format.

This change should be backwards compatible for users who are just printing errors as the err still has a String() method. However, some of the strings changed slightly and due to the ResultError interface previously public variables on the error are now private and accessible via getters and setters.
Let me know your thoughts. If you like the implementation, I'll put together some unit tests to cover the new functionality so it can be merged in. All current unit tests are passing.

Just merged, nice work really !


Dupe with the pressure tanks

Incorrect calculation of the filling and empting of tanks under pressure in the stack. Stack of any size is filled and empted as 1 tank (in fillers from other modifications, example Mekanism mod). That is, the stack of tanks is filled, and the fuel is spent as per 1 tank. Tanks from other mods are filled properly.
I saw that in the filler from AR full tanks do not stack, but this solution is only for AR, this is not suitable for other mods. Please solve this problem as soon as possible.
Video with dupe: https://youtu.be/uUPE82tUaCc

What version of the mod/libvulpes/mc?

AdvancedRocketry  latest master branches
LibVulpes-1.7.10-0.1.16-universal
Mekanism-1.7.10-<IP_ADDRESS>1.jar

Good afternoon, when will be able to fix the dupe?

I'm not sure if i will even be able to.  Handling of buckets is done by the mod the tank is from rather than the bucket, so for me to even figure out what's going on I need to understand how mekanism's bucket handling code works for the fluid tank.  Only once I do that can I verify if it's some standards transgression I'm making, or if it's mekanism's code is broken.

I tested Mekanism c other mods or capsules, the bug is absent.

I get that, I do not know why that is.  It could be that they are using a different means to store fluid (in forge there are 2 standards to do it in 1.7.10 and you kinda have to support both of them in the fluid container).  IFluidContainerItem and FluidContainerRegistry, I do not know which method the other mods use and I have not yet had time to look.

Something you can do?

It doesn't look like there really is.  It is mekanism's block handling extraction of fluids and moving item stacks around, all AR's tanks do in this situation is report how full each item is.
This also appears to be happening with other things.
https://github.com/aidancbrady/Mekanism/issues/3964

I honestly don't know why the IC2 ones work and AR's don't...

Correction, turns out IC2 registers its cells like buckets, so the same code is not executed.  That would explain the difference in behaviors.  The IFluid container isn't used all the often but it is much less of a hassle to use...

Ic2 fills the capsules one by one with a delay, and your filled with Stak

Yes, but ic2 capsules are also programed to be buckets using the forge
bucket handler, this means they either are completely full, or completely
empty.  But on order for me to calculate fuel consumption from the tanks
among other things, the tanks have to be able to store everything in
between.  Therefore I have to use forge's other fluid handling system, the
IFluidContainer.  But mekanism treats IFluidContainers differently than
buckets.  In order for me to use the same system the IC2 cells use, I would
need to register more than 64000 items.

In this case, I temporarily disable the stacking of tanks, until there is no better solution.

As an option, to do so with a mechanism they are not combined with the gas station)))

I would prefer not to disable stacking of the empty tanks at least, but there does not appear to be any other solution that I can think of either.  Might be better to do in case other mods have similar troubles though


The order of network adapers displayed in Windows Server will change radomly after stoping and starting VM

The order of network adapers displayed in Windows Server will change radomly after stoping and starting VM. (Since ZStack 1.7)
Running:
VM: Windows Server 2012 R2.
Adapter 1: Name "Local Connection" and change to "New Name 1", IP 192.168.255.x
Adapter 2: Name "Local Connection 2" and change to "New Name 2", IP 192.168.254.x
Adapter 3: Name "Local Connection 3" and change to "New Name 3", IP 192.168.253.x
After Stopping and Starting:
Adapter "New Name 1", IP may be 192.168.254.x
Adapter "New Name 2", IP may be 192.168.253.x
Adapter "New Name 3", IP may be 192.168.255.x

It should have been fixed since <IP_ADDRESS>4


Fix starter codelab and project

Describe the bug
We have a documentation typo fix and codelab flow and starter project dir mix
Additional context
Working on the fix : )

Done !


Escape XML for methodName anche className

Hi,
I've found an error while sending stacktrace in the XML.
in particular my application uses ORMLite and the stacktrace contains:
<line method="org.sqlite.PrepStmt.<init>" file="PrepStmt.java" number="42"/>

The <init> method name makes XML syntax invalid.
So I have added NoticeXml.escapeXml to methodName and, just for sure, to className.
Hope this can help
Fabio

:+1:
we also have this problem.
<line method="net.sourceforge.jtds.jdbc.JtdsConnection.<init>" file="JtdsConnection.java" number="436"/>

Thanks!


samples: drivers: adc initialize the adc_sequence calibration

The struct adc_sequence member calibrate must be set to 'false',
this avoids a second calibration in start_read()
which must not be triggered when ADC is enabled.
Fixes: #38578
Signed-off-by: Francois Ramu<EMAIL_ADDRESS>

@FRASTM is this change still valid (since #38578, was fixed by https://github.com/zephyrproject-rtos/zephyr/pull/38589)?

https://github.com/zephyrproject-rtos/zephyr/issues/38578 is now closed


Versioning Information

Sorely missing is the version of PowerShell (or programming language) that supports the modules/commands being described. E.g. Resolve-DnsName - under the h1 tag for Resolve-DnsName is a metadata div that denotes Resolve-DnsName is provided by the DnsClient module; but there is no indication that both require 2012 Server or equivalent version of PowerShell. As such, Windows 7 users are left mystified as to why that command will not run on their workstations.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0193ed76-3eec-18ac-512f-45f8118dde34
Version Independent ID: 8e693833-3e45-2bb8-ddc2-d0c54936c3c1
Content: A New Feedback System Is Coming to docs.microsoft.com
Content Source: teamblog/a-new-feedback-system-is-coming-to-docs.md
Product: team-blog
GitHub Login: @dend
Microsoft Alias: dendeli

@OwlInSunglasses Thanks for taking the time to give us blog feedback.
In the future, make sure to open Git feedback on the page you have comments for. Direct page feedback ensure the right product owners have immediate access to our comments and requests.
In the meantime, I've forwarded your comments.
Appreciate your contribution to our community.


Cryptol spec: Add remaining high-level KZG functions

Add the remaining high-level KZG functions: verify_kzg_proof_batch, compute_blob_kzg_proof, verify_blob_kzg_proof, verify_blob_kzg_proof_batch

[x] verify_kzg_proof_batch
[x] compute_blob_kzg_proof
[x] verify_blob_kzg_proof
[x] verify_blob_kzg_proof_batch

This work requires issue #20 to be completed first.

Closed by #55.


Dependency issues

Hi there,
Can someone please advise me why this is happening and help me point to the right direction?
Basically I had to updgrade the entire app and this is pissing me off:
environment:
  sdk: ">=2.17.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.5
  package_info: ^2.0.2
  intl: ^0.17.0
  fluttertoast: ^8.1.1
  google_maps_flutter: ^2.2.1
  xml: ^6.2.2
  http: ^0.13.5
  url_launcher: ^6.1.6
  shared_preferences: ^2.0.15
  json_serializable: ^6.5.4
  flutter_native_splash: ^2.2.14

Flutter and dart is updated properly.
I get this issue:
Because xml >=6.2.0 depends on collection ^1.17.0 and every version of flutter from sdk depends on collection 1.16.0, xml >=6.2.0 is incompatible with flutter from sdk.
So, because bcppark depends on both flutter from sdk and xml ^6.2.2, version solving failed.
pub get failed (1; So, because bcppark depends on both flutter from sdk and xml ^6.2.2, version solving failed.)

Sorry, there is not much I can do here.
However, there is nothing that forces you to upgrade to the latest version of this library, you can always stick with an older version of this package until the other libraries have caught up.

@FilipeOS  I was having some issues as well with flutter_test and flutter_localization where the collection library version mismatched those other two.
Because xml >=6.2.0 depends on collection ^1.17.0 and every version of flutter_localizations from SDK
 depends on collection 1.16.0, xml >=6.2.0 is incompatible with flutter_localizations from SDK.

Solution for me was downgrade and using xml: ^6.1.0

@FilipeOS I was having some issues as well with flutter_test and flutter_localization where the collection library version mismatched those other two.
Because xml >=6.2.0 depends on collection ^1.17.0 and every version of flutter_localizations from SDK
 depends on collection 1.16.0, xml >=6.2.0 is incompatible with flutter_localizations from SDK.

Solution for me was downgrade and using xml: ^6.1.0

I did the same today and worked, thank you


[Select] onBlur prop run twice

Component
Select
Describe the bug
onBlur prop on Select component runs twice
Expected behavior
onBlur should run once
Additional context
https://user-images.githubusercontent.com/65539882/170743188-fb61fc3d-114e-44d7-b9a0-7135f7f72886.mov

Hey folks! 🙂
I'm not sure if you've already found the issue, but I hope my comment will be helpful. The issue happens because onBlur is passed to the two Select's under-the-hood components:

div that wraps OutlinedInput gets onBlur from rootProps. (https://github.com/toptal/picasso/blob/master/packages/picasso/src/NonNativeSelect/NonNativeSelect.tsx#L152)
OutlinedInput get onBlur from rest. (https://github.com/toptal/picasso/blob/master/packages/picasso/src/NonNativeSelect/NonNativeSelect.tsx#L158)

It causes onBlur to be called twice.


Gh 331 client configurator

I've added a couple of parameters to the service configuration to allow externally accessible client URLs for palisade service and dataservice connections.


Duration cleanup

Unit tests, duration code and new figures of simulated lightcurve (removed data files).

I reviewed the changes and verified that the unit test passed. Waiting for concurrence from @AdamGoldstein-USRA

Reviewed and verified.


'module' object has no attribute '_asciire'

Hi. I was trying to download a video from youtube yesterday after I updated youtube-dl with sudo youtube-dl -U and I got the next error:
$ youtube-dl (video url)
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/local/bin/youtube-dl/main.py", line 16, in
File "/usr/local/bin/youtube-dl/youtube_dl/init.py", line 16, in
File "/usr/local/bin/youtube-dl/youtube_dl/options.py", line 8, in
File "/usr/local/bin/youtube-dl/youtube_dl/downloader/init.py", line 3, in
# $Id$
File "/usr/local/bin/youtube-dl/youtube_dl/downloader/common.py", line 8, in
File "/usr/local/bin/youtube-dl/youtube_dl/compat.py", line 82, in
AttributeError: 'module' object has no attribute '_asciire'
This didn't happen until I update youtube-dl yesterday.
It seems like if the the program is trying to access to an nonexistent instance variable. Further I can't do anything. Cannot check the version, neither update it.
Thanks for your time.
Specifications:
Python version: Python 2.7.3
OS: Kali GNU/Linux moto
Kernel: 3.18.6-1~kali2 (2015-03-02)
Here you have an screenshot:

You are using an outdated version of youtube-dl (this was fixed in 2015.07.21). Read our FAQ if you have troubles updating.


Imputation failed for chromosome 9

I’m currently working on imputation for a merged cohort, but I’ve encountered repeated failures specifically with chromosome 9, and the cause isn’t clear. I’ve attached a text file with the relevant statistics and failure details. The error messages include “Pipeline execution failed” and “Imputation Job failed,” but don’t provide further clarification.
Here’s a summary of the workflow I followed to prepare the files for imputation:

I downloaded the individual cohort PLINK files from the public website.
After ensuring all cohorts were aligned to build 19, I ran imputation jobs for each cohort separately (with no issues at this stage), as they were genotyped using different arrays.
I merged the post-imputation VCF files from each cohort and converted them into PLINK format.
I conducted a pseudo-case-control GWAS on the normal population from the individual cohorts, excluding significant variants (p-value < 1E-05) to control for potential batch effects from the genotyping arrays.
Finally, I ran the HRC pre-imputation tool again on the merged cohort and submitted the imputation jobs.

Given this process, I didn’t observe any potential errors, so I’m unsure why chromosome 9 keeps failing. Could you help me troubleshoot this issue and possibly provide some explanations or solutions?
Thank you in advance for your help!

Thanks! I think this is not related to the actual pipeline code but rather some edge case with your input data. We’ll look into that. Let’s follow up via email. See MIS website for my contact details


deps(react-native): Update bugsnag-cocoa to v6.16.0

Ah, this cannot be merged until the feature flags changes have been merged onto next


the Activation of the camunda-platform-7-keycloak stop the process of the camunda-bpm-mail mail-send connector

Hi,
I have a fairly good experience with Keycloak and I was enthused to see the integration with Camunda.
I was able to download the software and configure it and I was able to authenticate the users with Keycloak.
Unfortunately,  I noticed a problem: If the Keycloak Connector is active, the mail-send connector stop working.
Can you please adivse me where I need to look to find thew problem?
thank you,
Regards,
Giovanni

Hi @gbaru,
are you sure that your issue addresses the correct repository? Just asking because your question seems to be a bit out of the scope of this repository.
This extension is about a Keycloak Identity Provider for Camunda 7. It has nothing to do with connectors. It is similar to the original Camunda LDAP Identity Provider Plugin only that it connects to Keycloak.
Can you give me more information about your Camunda version including the info whether you use old school ApplicationServer or Tomcat or Spring Boot or are you using Camunda Run? What is your setup? And what kind of mail-send connector are you using?
If you are already using Camunda 8 you may want to close this issue.
Thanks,
Gunnar

Dear Gunnar,
First of all the scope:
We deliver Keycloak as a Service and all our Processes are based on Keycloak.
We need to integrate our IAM solution with Camunda to implement Approval Workflows.
The Setup:
Camunda tomcat 7.20
Keycloak 22.0.5
Camunda7 Community Mail Connector: https://github.com/camunda-community-hub/camunda-platform-7-mail
I would be glad about any suggestion to get DEBUG information from the module.
Regards,
Giovanni
Von: Gunnar von der Beck @.>
Antworten an: camunda-community-hub/camunda-platform-7-keycloak @.>
Datum: Freitag, 23. Februar 2024 um 17:19
An: camunda-community-hub/camunda-platform-7-keycloak @.>
Cc: Giovanni Baruzzi @.>, Mention @.***>
Betreff: Re: [camunda-community-hub/camunda-platform-7-keycloak] the Activation of the camunda-platform-7-keycloak stop the process of the camunda-bpm-mail mail-send connector (Issue #186)
Hi @gbaru,
are you sure that your issue addresses the correct repository? Just asking because your question seems to be a bit out of the scope of this repository.
This extension is about a Keycloak Identity Provider for Camunda 7. It has nothing to do with connectors. It is similar to the original Camunda LDAP Identity Provider Plugin only that it connects to Keycloak.
Can you give me more information about your Camunda version including the info whether you use old school ApplicationServer or Tomcat or Spring Boot or are you using Camunda Run? What is your setup? And what kind of mail-send connector are you using?
If you are already using Camunda 8 you may want to close this issue.
Thanks,
Gunnar
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

@gbaru,
you'll get DEBUG information by setting the logger "org.camunda.bpm.extension.keycloak" to DEBUG. That's it.
It would be interesting to know, why the mail connector does not work and what exactly the mail connector does with Camunda Identity Management. Do you see any exceptions? Would you mind to send the configuration details of your Camunda instance?
Regards
Gunnar

@VonDerBeck,
I was able to identify the cause of the Mail-Send Connector stopping working and hat nothing to do with the Caminda Identity Management it happended simply at the same time.
Thank you for the information about the DEBUG I will  now move on to activate the real SSO.
Thank you for your support.
One last Question: how can I contribute to the Documentation? I can possibl update the screenshots of Keycloak, that have been updated.
Best Regards,
Giovanni

@gbaru:
Great to hear that you're up and running again. And that this has not been an error.
Feel free to open a PR with a documentation update if you think that screenshots of a newer Keycloak UI help to get started more quickly.

I tried to do a PR but I recevied an Error. Please find attached the updated file.
Regards,
GIovanni
Camunda Platform 7 - Keycloak Indenitty Provider Plugin-README.zip


Inconsistent sidebar resizing behavior

Describe the bug
When resizing the size bar, there is a max set. If you continue dragging the mouse gets far from the line, when you move it back the sidebar starts to resize back, the cursor being far from sidebar resize line.
To Reproduce
Resize the sidebar to far right and back without releasing the mouse button.
Expected behavior
The sidebar should wait for the mouse cursor to get back on the line before shrinking back.
Desktop (please complete the following information):

OS: any
Browser: N/A
Version: Version 3.2.4 (3.2.4)

Release 3.3.0