Unable to recover etcd cluster after loss of nodes

I am running the CoreOS alpha channel (349.0) on EC2 (non-VPC) with no modifications to the CloudFormation cloud-config section for etcd. I updated my CloudFormation stack, which requires the EC2 instances to be terminated and recreated, but which is done using a rolling update with MinInstancesInService=3 and should maintain the etcd cluster.
However, after the CF stack update, the etcd cluster was left in a bad state. 1 node (call it A) at least appears to have the snapshot:
Jun 20 01:00:16 ip-10-234-59-141 etcd[568]: [etcd] Jun 20 01:00:16.079 INFO      | 3195460fb2fe42bd92439e261c84b859 attempted to join via <IP_ADDRESS>:7001 failed: fail checking join version: Client Internal Error (Get http://<IP_ADDRESS>:7001/version: dial tcp <IP_ADDRESS>:7001: i/o timeout)
Jun 20 01:00:16 ip-10-234-59-141 etcd[568]: [etcd] Jun 20 01:00:16.452 INFO      | Send Join Request to http://<IP_ADDRESS>:7001/join
Jun 20 01:00:16 ip-10-234-59-141 etcd[568]: [etcd] Jun 20 01:00:16.454 INFO      | 3195460fb2fe42bd92439e261c84b859 attempted to join via <IP_ADDRESS>:7001 failed: fail on join request: Raft Internal Error ()
Jun 20 01:00:16 ip-10-234-59-141 etcd[568]: [etcd] Jun 20 01:00:16.470 WARNING   | 3195460fb2fe42bd92439e261c84b859 cannot connect to previous cluster [<IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001 <IP_ADDRESS>:7001]: fail joining the cluster via given peers after 1 retries
Jun 20 01:00:16 ip-10-234-59-141 etcd[568]: [etcd] Jun 20 01:00:16.471 INFO      | etcd server [name 3195460fb2fe42bd92439e261c84b859, listen on :4001, advertised url http://<IP_ADDRESS>:4001]
Jun 20 01:00:16 ip-10-234-59-141 etcd[568]: [etcd] Jun 20 01:00:16.471 INFO      | peer server [name 3195460fb2fe42bd92439e261c84b859, listen on :7001, advertised url http://<IP_ADDRESS>:7001]
Jun 20 01:00:16 ip-10-234-59-141 etcd[568]: [etcd] Jun 20 01:00:16.471 INFO      | 3195460fb2fe42bd92439e261c84b859 starting in peer mode
Jun 20 01:00:16 ip-10-234-59-141 etcd[568]: [etcd] Jun 20 01:00:16.471 INFO      | 3195460fb2fe42bd92439e261c84b859: state changed from 'initialized' to 'follower'.
Jun 20 01:00:18 ip-10-234-59-141 etcd[568]: [etcd] Jun 20 01:00:18.029 INFO      | 3195460fb2fe42bd92439e261c84b859: state changed from 'follower' to 'candidate'.
Jun 20 01:00:19 ip-10-234-59-141 etcd[568]: [etcd] Jun 20 01:00:19.472 INFO      | 3195460fb2fe42bd92439e261c84b859: snapshot of 179979 events at index 179979 completed

But the other 2 (call them B and C) continually fail with Raft Internal Error () when attempting to join the cluster composed of A:
Jun 20 01:27:36 ip-10-41-9-209 etcd[1912]: [etcd] Jun 20 01:27:36.097 INFO      | 39e1d196a13d42dd8cccfb8d3cc3040f attempted to join via <IP_ADDRESS>:7001 failed: fail on join request: Raft Internal Error ()

@philips walked me through a recovery process that was unsuccessful and asked me to post this issue here. The recovery process consisted of:

Finding previous machine IDs by running curl <IP_ADDRESS>:4001/v2/keys/_etcd/machines on A
On B and C, wiping the /var/lib/etcd dirs and changing their etcd -name= to machine IDs that existed in the machines JSON obtained in (1), by editing the file /var/run/systemd/system/etcd.service.d/20-cloudinit.conf
Restarting B and C

After performing these steps and verifying the other 2 nodes' logs have the changed names, 1 of them fails with the same 'Raft Internal Error ()' and the other fails with  is not allowed to join the cluster with existing URL  http://<IP_ADDRESS>:7001 [its IP]'. Node A did not emit any more log lines during this whole process.
The data dir on node A contains various development credentials. I can revoke most of them but some of them I'm not sure about. Folks from CoreOS or other maintainers can email me at<EMAIL_ADDRESS>if you want me to send it to you (but I don't want to post it on the web).

I'm still running into this with latest stable qemu image. Which is running etcd 0.4.6 (unless you specify etcd2 in your cloud config, I haven't gotten etcd2 to work properly for me yet).
But, I found a solution that at least works for me, and have documented it further here. I'd notice that when I first spun up a cluster it would work, but, if I tried to have the cluster rediscover it from scratch -- e.g. all coreos boxes down... It'd start failing with these, and I noticed that etcd appeared to cache who it's peers were. Which, I didn't feel was particularly appropriate, so I hacked a way to clear it's "cache" if-you-will by clearing items in the /var/lib/etcd dir, and specifically I would, on each CoreOS machine issue:
systemctl stop etcd
rm /var/lib/etcd/log
rm /var/lib/etcd/conf
shutdown now

Then I'd feed a new discovery URL into the cloud configs and start it back up. And maybe it's witchcraft, but, I feel like I was having better luck if I booted one box first, and gave it 30 seconds before I booted up another bunch (which I'd just boot all quickly in succession)


LazyEither dropping Left values, even when Throwable, when acting as  reactive-streams Publisher

It would be better to propagate left Throwables as errors. This supports the use case of LazyEither in mergeMap as an alternative to Throwing exceptions.

Released in 10.0.3


New UI

The idea is to rework the UI for release 75.
As a user, I want to navigate the program easily using navigational features.
Current idea is to put it all in one window with tabs and reduce the amount of external windows and, consequently, clicks to get things done.

The UI is postponed for now


Edit Rmd to remove the workflow code and replace the SE value with a variable

I have resolved this issue in the white_wine_analysis.rmd


Proposal: API for modded ecl scripts and hypothetical th185 replay mod

What if thprac had some sort of API that could be used by third party mods to create custom practice menus for their custom stages?
zero318 came up with the idea of .prac files that could go either in thXX.dat or could be provided by thcrap, that would tell thprac what the practice menu should look like, and which parts of the ecl file should be modified in what way depending on the menu entry selected. This system could also replace the entire current system for patching stages that thprac has, which would lead to:

More convenient and faster way to write and test the practice menus
More convenient and faster testing with much less recompiling
Less janky system for implementing that menu to begin with
Less janky localization system with a far smaller thprac_locale_def.h which leads to shorter compilation times

I think that this change would warrant bumping the version number all the way to <IP_ADDRESS>

(I'm not sure who's invited to participate in this discussion, but I'll throw in my two cents in the hopes that they're welcome. 😅)
I do like the idea. If I'm understanding this correctly, this would eliminate the need for the thprac_th**.cpp files, or at least greatly reduce their sizes? Furthermore, combined with recent work on thtk, this might open the door for people who don't know C++ to contribute to thprac's development.
I imagine the format of the .prac files is still a far-off problem at this stage, but I'd suggest using some kind of object format, such as JSON(5). (Related: #38)
Regarding thprac_locale_def.h in particular, though, is there any particular reason this needs to be a header file? Given its size, it would make more sense (in my opinion) for it to be a source file. (This might also improve compilation speeds, possibly? I'm not sure how many source files #include the header.) With that being said, there's also a strong argument to be made for splitting it into three .json files (or similar), and loading them at runtime instead... 🤔
Lastly, regarding the version number: I don't have any particular objections, but perhaps we could also consider using semantic versioning for thprac?

thprac_th*.cpp files would still be needed for setting up dear imgui and installing game specific patches, but those files would be a lot smaller.
Regarding the format, I'm actually thinking about it right now and would like it implemented not that far into the future. And yes, I am using JSON for this.
It would make a lot more sense for thprac_locale_def.h to only contain declarations with a separate .cpp file for the actual strings. As for how many source files include it: all of them.
The reason I'm saying that this warrants bumping the version to <IP_ADDRESS> is because it's a massive change that completely changes everything about the very core of thprac, for the better

I could have a go at moving the thprac_locale_def strings to a .cpp file, if you'd like? Though I probably won't start on that until the weekend.
I imagine this would require making changes to thprac_utils? Since I'm not familiar with that codebase, I'd appreciate some general guidance, if you're willing to provide it. (I'm fairly certain we're both in the thpatch Discord?)

I moved an older program called "thprac_multi" into "thprac_devtools". I don't actually know how any of the code that generates thprac_locale_def.h works I just did the minimum to get it to wotk in thprac_devtools

I’m wondering whether thoracic_locale_def.h generation could be somehow omitted by direct json serialisation with the help of library such as https://github.com/nlohmann/json. Didn’t work with json so much in C++ but that seems like a good idea, as this is the strategy for most modern languages.

@Lmocinemod I've been talking a lot in ZUNcode about this proposal


Support of mint/burn of assets in decode transaction

[x] I have added support for mint/burn assets along with illustrative integration tests

I will add supports for certs with integration tests in next PR
Comments

Issue Number

thanks @jonathanknowles for looking at this. First of all, let's address only minting/burning in this PR, and certs in separate PR. When it comes to positive values for both minting/burning I think it is ok to have this like that. We can change this during adding minting/burning support in wallet soon, though. Right now it is the least invasive to have this with decomposition into minting and burning using positive values.

bors r+


Show file extensions on available commands when not .exe

Closes https://github.com/astral-sh/uv/issues/8770

We might want to filter some suffixes eventually too

Should we consider showing .exe?

I don't think so, since it's not necessary to invoke the command it's just noise.


Do not run the static analyzer during build

I don’t think it’s a good idea to run the static analyzer during each build, as it taxes the build time for the project that uses the library. Non-trivial projects usually use several libraries and if each of them run the analyzer, the build time would grow needlessly.

(Ah, sorry, the previous commits also crept into the pull request.)

As the static analysis is only ran when cleaned, first compiled, or something changed is it really such a bad thing? I know I like to know that all the code ran in my project has been statically checked, it's not as good as a close audit but when working with others on a project who may have imported it that I trust, it sure is useful to me.

I fully agree that static checking (plus unit testing) is a desirable thing to have. But I think that libraries and frameworks should be very careful about build times, since even small delays add up in the main project. You’re right, the analyzer is only run during clean builds, but those are surprisingly common, at least in my workflow. And you can always analyze the whole project by pressing Cmd-Shift-B (and run the tests with Cmd-U), so the tools are quite at hand even without being tied to the build.

Well you convinced me :+1:

I'm certainly open to the idea! As for the other commits that crept in, they seem good as well. I'd just like to test it and make sure things work as expected, and then I'll merge it in.
Thanks for contributing! :)

Would it make any sense to only run static analyzer during, say, release builds and not debug/development builds?

That would solve my issue with build times, I don’t think that people are extra sensitive to release build times. I’m not sure if such change would be for better or worse for the library developers – it seems easier to me to just hit Cmd-Shift-B than to make a release build before pushing new changes.

Analyzer on Release is a nice safety net.
It is very easy to forget to hit that key combo before making a push -- and it is very bad for a framework to have any obvious bugs. Losing a few days to track down a bug in third party code is a much worse feeling than a few seconds every few days to a build.
On Feb 23, 2012, at 3:22 AM, Tomáš<EMAIL_ADDRESS>wrote:

That would solve my issue with build times, I don’t think that people are extra sensitive to release build times. I’m not sure if such change would be for better or worse for the library developers – it seems easier to me to just hit Cmd-Shift-B than to make a release build before pushing new changes.

Reply to this email directly or view it on GitHub:
https://github.com/kolinkrewinkel/KKGridView/pull/109#issuecomment-4134643

I agree with the profiles/debug/release differentiation - seems like the best route.  I'll check out the other commits too. :)

OK, analyzer in the Release build is a good option. Closing.


PUA ThreatName Per Computer

 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.:x: anthonws sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Approved


MacOS brew version 4.1.x has been overwritten

Environment

Tesseract Version: 4.1.x
Platform: Mac

Current Behavior:
I'm not sure where to log this issue, but this seemed the most sensible. Apologies if this is the wrong place.

Multiple libraries depend on tesseract, SikuliX in this case
5.0.0 has breaking changes meaning a user cannot simply just use the latest version
For Mac specifically, you must use a package manager to install tesseract (either MacPort or Brew)
Having 2 package managers installed on the same Mac is not recommended at all and error prone
Brew, from various discussions on StackOverflow, does not really support using specific commits when installing packages. It might work, but is not recommended and is not easy to do
Brew does support having fixed versions, e.g. postgresql@11 (found via brew search postgresql)
The version in brew has just been overwritten rather than using the brew versioning. This means the latest version in brew is 5.0.0, getting 4.1.x back requires going to a specific commit, which as stated above may cause issues

Expected Behavior:

Run brew install<EMAIL_ADDRESS>
Suggested Fix:

Upload 4.1.x to brew as a different version (this is probably the easier route)
Alternatively update the tesseract documentation to specify how to get a previous version easily that has been tested to make sure it works

This is indeed the wrong place for your report. https://github.com/Homebrew/homebrew-core/issues might be the right one.

Regarding versions: there is no really good reason to install both Tesseract 4.1 and Tesseract 5. Packages / software which used the old version should be updated to use Tesseract 5.

I can understand not being able to have both installed simultaneously, but ultimately it will take a while for those packages to get up to date as presumably they would test the impact first, so it will take a while. But appreciate the help, thanks :).


Update sbt-scoverage to 2.0.9

About this PR
📦 Updates org.scoverage:sbt-scoverage from 2.0.6 to 2.0.9
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scoverage", artifactId = "sbt-scoverage" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scoverage", artifactId = "sbt-scoverage" }
}]

