feat: add split.io service

Context
This PR adds the ability for the NR team to conduct A/B tests and gradually roll out new features. This is done using Split.io, which we have access to at NR.

@Julien4218 This might be related to the keys being moved to GH secrets. I'm not sure if compiling locally will pull down those secrets.

@Julien4218 This might be related to the keys being moved to GH secrets. I'm not sure if compiling locally will pull down those secrets.

That's fair, however my next test was to put some invalid credentials in env vars for those configs. In any ways, we need to make sure that any error related to the split service are handled silently from the user point of view. We can keep those as Debug info.


Bringing up a VM fails in Vagrant 1.5.4

I'm getting this stack trace when trying to bring up an openstack instance using the vagrant-openstack-plugin:
Bringing machine 'default' up with 'openstack' provider...
==> default: HandleBoxUrl middleware is deprecated. Use HandleBox instead.
==> default: This is a bug with the provider. Please contact the creator
==> default: of the provider you use to fix this.
==> default: Box 'dummy' could not be found. Attempting to find and install...
    default: Box Provider: openstack
    default: Box Version: >= 0
==> default: Adding box 'dummy' (v0) for provider: openstack
    default: Downloading: https://github.com/cloudbau/vagrant-openstack-plugin/raw/master/dummy.box
==> default: Successfully added box 'dummy' (v0) for 'openstack'!
==> default: Warning! The OpenStack provider doesn't support any of the Vagrant
==> default: high-level network configurations (`config.vm.network`). They
==> default: will be silently ignored.
==> default: Finding flavor for server...
==> default: Finding image for server...
/home/<user>/.vagrant.d/gems/gems/vagrant-openstack-plugin-0.7.0/lib/vagrant-openstack-plugin/action/create_server.rb:56:in `call': undefined method `empty?' for nil:NilClass (NoMethodError)
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/<user>/.vagrant.d/gems/gems/vagrant-openstack-plugin-0.7.0/lib/vagrant-openstack-plugin/action/connect_openstack.rb:56:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/builtin/set_hostname.rb:16:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/<user>/.vagrant.d/gems/gems/vagrant-openstack-plugin-0.7.0/lib/vagrant-openstack-plugin/action/warn_networks.rb:14:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/<user>/.vagrant.d/gems/gems/vagrant-openstack-plugin-0.7.0/lib/vagrant-openstack-plugin/action/sync_folders.rb:17:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/builtin/provision.rb:76:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/builder.rb:116:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/runner.rb:69:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/runner.rb:69:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/builtin/call.rb:51:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/builtin/handle_box.rb:56:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/builtin/handle_box_url.rb:9:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/builder.rb:116:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/runner.rb:69:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/runner.rb:69:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/machine.rb:157:in `action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/batch_action.rb:72:in `block (2 levels) in run'

Other information: we use nova-network, so setting os.network or os.networks doesn't make any sense.

merged, re-open if still an issue


