VerneMQ getting killed and using a lot of memory

Environment

VerneMQ Version: 1.2.1
OS: Ubuntu 16.04
Erlang/OTP version (if building from source): deb package

Expected behavior
verneMQ should keep running and not use up the entire memory available
leveldb is also set to 20%

Please describe the expected behaviour.

Actual behaviour
  crasher:
    initial call: riak_sysmon_filter:init/1
    pid: <0.346.8>
    registered_name: []
    exception exit: {{noproc,{gen_server,call,[kernel_safe_sup,{start_child,{timer_server,{timer,start_link,[]},permanent,1000,worker,[timer]}},infinity]}},[{gen_server,init_it,6,[{file,"gen_server.erl"},{line,352}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}
    ancestors: [riak_sysmon_sup,<0.135.0>]
    messages: []
    links: [<0.136.0>]
    dictionary: []
    trap_exit: false
    status: running
    heap_size: 376
    stack_size: 27
    reductions: 2105
  neighbours:
2018-01-22 07:45:33 =SUPERVISOR REPORT====
     Supervisor: {local,riak_sysmon_sup}
     Context:    start_error
     Reason:     {noproc,{gen_server,call,[kernel_safe_sup,{start_child,{timer_server,{timer,start_link,[]},permanent,1000,worker,[timer]}},infinity]}}
     Offender:   [{pid,{restarting,<0.140.0>}},{id,riak_sysmon_filter},{mfargs,{riak_sysmon_filter,start_link,[]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]

2018-01-22 07:45:33 =SUPERVISOR REPORT====
     Supervisor: {local,riak_sysmon_sup}
     Context:    shutdown
     Reason:     reached_max_restart_intensity
     Offender:   [{pid,{restarting,<0.140.0>}},{id,riak_sysmon_filter},{mfargs,{riak_sysmon_filter,start_link,[]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]

And in error.log
2018-01-22 07:45:33.389 [error] <0.136.0> Supervisor riak_sysmon_sup had child riak_sysmon_filter started with riak_sysmon_filter:start_link() at {restarting,<0.140.0>} exit with reason no such process or port in call to gen_server:call(kernel_safe_sup, {start_child,{timer_server,{timer,start_link,[]},permanent,1000,worker,[timer]}}, infinity) in context start_error
2018-01-22 07:45:33.389 [error] <0.346.8> CRASH REPORT Process <0.346.8> with 0 neighbours exited with reason: no such process or port in call to gen_server:call(kernel_safe_sup, {start_child,{timer_server,{timer,start_link,[]},permanent,1000,worker,[timer]}}, infinity) in gen_server:init_it/6 line 352
2018-01-22 07:45:33.390 [error] <0.136.0> Supervisor riak_sysmon_sup had child riak_sysmon_filter started with riak_sysmon_filter:start_link() at {restarting,<0.140.0>} exit with reason no such process or port in call to gen_server:call(kernel_safe_sup, {start_child,{timer_server,{timer,start_link,[]},permanent,1000,worker,[timer]}}, infinity) in context start_error
2018-01-22 07:45:33.390 [error] <0.136.0> Supervisor riak_sysmon_sup had child riak_sysmon_filter started with riak_sysmon_filter:start_link() at {restarting,<0.140.0>} exit with reason reached_max_restart_intensity in context shutdown

Please include minimal steps to reproduce the issue, if possible.

Just running verneMQ normally. Conf settings
https://gist.github.com/ranvijayj/f7301f70296b408d8d2b8c16675d6966
So, leveldb I set to 20 (%) memory in vernemq.conf.. How can I change buffer size for leveldb.. Shows a very high number in generated conf above ^^
The whole memory gets used up and vernemq gets killed. What can I change for less memory usage?

I am getting the same error
Can someone please help
I am getting this error in log
ail -f error.log
2018-05-31 02:57:48.576 [error] <0.9249.0> CRASH REPORT Process <0.9249.0> with 0 neighbours crashed with reason: bad argument in call to ets:lookup(vmq_status, ready) in vmq_cluster:is_ready/0 line 68
2018-05-31 02:57:48.577 [error] <0.9249.0> Ranch listener {{0,0,0,0},2052} terminated with reason: badarg
2018-05-31 02:57:48.969 [error] <0.9250.0> CRASH REPORT Process <0.9250.0> with 0 neighbours crashed with reason: bad argument in call to ets:lookup(vmq_config_cache, ignore_db_config) in vmq_config:get_env/3 line 79
2018-05-31 02:57:48.969 [error] <0.9250.0> Ranch listener {{0,0,0,0},2052} terminated with reason: badarg
2018-05-31 02:57:49.083 [error] <0.9251.0> CRASH REPORT Process <0.9251.0> with 0 neighbours crashed with reason: bad argument in call to ets:lookup(vmq_config_cache, ignore_db_config) in vmq_config:get_env/3 line 79
2018-05-31 02:57:49.083 [error] <0.9251.0> Ranch listener {{0,0,0,0},2052} terminated with reason: badarg
2018-05-31 02:57:58.389 [error] <0.387.0> Failed to start Ranch listener {{0,0,0,0},8443} in ranch_ssl:listen([{ip,{0,0,0,0}},{port,8443},{nodelay,true},{linger,{true,0}},{send_timeout,30000},{send_timeout_close,true},{cacertfile,"/etc/vernemq/gd_bundle_domain.com.crt"},{certfile,"/etc/vernemq/domain.com.crt"},{keyfile,"/etc/vernemq/domain.com.key"},{ciphers,["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-ECDSA-AES256-SHA384","ECDHE-RSA-AES256-SHA384","ECDHE-ECDSA-DES-CBC3-SHA","ECDH-ECDSA-AES256-GCM-SHA384","ECDH-RSA-AES256-GCM-SHA384","ECDH-ECDSA-AES256-SHA384","ECDH-RSA-AES256-SHA384","DHE-DSS-AES256-GCM-SHA384","DHE-DSS-AES256-SHA256","AES256-GCM-SHA384","AES256-SHA256","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES128-GCM-SHA256","ECDHE-ECDSA-AES128-SHA256","ECDHE-RSA-AES128-SHA256","ECDH-ECDSA-AES128-GCM-SHA256","ECDH-RSA-AES128-GCM-SHA256","ECDH-ECDSA-AES128-SHA256","ECDH-RSA-AES128-SHA256","DHE-DSS-AES128-GCM-SHA256","DHE-DSS-AES128-SHA256","AES128-GCM-SHA256","AES128-SHA256","ECDHE-ECDSA-AES256-SHA","ECDHE-RSA-AES256-SHA","DHE-DSS-AES256-SHA","ECDH-ECDSA-AES256-SHA","ECDH-RSA-AES256-SHA","AES256-SHA","ECDHE-ECDSA-AES128-SHA","ECDHE-RSA-AES128-SHA","DHE-DSS-AES128-SHA","ECDH-ECDSA-AES128-SHA","ECDH-RSA-AES128-SHA","AES128-SHA"]},{fail_if_no_peer_cert,false},{verify,verify_none},{verify_fun,{#Fun<vmq_ssl.0.123873112>,no_crl}},{depth,1},{versions,['tlsv1.2']}]) for reason eaddrinuse (address already in use)
2018-05-31 02:57:58.389 [error] <0.387.0> CRASH REPORT Process <0.387.0> with 0 neighbours exited with reason: {listen_error,{{0,0,0,0},8443},eaddrinuse} in gen_server:init_it/6 line 352
2018-05-31 02:57:58.389 [error] <0.245.0>@vmq_ranch_config:reconfigure_listeners_for_type:187 can't reconfigure mqttwss listener({0,0,0,0}, 8443) with Options [{max_connections,10000},{nr_of_acceptors,10},{mountpoint,"on"},{cafile,"/etc/vernemq/gd_bundle_domain.com.crt"},{depth,1},{certfile,"/etc/vernemq/domain.com.crt"},{keyfile,"/etc/vernemq/domain.com.key"},{require_certificate,false},{tls_version,'tlsv1.2'},{use_identity_as_username,false}] due to {{shutdown,{failed_to_start_child,ranch_acceptors_sup,{listen_error,{{0,0,0,0},8443},eaddrinuse}}},{child,undefined,{ranch_listener_sup,{{0,0,0,0},8443}},{ranch_listener_sup,start_link,[{{0,0,0,0},8443},10,ranch_ssl,[{ip,{0,0,0,0}},{port,8443},{nodelay,true},{linger,{true,0}},{send_timeout,30000},{send_timeout_close,true},{cacertfile,"/etc/vernemq/gd_bundle_domain.com.crt"},{certfile,"/etc/vernemq/domain.com.crt"},{keyfile,"/etc/vernemq/domain.com.key"},{ciphers,["ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-ECDSA-AES256-SHA384","ECDHE-RSA-AES256-SHA384","ECDHE-ECDSA-DES-CBC3-SHA","ECDH-ECDSA-AES256-GCM-SHA384","ECDH-RSA-AES256-GCM-SHA384","ECDH-ECDSA-AES256-SHA384","ECDH-RSA-AES256-SHA384","DHE-DSS-AES256-GCM-SHA384","DHE-DSS-AES256-SHA256","AES256-GCM-SHA384","AES256-SHA256","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES128-GCM-SHA256","ECDHE-ECDSA-AES128-SHA256","ECDHE-RSA-AES128-SHA256","ECDH-ECDSA-AES128-GCM-SHA256","ECDH-RSA-AES128-GCM-SHA256","ECDH-ECDSA-AES128-SHA256","ECDH-RSA-AES128-SHA256","DHE-DSS-AES128-GCM-SHA256","DHE-DSS-AES128-SHA256","AES128-GCM-SHA256","AES128-SHA256","ECDHE-ECDSA-AES256-SHA","ECDHE-RSA-AES256-SHA","DHE-DSS-AES256-SHA","ECDH-ECDSA-AES256-SHA","ECDH-RSA-AES256-SHA","AES256-SHA","ECDHE-ECDSA-AES128-SHA","ECDHE-RSA-AES128-SHA","DHE-DSS-AES128-SHA","ECDH-ECDSA-AES128-SHA","ECDH-RSA-AES128-SHA","AES128-SHA"]},{fail_if_no_peer_cert,false},{verify,verify_none},{verify_fun,{#Fun<vmq_ssl.0.123873112>,no_crl}},{depth,1},{versions,['tlsv1.2']}],cowboy_protocol,[{env,[{dispatch,[{'_',[],[{[<<"mqtt">>],[],vmq_websocket,[{mountpoint,"on"},{use_identity_as_username,false}]}]}]}]}]]},permanent,infinity,supervisor,[ranch_listener_sup]}}
2018-05-31 02:57:58.389 [error] <0.385.0> Supervisor {<0.385.0>,ranch_listener_sup} had child ranch_acceptors_sup started with ranch_acceptors_sup:start_link({{0,0,0,0},8443}, 10, ranch_ssl, [{ip,{0,0,0,0}},{port,8443},{nodelay,true},{linger,{true,0}},{send_timeout,30000},{send_timeout_close,...},...]) at undefined exit with reason {listen_error,{{0,0,0,0},8443},eaddrinuse} in context start_error
Can someone please help


GH-981: Use OpenAIAsyncClient for streaming in AzureOpenAiChatModel

Resolves https://github.com/spring-projects/spring-ai/issues/981

Switch to OpenAIAsyncClient for streaming operations
Modify AzureOpenAiChatModel constructor to accept OpenAIClientBuilder
Update getChatCompletionsStream to use non-blocking async client
Refactor related classes and tests to support OpenAIClientBuilder
Revise AzureOpenAiAutoConfiguration to provide OpenAIClientBuilder
Add AzureOpenAiChatClientTest to verify streaming functionality
Adjust existing tests for compatibility with OpenAIClientBuilder

merged in ef3d43ca9cd5c24b34af1c4d536eb2c522c998bb


Support lenient parser

Note: this is a strawman for supporting lenient parser in the bindings. Of course, this can't be landed until there is a new release of the tantivy crate with the lenient parser included.
Closes #109

Ready for review now
r? @cjrh @adamreichold

Hoping to get around to it this weekend.

@GodTamIt you should be good to merge this and ill cut a new release, as the lenient parser was in tantivy 0.21


Friend has the files but isnt able to see the mod in game

@zuev93 @zuev93 @Bromvlieg I downloaded the files and everything seems to be working fine for me, but then my friend downloaded them and they are in the exact same places as me, yet they dont show the mod in game. I am running windows 10 and he is on windows 11 and that is the only difference that I have been able to figure out. I was wondering if maybe the mod is having an issue running on windows 11 or if there was someway that I could fix this issue myself.

@zuev93 @zuev93 @Bromvlieg I downloaded the files and everything seems to be working fine for me, but then my friend downloaded them and they are in the exact same places as me, yet they dont show the mod in game. I am running windows 10 and he is on windows 11 and that is the only difference that I have been able to figure out. I was wondering if maybe the mod is having an issue running on windows 11 or if there was someway that I could fix this issue myself.

You can use this tool https://github.com/Antonio0447/ONIMultiplayer_Installer or you can download it manually by placing it in the onedrive directory.

@White-Reaper1 so far there is only one common problem around installation:
You should locate correct mod folders in documents/one drive folder.
There are 2 ways to find correct folder from the game if you are struggling to find it manually:

Go to game mods section (if you have any installed) and click Browse button.  Click gear icon -> Local saves. It'll bring you close to folder that you need

In both cases you would need to do several steps up in folder tree until you see mods directory and after follow usual install guide (create Local/MultiplayerMod/{modfiles})
Hope it helps.


Requirements: Haskell source matcher

A new requirement rule should be added that receives a Haskell declaration, and tries to match it against a declaration in the source code.  The declaration can be any Haskell code, which is expected to be matched exactly as an abstract syntax tree.  However, there are a few special keywords that, when they occur as identifiers, have special matching behavior.  These are:

__any matches anything.
__contains acts like a function, and each of its arguments must match a distinct subexpression or subpattern.
__var matches only a single variable, but can be any variable.
__num matches only a numeric literal, but can be any number.
__str matches only a string literal, but can be any text.

Options that could be offered:

Whether to match only top-level definitions (the default) or child declarations as well.
Another rule that should be enforced only on matching declarations (that is, trim the module to only matching declarations, then enforce the second pattern)
Cardinality constraints: atLeast: 1 and atMost: 5

There are going to be a whole ton of special-case rules to add here.  Some thinking:

The current implementation has no way to match function definitions that might include any number of equations.  We definitely want this because I want to be able to say "there must exist a definition of this function".
The current implementation has no way to match tuples of arbitrary length and constrain their contents.  That's a requirement for replacing hasSimpleParams.  One could imagine something like __tupleof, which is a function-like form that matches only tuples, when each of their elements matches the argument.  So __tupleof __num would match tuples of numbers, of any length.
One could raise similar objections any time a list occurs in the grammar: we'd like a way to match lists of arbitrary length, while still asserting a match on their contents.  We might also like a way to match a list in arbitrary order.
Parentheses are tricky.  Sometimes they are needed to get the right parse for a template.  But then the extra (or missing) parentheses end up affecting the match.  For example, __contains (3 + 5) would need the parentheses to make the whole subexpression match.  I'd like to just skip parentheses entirely for matching, but I don't think that haskell-src-exts resolves operator precedence and fixity.  Maybe that's okay, since rules usually aren't checking correctness of the expressions anyway!

I've changed the constraint language a bit.  New example: https://code.world/#PCXhbbzoWG44k_8k17bJCPQ

I've added implementations of __var, __num, __str, __char, and __tupleof.  I've also taken my own suggestion above to ignore parentheses when checking a pattern.  This is pretty close to an intiial implementation, but I think __contains is still an important step.
Remaining issues:

Implementation of __contains
Some kind of if-then.  This is different from the rule-level ifThen because it would apply the second pattern only to parts of the system that match the first.
Some kind of general solution to the problem of handling repeated elements.  For instance, functions with multiple clauses, or where clauses with many elements, etc.

I have some ideas about the latter.  Perhaps it would work to define a general rule that the entity under consideration should have a superset of the elements in the template, in the same order.  If that isn't the rule wanted in a specific instance, perhaps another wildcard could change the rule for a subtree.  (As an extreme case of this, I am considering add a wildcard called __exactly that doesn't do any fuzzy matching at all in a subtree.)

I now have an implementation of subexpression matching (called contains_ for now... but see #788).  I'll mark this completed, and open a new bug for if-then matching.  #785 already covers the issue with repeated elements.


TEP-0114: Custom Tasks Beta - Conversion from v1alpha1.Run to v1beta1.CustomRun

In TEP-0114: Custom Tasks Beta, we proposed migrating Custom Tasks and Runs to beta.
This issue tracks adding a conversion from v1alpha1.Run to v1beta1.CustomRun.

/assign

linking https://github.com/tektoncd/pipeline/issues/5532 where some relevant discussion is occurring


Auto-generated completion scripts add NuShell support

 Issue by hustcer
Monday Sep 20, 2021 at 00:22 GMT
Originally opened as https://github.com/clap-rs/clap/issues/2778

Please complete the following tasks

[X] I have searched the discussions
[X] I have searched the existing issues

Clap Version
3.0.0-beta.4
Describe your use case
Auto-generated completion scripts add NuShell support
Describe the solution you'd like
Auto-generated completion scripts add NuShell support, just as clap support (Bash, Zsh, Fish, Elvish and PowerShell), Thx
Alternatives, if applicable
No response
Additional Context
nu --version
───┬────────────────────┬────────────────────────────────────────────────────────────────────────────────────
 # │      Column0       │                                      Column1
───┼────────────────────┼────────────────────────────────────────────────────────────────────────────────────
 0 │ version            │ 0.37.0
 1 │ build_os           │ macos-x86_64
 2 │ rust_version       │ rustc 1.55.0
 3 │ cargo_version      │ cargo 1.55.0
 4 │ pkg_version        │ 0.37.0
 5 │ build_time         │ 2021-09-14 19:45:30 +00:00
 6 │ build_rust_channel │ release
 7 │ features           │ clipboard-cli, ctrlc, dataframe, default, rustyline, term, trash, uuid, which, zip
 8 │ installed_plugins  │
───┴────────────────────┴────────────────────────────────────────────────────────────────────────────────────

 Comment by epage
Monday Sep 20, 2021 at 17:01 GMT

Somewhat unrelated but I wonder what the code size / compile time looks like for all of our generators and if there is anything we can help developers with development time as our generators expand in number of targets and capabilities.

 Comment by pksunkara
Monday Sep 20, 2021 at 21:09 GMT

That was the intention for extra generators. For the basic common ones, we have them in the package itself, but if we were to implement this, we would create a new package called clap_generator_nushell or something.
One thing I am not sure if we can do in Rust because of these new const stuff is, can a user extend the Shell enum through 3rd party code (traits)?

 Comment by epage
Monday Sep 20, 2021 at 21:27 GMT

A user could manually impl ArgEnum and flatten Shell into their enum or we could add flatten support but I'm not aware of a language feature that would help.


Feature request - add macOS installers to default acceptableApplicationBundleIDs

Adding this as requested on Slack.
The problem - a user had a new MacBook, which had clearly been sitting on a shelf for a while so was not running the latest macOS. Nudge was installed with a deadline about six weeks in the past, and allowGracePeriods set, so about 24 hours after deployment Nudge kicked into aggressive mode. The user opened System Preferences, and instead of opting to install the Monterey update opted to install Ventura. Once Ventura downloaded and the installer started, Nudge kept hiding it and taking focus, which was very annoying for the user who thought they were doing as asked.
I have worked around this by adding com.apple.InstallAssistant.macOSVentura (etc) to acceptableApplicationBundleIDs in my JSON file, but it may be best to make this a default behaviour.

#412 is open on this as well.

Will close as duplicated. Apologies - started to open issue, had to attend to cats, then submitted and clearly missed my window.


controller creates health and cacheInvalidation topics

Move creation of the health and cacheInvalidation topics
from ansible to controller startup using ensureTopic
from MessagingProvider SPI.

PG2 2356 - queued

PG2 2356 - completed.  2 test failures, but don't look related to me.

PG2 2362 🔵

rebased to resolve merge conflicts.  Ready for review.

correction.  missed a piece of the kafka cluster change to carry through replication factor.  Not ready for review.

Rebased to pick up pureconfig (thanks @markusthoemmes!) and cleaned up SPI/config by moving all the kafka topic specific configurations to new kafka.conf file.

PG2 2413 🏃

rebased to pick up using single couchdb instance in travis. review comments addressed & squashed.

PG2 2423 🔵

Is there a companion to this?

yes. companion is 4399

large enough changes to address review comments that I'm redoing PG testing.
PG2 2444 🏃

PG3 1443 🏃

needs companion label

PG4 1117 🏃

Final PG run good: PG1 2398


macos generate AppDelegate class crash issues

macos
auto cls = objc_allocateClassPair((Class) "NSResponder"_cls, "AppDelegate", 0);

new class name "AppDelegate",the name maybe exist,it cause cls is null,then crash.
shuld change to other class name

I do not know if this is still relevant for you but I suspect the time it could become a problem is when the user of the library has created their own app delegate with the name AppDelegate.
Even if we were to rename this class, I have a feeling that something bad would happen anyway:

The user creates their own app delegate and sets it onto the NSApplication instance.
The library also sets its own app delegate.
One of those would overwrite the other.
Bad stuff happens.

I have not tested this scenario but to me it seems likely. I cannot currently imagine a good way to fix that situation without changing the API.


Prepare Identity for February 2024 releases

API change check
API changes are not detected in this pull request.


Hyperdrive playback

Some files do not seek due to exoplayer, yes we get it.
Since we can clearly see that the program can playback that media at faster speeds (without restarting), then take advantage of this to seek forward as fast as feasible (since length is unavailable, always have space ahead of seek bar cursor) until the target time. if you can play in reverse that would also be advantageous here (or otherwise backstep/trace).
if the program sees length of 00:00 then avoid restarting (just keep it playing or pause) since that is likely an inconvenience to the user (i have never appreciated it*), only restart if bar is moved to there or by a decisive distance (or ultimately necessary to "reverse").
*Well, since the seek bar is inactive, maybe once.

@moneytoo just curious if there anything known about this issue on google/ExoPlayer because I didn't find anything in search

What files do not seek? Anything other than fragmented mp4?

FLV files #350, I also like to play some AAC files with your player (that have not been fixed up). Yeah I know I can reprocess the flv files losslessly with 'ffmpeg -c copy' but have kept these as is.


Precompile $regex filters recursively

find({ "name": { $not: { $regex: '^S' }}})
would result in a "b.test is not a function" error, because $regex would not
have been compiled.

Thanks, I will need to verify the performance impact of the function call using 'npm run benchmark' later today.  Ideally any added overhead, such as function call would be made only when $regex op exists in the query.

I know, that performance is critical, but how to recognize whether a $regex operation is present, without iterating through the object? Anyway, the precompile function is called only once per execution, so impact should be minimal.

I moved the precompile function out of the find() function (and renamed it to precompileQuery). Shall I merge these commits into one push force?

You are right, I included these suggestions.

Thanks again @plepe!

Great, thanks!


Support for the razor components

Hi there!
One question:
Is there a plan to support the razor components / blazor framework
Thanks and regards
Michael

I'm currently writing a razor component (currently server side) for fastreport Webreport.
My test already works.
Are you interested to include it to the upcoming .NET Core 3.0 fastreport release?
Or would it be better to provide a seperate nuget package?

If you are interested i would like to discuss my code, because i have to do some tricks (like parsing the generated HtmlString to extract script tags)
Eventually we could do it more clean.
Thanks and regards

If you are interested i would like to discuss my code, because i have to do some tricks (like parsing the generated HtmlString to extract script tags)
Eventually we could do it more clean.
Thanks and regards

Hi, how can i contact you to discuss this issue? I'm trying to implement it in Blazor and also tried to parse everything within the script tag. but it didn't worked out for me just yet. Can you please share your solution? Thanks in advance.

Hi!
Did you try to run a report script in a server-side Blazor? What about wasm?
We are thinking about such model:

Preparing reports on a backand (Webreport)
Rendering/interactions/etc on a front (blazor webasm)

If to talk about the server-side Blazor may be it is possible to merge preparing and rendering in one component.
We are looking forward to watching details of your implementation and your code.

hi @8VAid8 ,
unfortunately i didn't manage to implement webreport as a blazor component. instead i implement it as a razor page and just open a new tab with the webreport view or designer.
i tried to parse the html, scripts and css out of the string that webreports render() method returns and inject it via jsinterop, but to no avail.
problem is, there are still some divs that calls some js methods for updating. i can't query for these divs, because there ids are randomized at runtime. also the js code of webreport is minified and names are randomized, so i can't read it to call the methods directly via jsinterop.
i guess we have to wait for a blazor update.

Hi, @newbiE247! We've implemented Blazor components in the FastReport.Net.


Update CODEOWNERS

@blessedcoolant Per discussion, have updated codeowners so that we're not force merging things.
This will, however, necessitate a much more disciplined approval.

While we still wait on original code owners for most approvals on the PR's, this will be handy in emergency cases where @hipsterusername and I have many times merged some PR's by overriding. This will just make that legal.

Can I be added to the README.md & mkdocs.yaml?

Can I be added to the README.md & mkdocs.yaml?

added to mkdocs, but no entry that would cover readme. submit a pr to that and we can approve


Add version output to executables and logs

Something that will print out the release version or, in the case of a non-release build, the git hash

Done.


Fix form auto submit

When the pell editor exists inside a form, clicking on the actions triggers the form submission. This happens due to this line.
Not sure why this behaviour happens, but returning false stops it.
Here is an example to demonstrate this behaviour:
<!DOCTYPE html>

    <meta charset="utf-8">
    <title>Pell Bug Demostration</title>
    <link rel="stylesheet" type="text/css" href="https://unpkg.com/pell/dist/pell.min.css">

    <form action="/submit/" method="post">

            Title:
            <input type="text" name="title" id="title" required>

            Description:
            <textarea name="description" cols="50" rows="3" id="description"></textarea>

            Text:

        <input type="submit" value="Submit">
    </form>

It's because they're <button> elements with no type attribute, which means they default to being submit. Adding a type of 'button' should also fix it.

@danielsamuels aha! I see, thank you.

and the solution is add root: 'pell' in the init section?
i cant find other changes

@CingKong The solution is to add type=button HTML attribute on the buttons.

Okay, I kept trying to find it out from your post, and ignored @danielsamuels ' comment.
Thanks.


bump version to v0.13.1

Hello @nicks, @landism,
Please review the following commits I made in branch maiamcc/v0.13.1:
11a0f2e8586f6fd3429f0f388159774c35b1033b (2020-04-09 15:45:27 -0400)
bump version to v0.13.1
Code review reminders, by giving a LGTM you attest that:

Commits are adequately tested
Code is easy to understand and conforms to style guides
Incomplete code is marked with TODOs
Code is suitably instrumented with logging and metrics

i don't see a v0.13.1 binary?
https://github.com/windmilleng/tilt/releases/tag/v0.13.1
am i missing something?

ah yeah I didn't realize that the docker push error stopped the goreleaser run -- rerunning now

alright @nicks should be there now 😅


Remove CLI doc entry related to API-only function

Closes #10278

@cpuguy83 It is because you can't specify volumes on docker create?

@LK4D4 Because you can't specify volumes on docker start

LGTM then

LGTM - @fredlf @jamtur01 @spf13 @moxiegirl

LGTM

LGTM


Wrong validation of LightBlock's commits

I have a failing MBT test for the LightClient verifier, with an empty commit in the LightBlock.
This is how the test fails:
    > step 2, expecting Invalid
      > lite: NotEnoughTrust(NotEnoughTrust(VotingPowerTally { total: 100, tallied: 0, trust_threshold: TrustThresholdFraction { numerator: 1, denominator: 3 } }))

The relevant test part is this:
[current |->
    [Commits |-> {},
      header |->
        [NextVS |-> { "n1", "n2", "n3", "n4" },
          VS |-> { "n2", "n3" },
          height |-> 5,
          lastCommit |-> { "n1", "n3" },
          time |-> 6]],
  now |-> 1401,
  verdict |-> "INVALID",
  verified |->
    [Commits |-> { "n1", "n2", "n4" },
      header |->
        [NextVS |-> { "n2", "n3" },
          VS |-> { "n1", "n2", "n4" },
          height |-> 2,
          lastCommit |-> { "n1", "n2", "n3", "n4" },
          time |-> 3]]]

current here is the untrusted header, and verified is the trusted header, which are submitted to the verifier.verify() function. From the point of view of the spec, and also from my personal understanding, an untrusted signed header with an empty commit should be rejected as invalid. The implementation, on the other hand, returns the NotEnoughTrust verdict. My understanding is that this comes from the specific order of executing checks in this code, probably for performance reasons, as verifying the signatures is costly.
We could address this from different angles:

Change the spec, to allow more behaviors in this case. While this is doable, in my view a signed header with an empty commit still should be under the Invalid category, and not under NotEnoughTrust.
Change the order of checks in the code; don't know whether this is doable or acceptable from the performance point of view.
Add some lightweight checks that would verify, e.g., that the commit contains more than 1/3 of votes from the validator set, without actually verifying the signatures. This is going to be lightweight from the performance point of view, but would make the code a bit more complicated.

I think @romac should probably decide here; I am open for discussions.
P.S. The English spec (see especially the text below under "Details of the Functions") is also not very precise about how this is computed (e.g. in multiple places it talks about the number of validators instead of their voting power), so, probably, it should be also improved. (cc. @josef-widder?)

Ok, now I understand more, and I think this is a real bug in the implementation.
I actually have two distinct tests, where there is an empty commit. The one above fails, but the one below passes:
[current |->
    [Commits |-> {},
      header |->
        [NextVS |-> { "n3", "n5", "n6", "n7", "n8" },
          VS |-> {},
          height |-> 3,
          lastCommit |->
            { "n1", "n10", "n2", "n3", "n4", "n5", "n6", "n7", "n8", "n9" },
          time |-> 2]],
  now |-> 4,
  verdict |-> "INVALID",
  verified |->
    [Commits |->
        { "n1", "n10", "n2", "n3", "n4", "n5", "n6", "n7", "n8", "n9" },
      header |->
        [NextVS |-> { "n1", "n10", "n2", "n4", "n9" },
          VS |->
            { "n1", "n10", "n2", "n3", "n4", "n5", "n6", "n7", "n8", "n9" },
          height |-> 1,
          lastCommit |-> {},
          time |-> 1]]]

This one has the outcome:
    > step 0, expecting Invalid
      > lite: Invalid(ImplementationSpecific("no signatures for commit"))

Examining this outcome points to CommitValidator.validate().
The reason why this check fires for the second case is that the validator set in empty here, but non-empty in the first case. This results in the following translations by the Testgen:
First case:
          "commit": {
            "height": "5",
            "round": 1,
            "block_id": {
              "hash": "43656DB8FE2E7A7C7F0FBEFED072538FEBF7CF66447E850B60A5242E2E832732",
              "parts": {
                "total": 0,
                "hash": "0000000000000000000000000000000000000000000000000000000000000000"
              }
            },
            "signatures": [
              {
                "block_id_flag": 1,
                "validator_address": null,
                "timestamp": null,
                "signature": null
              },
              {
                "block_id_flag": 1,
                "validator_address": null,
                "timestamp": null,
                "signature": null
              }
            ]
          }
        },

Second case:
          "commit": {
            "height": "3",
            "round": 1,
            "block_id": {
              "hash": "DD774230DAE6853ED35710C7FCC735F33B9A97E09A8E25A7F5495DF61BF13727",
              "parts": {
                "total": 0,
                "hash": "0000000000000000000000000000000000000000000000000000000000000000"
              }
            },
            "signatures": []
          }
        },

As can be seen, Testgen actually models the absent signatures as BlockIDFlagAbsent, and this case is not accounted for by CommitValidator.validate().

Accepting an empty commit definitely should be a bug. Amazing! How many tests did you generate to stumble upon that one?

If I correctly understand the implications, in the function verify_to_target(), incorrectly classifying the LightBlock as NotEnoughTrust instead of Invalid has pretty severe consequences: the block will be added to the light store, and on any further attempt to get the block for this height it will be fetched from the light store, i.e. it will be stuck there forever.
@romac could you please confirm whether I understand the things right?

@konnov I was in the process of replacing our JSON fixtures with TLA+ tests, and wrote one TLA+ test that tests for <2/3 validator power in the commit, and another test that has an empty commit. In fact, both of those were kind of "flickering" -- on one execution of Apalache it's passing, on another it fails... What I've definitely learned so far is not to ignore any failing test;) Because it's so simple to rerun Apalache, and the test will pass...
What this also shows, I think, is that we should eventually incorporate running Apalache as part of the CI, not only running the static auto-generated tests. Because each time you run the model checker, the produced test is a bit different.

This also shows that we should think of initializing the random seeds in SMT. Flickering is good but it is not good :)

I think we want both modes probably -- with initialization for predictability, and without -- for variability;)

@romac FYI: this PR now contains a static auto-generated test that fails as described above. The branch is updated to the latest master.

Awesome work, @andrey-kuprianov!

If I correctly understand the implications, in the function verify_to_target(), incorrectly classifying the LightBlock as NotEnoughTrust instead of Invalid has pretty severe consequences: the block will be added to the light store, and on any further attempt to get the block for this height it will be fetched from the light store, i.e. it will be stuck there forever.
@romac could you please confirm whether I understand the things right?

Yep, that's correct.

@romac FYI: this PR now contains a static auto-generated test that fails as described above. The branch is updated to the latest master.

Awesome, will take a look at it asap!

I have a fix for this, should I push it to #641?

While we are at it, does anyone know what (if anything) should be done for https://github.com/informalsystems/tendermint-rs/blob/6be5ebf8dc673cebfbfeed67737f76e73e7d4eef/light-client/src/operations/commit_validator.rs#L56-L57?

Here is the result of running cargo test -- --nocapture after applying this patch to #641: https://gist.github.com/romac/b40640cab1e62765bdca14fff9066d9f
@andrey-kuprianov Any idea what might be going wrong at https://gist.github.com/romac/b40640cab1e62765bdca14fff9066d9f#file-gistfile1-txt-L388-L430?

I have a fix for this, should I push it to #641?

Great, thanks @romac! Does it make sense to merge the fix to master? I will then merge master into my branch. Or, alternatively, pushing your fix to #641 is also fine; whatever you prefer.

Here is the result of running cargo test -- --nocapture after applying this patch to #641: https://gist.github.com/romac/b40640cab1e62765bdca14fff9066d9f
@andrey-kuprianov Any idea what might be going wrong at https://gist.github.com/romac/b40640cab1e62765bdca14fff9066d9f#file-gistfile1-txt-L388-L430?

It looks like you have tried to setup the full MBT on your Mac, and this doesn't work again... It didn't work for Shivani and Greg, for different reasons, maybe you have the third reason;) One reason might be that you need to compile Testgen separately, because the model-based tests depend on the Testgen binary, and this dependency is not discovered by Cargo automatically.
On the one hand, you don't need the full MBT with Apalache running to test against static files. If you do want to have the full MBT environment, and recompiling Testgen doesn't help, I am ready to assist in setting it up. It's not yet a very user-friendly process, unfortunately

I have a fix for this, should I push it to #641?

Great, thanks @romac! Does it make sense to merge the fix to master? I will then merge master into my branch. Or, alternatively, pushing your fix to #641 is also fine; whatever you prefer.

Okay I just opened a PR against master, let's now see what the CI says.

It looks like you have tried to setup the full MBT on your Mac, and this doesn't work again... It didn't work for Shivani and Greg, for different reasons, maybe you have the third reason;) One reason might be that you need to compile Testgen separately, because the model-based tests depend on the Testgen binary, and this dependency is not discovered by Cargo automatically.

Yeah perhaps my install version of Testgen and Apalache are out of date, will update them and try again :)

On the one hand, you don't need the full MBT with Apalache running to test against static files. If you do want to have the full MBT environment, and recompiling Testgen doesn't help, I am ready to assist in setting it up. It's not yet a very user-friendly process, unfortunately

Would it make sense to generate new static tests every night with CI? In the course of several months, you will have myriads of tests.

What about a continuous test streaming service? So rather than generate new static tests every day or whatever we're just continuously feeding tests from apalache to the code, until the end of time ?

...and record the failing ones? Yes, that may work.

Unfortunately the fix proposed in this commit doesn't work.
I have a more refined test, here is the relevant part of it:
TestLessThanTwoThirdsCommit ==
    /\ \E s \in DOMAIN history :
       LET CMS == history[s].current.Commits
           UVS == history[s].current.header.VS
           TVS == history[s].verified.header.VS
       IN
       /\ history[s].current.header.height > history[s].verified.header.height + 1
       /\ CMS /= ({} <: {STRING})
       /\ CMS \subseteq UVS
       /\ 3 * Cardinality(CMS) < 2 * Cardinality(UVS)
       /\ 3 * Cardinality(CMS \intersect TVS) < Cardinality(TVS)

and here is the relevant part of the failing test:
[current |->
    [Commits |-> { "n2", "n4", "n8" },
      header |->
        [NextVS |-> {"n8"},
          VS |-> { "n1", "n10", "n2", "n3", "n4", "n6", "n7", "n8", "n9" },
          height |-> 3,
          lastCommit |-> { "n3", "n6", "n8" },
          time |-> 3]],
  now |-> 1400,
  verdict |-> "INVALID",
  verified |->
    [Commits |->
        { "n1", "n10", "n2", "n3", "n4", "n5", "n6", "n7", "n8", "n9" },
      header |->
        [NextVS |-> { "n10", "n3", "n6", "n8" },
          VS |->
            { "n1", "n10", "n2", "n3", "n4", "n5", "n6", "n7", "n8", "n9" },
          height |-> 1,
          lastCommit |-> {},
          time |-> 1]]]

I think the right solution is to move this call into this position.

Right, we should indeed only check the validators overlap (ie. trust) if the block has already passed verification.

Looks good, thanks:)

Re: https://github.com/informalsystems/tendermint-rs/pull/652#pullrequestreview-516103001
That's cool! I am glad that problem we've discovered helps to rethink the protocols, this is the best outcome possible. I agree that in the current state the LightClient protocol doesn't look repairable to any satisfactory state -- for a malicious peer there will always be a possibility to trigger long computations. The idea with changing the client-server protocol also sounds very nice to me! This will mean that the misbehavior of a full node will be detectable in 1 step -- if it provides a header that's not immediately verifiable by the LightClient.
One issue with what we've found is that with our current single-step MBT tests we are looking only at one step of the whole protocol, i.e. it's a very local view, which actually doesn't tell the whole story. So we need to sooner than later do the bisection tests. What also comes to my mind wrt. this is that we probably want MBT to drive performance tests for us. Here it would generate different scenarios/schedules for the protocols, but besides measuring the logical correctness we will also measure wall-clock performance, and store the outliers for later analysis. One more point for integrating MBT as a continuously running service generating tests.

It is really cool that the bug provokes new thoughts. But we have to be a bit careful here. If we start increasing the protocol complexity only because we believe it works better in some cases, we may end up having a very complex protocol that is much harder to analyze. In the presence of faults computational complexity becomes a nightmare.
There is also the detector protocol that works on top of this verification protocol.

yes, we should be careful, agree. But my feeling is that this change will make the protocols and their analysis much simpler. In particular, there will be no bisection anymore, only one-step validation, and probably cross-validation to detect full nodes that might try to slow light clients down. But the LIght Client protocol itself will consist only of a single-step response validation.

Note this is already how the protocol works for the onchain IBC handler, which is the more important case anyways. We've been trying to align how we think about the light node to be closer to the IBC handler, and this would be a significant step in that direction as well.


Vectorize squadron leaderboards icon

This needs to use the vector from #76. If #76 is closed, use from EDAssets.

Hope this suffices!
svg can be found here: https://drive.google.com/file/d/15CMvD2CtpcrO6m6Gx2ha8t8wll6dQOrz/view?usp=sharing

Looks good! What do you want to be credited by and linked to? CMDR Maximilian1271 and linked to GitHub?

"CMDR John Duarte" :)
no link to my github if possible, if not then go ahead


[TACHYON-1069] Move assertValidPort to NetworkAddressUtils

https://tachyon.atlassian.net/browse/TACHYON-1069

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/Tachyon-Pull-Request-Builder/5517/
Test PASSed.

LGTM

+1 LGTM


Allows the footer to be customized

Adding a block around the default footer content, so that it can be overwritten when using the theme.
As I'm new to working with Zola, I am not sure, if this is the right way to allow such a customization. Feel free, to point out a better approach, if there is one.

Hi again 👋
I have not looked into Zola for a while now so I can't tell if there is a better way of doing this. Anyway this is a great addition to the theme 👍🏼
Could you fix the conflict related to the merging of https://github.com/tchartron/blow/pull/20 ?
Thanks again for your contribution !

Sure, I just rebased the branch so that it can be merged now without conflict.

Thanks couldn't do it, no access to my computer right now 😅


Get error if I try to create ingress service with two .xip.io rules

Rancher versions: v2.0.0
Steps to Reproduce:

Create two workloads
Add Ingress and add two rules, each one should have xip.io option selected & point to one of the two workloads
Save

Results: Error - "Validation failed in API: Ingress.extensions "test" is invalid: spec.rules[0].http.backend.serviceName: Required value"

Dev tools error: ember-fetch.js:471 POST https://<IP_ADDRESS>/v3/projects/c-f26k7:project-84cjt/ingress 422 (Unprocessable Entity)

same as  - https://github.com/rancher/rancher/issues/13185

The payload looks good. I guess we should fix it in backend
same as - #13185

fixed in 13185


Getting error in installing

why am I getting this error? did I do anything wrong?
[oh-my-zsh] plugin 'zsh-syntax-highlighting' not found
tried several times to install it like this but getting error again and again.
plugins=(git
zsh-autosuggestions
zsh-syntax-highlighting
)

need some help in here!

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

try to run the git commands , and then after that go to /.oh-my-zsh/custom/plugins, make sure the plugins is there. after that if all set u can restart ur terminal and also dont forget to source ~/.zshrc

tried but ain't working.

you still receiving the same error? have you tried source ~/.zshrc? or maybe close and open the terminal again? what OS or terminal did you use?

Yep having the same error. I use MacOS

what terminal did you use?, have you installed something like ohmyzsh?

It's zsh terminal and ohmyzsh installed too.

zsh-autosuggestions perfectly working fine but having error with  zsh-syntax-highlighting.

maybe u can try to remove the zsh-syntax-highlighting folder in plugins folder, and then after that redo the git clone

i have the same setup and its working fine

maybe u can try to remove the zsh-syntax-highlighting folder in plugins folder, and then after that redo the git clone

I'm gonna try this too. Hope this works

thanks, man. It's working fine now🤗


[Bug]: Secrets not loaded when using Base directory during the build

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When setting up a repository with a Base directory other than the default Secrets are not loaded during build time
Steps To Reproduce

Create a new Application with this public repo https://github.com/Aviortheking/test_coolify
add a secret TEST_ENV
Build it first with the default Base Directory
3.5. You should see in the build logs

[14:44:49.614] #11 [7/7] RUN printenv	&& echo pouet
[14:44:49.618] #11 sha256:5ab3bb18c08f22d13e48607d098e90ea40630e4bc42195289fbe8755e12c1076
[14:44:49.890] #11 0.425 NODE_VERSION=19.2.0
[14:44:49.896] #11 0.425 TEST_ENV=pouet
[14:44:49.901] #11 0.425 YARN_VERSION=1.22.19
[14:44:49.913] #11 0.425 SHLVL=1
[14:44:49.917] #11 0.425 HOME=/home/node
[14:44:49.922] #11 0.425 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[14:44:49.934] #11 0.425 PWD=/home/node
[14:44:49.941] #11 0.425 pouet

Change the base directory to sub
See that the env is not loaded

[14:44:07.194] #11 [7/7] RUN printenv	&& echo $TEST_ENV
[14:44:07.200] #11 sha256:e039085acbb76b7459e24bf8509dd40c691b9f8c3130e169fc0f714cfd3fb2bb
[14:44:07.475] #11 0.408 NODE_VERSION=19.2.0
[14:44:07.643] #12 exporting to image
[14:44:07.643] #11 0.408 YARN_VERSION=1.22.19
[14:44:07.670] #12 sha256:e8c613e07b0b7ff33893b694f7759a10d42e180f2b4dc349fb57dc6b71dcab00
[14:44:07.674] #11 0.408 SHLVL=1
[14:44:07.674] #12 exporting layers 0.0s done
[14:44:07.683] #11 0.408 HOME=/home/node
[14:44:07.684] #12 writing image sha256:744dfe80c838455770c6171c995bd0fcea296617ea795669d756a821640611a7 done
[14:44:07.702] #11 0.408 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[14:44:07.705] #12 naming to docker.io/library/clbauc5ht001jmb930088h78i:4b8d074 done
[14:44:07.706] #11 0.408 PWD=/home/node

Version
3.11.13

Can you please recheck again? I slightly modified the secrets part.

Nope, still seems to be happening :(

issue fixed as of v3.12.2


Aidon 6534 missing first part of message

I'm too experiencing the same issue.
I managed to get some data out of it though by forcing the code to read the data as ASCII. Looks like the first lines of the message gets corrupted somehow.
I have an oscilloscope but not too much experience using one. I will hook it up during the weekend and see what I can get out of it. @Beaky2000 any tips what I should be looking for?
My setup

Aidon 6534 (2023) with a 6490 M module
ESP32 (only esp I had laying around with external antenna that is needed to get a signal out of the metal enclosure where my meeter is located)
1k pull-up resistor to 3.3V on the Data pin
Data ground connected to ESP ground
RTS connected to GPIO21
10 cm cable between HAN-port and ESP32

Output with original code
[21:40:33][C][logger:185]: Logger:
[21:40:33][C][logger:186]:   Level: DEBUG
[21:40:33][C][logger:188]:   Log Baud Rate: 0
[21:40:33][C][logger:189]:   Hardware UART: UART0
[21:40:33][C][uart.arduino_esp32:151]: UART Bus 0:
[21:40:33][C][uart.arduino_esp32:152]:   TX Pin: GPIO1
[21:40:33][C][uart.arduino_esp32:153]:   RX Pin: GPIO3
[21:40:33][C][uart.arduino_esp32:155]:   RX Buffer Size: 512
[21:40:33][C][uart.arduino_esp32:157]:   Baud Rate: 115200 baud
[21:40:33][C][uart.arduino_esp32:158]:   Data Bits: 8
[21:40:33][C][uart.arduino_esp32:159]:   Parity: NONE
[21:40:33][C][uart.arduino_esp32:160]:   Stop bits: 1
[21:40:33][C][switch.gpio:068]: GPIO Switch 'p1_rts'
[21:40:33][C][switch.gpio:091]:   Restore Mode: always OFF
[21:40:33][C][switch.gpio:031]:   Pin: GPIO21
[21:40:33][C][P1Mini:456]: P1 Mini component
[21:40:33][C][captive_portal:088]: Captive Portal:
[21:40:33][C][web_server:145]: Web Server:
[21:40:33][C][web_server:146]:   Address: esph-p1mini.home.arpa:80
[21:40:33][C][mdns:116]: mDNS:
[21:40:33][C][mdns:117]:   Hostname: esph-p1mini
[21:40:33][C][esphome.ota:073]: Over-The-Air updates:
[21:40:33][C][esphome.ota:074]:   Address: esph-p1mini.home.arpa:3232
[21:40:33][C][esphome.ota:075]:   Version: 2
[21:40:33][C][esphome.ota:078]:   Password configured
[21:40:33][C][safe_mode:018]: Safe Mode:
[21:40:33][C][safe_mode:020]:   Boot considered successful after 60 seconds
[21:40:33][C][safe_mode:021]:   Invoke after 10 boot attempts
[21:40:33][C][safe_mode:023]:   Remain in safe mode for 300 seconds
[21:40:33][C][api:139]: API Server:
[21:40:33][C][api:140]:   Address: esph-p1mini.home.arpa:6053
[21:40:33][C][api:142]:   Using noise encryption: YES
[21:40:33][C][wifi_signal.sensor:010]: WiFi Signal 'esph-p1mini WiFi Signal'
[21:40:33][C][wifi_signal.sensor:010]:   Device Class: 'signal_strength'
[21:40:33][C][wifi_signal.sensor:010]:   State Class: 'measurement'
[21:40:33][C][wifi_signal.sensor:010]:   Unit of Measurement: 'dBm'
[21:40:33][C][wifi_signal.sensor:010]:   Accuracy Decimals: 0
[21:40:36][D][sensor:094]: 'esph-p1mini WiFi Signal': Sending state -75.00000 dBm with 0 decimals of accuracy
[21:40:39][W][P1Mini:139]: Unknown data format (0xEF). Resetting.
[21:40:39][D][switch:016]: 'p1_rts' Turning OFF.
[21:40:39][D][switch:055]: 'p1_rts': Sending state OFF
[21:40:39][W][P1Mini:448]: Discarding: effafb5a57c1fb68290d0a312d303a342e382e302830303030303238392e3737
[21:40:39][W][P1Mini:448]: Discarding: 312a6b56417268290d0a312d303a312e372e3028303030322e3731312a6b5729
[21:40:39][W][P1Mini:448]: Discarding: 0d0a312d303a322e372e3028303030302e3030302a6b57290d0a312d303a332e
[21:40:39][W][P1Mini:448]: Discarding: 372e3028303030302e3030302a6b564172290d0a312d303a342e372e30283030
[21:40:39][W][P1Mini:448]: Discarding: 30302e3032302a6b564172290d0a312d303a32312e372e3028303030302e3433
[21:40:39][W][P1Mini:448]: Discarding: 352a6b57290d0a312d303a32322e372e3028303030302e3030302a6b57290d0a
[21:40:39][W][P1Mini:448]: Discarding: 312d303a34312e372e3028303030322e3133382a6b57290d0a312d303a34322e
[21:40:39][W][P1Mini:448]: Discarding: 372e3028303030302e3030302a6b57290d0a312d303a36312e372e3028303030
[21:40:39][W][P1Mini:448]: Discarding: 302e3133302a6b57290d0a312d303a36322e372e3028303030302e3030302a6b
[21:40:39][W][P1Mini:448]: Discarding: 57290d0a312d303a32332e372e3028303030302e3138342a6b564172290d0a31
[21:40:39][W][P1Mini:448]: Discarding: 2d303a32342e372e3028303030302e3030302a6b564172290d0a312d303a3433
[21:40:39][W][P1Mini:448]: Discarding: 2e372e3028303030302e3030302a6b564172290d0a312d303a34342e372e3028
[21:40:39][W][P1Mini:448]: Discarding: 303030302e3137382a6b564172290d0a312d303a36332e372e3028303030302e
[21:40:39][W][P1Mini:448]: Discarding: 3030302a6b564172290d0a312d303a36342e372e3028303030302e3034362a6b
[21:40:39][W][P1Mini:448]: Discarding: 564172290d0a312d303a33322e372e30283233352e372a56290d0a312d303a35
[21:40:39][W][P1Mini:448]: Discarding: 322e372e30283232392e362a56290d0a312d303a37322e372e30283233362e36
[21:40:39][W][P1Mini:448]: Discarding: 2a56290d0a312d303a33312e372e30283030322e302a41290d0a312d303a3531
[21:40:39][W][P1Mini:448]: Discarding: 2e372e30283030392e332a41290d0a312d303a37312e372e30283030302e352a
[21:40:40][W][P1Mini:448]: Discarding: 41290d0a21333746460d0a41290d0a312d303a37312e372e30283030302e352a

Modifying to accept message as ASCII
To force it to read data as ASCII I changed https://github.com/Beaky2000/esphome-p1mini/blob/4431732ea06b2784746d87f919559c5ae35e1f95/components/p1_mini/p1_mini.cpp#L130 to
 if (read_byte == '/' or true) {

Then I start to see some data. The message is actually longer and includes the CRC-code as can be seen by the failing CRC-check.
[21:54:49][D][P1Mini:131]: ASCII data format
[21:54:49][D][switch:016]: 'p1_rts' Turning OFF.
[21:54:49][D][switch:055]: 'p1_rts': Sending state OFF
[21:54:49][W][P1Mini:231]: CRC mismatch, calculated A778 != E2E6. Message ignored.
[21:54:49][D][P1Mini:233]: Buffer:
\xff޿R\xfd[ɣ\x8aj\x82Ңr\xc2r\x82B\x82\x82\x82\x82\x82\x92\xc2\xcar\xbaRZYɡ
1-0:1.7.0(0002.381*kW)
1-0:2.7.0(0000.000*kW)
1-0:3.7.0(0000.000*kVAr)
1-0:4.7.0(0000.008*kVAr)
1-0:21.7.0(0000.144*kW)
1-0:22.7.0(0000.000*kW)
1-0:41.7.0(0002.115*kW)
1-0:42.7.0(0000.000*kW)
1-0:61.7.0(0000.122*kW)
1-0:62.7.0(0000.000*kW)
1-0:23.7.0(0000.095*kVAr)
1-0:24.7.0(0000.000*kVAr)
1-0:43.7.0(0000.000*kVAr)
1-0:44.7.0(0000.163*kVAr)
1-0:63.7.0(0000.047*kVAr)
1-0:64.7.0(0000.000*kVAr)
1-0:32.7.0(236.4*V)
1-0:52.
[21:54:49][D][switch:016]: 'p1_rts' Turning OFF.
[21:54:50][D][switch:012]: 'p1_rts' Turning ON.
[21:54:50][D][switch:055]: 'p1_rts': Sending state ON
[21:54:54][D][sensor:094]: 'esph-p1mini WiFi Signal': Sending state -75.00000 dBm with 0 decimals of accuracy
[21:54:59][D][P1Mini:131]: ASCII data format
[21:54:59][D][switch:016]: 'p1_rts' Turning OFF.
[21:54:59][D][switch:055]: 'p1_rts': Sending state OFF
[21:54:59][W][P1Mini:231]: CRC mismatch, calculated 20E6 != 80CD. Message ignored.
[21:54:59][D][P1Mini:233]: Buffer:
\xff\xff޿]-͡-0:4.8.0(00000289.780*kVArh)
1-0:1.7.0(0002.313*kW)
1-0:2.7.0(0000.000*kW)
1-0:3.7.0(0000.000*kVAr)
1-0:4.7.0(0000.131*kVAr)
1-0:21.7.0(0000.143*kW)
1-0:22.7.0(0000.000*kW)
1-0:41.7.0(0002.113*kW)
1-0:42.7.0(0000.000*kW)
1-0:61.7.0(0000.056*kW)
1-0:62.7.0(0000.000*kW)
1-0:23.7.0(0000.093*kVAr)
1-0:24.7.0(0000.000*kVAr)
1-0:43.7.0(0000.000*kVAr)
1-0:44.7.0(0000.155*kVAr)
1-0:63.7.0(0000.000*kVAr)
1-0:64.7.0(0000.055*kVAr)
1-0:32.7.0(236.0*V)
1-0:52.7

Forcing CRC-check to pass
The logical next step was to also force the CRC-check to pass. Similar operation adding a or true on line 216. Then some data gets sent to HA but I'm missing the accumulated import/export.
[22:01:59][D][P1Mini:131]: ASCII data format
[22:01:59][D][switch:016]: 'p1_rts' Turning OFF.
[22:01:59][D][switch:055]: 'p1_rts': Sending state OFF
[22:01:59][D][P1Mini:217]: CRC verification OK
[22:01:59][D][P1Mini:266]: Could not parse value from line '\xffϾ\xefZY'
[22:01:59][D][P1Mini:266]: Could not parse value from line 'ɡ-0:4.8.0(00000289.789*kVArh)'
[22:01:59][D][sensor:094]: 'Momentary Active Import': Sending state 0.70600 kW with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Active Export': Sending state 0.00000 kW with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Reactive Import': Sending state 0.00000 kvar with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Reactive Export': Sending state 0.15100 kvar with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Active Import Phase 1': Sending state 0.14300 kW with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Active Export Phase 1': Sending state 0.00000 kW with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Active Import Phase 2': Sending state 0.50700 kW with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Active Export Phase 2': Sending state 0.00000 kW with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Active Import Phase 3': Sending state 0.05400 kW with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Active Export Phase 3': Sending state 0.00000 kW with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Reactive Import Phase 1': Sending state 0.09300 kvar with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Reactive Export Phase 1': Sending state 0.00000 kvar with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Reactive Import Phase 2': Sending state 0.00000 kvar with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Reactive Export Phase 2': Sending state 0.18700 kvar with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Reactive Import Phase 3': Sending state 0.00000 kvar with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Momentary Reactive Export Phase 3': Sending state 0.05300 kvar with 3 decimals of accuracy
[22:01:59][D][sensor:094]: 'Voltage Phase 1': Sending state 234.80000 V with 1 decimals of accuracy
[22:01:59][D][sensor:094]: 'Voltage Phase 2': Sending state 233.20000 V with 1 decimals of accuracy
[22:01:59][D][sensor:094]: 'Voltage Phase 3': Sending state 235.60001 V with 1 decimals of accuracy
[22:01:59][D][sensor:094]: 'Current Phase 1': Sending state 0.70000 A with 1 decimals of accuracy
[22:01:59][D][sensor:094]: 'Current Phase 2': Sending state 2.30000 A with 1 decimals of accuracy
[22:01:59][D][sensor:094]: 'Current Phase 3': Sending state 0.30000 A with 1 decimals of accuracy
[22:01:59][D][P1Mini:380]: Cycle times: Identifying = 9960 ms, Message = 41 ms (3 loops), Processing = 86 ms (3 loops), (Total = 10087 ms). 584 bytes in buffer

Originally posted by @mkarls20 in https://github.com/Beaky2000/esphome-p1mini/issues/15#issuecomment-2362101620

Additionally I've also tried increasing the rx_buffer_size and the buffer_size in the yaml without an changes to the outcome.

I would suggest trying to set RTS always high to see if that makes any difference!
The RTS signal

I got some time to put the scope on it this afternoon. My finding is that the HIGH signals are not high enough I guess. I played around with different values for the pull-up resistor on the data line. I just kept adding resistors in parallel until I got more data. Still missing the first couple of characters though so the CRC check do not work.
1kΩ resistor and forced ASCII mode
This was my original setup and the message that gets thru is the same. This is what the scope looked like. The yellow line is the RTS and the blue is the data line. The data lines first couple of
Scope

150 Ω and forced ASCII mode
Better looking data signal and also catching more of the data but not all of it. Looks like most of the time it is just missing the first few characters.
Scope

Message
21:00:19][D][switch:055]: 'p1_rts': Sending state ON
[21:00:20][D][P1Mini:131]: ASCII data format
[21:00:20][D][switch:016]: 'p1_rts' Turning OFF.
[21:00:20][D][switch:055]: 'p1_rts': Sending state OFF
[21:00:20][W][P1Mini:231]: CRC mismatch, calculated E30F != 1D28. Message ignored.
[21:00:20][D][P1Mini:233]: Buffer:
S\xa2

0-0:1.0.0(240921200020W)
1-0:1.8.0(00002850.302*kWh)
1-0:2.8.0(00000000.000*kWh)
1-0:3.8.0(00000351.620*kVArh)
1-0:4.8.0(00000302.443*kVArh)
1-0:1.7.0(0001.208*kW)
1-0:2.7.0(0000.000*kW)
1-0:3.7.0(0000.615*kVAr)
1-0:4.7.0(0000.000*kVAr)
1-0:21.7.0(0000.533*kW)
1-0:22.7.0(0000.000*kW)
1-0:41.7.0(0000.607*kW)
1-0:42.7.0(0000.000*kW)
1-0:61.7.0(0000.062*kW)
1-0:62.7.0(0000.000*kW)
1-0:23.7.0(0000.480*kVAr)
1-0:24.7.0(0000.000*kVAr)
1-0:43.7.0(0000.189*kVAr
[21:00:20][D][switch:016]: 'p1_rts' Turning OFF.

Should I go even lower on the resistor? Don't want the meeter to have to sink to much current. According to spec it sinks maximum of 30 mA and I'm closing in on the limit. It also says it is protected so I guess there is no harm in trying.

I would suggest trying to set RTS always high to see if that makes any difference!
The RTS signal

I'll go try it right away...

I would suggest trying to set RTS always high to see if that makes any difference!
The RTS signal

I hard wired the RTS to +5V from the meeter. No change. Still missing the first few characters.

Problem solved. It was the resistor. I put a 120 Ω resistor in parallell with my original 1kΩ resistor and now it works.
The 1k value I originally got from the esphome-p1reader project but didn't work on my Olimex ESP32 devkit lipo-board.

@mkarls20, I am glad that you got it to work, but having that low pull-up resistance (120 | 1000 | whatever the ESP uses internally) is pretty crazy!
In case you find this as fascinating as I do, it would be very interesting to see the signal on the scope without the ESP connected at all. So just a (reasonable) pull-up between 5V and TX on the port and the scope between data-ground and TX...


Add some dialogs in sponsors for feedbacks and advices

Description:
In this ticket have some changes:

New sponsor is added
A dialog in sponsors section is added (To inform the user about "why it takes long time to loading the sponsors")
Another dialog for feedbacks when sponsors dont show something or take long time in loading

Dialog content:

First dialog in sponsor: Some of the sponsors take a moment to load due to that sponsor's page
When page take long time in load: It is taking longer than expected, please wait a moment or check your internet connection.
When have a error in load: An error occurred during loading. Please try again later.

Linked issues:
#166
Screenshots:

How to test:
In app-->Go in settings--> sponsonsors and testing dialogs

This peace of code appear in two places (app/views/DR/Sponsors/index.js, app/views/DR/News/Details.js), and the only different is the text (the one with a red square), I think you can put this in a separate file and just call it wherever you want it to use


what is sar-e and sar-c

Hi,
in the paper, I don't see you mention what is sar-e and sar-c, could you explain a bit about it?

Hi, there is no sar-c, it's scar-c.
In SCAR, you make the 'selected completely at random' assumption, which means that the probability of labeling a positive example is independent of its attributes x and this probability is called the label frequency c=Pr(s=1|y=1)=Pr(s=1|y=1, x). Given this assumption, you can use the label frequency c  to convert the dataset to a weighted dataset from which an unbiased model can be learned using standard machine learning methods. This is what the method pu_learn_scar_c does.
In SAR, you make the 'selected at random' assumption, which means that the probability of labeling a positive example is dependent on its attributes x and this conditional probability is called the propensity score e(x) = Pr(s=1|y=1, x). Given this assumption and known propensity scores for your  data, the data can also be converted to a weighted dataset from which an unbiased model can be learned using standard machine learning methods. This is what the method pu_learn_sar_e does. Note that this is a generalization of the SCAR approach, in scar, the propensity scores are just all the same.
In practice, the exact propensity scores e(x) are likely unknown. But if we know on which subset x_e of the attributes x these scores depend, then the EM method can be used: pu_learn_sar_em


FIO transaction history support

This is currently not implemented, only FIO lookup is implemented.

FIO API currently has no API for transaction history (due to performance ressons?).
Explorer shows history for an account (not address aka. public key), see e.g.
https://explorer.fioprotocol.io/account/f5axfpgffiqz
For mainnet info, see:   https://github.com/fioprotocol/fio.mainnet

@catenocrypt can you try those api endpoints who have enabled history plugin? https://github.com/fioprotocol/fio.mainnet#history-v1
Docs:
https://developers.eos.io/manuals/eos/latest/nodeos/plugins/history_api_plugin/index

curl --request POST --url https://fio.greymass.com/v1/history/get_transaction --data '{"id": "930d1d3cf8988b39b5f64b64e9d61314a3e05a155d9e3505bdf863aab1adddf3"}'

Implementation done PR #984 .

Merged.  See e.g. curl https://blockatlas.trustwallet.com/v1/fio/FIO7Q3XfQ2ocGP1zYst6Sfx5qrsiZ865Cu8So2atrub9JN94so7gt
(once deployed)


Systemd bats package

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
4 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.04%) to 54.132%

Files with Coverage Reduction
New Missed Lines
%

pkg/leakybucket/manager_run.go
4
73.31%

Totals

Change from base Build<PHONE_NUMBER>:
-0.04%

Covered Lines:
5136

Relevant Lines:
9488

💛  - Coveralls


Heretic blade path fixes

About the PR
Small fixes. Read cl.
Requirements
[x] Tested.
Changelog
:cl:

fix: Heretic who chose path of blade will not be able to shoot.
fix: Heretic blade path Realignment spell will apply pacified effect on the user.

Isnt "not being able to shoot " a feature?  Why tf you need guns when blades goes slash slash

Isnt "not being able to shoot " a feature?  Why tf you need guns when blades goes slash slash

currently it doesnt enforce melee only

Why would blade heretics not be able to shoot? This path surely needs nerfs, but not this. Grasp effect should be nerfed, infusing blades should be nerfed, maybe something else as well idk. Ngl grasp stuns like for 1 or 1.5 seconds in ss13 when applied from behind or to prone targets. Infusing blades instead of x2 damage could give something like x3 left click attack part damage so it delimbs easier.

Why would blade heretics not be able to shoot?

path quirk

Grasp effect should be nerfed
when applied from behind or to prone targets

it already does that

Infusing blades instead of x2 damage could give something like x3 left click attack part damage so it delimbs easier.

you like delimb combat don't you? you're a delimber 😺

it already does that

It stamcrits for whatever reason, but should stun for 1.5 seconds.

It stamcrits for whatever reason, but should stun for 1.5 seconds.

normal mansus grasp deals 80 stamina damage, blade grasp is an upgraded version that instead of giving a special effect just doubles the amount of stamina damage dealt when the conditions are met

Should've just used Clown's cant-shoot component instead of making one more 🧐

normal mansus grasp deals 80 stamina damage, blade grasp is an upgraded version that instead of giving a special effect just doubles the amount of stamina damage dealt when the conditions are met

It's op, should be like in ss13.

The double-negative of "CanNotShootGuns = false" hurts me so much.

i'm pretty sure ninja can't shoot so you can take his system (if you haven't done that already idk)


feat(ui-watt): grid layout in shell

Description
This PR makes the sidenav-content area use CSS grid for layout, enabling the outlet components to take up the remaining space of the viewport.

Suggestion: what about setting max-height: 100% and overflow-y: auto, at .watt-main-content. By doing this we can avoid setting height 100% on everything?
This means however that we maybe should do something with the .mat-header-row, I've only done some minor experiments so far. Also this change should ofcourse be ensured that it doesn't break anything for EO.

Good suggestion, I can try to do some experimenting. I'm not sure it is sufficient in the cases where we want to "delegate" the scroll to inside the table component, but it could be a nice default behavior to have.


Review API JupyterServerProvider and prepare for stable API

For #13894

@mjbvz

I have turned all claases into interfaces
Here are some screenshots and link to the sample extension

This is the standard kernel picker (built by VS Code)

From previous quick pick user selects the option Select Another kernel (this is provided by vscode)
The list of items here is contributed by extensions.
Since other extensions can contribute Jupyter Servers to the Jupyter extension they contribute their collection with us, and we add an entry into this VS Code list
So an entry in this item is called a collection, as each item can in turn have multiple servers (see asmples befolow).
Here the second from last Local Jupyter Server is contributed to the Jupyter extension via the api createServerCollection('Local Jupyter Server')

Once the user selects the Local Jupyter Server, we get to this screen.
At this point jupyter extension will look for servers contributed by the 3rd party extension, if there are we display them.
However for the first time its unlikely a server would exist, hence the 3rd party extension needs a way to get the user to start/select a server.
For this they can add items into the quick pick that create the servers.
This is done by 3d party calling the api as follows
collection.createServerCreationItem('', 'Start New Jupyter Lab Server, ()=> {....});
collection.createServerCreationItem('', 'Start New Jupyter Notebook Server, ()=> {....});

If there is only one item in the list, the 3rd party extension can mark that has picked and we (Jupyter extension) will bypass displaying this list and automatically select that first item.
See below, we have dispalyed the two items contributed by the 3rd party

Upon selecting on of the above items the Jupyter extension calls the callback
The 3rd party handles the callback, and displays their own UI (AzML, Synapse and other extensions do this today, and display their own quick picks).
In this sample  I have a custom quick pick with options (this is from 3rd party extension)
The UI can be as complex as the 3rd party needs it to be (AzML has 3 steps in their own quick pick)
So here once we select something we start a Jupyter server
The 3rd party extension will then call collection.createServer(<Display Name>) and return that server from the callback.
If the Jupyter extension gets a server retrurned from the callback, we know that a server was created and we display that server in the next quick pick and we display the list of the kernels.

Here the Jupyter extension got the server via the callback and we now dispaly that server and its kernels

If we hit the back buttoon, then we get to the same screen but this time we have the servers listed along with the creation items
At this point the 3rd party extension can optionally remove the creation items if they want
They can dispose the Start Local Jupyter Server as they know one has been started (after all 3rd party extensions have created the server via the api call)
Hence the reason to expose the dispose on JupyterServerCreationItem` (this way they can add/remove anytime)
If you were to go back to the first step in the kernel picker and select Local Jupyter Server then you get the same list of items

Another sample if we have more than one server.
As we can have multiple servers contributed by the 3rd party extension, I chose the name ServerCollection.
AzML too has similar concepts

supportsRemoval argument for createServer
@rebornix I added this as we missed this item.
If a 3rd party extension supports shutting down a jupyter server they can let Jupyter extension know about this.
If this is supported, then Jupyter extension displays the little Delete icon against each server.
See below.
Note: this icon is only displayed when the flag is true, and if the user clicks this icon, then we support removing such items and we trigger the onDidRemoveServer event, and 3rd party extensions can handle that event knowing the fact that the user has removed it from the list.
At this point 3rd party extension can shutdown/dispose the servers as user is no longer interested in seeing  them.

Thanks @DonJayamanne! Based on your description of the flow, it seems like a pull model may be a better fit. Have you consider a more "provider like" approach?

@mjbvz thanks, we did have a provider style API earlier (with quick picks), will try to get that again and pass it your way.
thanks again for your feedback.

hi @mjbvz we decided to go with a push model as the UI and requirements are similar to notebook controllers.
In Notebook controllers we had a pull (provider) model and then moved to a push model, going with the same here.
Hence prefer to go with the push, however I have updated this PR by adding another file with the pull (provider) model API. See here https://github.com/microsoft/vscode-jupyter/blob/86da8624cbff9a9cee0844642b848bd4637472bf/src/api.proposed.d.ts
Will bring this to the next API discussion.

Closing this PR as most of the issues ahve been addressed.


strings.trim() is a bug?????

func strTrim () {
str := "wrong repayment time. "
resp := strings.Trim(str, "rpc error: code ")
fmt.Println(resp)
}
output: wrong repayment time.
BUT
func strTrim () {
str := "wrong repayment time. "
resp := strings.Trim(str, "rpc error: code = Unknown desc =")
fmt.Println(resp)
}
output:g repayment time.
What is it? why?????

https://play.golang.org/p/C_SuAmJkyH0

Let's work it out:
a) when trying to trim the left side withs="wrong repayment time. " and  Cutset="rpc error: code ":

the first character is a w, does Cutset contains a w? no, so return;

b) when trying to trim the left side withs="wrong repayment time. " and  Cutset="rpc error: code = Unknown desc =":

the 1st character is a w, does Cutset contains a w? yes, so continue;
the 2nd character is a r, does Cutset contains a w? yes, so continue;
the 3rd character is a o, does Cutset contains a w? yes, so continue;
the 4th character is a n, does Cutset contains a w? yes, so continue;
the 5th character is a g, does Cutset contains a w? no, so return;

this is not exactly how it's implemented, the Trim() func basically calls indexFunc to trim the left side,
by reading the source code you'll have a better understanding on how it's working and handling different ascii/non-ascii runes.

https://play.golang.org/p/fm4KMPuYOgH
The second argument to string.Trim is a set(cut set)

As it was explained above, this is working as intended. You can use TrimSuffix for trimming whole substrings. Closing here, since this is not a bug and your question has been answered.

https://play.golang.org/p/C_SuAmJkyH0
Let's work it out:
a) when trying to trim the left side withs="wrong repayment time. " and Cutset="rpc error: code ":

the first character is a w, does Cutset contains a w? no, so return;

b) when trying to trim the left side withs="wrong repayment time. " and Cutset="rpc error: code = Unknown desc =":

the 1st character is a w, does Cutset contains a w? yes, so continue;
the 2nd character is a r, does Cutset contains a w? yes, so continue;
the 3rd character is a o, does Cutset contains a w? yes, so continue;
the 4th character is a n, does Cutset contains a w? yes, so continue;
the 5th character is a g, does Cutset contains a w? no, so return;

this is not exactly how it's implemented, the Trim() func basically calls indexFunc to trim the left side,
by reading the source code you'll have a better understanding on how it's working and handling different ascii/non-ascii runes.

is it should be

the 1st character is a w, does Cutset contains a w? yes, so continue;
the 2nd character is a r, does Cutset contains a r? yes, so continue;
the 3rd character is a o, does Cutset contains a o? yes, so continue;
the 4th character is a n, does Cutset contains a n? yes, so continue;
the 5th character is a g, does Cutset contains a g? no, so return;

???


JAVA-1021: Improve error message when connect() is called with an inv…

…alid keyspace name.
Contrary to what I said in the ticket description, I simply made the error message more explicit (I didn't want to parse the keyspace name client-side).

Looks good to me :+1:.  Added additional test for connectAsync.  Just to clarify, the jira ticket alludes to checking the keyspace before sending the request, but instead this decorates the error message to indicate to check the keyspace.  I think I remember you mentioned that this was the route to go (let the server error out, not preprocess on the client), but wanted to make sure.

Yes, I'll update the ticket's description.


Apply small union improvement.

Make all calls to functions in cbor_decode.c restore the previous
state if they fail. This means the union_elem_code() call can
sometimes be dropped.
Signed-off-by: Øyvind Rønningstad<EMAIL_ADDRESS>

It's actually not a bugfix, though I see now that the commit message gives that impression.
To explain a bit more:
Unions are decoded as follows:

Save state
Attempt first element in union
If failed, restore state and try next element
etc.

union_elem_code() is a C function that is called in the generated code, between each element in a union to restore the state.
This PR makes some functions more robust to the point that the state doesn't always need to be restored. I.e. "This means the union_elem_code() call can sometimes be dropped."


TypeError: "message.edit is not a function" in command "info"

Reported by .̔̏𝗠𝗲𝗽𝗵𝗶𝘀𝘁𝗼#5558<PHONE_NUMBER>25055775) with bot<PHONE_NUMBER>02710047
TypeError: message.edit is not a function
at Command.run (/home/runner/Teufelsbot/Commands/Information/info.js:38:97)
at module.exports (/home/runner/Teufelsbot/Events/interactionCreate.js:37:25)
at runMicrotasks ()
at processTicksAndRejections (node:internal/process/task_queues:96:5)

fixed with commit 7ff05d8


KeyboardDragListener shouldn't use CallbackTimer for 'dragSpeed' implementation

KeyboardDragListener uses a CallbackTimer to support its movement. This is appropriate for dragDelta style of dragging, where there is a bit of discrete movement at some interval. But it is not good for dragSpeed style of dragging. But since CallbackTimer uses setInterval, there will be frames where there is no movement because of these lines:
https://github.com/phetsims/axon/blob/e749ed9a029527574a6c8b83c5b98bafb6b01554/js/Timer.ts#L64-L68
which makes the animated movement feel choppy.
It probably makes sense to keep using CallbackTimer/setInterval for the dragDelta style since they nicely handle start/stop/delay/correcting for the time remainder. So I am going to try moving the dragSpeed part out of the CallbackTimer and into a listener that is called every frame, probably stepTimer.addInputListener.
Found in https://github.com/phetsims/faradays-electromagnetic-lab/issues/186.

@jessegreenberg Is CallbackTimer new to the re-implementation that was done in https://github.com/phetsims/scenery/commit/de882329c1825880929df393e77fdfeb5b0d2373 on 4/25/24?Did this problem exist before that re-implementation? Are there any sims that will need an MR?

Yes, it was introduced as part of that change. Using grunt release-branch-list --order=date, sims published since then are
balancing-act 1.3 phet 2024-05-02
greenhouse-effect 1.3 phet,phet-io 2024-05-13

And they do not use KeyboardDragListener so this will not require an MR.

A fix has been pushed above. @jonathanolson and I are meeting this afternoon to discuss and review.

I reviewed the changes with @jonathanolson and he confirmed that this change made sense. We discussed the problem and the usage of stepTimer and CallbackTimer. We made sure the order of operations was correct in the dragStartAction and that we only call step when necessary. We confirmed that the behavior is correct for dispose and interrupt. We are ready to close.


As a user, I want the ability to mark and unmark expenses that are paid off/ not paid off for tracking

Subtask of #1


Incorrect config file location

The README.md states that the bat config file is usually located at ~/.config/bat/config.
Perhaps a line can be added under stating "additional details here: https://github.com/sharkdp/bat?tab=readme-ov-file#configuration-file" linking to the official documentation for config files. In my case it was ~/.config/bat/bat.conf.
I can raise PR if the maintainers think this is a useful addition.

It already says:

located at bat --config-file (usually ~/.config/bat/config):

Did bat --config-file give you the wrong path? I think linking that would be welcome but the command is already there.

Hey 👋
As @uncenter mentions above, we do have bat --config-file mentioned in the README. That being said, happy to accept a PR that adds a link to upstream docs.

Thank you!!


fs_automount:fix ci break

Summary
fix build warning
==================================================================================== Configuration/Tool: spresense/example_camera,CONFIG_ARM_TOOLCHAIN_GNU_EABI 2024-11-12 12:24:37
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Disabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
  Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
  Building NuttX...
mount/fs_automount.c: In function 'automount_initialize': Error: mount/fs_automount.c:816:7: error: 'return' with no value, in function returning non-void [-Werror=return-type]
  816 |       return;
      |       ^~~~~~
In file included from mount/fs_automount.c:43:
/github/workspace/sources/nuttx/include/nuttx/fs/automount.h:176:11: note: declared here
  176 | FAR void *automount_initialize(FAR const struct automount_lower_s *lower);
      |           ^~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

Impact
Optimized fs_autoformat.c code logic
Testing
Test in qemu / actual device project.
It can build success without warning.

 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.


Resurrection of #2713: add componentWrapperFunctions setting

This PR is my attempt to resurrect the #2713 PR by @jzabala. I haven't changed anything in the original PR other than making the changes suggested by @ljharb and rebasing on top of the latest master.
Please let me know if there's anything else required. I'd really love to land this PR so I can use it. Thanks!
CC @jzabala, @flut1, @ljharb, @jillesme

@ljharb Bump.

@ljharb Bump again...

@LandonSchropp for future reference, please do not create a redundant PR - instead, comment a link to your branch/commits on the original PR, and i'll update it with those. Now I have to keep both PRs open and in sync until both land, otherwise there'll be an orphan PR ref for eternity.
I'll take a look today.

@LandonSchropp i'm unable to force push to your fork, despite the "allow edits" checkbox being checked - looks like this is because you forked not from this repo, but from jzabala's fork.
I'll force push to #2713, and if you can force push the same exact sha to this PR's branch, then i can land both.

@ljharb Okay, I've updated the commit to 495a4cf8. Thanks for tackling this, and let me know if there's anything else I can do.


Allow us to import a variable.js file into the Theme Customizer?

Hello NativeBase!
I'm wondering if you guys would please allow us to import previously made variable.js files into the NativeBase Customizer to edit it. At the moment, is you ever wanted to change you custom theme, you'd have to redo the whole thing in the web editor, which is quite inconvenient.
It would be much better if you allowed us to import a previous file and improve upon it.
Thanks!

https://github.com/GeekyAnts/NativeBase-Customizer/issues/6


Improve merge function.

This PR improves merge function:

add left_on and right_on
fix index management

but still have some TODOs:

in some case, indexes can be retained
when left_index=True and right_index=True for multi-index, the behavior is not the same as pandas'

I'd leave them to the future work.
Resolves #354.

Codecov Report

Merging #381 into master will decrease coverage by 0.04%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master    #381      +/-   ##
=========================================
- Coverage   94.64%   94.6%   -0.05%
=========================================
  Files          41      41
  Lines        4408    4463      +55
=========================================
+ Hits         4172    4222      +50
- Misses        236     241       +5

Impacted Files
Coverage Δ

databricks/koalas/tests/test_dataframe.py
100% <100%> (ø)
:arrow_up:

databricks/koalas/frame.py
95.48% <100%> (+0.09%)
:arrow_up:

databricks/koalas/__init__.py
89.28% <0%> (-3.58%)
:arrow_down:

databricks/koalas/tests/test_indexes.py
93.39% <0%> (-2.84%)
:arrow_down:

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 b96d427...00cdbb0. Read the comment docs.

@ueshin this is great!


Cut a new upstream release please.

It's been a while.  Can you cut a new upstream release, please?

(In particular, Fedora Infra would like the improvements to ssl_verify.)

/cc @puiterwijk

@ralphbean yeah. We have already planned the new release. It will happen in next week. Will let you know when it is finished.

Thanks.  Got another mention of this downstream here, btw:  https://pagure.io/pagure-dist-git/issue/20

Sorry, took longer than expected, but pdc-client in Bodhi is finally in testing phase (awaiting +3 karma or 7 days to stable).


Add standard library prelude

Closes https://github.com/FuelLabs/sway/issues/841.
This adds the standard library prelude with some initial suggested items as per https://github.com/FuelLabs/sway/issues/841#issuecomment-1242594164.
The approach is to have the module std::prelude which is then "glob re-exported" by the compiler into init in every module. Extending the prelude is then done in Sway and not in Rust.

I'm merging this because I'm very excited about it 😄


Add compile time configuration options.

MBED_CMDLINE_MAX_LINE_LENGTH
Maximum length of commandline input line
MBED_CMDLINE_ARGUMENTS_MAX_COUNT
Maximum number of arguments in a single command
MBED_CMDLINE_HISTORY_MAX_COUNT
Maximum number of commands saved in history

@jupe Could you please have a look at this.
@pan- Would you be ok with this instead of https://github.com/ARMmbed/mbed-client-cli/pull/54 ? There was a couple of other things I wanted to make configurable as well.


Issue with multiple Foreign keys after migrating to EFCore 2.2

I get the the following error message when I start the API project. It works with EFCore 2.1 The issue appeared when I upgraded to netcoreapp 2.2.1 and EFCore 2.2.1
There are multiple ForeignKeyAttributes which are pointing to same set of properties - '{'DamageId'}' on entity type 'SignoffModel'.

   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ForeignKeyAttributeConvention.Apply(InternalRelationshipBuilder relationshipBuilder)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ImmediateConventionScope.OnForeignKeyAdded(InternalRelationshipBuilder relationshipBuilder)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.RunVisitor.VisitOnForeignKeyAdded(OnForeignKeyAddedNode node)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.OnForeignKeyAddedNode.Accept(ConventionVisitor visitor)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionVisitor.Visit(ConventionNode node)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionVisitor.VisitConventionScope(ConventionScope node)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionScope.Accept(ConventionVisitor visitor)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionVisitor.Visit(ConventionNode node)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionVisitor.VisitConventionScope(ConventionScope node)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionScope.Accept(ConventionVisitor visitor)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionVisitor.Visit(ConventionNode node)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionVisitor.VisitConventionScope(ConventionScope node)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionScope.Accept(ConventionVisitor visitor)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionVisitor.Visit(ConventionNode node)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionVisitor.VisitConventionScope(ConventionScope node)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionBatch.Run()
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ConventionBatch.Dispose()
   at Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder.Entity(TypeIdentity& type, ConfigurationSource configurationSource, Boolean allowOwned, Boolean throwOnQuery)
   at Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder.Entity(Type type, ConfigurationSource configurationSource, Boolean allowOwned, Boolean throwOnQuery)
   at Microsoft.EntityFrameworkCore.ModelBuilder.Entity(Type type)
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelCustomizer.FindSets(ModelBuilder modelBuilder, DbContext context)
   at Microsoft.EntityFrameworkCore.Infrastructure.RelationalModelCustomizer.FindSets(ModelBuilder modelBuilder, DbContext context)
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelCustomizer.Customize(ModelBuilder modelBuilder, DbContext context)
   at Microsoft.EntityFrameworkCore.Infrastructure.RelationalModelCustomizer.Customize(ModelBuilder modelBuilder, DbContext context)
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.CreateModel(DbContext context, IConventionSetBuilder conventionSetBuilder, IModelValidator validator)
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.<>c__DisplayClass5_0.<GetModel>b__1()
   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
   at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
   at System.Lazy`1.CreateValue()
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.GetModel(DbContext context, IConventionSetBuilder conventionSetBuilder, IModelValidator validator)
   at Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel()
   at Microsoft.EntityFrameworkCore.Internal.DbContextServices.get_Model()
   at Microsoft.EntityFrameworkCore.Infrastructure.EntityFrameworkServicesBuilder.<>c.<TryAddCoreServices>b__7_2(IServiceProvider p)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass1_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies()
   at Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider()
   at Microsoft.EntityFrameworkCore.DbContext.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<System.IServiceProvider>.get_Instance()
   at Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade.Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<System.IServiceProvider>.get_Instance()
   at Microsoft.EntityFrameworkCore.Internal.InternalAccessorExtensions.GetService[TService](IInfrastructure`1 accessor)
   at Microsoft.EntityFrameworkCore.Infrastructure.AccessorExtensions.GetService[TService](IInfrastructure`1 accessor)
   at Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade.get_TransactionManager()
   at Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade.BeginTransaction()
   at ACTIS.Core.Infrastructure.Middlewares.DatabaseTransactionHandler.Invoke(HttpContext context, DatabaseContext databaseContext) in C:\Users\Thivy Ruthra\source\repos\ACTIS\src\ACTIS.Core\Infrastructure\Middlewares\DatabaseTransactionHandler.cs:line 23
   at ACTIS.Core.Infrastructure.Middlewares.GlobalExceptionHandler.Invoke(HttpContext context) in C:\Users\Thivy Ruthra\source\repos\ACTIS\src\ACTIS.Core\Infrastructure\Middlewares\GlobalExceptionHandler.cs:line 41

Steps to reproduce
We took the database first approach to create the schema and we have many models that maps directly onto those tables.
An example of a simple model is shown below.
public class SignoffModel : BaseMetadataModel
{
    public int? DamageId { get; set; }

    [ForeignKey("DamageId")]
    public DamageModel Damage { get; set; }

}

As soon as i run the project i get the multiple foreign key error. The exact same model is working with EFCore 2.1 and only happens with EFCore 2.2
Further technical details
EF Core version: 2.2.1
Database Provider: Microsoft.EntityFrameworkCore.SqlServer
Operating system: Windows 10
IDE:  Visual Studio 2017 15.9.5

This should be optional as we are unable to upgrade due to tons of duplicate keys now and secondly, we even want to keep those duplicated definitions as they help developers to orient what is pointing where.
It is nice to have a feature to discover them if one wants to remove the duplicate definitions though.

@vocko Can you show open a new issue with a small repro project that throws this exception and explain exactly how it would be useful not to throw besides saving the time to remove them?

Simply this case. As there are defined Table attributes, you are not allowed to have the ForeignKey one as it duplicates it (at least that's what I'm getting from the error I get). While I can click-through to a Company object, is is still nice to have that attribute on Person's property what gives me immediate visual hint where it points to and that it is related to some other table.
[Table("Person")]
public class Person
{
    [Key]
    public Guid Id {get; set;}

    [ForeignKey("Organisation")]
    public  Guid OrganisationId { get; set; }

    public virtual Company Organisation {get; set;}
}

[Table("Company")]
public class Company
{
    [Key]
    public Guid Id { get; set; }

    public  ICollection<Person> People { get; set; }
}

And also, as it was ignored up till 2.1, would be nice to have some option to keep it ignored by a flag or something as with the amount of duplicates we need at least a day of work to clean the whole solution and that blocks the upgrade.
Does it make sense?

@vocko That example doesn't throw any exceptions.

There are multiple ForeignKeyAttributes which are pointing to same set of properties - '{'DamageId'}' on entity type 'SignoffModel'.

Is only thrown when there are multiple ForeignKeyAttribute for the same property using different navigations.

Hmm, maybe I've missed something, I'm in the middle of something else right now, but I will take a look later to get the exact example we had problem with. I know that there were problems with Attributes where the same FK is defined in model builder, but I will try to bring the exact problem.
Thanks for responding Andriy!

We got a similar error message with .NET Core 3 source code we migrated from .NET 4.5.
The reason was that the old EF required to have ForeignKey both on the navigational property and on the foreign key field (or maybe it was ignored just like in 2.2)
Thank you, this thread helped us.