labels: sbt-plugin-update, early-semver-patch, semver-spec-patch, commit-count:1

Codecov Report

Merging #456 (da0d389) into master (806f830) will increase coverage by 0.13%.
The diff coverage is n/a.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@            Coverage Diff             @@
##           master     #456      +/-   ##
==========================================
+ Coverage   84.75%   84.88%   +0.13%
==========================================
  Files          35       35
  Lines         223      225       +2
  Branches       17       24       +7
==========================================
+ Hits          189      191       +2
  Misses         34       34

Flag
Coverage Δ

unittests
84.88% <ø> (+0.13%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Mobile - Unified account - Bug related to Swap features

Describe the task
Bug related to Swap features

[x] Don't disable button Swap with TON account
Actual :

Expect : Disable button on TON account

[x] Update UI for Swap screen
Actual :

Expect : https://www.figma.com/design/aEnkI859zkZaIpyzPidYwh/SubWallet-Apps?node-id=27797-280578&t=YMPNVyhnZbDlEvDI-4

[x] Don't show list account on select account modal

Related to issue #1827


WebGL not support

it seems that webgl render is not support? I changed the demo code to this, webView.loadUrl("http://get.webgl.org"), everything is fine in the page but the spinning cube, no cube is rendering.

Please try again with the latest version.


BidiTest.txt

https://unicode.org/Public/UCD/latest/ucd/BidiTest.txt

skipping this file for now, happy to come back to it if an application needs it


Enhance documentation on system and Java memory requirements based upon benchmarking

Determine and document what the memory requirements are for validate.
This would go in the system requirements section of the documentation.
Hopefully (after the memory leak fix), the java memory necessary can be provided as a fixed maximum, as opposed to being based on what is being validated.

Per latest updates, memory leak has been fixed so do not currently see need for system requirements improvement.


[NEW ALGORITHM] Depth First Search and Breadth First Search Using Tree

Description:
I Would like to add Depth First Search Algorithm Using Tree. I can provide you either in C or C++, whatever you want.
@sanjay-kv Kindly Assign to me
Checklist:

[] Contributor in GSSoC-ext
[] Want to work on it

Additional Information:
Provide any other relevant information or resources regarding the algorithm.

I would like to work on this project. Please assign it to me.


Bump alpine from 3.18 to 3.19

fixes #473

May I ask the reasoning behind bumping Alpine to 3.19 instead of releasing a separate tag?
Thank you for the effort!

May I ask the reasoning behind bumping Alpine to 3.19 instead of releasing a separate tag?
Thank you for the effort!

We have always aimed to follow the latest Alpine version otherwise we would end up maintaining a vast number of tags. The other risk is that a user relying on 8-alpine.3.18 might assume that they are still getting the latest Java version/security fixes which they wouldn't.

We have always aimed to follow the latest Alpine version
Wouldn't this mean that it would be benefitial to pin to the 3 tag, instead of the 3.1X?

otherwise we would end up maintaining a vast number of tags.
Understandable.
My original line of thought was that given that most of the dockerfiles and dockerhub operations are automated, it might not be too difficult to add support for an additional tag (such as ‘latest’ and the one before that).

Thank you!

Thanks for these updates.
When will the new alpine 3.19 images be available in docker hub ?
Don't see them yet!

@gdams Thanks for these updates. When will the new alpine 3.19 images be available in docker hub ? Don't see them yet!

It usually takes them a week or so


Fixes host option

Host option doesn't appear to be passed through to listen call.

Thanks! Makes sense ^^

It's released in 0.6.1 😃


Missing Bazel alias //:iceoryx

Brief feature description
To enable compatibility with rules_ros2 and other Bazel-built Iceoryx consumers, it would be good to have an :iceoryx alias so that e.g. https://github.com/mvukov/rules_ros2/blob/90e7e2d72e1dda8e76ae7ecb7d6e39fef6929270/repositories/cyclonedds.BUILD.bazel#L194 works (if you add the dependency like below)
bazel_dep(name = "org_eclipse_iceoryx", repo_name = "iceoryx")
git_override(
    module_name = "org_eclipse_iceoryx",
    commit = "aa13b0abdf6686fa9939fb2f85a828c1e59ce2f5",
    remote = "https://github.com/eclipse-iceoryx/iceoryx",
)

Detailed information
No cons, having the main target have the name of the main package is Bazel convention.

@lalten sorry, but can we please revert this change. It does not make sense to have the C bindings as //:iceoryx target in bazel. If at all, iceoryx_posh would be the default target but I would also argue that we should not have an //:iceoryx target at all, since there is no blessed way on how to use iceoryx. For iceoryx2, for example, only iceoryx_hoofs is used.
In your linked example, why not just use @iceoryx//:iceoryx_binding_c?

Just for the sake of understanding. What do you mean with patching rules_ros2?
We are currently working on rmw_iceoryx2 which might also have such issues, so I would like to understand the problem and find a solution that is not neglecting the non ROS 2 users of iceoryx and iceoryx2.

rules_ros2 is using @rules_foreign_cc//foreign_cc:cmake.bzl to provide @iceoryx in https://github.com/mvukov/rules_ros2/blob/90e7e2d72e1dda8e76ae7ecb7d6e39fef6929270/repositories/iceoryx.BUILD.bazel#L26
Which results in @iceoryx providing
        "libiceoryx_binding_c.a",
        "libiceoryx_posh_config.a",
        "libiceoryx_posh_roudi.a",
        "libiceoryx_posh.a",
        "libiceoryx_posh_gateway.a",
        "libiceoryx_hoofs.a",
        "libiceoryx_platform.a",

The idea in this ticket was to make any dependencies that already depend on "@iceoryx" continue to work in the exactly same way with Iceoryx's native Bazel build.

Okay, but the current bazel setup should already provide all of this libraries. I don't understand why //:iceoryx needs to be an alias to the C bindings?


Security - Implement RBAC to protect endpoints

Let's start with a single kind of user -> only authenticated users can perform operations
Define permissions -> currently just read - write - delete
Authentication : let's start with JWT  (https://medium.com/@cheickzida/golang-implementing-jwt-token-authentication-bba9bfd84d60)

Create login endpoint and business logic / infrastructure to support login
Secure protected endpoints

Materials to consider for RBAC implementation:

Building RBAC in Go - https://www.aserto.com/blog/building-rbac-in-go

i think we can authenticate peers by:

simple via ip address / cidr range
user/pass/anykey on every request
provide sessions with active/open connections for peers which are valid as long as connection is kept alive: less SYN paketstorm for opening new connections every request.

with any of the 3 options we can provide different access control levels, allow/deny specific commands for peers.

SSL to secure credentials (and transport)

Cheers!

Thanks @go-while

@go-while thanks for your ideas. Could I ask you to also reflect them in a discussion thread here (so we are going to have all related ideas in one place): https://github.com/dmarro89/dare-db/discussions/4

Moved to backlog. See https://github.com/dmarro89/dare-db/issues/33


Fix the error preventing build

Building from testing currently produces the ValueError: Newlines are not allowed exception when setuptools.setup() is called, presumably due to new functionality in setuptools. For building on the latest setuptools, all newlines (\n) in the code needs to go. I have already raised the issue in the support Discord Server.

Why we can't do line returns :(

Could this be the cause of my iMac errors?

No, it's a thing from Python 3.10 iirc

From: Luke Batema @.***>
Sent: Tuesday, 4 January 2022, 19:01
To: MrPotatoBobx/FetchCord
Cc: Adam Tazul; Author
Subject: Re: [MrPotatoBobx/FetchCord] Fix the error preventing build (PR #191)
This is a dumb error :(.
Why we can't do line returns :(
Could this be the cause of my iMac errors?
—
Reply to this email directly, view it on GitHubhttps://github.com/MrPotatoBobx/FetchCord/pull/191#issuecomment-1005089358, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQ7E52RN2XUHZS3V6IY2ZA3UUM7YLANCNFSM5LIABBVA.
You are receiving this because you authored the thread.Message ID: @.***>

Could this be the cause of my iMac errors?

No, it's a change in Python 3.10 iirc

Could this be the cause of my iMac errors?

No, it's a change in Python 3.10 iirc

But I am using 3.10...

But I am using 3.10...

In which case most likely

But I am using 3.10...

In which case most likely
Sorry I jumped the gun to untrue conclusions lol

It's fine lol. I might try using 3.9 to see if it works.


Check Getting Started, Tutorials and Contribute

Umbrella issue: https://github.com/kubernetes/website/issues/30771
Description
Check Getting Started, Tutorials and Contribute and all their subpages for mentions of Docker.
This includes:

The word "docker" in plain text
References to or docker commands in code samples. Most docker commands start with docker so this shouldn't be an issue.

How to check

Pull down the repository
Navigate to the content english  content directory for the pages in question
Do a full-text search in an IDE or via the command line grep) in only this directory
Next, look at the pages on the live website: https://kubernetes.io/docs/concepts/overview/. Some content is pulled in dynamically and will not show up in full text searches.

Reporting your results
When you are done:

Generate a list of links to files in the repo and URLs on the website for pages which need attention.
Post your list as a comment on this issue and ask that the issue be closed.

/triage accepted
/milestone 1.24
/assign @celestehorgan

Getting Started:
https://kubernetes.io/docs/tasks/tools/#kind
Note that kind has already been patched for continued compatibility, and the point of kind as a project is compatibility with Docker, so we need to leave this one in. No issue created.
https://kubernetes.io/docs/tutorials/configuration/configure-java-microservice/:

Tutorial content (https://kubernetes.io/docs/tutorials/configuration/configure-java-microservice/configure-java-microservice/ needs to be rewritten, and therefore I think the interactive Katacoda tutorial needs to be as well.

https://kubernetes.io/docs/tutorials/security/cluster-level-pss/#set-modes-versions-and-standards

I think this is fine but we should have someone pull down the alpha and verify that this tutorial is still working, particularly for the note on using Docker Desktpop with KinD on Mac OS.

https://kubernetes.io/docs/tutorials/stateless-application/guestbook/ mentions Docker in the intro and I think that line just needs deleting.


Can I control the render step by step?

for example,
I use canvas to show an animation.
when first frame is shown, i add this canvas to the GIF
then i show the second frame, and i add the second canvas to the GIF
and so on

check the sourcecode
i found we can do this.
gif.on("progress",function(pst){
	//console.log("gifprogress",pst,this);
	myprogress.value=pst;
	//log("gifprogress"+Math.round(pst*100)+"%");
});

:)

The answer to this is yes.  You can use a flag var recording = true; and only add frames if recording, and then when you want to finish the recording, recording = false; gif.render();


chore: added new translations to the spanish language

SUMMARY

Added new translations for Spanish Language - Specifically on the visualizations of Time-Series in the Spanish Language
(It's my first time creating a PR in this project, if any information is missing, please let me know)
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

1 - Start dev server with all default configs and examples
2 - Select Language -> Spanish
3 - Create a new Visualization
Now the Time-Series visualizations should have their descriptions and title updated, in spanish
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[x] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

LGTM


Changing "Material APEX" home text

Is there a way to change the default text for this "Material APEX".
I am able to change others, but finding difficulties trying to locate the container/item for this.
Wasn't able to find it in shared components also

I found the solution, which is:
Shared Components > UI > Title
But somehow it introduces a bug, which produce empty screen after changing. Renaming it back to the previous Title does not seems to work.
I have tried :

Creating new application > Straight changing title before making any form (Failed).
Renaming to old Title (Failed).

Read the docs, and found this :

Note that to use this feature, your page template must include the #LOGO# substitution string.

I tried:

Changing the title using above method
Shared Components > Templates  > Utilization Tab > Pages - Standard

3. CTRL+F these
*  class="brand-logo hide-on-small-only">
4. Make sure #LOGO# is next to it, like this:
* class="brand-logo hide-on-small-only">#LOGO#
5. Save it

Hi @Xavier-IV ,

What Material APEX version are you using?
What's not working when changing Application 12192 > User Interfaces > Logo?
Where did you find the following doc?

Note that to use this feature, your page template must include the #LOGO# substitution string.

I just changed the demo app to:

And it shows:

BTW in the next release there won't be minified HTML in the templates. We're putting back a full HTML indentation.

@vincentmorneau The docs can be found when you press the "?" circle next to the logo text box.
The APEX Material version used is the latest - v0.9.5
Here are my steps.

I'm using the empty-app.sql
Directly went to change the logo per the step taken previously.
Created dummy Home for page 1 purpose.
Run application. A short blink of login form, then empty grey screen.

I'm using APEX 5.0, upgraded from my Oracle 11g and still using, had problem setting up my 12c with APEX specifically the listener, but that is different problem.
Changing the applications logo works, only that the application shows empty grey screen. There is a short blink of "login form", but then blank.
Managed to solve using the solution above, though logically what I did was 're-save' that template form and made sure and confirmed #LOGO# tag is somewhere in the HTML. That seems to do the trick.

BTW in the next release there won't be minified HTML in the templates. We're putting back a full HTML indentation.

Glad to hear the non minified HTML, that improve our readability. Thanks

I have tried your steps and couldn't reproduce using Chrome.
If you managed to solve it using the re-save, let's wait until the next release is out and see if the un-minified HTML will fix the issue permanently.
Sorry for the inconvenience. I let you close the issue if that's okay.

Thank you for your time sir, appreciated


Write integration tests

Needed especially for funky.zsh extension script and post_install.py.

This issue is now apart of #135.


Plugins  Roumanwu  Enter error

Steps to reproduce
JsonDecodingException: Expected start of the
object '{', but had 'EOF' instead at path: $
JSON input:
Expected behavior
JsonDecodingException: Expected start of the
object '{', but had 'EOF' instead at path: $
JSON input:
Actual behavior
JsonDecodingException: Expected start of the
object '{', but had 'EOF' instead at path: $
JSON input:
Crash logs
JsonDecodingException: Expected start of the
object '{', but had 'EOF' instead at path: $
JSON input:

Mihon version
0.16.5
Android version
12
Device
k40
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have gone through the FAQ and troubleshooting guide.
[X] I have updated the app to version 0.16.5.
[X] I have updated all installed extensions.
[X] I will fill out all of the requested information in this form.

Mihon does not provide extensions or support for extensions. Please go to your extension repository provider for assistance with this issue.


test-backend: Add steps to deal with potential database leaks.

When test-backend starts up, the database ids that will be used for
each particular run of the test suite are written to a unique file.
A function was written in test_fixtures.py to drop a test database
template if the corresponding database id doesn't belong to a file.
Alongside this fact, every file that is written is removed after 60
minutes.  Meaning any potential database template can never exist
longer than one hour.
This follow-up work was added to deal with the potential race conditions
when running test-backend.  Ensuring that all templates are properly
dealt with.
Tested this by creating fake templates and running both test-backend and provision

(Not ready for review)

@timabbott fyi :)
(I'd also like to call attention to the fact that I'm not that well versed in bash scripts and would certainly appreciate your insight there)

Cool.  One general note on naming: these aren't "templates", they're "databases" generated from a common template database, which is named "zulip_test_template".

OK, so the design for this is great, but I ended up wanting to make a bunch of tweaks to the details:

Renaming references to "templates" to "databases"
Avoiding computing the path to the directory in several places, and nesting under uuid/test-backend/
Using clearer comments
Using subprocess.communicate rather than a separate shell script to the deletion.  (That separate script had a bad name anyway; "leaked" was in its name, but it operated on a list passed into it, rather than detecting what was leaked)
Using set() arithmetic to avoid unnecessarily complex list comprehension logic

I've merged this as the commits ending with 6b033c7909c21fb3e0c4581a54a554ffa658858f.  Huge thanks for fixing this @whoodes!

Oh, one detail; I removed the cleanup call in test-backend, because it threw an exception in non-parallel mode:
Destroying test database for alias 'default'...
Traceback (most recent call last):
  File "/srv/zulip-py3-venv/lib/python3.6/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/srv/zulip-py3-venv/lib/python3.6/site-packages/django/db/backends/base/base.py", line 189, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/srv/zulip-py3-venv/lib/python3.6/site-packages/django/db/backends/postgresql/base.py", line 176, in get_new_connection
    connection = Database.connect(**conn_params)
  File "/srv/zulip-py3-venv/lib/python3.6/site-packages/psycopg2/__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
  File "/home/tabbott/zulip/zerver/lib/db.py", line 43, in __init__
    super().__init__(*args, **kwargs)
psycopg2.OperationalError: FATAL:  database "zulip_test_template_773181100" does not exist

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/tabbott/zulip/tools/test-backend", line 472, in <module>
    main()
  File "/home/tabbott/zulip/tools/test-backend", line 466, in main
    destroy_leaked_test_databases()
  File "/home/tabbott/zulip/zerver/lib/test_fixtures.py", line 263, in destroy_leaked_test_databases
    with connection.cursor() as cursor:
  File "/srv/zulip-py3-venv/lib/python3.6/site-packages/django/db/backends/base/base.py", line 254, in cursor
    return self._cursor()
  File "/srv/zulip-py3-venv/lib/python3.6/site-packages/django/db/backends/base/base.py", line 229, in _cursor
    self.ensure_connection()
  File "/srv/zulip-py3-venv/lib/python3.6/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/srv/zulip-py3-venv/lib/python3.6/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/srv/zulip-py3-venv/lib/python3.6/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/srv/zulip-py3-venv/lib/python3.6/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/srv/zulip-py3-venv/lib/python3.6/site-packages/django/db/backends/base/base.py", line 189, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/srv/zulip-py3-venv/lib/python3.6/site-packages/django/db/backends/postgresql/base.py", line 176, in get_new_connection
    connection = Database.connect(**conn_params)
  File "/srv/zulip-py3-venv/lib/python3.6/site-packages/psycopg2/__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
  File "/home/tabbott/zulip/zerver/lib/db.py", line 43, in __init__
    super().__init__(*args, **kwargs)
django.db.utils.OperationalError: FATAL:  database "zulip_test_template_773181100" does not exist

This is because of the same parent-process reuse issue that caused the double-append of the number; we should look at whether we can reset the database name in DATABASES somewhere in the teardown code and re-introduce that.


Springy animation?

Hi, can springy animation work with this cool library ?
Little question not an issue actually :)

@x4080 There is support for this via
+ (RZViewAction *)springAction:(RZViewActionBlock)action
                   withDamping:(CGFloat)dampingRatio
               initialVelocity:(CGFloat)velocity
                       options:(UIViewAnimationOptions)options
                      duration:(NSTimeInterval)duration;

If this method isn't working for you please let me know!

Thanks @jvisenti

Sure thing. Closing this until something else comes up regarding springy animations


Add a DNS record type column

this task involves adding a dns_record_qtype column to the dataframe from pcap2pandas().
in scapy, the record type can be recorded as: pkt[DNS].qd.qtype
at the end of this task, the pcap2pandas() on our fork should successfully have the dns_record_qtype column as either None or a string representation of the record question/response type.
additionally, documentation will be made in issue: #8

0e34773414295301f2c803c064e32e1bcf90253f added just the qtype to column. going to test if this works with the netflix data.

it does! i see 1's and 28's and 65's! which are A, AAAA, and HTTPS requests!
Going to make the helper function to convert between number and actual record name string

created helper function in 81592e903e97643c977ef4a8a9920cadd5362843 to parse the number into a strong.
Works successfully on the http.pcap file!
the column dns_record_qtype is nan for any non-DNS records


Can we create socket device ?

Hi,
I was trying to create a socket device
In getVMConfig function :-
VZVirtioSocketDeviceConfiguration *socketVirtioConf = [[VZVirtioSocketDeviceConfiguration alloc] init];
NSArray *socketVirtioArray = [NSArray arrayWithObject:socketVirtioConf];
[conf setSocketDevices:socketVirtioArray];
In main after VZVirtualMachine init
VZVirtioSocketDevice *socketDevice = (VZVirtioSocketDevice *)[vm.socketDevices objectAtIndex:0]
I am able to get the socketDevice. But when i try to call [socketDevice setSocketListener:listener forPort:19923]; I get illegal hardware exception. Can you help me out ?

Same here. Are you using an M1 or Intel Mac?

@amit-bst @JonasGessner It took me a long time to figure this out. I had the same problem, but I was able to get passed this: what you need to pay attention to is that the setSocketListener:forPort: call must be performed on the same dispatch queue as all the other calls that interact with the virtual machine.
However, after I passed this point, I still have no clue on how to actually access connections. I have a delegate object for the listener (VZVirtioSocketListenerDelegate), but the protocol only has one method which says if you want to allow or reject connections. But I don't see any way to actually access the connection once I return true from there. (And trying to access the file descriptor from the object as passed into the function give me a bad file descriptor error.)

@mheese yes that was the issue, we were able to move forward, sorry forgot to post it here. Thank you so much !!

@amit-bst were you able to use the listener though? I still can't figure this out...

Sorry for hijacking the thread, has anyone has any success implementing a VZVirtioSocketListenerDelegate in swift? I can get the connection in but it gets abruptly closed in the VM before it can write any date.

@dmarkey @mheese Could you guys figure out how to open the connection to the VM? Anything I do, when I call connect(toPort:, completionHandler:) I get "Error Domain=NSPOSIXErrorDomain Code=54 "Connection reset by peer".
I start to suspect, that the setSocketListener:forPort part have to be run inside of the VM as a "guest application" listener, and call connect from the host application, but I have no idea how to reference the VZVirtualMachine from code within the actual Virtual Machine. I am stuck.
I wouldn't even need this whole setSocketListener:forPort / connect(toPort:, completionHandler:) memery, if Apple would provide an easy way to get the VM's ip address

I wouldn't even need this whole setSocketListener:forPort / connect(toPort:, completionHandler:) memery, if Apple would provide an easy way to get the VM's ip address

I don't know if there's an official API/documentation for this, but you can go from VM mac address to IP rather easily by parsing /var/db/dhcpd_leases

I wouldn't even need this whole setSocketListener:forPort / connect(toPort:, completionHandler:) memery, if Apple would provide an easy way to get the VM's ip address

I don't know if there's an official API/documentation for this, but you can go from VM mac address to IP rather easily by parsing /var/db/dhcpd_leases

Documentation: https://developer.apple.com/documentation/virtualization/sockets
Yup, I choose the MAC address way as well


Bug: fatal: config.json: duplicate entry for NB platform

The nuki plugin is having a fatal error and causes the homebridge service to boot loop.
[18/06/2022, 22:00:34] [MyNuki] fatal: config.json: duplicate entry for NB platform
homebridge-nb v1.2.8
node v16.15.1
homebridge v1.4.1
homebridge-lib v5.6.0
Below (redacted) are both the logs and home bridge configs
[18/06/2022, 22:00:27] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null
[18/06/2022, 22:00:32] [HB Supervisor] Restarting Homebridge...
[18/06/2022, 22:00:32] [HB Supervisor] Starting Homebridge with extra flags: -I -P /var/lib/homebridge/node_modules --strict-plugin-resolution
[18/06/2022, 22:00:32] [HB Supervisor] Started Homebridge v1.4.1 with PID: 34864
[18/06/2022, 22:00:33] Loaded config.json with 0 accessories and 8 platforms.
[18/06/2022, 22:00:33] Loaded 10 cached accessories from cachedAccessories.
[18/06/2022, 22:00:33] ---
[18/06/2022, 22:00:33] Loaded plugin<EMAIL_ADDRESS>[18/06/2022, 22:00:33] Registering platform 'homebridge-config-ui-x.config'
[18/06/2022, 22:00:33] ---
[18/06/2022, 22:00:33] Loaded plugin<EMAIL_ADDRESS>[18/06/2022, 22:00:33] Registering platform 'homebridge-nb.NB'
[18/06/2022, 22:00:33] ---
[18/06/2022, 22:00:33] Loaded plugin<EMAIL_ADDRESS>[18/06/2022, 22:00:33] Registering platform 'homebridge-samsung-tizen.SamsungTizen'
[18/06/2022, 22:00:33] ---
[18/06/2022, 22:00:33] Loaded plugin<EMAIL_ADDRESS>[18/06/2022, 22:00:33] Registering platform 'homebridge-sensibo-ac.SensiboAC'
[18/06/2022, 22:00:33] ---
[18/06/2022, 22:00:34] Loaded plugin<EMAIL_ADDRESS>[18/06/2022, 22:00:34] Registering platform 'homebridge-soma.SOMA'
[18/06/2022, 22:00:34] ---
[18/06/2022, 22:00:34] Loaded plugin<EMAIL_ADDRESS>[18/06/2022, 22:00:34] Registering platform 'homebridge-tuya.TuyaLan'
[18/06/2022, 22:00:34] ---
[18/06/2022, 22:00:34] Loaded plugin<EMAIL_ADDRESS>[18/06/2022, 22:00:34] Registering platform 'homebridge-webos-tv.webostv'
[18/06/2022, 22:00:34] ---
[18/06/2022, 22:00:34] Loaded plugin<EMAIL_ADDRESS>[18/06/2022, 22:00:34] Registering platform 'homebridge-z2m.zigbee2mqtt'
[18/06/2022, 22:00:34] ---
[18/06/2022, 22:00:34] Loading 8 platforms...
[18/06/2022, 22:00:34] [Config] Initializing config platform...
[18/06/2022, 22:00:34] [Config] Running in Service Mode
[18/06/2022, 22:00:34] [zigbee2mqtt] Initializing zigbee2mqtt platform...
[18/06/2022, 22:00:34] [zigbee2mqtt] Connecting to MQTT server at mqtt://localhost:1883
[18/06/2022, 22:00:34] [SensiboAC] Initializing SensiboAC platform...
[18/06/2022, 22:00:34] [SOMA] Initializing SOMA platform...
[18/06/2022, 22:00:34] [SOMA] homebridge-nb v1.2.8, node v16.15.1, homebridge v1.4.1, homebridge-lib v5.6.0
[18/06/2022, 22:00:34] [webostv] Initializing webostv platform...
[18/06/2022, 22:00:34] [SamsungTizen] Initializing SamsungTizen platform...
[18/06/2022, 22:00:34] [TuyaLan] Initializing TuyaLan platform...
[18/06/2022, 22:00:34] [MyNuki] Initializing NB platform...
[18/06/2022, 22:00:34] [MyNuki] fatal: config.json: duplicate entry for NB platform
[18/06/2022, 22:00:34] [MyNuki] homebridge-nb v1.2.8, node v16.15.1, homebridge v1.4.1, homebridge-lib v5.6.0
[18/06/2022, 22:00:34] [zigbee2mqtt] Restoring accessory: 0x001788010867deca (0x001788010867deca)
[18/06/2022, 22:00:34] [zigbee2mqtt] Restoring accessory: 0x001788010867e056 (0x001788010867e056)
[18/06/2022, 22:00:34] [zigbee2mqtt] Restoring accessory: 0x50325ffffefe9244 (0x50325ffffefe9244)
[18/06/2022, 22:00:34] [zigbee2mqtt] Restoring accessory: 0x2c1165fffe33225d (0x2c1165fffe33225d)
[18/06/2022, 22:00:34] [zigbee2mqtt] Restoring accessory: 0x2c1165fffe29e70e (0x2c1165fffe29e70e)
[18/06/2022, 22:00:34] [zigbee2mqtt] Restoring accessory: 0x00158d0007df96b2 (0x00158d0007df96b2)
[18/06/2022, 22:00:34] [TuyaLan] Marked Bedroom Fan unreachable by faulting Service.Bedroom Fan.On
[18/06/2022, 22:00:34] [TuyaLan] Marked Bedroom Fan unreachable by faulting Service.Bedroom Fan Light.On
[18/06/2022, 22:00:34] [webostv] Init - initializing devices
[18/06/2022, 22:00:34] [webostv] [Lounge TV] Init - got TV configuration, initializing device with name: Lounge TV
[18/06/2022, 22:00:34] [TuyaLan] Starting discovery...
Setup Payload:
X-HM://XXXXXXXXXX
Enter this code with your HomeKit app on your iOS device to pair with Homebridge:

    ┌────────────┐
    │ XXX-XX-XXX │
    └────────────┘

[18/06/2022, 22:00:34] [zigbee2mqtt] Publish to 'zigbee2mqtt/0x50325ffffefe9244/get': '{"state":0,"brightness":0,"color_temp":0,"color":0}'
[18/06/2022, 22:00:34] [zigbee2mqtt] Publish to 'zigbee2mqtt/0x2c1165fffe33225d/get': '{"state":0,"brightness":0,"color_temp":0,"color":0}'
[18/06/2022, 22:00:34] [zigbee2mqtt] Publish to 'zigbee2mqtt/0x2c1165fffe29e70e/get': '{"state":0,"brightness":0,"color_temp":0,"color":0}'
[TuyaDiscovery] Discovery started on port 6666.
[TuyaDiscovery] Discovery started on port 6667.
[18/06/2022, 22:00:34] Lounge TV 1B40 is running on port 41551.
[18/06/2022, 22:00:34] Please add [Lounge TV 1B40] manually in Home app. Setup Code: XXX-XX-XXX
[18/06/2022, 22:00:34] Homebridge v1.4.1 (HAP v0.10.2) (Homebridge 55C6) is running on port 51305.
[18/06/2022, 22:00:34] Got SIGTERM, shutting down Homebridge...
[18/06/2022, 22:00:34] Bedroom TV 950C is running on port 46767.
[18/06/2022, 22:00:34] Please add [Bedroom TV 950C] manually in Home app. Setup Code: XXX-XX-XXX
[18/06/2022, 22:00:34] [zigbee2mqtt] Connected to MQTT server
[18/06/2022, 22:00:34] [zigbee2mqtt] Using Zigbee2MQTT v1.25.2 (identified via zigbee2mqtt/bridge/info)
[18/06/2022, 22:00:35] [SOMA] hardware: Raspberry Pi 4B 1.4 (4GB)
[18/06/2022, 22:00:35] [SOMA] os: Debian GNU/Linux 11 (bullseye)
[18/06/2022, 22:00:35] [SOMA] restored 2 accessories from cache
[18/06/2022, 22:00:35] [MyNuki] hardware: Raspberry Pi 4B 1.4 (4GB)
[18/06/2022, 22:00:35] [MyNuki] os: Debian GNU/Linux 11 (bullseye)
[18/06/2022, 22:00:35] [TuyaLan] Discovered Bedroom Fan (bf97888264150da9dfb8aw) identified as FanLight (3.3)
[Tuya] Changing ping gap for Bedroom Fan to 9s
[18/06/2022, 22:00:35] [TuyaLan] Bedroom Fan has a different type (1 vs undefined)
[18/06/2022, 22:00:35] [TuyaLan] Unregistering Bedroom Fan
[Tuya DEBUG] reconnect called for Bedroom Fan
[Tuya] Discovery ended.
[18/06/2022, 22:00:36] [TuyaLan] Connected to Bedroom Fan
[Tuya] Sending first query to Bedroom Fan (3.3)
[Tuya] Heard back from Bedroom Fan with command 10
[18/06/2022, 22:00:36] [TuyaLan] Ready to handle Bedroom Fan (FanLight:3.3) with signature {"1":true,"3":"6","4":"forward","9":false,"10":100,"11":100,"102":"normal","103":"off"}
[18/06/2022, 22:00:39] [HB Supervisor] Homebridge Process Ended. Code: 143, Signal: null

{
    "bridge": {
        "name": "Homebridge xxxxx",
        "username": "xxxxx",
        "port": 11111,
        "pin": "xxx-xx-xxx"
    },
    "accessories": [],
    "platforms": [
        {
            "name": "Config",
            "port": 8581,
            "platform": "config"
        },
        {
            "mqtt": {
                "base_topic": "zigbee2mqtt",
                "server": "mqtt://localhost:1883",
                "user": "xxxx",
                "password": "xxxx",
                "reject_unauthorized": false,
                "keepalive": 60,
                "version": 4,
                "disable_qos": false
            },
            "defaults": {
                "exclude": false
            },
            "platform": "zigbee2mqtt"
        },
        {
            "apiKey": "xxxxxxxxxxxxx",
            "disableFan": true,
            "disableDry": true,
            "ignoreHomeKitDevices": false,
            "enableSyncButton": false,
            "syncButtonInAccessory": false,
            "enableOccupancySensor": false,
            "enableClimateReactSwitch": false,
            "enableHistoryStorage": true,
            "disableHorizontalSwing": true,
            "disableLightSwitch": true,
            "externalHumiditySensor": false,
            "allowRepeatedCommands": false,
            "debug": false,
            "platform": "SensiboAC"
        },
        {
            "name": "SOMA",
            "platform": "SOMA"
        },
        {
            "devices": [
                {
                    "name": "Lounge TV",
                    "ip": "<IP_ADDRESS>",
                    "mac": "xxxxxxxx",
                    "pollingInterval": 5,
                    "volumeLimit": 100,
                    "volumeControl": "none",
                    "channelControl": false,
                    "mediaControl": false,
                    "ccRemoteRemap": {
                        "information": "QMENU"
                    }
                }
            ],
            "platform": "webostv"
        },
        {
            "devices": [
                {
                    "name": "Bedroom TV",
                    "ip": "<IP_ADDRESS>",
                    "mac": "xxxxxxx",
                    "method": "frame",
                    "options": [
                        "Frame.ArtSwitch.Disable",
                        "Frame.PowerSwitch.Disable"
                    ]
                }
            ],
            "platform": "SamsungTizen"
        },
        {
            "platform": "TuyaLan",
            "devices": [
                {
                    "name": "Bedroom Fan",
                    "type": "FanLight",
                    "manufacturer": "Arlec",
                    "model": "GRID Ceiling Fan",
                    "id": "xxxxxx",
                    "key": "xxxxxx",
                    "maxSpeed": 6
                }
            ]
        },
        {
            "name": "MyNuki",
            "platform": "NB"
        }
    ]
}

[18/06/2022, 22:00:33] Loaded plugin<EMAIL_ADDRESS>[18/06/2022, 22:00:33] Registering platform 'homebridge-nb.NB'
[18/06/2022, 22:00:33] ---
[18/06/2022, 22:00:34] Loaded plugin<EMAIL_ADDRESS>[18/06/2022, 22:00:34] Registering platform 'homebridge-soma.SOMA'
[18/06/2022, 22:00:34] ---

It looks like Homebridge is loading the plugins alright.
[18/06/2022, 22:00:34] [SOMA] Initializing SOMA platform...
[18/06/2022, 22:00:34] [SOMA] homebridge-nb v1.2.8, node v16.15.1, homebridge v1.4.1, homebridge-lib v5.6.0

But when initialising the plugin, Homebridge SOMA identifies as Homebridge NB, causing it to think it's being initialised twice because of a duplicate config.json entry.
This looks suspiciously like a recent issue on Discord, but I haven't heard back from that.  I haven't been able to reproduce that issue.
I think you just updated the plugins to their latest versions?  Could you humour me and double-check the file system on the Pi's µSD card for corruptions?

[18/06/2022, 22:00:32] [HB Supervisor] Starting Homebridge with extra flags: -I -P /var/lib/homebridge/node_modules --strict-plugin-resolution

I think you've used the apt package to install Homebridge?  I think that no longer uses npm to install the plugins.  Could you check whether homebridge-lib is listed under the node_modules of both homebridge-soma and homebridge-nb, or whether the installation has flattened /var/lib/homebridge/node_modules and only has one copy of homebridge-lib.  Normally I would issue npm -list homebridge-lib, but I'm not sure if there's an equivalent for the hb-service installed plugins.

I have been able to reproduce the issue, by manually depuping homebridge-lib.  homebridge-lib v5.6.1 contains a fix.  Simply re-install the plugins and they should pick-up this version of homebridge-lib.

Thanks soo much @ebaauw for fixing this, working fine now.
Yes, homebridge installed using apt and running 64bit raspberry pi os.


[GS_GEN_NODE_EMBEDDING] Unnecessary saved_model_path specified in the input config

If we use the same config for training and embedding generation, we still need to include the save_model_path for the training job which can be unnecessary.

The issue here is because we define saved_model_frequency here, it is not related to the GS_GEN_NODE_EMBEDDING, if we put all the config in the files. Then it should be fine.


Refactor the peer connection code to avoid failure handling bugs

TODO

[ ] work out why the refactor sends more errors to the syncer
[ ] merge these changes
[ ] follow-up by making this code a lot easier to maintain - split functions, map complex matches to custom enums

Existing Work
PR https://github.com/ZcashFoundation/zebra/pull/1817
Is your feature request related to a problem? Please describe.
In #1531 and #1600, we fixed some failure handling bugs in the zebra-network peer connection code.
But the way the code is structured risks introducing more of these bugs in future.
We should refactor this code, to make these bugs impossible.
Describe the solution you'd like

make fail_with take an owned Connection struct
if other functions also need to take an owned struct, they should return ownership on success, and call fail_with on error
split the failure cleanup code out of the task loop into its own separate function
at the end of fail_with, call the cleanup code, and end the task
abolish the Failed state, and delete or refactor all the code that uses it

Describe alternatives you've considered
We could do nothing, but that risks future bugs when developers add new failure modes, but don't actually test those failure modes.
We could create tests for every possible error path, but that's going to take ongoing effort.
Additional context
The panic bugs caused by this badly structured code are #1510 and #1599

@yaahc and I had a chat, she'll work on this.

Marking this as high, because we're actually seeing the bug happen reasonably frequently.

We haven't seen these bugs in a long while.
A big refactor is really risky, so I'm not sure if we should do it.
I'd prefer to do smaller refactors after NU5 activation.
I think there's a much simpler alternative to this ticket for now:
https://github.com/ZcashFoundation/zebra/issues/3109

We have other tickets that would fix the same issue.


Feature/287 edit at any time

LGTM. I know this builds on #449, but in case this gets merged first, it is missing 69a3cd3, b9e6405 and 763a868


Docker 1.8

Would love an update to 1.8.

The PR for 1.8.1 is already merged.
https://github.com/rancher/docker-from-scratch/pull/13

Awesome, thanks!


Python fixes

Support python3 with count.py example and align stdout flushing in count.py with the behaviour of the count.sh.
Additionally, the Python example on the frontpage of http://websocketd.com/ needs an update. Since there is no flushing of stdout, the example only outputs at the end when the script finishes. Doesn't seem to be a github page, so no patch.

Thanks, moving sleep is a good fix

But speaking about python3... Since examples are so simple, any chance you could help to make others both 2 (at least with future) and 3 compatible?

to be followed up in #112

The frontpage is in the gh-pages branch (index.html). You can send a pull req.

The only thing necessary for 3 compatibility is brackets for print() according to 2to3:
mab:python mab$ 2to3 dump-env.py
RefactoringTool: Skipping implicit fixer: buffer
RefactoringTool: Skipping implicit fixer: idioms
RefactoringTool: Skipping implicit fixer: set_literal
RefactoringTool: Skipping implicit fixer: ws_comma
RefactoringTool: Refactored dump-env.py
--- dump-env.py	(original)
+++ dump-env.py	(refactored)
@@ -34,11 +34,11 @@
   'HTTPS'
 ]
 for var_name in var_names:
-  print '%s=%s' % (var_name, os.environ.get(var_name, '<unset>'))
+  print('%s=%s' % (var_name, os.environ.get(var_name, '<unset>')))
   stdout.flush() # Remember to flush

 # Additional HTTP headers
 for var_name in os.environ:
   if var_name.startswith('HTTP_'):
-    print '%s=%s' % (var_name, os.environ[var_name])
+    print('%s=%s' % (var_name, os.environ[var_name]))
     stdout.flush() # Remember to flush
RefactoringTool: Files that need to be modified:
RefactoringTool: dump-env.py

mab:python mab$ 2to3 greeter.py
RefactoringTool: Skipping implicit fixer: buffer
RefactoringTool: Skipping implicit fixer: idioms
RefactoringTool: Skipping implicit fixer: set_literal
RefactoringTool: Skipping implicit fixer: ws_comma
RefactoringTool: Refactored greeter.py
--- greeter.py	(original)
+++ greeter.py	(refactored)
@@ -10,5 +10,5 @@
 # For each line FOO received on STDIN, respond with "Hello FOO!".
 while True:
   line = stdin.readline().strip()
-  print 'Hello %s!' % line
+  print('Hello %s!' % line)
   stdout.flush() # Remember to flush
RefactoringTool: Files that need to be modified:
RefactoringTool: greeter.py

