Gremlin driver throwing GraphMalformedException after updating gremlin driver to 3.4.0

This is in reference to https://github.com/microsoft/spring-data-gremlin/issues/196 . I followed the steps and updated the gremlin driver but I am getting a different issue because of that. Exception message attached
Caused by: org.apache.tinkerpop.gremlin.driver.exception.ResponseException:
ActivityId : ac404cc5-b895-4253-bab8-a0e4710e9eec
ExceptionType : GraphMalformedException
ExceptionMessage :
Gremlin Malformed Request: GraphSON v3 IO is not supported.
GremlinRequestId : eadcb143-ad25-44ae-adee-522d19eef257
Context : global
GraphInterOpStatusCode : MalformedRequest
HResult : 0x80131500

OS: MacOS

IDE: IntelliJ

Library/Libraries: PFB
 <dependency>
 	<groupId>org.apache.tinkerpop</groupId>
 	<artifactId>gremlin-driver</artifactId>
 	<version>3.4.9</version>
 </dependency>
 <dependency>
 	<groupId>com.microsoft.azure</groupId>
 	<artifactId>spring-data-gremlin-boot-starter</artifactId>
 	<version>2.3.0</version>
 	<exclusions>
 		<exclusion>
 			<groupId>org.apache.tinkerpop</groupId>
 			<artifactId>gremlin-driver</artifactId>
 		</exclusion>
 	</exclusions>
 </dependency>
 <dependency>
 	<groupId>com.microsoft.spring.data.gremlin</groupId>
 	<artifactId>spring-data-gremlin</artifactId>
 	<version>2.3.0</version>
 	<exclusions>
 		<exclusion>
 			<groupId>com.fasterxml.jackson.core</groupId>
 			<artifactId>jackson-databind</artifactId>
 		</exclusion>
 	</exclusions>
 </dependency>

Query - g.V().hasLabel("Trade").has("name","FM - PLUMBING").outE().inV().hasLabel("CheckList").has("division",within('WM')).as("checklist").and(inE().outV().hasLabel("Category").has("name","INTERNAL TECH"),inE().outV().hasLabel("Location").has("id","2005850749")).select("checklist")

GraphSON v3 is not supported in Azure Gremlin Api, we had that issue as well and we changed gremlin client serializer to GRAPHSON_V2D0
for example:
private Cluster createGremlinCluster() throws GremlinIllegalConfigurationException {
    final Cluster cluster;

    try {
        cluster = Cluster.build(this.gremlinConfig.getEndpoint())
                .serializer(Serializers.GRAPHSON_V2D0.toString())
                .create();
    } catch (IllegalArgumentException e) {
        throw new GremlinIllegalConfigurationException("Invalid configuration of Gremlin", e);
    }

    return cluster;
}

hope this helps.

@backwind1233 could you please help route this issue from @boltmillee?

@omerkisoss Thanks for the help. This seems to be working fine with custom queries. However, I have a few GremlinRepositories where the default findById() and findAll() methods are giving this issue. Is there any solution for that also?

GraphSON v3 is not supported in Azure Gremlin Api, we had that issue as well and we changed gremlin client serializer to GRAPHSON_V2D0 for example:
private Cluster createGremlinCluster() throws GremlinIllegalConfigurationException {
    final Cluster cluster;

    try {
        cluster = Cluster.build(this.gremlinConfig.getEndpoint())
                .serializer(Serializers.GRAPHSON_V2D0.toString())
                .create();
    } catch (IllegalArgumentException e) {
        throw new GremlinIllegalConfigurationException("Invalid configuration of Gremlin", e);
    }

    return cluster;
}

hope this helps.

@omerkisoss I tried with above code with gremlin driver version 3.4.0 but I am getting the same timeout exception I was getting with version 3.2.4: java.lang.RuntimeException: java.util.concurrent.TimeoutException: Timed out while waiting for an available host - check the client configuration and connectivity to the server if this message persists