docs:Support Hasura SSO authentication with Casdoor (#1479)

Support Hasura SSO authentication with Casdoor

 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.


Add PM2 cheat sheet + various additions

Add PM2 cheat sheet
Minor updates for bash, docker, git and ubuntu
Fix missing commands in AWS

Thank you! 👍 🙂


Two questions about Arabic and right-to-left text

I Google for "hello Arabic".  I get the usual translation dialog and press the "copy" button.

I paste to a TCC command line in WT ...

Two questions:
CHARMAP doesn't show any Arabic characters for my font (Consolas).  Where are they coming from?
If I backspace, those pasted characters are deleted from the left end!  Who (what software) knows (and how) that it's right-to-left?

Terminal implements font fallback (using DirectWrite); those characters are pulled from somewhere (but we do not surface the source anywhere.)
That RTL script is rendered properly (RTL) is an artifact of our renderer, and cannot be relied-upon or trusted until #538 lands. :smile:

Terminal implements font fallback (using DirectWrite); those characters are pulled from somewhere (but we do not surface the source anywhere.)
That RTL script is rendered properly (RTL) is an artifact of our renderer, and cannot be relied-upon or trusted until #538 lands. :smile:

That artifact is "we give DirectWrite runs of glyphs that are all the same color; it calculates how to render them itself". It's lucky that it works out as well as it does sometimes.

That artifact is "we give DirectWrite runs of glyphs that are all the same color; it calculates how to render them itself". It's lucky that it works out as well as it does sometimes.

Thanks!

we do not surface the source

Can't ... won't?

Thanks!

we do not surface the source

Can't ... won't?

Don't see the need to, don't have a place to do it, don't think anyone cares. :smile:
We're not a word processor. You can't just put your cursor on something and ask what font it came out in. There's no additional side channel for us to express that info with, either.
Oh, open a debug tap, "we rendered the glyph at 6, 7 using NSimSun instead of Consolas". Okay, who's going to use that information and for what purpose? :smile:

Don't see the need to, don't have a place to do it, don't think anyone cares. :smile:
We're not a word processor. You can't just put your cursor on something and ask what font it came out in. There's no additional side channel for us to express that info with, either.
Oh, open a debug tap, "we rendered the glyph at 6, 7 using NSimSun instead of Consolas". Okay, who's going to use that information and for what purpose? :smile:

Just curious about how things work.

Just curious about how things work.

Just a curiosity of mine.  For Right to Left, how is the command prompt handled?
|                                                  output  |
|                                                          |
|                                                 █  </:C  |
____________________________________________________________

Just a curiosity of mine.  For Right to Left, how is the command prompt handled?
|                                                  output  |
|                                                          |
|                                                 █  </:C  |
____________________________________________________________

how.. handled

It's not. It's not handled. Definitely move this discussion over to #538 if you'd like to talk RTL details.

how.. handled

It's not. It's not handled. Definitely move this discussion over to #538 if you'd like to talk RTL details.


tmp: do-not-merge

bors merge

bors ping

bors ping

bors ping

bors ping

bors ping

bors merge

bors merge

bors merge

bors merge

bors merge-

bors merge


Peer Metric Blog

This is a pull request for the blog post on peer metrics.

Fixes pyrsia/pyrsia#
There is no issue for this.
PR Checklist

[x] I've read the contributing guidelines.
[x] I've read "What is a Good PR?"
[x] I've included a good title and brief description along with how to review them.
[x] I've linked any associated an issue.

I update the website to make sure it supports the math stuff


Logpoints or Log Points

Request type
Correction or update
Details
We need to decide if we want to use Logpoints or Log Points.
Chrome and VSCode use Logpoints consistently and seems to have even convinced Google Search:

I vote for oneword (parity with VSCode and Chrome)
Honza

I'd also vote for Logpoints. Consistency is always good, particularly in tech writing and UI design ;-)
And Logpoint is also consistent with other single word versus double word debates, and the general trend of recent years (website, sidebar, checklist)

I have already updated the content to use logpoints and changed the tip for last week's newsletter to use logpoints as well. I marked this as in review because I will check to make sure I didn't miss any instances of log points that need to be changed.

It seems that the changes were successful. I haven't found any references to log points, so I think we can close this.


Add a way to run commands after compilation

This is useful e.g. for running migrations, when the tools required are not going to be built (e.g. because they are vendored in Godeps).
POST_BUILD_COMMAND can be something simple, or it can point to a script inside the repo.
Here's an example post-install script:
export PATH="$PATH:$(godep path)/bin"
godep go install github.com/some/vendored/cmd/migrate
migrate -env=heroku

I am of course open to suggestions, if there's a better way to do this, however this seemed to be the simplest solution.

I'd rather not tie this to an environment variable. My thoughts are either:
if make --dry-run heroku-post-compile
then
  make heroku-post-compile
fi

or
if test -f bin/post_compile
then
  chmod +x bin/post_compile
  bin/post_compile
fi

The former seems more "Go like". The later is in line with the python build pack.

I'm broadly in line with the latter, changing it as
if test -x bin/post_compile
then
  bin/post_compile
fi

i.e., respect +x permissions as set by the author, rather than forcing them. However, that probably plays interestingly with Windows users, who may not have a great way of setting permissions on Git-tracked scripts. It's probably worth asking @kennethreitz what his original rationale for chmod vs trusting permissions was.
make --dry-run generates a bunch of output, and the make interface for task goals (rather than file goals) is error-prone, so I'm not a huge fan of supporting it or encouraging it.

I'm also :-1: for enforcing make on this, some folks might use other build tools.
I'm also not a fan of the env var, but I couldn't really come up with anything better. I'd just go with @ojacobson's suggestion, now that he mentions it, and not worry about Windoze users. They can probably set the permissions with the git command anyway, even if that is not reflected locally.

Note that git hooks (pre-commit, post-update, etc) use hyphens, not underscores. Maybe consider doing the same here.

This is something very tricky to do right in the context of a build.
I think we need to find some patterns that help us run the migrations explicitly in the context of an app and it's config instead of during build time, which is increasingly being divorced from the git push model (see the new docker stuff, pipelines, etc).
I plan to use the migrate package (https://github.com/mattes/migrate) to explore this though.
Thanks for your input, but I'm closing this for now.


[WIP] refactor number protocol store in pytype

I am having the problem with this appoarch, the pyobject has a pytyperef witch is protected via rw lock but pytype's fields also need a lock to support interior mutability, that will make me difficult to return the borrowed reference for methods stored in pytype.
I am thinking maybe we could have a lock for whole pytype and cancel the lock in the pyobject as I don't see any chance pyobject could change it's type and pytype itself is rarely changed.

I met the same conclusion when I tried the same thing. I think we don't need to lock it. PyObjectRef is already Arc. Locking the type every time only to prevent the type-changing is too much. Instead of it, we can keep the rule to use only single access to PyObject::class() for consecutive operations.

replaced by #3819


Add docker-compose.yml

Pull Request Type
Added dockercompose.yml file as per the task.
[x] Solved an issue/task
Issue
#1107

Merged

This is an automated message from Fork, Commit, Merge [BOT].

Thank you for your contribution! Your pull request has been merged. The files have been reset for the next contributor.
What's next?
If you're looking for more ways to contribute, I invite you to check out my other projects. Just click here to find more. These projects contain real issues that you can help resolve. You can also check out the Influences section in the README to find more projects similar to this one.
Also please leave a star to this project if you feel it helped you, i would really appreciate it.
I look forward to seeing your contributions!


Tom's changes through Week 6

Tom's changes through Week 6

Hopefully adds Tom's changes

Your merge request is backward. You want to go from me to you. This request goes from you to me.


Error in the code of temperature scaling

Based on the formula for TS ,which is softmax(z/T) where T is the Temperature.But in the repository,the code represents softmax(z*T),where weight T is calculated.Can you please confirm this.

Hi, yes you're right, we're using a multiplication instead of a division as the former one is numerically more stable during optimization. So the model learns a weight w = 1/T instead of the temperature directly.


264 add tutorial on timing the solver and investigating solver statistics

Closes #264.
Docs can be viewed here: https://ncar.github.io/micm/branch/264-add-tutorial-on-timing-the-solver-and-investigating-solver-statistics/user_guide/but_how_fast_is_it.html
@sjsprecious this is built off of a timing mechanism that was added in #265. Please let me know if you think this tutorial might benefit from additional information

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

Comparison is base (4d506fd) 97.34% compared to head (1ee6693) 97.09%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #270      +/-   ##
==========================================
- Coverage   97.34%   97.09%   -0.26%
==========================================
  Files          32       32
  Lines        2639     2647       +8
==========================================
+ Hits         2569     2570       +1
- Misses         70       77       +7

Files
Coverage Δ

include/micm/solver/rosenbrock.hpp
100.00% <ø> (ø)

include/micm/solver/rosenbrock.inl
96.73% <ø> (-1.40%)
:arrow_down:

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


MySQL NULL sorting support

https://github.com/yuki2006/ent/pull/2/commits/f59ab69f3a21651cc16d9a9b377938b0407de6a1#r1683919390


Nesting context menus. Triggers both.

Current Behavior
Hi,
If i have 2 nested context menus and click on the nested trigger element. Both is openening and the parent/outer context menu is overlaying the nested one.
<ContextMenu.Root >
        <ContextMenu.Trigger>

                        {#if components}
                                {#each components as component}

                                                <ContextMenu.Root>
                                                        <ContextMenu.Trigger  >
                                                                {component.text}
                                                        </ContextMenu.Trigger>
                                                        <ContextMenu.Content>
                                                                <ContextMenu.Item>Inner context menu item</ContextMenu.Item>
                                                        </ContextMenu.Content>
                                                 </ContextMenu.Root>

                                {/each}
                        {/if}

        </ContextMenu.Trigger>
        <ContextMenu.Content>
                <ContextMenu.Item>Outer context menu itex</ContextMenu.Item>
        </ContextMenu.Content>
</ContextMenu.Root>

Expected Behavior
If nested trigger element is clicked only that context menu should open.
Steps To Reproduce

Add 1 context menu components
Add another one inside the first trigger.

Link to Reproduction / Stackblitz
No response
More Information
I do not know if this is a bug or just how it is intendet to be. Maby im just missing something.

Why is that nested menu inside of the main menu's trigger?

@huntabyte Thanks for your answere. The thing im trying to do is wrapping a fullscreen div with the context menu. When clicking inside the div it should trigger the context menu.
But if you click any element inside the div for example another h1. it should trigger another context menu. Maby im just overtinking this and it could be done with just 1 context menu and conditionaly check wich items to show in the actually popup.

@huntabyte I think i was too tired yesterday when i tried this. Got everything working before when i got home from work. Thank you for the time to check this out.

I am trying to achieve separate context menus for nested components as outlined in the image above.  What changes need to be made to the example at the top to get this to work?


Fix vibrato effects

This PR is made of 3 commits, I've left detailed comments on each commit. The goal is to improve vibrato accuracy.

Spectrogram comparison of vibrato-slow.xm:
LibXM Before:

LibXM After:

FT2Clone:

Note: The random waveform was introduced by Modplug Tracker and isn't officially part of XM format.
Spectrogram comparison of vibrato-octaves.xm:
LibXM Before:

LibXM After:

FT2Clone:

Thanks for the fixes. This also fixes vibrato and arp effect used simultaneously (either autovibrato or Vx volume command).

Thank you for your responsiveness


Can't download album with long names

Can't download album with long names in genie.
For example : Genie

I will write something to downsize the filename later today.

Fixed with 3a563b59c7a20cd74d47da6c3cbaf8b5ed6c360d
I see no way to handle the rename without removing the track title entirely.
There are too many variables, you could split at & and other such characters but that would be inconsistent. You coulda also remove just enough characters from the end that it doesn't error.
Doing either of these things would result in an incoherent track title, so it has just been removed and they can be renamed manually at the downloaders leisure.


Fix Prometheus node/cluster labels

WHAT is this pull request doing?

Add lavinmq_node label, hostname to differentiate nodes in cluster
Fix lavinmq_cluster to be a common cluster name for all nodes, this will allow Prometheus grouping by cluster

Cluster name must be set on all nodes, to the same value, via the clustering_name variable.
HOW can this pull request be tested?
Start LavinMQ with --clustering-name=my-cluster-name, scrape metrics.
$ curl -s http://guest:guest@localhost:15672/metrics | grep cluster
lavinmq_identity_info{lavinmq_version="2.0.0-9-g558bb98f", lavinmq_node="8E84C28F.local", lavinmq_cluster="my-cluster-name"} 1

Example from Prometheus TSDB:

looks good :) Minor: is cluster_name better than clustering_name?

Definitely more aesthetically pleasing but ... 🙂
... all other options are grouped under clustering, e.g. in the configuration file it's a section with [clustering] so now it's just name = ....

Ah.. makes sense, oh well!

How can you group on it unless you add the label to all metrics? Doing some kind of transformation somewhere? If that's case, isn't it possible to deduct the (CloudAMQP) cluster name by just dropping the last 3 chars from the node name?

Relevant questions here:

Is the intent to have a lavinmq_cluster label? I assumed yes since it was there., and I think LavinMQ should have have this label to avoid relabelling during scrape.

Do you have any intent on ever having an entitiy "cluster name" for anything else then metrics? If not this could be implemented in other ways (--extra-metrics-labels or something like that)

Yeah, nothing comes to mind now how we could use this for anything else, hence my hesitation. The label makes sense, but --extra-metrics-label lavinmq_cluster=red-panda --extra-metrics-label foo=bar sounded like a more generic idea!


Fetch crdsloader image to local registry

Hi @michalskalski,
What's the purpose of this image? Why should we download it into local registry?

Hi @Dysproz it looks like the crdsloader became init container for contrail-operator since this change https://github.com/Juniper/contrail-operator/pull/304 . I tried today setup test env with master branch and my registry did not contain this image.


Is there any possibility to have stronger VMs for the CI?

Question:
In our project[1], we consider migrating to GitHub Actions from Travis CI.
I've created a workflow in the repository.
However, some of our tests fail randomly in GitHub Actions while passing in Travis CI.
As part of our CI, we run a few quite heave tests using a lot of RAM.
I suspect that the slight difference between the VMs(7GB in GA vs. 7.5GB in Travis CI) makes the difference.
Is there any option to have stronger machines in GitHub Actions(in terms of RAM and CPU)?
I know that there is an option to use self-hosted runners but according to GA guidelines they are not recommended for public repositories.
[1] - https://github.com/vmware/concord-bft
Virtual environments affected

[ ] macOS 10.15
[ ] Ubuntu 16.04 LTS
[x ] Ubuntu 18.04 LTS
[ ] Ubuntu 20.04 LTS
[ ] Windows Server 2016 R2
[ ] Windows Server 2019

Hello!
Unfortunately, currently, we don't have way to provide stronger machines for CI.
@alepauly , do you know if there is any options here?

I am going to close this issue since, currently, there is no way to have stronger machines.
We will announce if there is any improvements in this direction

https://github.com/github/roadmap/issues/161
Is on the GitHub roadmap for Q3 2021. So, I assume it's coming.

@xp-vit , Yes, it is correct.
But we can't provide estimation for now, it is better to track via roadmap issue.


Greater than fifteen minutes to run a C++ example code using Tensorflow libraries using bazel

Why does it take greater than fifteen minutes to run a C++ example code using the Tensorflow libraries using bazel?
https://www.tensorflow.org/api_guides/cc/guide

Because of Wirths law

You are probably seeing delays because you actually have to compile from sources when using bazel.


[WIP] Order name is primary info

The order name should be in the primary information slot and the secondary  containing the internal ID should only be visible if the order name is not the internal ID.
@k2maan I have put the order name in the primary slot but you will have to carry it forward from here.
h3: Order name
p: Order ID, only visible if order id is different from order name

Added further changes in #223

Closing, completed in linked pr


Frequent failure caused by 302

Building servo with
./mach build --release

Caused by:
  failed to get 200 response from https://crates.io/api/v1/crates/quasi/0.9.0/download
Response {302, transfer-encoding: chunked, connection: keep-alive, keep-alive, set-cookie: ......; HttpOnly; Secure; Path=/, location: https://crates-io.s3-us-west-1.amazonaws.com/crates/quasi/quasi-0.9.0.crate, server: nginx, strict-transport-security: max-age=31536000, date: ......, via: 1.1 vegur, ]

On one hand, it seems cargo failed to follow the redirection replied by 302. On the other, simply rerunning the command would continue normally.

This seems odd... and perhaps a bug with our curl bindings? Dealing with 302 should be handled automatically in theory.

I would have expected this issue to have a lot more activity if this continued to be an issue for everyone; since it hasn't gotten that activity, I'm going to close this. Thanks!!


Update coding-conventions.md

Update coding style with place using directives outside the namespace declaration.
Summary
Describe your changes here.
Fixes #Issue_Number (if available)

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: MSRY sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Implement whether the input contains only html tags or it includes custom tags also

Implement whether the input contains only html tags or it includes custom tags also as it is specified here:  https://github.com/osscameroon/js-generator/issues/12

Now, the code accepts only html known tags. What about the custom tags coming from frameworks ? We should create an option to accept that.
Some illustrations of custom tags: https://hilla.dev/


Add an SQLError type

Global idea
The proposal of that pull request is to create a protocol and an enum to unify the error handling of all SQL drivers.
Here are the base ideas:

native SQL error types can create a custom error type that conform to the SQLError protocol, and that contains DB specific properties
the SQLErrorType enum lists a variety of type of errors. It does not exactly match the list of error codes of the databases, but makes it possible to implement different behaviors depending on the error, without having to write DB-specific code.

As of today, SQLite has an enum similar to SQLErrorType, but not other drivers. But even for SQLite, this enum is internal, and thus cannot be used in the client application.
Things that I would like to discuss
The granularity of the SQLErrorType enum
I have the feeling it could be less granular : some error like ioError and memory points are related to the configuration of the database server. some others like invalidData are related to the data.
In the first case, the problem is not related to the application, but rather to the system.
In the second case, the problem is related to the application.
So maybe that would be a more useful level of granularity that what is proposed here.
Adding valuable informations to the errors
For exemple, in the case of the constraint error, the name of the constraint as a payload of the error type could be valuable to the developper. Maybe the type of constraint (unique, foreign key, ...) could also be.
What would you think about adding such data ?
Additional notes
Please find here an exemple integration in the SQLite driver : https://github.com/jduquennoy/sqlite/commit/29dcb513c1d9bc0a4dd3c97ff8003928f6a39f55

Moved to #35. Thanks!


getAll() should use async iterator or have some other means of dealing with a large number of files

https://wicg.github.io/kv-storage/ ended up specifying use of an async iterator for enumeration because of real-world experience from https://github.com/w3c/ServiceWorker/issues/1066 where it was reported that Chrome would break once too many separate requests/responses were stored.  It seems like something similar is called for here.

It's very telling that the first thing the Emscripten example does is implement listByPrefix(prefix) on top of getAll(). That's indicative that it should just have been listByPrefix all along.
getAll() is the weak link in this otherwise good API, since churning though megabytes of filenames to access bytes of file won’t be acceptable for a high-performance storage interface. Right now it's not even obviously better than Cache API even for its prime use cases.
Examples:

Checking if a file exists in O(1) space/time
Searching though files in log-linear time
Iterating a date range of prefixed files lazily with early abort, and without allocating for O(n) names.

The iterator can do all of these and much more. You can even trivially build getAll() on top of it (but not the other way around without the performance hit).
const getAll = () => [...listByPrefix('')];

Hello, thank you for your feedback!
I agree having an async iterator to go over filenames is a goo idea. Right now we are considering a merger with the Origin Private File System (more details here), where an async iterator is already available. I'll close the issue for now, since we intend to have iterators and the surface is defined. I'll reopen it if this doesn't work out for some reason!


HBASE-26870 Log4j2 integration is incorrect in nighly's client integr…

…ation test

See: https://ci-hbase.apache.org/job/HBase Nightly/job/HBASE-26870-branch-2/2/
Although the build is still failing, but at lease we could see the log output to find out why
https://ci-hbase.apache.org/job/HBase Nightly/job/HBASE-26870-branch-2/2/artifact/output-integration/hadoop-3/mr-importtsv.err/*view*/
Filed HBASE-26871 for it.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 55s
Docker mode activated.

-0 :warning:
yetus
0m  5s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ branch-2 Compile Tests _

+0 :ok:
mvndep
0m 26s
Maven dependency ordering for branch

_ Patch Compile Tests _

+0 :ok:
mvndep
0m  4s
Maven dependency ordering for patch

_ Other Tests _

2m  6s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4250/1/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/4250

Optional Tests

uname
Linux 6d7246121990 5.4.0-1025-aws #25~18.04.1-Ubuntu SMP Fri Sep 11 12:03:04 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2 / ba14796289

Max. process+thread count
33 (vs. ulimit of 12500)

modules
C:  U:

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4250/1/console

versions
git=2.17.1 maven=3.6.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m 11s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+0 :ok:
shelldocs
0m  0s
Shelldocs was not available.

+1 :green_heart:
@author
0m  1s
The patch does not contain any @author tags.

_ branch-2 Compile Tests _

+0 :ok:
mvndep
0m 18s
Maven dependency ordering for branch

_ Patch Compile Tests _

+0 :ok:
mvndep
0m  6s
Maven dependency ordering for patch

-0 :warning:
shellcheck
0m  2s
The patch generated 1 new + 0 unchanged - 1 fixed = 1 total (was 1)

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

_ Other Tests _

+0 :ok:
asflicense
0m  0s
ASF License check generated no output?

2m 22s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4250/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/4250

Optional Tests
dupname asflicense shellcheck shelldocs

uname
Linux aeb8659ce0a8 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2 / ba14796289

shellcheck
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4250/1/artifact/yetus-general-check/output/diff-patch-shellcheck.txt

Max. process+thread count
33 (vs. ulimit of 12500)

modules
C:  U:

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4250/1/console

versions
git=2.17.1 maven=3.6.3 shellcheck=0.4.6

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m 23s
Docker mode activated.

-0 :warning:
yetus
0m  6s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ branch-2 Compile Tests _

+0 :ok:
mvndep
0m 17s
Maven dependency ordering for branch

_ Patch Compile Tests _

+0 :ok:
mvndep
0m  7s
Maven dependency ordering for patch

_ Other Tests _

2m 30s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4250/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/4250

Optional Tests

uname
Linux 2020fa29b1e8 5.4.0-1025-aws #25~18.04.1-Ubuntu SMP Fri Sep 11 12:03:04 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2 / ba14796289

Max. process+thread count
40 (vs. ulimit of 12500)

modules
C:  U:

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4250/1/console

versions
git=2.17.1 maven=3.6.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.


This topic is so HOT! Files cannot be downloaded~~

When I downloaded these two files that taki0112 shared, the google drive tells me this:
Sorry, you are currently unable to view or download this file.
Too many users have recently viewed or downloaded this file. Try accessing this file again later. If the file you are trying to access is extremely large or Shared by many people, it can take up to 24 hours to view or download. If you are still unable to access the file after 24 hours, contact your domain administrator.
Could anyone share another link? Thanks a lot~~

see#5 latest

me2

Workout this:

Add file to your drive

Right click on file and make copy

Download the file

Hope it helps!


[Feature/multi_tenancy] Fix and enable execute remote inference test

Description
Fixes and enables a non-working unit test.

wrong argument was captured in one case
a null (untyped) string wasn't matching anyString(). Mocked the non-null string that should go there.
final test compared to CREATED but should be COMPLETED

Related Issues
Check List

[x] New functionality includes testing.
[x] Commits are signed per the DCO using --signoff.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Thanks for raising this PR.


Support for multiple pdbs in ORACLE_DATABASE

As I understand even XE Database allows for up to 3 pdbs. Wouldn't it be convenient to pass up to 3 pdbs names into ORACLE_DATABASE?

Hi @jmichler, actually, starting with 21c, XE no longer has any restrictions on the number of PDBs.
However, ORACLE_DATABASE was not introduced to provide an easy way to provision multiple PDBs at once, or clone from others, etc. It is a variable that allows a user to provide a database name to connect to if for whatever reason XEPDB1 is not good enough.
It falls in line with other images that provide a similar mechanism, like MySQL:

MYSQL_DATABASE
This variable is optional and allows you to specify the name of a database to be created on image startup. If a user/password was supplied (see below) then that user will be granted superuser access (corresponding to GRANT ALL) to this database.

Or Postgres:

POSTGRES_DB
This optional environment variable can be used to define a different name for the default database that is created when the image is first started. If it is not specified, then the value of POSTGRES_USER will be used.

If a user wants to provision multiple PDBs, the initialization scripts mechanism should be used instead. This also allows the user to create additional database users, grant privileges on those PDBs to them, and much more.


Fix image flicker issue when showing image

The original approach set alpha and scaling etc after viewController.presentViewController(self, animated: false) call, which will present the 100% scaled VC on screen first then make it become invisible and scale, thus cause a flicker. Moving the alpha part before presentVC fixes that.
Also, the off screen initial scale doesn't seem reasonable so I changed it to a smaller scale which looks more natural. Later on Agrume could provide different showing options.

Most lovely. Thank you!


fix: Multiple dashboard refresh triggers for the same session

SUMMARY
Fix: Multiple dashboard refresh triggers for the same session.
@junlincc @jinghua-qa
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
https://user-images.githubusercontent.com/70410625/128402857-334beb22-56cb-4063-85d2-4c6dcfea3dfc.mp4
https://user-images.githubusercontent.com/70410625/128397058-dde32dbb-24ef-4035-8884-7b2412cf7a4b.mp4
TESTING INSTRUCTIONS
Check the videos for instructions.
ADDITIONAL INFORMATION

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

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

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

your BEFORE AFTER videos crack me up LOL! ∞∞∞∞∞∞∞ .thanks for the fix! LGTM

/testenv up

@suddjian @junlincc Since our redux store is not indexed by the dashboard, and changing that can potentially break other functions, I decided to cancel the timers as soon as the user leaves the dashboard. Is not the ideal solution, but it's better than the current state, where the timers are being duplicated.

🏷 2021.31


PE Module not workign correctly when scanning processes

Hello,
It seems that the PE module has a few issues when scanning running processes on Windows. When an executable is mapped into memory, its allocation is split into a number of sub allocations with different protections. It appears that the module is only taking into account the first sub allocation, which is typically (possibly always) a 4K region contain the PE headers.
Due to the fact that the headers are in this first region a lot of the functionality works most of the time, however because the windows loader is a bit more flexible than the PE specification, this will be inconsistent.
More commonly, problems manifest in the import table parsing because the imports data is usually stored in a section outside of the headers block. Since the module does not pull this data in, it fails because it determines the offsets to be out of bounds.
Since the imports, and potentially other items, can potentially be spread all over the PE file, I believe it is necessary to pull the full allocation into the buffer before analysing.
Parsing of imports from running processes is something I am in need of for a project, so I had a go at implementing the functionality. I managed to get it working with a limited number of test cases but I haven't had time to fully test yet. Also I crossed a couple of code boundaries that seem to be in place in the source so I think my approach is likely a bit too much of a hack. It may be useful though, since logically it does work. The fork is at https://github.com/niallnsec/yara Its only an evenings work so I appreciate it is a bit rough.
I took the approach of fetching all committed regions that shared the same allocation base as the region containing the headers for the base image. That way I can be sure all of the data has been retrieved. This has the downside of requiring potentially large amounts of memory for very large binaries. I think the alternative would involve on demand retrieval of sub allocation data. I placed the data sequentially into a buffer to simplify access, but this may cause bounds checking issues if a reserved region exists in the allocation (although I am not sure that would ever happen).
I also added a routine to more quickly find the base address of the primary module to avoid iterating through all the process regions since ReadProcessMemory is a pretty expensive function.
Thanks

Sorry for the delayed response. I didn't managed to spend time in reviewing this issue until now. The work you had done is very interesting and I think it can be very valuable. Honestly this memory scan feature has been a bit neglected for a long time, so is nice to have someone who looks more carefully into it.
I would like to start by understanding the issue in depth. My understanding is that currently the PE module is assuming that all the data it needs is contained in single memory block (the memory block where the PE header resides). Those memory blocks are memory regions reported by VirtualQueryEx as continuous memory regions with the same access privileges. However there are situations in which import data is not in the same memory region that the PE header, and this of course makes YARA fail. Is that correct?
If that's correct it brings me a question. Why exactly those regions (the one containing the PE header, and the one containing the import data) are separated? Do they have some unallocated region in between? Do they have different access privileges? Or they are both contiguous and also with the same privileges, but the loader decided to allocate them as two different blocks and therefore VirtualQueryEx treats them as different regions?

Sorry for the delayed response. I didn't managed to spend time in reviewing this issue until now. The work you had done is very interesting and I think it can be very valuable. Honestly this memory scan feature has been a bit neglected for a long time, so is nice to have someone who looks more carefully into it.
I would like to start by understanding the issue in depth. My understanding is that currently the PE module is assuming that all the data it needs is contained in single memory block (the memory block where the PE header resides). Those memory blocks are memory regions reported by VirtualQueryEx as continuous memory regions with the same access privileges. However there are situations in which import data is not in the same memory region that the PE header, and this of course makes YARA fail. Is that correct?
If that's correct it brings me a question. Why exactly those regions (the one containing the PE header, and the one containing the import data) are separated? Do they have some unallocated region in between? Do they have different access privileges? Or they are both contiguous and also with the same privileges, but the loader decided to allocate them as two different blocks and therefore VirtualQueryEx treats them as different regions?

I also like your approach of implementing a yr_process_fetch_primary_module_base for finding the base address for the main module. Currently YARA enumerates the memory blocks and it considers that the first block in which it finds a PE header that's the main module, and that's no necessarily true, I always thought that it was fragile assumption. Would you explain me the inner working of that function? I'm particularly intrigued about this:
https://github.com/VirusTotal/yara/compare/master...niallnsec:master#diff-814b41c5dc1a8103cab442fcb7e9647b02e4ba911d719adcd4fe78bedd8d640eR312
It looks like you are getting the base address from some undocumented field in the structure returned by  NtQueryInformationProcess  with ProcessWow64Information? Is that correct?

I also like your approach of implementing a yr_process_fetch_primary_module_base for finding the base address for the main module. Currently YARA enumerates the memory blocks and it considers that the first block in which it finds a PE header that's the main module, and that's no necessarily true, I always thought that it was fragile assumption. Would you explain me the inner working of that function? I'm particularly intrigued about this:
https://github.com/VirusTotal/yara/compare/master...niallnsec:master#diff-814b41c5dc1a8103cab442fcb7e9647b02e4ba911d719adcd4fe78bedd8d640eR312
It looks like you are getting the base address from some undocumented field in the structure returned by  NtQueryInformationProcess  with ProcessWow64Information? Is that correct?

No worries, I have been using YARA for a few years now and am very appreciative of the work yourself and others have put into the project. My own project actually got put on hold which is why I have not revisited this since October.
You are correct in your understanding. To elaborate a bit, there are two assumptions the PE module is implicitly making with respect to memory scanning which do not hold true:

The structure of a PE file in memory is the same as on disk
All of the data needed for parsing the headers is contained in the first allocated region of memory

Both issues are caused by the actions of the Windows loader when an image is mapped into memory (the hallmark or which is the SEC_IMAGE memory section type). The loader parses the headers and then creates a base allocation for the image file based on the size of the headers plus the virtual sizes of each section, padded so each is aligned according to IMAGE_NT_HEADERS.OptionalHeader.SectionAlignment.
Within this base allocation it first allocates a region large enough to hold the PE headers using the size stored in IMAGE_NT_HEADERS.OptionalHeader.SizeOfHeaders padded to be aligned according to the files SectionAlignment. These are only used during the load process and may be scrubbed once the loader is done, although this is usually only seen in the case of malware. Next, the loader iterates over the section headers and allocates a sub region for each section sequentially. The size and protection values for each region is taken from the corresponding section header. The size of each region is also aligned according to the files SectionAlignment value.
(In practice there are optimisations in place in Windows that may change the protection value of various sections for improved system performance. Regions with the same protection value within a single base allocation are treated as a single region when querying with VirtualQueryEx. The most common optimisations observed are the use of WRITE_COPY memory instead or READ_WRITE for one or more parts of a section and the re-protection of certain READ_WRITE sections to READ_ONLY such as the common .didata section.)
Once all the sections are in place, the loader will parse the data directories. The data directories structure is an array of objects which store pointers to data and the size of the associated data blobs. The data blobs can be located at any virtual address and will almost always be outside of the PE header region.
In the case of the Imports directory, there are multiple levels of nesting of data pointers, starting with the thunk objects describing the imported DLLs. Although the imports are typically contiguous, it is possible for each data pointer to reference any valid virtual address within the image. The same holds true for the other data directories, which means the region which contains the data could belong to any of the PE files sections.
This means that in order to reliably parse the data, YARA needs to be able to reference all of the regions that make up the PE file, much in the same way it does when the PE module is operating on files on disk (I believe).
The approach I took to making the data available was to allocate a block of memory which is big enough to hold the entire base allocation as reported by VirtualQueryEx, and then iterate forward copying each region until the value for AllocationBase reported by VirtualQueryEx changes. This has the drawback of potentially causing YARA to use a large region of memory, although the maximum size should be reasonably bounded.
The advantage is that all of the RVAs are now offsets into the memory block that has been copied and so can be easily referenced with a bit of pointer arithmetic.
As well as the splitting of data into discrete allocations based on the sections, there are also a couple of other notable changes caused by the loader:

The RVA addresses in the headers and associated data structures should now be considered raw offsets from the image base
The PE overlay is never loaded into memory, this usually means that and code signing certificate data will be missing, making it impossible to parse the Security directory
Some sections will not be loaded into memory, notably if their VirtualAddress or VirtualSize is zero or if they are marked with the Discard section characteristic.
Relocations are applied where necessary
Some of the information used when calculating the PE checksum is missing or altered, meaning you will get an invalid result when attempting to verify the value

Regarding the yr_process_fetch_primary_module_base function:
The primary purpose of the function is to locate the ImageBaseAddress field in the processes PEB which stores a pointer to the first allocated region of the PE file being executed. Although the PEB is undocumented, the ImageBaseAddress field has remained in the same place for over 20 years, so it is a fairly safe bet it wont change any time soon. The offset for this field from the start of the PEB is 0x08 for 32-bit windows and 0x10 for 64-bit Windows.
Things are complicated by the fact that 64 bit windows supports running 32 bit applications using WOW64. When a process is running in WOW64 mode, it will have two distinct PEB structures, one for 64 bit and one for 32 bit. The ImageBaseAddress pointer we require is in the 32 bit PEB but the address returned in the PebBaseAddress field of PROCESS_BASIC_INFORMATION will be a pointer to the 64 bit PEB. In order to overcome this, we can use the ProcessWow64Information class in the call to NtQueryInformationProcess.
Although the official documentation states that the value returned by using ProcessWow64Information is a BOOLEAN, in reality it is a pointer to the processes 32 bit PEB, if it is present. So far, to the best of my knowledge, this has remained true in all versions of Windows which support WOW64.
There are 5 possible scanning situations depending on the architectures of the system, YARA and the target process for which the function must account:

On a 32-bit system:

32 bit YARA scanning 32 bit process - We can use ProcessBasicInformation to get the address of PEB.

On a 64-bit system:

32 bit YARA scanning 32 bit process - We can use ProcessBasicInformation to get the pointer to the 32 bit PEB. This pointer is guaranteed to be in memory lower than 4GB so we do not have to worry about truncation.
32 bit YARA scanning 64 bit process - We cannot reliably get the PEB pointer because it may be in memory greater than 4GB resulting in a truncated pointer being returned. The only way to scan in this manner would be to use the techniques implemented in this project: https://github.com/rwfpl/rewolf-wow64ext
64 bit YARA scanning 64 bit process - We can use ProcessBasicInformation to get the address of the PEB.
64 bit YARA scanning 32 bit process - We can use ProcessWow64Information to get the pointer to the 32 bit PEB.

If we manage to retrieve a valid PEB address, we can read the process memory at the appropriate offset to get the ImageBaseAddress pointer, then it can be used to immediately jump to the correct location for scanning. Otherwise the function returns NULL forcing YARA to default back to the slower brute force approach.

No worries, I have been using YARA for a few years now and am very appreciative of the work yourself and others have put into the project. My own project actually got put on hold which is why I have not revisited this since October.
You are correct in your understanding. To elaborate a bit, there are two assumptions the PE module is implicitly making with respect to memory scanning which do not hold true:

The structure of a PE file in memory is the same as on disk
All of the data needed for parsing the headers is contained in the first allocated region of memory

Both issues are caused by the actions of the Windows loader when an image is mapped into memory (the hallmark or which is the SEC_IMAGE memory section type). The loader parses the headers and then creates a base allocation for the image file based on the size of the headers plus the virtual sizes of each section, padded so each is aligned according to IMAGE_NT_HEADERS.OptionalHeader.SectionAlignment.
Within this base allocation it first allocates a region large enough to hold the PE headers using the size stored in IMAGE_NT_HEADERS.OptionalHeader.SizeOfHeaders padded to be aligned according to the files SectionAlignment. These are only used during the load process and may be scrubbed once the loader is done, although this is usually only seen in the case of malware. Next, the loader iterates over the section headers and allocates a sub region for each section sequentially. The size and protection values for each region is taken from the corresponding section header. The size of each region is also aligned according to the files SectionAlignment value.
(In practice there are optimisations in place in Windows that may change the protection value of various sections for improved system performance. Regions with the same protection value within a single base allocation are treated as a single region when querying with VirtualQueryEx. The most common optimisations observed are the use of WRITE_COPY memory instead or READ_WRITE for one or more parts of a section and the re-protection of certain READ_WRITE sections to READ_ONLY such as the common .didata section.)
Once all the sections are in place, the loader will parse the data directories. The data directories structure is an array of objects which store pointers to data and the size of the associated data blobs. The data blobs can be located at any virtual address and will almost always be outside of the PE header region.
In the case of the Imports directory, there are multiple levels of nesting of data pointers, starting with the thunk objects describing the imported DLLs. Although the imports are typically contiguous, it is possible for each data pointer to reference any valid virtual address within the image. The same holds true for the other data directories, which means the region which contains the data could belong to any of the PE files sections.
This means that in order to reliably parse the data, YARA needs to be able to reference all of the regions that make up the PE file, much in the same way it does when the PE module is operating on files on disk (I believe).
The approach I took to making the data available was to allocate a block of memory which is big enough to hold the entire base allocation as reported by VirtualQueryEx, and then iterate forward copying each region until the value for AllocationBase reported by VirtualQueryEx changes. This has the drawback of potentially causing YARA to use a large region of memory, although the maximum size should be reasonably bounded.
The advantage is that all of the RVAs are now offsets into the memory block that has been copied and so can be easily referenced with a bit of pointer arithmetic.
As well as the splitting of data into discrete allocations based on the sections, there are also a couple of other notable changes caused by the loader:

The RVA addresses in the headers and associated data structures should now be considered raw offsets from the image base
The PE overlay is never loaded into memory, this usually means that and code signing certificate data will be missing, making it impossible to parse the Security directory
Some sections will not be loaded into memory, notably if their VirtualAddress or VirtualSize is zero or if they are marked with the Discard section characteristic.
Relocations are applied where necessary
Some of the information used when calculating the PE checksum is missing or altered, meaning you will get an invalid result when attempting to verify the value

Regarding the yr_process_fetch_primary_module_base function:
The primary purpose of the function is to locate the ImageBaseAddress field in the processes PEB which stores a pointer to the first allocated region of the PE file being executed. Although the PEB is undocumented, the ImageBaseAddress field has remained in the same place for over 20 years, so it is a fairly safe bet it wont change any time soon. The offset for this field from the start of the PEB is 0x08 for 32-bit windows and 0x10 for 64-bit Windows.
Things are complicated by the fact that 64 bit windows supports running 32 bit applications using WOW64. When a process is running in WOW64 mode, it will have two distinct PEB structures, one for 64 bit and one for 32 bit. The ImageBaseAddress pointer we require is in the 32 bit PEB but the address returned in the PebBaseAddress field of PROCESS_BASIC_INFORMATION will be a pointer to the 64 bit PEB. In order to overcome this, we can use the ProcessWow64Information class in the call to NtQueryInformationProcess.
Although the official documentation states that the value returned by using ProcessWow64Information is a BOOLEAN, in reality it is a pointer to the processes 32 bit PEB, if it is present. So far, to the best of my knowledge, this has remained true in all versions of Windows which support WOW64.
There are 5 possible scanning situations depending on the architectures of the system, YARA and the target process for which the function must account:

On a 32-bit system:

32 bit YARA scanning 32 bit process - We can use ProcessBasicInformation to get the address of PEB.

On a 64-bit system:

32 bit YARA scanning 32 bit process - We can use ProcessBasicInformation to get the pointer to the 32 bit PEB. This pointer is guaranteed to be in memory lower than 4GB so we do not have to worry about truncation.
32 bit YARA scanning 64 bit process - We cannot reliably get the PEB pointer because it may be in memory greater than 4GB resulting in a truncated pointer being returned. The only way to scan in this manner would be to use the techniques implemented in this project: https://github.com/rwfpl/rewolf-wow64ext
64 bit YARA scanning 64 bit process - We can use ProcessBasicInformation to get the address of the PEB.
64 bit YARA scanning 32 bit process - We can use ProcessWow64Information to get the pointer to the 32 bit PEB.

If we manage to retrieve a valid PEB address, we can read the process memory at the appropriate offset to get the ImageBaseAddress pointer, then it can be used to immediately jump to the correct location for scanning. Otherwise the function returns NULL forcing YARA to default back to the slower brute force approach.

Thank you for the very detailed explanation, everything is more clear to me now. It looks like you know a lot about the internal working of the Windows loader, so if you have the time and willingness to collaborate in this area, your help is going to be really appreciated.
I think I'm going to merge your commit for version 4.2 (4.1 is scheduled to be released soon and I prefer not introducing large changes at this point). In the meanwhile I'll try to familiarize myself with your changes and will probably ask questions during the process.

Thank you for the very detailed explanation, everything is more clear to me now. It looks like you know a lot about the internal working of the Windows loader, so if you have the time and willingness to collaborate in this area, your help is going to be really appreciated.
I think I'm going to merge your commit for version 4.2 (4.1 is scheduled to be released soon and I prefer not introducing large changes at this point). In the meanwhile I'll try to familiarize myself with your changes and will probably ask questions during the process.

I'd be more than happy to collaborate, analysing PE features of memory images is something I am very interested in. I have been working on a project surrounding realtime/forensic analysis of Windows memory and I think the memory scan feature of YARA is incredibly useful.
Regarding the code I was working on, I have been re-familiarising myself with it and there was one bit in particular which I thought seemed fragile and a bit hacky, the function yr_process_fetch_memory_region_data. It sort of hijacks the underlying data fetching logic of YARA and uses structures from untyped pointers to do its work. As a result it is dependent on the behaviour of the existing data loading functions, so any future changes in that part of the code base could break this function in unexpected ways.
Having said that, I struggled to find a better way of doing it without creating a mess in other code files. I did think about loading the data separately without using the YR_MEMORY_BLOCK structure at all but that seemed worse to me than the code I came up with initially.

I'd be more than happy to collaborate, analysing PE features of memory images is something I am very interested in. I have been working on a project surrounding realtime/forensic analysis of Windows memory and I think the memory scan feature of YARA is incredibly useful.
Regarding the code I was working on, I have been re-familiarising myself with it and there was one bit in particular which I thought seemed fragile and a bit hacky, the function yr_process_fetch_memory_region_data. It sort of hijacks the underlying data fetching logic of YARA and uses structures from untyped pointers to do its work. As a result it is dependent on the behaviour of the existing data loading functions, so any future changes in that part of the code base could break this function in unexpected ways.
Having said that, I struggled to find a better way of doing it without creating a mess in other code files. I did think about loading the data separately without using the YR_MEMORY_BLOCK structure at all but that seemed worse to me than the code I came up with initially.

Hello,
Sorry for digging out this thread. I came across the same problem recently and I am very interested in a potential integration of pe module for running Windows processes. As you mentionned it could part of a further release, I wondered if you could you provide any update on the matter ?
Thanks.

I see there is an RC for version 4.2 of Yara, is there anything I can do to help with getting this change included in the next release?

We can start working on merging this into master. I wouldn't release it in version 4.2.0, as the first release candidate is already out and I'm only introducing bug fixes and minor changes, but for it could be released in 4.3.
@niallnsec Could you please send a pull request with your latest changes?

@plusvic I have created a PR with the changes from my fork, although it builds and runs on my Windows machine it appears there are a few issues with the CI build which I haven't had a chance to address yet.

It's a a linking problem:
libyara64.lib(windows.obj) : error LNK2019: unresolved external symbol NtQueryInformationProcess referenced in function yr_process_fetch_primary_module_base [C:\projects\yara\windows\vs2015\yara\yara.vcxproj]
C:\projects\yara\windows\vs2015\Debug\yara64.exe : fatal error LNK1120: 1 unresolved externals [C:\projects\yara\windows\vs2015\yara\yara.vcxproj]

You added ntdll.lib to the VS2017 project, but not to VS2015, which is the one used in CI.

I've fixed the VS project and that is building now, but I cannot figure out how to get the cygwin test projects to build. I tried quite a few different things but could not get it to link the test files with ntdll.


IDs should be lowercase

After a discussion at the office we decided that id's (app id, device id, gateway id, ...) should be case insensitive, because having both Hello-World and hello-world can create a lot of confusion.
Having mixed-case id's that are case insensitive will cause a lot of pain however (you have to store mixed case, but convert to lowercase at every check etc.), so we should force id's to be lowercase.

Fixed in refactor 9955a22f37dcc1fa93ec898c1d892281b1df5c3c

I already did it in the integration :)

@johanstokking: is your part also resolved?


Hey warn a guy before rebooting on Updating.

Microsoft PowerToys version
0.59
Running as admin

[X] Yes

Area(s) with issue?
Installer
Steps to reproduce
Update PowerToys Preview from the settings menu (0.56-> 0.59)
Do nothing.
Computer attempts to force close all open windows and restart, including my carefully built tmux session.
✔ Expected Behavior
At least a courteous warning you were going to restart the computer.   A simple you must restart to use PowerToys -> Restart. Later? would suffice.  If its critical to PowerToys usage, than a warning before installing would have been nice.  So at least I could be like -

" Hey, you know- I'm using PowerToys at this moment, which is why I saw the update button in the first place..., but if it won't work until I perform a restart then maybe I'll just wait on this minor version bump until I am not in the middle of server administration via SSH"

❌ Actual Behavior
While I had a dozen terminal windows open, all of a sudden I get the blue restarting... screen and all  my windows are being force-closed.
I'm sure it has to do with the SDK, but unexpected restarts are not good for a lot of people.
I cant actually prove it was Powertoys, but I know my terminals weren't doing anything new, and the fact that I had clicked the update button seconds before makes me pretty sure.
Other Software
Windows Terminal
SSH

I dont expect an actual response here. Just lodging my irritation and consideration for future versions

Sorry, this was fixed on 0.57.0, but it's actually something that happens when the installer is being called for updating. (Need to pass the /norestart flag to the installer or the "quiet" install will restart without prompting).
So, updating from >0.57.0 won't cause this, but updating from previous versions will.
Sorry, this happened, but it's been fixed already on more recent versions.


Allow the memfd feature to not be applied when instantiate engine

So that I can use wasm in very low Linux kernel version, such as 2.6.32 .
I am trying to make a plugin system based on wasmtime to fit all OS. When targeting to x86_64-unknown-linux-musl, it compiles, but when I try to run it on CentOS 6.6 or Ubuntu 14.04, it just report the follows:
$ ./runner-amd64-linux-musl-minf
Error: Failed to instantiate

Caused by:
    0: cannot create a memfd
    1: Function not implemented (os error 38)

The wasmtime version and enabled features:
wasmtime = { git = "https://github.com/bytecodealliance/wasmtime", rev = "cc1c14ac913be13329e5cfc91c33e053ab722132", features = [
  "component-model",
  "async",
] }

AFIK, CoW which relies on memfd_create is just not necessary, so can I get an option to not using it (in the feature form). It seems it's the only thing that prevents wasmtime to startup under older Linux kernel.

Thanks for the report! I've also posted https://github.com/bytecodealliance/wasmtime/pull/6230 in addition to what @bjorn3 mentioned, to handle this in the future without needing explicit configuration.


ssl err while configuring chef server 12

Hey Guys,
im a beginner in chef server.Iam facing a probelm while config the chef server.it gives ssl validation failure connecting to my host ip:<IP_ADDRESS>.i tried the steps of following two url:
1)http://jtimberman.housepub.org/blog/2014/12/11/chef-12-fix-untrusted-self-sign-certs/
2)https://www.chef.io/blog/2014/12/12/chef-12-fix-untrusted-self-signed-certificates/
still the ssl val;idation fails for my hostname:<IP_ADDRESS>.
my knife.rb config file is as follows:
See https://docs.getchef.com/config_rb_knife.html for more information on knife configuration options
current_dir = File.dirname(FILE)
log_level                :info
log_location             STDOUT
node_name                'harsh180'
client_key               '/chef-repo/.chef/harsh180.pem'
validation_client_name   'mycompany-validator'
validation_key           '/chef-repo/.chef/mycompany-validator.pem'
chef_server_url          'https://<IP_ADDRESS>'
cookbook_path            [ '/chef-repo/cookbooks' ]
its a very BIG hurdle for me.I trying to configure this since 3days.
Please Help.

Apologies that no one responded to this issue.  I'm closing it now, but if you still require help with anything related to Chef, please let us know.


udp: ensure that suggested_size in alloc_cb of recv_start is 1 max size dgram

Note: I'm not super convinced this is totally necessary/the best way to do this.
The intention here is to make working with recvmmsg more straight-forward, since internally Libuv expects buffers that are multiples of UV__UDP_DGRAM_MAXSIZE, but previously that wasn't totally obvious (from my perspective at least).
This would be the final part of #2822. If merged, closes #2822.

CI: https://ci.nodejs.org/job/libuv-test-commit/2182/


[Bug?]: vinxi build produces code that uses wrong APIs (import fetch from "node-fetch")

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Current behavior 😯
When importing and using APIs like import fetch from "node-fetch"; the types, and APIs that are used at runtime WILDLY differ between npm run dev and npm run build && node .output/server/index.mjs.
Observed differences:

using await fetch(myUrl, { compress: false });

run dev: the response returned is as expected not decompressed when using .arrayBuffer()
run build: the response ignores the compress option and decompresses the response of .arrayBuffer()

prototype of NodeJS.ReadableStream (console.log(await fetch(myUrl).body)

run devPassThrough {
    _transform: [Function],
    .... many more props .....
    find: [Function],
}

run build[ReadableStream] {
   locked: [Getter],
   cancel: [Function: cancel],
   getReader: [Function: getReader],
   pipeThrough: [Function: pipeThrough],
   pipeTo: [Function: pipeTo],
   tee: [Function: tee],
   values: [Function: values]
 }

In general it seems that at runtime (npm run build) import fetch from "node-fetch"; the fetch is replaced with the browser/DOM fetch API which does not happen at npm run dev.
Expected behavior 🤔
When importing import fetch from "node-fetch"; the output and behaviour of the API in npm run dev and npm run build is completely the same. While implementation might change behind the scene on building behaviour and API contracts shall not be broken.
Steps to reproduce 🕹
Steps:

go to https://stackblitz.com/edit/github-qd1tfd?file=src%2Froutes%2Findex.ts
Clone it to your laptop: the reproducer does not work on stackblitz since the app runs seemingly in a web-worker and seems NOT to use "real" node-apis
run npm install && npm run dev goto localhost:3000 see the Content size + body prototype
run npm run build && node .output/server/index.mjs repeat and see the difference

Context 🔦
There are features in the node-fetch fetch not present in the browser / dom fetch (the compress option).
Your environment 🌎
@solidjs/start: 1.0.9

(see the stackblitz from reproducer)

I see.. I wonder if this was to try to homogenize all the fetch on the web version.. I don't think Start does this but Vinxi might be.

To share some information to help trace this, it might be coming from unenv which Nitro uses. I've experienced similar behaviour in build.
You may consider doing this to circumvent the automatic replacement
export default defineConfig({
  server: {
    alias: {
      "node-fetch": "node-fetch",
    },
  },
});

Where would I have to do this? vinxi.js? Vite plugin?

In app.config.ts


Can you use this package with Meteor server deployed with MUP?

Hi @martijnwalraven
We tested this package out with our test site hosted at meteor.com
It works great there.
I am wondering if it will work the same with a meteor server deployed to linode using MUP?
What about if you use the cluster package?
Does the websocket URL automatically exist?

Also any info that we need when deploying an app using this package to the app store?

It shouldn't matter where your app is deployed, as long as Meteor iOS can keep an open WebSocket connection to the server (it doesn't support SockJS long polling). I'm not familiar with a Meteor Up + Cluster setup, so you should definitely test this yourself. I'm not sure what you mean by 'Does the websocket URL automatically exist?'.
Using Meteor iOS shouldn't affect submission to the App Store. It doesn't use any private APIs.

Thanks I will test with cluster package and let you know.

@martijnwalraven
I removed the cluster package and deployed my meteor app to linode using MUP
It should act like a normal meteor server, I don't have anything custom setup
It connects to .meteor hosted site just fine
But when I try to connect to the ip address of the server on LiNode (cloud server) I get the error:
2015-08-10 21:15:42.732 spiphone[16858:2618522] PSWebSocket: debug mode allowing all SSL certificates
2015-08-10 21:15:42.770 spiphone[16858:2618480] Will retry opening connection after 23.911826 seconds

and then it just keeps trying to connect and never connecting.

I figured it out!
Actually when deploying to linode I dont use the URL
wss://app.url.com/websocket
I had to use
http://app.url.com/websocket

I also just tested with the cluster package and it works like normal! Good stuff


feat: add create_id for github; add create_name for domain layer

Summary

add create_name in domian table issue
fix github not fill create_id in domian table issue

Does this close any open issues?
close #1976
Screenshots

@mindlesscloud Please take a look at this


Serbian translation of HTML5 and CSS

[ ] Say Hello to HTML Elements Complete
[ ] Headline with the h2 Element Complete
[ ] Inform with the Paragraph Element Complete
[ ] Uncomment HTML Complete
[ ] Comment out HTML Complete
[ ] Fill in the Blank with Placeholder Text Complete
[ ] Delete HTML Elements Complete
[ ] Change the Color of Text Complete
[ ] Use CSS Selectors to Style Elements Complete
[ ] Use a CSS Class to Style an Element Complete
[ ] Style Multiple Elements with a CSS Class Complete
[ ] Change the Font Size of an Element Complete
[ ] Set the Font Family of an Element Complete
[ ] Import a Google Font Complete
[ ] Specify How Fonts Should Degrade Complete
[ ] Add Images to your Website Complete
[ ] Size your Images Complete
[ ] Add Borders Around your Elements Complete
[ ] Add Rounded Corners with a Border Radius Complete
[ ] Make Circular Images with a Border Radius Complete
[ ] Link to External Pages with Anchor Elements Complete
[ ] Nest an Anchor Element within a Paragraph Complete
[ ] Make Dead Links using the Hash Symbol Complete
[ ] Turn an Image into a Link Complete
[ ] Add Alt Text to an Image for Accessibility Complete
[ ] Create a Bulleted Unordered List Complete
[ ] Create an Ordered List Complete
[ ] Create a Text Field Complete
[ ] Add Placeholder Text to a Text Field Complete
[ ] Create a Form Element Complete
[ ] Add a Submit Button to a Form Complete
[ ] Use HTML5 to Require a Field Complete
[ ] Create a Set of Radio Buttons Complete
[ ] Create a Set of Checkboxes Complete
[ ] Check Radio Buttons and Checkboxes by Default Complete
[ ] Nest Many Elements within a Single Div Element Complete
[ ] Give a Background Color to a Div Element Complete
[ ] Set the ID of an Element Complete
[ ] Use an ID Attribute to Style an Element Complete
[ ] Adjusting the Padding of an Element Complete
[ ] Adjust the Margin of an Element Complete
[ ] Add a Negative Margin to an Element Complete
[ ] Add Different Padding to Each Side of an Element Complete
[ ] Add Different Margins to Each Side of an Element Complete
[ ] Use Clockwise Notation to Specify the Padding of an Element Complete
[ ] Use Clockwise Notation to Specify the Margin of an Element Complete
[ ] Style the HTML Body Element Complete
[ ] Inherit Styles from the Body Element Complete
[ ] Prioritize One Style Over Another Complete
[ ] Override Styles in Subsequent CSS Complete
[ ] Override Class Declarations by Styling ID Attributes Complete
[ ] Override Class Declarations with Inline Styles Complete
[ ] Override All Other Styles by using Important Complete
[ ] Use Hex Code for Specific Colors Complete
[ ] Use Hex Code to Color Elements White Complete
[ ] Use Hex Code to Color Elements Red Complete
[ ] Use Hex Code to Color Elements Green Complete
[ ] Use Hex Code to Color Elements Blue Complete
[ ] Use Hex Code to Mix Colors Complete
[ ] Use Hex Code to Color Elements Gray Complete
[ ] Use Hex Code for Specific Shades of Gray Complete
[ ] Use Abbreviated Hex Code Complete
[ ] Use RGB values to Color Elements Complete
[ ] Use RGB to Color Elements White Complete
[ ] Use RGB to Color Elements Red Complete
[ ] Use RGB to Color Elements Green Complete
[ ] Use RGB to Color Elements Blue Complete
[ ] Use RGB to Mix Colors

Issue moved to FreeCodeCamp/TranslationExpansion #62 via ZenHub


Removed caption logic to reportback js

@weerd I moved the image caption show/hide logic into Reportback.js because the logic to show it after a user submits an image. It was in ImageUpload.js which we aren't using in the new reportback gallery. I needed to move it now, because the caption wasn't showing and a user won't be able to submit a form if they don't enter a caption. You had a TODO in there to do this.
I haven't removed it from ImageUpload.js yet completely, since we are still supporting both experiences at the moment.

Apart from that one edit, looks great! :dancer: :+1:


Updating PivotTableUI prop does not always force a re-render of child renderer

I'm trying to create my own customer alternative to what amounts to my own version of Plotly's react-chart-editor. In doing so, I'm passing a layout prop to my  component, which I then include in my PlotlyRenderer.js for the final render. Pretty straightforward. However, updates to layout (changes in chart title, etc.) propagate only to the first PivotTableUI configuration. If I change the configuration (pivot the data), subsequent changes to layout do not propagate to the child plot renderer.
My solution to this is to add a key to the main PivotTableUI component, consisting of the stringified version of the layout object. I.e., <PivotTableUI key={JSON.stringify(layout)} ...otherProps />. This works, but I'm not sure if it's correct.  If it is correct, perhaps this should be done within the PivotTableUI component itself? An alternative might be to use componentWillReceiveProps and shouldComponentUpdate?

I'm not sure I'm following exactly what you're trying to do... are you able to provide a minimal example piece of code I can play with? One thing I wonder is if you are making immutable changes to layout, i.e. is the identity of the layout object changing when you change one of its keys? If not, then I wouldn't expect the plot to refresh, as this is what will trigger it because it is a React.PureComponent.

Here's a simplified version of my code, with some bits excluded (such as data, actual layout content, etc.). The PivotTableUI component:
<PivotTableUI
    key={JSON.stringify(layout)}
    data={data}
    onChange={this.onChangePivot}
    renderers={{...TableRenderers, ...PlotlyRenderers}}
    {...this.state.pivotProps}
    layout={layout}
    aggregators={aggregators}
/>

where layout is some JSON object to be passed to the Plotly chart (axis configuration, etc.). Within the Plotly renderer, I've added the following:
if (this.props.layout) {
    layout = {...layout, ...this.props.layout};
}

and:
return (
    <PlotlyComponent
        fit={true}
        data={data}
        layout={layout}
        config={PLOTLY_CONFIG}
    />
);

The issue is that after the data is pivotted (i.e., by updating state.pivotProps in this.onChangePivot), the PlotlyComponent no longer responds to layout changes.


feat!: remove relative_url_root option

This'll be a draft until #411 is landed on master and then next is rebased.

Summary
Time to axe this...
Pull Request checklist
Remove this line after checking all the items here. If the item does not apply to the PR, both check it out and wrap it by ~.

[x] Add/update test to cover these changes
[x] Update documentation
[x] Update CHANGELOG file

yup, we just did it as a breaking change since technically it's part of the public API and we had this new major coming up so it was easy to keep around for a bit longer


Add TI HDC302x Sensor Support

Wow really cool! Thanks!
Dang the check failure in https://github.com/periph/devices/actions/runs/12216048416/job/34078745883?pr=83 is real but it's totally unrelated to your change. It's a data race in driver scd4x. Filed #84

We crossed paths. The same race was happening in this branch. Also, there was a general race condition in the logic of the test that I found while doing hdc302x, so I fixed it in scd4x.


Cookie ExpireTimeSpan not honoured using Auzure AD OpenIDConnect authentication

I am currently struggling with setting the timeout on the cookie/auth token when authenticating my .NET Core App using Azure AD via the OpenIdConnect authentication model.
The sign-in scheme is being set in the ConfigureServices method via the following:
services.AddAuthentication(options => options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme);

I am then setting up my configuration as follows:
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
    CookieName = "MyCookie",
    ExpireTimeSpan = TimeSpan.FromHours(2)
});