Interesting... I thought "" % ""  would not work in 3 and apparently it's fine there.

Will take care of those.


Added cancellation

Please take a look here: https://www.db-bankline.deutsche-bank.com/download/MT940_Deutschland_Structure2002.pdf

@mschindler83 There are some issues with composer setup. Please take a look. :-)


Feature Requests

Fan Control with different power profiles
Driver version detector and a way to flag that there's a driver update
Screen Control. I.e refresh rate
Free adjustment of TDP for different profiles
Switch profiles based on charger being connected or disconnected. (If charger connected it could switch from silent to balanced / performance)
Disable dGPU on battery and enables when plugged in
Maybe a way to control the macro pad and LED Matrix in app
A way to control the battery charge limit (Not sure if it is even do able in windows with FW but would love it.)
Extra hotkeys for changing settings
A smaller version of the UI that acts as a pop for quick acces too all settings.
As you can see, these are all functions in g helper that I would love to see incorporated in some way to this some how.

There are a lot of good ideas here !
I already worked on a way to integrate fan control but since it rely on activating unsecured settings in windows like test drivers,... I don't like so I'm waiting for a Bios update to enable more control natively. 😁
I'll look into the others ideas tomorrow if I have time to commit some updates stay tuned !

Yeah I wasn't sure what is or ins't included already seeing as I dont have one yet. Looking forward to seeing this progress!