@msingal003
That is probably because you didnt configure all gremlin repositories properly, here is a sample of Gremlin Repositories configuration:
`@Configuration
@EnableGremlinRepositories(basePackages = "com.example")
@EnableConfigurationProperties(GremlinProperties.class)
@PropertySource("classpath:application.yml")
@Slf4j
public class GremlinRepoConfig extends AbstractGremlinConfiguration {
private final GremlinProperties gremlinProps;

@Autowired
public GremlinRepoConfig(GremlinProperties gremlinProps) {
    this.gremlinProps = gremlinProps;
}

@Override
public GremlinConfig getGremlinConfig() {
    log.info("Gremlin Configurations loaded: {}", gremlinProps.toString());
    return GremlinConfig.builder(gremlinProps.getEndpoint(), gremlinProps.getUsername(), gremlinProps.getPassword())
            .serializer(gremlinProps.getSerializer())
            .maxConnectionPoolSize(gremlinProps.getMaxConnectionPoolSize())
            .maxInProcessPerConnection(gremlinProps.getMaxInProcessPerConnection())
            .maxSimultaneousUsagePerConnection(gremlinProps.getMaxSimultaneousUsagePerConnection())
            //.maxWaitForConnection(gremlinProps.getMaxWaitForConnection())
            //.keepAliveInterval(gremlinProps.getKeepAliveInterval())
            .build();

}

`
hope this helps, let me know if you still having issues.

@boltmillee @msingal003 @omerkisoss
Thank you for your comments on the issue, we have deprecated Spring Data Gremlin support for Cosmos DB,
if it is important to you, please vote on this issue #24773.

Please use .NET Gremlin SDK v 3.4.13, refer the compatible version list here https://learn.microsoft.com/en-us/azure/cosmos-db/gremlin/support#compatible-client-libraries

#please-close


AssertionError: output_dir missing. in create_create_cityscapes_tf_record.py

File "create_cityscapes_tf_record.py", line 108, in main
assert FLAGS.output_dir, 'output_dir missing.'
AssertionError: output_dir missing.
I have the problem in running create_create_cityscapes_tf_record.py
First I change :
import tensorflow as tf
to:
import tensorflow.compat.v1 as tf
Because I use tensorflow 2.2
Is there any error in this way ?

Have you solved this problem? Can you explain how to set these paths?

output_dir is which directory you want to store the TFRecord output, you can simply use --output_dir ./output.
Just set output_dir is not enough, you also need to specify the directory of --input_pattern, --annot_pattern, and --cityscapes_dir, each of this directory depend on where your dataset been put.
Detailed explanations of those arguments are all in the create_cityscapes_tf_record.py.


Dart SDK -> Engine roll blocked on web engine build failures

The roll was stopped for branch alignment for a few days. When restarted here https://github.com/flutter/engine/pull/45581, the web engine failed to build:
https://ci.chromium.org/ui/p/flutter/builders/try/Linux Engine Drone/1331881/overview
@eyebrowsoffire bisected to the change being reverted here https://dart-review.googlesource.com/c/sdk/+/324902
There is a potential engine-side fix in https://github.com/flutter/engine/pull/45591, but the presub failures look like they might be related to the change.
cc @srujzs @sigmundch

I tried to get the engine side fix working on Friday, but ran into some issues with some stuff we're doing in one of our unit tests. I'm not 100% sure what's going on, but I think there are some subtle differences between allowInterop and the toJS function conversion that don't interact well with some admittedly weird stuff we are doing in our unit tests. I'll try to get a more definitive answer today.
In the meantime I suggest we land the revert on the Dart SDK side ASAP to unblock the roller, and reland it after I am confident we have an engine-side fix that works properly.

As an update, I have a PR out on the engine side to prepare things for the reland of the dart changes that make JS interop declarations more strict about what types can be used: https://github.com/flutter/engine/pull/45668
The other failure Zach posted about above seems like a separate issue. I will try to figure out the breaking dart change in a bit.

I have a revert that should resolve the remaining issues blocking the dart -> engine roll: https://dart-review.googlesource.com/c/sdk/+/325445
Also, https://github.com/flutter/engine/pull/45668 just landed, and I think we can at least attempt a roll to dart 3.2.0-140.0, which is before the other breaking change.

Can this be closed? Looks like the dart rollers are running now.

Yes.


Adding Carousel Block

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #3
Test URLs:

Before: https://main--icicidirect--aemsites.hlx.live/draft/anagarwa/
After: https://carousel--icicidirect--aemsites.hlx.live/draft/anagarwa/

This block will work as a base for Trading, Investment and OneClick casousel

Let me add few UI feedback.

Not sure the break point, the card is cut in half on 1024X943 screen.
Original site:

EDS:

Miss background color for Profit Potential

In mobile view, the cards are shown cycling. After the last card shows, it will go back from last one to first one.

The padding in card is different from original one.

@JiangLong2019

Not sure the break point, the card is cut in half on 1024X943 screen.
Let me check that, it should not have happened. It should be 1 card in mobile, 2 in Tablet and 4 in desktop (original website never show 3 cards)

Miss background color for Profit Potential
I did not understand the point. The bg color for profit potential is align with original website

EDS

Original

In mobile view, the cards are shown cycling. After the last card shows, it will go back from last one to first one.
I have designed it as per original. In Both mobile and Desktop it cycle it last and then stops.