app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions()
{
    Authority = authorityUri.AbsoluteUri,
    ClientId = azureOptions.ClientId,
    ClientSecret = azureOptions.ClientSecret,
    ResponseType = OpenIdConnectResponseTypes.CodeIdToken,
    Events = new OpenIdConnectEvents()
    {
        OnAuthorizationCodeReceived = async context =>
        {
            await aAuthenticateMiddleware.OnAuthenticate(context, logger);
        }
    }
});

app.UseMiddleware<aAuthenticateMiddleware>();

Note, that I am not using the built in Identity (as its not practical for our purposes) but rather using a custom middleware.
Within the middleware layer I am checking whether the user is authenticated and if not a challenge is issued:
var authenticationProperties = new AuthenticationProperties() { RedirectUri = context.Request.Path.Value ?? "/" };
authenticationProperties.AllowRefresh = false;
authenticationProperties.IssuedUtc = DateTime.Now;
authenticationProperties.ExpiresUtc = DateTime.Now.AddHours(2);
await context.Authentication.ChallengeAsync(
    authenticationManager.IdentityProvider.AuthenticationScheme,
    authenticationProperties,
    ChallengeBehavior.Automatic
);

This is all works fine and authenticates the user correctly etc however this is issuing the auth token (and cookie) with a 15 minute expiry and ignoring my 2 hour expiry that I have tried setting.
I have been referring to the latest source examples from GitHub from the aspnet/security repository for examples.... however none of these mention anything about overriding the default expiry issued.
https://github.com/aspnet/Security/tree/dev/samples/OpenIdConnect.AzureAdSample
Most examples I have found are still referencing the old AspNet libraries rather than the AspNetCore libraries.
Some articles suggest that using the SignInAsync with persistent set to True allows the ExpireTimeSpan to be honored, however this throws a "Not Supported Exception" when calling it. Perhaps SignInAsync is not supported via Azure AD?
Not sure whether this is a bug???