look the new version :)

WOW JUST WOW! This is excellent!

And there is still more to come 😁

Another QOL suggestion would be to have the window be forced to the front, so that another app can't 'hide' it?


Add "Forbidden: bot was kicked from the group chat" exception

HTTP code: 403
Error message:

Forbidden: bot was kicked from the group chat exception
Forbidden: bot was kicked from the group channel exception
Forbidden: bot was kicked from the group supergroup exception

You receive this error if you add bot to group, remove it, and try to send message to that group afterwards

This issue was moved to TelegramBots/Telegram.Bot.Extensions.Exceptions#2

Hi. I'm not sure if this is the right place, but I'm at a loss for options. My bot receives the "bot was kicked from the supergroup chat" when it tries to send a message to a group it used to be a part of, was removed and then added again as an admin. Privacy mode is disabled.

Same here...
Bot was removed from Group and re-added. After that, i got these error when trying to send messages to the group.

I ended up having to create a new bot for the purpose.
On Fri, 2 Apr, 2021, 3:17 pm Peter Mayer, @.***> wrote:

Hi. I'm not sure if this is the right place, but I'm at a loss for
options. My bot receives the "bot was kicked from the supergroup chat" when
it tries to send a message to a group it used to be a part of, was removed
and then added again as an admin. Privacy mode is disabled.
Same here...
Bot was removed from Group and re-added. After that, i got these error
when trying to send messages to the group.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/TelegramBots/Telegram.Bot/issues/662#issuecomment-812458112,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJ3GN3NLI3KHO3X7DL63F2TTGWHCZANCNFSM4EY2QYMA
.