The padding in card is different from original one.
Ok, let me update that as well

@JiangLong2019 regarding

Not sure the break point, the card is cut in half on 1024X943 screen.

IMO block rendering is working fine if we reload the page.
I have not implemented event handling in case of screens resize because user is either load the site on mobile  or desktop.
Screens size won't be changing once user has loaded the page.
I can implement event handling of screens resize if needed.

Probably move the icons to Sharepoint. Gives more control to authors.

Updated, Icon is coming from the doc itself now

@sdmcraft
regarding

yes please have border-box applied to all elements in html by default.
This will done post merging of PR #29 .

Added a few comments. I think one thing which we should do ideally is to have a separate card block to build the cards that a carousel is made up of. And then use that cards block inside the carousel block. That'd help in making the code more modular with reusable components. I am ok taking that up separately from this PR as part 2.

Created issue #30 for follow up tasks on carousel


I modified the information in the INDEX.html file under the UI folder, why is there no effect?

I modified the information in the INDEX.html file under the UI folder, why is there no effect?

In windows, try shift + F5  to refresh in browser, maybe it works


New Relic Agent / Monitoring

Hey Eleme.
For a few days I've been trying to use New Relic monitoring on my gunicorn_thrift app.  I've had no issues with my traditional gunicorn apps.  I can launch my gunicorn_thrift application with no issues, but new relic gets no data.
I can launch it with Gunicorn like so:
NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program [gunicorn commands here]

But if I use:
NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program gunicorn_thrift tests.thriftpy_app:app -k thriftpy_sync \
  --thrift-protocol-factory \
    thriftpy.protocol:TCyBinaryProtocolFactory \
  --thrift-transport-factory \
    thriftpy.transport:TCyBufferedTransportFactory

I get no errors, but no communication to new relic.
https://docs.newrelic.com/docs/agents/python-agent/installation-configuration/python-agent-admin-script
Any advice for me?

Hi, I'm not so familiar with new relic. But are you using it to track rps(the stuff that gunicorn does) or app wise performance(like mysql query time)?
If you are using it to monitor rps, I don't think new relic supports gunicorn-thrift. But if you are using it to track app performance, there shouldn't be any problem. Did you install new relic in the same virtualenv as gunicorn_thrift maybe?

Thanks for the response!
New Relic tracks app performance, so I think it should definitely be possible.  New Relic and gunicorn_thrift are both in the same virtualenv, and if I run my application I can see new relic reporting logs.  Unfortunately thats not making its way back to New Relic.
I'll keep troubleshooting it, thanks for the assistance if you have any ideas!


ROS Noetic is not create the /opt/ros folder

Hi,
I just installed the ros noetic, however, I don't see the /opt/ros to setup it in bashrc. What should I do?

@dusty-nv I also have same problem I successfully managed to install the neotic however i do not know how to run this container and add my workspace into the .bashrc file. where this ros is stored ?
I used the provided command ./scripts/docker_run.sh -c ros:noetic-ros-base-l4t-r32.4.4  and i am getting exact same error as @sinasadeghian.

@AmirsamanAhmadi @sinasadeghian after debugging this, I found that $ROS_ROOT gets set by noetic to /opt/ros/noetic/share/ros, which was messing up sourcing the environment in /root/.bashrc.    So I fixed this in https://github.com/dusty-nv/jetson-containers/commit/857b413a4dba304a06754df8a03c76119ada2138
ROS Noetic is stored inside the container under /opt/ros/noetic
The .bashrc is found at /root/.bashrc
I also uploaded a pre-built container image of this to dustynv/ros:noetic-ros-base-l4t-r32.5.0


Sort by date added

I want to be able to see new songs first on the list so I can update my collection, could this be added?

Just sort by the ID column.

Ty


Loader WIP

Love the changes here. Especially the later refactorings to ast visitor.
I assume we can merge this in now? Can we give this PR a real title + record somewhere the motivation for why we are removing loader.
Also a lot of the commits here would benefit from a message in the commit message body explaining why a change is being made or why it is safe to do the change.
LGTM!

I've improved title and description, then merged. I will try in the future to include more context in the commit messages.

I just want to echo this:

Also a lot of the commits here would benefit from a message in the commit message body explaining why a change is being made or why it is safe to do the change.

I agree that is very, very helpful and much appreciated!

I will try in the future to include more context in the commit messages.

Thanks. :)
This looks like an awesome change!


Parameter names should follow standards

Your parameter names should follow PowerShell standards. We don't use names like hash_list. It should be Hashlist or HashList depending on your casing preferences. I would also encourage you to use the proper casing. Make the parameter Command not command. I know it doesn't affect how the function runs but it looks more professional.