AllowRefresh , IssuedUtc and ExpiresUtc do not apply for ChallengeAsync, only SignInAsync. OIDC does not directly support SignInAsync. You can hook into the OIDC Events and override where it calls SignInAsync.
Not sure why your CookieAuthenticationOptions.ExpireTimeSpan isn't working.

Having the same issue. Effectively RemoteAuthenticationOptions.RemoteAuthenticationTimeout is used for cookie ticket lifetime.
@Tratcher This is probably a bug. AuthenticationProperties from short lived remote authentication ticket RemoteAuthenticationHandler.cs#L57-L78 is used for signin request and later in CookieAuthenticationHandler.cs#L223-L236 override values from options.
@jimmyrecardo You can workaround this in IRemoteAuthenticationEvents.OnTicketReceived callback, this works for me...
var oidcOptions = new OpenIdConnectOptions
{
    ...
    Events = new OpenIdConnectEvents
    {
        OnTicketReceived = async ctx => {
            // reset ticket authentication properties
            ctx.Properties = new AuthenticationProperties();
        }
    }
};

:+1: on what @dolly22 said. Unfortunately the app of ours that best exhibits the bug was on RC1 before RTM came out so I can't confirm whether RC2 or RTM introduced the bug without digging in deeper.


⚠ Bofrost.de has degraded performance