Any news on this?


Any plans to release the Faster Version?

I saw other issues that  report a very slow network. I tested and got extremely low FPS when detecting faces. There is any plan to release the faster version?

Hi! I am also interested in a faster version. Any news?

Hi! I am also interested in a faster version. Any news?

I think they don't...
Btw I found faster approaches. I should look at them: CenterFace, LFFD...


Cannot load 30min video in Video-MME

Hi,
Thanks for your impressive work!
When I'm evaluating your model on Video-MME and input a video about 30min long, Qwen2-VL-2B model gets stuck.
The gpu memory is always low (just the model size) and the gpu util keeps 0%.
The process stuck at video, audio, info = io.read_video( in qwen_vl_utils.vision_process, Line 126.
Do you have any good ideas about the video data loading process? Btw, how long does it take to evaluate a Qwen2-VL model on Video-MME benchmark?
Thanks very much.

@zhang9302002 For Video-MME, we first process the videos into multiple images saved locally, then treat these images as video frames for further processing. Reference code is as follows:
import decord
import torch
import os
from PIL import Image
from tqdm import tqdm
from multiprocessing import Pool

min_frames = 4
max_frames = 768

def process_video(file):
    video_id = file.strip().split('.')[0]
    video_reader = decord.VideoReader(f'data/{file}')
    video_len = len(video_reader)
    duration = video_len / video_reader.get_avg_fps()
    nframes = round(duration) * 2
    nframes = min(max(nframes, min_frames), max_frames, video_len // 2 * 2)
    start_frame_ids = 0
    end_frame_ids = video_len - 1
    idx = torch.linspace(start_frame_ids, end_frame_ids, nframes).round().long().clamp(0, video_len - 1)
    frames = video_reader.get_batch(idx.tolist()).asnumpy()
    os.makedirs(f'video_{max_frames}frames_high/{video_id}', exist_ok=True)
    for i in range(len(frames)):
        img = Image.fromarray(frames[i])
        img.save(f'video_{max_frames}frames_high/{video_id}/frame_{i}.jpg', quality=100)

if __name__ == '__main__':
    files = [f for f in os.listdir('data')]
    with Pool(processes=96) as pool:
        list(tqdm(pool.imap_unordered(process_video, files), total=len(files)))

Thank you very much!


stash needs to get ref via branch, cant via heads same as bitbucket

As proposed in https://discourse.drone.io/t/panic-or-undefined-error-when-create-build-from-bitbucket-repository/8549/6 using the workaround from bitbucket also in stash solves the issue, that new builds can not be created without providing a commit.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

Hey @bakito, thanks for this. If you wish to pull the latest, it should be fixed. I'll close this PR.


More v4 endpoint additions

Summary
in #148 we discussed creating a v4 version of the /builds/:timestamp/split_registry endpoint that is used by the rails client and js client (transitively).
this PR adds that endpoint for future consumption. this is nice in that it allows all the clients to be consuming the same version of the split registry schema (v4) whenever they're updated.
this PR also introduces the experience_sampling_weight to the v4 endpoints.
NOTE: i moved the experience_sampling_weight loading behavior from the SplitRegistry model to the Rails.configuration in application.rb. This felt like a better way to share the behavior between the SplitRegistry-based and the non-SplitRegistry-based  ways of getting at the list of applicable splits for a client (via app+version+timestamp or via build timestamp) cc @jmileham @aburgel the main result of this move is that the tests covering the tiny bit of behavior for validating the experience sampling weight are gone
/domain @Betterment/test_track_core
/no-platform

<< domain TAFN

<< domain TAFN

bump!

bump!

domain LGTM!

domain LGTM!


Gloudemans \ Shoppingcart \ Exceptions \ ShoppingcartInvalidRowIDException

I'm getting the above message when trying to remove an item from my cart.
rowid }}">Remove
Which is wrapped in a foreach that comes from:
$carts = Cart::content();
And i'm adding content like so:
$cartContents = Cart::add(array('id' => randomNumber(), 'name' => $input['product_name'], 'qty' => 1, 'price' => $price));
But when I do Cart::remove($cart_item->rowid) i get the above error?
Any idea's?