Thank you, I will replace these formats


tools library

started a models/ directory to hold models that might be useful across applications.

Looks good! Belongs in a tools library, along with what's in user_scripts?

How would this be integrated with a models library?

Decision: create 'tools.py' file. Models will go in a 'models' folder when the time comes.

Good to merge when that's done.

retest this please

retest this please


Issue 267: Remove runtime drop error message

Change log description
Remove runtime drop error message.
Upgrade tonic version to 0.5, prost version to 0.8 as prost version 0.7 is having problem with rustc 1.56.0-nightly (50171c310 2021-09-01) ref.
Purpose of the change
Fix #267 #308 #253
What the code does
ClientFactory is the only place that contains the Runtime and it cannot be cloned, so there is only one place that's holding the runtime now.
Make another struct ClientFacotryAsync that holds Runtime::Handle, which can be cloned and used in async context.
How to verify it
Test should pass

Codecov Report

Merging #311 (ff9ae05) into master (3241838) will decrease coverage by 0.22%.
The diff coverage is 96.68%.

@@            Coverage Diff             @@
##           master     #311      +/-   ##
==========================================
- Coverage   75.63%   75.40%   -0.23%
==========================================
  Files          45       44       -1
  Lines       11351    11250     -101
==========================================
- Hits         8585     8483     -102
- Misses       2766     2767       +1

Impacted Files
Coverage Δ

src/event/reader_group_state.rs
86.64% <ø> (ø)

src/event/writer.rs
100.00% <ø> (ø)

src/event/reader.rs
74.10% <63.63%> (+0.07%)
:arrow_up:

src/client_factory.rs
98.29% <97.40%> (-0.54%)
:arrow_down:

config/src/lib.rs
94.73% <100.00%> (+0.65%)
:arrow_up:

src/byte/reader.rs
95.73% <100.00%> (-1.30%)
:arrow_down:

src/byte/writer.rs
87.09% <100.00%> (-0.41%)
:arrow_down:

src/event/reader_group.rs
91.35% <100.00%> (ø)

src/event/transactional_writer.rs
78.07% <100.00%> (-0.36%)
:arrow_down:

src/segment/metadata.rs
54.67% <100.00%> (ø)

... and 14 more

Thanks @Tristan1900 . Regarding the build failing for prost version 0.7 on rust rustc 1.56.0-nightly , I have moved the build to use the stable version of rustc in PR: #312

@shrids Thanks Sandeep. I guess we can keep the Tonic upgrade in this PR since we will need to upgrade at some point in the future anyway.


Does retry wait until API limit window is reset?

The retry parameter when initiating twitter.Twitter is great, but I'd like to understand it better. Does it just keep trying every few seconds until there are no more error codes, or does it check the API window reset and then tries again?

I just did a quick test, it still works with the API, even if the error headers are in lowercase: x-rate-limit-reset.  Good to know!

HTTP Headers keys are supposed to be case-insensitive so that's all right yes!
I'm closing this, feel free to reopen if a question remains :)


Allow custom notes

Any chance we could attach custom notes?
We're running a nightly build and it would be great if instead of the standard
Service [<team>/<repo>] was deployed successfully.

We need to have a custom message for more relevant status.
We could also prefix with [custom message] in data dog to not mess with analytics (if needed)

I'm a bit confused regarding what you mean by "nightly build". Do you mean you are deploying a new version of a service every night, or does your build do something else?
What would an example of your custom message look like?


Unknown command '__fzf_cd_with_hidden'

I'm using the legacy keybindings. When I use Alt+Shift+C, I get the error fish: Unknown command '__fzf_cd_with_hidden'.
I'm guessing it's because the following lines haven't been updated:
https://github.com/fisherman/fzf/blob/5999526b2ab387c90e52625b9049175f2f87f47c/key_bindings.fish#L5
https://github.com/fisherman/fzf/blob/5999526b2ab387c90e52625b9049175f2f87f47c/key_bindings.fish#L11
I'm guessing changing it to __fzf_cd --hidden will fix the issue.

Thanks for pointing it out, fix is now in master.


Consolidate GPU driver upgrade funcs

Issues Fixed

EDGECLOUD-6384: Consolidate GPU driver upgrade funcs

Description

Upgrade funcs were added to add the GPU driver storage path to existing drivers, but then the upgrade func itself had bugs and hence multiple upgrade funcs were added. Consolidated mutliple upgrade funcs into one

Thanks!


Hub endPoint and media path