In acf515e, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 989 ms

Resolved: Bofrost.de performance has improved in e041228.


Adding a variable to set koji offline

Signed-off-by: Mohan Boddu<EMAIL_ADDRESS>

This can be used to bring koji offline for maintenance purposes.
We can use this for our June 4-6 2021 offline.


chore: fix semantic-release-replace-plugin

Description
Update semantic-release-replace-plugin as @google/semantic-release-replace-plugin got depricated.

:tada: This PR is included in version 1.11.0-beta.4 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Update chronus to 0.5.1

Contains a fix around ignored packages that caused crash

All changed packages have been documented!

You can try these changes at https://cadlplayground.z22.web.core.windows.net/prs/2885/
Check the website changes at https://tspwebsitepr.z22.web.core.windows.net/prs/2885/


framework-agnostic?

This is not a request, just if possible, decoupling the existing framework could help more python NebulaGraph users :-P
But I would like to learn Pydantic for nebula-carina!!!
👍🏻

Yeah pydantic is quite easy to handle with the model/ serialization etc. It is almost like a light-weighted python3-styled package rather than a web framework. You can use it in flask / django, but it is most welcomed in fastapi. I will make the settings module more like the native settings usage in django later.


CGPROD 2707 remove states

Remove states system in favour of collections.
Allow collections to supply an inline catalogue

