vuex-multi-tab-state and vuex-persistedstate

Hi. I simultaneously usage vuex-multi-tab-state and vuex-persistedstate.
Both usage localstorage.
Does vuex-multi-tab-state completely replace vuex-persistedstate functionality?

If yes then I have a problem with https://github.com/gabrielmbmb/vuex-multi-tab-state/issues/30
If no then I have a problem with duplicate storage

thanks

Temporrary, I always remove from localstorage when user is open new tab
window.localStorage.removeItem('vuex-multi-tab');

Each tab register two modules (vuex-multi-tab-state, vuex-persistedstate)
And it is works. (First tab work with recreated vuex-multi-tab)
But I think it is temporrary solve... I'm afraid this "bike" will break...

That's a great first start, but I think you'll also need to handle resuming a sleeping tab as well.

Hey, thank you for submitting this issue. I'll put a boolean flag in the plugin initialization indicating whether or not the content in the local storage should be removed after the last tab has been closed. What do you think?

I have the same issue:
New changes in the store do not appear until I have not reset the all browser cache.
If I will clear localStorage on the tab opening, I'm not sure that this solution will work while I just reload my tab.
Maybe there is an updated solution?

I think we need a new solution wherein the Vuex store is actually entirely in a shared worker, and then every tab that opens creates a mirrored store which sends all it's actions, mutations, and getters to the shared worker store, and the shared worker store does all the real work, then emits an state changes out to the mirrored stores. I use "mirrored" here, but in reality they are more like pass-through stores. That way the 'persisted' plugin would run on the shared worker store, and it wouldn't matter when you opened a tab or how many...etc. I've started working on such a setup, but would be very happy to see someone else officially create such a thing. Anyone know of someone else who's tried it?

I think we need a new solution wherein the Vuex store is actually entirely in a shared worker, and then every tab that opens creates a mirrored store which sends all it's actions, mutations, and getters to the shared worker store, and the shared worker store does all the real work, then emits an state changes out to the mirrored stores. I use "mirrored" here, but in reality they are more like pass-through stores. That way the 'persisted' plugin would run on the shared worker store, and it wouldn't matter when you opened a tab or how many...etc. I've started working on such a setup, but would be very happy to see someone else officially create such a thing. Anyone know of someone else who's tried it?

That's exactly the right solution to have. It could be challenging figuring out the polling window, I wonder if there are any browser apis for this, or if some sort service worker is the recommended solution. It wouldn't be great constantly be grabbing all the data from localstore every millisecond, I can't even imagine this is a Vue problem. Literally every SPA and MPA has this issue.

I've implemented a solution which works, but is a little bit messy.