Perhaps get these from dotNetHelper enabling one point of config for endPoint. Perhaps allow runtime user entry.
https://github.com/joshbooker/SequencR/commit/bd3c44c46600cd1cb12bbb9ca44f9139ad07dc4c

PS where are you setting port bums for dev debug?  Says environment vars?  I had to add back launchsettings.json to get 4000 and 5000 to work.


Add option to override output file

Adds a new option "-o" to force the override of the output file in case of a conflict
This is really helpful when using zip-build to publish a dist folder as a zip in a repo
Fixes #3
Updates package-lock to fix a vulnerability in the "minimatch" dependency

Can you please have a look at this, @tribal2

Hi @StefanBlamberg, thanks for the PR! I will be reviewing and merging it today 🙂


Exit sync_thread on exception

A different approach to handle server connection errors in the sync/listener thread.
See https://github.com/matrix-org/matrix-python-sdk/pull/116

Looks good, is there any way we could log the data from the exceptions as they happen so users may debug why their sync has stopped?

Ok to test

For the general case we could log the traceback. Even better to catch any known exceptions and log relevant data of course. Some exceptions might even be avoidable?

Superseded by #116


update Microsoft dev tools browser

Environment (please complete the following information):

OS (e.g., Windows 10):
Extension version (e.g., 1.2.3):

Describe the bug:

Repro steps:

Expected behavior:

Additional context:

Closing as incomplete. Please feel free to add more information if you have any and we can re-open the issue.


support disabling text entry emulation

Turns out we have a keyboard_resize_test.dart test that relies on the on-screen keyboard.

TBR: @goderbauer @cbracken

Will land on green.


Explicitly cast thenable to boolean in conditional expression

This allows rxjs to be compiled under a new tsetse check:
http://tsetse.info/ban-promise-as-condition

Description:
Related issue (if exists):

Pull Request Test Coverage Report for Build 7321

4 of 4 (100.0%)  changed or added relevant lines in 3 files are covered.
5 unchanged lines in 3 files lost coverage.
Overall coverage increased (+0.2%) to 96.967%

Files with Coverage Reduction
New Missed Lines
%

src/internal/observable/fromPromise.ts
1
87.5%

src/internal/observable/fromIterable.ts
2
95.24%

src/internal/observable/fromObservable.ts
2
83.33%

Totals

Change from base Build 7318:
0.2%

Covered Lines:
5786

Relevant Lines:
5967

💛  - Coveralls


very good just on mobile doesnt resize

i like this one it does a lot,
thanks
but i try to use it on mobile and it does not work
any idea

The component just doesn't support mobile devices. Unfortunately it introduces a lot of complexity. I'm willing to add support for it in a future release, but at this moment I don't have the required knowledge to make it work.

good lock & thanks

@mauricius first just wanted to say your library is great! second, I'd also love it to work on mobile.
Could you elaborate on where the complexity is? If I understand correctly you'd need to deal with touch events (ontouchstart/move/end) in addition to mouse events. Otherwise logic should be similar, right?

@mauricius I agree with @pixelspark. I'm currently in the market for a library that supports resize and drag on a div on mobile. Like google calendar events.
I'd be willing to pay even! Are you planning on this soon? Can we help?

@pixelspark Sorry for the delay! I've been pretty busy in the last few weeks.
You are right, the logic is similar, however I encountered a few difficulties dealing with multitouch events. I'm currently trying to fix bugs related to grid, so I'm not looking into it in the near future. Feel free to submit a PR if you sort it out. Same for you @mesqueeb Thanks

PR with mobile support waiting for tests and merge :)
https://github.com/mauricius/vue-draggable-resizable/pull/77


[BUG] Can't build plugin from source

Hi,
I tried to build plugin from source:

git clone --depth 1 --branch v7.10.0 https://github.com/elastic/kibana.git
cd kibana

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
. $HOME/.nvm/nvm.sh || true
nvm install $(cat .nvmrc)
nvm use
npm install -g yarn

cd plugins

git clone --depth 1 --branch v<IP_ADDRESS> https://github.com/opendistro-for-elasticsearch/index-management-kibana-plugin.git
cd index-management-kibana-plugin
yarn kbn bootstrap
yarn build

Result of last command:
ERROR [single_version_dependencies] Multiple version ranges for the same dependency
      were found declared across different package.json files. Please consolidate
      those to match across all package.json files. Different versions for the
      same dependency is not supported.

      If you have questions about this please reach out to the operations team.

      The conflicting dependencies are:

        cypress
          ^5.0.0 => x-pack
          4.3.0 => opendistro_index_management_kibana
        ts-loader
          ^7.0.5 => x-pack
          ^6.2.1 => opendistro_index_management_kibana