To discuss:

Rename "items" folder to collections?
Apply any defaults - not just qty

+10 points for good GIF.


Generated README

Closes #27

Hum! Didn't realized that! Thanks @Mubelotix!
I moved the documentation part from src/lib.rs to README.tpl because it's more convenient for us (the maintainers) to change a .tpl than the comments in the src/lib.rs file... Is there a way to use the README of the repo in docs.rs?
Maybe @MarinPostma, @LegendreM or @Kerollmops, you would have an idea to solve that?

@Mubelotix, I moved back the installation part in the src/lib.rs. That's too bad because we lose the feature of cargo readme that generates the current version with {{version}} but we do not have any choice 🙂
I let the other parts in the main README since it's really for us (the maintainers) to change a .tpl than comments in .rs file!
Are you ok with that now? 🙂


feat(url): Add valkey and valkeys scheme

Inspired by the valkey-py client.
https://github.com/valkey-io/valkey-py/blob/v6.0.2/valkey/_parsers/url_parser.py#L40

Added tests

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

Project coverage is 97.54%. Comparing base (784282a) to head (92563a8).

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #21      +/-   ##
==========================================
+ Coverage   94.68%   97.54%   +2.85%
==========================================
  Files          92       17      -75
  Lines       39096     1547   -37549
==========================================
- Hits        37019     1509   -35510
+ Misses       1763       26    -1737
+ Partials      314       12     -302

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