Try this:
Cart::destroy();
Then:
Cart::add(array('id' => randomNumber(), 'name' => $input['product_name'], 'qty' => 1, 'price' => $price, 'delivery' => $input['delivery']));
Finally:
Cart::remove($id);

@hexencoded Where dit the $id variable come from?

In my case:
Cart controller - http://pastebin.com/MRZY9sqM
id getting from HTML:
 Удалить
Javascript:
$('.cart-remove').on('click', function () {
var btn = $(this);
btn.button('loading');
    var id = $(this).data('id');

    $.ajax({
        url: "/cart/" + id + "/remove",
        type: 'DELETE',
        success: function(data) {
             $('#cart').text('Корзина (' + data.data.count + ')');
            btn.button('reset');
        }
    });
});

Removing items does not working correctly.

@hexencoded
Okay, I see your problem. What you're misunderstanding is the fact that $row->id is not the same as $row->rowId.
The id is just the ID you set yourself when you added the item to the cart. Usually the primary key of the item. The rowId is a unique ID, generated by the cart when you add an item. It's used to identify unique items in the cart. You can have multiple rows in the cart with the same id but their rowId will be different (because they have different options for instance)
What you want to do is in your HTML snippet:

    rowId }}}" class="cart-remove"> Удалить

Thanks! Now this work perfectly.

Just an update here for those who are in development when you use Cart::destroy(); or Cart::remove(); or any of cart functions you cant follow that by dd(); and expect it to be updated in your session

@Crinsane  cart remove is not working properly, http://<IP_ADDRESS>/cart,
in here two plan or  two can not co-exist. i dont know why this is happening....

Hi, I use integer for 'total' column in my database. I put 'total'=>Cart::subtotal() in my controller  and what I get in my database for this 'total' column is only 1 digit of it`s front value (for example it should get 500000, but it only get 5). How to overcome this problem? what to change?thanks a lot

Error:- Class Gloudemans\Shoppingcart\Cart does not exist
I am already added "use cart;" in controller
and i am currently use laravel 5.4 version
please suggest me something for that

Hi @Crinsane , I use integer for 'total' column in my database. I put 'total'=>Cart::subtotal() in my controller and what I get in my database for this 'total' column is only 1 digit of it`s front value (for example it should get 500000, but it only get 5). How to overcome this problem? what to change?thanks a lot

Hi @Crisane it would be really awesome if you added conditions such as discounts,coupons.sales etc.

I'm getting this msg : Using version ^2.5 for gloudemans/shoppingcart
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for gloudemans/shoppingcart ^2.5 -> satisfiable by gloudemans/shoppingcart[2.5.0].
- Conclusion: remove laravel/framework v5.7.3
- Conclusion: don't install laravel/framework v5.7.3
.
.
.
What should I do....

I have face the same problem. Additional # will be added after row_id for first row of my Gloudemans Shopping cart on update. What can I do ?
My demo url is - http://localhost/magic_shop/cart?_token=De1K9HIxNXk7o9AqdxfeHQJGz2kCx8F0tURtAoFl&qty=1&row_id=f754bf78868fbd1a07e2607314283270#

Hi. I have face the same problem. I want to use this shopping cart in one restaurant business. But in this case, my product have my extra item, like I want to add cart a pizza but with this pizza I need  extra chis, extra chicken ect. Now how to add cart multiple extra item with one product item?

${{ Session::get('coupon')['balance'] }}
This is the correct use in blade file , before instead of session I used cart that's why it thrown error, now it's working perfect
Controller code given below for adding coupon.
public function Coupon(Request $request)
{
$coupon = $request->coupon;
$check = DB::table('coupons')->where('coupon',$coupon)->first();
if($check)
{
Session::put('coupon',[
            'name' => $check->coupon,
            'discount' => $check->discount,
            'balance' => Cart::Subtotal()-$check->discount,

            ]);

            $notification=array(
            'messege'=>'Coupon applied successfully',
            'alert-type'=>'success'
             );
           return Redirect()->back()->with($notification);

    }
    else
    {
        $notification=array(
            'messege'=>'Invalid coupon',
            'alert-type'=>'warning'
             );
           return Redirect()->back()->with($notification);
    }
}

Blade part.

Subtotal : ${{ Session::get('coupon')['balance'] }}

Coupon : 525

Shipping Charge : 525

Vat : 525

Total : 525


Add to list of allowed priors

Currently the list of allowed priors is: uniform, log uniform, and Gaussian (which I should add the label "normal" to). I should also add the log normal distribution and exponential distribution (including links to e.g. their Wikipedia descriptions). I should also allow the user to input a functional form of the prior (which should check that it only contains variables from the model).
Finally,  for the log uniform distribution I should have the samples in log space and only exponentiate at the end.

The parameters that use the log uniform prior distribution are now kept in log space for the MCMC, but are converted back when passed into the model for the final samples. This was added in commit b6e6a7f

I've added the exponential distribution to the allowed priors as of commit 7ebf817.


[Meetup] December - Made In Belgium

Meetup concept Idea: Belgian developers making Belgian Products.
Task List
Preparation

[ ] Find speaker(s)
[ ] Find location
[ ] Determine date
[ ] Announce event on Meetup.com
[ ] Promote on social media