Is this a bug or I'm doing something wrong?

Looks like removing cypress and ts-loader both from devDependencies section of package.json helps to build zip which works with index-management elasticsearch plugin

Hmm.. unfortunately we don't build/develop with Kibana source that includes x-pack which seems like might have been the issue for you. If cypress and ts-loader are included in the Kibana dev dependencies then we can look into removing them here. If they are only added because of x-pack then we might need to just call this out in README or see if there's a workaround.


Stability of CSV files

Hi @elhenrico, first of all thanks so much for this -- awesome work! I am now using your CSV files to add region-level data to my Open COVID-19 project.
I am currently pulling the CSV files from the GitHub Raw cache (like this one) and I wanted to understand how stable these files are, whether you are likely to change the name, location, format, etc. In case of any changes, how can I be notified so I can update my scripts appropriately?

You did an amazing job on your project!
I am keeping the name and structure of the files constant precisely for this case. Would changing something or adding an additional column help you?
Usually I update the data daily according to the last daily update from our Ministry.
I will let you know on any possible breaking changes.

The format of the files looks very clean to me, I wouldn't suggest changing it. Adding more columns would be a breaking change for my scripts, since I'm assuming columns are dates except for the first two.
Are you updating the data manually, or are you using some form of automation?

Manually with the help of some tools to make it faster.
As the government has shown itself inconsistent in the disclosure of the data, often changing it or going offline without notice, I found the manual approach better for now.
There are others automating it, but last week many were lacking days of data due to this instability.

@owahltinez As you asked me to contact you regarding breaking changes, I decided to change the date format
from 23/2 to 23/02/2021
Happy new year

@owahltinez As you asked me to contact you regarding breaking changes, I decided to change the date format
from 23/2 to 23/02/2021
Happy new year

Thank you for the heads up @elhenrico!

Thank you for the heads up @elhenrico!


Not all Frontrunning is MEV

Front-running is used not only as a direct effort to steal funds, but in order to make attacks on e.g. governance, that are only visible some time later. It should therefore be treated as related to but distinct from MEV

This issue addresses concerns about §3.7 MEV (Maliciously Extracted Value) of the EEA EthTrust Security Levels Specification. The current version might mislead developers into thinking that MEV covers all kinds of attacks that rely on malicious transaction reordering, inclusion, or suppression.
There exist different attack strategies, which exploit blockbuilding capabilities, including Front(-)running, Back(-)running, Sandwich Attacks, and Suppression/Censorship Attacks. These strategies are also grouped under the term "Frontrunning".
MEV (Miner/Maliciously/Maximal-Extractable Value) was introduced to describe the impact of these attack strategies. Our main objective with this issue is to raise awareness that MEV does not cover all of these attacks and to work on improving the security specification to describe a broader spectrum of "frontrunning" dubbed attacks.
It might be worth spelling out the differences between "frontrunning" as an attack class and "frontrunning" as an attack strategy in the specification as well.
Issue Summary: MEV is not capturing all Frontrunning Attacks
The notion of MEV suffers from two major limitations:
Limitation 1: MEV can only capture local frontrunning attacks, i.e., attacks that are solely based on the current mempool and have an immediate effect. Attacks involving multiple stages or incurring effects that only manifest over time are not covered.
Limitation 2: MEV captures only monetary attacks. Other non-monetary objectives (such as denial-of-service attacks) are not covered, even though they can cause major harm to honest users.
Empirical results
An analysis of 287 smart contract audits (sourced from eight professional smart contract auditors listed by the Ethereum Foundation) shows that the MEV definition only captures 45% of the investigated frontrunning. Limitation 1 (resp. Limitation 2) accounted for 34% (resp. 40%) of the cases where MEV could not capture frontrunning instances. Moreover, 26% of the vulnerabilities could not be captured by MEV due to Limitations 1 and 2 combined. Full details of the analysis (allowing its full reproducibility) will be publicly released in the coming few months.
Minimal Examples
The following paid voting contract is used to sketch minimal vulnerable examples for both limitations of MEV: PaidVoting is a contract where users can buy votes and propose new candidates. The owner can specify the maximum number of votes per person.
Paid voting contract
contract PaidVoting {
    // User functions
    function buyVote(Id id) payable  {/* 1. User can buy votes */}
    function proposeCandidate(Id id, Prop p)  {/* 2. Users can propose new candidates */}
    // ...

    // Admin function
    function setMaxPurchasedVotes(uint mPV) ownerOnly {/* 3. Admins can set the maximum number of votes  */}
    // ...
}