I've also removed the test on the init address for the valkey scheme because the goal on this line is to test the scheme, not the init address that is already covered by other tests.


Error while attempting to Install BetterDiscord.

Hello there !
I have an Issue with BD's installation. It always says this when I try to install BD :
Searching for Discord core in: C:\Users\ADMIN\AppData\Roaming\Discord\0.0.297\modules\discord_desktop_core
core.asar does not exist in: C:\Users\ADMIN\AppData\Roaming\Discord\0.0.297\modules\discord_desktop_core!
Unable to continue installation.
Please can you tell me the way to fix this ?
Thank you ;)

your discord is outdated it should be 0.0.301 for discord stable and i suggest checking https://github.com/Jiiks/BetterDiscordApp/blob/master/ISSUE_TEMPLATE.md


:sparkles: Create Separate Library for Generic Dependency Injection

Create a library for generic dependency injection
{
    Response: response,
    Headers: lambda response: response.headers
}

E.g:
{
    Response: response,
    Headers: lambda response: response.headers
}

References:

https://docs.pytest.org/en/6.2.x/fixture.html#
https://www.neoteroi.dev/blacksheep/dependency-injection/
https://www.adriangb.com/di/0.75.3/

Done: needle created, which in turn depends on subtype


milk environment built with environment_milk.yml is missing pathos