getters, actions, and mutations are all in js files.
SharedWorker implements Vue with Vuex, imports getters, actions, mutations. Also sets up modules and state.
VuexWrapper is in charge of creating the SharedWorker and communicating with it.
In main app, I set up the store with a couple local-only state properties.
In the main app store, I have functions which overwrite the calls for mutations, and actions, and send them to VuexWrapper to go to the shared worker. (getters are first attempted locally, and if function is not found, then sent to SharedWorker. This is for the Vuex Modules.)
Some of the store is local only (this would be per-tab stuff), as well as an 'isLoaded' state to track when initial state has been mirrored to the local store.
In the SharedWorker, I dynamically create watchers for all rootState properties (that's what Vue is for in the SharedWorker), and send updates to the main thread.
No polling needed, as all mutations are done on the SharedWorker store, and all UPDATES from those mutations get sent to all browser tabs.

It's messy for the following reasons:

Any getters that are in modules and accessed from the main app need to be async (messages to/from SharedWorkers are async). Root getters can be normal, as long as they are only accessing root state.
The entire store is mirrored to the local tab so that regular getters can do non-async retrievals. However, I'm not familiar with the internals of how setting x=y works when y came from the SharedStorage. Is it ByRef, or ByVal? Possible memory issues here.
Tracking which getters are async and which are not is complex.
The getters in getters.js can be called from either the main app, or from SharedStorage (getters calling each other or actions calling getters). This is usually not a problem, but if the getters access other services (like a LokiJS Database), then there might be issues with two LokiJS database persisting to the same IndexedDB storage keys.
Tracking when the initial store is mirrored to the tab (and holding off any possible store mutations/actions till then) is little fun.
Getting webpack to work with SharedWorkers is also little fun.

That's why an OFFICIAL SharedStorage plugin would be neat. Especially if it integrated with building tools, and handled all the communications automatically.

I've refined my approach to be the following:

The state in the SharedWorker is the single source of truth.
I've created a "mutationsDependencyMap" file that is a large map showing which mutation effects which state property.
I've created a "getterDependencyMap" file that is a large map show which state properties are utilized in each getter.
I've modified the getters proxy, so when the getter is called, it utilizes the above map and adds those properties as local dependencies (in each tab), so the local Vuex instance can see the getter is tied to the state properties. THEN it calls the shared-worker getter.
In the Shared Worker, I removed the need for a Vue instance.
In the Shared Worker, I added a "mutationWatcher" that subscribes to the store mutation events. When one happens, it uses the mutationDependencyMap and emits a StateKeyUpdate message to all the tabs, so they in turn update their "local store", which then causes their getters to refresh.
Note on above: I don't send the whole mutation value to the store, just the signal that it updated. On the local (per tab) side I update the state property to a random value, so it triggers the getters that were dynamically tied to it. I use a random value in each state property so the entire object remains rather small (Some of my actual state properties are large tables)

Biggest downside of this entire setup is having to swap all store.state references in the main app (per tab) to be asyncComputed getters. This makes the app a little bit slower, as it now does an initial render, then re-renders the DOM as each asyncComputed property resolves. Prior to this swapout, all the computer properties directly depending on store.state values would be calculated at once, then the DOM would be generated.
If anyone has ideas on how to make my approach work better or would like to see snippets of code, let me know!


primary weight factor should exchange primary and replica at the same in the smalll cluster in some case

Is your feature request related to a problem? Please describe.
It is very much looking forward to introducing the primary weight factor in #6017, but it seems not work in the small cluster, for example:
index1 settings:
 "number_of_replicas": "2",
 "number_of_shards": "3"

The cluster has three nodes: node0, node1, node2, the allocation of the index1 is:
                node0  node1   node2
shard0             p              r            r
shard1             p              r            r
shard2             p              r            r
there are 3 primary shards in the node0.
When put the settings:
PUT _cluster/settings
{
    "persistent": {
        "cluster.routing.allocation.balance.prefer_primary":"true"
    }
}

There will no primary rebalance as expected, the reason is that a copy of this shard is already allocated to every target host.
Describe the solution you'd like
There are good reasons to rebalance primary shards. When rebalancing the primary ,and target node has the replica shard, if we should exchange the primary and replica at the same time.
In addition, I'm a little confused why we not Introduce cluster.primary.shard.balance.constraint in rebalance, the feature seems usefully in certain scenarios.

cc: @dreamer-89

Thank you @kkewwei for opening this issue.

There are good reasons to rebalance primary shards. When rebalancing the primary ,and target node has the replica shard, if we should exchange the primary and replica at the same time.

There are few limitations today which prevent primary shard balancing. One of them prevents primary shard movement when target node already contains replica copy. This is known as SameShardAllocationDecider. We do have issue open to fix this and tracked in https://github.com/opensearch-project/OpenSearch/issues/6481 . If you are interested please feel free to take up and work on this issue.

In addition, I'm a little confused why we not Introduce cluster.primary.shard.balance.constraint in rebalance, the feature seems usefully in certain scenarios.

We are actually using cluster.primary.shard.balance.constraint during shard rebalancing. We are using same constants for both allocation and rebalance actions. PR where this change was introduced https://github.com/opensearch-project/OpenSearch/pull/6422

@kkewwei: Closing this issue since in favour https://github.com/opensearch-project/OpenSearch/issues/6481.

@dreamer-89 sorry to reopen the issue.
I'm did a little confused about cluster.primary.shard.balance.constraint during shard rebalancing. I test the local scenarios, and it doesn't work:
index* settings:
 "number_of_replicas": "1",
 "number_of_shards": "1"

The cluster has three nodes: node0, node1, node2,  every index* has only one primary and one replica, the allocation is:
                node0  node1   node2
index0             p              r
index1             p                          r
index2                          p            r
the node0 has two primary shards, even if cluster.routing.allocation.balance.prefer_primary=true.
In RebalanceConstraints, we don't set cluster.primary.shard.balance.constraint
https://github.com/opensearch-project/OpenSearch/blob/main/server/src/main/java/org/opensearch/cluster/routing/allocation/RebalanceConstraints.java#L32
If we should add cluster.primary.shard.balance.constraint in RebalanceConstraints? or i miss something?

@dreamer-89  please confirm it in your spare time.

Thank you @kkewwei for the comment and taking the effort to share the use case with detail.
Today, rebalancing of primary shard is performed at index level i.e. primary shards belonging to same index are distributed equally. The issue you shared above relates to primary balance across all indices. This is another problem that we have yet to solve and is tracked in separate issue https://github.com/opensearch-project/OpenSearch/issues/6642.


feat: Add DFE stylings

Adds DFE Styling overrides + logos
Create NodeJS Project, along with Gulp file, for SCSS + JS compilation.

Completes: 170777, 160587

There's a few code smells around null checking for maturity in here that might need addressing, also a variable assignment that's not used in the tests

Agree, but they're not from this branch specifically so I guess should be covered elsewhere.


Update packages

Update packages to latest to remove vulnerabilities

@BenSurgisonGDS Got a few major semver changes in here, definitely all compatible?

@BenSurgisonGDS Got a few major semver changes in here, definitely all compatible?
We have extensive tests that test most of these and they appear to be working fine.  I will address the marked package though.


Blockframes: Navigation

User story
As a WebX team member, I want to see the ReportStream website designed iteratively, starting from blockframes, so that the team can continuously align on the scope and anticipate design/content/engineering needs early in the website redesign process.
Background & context
We are creating blockframes for the new ReportStream website IA. This is also an opportunity to explore which navigation pattern(s) are appropriate for the new IA. Doing these explorations in a lo-fi blockframe format allow us to explore different solutions and align on an approach across disciplines prior to moving farther into the design process.
Open questions

What is the general placement of the navigation relative to the rest of the page layout? What about secondary navigation?
How do the navigation links relate to each other in placement and sequence?

Working links

Input: IA Synthesis Mural
Input: IA Research Synthesis deck
Input: Page update/creation prioritization
Figma: Blockframe working space

Acceptance criteria

[x] Blockframes accurately represent IA structure
[x] Blockframes capture general placement of the navigation relative to the page layout
[x] Review with design and/or design lead

Blockframe prototype link here; will share for eng/product async via Slack in #10197


add removeSpaces method for strings

A slightly quicker / nicer way to remove spaces from strings.
I find myself quite often using ->remove(' ') to strip spaces out of strings, so this seemed like a nice addition.
Happy to contribute to the docs should this be approved.

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.


Update alra.py

Fix pre-processing and transformation back into the original space

Submission type

[ ] This submission adds a new dataset
[x] This submission adds a new method
[ ] This submission adds a new metric
[ ] This submission adds a new task
[ ] This submission adds a new Docker image
[ ] This submission fixes a bug (link to related issue: )
[ ] This submission adds a new feature not listed above

Testing

[x] This submission was written on a forked copy of SingleCellOpenProblems
[x] GitHub Actions "Run Benchmark" tests are passing on this base branch of this pull request (include link to passed test: )
[x] If this pull request is not ready for review (including passing the "Run Benchmark" tests), I will open this PR as a draft (click on the down arrow next to the "Create Pull Request" button)

Submission guidelines

[x] This submission follows the guidelines in our Contributing document
[x] I have checked to ensure there aren't other open Pull Requests for the same update/change

This fixes pre-processing (normalization and sqrt transform) and inversion of pre-processing into the original space.

So how did we decide to handle code versioning? Do you want to pin the code in ALRA.R to a release on GitHub? Can you copy the code over here?

Generally, we could always use docker build dates as versioning, no? This is the least clean way... but it should work (if github repos aren't changed retrospectively that we depend on)


graphics lines cap style

In AS3 there is this option for lines in graphic objects.
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/CapsStyle.html
Is there anything similar in Pixi?
If not, could you tag this as a feature request?

No. Graphics creates polygons, so you can add some methods there that will generate that kind of endings.

closing as duplicate of #891


Handle errors occuring at login

Closes #226

Please also handle Wrong authcode entered error

Please also handle Wrong authcode entered error

it somehow seems to be the same message


p4g save tool crashes when trying to open a save.

i try to open a save and i get p4g save tool stopped working issue

I just ran into this issue today. You need to get a decrypted version of your save files, if you are not already.
If you use the following utility: https://github.com/d3m3vilurr/vita-savemgr
This will allow you to backup all of your saves to a slot located in ux0:data/savegames/PCSH00whateverP4G's ID is
And then you can grab that file and edit it successfully.

Thanks for the help it worked. Wish that could of been explained on the sites I spent hour's researching on.
Sent from Yahoo Mail on Android
On Tue, Dec 5, 2017 at 10:54 PM, Adam<EMAIL_ADDRESS>wrote:
I just ran into this issue today. You need to get a decrypted version of your save files, if you are not already.
If you use the following utility: https://github.com/d3m3vilurr/vita-savemgr
This will allow you to backup all of your saves to a slot located in ux0:data/savegames/PCSH00whateverP4G's ID is
And then you can grab that file and edit it successfully.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I used the savemgr and grad the data001.bin from the vita but the program still crashed...

Same here... Every time I try to open a save file the program just crashes instantly.


Getting infinite redirects

I'm trying to setup oauth2 configuration in docker swarm with traefik + traefik-forward-auth. My traefik-forward-auth:v2.0.0 configuration is:
client-id=<...>
client-secret=<...>
secret=<...>
cookie-domain=example.com
domain=example.com
auth-host=auth.example.com
log-level=debug

Service traefik labels configuration:
"traefik.enable": "true",
"traefik.frontend.auth.forward.address": "http://traefik_forward_auth:4181",
"traefik.frontend.auth.forward.authResponseHeaders": "X-Forwarded-User",
"traefik.frontend.auth.forward.trustForwardHeader": "true",
"traefik.frontend.entryPoints": "http,https",
"traefik.frontend.redirect.entryPoint": "https",
"traefik.frontend.rule": "Host: internal-website.example.com",

Debug logs from traefik-forward-auth:
traefik_forward_auth.1.8yhf0jqbh2k4@ip-10-0-12-160    | time="2019-06-26T04:46:23Z" level=debug msg="Set CSRF cookie and redirecting to google login" source_ip=<IP_ADDRESS>
traefik_forward_auth.1.8yhf0jqbh2k4@ip-10-0-12-160    | time="2019-06-26T04:46:23Z" level=debug msg=Done source_ip=<IP_ADDRESS>
traefik_forward_auth.2.qez8i8b3kxij@ip-10-0-10-223    | time="2019-06-26T04:46:24Z" level=debug msg="Authenticating request" headers="map[Accept:[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8] Accept-Encoding:[gzip, deflate, br] Accept-Language:[en-US,en;q=0.5] Cache-Control:[no-cache] Cookie:[_forward_auth_csrf=<cookie>] Pragma:[no-cache] Referer:[https://accounts.google.gr/accounts/SetSID] Te:[trailers] Upgrade-Insecure-Requests:[1] User-Agent:[Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:67.0) Gecko/20100101 Firefox/67.0] X-Forwarded-For:[<IP_ADDRESS>] X-Forwarded-Host:[auth.example.com] X-Forwarded-Port:[443] X-Forwarded-Proto:[https] X-Forwarded-Server:[09caed4a73f2] X-Real-Ip:[<IP_ADDRESS>]]" rule=default source_ip=<IP_ADDRESS>

The google oauth2 uses the domain "auth.example.com/_oauth".

Request to internal-website.example.com/
User redirected to Google login
After Google login, user is redirected to auth.example.com/_oauth

Up to this point it works, I'm able to authenticate to google and get redirected back to auth website.
But then instead of token and CSRF validation, I get redirect again to google and the auth process starts from (1).
I don't see logs of failed redirection or anything like that on the server (traefik-forward-auth) side, it is like a fresh start.

Token, user and CSRF cookie is validated, auth cookie is set to example.com
User is redirected to internal-website.example.com
Request is allowed

Is there anything obvious I'm missing?

Following the advice found at https://geek-cookbook.funkypenguin.co.nz/ha-docker-swarm/traefik-forward-auth/ I added the following labels to the traefik-forward-auth container as well:
"traefik.frontend.auth.forward.address": "http://traefik_forward_auth:4181",
"traefik.frontend.auth.forward.authResponseHeaders": "X-Forwarded-User",

and it worked!

I have the same problem, where you able to have it working with Traefik 2?

@gregfr / @atmosx , try my branch: https://github.com/thomseddon/traefik-forward-auth/pull/78, specifically this commit: https://github.com/thomseddon/traefik-forward-auth/pull/78/commits/da35933d58d45a4d6d4917682f4e42395eda2fc7


Remove setting.cfg

In the installation process, I always encounter errors about "setting.cfg". This is my solution.
Hope to adopt (as shown in the title)

what's wrong, is there any log information?
I used Ash258 version before, and then switched to the official version, and there was an error,like this
Split-Path: Cannot bind argument to parameter 'Path' because it is null.
later, I fixed $bucketdir.if your error is the same as mine, you can try again.

Thank you, there is no problem in the installation; but I can't save the settings, can I solve it?
谢谢，安装没有问题了；不过我保存不了设置，能解决一下吗？


Add link to reqwest-client feature

The opentelmetry-otlp package by default loads the opentelemetry-http package in such a way that it does not have an actual http client available, which causes it to error ExportFailed(NoHttpClient) on initialization. I added in a link to the opentelmetry-otlp reqwest-client feature, which will in turn load the reqwest crate and link in the opentelemetry-http crate's reqwest feature.
I'm not 100% this is the best way to do it - the opentelemetry-otlp crate has a number of other features allowing for the http client to be activated in other ways. We might want to provide crate consumers more options in how to load it, but I'm not sure what that should look like. On the other hand, if the design intent for this crate is to provide a basic good-enough OpenTelemetry config for most use cases, and users with other requirements can do it manually, then it may be good enough.

Like you I'm searching what is the good way to balance between ease to use/to start and flexibility. I decided to let the user to add dependencies (like request, x-ray,...). But as this issue could be hard to understand for new user, I'll try your solution.
Thank you,


Save metadata about each dataset to disk

The scripts/prepare_ml_training_data.py should save appropriate metadata with each set of NetCDF files (e.g. history_len, batch_size, the source datasets, etc.)

I think these begins to cover it - https://github.com/openclimatefix/nowcasting_dataset/pull/69

Yup, agreed!  Let's close this issue for now.  Thank you!


Fixed namespace use in MagicPropertiesTrait

Q
A

Is bugfix?
✔

New feature?
❌

Breaks BC?
❌

Thanks, usage of ActiveQueryInterface in MagicPropertiesTrait is removed in https://github.com/yiisoft/active-record/pull/329


Convert and validate TypedDict items

Currently when using TypedDict as a type hint, Robot simply converts the value to a dictionary but doesn't convert or validated individual items. We are planning to add conversion and validation for generics in RF 5.1 (#4433) and it would be both convenient and consistent to also handle TypedDict objects better.
This change will cause backwards incompatibility problems if someone has used TypedDict as a type hint and used arguments do not actually match it. I don't think that's a desired situation and explicitly preventing it can be considered a bug fix.

This is pretty easy to implement, I got a prototype ready but it needs adequate tests, and I hope we can still squeeze this into RF 5.1. To avoid conflicts, it probably is a good idea to get #4433 done first.

It turned out that the Browser library, probably the biggest user of TypedDicts with Robot, has internally handled TypedDicts so that keys are case-insensitive. That means that if you have a TypedDict like
class Size(TypedDict):
    width: int
    height: int

it has been possible to use it like {'WIDTH: 1600, 'HEIGHT': 900}.
The current TypedDict conversion logic on Robot side doesn't support case-insensitive keys, so the above example won't work anymore. Browser library developers didn't consider this to be an important feature and we agreed Robot being more strict is fine. The change will, however, affect Browser users that have used this functionality on purpose or accidentally. If there turn out to be lot of users who are affected, or users have good uses cases for case-insensitivity, we can consider changing Robot's behavior later.


touchedSpot.getColor() doesn't exist from v0.4.0

I'm updating the version of my fl_chart reference from 0.3.4 to 0.4.0.
Thanks to a very well written changelog I was able to solve all the issue related to classes renaming. But I'm not able to understand how to refactor the touchedSpot.getColor() line (suggested on #38):
Old working code:
lineTouchData: LineTouchData(touchTooltipData:
                                      TouchTooltipData(
                                          getTooltipItems: (touchedSpots) {
                                    return touchedSpots.map((touchedSpot) {
                                      return TooltipItem(
                                          touchedSpot.spot.y.toString(),
                                          TextStyle(
                                              color: touchedSpot.getColor(),
                                              fontWeight: FontWeight.bold));
                                    }).toList();
                                  })),

New refactored code with no working getColor() :
lineTouchData: LineTouchData(
                                              touchTooltipData:
                                                  LineTouchTooltipData(
                                                      getTooltipItems:
                                                          (touchedSpots) {
                                            return touchedSpots
                                                .map((touchedSpot) {
                                              return LineTooltipItem(
                                                  _deconvertPercValue(
                                                          touchedSpot.y)
                                                      .toStringAsFixed(1),
                                                  TextStyle(
                                                      color: touchedSpot.bar.
                                                          .getColor(), //not working
                                                      fontWeight:
                                                          FontWeight.bold));
                                            }).toList();
                                          })),

Comparing 3.4.0 with 0.4.0 I see that getColor() was removed and this as the implementation
@override
  Color getColor() {
    return barData.colors[0];
  }

I can guess that now I need to write
color: touchedSpot.bar.colors[0],
Is it correct or I need to make something different?

Yes, exactly you are right.
use color: touchedSpot.bar.colors[0]
also, you have the barIndex and spotIndex to do what you want.

Feel free to close it if you've got the answer.


Add chnode and chpython

The list is missing two awesome version managers:

chnode;
chpython.

See this post for more details.

@maggyero Thanks for the suggestions!
It seems chnode is a good call, but chpython hasn't been maintained for 10 years ;/ (perhaps I should add a flag for it dunno 🤔)
Also, following chnode's readme I've rediscovered chruby that already is in this list ;D

Welcome.
Yes unfortunately chpython has not been maintained for years (maybe because it is so simple), but it works like a charm.

The big advantage of ch* tools (chruby, chnode, chpython) over *vm tools (rvm, nvm) and *env tools (rbenv, nodenv, pyenv) is that they are extremely lightweight. They optionally support auto-switching the interpreter version based on the nearest .*-version file (.ruby-version, .node-version, .python-version) by updating the PATH environment variable before each execution of a shell command with a function hooked into the shell with preexec_functions for Zsh and PROMPT_COMMAND for Bash.


Infra: Integrate Ruff

We want to integrate ruff into our pre-commit config, and in general improve our pre-commit setup.

I left this note on the actual PR, but it probably should have been added here:
So we do have a few plugins that haven't been incorporated into ruff yet. Here is the summary of my testing:
What can be replaced with ruff:
pycodestyle
pyupgrade
flake8
flake8-bugbear
flake8-comprehensions
flake8-mutable
flake8-print
isort *I don't see a way to support multi_line_output = 3, but we may not need it. I will open an issue with the ruff project to see if there is a way to enable or if it's on the roadmap.
The following specific checks aren't currently supported.
SCS108 from 'flake8-secure-coding-standard'
E225, W503, E203 from pycodestyle
The following utilities are not handled by ruff:
flake8-noqa
flake8-return
flake8-simplify
flake8-type-checking
flake8-implicit-str-concat
flake8-secure-coding-standard
flake8-encodings
flake8-use-fstring
flake8-use-pathlib
flake8-mutable
I've currently left all of the steps in the pre-commit, and I've also added the ruff check.
What do you guys think the best way to deal with this is?

The only two flake8 plugins we really have to have are these:
flake8-simplify
flake8-type-checking
We can drop the others. If ruff supports the functionality of these two, we can simply switch to flake8. Until then, i don't really see the advantage of using ruff instead of flake8 - if we anyhow have to run it. Additionally we are running flake8 on docstrings. Does ruff give us this functionality?

No, it doesn't have the flake8 docstring support yet, to my knowledge.
I have to agree, swapping to ruff with it's current functionality doesn't make a lot of sense.  I think we should continue to monitor the new features and revisit this when it covers a more exhaustive list of modules we use.

Aight, lets close this for now.


Unexpected token ?

Hi,
I have entered twilo credentials but iam unable to get this service running.
SyntaxError: /home/pi/node_modules/dash-sms/config.json: Unexpected token /
at Object.parse (native)
at Object.Module._extensions..json (module.js:450:27)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object. (/home/pi/node_modules/dash-sms/index.js:3:16)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module

Try to install node-dash-button first and then run the application 🍻
$ sudo apt-get install libpcap-dev
$ npm install node-dash-button

Hello,
There is a problem npm install node-dash-button command. I receive same error message.
➜  dash-sms-master npm install node-dash-button

<EMAIL_ADDRESS>install /Users/duruldalkanat/Downloads/dash-sms-master/node_modules/pcap
node-gyp rebuild

CXX(target) Release/obj.target/pcap_binding/pcap_binding.o
CXX(target) Release/obj.target/pcap_binding/pcap_session.o
../pcap_session.cc:46:37: warning: 'NewInstance' is deprecated [-Wdeprecated-declarations]
info.GetReturnValue().Set(cons->NewInstance());
^
/Users/duruldalkanat/.node-gyp/7.9.0/include/node/v8.h:3662:52: note: 'NewInstance' has been explicitly marked deprecated here
V8_DEPRECATED("Use maybe version", Local NewInstance() const);
^
1 warning generated.
SOLINK_MODULE(target) Release/pcap_binding.node
<EMAIL_ADDRESS>/Users/duruldalkanat/Downloads/dash-sms-master
└─┬<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>(git+https://github.com/mranney/node_pcap.git#d920204745c8b00ef4b7a3fe27d902b263cdb70f)
npm WARN<EMAIL_ADDRESS>No repository field.

its a possible solution to your error
1: make sure you have downloaded index.js, config.json and package.json  in one folder
2: in config.json delete all comments
3: in target directory run $ npm install
4: run $ sudo node index.js

Yeah, you have to delete the comments in the JSON file.


Rewrite test harness using multi-threading instead of multi-processing

I think this could be resolved after https://github.com/grpc/grpc/issues/25364 is resolved.

Performed with Rust rewriting


Update CONTRIBUTING.md

Make setup steps and first PR steps more explicit.

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/8d0ba12d1be5982529e679fc0a3970c32169754d/
Edited pages:

CONTRIBUTING.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/4cb8848d947d4f560bfbda2ad4a1cdc852acb5e1/
Edited pages:

CONTRIBUTING.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/dedad7d3dfcb369a625e2db7e25f97c91158f3de/
Edited pages:

CONTRIBUTING.md


Implement GDCH support

Implement the GDCH support similar to Python: https://github.com/googleapis/google-auth-library-python/pull/1044/files

implemented


Update obs.rb to 0.11.1

Thank you for the contribution. It was merged directly as 77e6539b5548e23e8826fc4c3cc3830aa3cd2f2d to keep commit history cleaner. Your contribution is still credited to you.


Added population file in csv format

please merge my file and add hacktoberfest tag to make me eligible for swags. Thanks.

Good one @ManashAnand
Congrats 🎉, your PR got merged. To be eligible for the swags from ClueLess. Follow these steps.

Star this repository. ⭐
SignIn / SignUp in [ClueLess Website](https://www.clueless.tech/) .
Go to the profile section from the top right-hand corner.

Comment your profile URL under this comment tagging the person who merged your PR.

That’s it. Follow the leaderboard!
And don’t forget to share your achievement with your friends.


[Bug]: The horizontal signifier exceeds the canvas boundary on the left

While dragging a widget on the canvas the horizontal signifier exceeds the canvas boundary on the left. This happens for both Hug & fill widgets.
https://www.loom.com/share/76a15c008bb94e549e17f04cf530bc58

Working fine now, moving to done.


integration test framework leaks servers

Each call to getFreshApiserverAndClient leaks a server on a random port.

@MHBauer do the servers eventually shut down? my understanding is that the shutdown function closes the stop chan, which asynchronously does the shutdown

On exit of the binary, yes.
There was a similar issue in kubernetes which caused flakes.


React's useQuery hook does not correctly return an OperationResult

urql version & exchanges: last few versions so far as I can see (including current 1.8.2) — and the issue is with useQuery not a specific exchance
Steps to reproduce
import { useQuery } from 'urql';

const MyComponent = () => {
  const [result] = useQuery(...);
  console.log(result);
}

Expected behavior
The urql docs state that useQuery should return a result of shape OperationResult

The result is an object with the shape of an OperationResult with an added fetching: boolean property, indicating whether the query is currently being fetched.

The docs on OperationResult state that the shape includes the operation itself
Actual behavior
The result does not include the operation
The issue seems to stem from this block where we drop the operation in the map

https://github.com/FormidableLabs/urql/pull/918 adds in operation to the result, which would make it correctly be an instance of OperationResult
Alternatively, we could update the docs to not state that an OperationResult is returned
(my vote is strongly on the former, as I need to get a hold of the operation.key for some work I'm doing currently, which is how I hit upon this issue 😂)


[FEAT]:  Does the API interface support streaming output when used for chat?

What would you like to see?
Does the API interface support streaming output when used for chat?

https://github.com/Mintplex-Labs/anything-llm/issues/562


tch::CModule::load support for loading from bytes.

Hi! Thanks for this library!
In PyTorch, it is possible to load a ScriptModule from bytes like so:
import torch
import io

raw_bytes = open("module.pt", "rb").read() # or some other source of bytes
data = io.BytesIO(raw_bytes)

model = torch.jit.load(data)

In torch-rs, CModules can only be loaded directly from a path:
// https://github.com/LaurentMazare/tch-rs/blob/master/src/wrappers/jit.rs#L256
impl CModule {
    /// Loads a PyTorch saved JIT model from a file.
    pub fn load<T: AsRef<std::path::Path>>(path: T) -> Fallible<CModule> {
        let path = path_to_cstring(path)?;
        let c_module = unsafe_torch_err!({ atm_load(path.as_ptr()) });
        Ok(CModule { c_module })
    }
    // ...
}

Would it be possible to also implement loading from bytes, or maybe from a BufRead for more flexibility?
I want to distribute some pretrained models along with my library. In this case, it would help a lot because I could just inline the pretrained models with i. e. include_bytes!.
As a workaround, it would work right now to inline the bytes, and create a temporary named file at runtime from which the model is loaded. However, a cleaner solution would be great.
Thanks!

I just added a new function that should hopefully do the trick. There is an associated test in jit_tests.rs but let me know if you run into any issues with this.
impl CModule {
    /// Loads a PyTorch saved JIT model from a read instance.
    pub fn load_data<T: std::io::Read>(f: &mut T) -> Fallible<CModule> {
        ...

Thanks for the fast fix! I wasn't aware of std:io::Read, that is surely the best way to implement it.
The function works for me. For future reference, I accomplished inlining a pretrained model this way:
use std::io::Cursor;

static MODULE: &'static [u8] = include_bytes!("module.pt");

// create a cursor when loading so that MODULE can be read from multiple times
let mut cursor = Cursor::new(MODULE);
let model = tch::CModule::load_data(&mut cursor);

I am not that confident in Rust yet but I think this is the best way.
Note that my model is very small, larger models should probably be distributed as separate files, unless they are absolutely necessary for the application.


Demo 0.2.1 Calculate the number of persons crossing the lines

The demo counts persons who cross the lines in two directions (entering and leaving). We demonstrate a simple analytical pipeline with a primitive dashboard. As I see, we have almost everything ready for the demonstration.
The application looks for line definitions in MongoDB (two lines and metadata to address the directions); the lines are stored on a per-stream basis; if the stream doesn't have lines defined, the inference is ignored for it. The pipeline listens for changes in MongoDB with watches like 'streams/*'.
{
  "cam": "stream-name",
  "from": [x1, y1, x2, y2],
  "to": [x3, y3, x4, y4]
}

The results are placed into MongoDB whenever a person crosses the line in one or another direction with Metadata with the adapter:
{
  "cam": "stream-name",
  "direction": "enter", // enter = from-to, exit=to-from
  "tracked": 111,
  "time": when
}

Grafana dashboard is configured to look for crossing events grouping series by source and display bar charts.
Draw function is implemented to draw per-person traces tracking the bounding box center, draw a large dot in the middle of the body in random color from the palette. The legend displays counters for people crossing the line in both directions.
Do we have to use ReID or not to cover not crowdy zones? If @abramov-oleg is ready with Similari VisualSORT or we can utilize the DS tracker with ReID, we can make better tracking.

@abramov-oleg FYI, let us be clear:

We are using UDP socket to Graphite.
We log events of entrance or leaving like db.place.entered=1 or db.place.left=1
Graphite is configured to use 1 minute precision, aggregation function is count


Whitelabel updates based on feedback and other edits

Hello @ksigler7,Thanks again for the PR! We appreciate your contribution and look forward to                                              continued collaboration. Thanks!                                             Team SendGrid DX


To what extent is this cross language?

The docs say that:

The goal of validate.js is to provide a cross framework and cross language way of validating data. The validation constraints can be declared in JSON and shared between clients and the server.

I understand that the constraints can be declared in JSON, but as far as I can see, the implementation of the equivalent of the validate(attributes, constraints, [options]) function is then left unto the user, is that correct?
If so, I'll make a PR to add something to the docs that informs everyone.

I wondered about that too when I read it in the docs, and my interpretation was that this library is cross-language to the extent that JSON is cross-language (for example, a Java application could work with the JSON and give that to the client JS code or something). I didn't think it was referring to the implementation.

im working on an app thats for english and danish users, the email validation doesnt seem to like special characters like "æ" in the domain. Not sure if there is a work around yet.


adding sona.care

hi, great list, thanks. on the occasion of perusing it, adding sona.care which came through recently.

Thanks @x75 !


[FR] "Expand All" option in Bill of Materials view

Please verify that this feature request has NOT been suggested before.

[X] I checked and didn't find a similar feature request

Problem statement
In top-level assemblies with many parts that might have their own child BOMs, expanding the tree requires a lot of manual clicking. What's worse, and I suspect this might be a bug, is that expanding a single line item just collapses the entire tree.
Here's an example:

I believe this was actually implemented for some table views (#3068) but missing for the BOM view?
Suggested solution
Adding an "Expand All" button that recursively expands the entire BOM would save users a lot of clicks.
Describe alternatives you've considered
Unless I am mistaken, there is currently no alternative to manually expanding all items?
Examples of other systems
No response
Do you want to develop this?

[ ] I want to develop this.

Expanding all levels of BOM Items could introduce significant lag into the system - which is why currently BOMs are loaded a single level at a time. However a button which has to be clicked by the user to do this might not be too bad.

What's worse, and I suspect this might be a bug, is that expanding a single line item just collapses the entire tree.

Agreed this is a bug / unintended behaviour.
Would you be willing to submit a PR to address this?

Just commenting to keep this issue open.
I'm afraid I won't be able to send a PR as I currently do not have the time to familiarise myself with Django/Python web apps. Will revisit when I have a bit more time and if this issue is still open.

Not stale, but I think we should focus on bringing this to the new react interface


In the cube demo, --use-staging is needed for iossim because vkGetPhysicalDeviceFormatProperties returns wrong

In the cube demo of this repository, why do we pass --use-staging in main function's args, whilst it should be detected automatically whether or not the simulator supports props.linearTilingFeatures? It seems to be a quick fix in place hiding the underlying problem with vkGetPhysicalDeviceFormatProperties returning wrong.
This is the exception produced:
"MTLValidateFeatureSupport:4818: failed assertion Linear textures from shared buffers is not supported on this device'"`
vkGetPhysicalDeviceFormatProperties does not detect the lack of support.
in cube.c of the Demo
vkGetPhysicalDeviceFormatProperties(vulkanDSL->gpu, tex_format, &props);
for (i = 0; i < DEMO_TEXTURE_COUNT; i++) {
        VkResult U_ASSERT_ONLY err;

if (props.linearTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) && !vulkanDSL->use_staging_buffer) {
            //NSLog(@"--> Linear tiling is supported");
            /* Device can texture using linear textures */
            demo_prepare_texture_image(vulkanDSL, tex_files[i], &vulkanDSL->textures[i], VK_IMAGE_TILING_LINEAR, VK_IMAGE_USAGE_SAMPLED_BIT,
                                       VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT);
            // Nothing in the pipeline needs to be complete to start, and don't allow fragment
            // shader to run until layout transition completes
            demo_set_image_layout(vulkanDSL, vulkanDSL->textures[i].image, VK_IMAGE_ASPECT_COLOR_BIT, VK_IMAGE_LAYOUT_PREINITIALIZED,
                                  vulkanDSL->textures[i].imageLayout, 0, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
                                  VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT);
            vulkanDSL->staging_texture.image = 0;
        }

definitions from the Vulkan specification. So the linear on is for the first if in the cube.c code
linearTilingFeatures is a bitmask of VkFormatFeatureFlagBits specifying features supported by images created with a tiling parameter of VK_IMAGE_TILING_LINEAR.
VK_IMAGE_USAGE_SAMPLED_BIT specifies that the image can be used to create a VkImageView suitable for occupying a VkDescriptorSet slot either of type VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and be sampled by a shader.
VkFormatProperties is built as seen below

vulkan.mm
MVK_PUBLIC_VULKAN_SYMBOL void vkGetPhysicalDeviceFormatProperties(
    VkPhysicalDevice                            physicalDevice,
    VkFormat                                    format,
    VkFormatProperties*                         pFormatProperties) {

        MVKTraceVulkanCallStart();
	MVKPhysicalDevice* mvkPD = MVKPhysicalDevice::getMVKPhysicalDevice(physicalDevice);
	mvkPD->getFormatProperties(format, pFormatProperties);
	MVKTraceVulkanCallEnd();
}

MVKPixelFormats.mm
kMVKVkFormatFeatureFlagsTexRead     = (VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT |
[...]
then it is added in optimal
enableFormatFeatures(Read, Tex, mtlPixFmtCaps, vkProps.optimalTilingFeatures);
...
and then optimal is copied.

// Linear tiling is not available to depth/stencil or compressed formats.
        // GBGR and BGRG formats also do not support linear tiling in Metal.
        if ( !(vkDesc.formatType == kMVKFormatDepthStencil || vkDesc.formatType == kMVKFormatCompressed ||
                   (chromaSubsamplingPlaneCount == 1 && vkDesc.blockTexelSize.width > 1)) ) {
                // Start with optimal tiling features, and modify.
                vkProps.linearTilingFeatures = vkProps.optimalTilingFeatures;

                // Linear tiling can support atomic writing for some formats, even though optimal tiling does not.
                enableFormatFeatures(Atomic, Tex, mtlPixFmtCaps, vkProps.linearTilingFeatures);

#if !MVK_APPLE_SILICON
                // On macOS IMR GPUs, linear textures cannot be used as attachments, so disable those features.
                mvkDisableFlags(vkProps.linearTilingFeatures, (kMVKVkFormatFeatureFlagsTexColorAtt |
                                                                                kMVKVkFormatFeatureFlagsTexDSAtt |
                                                                                kMVKVkFormatFeatureFlagsTexBlend));
#endif
        }

So there is no test to check if the device does support.
I do have an APPLE_SILICON process M1 so the last if does not concern me. Or perhaps it is different in the simulator.
It seems like a gray area. Perhaps certain simulators support it and not others, without a clear way to query it with a function.

So there is no test to check if the device does support.

What do you propose we test?
The test for VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT seems like overkill, because sampling an image is not the same as mapping it to host memory. It's quite feasible to load a linear image on the GPU side (through transfer or compute, etc), and then sample it. Unless we argue that such a non-host-visible image should actually be considered optimal tiling, which I suppose could be reasonable.
What is needed is a host-visible linear image flag, but Vulkan doesn't really have specifically that in either vkGetPhysicalDeviceFormatProperties() or vkGetPhysicalDeviceImageFormatProperties().

Thanks for your comments.
It seems to me that --use-staging should not be passed in arg. It should be auto-detected so that we do not crash in the simulator.
It seems to me that VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT is required if we do not want to use a separate staging buffer. The image is used via sampling in the fragment shader.

It should be auto-detected

As I ask above, what do you propose we test? If we remove VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT from linear image formats, it means linear images cannot be sampled. That feels like overkill to me. But we can discuss that further in the new issue.
With that in mind, I'm going to close this issue as covered by that broader issue.


Automate release procedure

Description
This is an epic to capture tasks that automate the release procedure - moving them from manual steps to Buildkite.
Done Checklist

[ ] Produced code for required functionality
[ ] Tests written and coverage checked
[ ] Code review performed
[ ] Documentation on Google Docs  (if applicable)
[ ] Documentation in repo
[ ] Version number reflects new status
[ ] CHANGELOG.md updated
[ ] Team demo

duplicate of #627


Fix gh fetch error hidden

@bennypowers
fixed the exception suppression we discussed.
in regards to the CODEOWNERS file,
I'm of the fence, please share your take on this.
as it's designed so far, you and/or me are listed as owners for all the core stuff.
the about, community, and posts folders, has no owners.
I can modify this of course, this is just a suggestion.
WDYT?

LGTM if you're happy with the CODEOWNERS setup, resolve above notes to merge


how to fetch cached image's raw data using kingfisher?

Check List
Thanks for considering to open an issue. Before you submit your issue, please confirm these boxes are checked.

[x] I have read the wiki page and cheat sheet, but there is no information I need.
[x] I have searched in existing issues, but did not find a same one.
[x] I want to report a problem instead of asking a question. It'd better to use kingfisher tag in Stack Overflow to ask a question.

Issue Description
What
[Tell us about the issue]
Reproduce
[The steps to reproduce this issue. What is the url you were trying to load, where did you put your code, etc.]
Other Comment
[Add anything else here]

Waiting

There is no direct way to do that. Instead, you need to use cachePath(forKey:processorIdentifier:) and load the file to data yourself.

@onevcat Thanks! I read the document again and found this method too


req: join csklub

BTW we have an initiative called CSKlub, you can join and run this project from there with other members -- http://kazi.es/cs

Sure @profnandaa, I think we can leave the issue open for now so that also other people can join the initiative.

@profnandaa feel free to close this issue as I have fully transferred this repo to CSKlub.

Sounds great, thanks!


Please accept my code

Hey there, I have added a code of password generator.
Hope you will like it.

This PR is related to:

Does it close the issue?:

Summary:

Other:

@tausiq2003 - thanks for creating a PR
I'll review the addition soon - in the meantime, please fill in the indicated fields in the PR template

Ah, one last thing, if I may: Please follow the naming convention for commits as mentioned in the Contributing.md file!

what is the error showed in line6 and 7 can you show me please.

Ok I read some of your request but some are contradicting.

Ok I read some of your request but some are contradicting.

Is there any point that's confusing? Do let me know, I'll do my best to clarify

what is the error showed in line6 and 7 can you show me please.

Traceback (most recent call last):
  File "main.py", line 7, in <module>
    password=''.join(random.choices(string.ascii_letters,k=passlen))
AttributeError: 'module' object has no attribute 'choices'

Here's the online Python IDE I used: OnlineGDB

but i have python 3.9 its showing may be the following be the issue:
https://stackoverflow.com/questions/25695412/module-object-has-no-attribute-choice-trying-to-use-random-choice
read this.

should I use only alphanumeric or its user dependent

Please answer

Hey @tausiq2003,

https://stackoverflow.com/questions/25695412/module-object-has-no-attribute-choice-trying-to-use-random-choice
read this.

Yes, I am aware if you have a file or function with the same name as a python library, an error is thrown - I'm not sure how this applies to an online compiler since the files are non-persistent. Do you mean there might be a shadow copy of a previously used random.py?
Well, since it passes the linter, I'd say it's okay.

its ok or i will change it please reply

Before I accept this PR, the following need to be done:

[ ] Place the python script in the correct folder
[ ] Add comments to document what you've done
[ ] Fill in the PR details and rename the PR according to naming conventions

Yes I will do, but you don't have to depend upon online compiler because in some cases it will throw error, also random.py should be renamed,  as random is a module in python. I will attach a screenshot at the time of pushing.

Yes I will do, but you don't have to depend upon online compiler because in some cases it will throw error

@tausiq2003 - The reason I test the code on an online compiler (before testing the same on my local device and the linter) is that those who aren't sure if they want to use python often use it. If there are errors thrown (like the one pointed out) please document them in the comments so that a beginner looking over the code knows that the fault is not on their end.

Also random.py should be renamed, as random is a module in python. I will attach a screenshot at the time of pushing.

As far as I am aware, there is no random.py file in this repository. Please clarify?

Ah ok, yeah there is not random file


typo

typo under trust types: "Users can authentication using their" should be ...authenticate

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


[Bug] CUDA error: an illegal memory access was encountered when training MVX-NET kitti

Prerequisite

[X] I have searched Issues and Discussions but cannot get the expected help.
[X] I have read the FAQ documentation but cannot get the expected help.
[X] The bug has not been fixed in the latest version (dev) or latest version (1.x).

Task
I'm using the official example scripts/configs for the officially supported tasks/models/datasets.
Branch
master branch https://github.com/open-mmlab/mmdetection3d
Environment
sys.platform: linux
Python: 3.8.13 (default, Mar 28 2022, 11:38:47) [GCC 7.5.0]
CUDA available: True
GPU 0: NVIDIA GeForce RTX 3090 Ti
CUDA_HOME: /usr/local/cuda
NVCC: Cuda compilation tools, release 11.8, V11.8.89
GCC: gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
PyTorch: 1.10.2
PyTorch compiling details: PyTorch built with:

GCC 7.3
C++ Version: 201402
Intel(R) oneAPI Math Kernel Library Version 2021.4-Product Build 20210904 for Intel(R) 64 architecture applications
Intel(R) MKL-DNN v2.2.3 (Git Hash 7336ca9f055cf1bfa13efb658fe15dc9b41f0740)
OpenMP 201511 (a.k.a. OpenMP 4.5)
LAPACK is enabled (usually provided by MKL)
NNPACK is enabled
CPU capability usage: AVX2
CUDA Runtime 11.3
NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_37,code=compute_37
CuDNN 8.2
Magma 2.5.2
Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.3, CUDNN_VERSION=8.2.0, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.10.2, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,

TorchVision: 0.11.3
OpenCV: 4.6.0
MMCV: 1.6.2
MMCV Compiler: GCC 9.3
MMCV CUDA Compiler: 11.3
MMDetection: 2.26.0
MMSegmentation: 0.29.1
MMDetection3D: 1.0.0rc5+47285b3
spconv2.0: False
Reproduces the problem - code sample
python tools/train.py configs/mvxnet/dv_mvx-fpn_second_secfpn_adamw_2x8_80e_kitti-3d-3class.py
Reproduces the problem - command or script
python tools/train.py configs/mvxnet/dv_mvx-fpn_second_secfpn_adamw_2x8_80e_kitti-3d-3class.py
Reproduces the problem - error message
2023-01-09 17:50:54,289 - mmdet - INFO - Epoch [1][50/7424]	lr: 4.323e-04, eta: 12:27:33, time: 0.151, data_time: 0.044, memory: 2903, loss_cls: 1.2267, loss_bbox: 3.5244, loss_dir: 0.1647, loss: 4.9158, grad_norm: 434.8607
2023-01-09 17:50:59,192 - mmdet - INFO - Epoch [1][100/7424]	lr: 5.673e-04, eta: 10:16:19, time: 0.098, data_time: 0.002, memory: 3028, loss_cls: 1.1155, loss_bbox: 2.7561, loss_dir: 0.1583, loss: 4.0298, grad_norm: 66.9439
2023-01-09 17:51:03,828 - mmdet - INFO - Epoch [1][150/7424]	lr: 7.023e-04, eta: 9:23:41, time: 0.093, data_time: 0.002, memory: 3351, loss_cls: 1.0779, loss_bbox: 1.9355, loss_dir: 0.1621, loss: 3.1756, grad_norm: 26.9783
2023-01-09 17:51:08,802 - mmdet - INFO - Epoch [1][200/7424]	lr: 8.373e-04, eta: 9:05:41, time: 0.099, data_time: 0.002, memory: 3423, loss_cls: 1.0563, loss_bbox: 3.1697, loss_dir: 0.1599, loss: 4.3858, grad_norm: 60.4415
2023-01-09 17:51:13,848 - mmdet - INFO - Epoch [1][250/7424]	lr: 9.723e-04, eta: 8:56:17, time: 0.101, data_time: 0.002, memory: 3423, loss_cls: 0.9396, loss_bbox: 1.4337, loss_dir: 0.1429, loss: 2.5162, grad_norm: 12.9785
2023-01-09 17:51:18,777 - mmdet - INFO - Epoch [1][300/7424]	lr: 1.107e-03, eta: 8:48:04, time: 0.099, data_time: 0.002, memory: 3423, loss_cls: 0.8953, loss_bbox: 1.5164, loss_dir: 0.1394, loss: 2.5511, grad_norm: 9.2371
2023-01-09 17:51:23,919 - mmdet - INFO - Epoch [1][350/7424]	lr: 1.242e-03, eta: 8:45:10, time: 0.103, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:51:29,004 - mmdet - INFO - Epoch [1][400/7424]	lr: 1.377e-03, eta: 8:42:16, time: 0.102, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:51:34,068 - mmdet - INFO - Epoch [1][450/7424]	lr: 1.512e-03, eta: 8:39:46, time: 0.101, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:51:39,022 - mmdet - INFO - Epoch [1][500/7424]	lr: 1.647e-03, eta: 8:36:40, time: 0.099, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:51:43,826 - mmdet - INFO - Epoch [1][550/7424]	lr: 1.782e-03, eta: 8:32:46, time: 0.096, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:51:48,940 - mmdet - INFO - Epoch [1][600/7424]	lr: 1.917e-03, eta: 8:32:03, time: 0.102, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:51:53,680 - mmdet - INFO - Epoch [1][650/7424]	lr: 2.052e-03, eta: 8:28:36, time: 0.095, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:51:58,653 - mmdet - INFO - Epoch [1][700/7424]	lr: 2.187e-03, eta: 8:27:16, time: 0.099, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:52:03,299 - mmdet - INFO - Epoch [1][750/7424]	lr: 2.322e-03, eta: 8:23:57, time: 0.093, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:52:08,028 - mmdet - INFO - Epoch [1][800/7424]	lr: 2.457e-03, eta: 8:21:33, time: 0.095, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:52:12,853 - mmdet - INFO - Epoch [1][850/7424]	lr: 2.592e-03, eta: 8:19:59, time: 0.097, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:52:17,482 - mmdet - INFO - Epoch [1][900/7424]	lr: 2.727e-03, eta: 8:17:30, time: 0.093, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:52:22,313 - mmdet - INFO - Epoch [1][950/7424]	lr: 2.862e-03, eta: 8:16:19, time: 0.097, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:52:27,538 - mmdet - INFO - Exp name: dv_mvx-fpn_second_secfpn_adamw_2x8_80e_kitti-3d-3class.py
2023-01-09 17:52:27,538 - mmdet - INFO - Epoch [1][1000/7424]	lr: 2.997e-03, eta: 8:17:12, time: 0.105, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:52:32,338 - mmdet - INFO - Epoch [1][1050/7424]	lr: 3.000e-03, eta: 8:15:59, time: 0.096, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:52:37,369 - mmdet - INFO - Epoch [1][1100/7424]	lr: 3.000e-03, eta: 8:15:55, time: 0.101, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
2023-01-09 17:52:42,261 - mmdet - INFO - Epoch [1][1150/7424]	lr: 3.000e-03, eta: 8:15:15, time: 0.098, data_time: 0.002, memory: 3423, loss_cls: nan, loss_bbox: nan, loss_dir: nan, loss: nan, grad_norm: nan
Traceback (most recent call last):
File "tools/train.py", line 265, in
main()
File "tools/train.py", line 254, in main
train_model(
File "/home/raghav/mmdetection3d/mmdet3d/apis/train.py", line 347, in train_model
train_detector(
File "/home/raghav/mmdetection3d/mmdet3d/apis/train.py", line 322, in train_detector
runner.run(data_loaders, cfg.workflow)
File "/home/raghav/miniconda3/envs/mapping/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 136, in run
epoch_runner(data_loaders[i], **kwargs)
File "/home/raghav/miniconda3/envs/mapping/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 54, in train
self.call_hook('after_train_iter')
File "/home/raghav/miniconda3/envs/mapping/lib/python3.8/site-packages/mmcv/runner/base_runner.py", line 317, in call_hook
getattr(hook, fn_name)(self)
File "/home/raghav/miniconda3/envs/mapping/lib/python3.8/site-packages/mmcv/runner/hooks/optimizer.py", line 67, in after_train_iter
runner.log_buffer.update({'grad_norm': float(grad_norm)},
RuntimeError: CUDA error: an illegal memory access was encountered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Additional information
I am re-training the MVX-Net model on KITTI data set with a reduced number of lidar layers, however, the same problem occurs when I am training it on the 'classic' kitti dataset. After a couple of steps, the training run crashes, saying
RuntimeError: CUDA error: an illegal memory access was encountered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

I would be really grateful for any help !

not really helping

I also encountered the same problem, did you solve this problem? Thanks!
@maxiuw @JingweiZhang12

Yes, you cannot train it from the checkpoint though. You have to start from zero.
Comment the last line in config file responsible for downloading the checkpoints.
So it isn't really a solution :)

I have a question that I hope you can clarify. If you start training from scratch without using a pre-trained model, is the accuracy of the trained model much different from the baseline?
@maxiuw

Do you know what caused this? (It can be successful without using the pre-trained model)

@maxiuw @zwl8979, Hi,  we'll profile the CUDA error of MVX ASAP. Please keep an eye on this issue.

@JingweiZhang12 OK，thank you!Looking forward to your reply as soon as possible.

@zwl8979 @maxiuw, Hi,  we have fixed this bug in the PR https://github.com/open-mmlab/mmdetection3d/pull/2282

Same problem, but working for single GPU , failed with distributed training.
Error message
Traceback (most recent call last):
File "./tools/train.py", line 263, in
main()
File "./tools/train.py", line 252, in main
train_model(
File "/media/xxx/Mendoza_SSD/exp/mmdetection3d/mmdet3d/apis/train.py", line 344, in train_model
train_detector(
File "/media/xxx/Mendoza_SSD/exp/mmdetection3d/mmdet3d/apis/train.py", line 319, in train_detector
runner.run(data_loaders, cfg.workflow)
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 136, in run
epoch_runner(data_loaders[i], **kwargs)
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 53, in train
self.run_iter(data_batch, train_mode=True, **kwargs)
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 31, in run_iter
outputs = self.model.train_step(data_batch, self.optimizer,
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/parallel/distributed.py", line 63, in train_step
output = self.module.train_step(*inputs[0], **kwargs[0])
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmdet/models/detectors/base.py", line 248, in train_step
losses = self(**data)
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
return forward_call(*input, **kwargs)
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/runner/fp16_utils.py", line 119, in new_func
return old_func(*args, **kwargs)
File "/media/xxx/Mendoza_SSD/exp/mmdetection3d/mmdet3d/models/detectors/base.py", line 60, in forward
return self.forward_train(**kwargs)
File "/media/xxx/Mendoza_SSD/exp/mmdetection3d/mmdet3d/models/detectors/mvx_two_stage.py", line 273, in forward_train
img_feats, pts_feats = self.extract_feat(
File "/media/xxx/Mendoza_SSD/exp/mmdetection3d/mmdet3d/models/detectors/mvx_two_stage.py", line 208, in extract_feat
pts_feats = self.extract_pts_feat(points, img_feats, img_metas)
File "/media/xxx/Mendoza_SSD/exp/mmdetection3d/mmdet3d/models/detectors/mvx_faster_rcnn.py", line 57, in extract_pts_feat
x = self.pts_middle_encoder(voxel_features, feature_coors, batch_size)
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
return forward_call(*input, **kwargs)
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/runner/fp16_utils.py", line 119, in new_func
return old_func(*args, **kwargs)
File "/media/xxx/Mendoza_SSD/exp/mmdetection3d/mmdet3d/models/middle_encoders/sparse_encoder.py", line 123, in forward
x = self.conv_input(input_sp_tensor)
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
return forward_call(*input, **kwargs)
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/ops/sparse_modules.py", line 134, in forward
input = module(input)
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
return forward_call(*input, kwargs)
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/ops/sparse_conv.py", line 183, in forward
out_features = Fsp.indice_subm_conv(features, self.weight,
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/ops/sparse_functional.py", line 110, in forward
return ops.indice_conv(features, filters, indice_pairs,
File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/ops/sparse_ops.py", line 124, in indice_conv
return ext_module.indice_conv_forward(features, filters, indice_pairs,
RuntimeError: CUDA error: an illegal memory access was encountered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
terminate called after throwing an instance of 'c10::CUDAError'
what():  CUDA error: an illegal memory access was encountered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Exception raised from create_event_internal at ../c10/cuda/CUDACachingAllocator.cpp:1387 (most recent call first):
frame #0: c10::Error::Error(c10::SourceLocation, std::string) + 0x42 (0x7fa2a5bc9612 in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libc10.so)
frame #1:  + 0x22c1e (0x7fa2a5e38c1e in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libc10_cuda.so)
frame #2: c10::cuda::CUDACachingAllocator::raw_delete(void) + 0x22d (0x7fa2a5e3bc4d in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libc10_cuda.so)
frame #3:  + 0x339668 (0x7fa2ef451668 in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libtorch_python.so)
frame #4: c10::TensorImpl::release_resources() + 0x175 (0x7fa2a5bae295 in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libc10.so)
frame #5:  + 0x214cfd (0x7fa2ef32ccfd in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libtorch_python.so)
frame #6:  + 0x541188 (0x7fa2ef659188 in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libtorch_python.so)
frame #7: THPVariable_subclass_dealloc(_object) + 0x2b2 (0x7fa2ef659482 in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libtorch_python.so)
frame #8: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4b7fa0]
frame #9: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4c2a0f]
frame #10: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4c2863]
frame #11: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4d7a5b]
frame #12: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4d7a5b]
frame #13: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4d1b68]
frame #14: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e5058]
frame #15: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e506b]
frame #16: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e506b]
frame #17: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e506b]
frame #18: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e506b]
frame #19: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e506b]
frame #20: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e506b]
frame #21: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e506b]
frame #22: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4b5827]
frame #23: PyDict_SetItemString + 0x99 (0x4bd0a9 in /home/xxx/anaconda3/envs/ppytorch/bin/python)
frame #24: PyImport_Cleanup + 0x93 (0x5911a3 in /home/xxx/anaconda3/envs/ppytorch/bin/python)
frame #25: Py_FinalizeEx + 0x71 (0x58cd81 in /home/xxx/anaconda3/envs/ppytorch/bin/python)
frame #26: Py_RunMain + 0x1b6 (0x584126 in /home/xxx/anaconda3/envs/ppytorch/bin/python)
frame #27: Py_BytesMain + 0x39 (0x561ab9 in /home/xxx/anaconda3/envs/ppytorch/bin/python)
frame #28: __libc_start_main + 0xe7 (0x7fa2fd03dc87 in /lib/x86_64-linux-gnu/libc.so.6)
frame #29: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x56196e]
Env
Python: 3.8.16 (default, Jan 17 2023, 23:13:24) [GCC 11.2.0]
CUDA available: True
GPU 0,1,2,3: NVIDIA GeForce RTX 2080 Ti
CUDA_HOME: /usr/local/cuda-10.2
NVCC: Cuda compilation tools, release 10.2, V10.2.8
GCC: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
PyTorch: 1.12.1+cu102
PyTorch compiling details: PyTorch built with:

GCC 7.3

C++ Version: 201402

Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications

Intel(R) MKL-DNN v2.6.0 (Git Hash 52b5f107dd9cf10910aaa19cb47f3abf9b349815)

OpenMP 201511 (a.k.a. OpenMP 4.5)

LAPACK is enabled (usually provided by MKL)

NNPACK is enabled

CPU capability usage: AVX2

CUDA Runtime 10.2

NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70

CuDNN 7.6.5

Magma 2.5.2

Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=10.2, CUDNN_VERSION=7.6.5, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -fabi-version=11 -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.12.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=OFF, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF,

TorchVision: 0.13.1+cu102
OpenCV: 4.2.0
MMCV: 1.7.0
MMCV Compiler: GCC 7.3
MMCV CUDA Compiler: 10.2
MMDetection: 2.28.2
MMSegmentation: 0.30.0
MMDetection3D: 1.0.0rc6+47285b3
spconv2.0: False

Same problem, but working for single GPU , failed with distributed training.
Error message
Traceback (most recent call last): File "./tools/train.py", line 263, in main() File "./tools/train.py", line 252, in main train_model( File "/media/xxx/Mendoza_SSD/exp/mmdetection3d/mmdet3d/apis/train.py", line 344, in train_model train_detector( File "/media/xxx/Mendoza_SSD/exp/mmdetection3d/mmdet3d/apis/train.py", line 319, in train_detector runner.run(data_loaders, cfg.workflow) File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 136, in run epoch_runner(data_loaders[i], **kwargs) File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 53, in train self.run_iter(data_batch, train_mode=True, **kwargs) File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 31, in run_iter outputs = self.model.train_step(data_batch, self.optimizer, File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/parallel/distributed.py", line 63, in train_step output = self.module.train_step(*inputs[0], **kwargs[0]) File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmdet/models/detectors/base.py", line 248, in train_step losses = self(**data) File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(*input, **kwargs) File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/runner/fp16_utils.py", line 119, in new_func return old_func(*args, **kwargs) File "/media/xxx/Mendoza_SSD/exp/mmdetection3d/mmdet3d/models/detectors/base.py", line 60, in forward return self.forward_train(**kwargs) File "/media/xxx/Mendoza_SSD/exp/mmdetection3d/mmdet3d/models/detectors/mvx_two_stage.py", line 273, in forward_train img_feats, pts_feats = self.extract_feat( File "/media/xxx/Mendoza_SSD/exp/mmdetection3d/mmdet3d/models/detectors/mvx_two_stage.py", line 208, in extract_feat pts_feats = self.extract_pts_feat(points, img_feats, img_metas) File "/media/xxx/Mendoza_SSD/exp/mmdetection3d/mmdet3d/models/detectors/mvx_faster_rcnn.py", line 57, in extract_pts_feat x = self.pts_middle_encoder(voxel_features, feature_coors, batch_size) File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(*input, **kwargs) File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/runner/fp16_utils.py", line 119, in new_func return old_func(*args, **kwargs) File "/media/xxx/Mendoza_SSD/exp/mmdetection3d/mmdet3d/models/middle_encoders/sparse_encoder.py", line 123, in forward x = self.conv_input(input_sp_tensor) File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(*input, **kwargs) File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/ops/sparse_modules.py", line 134, in forward input = module(input) File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl return forward_call(*input, _kwargs) File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/ops/sparse_conv.py", line 183, in forward out_features = Fsp.indice_subm_conv(features, self.weight, File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/ops/sparse_functional.py", line 110, in forward return ops.indice_conv(features, filters, indice_pairs, File "/home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/mmcv/ops/sparse_ops.py", line 124, in indice_conv return ext_module.indice_conv_forward(features, filters, indice_pairs, RuntimeError: CUDA error: an illegal memory access was encountered CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1. terminate called after throwing an instance of 'c10::CUDAError' what(): CUDA error: an illegal memory access was encountered CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1. Exception raised from create_event_internal at ../c10/cuda/CUDACachingAllocator.cpp:1387 (most recent call first): frame #0: c10::Error::Error(c10::SourceLocation, std::string) + 0x42 (0x7fa2a5bc9612 in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libc10.so) frame #1: + 0x22c1e (0x7fa2a5e38c1e in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libc10_cuda.so) frame #2: c10::cuda::CUDACachingAllocator::raw_delete(void) + 0x22d (0x7fa2a5e3bc4d in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libc10_cuda.so) frame #3: + 0x339668 (0x7fa2ef451668 in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libtorch_python.so) frame #4: c10::TensorImpl::release_resources() + 0x175 (0x7fa2a5bae295 in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libc10.so) frame #5: + 0x214cfd (0x7fa2ef32ccfd in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libtorch_python.so) frame #6: + 0x541188 (0x7fa2ef659188 in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libtorch_python.so) frame #7: THPVariable_subclass_dealloc(object) + 0x2b2 (0x7fa2ef659482 in /home/xxx/anaconda3/envs/ppytorch/lib/python3.8/site-packages/torch/lib/libtorch_python.so) frame #8: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4b7fa0] frame #9: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4c2a0f] frame #10: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4c2863] frame #11: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4d7a5b] frame #12: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4d7a5b] frame #13: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4d1b68] frame #14: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e5058] frame #15: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e506b] frame #16: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e506b] frame #17: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e506b] frame #18: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e506b] frame #19: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e506b] frame #20: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e506b] frame #21: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4e506b] frame #22: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x4b5827] frame #23: PyDict_SetItemString + 0x99 (0x4bd0a9 in /home/xxx/anaconda3/envs/ppytorch/bin/python) frame #24: PyImport_Cleanup + 0x93 (0x5911a3 in /home/xxx/anaconda3/envs/ppytorch/bin/python) frame #25: Py_FinalizeEx + 0x71 (0x58cd81 in /home/xxx/anaconda3/envs/ppytorch/bin/python) frame #26: Py_RunMain + 0x1b6 (0x584126 in /home/xxx/anaconda3/envs/ppytorch/bin/python) frame #27: Py_BytesMain + 0x39 (0x561ab9 in /home/xxx/anaconda3/envs/ppytorch/bin/python) frame #28: __libc_start_main + 0xe7 (0x7fa2fd03dc87 in /lib/x86_64-linux-gnu/libc.so.6) frame #29: /home/xxx/anaconda3/envs/ppytorch/bin/python() [0x56196e]
Env
Python: 3.8.16 (default, Jan 17 2023, 23:13:24) [GCC 11.2.0] CUDA available: True GPU 0,1,2,3: NVIDIA GeForce RTX 2080 Ti CUDA_HOME: /usr/local/cuda-10.2 NVCC: Cuda compilation tools, release 10.2, V10.2.8 GCC: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 PyTorch: 1.12.1+cu102 PyTorch compiling details: PyTorch built with:
* GCC 7.3

* C++ Version: 201402

* Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications

* Intel(R) MKL-DNN v2.6.0 (Git Hash 52b5f107dd9cf10910aaa19cb47f3abf9b349815)

* OpenMP 201511 (a.k.a. OpenMP 4.5)

* LAPACK is enabled (usually provided by MKL)

* NNPACK is enabled

* CPU capability usage: AVX2

* CUDA Runtime 10.2

* NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70

* CuDNN 7.6.5

* Magma 2.5.2

  * Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=10.2, CUDNN_VERSION=7.6.5, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -fabi-version=11 -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.12.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=OFF, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF,

TorchVision: 0.13.1+cu102 OpenCV: 4.2.0 MMCV: 1.7.0 MMCV Compiler: GCC 7.3 MMCV CUDA Compiler: 10.2 MMDetection: 2.28.2 MMSegmentation: 0.30.0 MMDetection3D: 1.0.0rc6+47285b3 spconv2.0: False

Have tried add BN & lower the lr.


Example projects are not easy to run

Neither the hello_world nor the brotli example work "out of the box" e.g. they don't have a pubspec in their folder etc pp, which makes the barrier to enter WASM with dart quite high.
Also the "basic usage" example from the readme is not there as an "example" to investigate.
In order to run either example you have to first create a new project and copy the files over, which is not ideal.
Linking to https://github.com/flutter/flutter/issues/90218 since I tried to test WASM in isolation.

Are you able to run it ? If yes then please share the steps. 😵😵😵

@dkbast & @Divit-vaghani thank you for reporting that you are having issues with getting this package to work for you.
I'm wondering, have you tried following the tutorial (that can be found in the readme here) step by step? It would be very helpful if you could report the exact steps that are not working for you.
@dkbast If I understood you correctly, you'd like to have an example folder that you can just copy and paste and that just works, is that correct?
@dkbast & @Divit-vaghani It would be great if you could share more about your use case e.g.:

which platforms you plan to run the actual wasm binary on (e.g. iOS, Web, Android?)
which language you are trying to run on those platforms (e.g. C compiled to wasm? Rust compiled to wasm? Dart compiled to wasm? or an arbitrary wasm binary that you haven't compiled yourself?)


Initial schema setup file not being ran

Excuse my lack of knowledge with docker, but I can't seem to figure out why my initial schema isn't being ran. My docker-compose looks like:
version: '2'

services:
    boilerplatebackend:
        ...

        depends_on:
            - postgres

        environment:
            DATABASE_URL: ...

        ports:
          - "8080:8080"
    postgres:
        image: postgres
        environment:
            POSTGRES_USER: smashggextadmin
            POSTGRES_DB: smashggext
        build: ./backend/database

then inside ./backend/database I have
FROM postgres
COPY ./initial_schema.sql /docker-entrypoint-initdb.d/

where initial_schema.sql =
CREATE TABLE links(channelid INT NOT NULL PRIMARY KEY, link VARCHAR(255) NOT NULL)
Everything seems to get up and running, but the links table is never created. Am I doing something blatantly wrong here? Thanks a bunch for any help!

This might help explain how the volumes get saved when using compose: https://github.com/docker-library/postgres/issues/203#issuecomment-255200501.  The short answer is that the initdb.d files are only run when the database files have not been created.

Thanks @yosifkit , I found that removing the existing volume and building from scratch worked.


Doesnt know how to instantiate this addon!

Sorry to say that the documentation is not giving any idea how to use this in real project.
after installing the addon, i generate a custom component 'inventory-table'
put the template in some index.hbs
// inventory/index.hbs
 {{#light-table table onScrolledToBottom=(action 'onScrolledToBottom') as |t|}}
     {{t.head
       onColumnClick=(action 'onColumnClick')
       iconAscending='fa fa-sort-asc'
       iconDescending='fa fa-sort-desc'
       fixed=true
     }}

     {{#t.body canSelect=false height='64vh' as |body|}}
       {{#if isLoading}}
         {{#body.loader}}
           {{table-loader}}
         {{/body.loader}}
       {{/if}}
     {{/t.body}}
   {{/light-table}}

pasted this content in the newly created component
//app/components/inventory-table.js
import Ember from 'ember';
import Table from 'ember-light-table';

const { isEmpty } = Ember;

export default Ember.Component.extend({
  page: 1,
  limit: 20,
  dir: 'asc',
  sort: null,
  table: null,
  isLoading: false,
  canLoadMore: true,

  columns: [{
    label: 'Avatar',
    valuePath: 'avatar',
    width: '60px',
    sortable: false,
    cellComponent: 'user-avatar'
  }, {
    label: 'First Name',
    valuePath: 'firstName',
    width: '150px'
  }, {
    label: 'Last Name',
    valuePath: 'lastName',
    width: '150px'
  }, {
    label: 'Address',
    valuePath: 'address'
  }, {
    label: 'State',
    valuePath: 'state'
  }, {
    label: 'Country',
    valuePath: 'country'
  }],

  init() {
    this._super(...arguments);
    this.set('table', new Table(this.columns));
  },

  fetchRecords() {
    this.set('isLoading', true);
    this.get('store').query('user', this.getProperties(['page', 'limit', 'sort', 'dir'])).then(records => {
      this.table.addRows(records);
      this.set('isLoading', false);
      this.set('canLoadMore', !isEmpty(records));
    });
  },

  actions: {
    onScrolledToBottom() {
      if(this.get('canLoadMore')) {
        this.incrementProperty('page');
        this.fetchRecords();
      }
    },

    onColumnClick(column) {
      if (column.sorted) {
        this.setProperties({
          dir: column.ascending ? 'asc' : 'desc',
          sort: column.get('valuePath'),
          page: 1
        });
        this.table.setRows([]);
        this.fetchRecords();
      }
    }
  }
});

initially it thrown
ember.debug.js:16628Uncaught Error: An action named 'onScrolledToBottom' was not found in <zahid-staging@controller:dashboard/inventory/index::ember930>.

The i removed this function from component helper
but dont know where to put the instantiation code
import Table from 'ember-light-table';
const table = new Table(columns, rows);

Tried in index controller , inventory-table.js(component file) , but it throws
ember.debug.js:16628Uncaught Error: Assertion Failed: [ember-light-table] table must be an instance of Table

May i get a clear picture of where to put these codes and how? I love this addon, but couldn't figure out how to use. please help

Im sorry you're running into some issues. To get a better understanding of how this table works, I suggest looking at the demo code for the demo page which can be found here. That will have working examples that you can use. If you have some more specific questions, please feel free to comment back and I can help you to the best of my ability.

Thanks brother i will check the demo code

Someone should correct the documentation https://offirgolan.github.io/ember-light-table/docs/modules/Table Declaration.html  ...

@roger-russel where do you see a mistake?

@talhaobject90  I am having the same issue. Did you resolve this? How? I looked at the demo page per the suggestion but couldn't find the solution. Thanks in advance for the help.

@offirgolan the problem is the demo page snippets only contain partial code so if you don't know how to use it already it's difficult to figure out how to put it all together. Is there any self contained fully working, simple example? (The examples in the tests for the project is close but I still can't figure out how to extract the parts needed to make a standalone version.)


Add Dynamic Type support

Hey @LukasHromadnik, thanks for your contribution!
The changes look good to me. Could you take a look at the failing tests on Travis?

This has now been released as v1.6.0.


autodiscover feature to create graphs from rrd's

It would be nice to have precreated templates for the most common collectd plugins, and that we can choose to use these to get up and running fast, after we can manipulate the settings for the graphs to fit our liking but, having such a feature would be really nice.

Agreed, this is something we should be able to provide. Thank you for suggesting it.

I wonder if this is something we should offer at packaging level. WDYT @vbatoufflet?

We'll have to see how to achieve this as generic as possible, not only for Collectd.
But yeah, it could be something interesting.

Actually, the very primitive way to discover rrd files and assign them to source and metric is perfect and could provide a very convenient way for filling availables templates. What could be done is from the template edition form (graph, and/or collection templates), you could provide an check mark to open an "autofill template vars with given regex", you ticked, a text input could be provided for the user to fill with a regex that would be then applied to any source/metrics available to create graphs.
The best would be that these graphs were NOT created, but available dynamically.

This would be awesome!

+1
Related to #217

Related to #266.


highestLongerOrderPirce, lowestShortPrice

uint256 highestLongOrderPrice = longOrders[longOrders.length - 1].price;
uint256 lowestShortPrice = shortOrders[shortOrders.length - 1].price;
please rename either one of them, f.e. lowestShortPrice = lowestShortOrderPrice
for consistency in nomenclature

Solved.
uint256 highestLongOrderPrice = longOrders[longOrders.length - 1].price;
uint256 lowestShortOrderPrice = shortOrders[shortOrders.length - 1].price;

;)


v1.10.0-next.0 version bump

Backstage release v1.10.0-next.0 has been published, this Pull Request contains the changes to upgrade to this new release
Please review the changelog before approving, there may be manual changes needed to enable new features:

Changelog: v1.10.0-next.0
Upgrade Helper: From 1.9.1 to 1.10.0-next.0

Created by Version Bump<PHONE_NUMBER>

Closing in favor of v1.10.0-next.1


Add initial pass at a cmd line spec

Gives us something to shoot arrows at  :-)
Signed-off-by: Doug Davis<EMAIL_ADDRESS>

On Tue, Jul 05, 2016 at 03:10:31PM -0700, Doug Davis wrote:

Gives us something to shoot arrows at  :-)

There's also existing work in 1, linked from 2.
 Subject: Re: Specifying the runtime's command-line interface
 Date: Wed, 2 Dec 2015 12:40:09 -0800
 Message-ID<EMAIL_ADDRESS>

@duglin what about --version? and its output? I found runc has a 3 line output from --version. Should it be part of this? Should the output follow some convention? (sorry if I'm out of mind saying this)

@runcom I would actually prefer for this to be left out of the spec for now. I like the idea of our cmd line spec focusing on just the corresponding features mentioned in the runtime spec.
While getting the version info is interesting, I don't think its critical for interop right now. If we want it then, yes as you said, we'd need to include the definition of the output (in machine readable format too), and should probably be in the runtime spec.

Yeah, I didn't mean to have that included in this PR, I'll open another issue to track my question/issue

/me on my phone
Is there presently a way to determine version of the spec implemented by a
cli?
On Tue, Jul 19, 2016, 17:41 Antonio Murdaca<EMAIL_ADDRESS>wrote:

Yeah, I didn't mean to have that included in this PR, I'll open another
issue to track my question/issue
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/opencontainers/runtime-spec/pull/511#issuecomment-233775001,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAEF6Z8Smb2k8WQFoG1KfLXKfDaz4xtvks5qXURagaJpZM4JFlJW
.

On Tue, Jul 19, 2016 at 02:46:10PM -0700, Vincent Batts wrote:

Is there presently a way to determine version of the spec
implemented by a cli?

No, and there's a general lack of clarity in how ociVersion should be
applied.  More details in opencontainers/tob#16 and discussion in 1.
@duglin was going to file something about this 2.


Is it possible to change the font size of Windows Terminal

I was just wondering if it is possible to change the font size of text on Windows Terminal. I don't see anything related to font size in the settings. The font size is really big for some reason and I don't know how to make it smaller. Thanks

Please, anybody  ....

@goodandrewsoft Yep, it absolutely is possible to change the font size - there are plenty of answers in the docs. Presumably, OP found those docs, and closed the issue on their own.

I found a way to override an action by finding the action list here, so now i can use alt-+ or alt-= to change the font size, however the ctrl-+ and ctrl-= bindings remain and I need these to not be there anymore. I can probably work around it by overriding them with  "action": "sendInput" commands, but please tell me if I can do it without defining that.


Auto transfer from Lending balance to Exchange balance above a certain threshold

Hi,
This bot is really great !
This one is not a bug but rather a suggestion to improve the program.
In the same philosophy as the functionality that automatically transfers balance from Exchange to Lending, it would be great to have a feature that transfers coins above a certain threshold every X days from Lending to Exchange .
For instance, if my threshold is 1.5 BTC and my lending balance is 1.55 BTC, then the bot would automatically transfer 0.05 BTC back to the exchange balance X days after the last Lending > Exchange transfer.
That way it would be easier to withdraw from BTC account, for instance on a monthly basis.
Cheers !

I think this is related to https://github.com/BitBotFactory/poloniexlendingbot/issues/371.

Duplicate of #371
Will, however include that raw amounts should be included as well as percentages.


Aborting a build should not trigger Post-build Actions for CodeDeploy

Hi, I have a Post-build action setup for CodeDeploy and it incorrectly gets triggered regardless of the success of the build.  It should not get triggered if the build fails or is aborted.

+1

+1
@Jmcfar this is pretty serious issue and caused us an unintentional deploy that actually led to a small downtime
Any chance this is reviewed and merged ASAP?

Is this bug likely to be addressed soon?
We just deployed broken code to production because of an aborted build.