The setMaxPurchasedVotes function (proposeCandidate function) is vulnerable to a standard frontrunning attack but would not be captured by MEV, which is a prime example for Limitation 1 (resp. Limitation 2).
Limitation 1 - Example: Attacker frontruns settings changes to benefit from old settings
uint maxPaidVotes = 0;

// Non-Local Settings Frontrunning
function setMaxPurchasedVotes(uint mPV) ownerOnly {
    maxPaidVotes = mPV;
}

The owner's intention to decrease the maximum number of votes purchased by a user (with a call to setMaxPurchasedVotes) can be undermined by a frontrunning attacker by scheduling calls to the buyVote function before. This can lead to the adversary obtaining an unfair advantage in determining the winner of the election, potentially enabling later payouts. Such payouts, however, cannot be enforced within the attacker scheduling window and would only become effective after the election process is completed.
According to the MEV definition, the Voting contract would not exhibit any extractable value for mempools that include calls to the setMaxPurchasedVotes() functions, enabling the described non-local attacks.
Limitations 2 - Example: Attacker prevents a user from proposing a new candidate
mapping (Id => Proposal) proposals;

// DOS Frontrunning
function proposeCandidate(Id id, Proposal prop) {
    require(proposals[id] == null);
    proposals[id] = prop;
}

An attacker can prevent a new candidate from being proposed by frontrunning every proposeCandidate call with their own call that uses the same identifier. The attacker call will reserve the candidate identifier id for a dummy proposal, thereby causing the intentionally user-proposed candidate to be dropped. Any re-submission of the candidate with a new identifier could be frontrun again.


Remove redudent match in workload::byte_to_ip()

Case 0 is not specical, already been handled properly in the following match:
n => Err(WorkloadError::ByteAddressParse(n)),


Update how rf freqs are initialized

@murilobalves @fernandohds564 , while studying the booster new radius I got a bit confused about how to initialize the RF freqs in the model. I would like to discuss this with you.

@xresende is this ready for review? Are we going to merge it?


feat(AlgebraicGeometry/ProjectiveSpectrum/Scheme): sheaf component of $Proj| D(f) \to Spec A^0_f$

[x] depends on:#9629
[ ] depends on: #11920

superceded


Scroll lock causes events to be blocked temporarily

When the scroll lock is active, attempting to scroll causes keyboard events to be blocked.

This seems like standard behaviour. Scrolling in general blocks keyboard events even if the scroll lock is inactive, and this behaviour is also observed with Radix UI.


in-memory rate limiting

Is in-memory only rate limiting supported? If so, it would be great to update the readme. if not, we'd love to see it added. (Running a toy webiste on a single server and don't want the overhead of setting up redis right now).
Express-rate-limit has this[1], and it would be great if some koa middleware has this as well.
https://github.com/nfriedly/express-rate-limit/blob/master/lib/memory-store.js

vote for this issue

@KevinGrandon Hi, https://github.com/animir/node-rate-limiter-flexible allows that and much-much more

@haoxins would you accept a PR to add multiple drivers to ratelimit? default to using node-ratelimiter ?

I'm open to this. :)

@haoxins can you please help reviewing it #45

the PR #45 haven't been merged and released? Is it still going to be accepted?


Add ability to patch "problematic" pods

What type of PR is this?
/kind feature
/kind design
/kind api-change
What this PR does / why we need it:
It's often useful to know what pods are having issues with policies (be
it SELinux or Seccomp). To enable administrators to easily fetch pods
with denials registered to them, this adds the ability for the log
enricher to detect this and label a pod appropriately with the following
label:
spo.x-k8s.io/problematic: ''

By relying on a label, we're able to easily fetch the pods with a call
such as follows:
kubectl get pods -A -l spo.x-k8s.io/problematic=

Which issue(s) this PR fixes:
None
Does this PR have test?
Yes
Special notes for your reviewer:
Does this PR introduce a user-facing change?
This PR includes the ability to tag pods that present denials from either Seccomp or SELinux. This will happen through the 'spo.x-k8s.io/problematic' label.

Codecov Report

Merging #846 (63988de) into main (10db621) will decrease coverage by 0.44%.
The diff coverage is 35.80%.

@@            Coverage Diff             @@
##             main     #846      +/-   ##
==========================================
- Coverage   52.47%   52.03%   -0.45%
==========================================
  Files          42       42
  Lines        4335     4384      +49
==========================================
+ Hits         2275     2281       +6
- Misses       1985     2025      +40
- Partials       75       78       +3

/retest

/retest

/retest

@jhrozek I'll add some docs about this.
Also, enabling the labelProblematicPods flag does not enable the enricher. The enricher needs to be enabled as a pre-requisite.