After the event

[ ] Send mail to attendees to wrap up
[ ] Shoutouts on social media
[ ] Share content (slides / video / images) if/when available
[ ] Promote next event (If available)

Context and additional details

@ge0ffrey and @ronald can give talks about their products.
Already in talks with a host to host this one in Ghent, Ghelamco-arena.

@TomCools did you mention the wrong Ronald?
Greets from Germany

It seems so! Sorry to bother you! 😅 but feel free to reach out if you want to talk at our JUG at some point. 🤣

Ghelamco-arena

Now you are talking. That will be a mega-meetup!

Yes @octonato, with a capacity of 20,000 people we can have 6 Devoxx'es at one time :-) :-) :-)

Well.. Techorama NL had 2 stages on the bleechers at Amsterdam Arena 😅
Let's see if we can get like 50 people together or something.

@ge0ffrey and @rdehuyss do you have any preference for availability for December period? I'm guessing pretty early in the month to avoid the holidays? I need to provide a date to the organisation so they can lock in the venue before september :).

Hi @TomCools (aka papa)! Voor mij gaat enkel nog dinsdag 5 december. Ik heb toegezegd om vanaf 7 december in de US op JUG tour te gaan 🤓.

5 December is set. JUVO is gonna try to get the Ghelamco Arena in Ghent, which will be a new province we land in.
Speakers will be @rdehuyss and @ge0ffrey

I look forward to it 🙂
Op zo 27 aug. 2023 21:36 schreef Tom Cools @.***>:

5 December is set. JUVO is gonna try to get the Ghelamco Arena in Ghent,
which will be a new province we land in.
Speakers will be @rdehuyss https://github.com/rdehuyss and @ge0ffrey
https://github.com/ge0ffrey
—
Reply to this email directly, view it on GitHub
https://github.com/BeJUG/bejug.github.io/issues/31#issuecomment-1694744027,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABLF4HN4DPXI3QT67P5XQDXXOOSXANCNFSM6AAAAAAZSS425Y
.
You are receiving this because you were mentioned.Message ID: <BeJUG/bejug
<EMAIL_ADDRESS>

@FDelporte will you take care of the "after event" tasks?

Thanks for the reminder @TomCools, were actually already done, just needed closing here...


Fix second tail recursive transformation bug.

Checklist

[ ] Linked to Github Issue
[ ] Unit tests added
[ ] Integration tests added.
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

Codecov Report
Attention: Patch coverage is 88.27160% with 19 lines in your changes missing coverage. Please review.

Project coverage is 88.77%. Comparing base (79a558d) to head (31f4336).

Files with missing lines
Patch %
Lines

src/compiler.rs
88.27%
19 Missing :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #787   +/-   ##
=======================================
  Coverage   88.77%   88.77%
=======================================
  Files         121      121
  Lines       35793    35805   +12
=======================================
+ Hits        31774    31786   +12
  Misses       4019     4019

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


[VoteTracker] fix config key name

A variable in the VoteTracker cog is incorrectly named resulting in an error. A simple fix but this will allow you to actually set the vote role

Thanks for the fix

No problem


KV Graveler: Add repository unique identifier and states

First part of https://github.com/treeverse/lakeFS/issues/3713

Added state, uid and modified create flow. Delete flow will be updated in https://github.com/treeverse/lakeFS/issues/3713


docs: Changing commit style guidelines and adding screenshots

Fixes issue #73
Changes: Changed commit style guidelines and added screenshots of app in docs.

@chiragw15 @mariobehling can we add [ci skip] to non-code changes?


[pointer][invariant] Remove AliasingMapping

We previously used these to model UnsafeCell agreement, but that only
works when we support an Inaccessible aliasing invariant, which we
don't anymore. Future commits will use a different mechanism to model
UnsafeCell agreement. There is no other circumstance under which a
pointer can change its aliasing model.
Makes progress on #1122, #1866

This PR is on branch ptr-overhaul.

#1913
#1910
#1942
#1911

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

Project coverage is 89.46%. Comparing base (4bd33fb) to head (ac629d9).

Additional details and impacted files
@@                            Coverage Diff                             @@
##           Ifc49755af0d90eeefe7822d755d508403c266bda    #1942   +/-   ##
==========================================================================
  Coverage                                      89.46%   89.46%
==========================================================================
  Files                                             17       17
  Lines                                           5838     5838
==========================================================================
  Hits                                            5223     5223
  Misses                                           615      615

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


[Bug] Channel Lag issue

Fred version - 9.1.2 - REPLICAS Features enabled
Redis version - 7.2.5 JEMALLOC
Platform - LINUX Debian Bullseye
Deployment type - cluster
My cluster setup consists of 4 servers. Each 3 masters and to each master 1 slave.
12 masters - 12 slaves in total.
Describe the bug
Not sure if it's a bug, but I think it is redis-cli doesn't suffer from this. Fred does. After a while it says Error channel lagged by 5559. This comes from using the RX.
To Reproduce
Steps to reproduce the behavior:
Just heavily fast send to a channel and wait a couple of seconds
Following code:
use fred::{
    prelude::{ClientLike, EventInterface, PubsubInterface, RedisClient},
    types::RedisConfig,
};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let config = RedisConfig::from_url("redis-cluster://masked:7002?node=masked:7002&node=masked:7005&node=masked:7008&node=masked:7011")?;
    let client = RedisClient::new(config, None, None, None);
    client.init().await?;

    client.ssubscribe("channel").await?;
    let mut rx = client.message_rx();
    loop {
        let message = rx.recv().await?;
        println!("Message: {:?}", message);
    }
    Ok(())
}

Should get an error like this:
Logs
Error: channel lagged by 5559

(If possible set RUST_LOG=fred=trace and run with --features debug-ids)

Hi @CR7273868,
That's an indication that the broadcast channel is receiving messages faster than they're being processed on the receiving end. You can change the buffer size of the broadcast channels with the broadcast_channel_capacity configuration option like this:
https://github.com/aembke/fred.rs/blob/f798232966ff6ee75ad60c09f42bef67f440a9ed/examples/misc.rs#L16-L17
The default is 32, so you'll probably want to increase that quite a bit.

Closing for now, but let me know if you still have any issues with this.


Make EEG column based on lambda

In this commit, I changed the eeg column to eeg_input which is now a lambda column for more efficient data access.

Codecov Report

Merging #159 (30e1cda) into dev (dd6ea85) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev     #159   +/-   ##
=======================================
  Coverage   84.87%   84.87%
=======================================
  Files          45       45
  Lines        2804     2804
  Branches      493      493
=======================================
  Hits         2380     2380
  Misses        320      320
  Partials      104      104

Flag
Coverage Δ

unittests
84.87% <ø> (ø)

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

Continue to review full report at Codecov.

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


Combine global node deps in build instructions

One less command to copy and paste to build the project.

Ping

thanks!


fix(s2n-quic-crypto): require new enough version of zeroize

Description of changes:
This crate uses the ZeroizeOnDrop trait which was only introduced in the 1.5 series of zeroize.  Earlier versions of this series were yanked, so 1.5.3 is the oldest version that can be used.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Thanks for the PR!

I've updated this to depend on 1.5 instead of 1.5.3.  The way cargo upgrades work it would otherwise not allow upgrades to 1.6 which would not be desirable for a library.  Cargo will skip the yanked versions for new dependencies anyway.

1.2.3  :=  >=1.2.3, <2.0.0
1.2    :=  >=1.2.0, <2.0.0
1.5.3 was fine actually. But looking at cargo yank docs, even, 1 wont be an issue since new crates will use the latest and skip the yanked versions.
https://doc.rust-lang.org/cargo/commands/cargo-yank.html
https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-cratesio

Cargo will skip the yanked versions for new dependencies anyway.

Do we need to update the dependency then?

1.2.3 := >=1.2.3, <2.0.0 1.2 := >=1.2.0, <2.0.0 1.5.3 was fine actually.

Oh that's good to know, I must have misremembered this.

But looking at cargo yank docs, even, 1 wont be an issue since new crates will use the latest and skip the yanked versions.

This was not the case for me, I stumbled upon this because on a new small test project it picked too old a version for some reason.  As long as it is not specified to be >=1.5 there are scenarios where cargo will allow earlier versions, which will break.

Do we need to update the dependency then?

I believe so, though I don't mind whether that's 1.5 or 1.5.3 (because I don't think that part matters).

This was not the case for me, I stumbled upon this because on a new small test project it picked too old a version for some reason. As long as it is not specified to be >=1.5 there are scenarios where cargo will allow earlier versions, which will break.

Are you sure you didn't have a Cargo.lock file? If its reproducible then its a Cargo bug and you should report that since zeroize is not the only dependency which can yank crates we certainly dont want to be managing yank versions manually.

This was not the case for me, I stumbled upon this because on a new small test project it picked too old a version for some reason. As long as it is not specified to be >=1.5 there are scenarios where cargo will allow earlier versions, which will break.

Are you sure you didn't have a Cargo.lock file? If its reproducible then its a Cargo bug and you should report that since zeroize is not the only dependency which can yank crates (also in the future) and we certainly dont want to be managing yank versions manually.

So maybe there was a bug that needs reporting to cargo as I did not understand why it chose this version.  Though that might also indicate I was doing something wrong.
However it does not change what s2n-quic needs to specify as dependency requirement.  It needs zeroize >= 1.5 since it uses an API first introduced there.  So that's what it should depend on.
The yanking of some 1.5 versions are not part of the issue being addressed here, I apologise for mixing that in when trying to figure out what version to depend on.  We can expect cargo to deal with yanking.