For at least example 4: CHESS-GE, pathos is required but it is removed because Spotlight is currently removed for Windows.
I resolved it by adding Pathos back to pip install section for milk. Everything works.
Please confirm and I can push this.

Chris made another release for spotlight which should work now on Windows. v0.10.2. You could try adding that back into the yaml file and confirm that the install works. Conda solve was running very slow for me, took over an hour.

I installed on WCP using the full environment yaml. It solved in a few minutes. And everything so far seems to work.


fix README that EXTRACT should be KSM_EXTRACT

This will fix issue https://github.com/simplesteph/kafka-security-manager/issues/47

Thank you!


Picker2

WHAT
KDoc tidy up
WHY
HOW
Checklist :clipboard:

[ ] Add explicit visibility modifier and explicit return types for public declarations
[ ] Run spotless check
[ ] Run tests
[ ] Update metalava's signature text files

Maybe a flaky test? Suggest landing it and if it is, I'll dig in.
com.google.android.horologist.DatePickerTest > testDate[test(AVD) - 9] FAILED
	java.lang.AssertionError: Failed to assert the following: (Text + EditableText = [2022-04-25])
	Semantics of the node:


Location header not rendered to client

Hello,
When i set Location: http://google.fr in Headers panel, this header never write out to the client.
the : seems to cause the issue, because when i set `Location: http//google.fr' it works

this helps
diff --git a/response.go b/response.go
index 70d3d14..0a6d5dd 100644
--- a/response.go
+++ b/response.go
@@ -96,7 +96,7 @@ func NewResponse(status, headers, body string) (*Response, error) {
                        continue
                }

-               kv := strings.Split(line, ":")
+               kv := strings.SplitN(line, ":", 2)
                if len(kv) != 2 {
                        continue
                }

Good catch. it would be great if you could open a PR with that change.

oh I didn't notice that you already did https://github.com/gchaincl/httplab/pull/45 😆


Eslint is not working

When trying to edit the code I noticed that eslint is not working. Atom keeps throwing an error. But if I remove module exports part from there it starts to work. Is it working for you @thinkholic ? If it's just a default eslint file I can create one with something like airbnb style guide? 😄

@THPubs yeah! it's just a default one. :-)

If it's just a default eslint file I can create one with something like airbnb style guide?

Cool! go ahead. 👍


Multiple data races

when running go run -race main.go I can see multiple data races
for example:
==================
WARNING: DATA RACE
Write at 0x00c420188630 by goroutine 34:
  runtime.mapassign_faststr()
      /usr/local/Cellar/go/1.10/libexec/src/runtime/hashmap_fast.go:694 +0x0
  github.com/elves/elvish/eval.varOp.Invoke()

and
==================
WARNING: DATA RACE
Write at 0x00c4203bd760 by goroutine 104:
  github.com/elves/elvish/eval/vars.any.Set()
      /Users/dcuadrado/Projects/GoCode/src/github.com/elves/elvish/eval/vars/any.go:8 +0x38
  github.com/elves/elvish/eval.(*assignmentOp).Invoke()

It is quite likely that Elvish has data races, but I cannot reproduce this with my setup; do you have something in your rc.elv? Can you reproduce this with an empty rc.elv. It is also possible that -race is broken on macOS though.

With the latest changes the data races have been reduce to one that is indeed triggered by something in my rc.elv. I'll try to find the culprit and report back
I've used -race on both OSX and Linux and it works well.

it is caused by this code in my rc.elv
-bundler-cmds = [
    (re:find '  bundle (\w+)' (error = ?(e:bundle --help 2>&1|slurp)) | each [x]{ put $x[groups][1][text] })
]

FWIW, Using the current source at the time I type this I can reproduce the race using Go 1.14.0 on macOS. I ran go run -race main.go then pasted the following at the shell prompt:
-bundler-cmds = [
    (re:find '  bundle (\w+)' (error = ?(e:bundle --help 2>&1|slurp)) | each [x]{ put $x[groups][1][text] })
]

The details have, understandably, changed given the passage of two years. This might be related to issue #888. The issue in this case is that instantiating a new local var is racing with resolving a var in the (type Frame).local namespace map.
WARNING: DATA RACE
Write at 0x00c0001a26c0 by goroutine 105:
  runtime.mapassign_faststr()
      /usr/local/Cellar/go/1.14/libexec/src/runtime/map_faststr.go:202 +0x0
  github.com/elves/elvish/pkg/eval.(*pipelineOp).invoke()
      /Users/krader/projects/3rd-party/elvish/pkg/eval/compile_effect.go:87 +0x250
  github.com/elves/elvish/pkg/eval.effectOp.exec()
      /Users/krader/projects/3rd-party/elvish/pkg/eval/op.go:33 +0xec
...

Previous read at 0x00c0001a26c0 by goroutine 75:
  runtime.mapaccess1_faststr()
      /usr/local/Cellar/go/1.14/libexec/src/runtime/map_faststr.go:12 +0x0
  github.com/elves/elvish/pkg/eval.resolveNested()
      /Users/krader/projects/3rd-party/elvish/pkg/eval/resolve.go:128 +0x19f
  github.com/elves/elvish/pkg/eval.(*Frame).resolveNonPseudo()
      /Users/krader/projects/3rd-party/elvish/pkg/eval/resolve.go:103 +0x6b
  github.com/elves/elvish/pkg/eval.(*Frame).ResolveVar()
      /Users/krader/projects/3rd-party/elvish/pkg/eval/resolve.go:96 +0xa5
...

Whether adding a mutex to guard references to (type Frame).local is the right solution or something more subtle is appropriate is TBD.

This is a very different issue from #888. This problem in this issue violates Go's memory model and breaches memory safety, while #888 is not problematic at all from the perspective of the Go runtime.

This is a very different issue from #888.

That is true. I shouldn't have used the phrase "might be related to". However, to a user of Elvish that is a very subtle distinction. Just because the examples in issue #888 don't trigger a fatal error in the Go runtime does not mean those scenarios are fundamentally different from this one. As you noted in your comment this is conceptually the same problem. Only at a different level of abstraction.

Minimal example:
nop (a = 1) | nop

8c71635ca33dbea479fe37af3b2f867906ae0afd addressed the simplistic case of a = 1 | nop by "hoisting" the creation of all new variables that are directly within the pipeline to the start of the pipeline. That hoisting needs to be made more pervasive.


/dev/stdin: Stale NFS file handle

Steps to reproduce:

Run the base Ubuntu image docker run -i -t ubuntu /bin/bash
Install the package openssh-client to get ssh-keygen: apt-get install openssh-client
ssh-keygen -lf /dev/stdin <<< 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDH+AMHzNxT+KRmWboP+iGH6nXcs+gjNlZHSDZdssQvS/eJIn/kWDhSiI7VaJGijnW+cSdA7NAxLIRgiXMymrwHvIZWjUumbUY+S5b6v/4lurvt9iFEXf4bUwpT0kBqYT0Uo80x/ycHTQ6LN6k9tLKHDFrDVMl6DCPGGTjO+XMrvvI2oE7dCNDKL03lnw804M0ZbOQcVFnVkKqDVMKwzy0ho+SVjdDeEoSpo5WstiB+o4iMN0tE+bJ1Qmy5ObwV1SgkfHLEaUhivdenmizUqw/2hoRmVHeAgbWZXLQR1y0VN5VGwtGUkObKk9k8VEa/KvlbM6V6mdX0VfMEzB3i2LFZ root@f1d7fcdadc01'

Following the symlinks, /dev/stdin → /dev/fd/0 → /dev/pts/4, it seems like the last link is broken. The only thing existing in /dev/pts/ is ptmx.
It is not possible to pipe stuff to ssh-keygen, so I think I am dependent on /dev/stdin working as on my host system.
Any ideas? Is this a bug?

I know this issue is old and closed but I have come across the original ssh-keygen -lf /dev/stdin problem inside Debian and CentOS guests.  Has this reoccurred for anyone?  I have produced some rudimentary test cases at https://gist.github.com/sebble/829cfccdb09cc8c26e79dbb4e67aa4d5#file-output, e.g.:
$ docker run --rm -it debian bash -c "apt-get update;apt-get install -y openssh-client;ssh-keygen -lf /dev/stdin <<< test"
**output removed**
/dev/stdin: Stale file handle