/test pull-security-profiles-operator-test-e2e


Improve resource cleanup

When a cluster creation fails, the process of cleaning up resources is manual, cumbersome and prone to errors
We could automate most of this to improve user experience when debugging.
We already have a --force-cleanup flag, it just doesn't do a lot. Think about everything you need to do when a cluster creation fails before running the cli again, that's what we should try to add to this flow. Examples:

Delete bootstrap cluster. We do that today, but it's not super robust. Find when it doesn't work and fix it.
If we don't support more than one kind cluster running, even if it's not an eks-a one, add a validation for this and give instructions to delete them
Cleanup vsphere vms if it's a vsphere cluster
Cleanup docker resources if it's a docker cluster
Delete <cluster-name> folder

When a cluster creation fails, the process of cleaning up resources is manual, cumbersome and prone to errors We could automate most of this to improve user experience when debugging. We already have a --force-cleanup flag, it just doesn't do a lot. Think about everything you need to do when a cluster creation fails before running the cli again, that's what we should try to add to this flow. Examples:

Delete bootstrap cluster. We do that today, but it's not super robust. Find when it doesn't work and fix it.
If we don't support more than one kind cluster running, even if it's not an eks-a one, add a validation for this and give instructions to delete them
Cleanup vsphere vms if it's a vsphere cluster
Cleanup docker resources if it's a docker cluster
Delete <cluster-name> folder

What are the manual cleanup steps for a failed cluster deployment? My administrative machine is stuck after a failed deployment to vSphere. I've already powered off and deleted the VMs manually from vSphere.
eksctl anywhere create cluster -f eksa-cluster.yaml Error: failed to create cluster: error creating bootstrap cluster: error executing create cluster: ERROR: failed to create cluster: node(s) already exist for a cluster with the name "prod-eks-a-cluster" , try rerunning with --force-cleanup to force delete previously created bootstrap cluster
eksctl anywhere create cluster -f eksa-cluster.yaml --force-cleanup Error: failed to create cluster: error deleting bootstrap cluster: management cluster in bootstrap cluster

@jasonboche try:
kind delete cluster --name prod-eks-a-cluster

It didn't work on me :/

@ataince What output did you get?

@ataince What output did you get?

I think it was abt the memory now I increased it but now it's stuck on this step.
⏳ Collecting support bundle from cluster, this can take a while        {"cluster": "dev-cluster", "bundle": "dev-cluster/generated/dev-cluster-2022-03-25T12:40:36Z-bundle.yaml", "since":<PHONE_NUMBER>523389598, "kubeconfig": "dev-cluster/dev-cluster-eks-a-cluster.kubeconfig"}

When a cluster creation fails, the process of cleaning up resources is manual, cumbersome and prone to errors We could automate most of this to improve user experience when debugging. We already have a --force-cleanup flag, it just doesn't do a lot. Think about everything you need to do when a cluster creation fails before running the cli again, that's what we should try to add to this flow. Examples:

Delete bootstrap cluster. We do that today, but it's not super robust. Find when it doesn't work and fix it.
If we don't support more than one kind cluster running, even if it's not an eks-a one, add a validation for this and give instructions to delete them
Cleanup vsphere vms if it's a vsphere cluster
Cleanup docker resources if it's a docker cluster
Delete <cluster-name> folder

What are the manual cleanup steps for a failed cluster deployment? My administrative machine is stuck after a failed deployment to vSphere. I've already powered off and deleted the VMs manually from vSphere.
eksctl anywhere create cluster -f eksa-cluster.yaml Error: failed to create cluster: error creating bootstrap cluster: error executing create cluster: ERROR: failed to create cluster: node(s) already exist for a cluster with the name "prod-eks-a-cluster" , try rerunning with --force-cleanup to force delete previously created bootstrap cluster
eksctl anywhere create cluster -f eksa-cluster.yaml --force-cleanup Error: failed to create cluster: error deleting bootstrap cluster: management cluster in bootstrap cluster

@jasonboche try:
kind delete cluster --name prod-eks-a-cluster

It didn't work on me :/

@ataince I'm sorry to hear that. I wrapped up this project before I was able to get to the bottom of this. I just learned the many traps to avoid so that I didn't get stuck and have to re-deploy all over again. I'll probably end up revisiting this project within the next year and my hope is by then AWS will have put in much better error trapping and clear cleanup steps that actually work. This isn't a total knock on AWS. I realize this was relatively new and uncharted territory and these types of issues go with the territory until things mature.
Jas

Bumping up the priority on this one as it's pretty important issue that has come up multiple times especially for cleaning up local bootstrap cluster and the cluster-name folder.