[BUG] System.UnauthorizedAccessException: Access to the path 'RobloxPlayerBeta.exe' is denied.

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[X] I did not answer truthfully to all the above checkboxes.

Bloxstrap Version
v2.8.1
What problem did you encounter?
System.UnauthorizedAccessException: Access to the path 'RobloxPlayerBeta.exe' is denied.
Bloxstrap Log
2024-11-01T19:27:30Z [App::OnStartup] Starting Bloxstrap v2.8.1
2024-11-01T19:27:30Z [App::OnStartup] Compiled Tuesday, 29 October 2024 at 7:35:23 PM from commit 2be2f4d0d275e60eabf2f63ecbbe4e38b2aa0773 (tag/v2.8.1)
2024-11-01T19:27:30Z [App::OnStartup] Loaded from %UserProfile%\AppData\Local\Bloxstrap\Bloxstrap.exe
2024-11-01T19:27:30Z [App::OnStartup] Temp path is %UserProfile%\AppData\Local\Temp\Bloxstrap
2024-11-01T19:27:30Z [App::OnStartup] WindowsStartMenu path is %UserProfile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
2024-11-01T19:27:30Z [LaunchSettings] Identifier 'player' is active
2024-11-01T19:27:30Z [Logger::Initialize] Initializing at %UserProfile%\AppData\Local\Bloxstrap\Logs\Bloxstrap_20241101T192730Z.log
2024-11-01T19:27:30Z [Logger::Initialize] Finished initializing!
2024-11-01T19:27:30Z [JsonManager<Settings>::Load] Loading from %UserProfile%\AppData\Local\Bloxstrap\Settings.json...
2024-11-01T19:27:30Z [JsonManager<Settings>::Load] Loaded successfully!
2024-11-01T19:27:30Z [JsonManager<State>::Load] Loading from %UserProfile%\AppData\Local\Bloxstrap\State.json...
2024-11-01T19:27:30Z [JsonManager<State>::Load] Loaded successfully!
2024-11-01T19:27:30Z [FastFlagManager::Load] Loading from %UserProfile%\AppData\Local\Bloxstrap\Modifications\ClientSettings\ClientAppSettings.json...
2024-11-01T19:27:30Z [FastFlagManager::Load] Loaded successfully!
2024-11-01T19:27:30Z [LaunchHandler::LaunchRoblox] Initializing bootstrapper
2024-11-01T19:27:30Z [LaunchHandler::LaunchRoblox] Initializing bootstrapper dialog
2024-11-01T19:27:30Z [Bootstrapper::Run] Running bootstrapper
2024-11-01T19:27:30Z [Bootstrapper::SetStatus] Conectando-se ao Roblox...
2024-11-01T19:27:30Z [Deployment::TestConnection<https://setup.rbxcdn.com>] Connecting...
2024-11-01T19:27:30Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup.rbxcdn.com/versionStudio
2024-11-01T19:27:30Z [Deployment::InitializeConnectivity] Testing connectivity...
2024-11-01T19:27:30Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://setup.rbxcdn.com/versionStudio
2024-11-01T19:27:30Z [Deployment::InitializeConnectivity] Got https://setup.rbxcdn.com as the optimal base URL
2024-11-01T19:27:30Z [Bootstrapper::Run] Connectivity check finished
2024-11-01T19:27:30Z [Bootstrapper::CheckForUpdates] Checking for updates...
2024-11-01T19:27:30Z [HttpClientLoggingHandler::ProcessRequest] GET https://api.github.com/repos/bloxstraplabs/bloxstrap/releases/latest
2024-11-01T19:27:30Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://api.github.com/repos/bloxstraplabs/bloxstrap/releases/latest
2024-11-01T19:27:30Z [Bootstrapper::CheckForUpdates] No updates found
2024-11-01T19:27:30Z [Bootstrapper::GetLatestVersionInfo] Got channel as production
2024-11-01T19:27:30Z [Deployment::GetInfo] Getting deploy info for channel production
2024-11-01T19:27:30Z [HttpClientLoggingHandler::ProcessRequest] GET https://clientsettingscdn.roblox.com/v2/client-version/WindowsPlayer
2024-11-01T19:27:31Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://clientsettingscdn.roblox.com/v2/client-version/WindowsPlayer
2024-11-01T19:27:31Z [RegistryKeyEx::SetValueSafe] Writing '' to HKEY_CURRENT_USER\SOFTWARE\ROBLOX Corporation\Environments\RobloxPlayer\Channel\www.roblox.com
2024-11-01T19:27:31Z [HttpClientLoggingHandler::ProcessRequest] GET https://setup.rbxcdn.com/version-b7eebc919e96477a-rbxPkgManifest.txt
2024-11-01T19:27:31Z [HttpClientLoggingHandler::ProcessResponse] 200 OK https://setup.rbxcdn.com/version-b7eebc919e96477a-rbxPkgManifest.txt
2024-11-01T19:27:31Z [Bootstrapper::SetStatus] Atualizando {product}...
2024-11-01T19:27:31Z [LaunchHandler::LaunchRoblox] Bootstrapper task has finished
2024-11-01T19:27:31Z [LaunchHandler::LaunchRoblox] An exception occurred when running the bootstrapper
2024-11-01T19:27:31Z [App::FinalizeExceptionHandling] (0x80070005) System.UnauthorizedAccessException: Access to the path 'RobloxPlayerBeta.exe' is denied.
   at System.IO.FileSystem.RemoveDirectoryRecursive(String fullPath, WIN32_FIND_DATA& findData, Boolean topLevel)
   at System.IO.FileSystem.RemoveDirectory(String fullPath, Boolean recursive)
   at Bloxstrap.Bootstrapper.UpgradeRoblox()
   at Bloxstrap.Bootstrapper.Run()
   at Bloxstrap.Bootstrapper.Run()
2024-11-01T19:27:31Z [HttpClientLoggingHandler::ProcessRequest] POST https://bloxstraplabs.com/metrics/post-exception

System.UnauthorizedAccessException: Access to the path 'RobloxPlayerBeta.exe' is denied.

Hi Does Anyone know why my bloxstrap says this?: System aggregatedexeption one or more errors ocurred the given key content-platform-dictionaries.zip was not present in the dictionairy

I'm assuming this has been fixed with v2.8.2. If not, please open a new issue.


Question about scroll API and find_each / find_in_batches

Elasticsearch 5.1
Following docs:
http://www.rubydoc.info/gems/elasticsearch-api/Elasticsearch/API/Actions#scroll-instance_method
When I'm trying to reproduce example 'Call the scroll API until all the documents are returned', I notice that this call
# Call the `scroll` API until empty results are returned
while r = client.scroll(scroll_id: r['_scroll_id'], scroll: '5m') and not r['hits']['hits'].empty? do
  puts "--- BATCH #{defined?($i) ? $i += 1 : $i = 1} -------------------------------------------------"
  puts r['hits']['hits'].map { |d| d['_source']['title'] }.inspect
  puts
end

doesn't contains the results of this initial call:
# Open the "view" of the index with the `scan` search_type
r = client.search index: 'test', search_type: 'scan', scroll: '5m', size: 10

So in the end we missing positions counting by size of initial scroll call.
Example.
If we have index ['test1', 'test2',' test3' ..... 'test100']
calling the scroll API with initial size 10 will return ['test11', 'test12', .... 'test100'] with missing first 10 results.
I have same results in elasticsearch console - first call of scroll does not include results of initial call, so seems that the scroll method works like it need.
But the question is in find_each
According docs:
 Iterate effectively over models using the `find_in_batches` method.
          #
          # All the options are passed to `find_in_batches` and each result is yielded to the passed block.
          #
          # @example Print out the people's names by scrolling through the index
          #
          #     Person.find_each { |person| puts person.name }
          #
          #     # # GET http://localhost:9200/people/person/_search?scroll=5m&search_type=scan&size=20
          #     # # GET http://localhost:9200/_search/scroll?scroll=5m&scroll_id=c2Nhbj...
          #     # Test 0
          #     # Test 1
          #     # Test 2
          #     # ...
          #     # # GET http://localhost:9200/_search/scroll?scroll=5m&scroll_id=c2Nhbj...
          #     # Test 20
          #     # Test 21
          #     # Test 22
          #

But, in fact it will return
          #     # Test 20
          #     # Test 21
          #     # Test 22

Think that the problem in rewriting of 'response' var in find_in_batches.

@howtwizer Did you manage to solve this problem?

When someone is looking for it, Molly Struve wrote a great guide and solution:
After initial call:
loop do
  hits = response.dig('hits', 'hits')
  break if hits.empty?

  hits.each do |hit|
    # Process/do something with the hit or hits
  end

  response = Search::Client.scroll(
    :body => { :scroll_id => response['_scroll_id'] },
    :scroll => '1m'
  )
end


Prioritize and select four user stories for Sprint 1.

Related to #12

The four user stories are:
#10 #11 #12 #14


Update index.md

I've added a link to a blog post that offers tips for making better ADRs

I just added an additional resource

I checked the resources. I like it; especially chapter 12.
It is a pity that the ADR community seems to be split between the ones saying: concidered options are key to ADRs and the onces saying: naaah, who really cares about alternatives... (You see, I am biased)
The npryce-community somewhere said: if you need options, just create an ADR for each option, which I find to heavy weight. (And I dont' find that comment).
Note: the fork butonic/adr-tools supports MADR - see https://github.com/butonic/adr-tools/pull/2.


Alpha 9 .Deb libcec4 dependency on Ubuntu 20.10 Server

I installed the alpha 9 aarch64.deb, and it complains about not finding libcec4.
Seem to be similar to #1123 , which was already closed, but i reproduce the problem again.
Commands that are supposed fix it, do not work in my case.
sudo dpkg -i /path/to/hyperion_file.deb      installs hyperion claimiming missing dependencies.
sudo apt-get install -f        actually uninstalls hyperion

[x] I confirm that this is an issue rather than a question.

Bug report
Steps to reproduce
sudo dpkg -i Hyperion-2.0.0-alpha.9-Linux-aarch64.deb
What is expected?
hyperion installation
What is actually happening?
dpkg: dependency problems prevent configuration of hyperion:
hyperion depends on libcec4; however:
Package libcec4 is not installed.
System
5.11.0-odroid-arm64 #1 SMP PREEMPT Ubuntu 5.11.2-202103041610~groovy (2021-03-04) aarch64 aarch64 aarch64 GNU/Linux

https://github.com/hyperion-project/hyperion.ng/issues/1123#issuecomment-778756142


error: unrecognized arguments: 300 300 --custom_func_dir .

I encountered an error running the example in the readme,It looks like the parameters won't parse, I don't know how to modify the parameters to make them work correctly, or there's something wrong with the example.I use a linux system.

I modified the training parameter list and now it works, but I'm not sure if this modification fits the example in the author's article.

Thank you, when I use "pip install chemprop" installation chemprop come from https://github.com/chemprop/chemprop. I according to provide you "git clone - branch transfer_learning https://github.com/JLans/chemprop.git" installed chemprop again, now the error disappeared.


How can I upload a CSV file with non-UTF8 character set

A clear and concise description of what the bug is.
Expected results
upload success
Actual results
upload failed and I faced an error without any solutions
Screenshots

Unable to upload CSV file "11.csv" to table "11" in database "test". Error message: 'utf-8' codec can't decode byte 0xd4 in position 0: invalid continuation byte
How to reproduce the bug

Go to 'upload a csv'
Click on 'select a file.'
Scroll down to '....'
See an error

Environment
(please complete the following information):

superset version: 1.0.0
python version: python3.8
node.js version: node -v

Checklist
Make sure to follow these steps before submitting your issue - thank you!

[ ] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[ ] I have reproduced the issue with at least the latest released version of superset.
[ ] I have checked the issue tracker for the same issue and I haven't found one similar.

Additional [context]
Add any other context about the problem here.

@ethanhuang1009
Please check the CSV file enconding.

Do not use CSV file exported from Excel on Windows plantform, Excel exported CSV file encoding is utf8-with-bom.
The Superset only supports utf8 encoding CSV file import, so please carefully check the file encoding format.

This is a rough encoding issue,  in the future we can use some solution guess that file encoding.

@zhaoyongjie  Thanks you very much. I change the file encoding format from utf8-with-bom to utf8, then I can upload the file successfully. And I hope Superset can find and give us a better solution for the non-utf8 character set files in the near future.


Salt: don't assume that master => cbr-cidr

In particular, this is required for vagrant
@derekwaynecarr I needed to do this to get #9381 to work on vagrant, but it does now appear to work.  Not sure if vagrant should have a cbr-cidr on master?
@dchen1107 just in case we are deliberately introducing an error here to deal with a cbr0 race-condition?

LGTM - I can look to add the same grain to vagrant setup, but I think its safe to check usage of a grain value with its existence so this code is generally better to me.

LGTM, and thanks for fixing. I thought allocate_node_cidrs is not set for vagrant, so that --configure-cbr0 is set to false.

@dchen1107 who is a good second TL to review? @thockin ?

I viewed @derekwaynecarr as the TL on this area for sure. But you are right, I shouldn't break the process at this critical time. :-P @thockin please :-)

LGTM

Thank you!

(btw absolutely not questioning the authority of @derekwaynecarr :-) )

I have no authority :-)
Sent from my iPhone

On Jun 25, 2015, at 1:25 PM, Maxwell Forbes<EMAIL_ADDRESS>wrote:
(btw absolutely not questioning the authority of @derekwaynecarr :-) )
—
Reply to this email directly or view it on GitHub.


Please add FAQ about kitex template and generator parameters

Please add FAQ about kitex template and generator parameters.

Why user defined templates are not supported ？
Why is it not supported to automatically resolve IDL's suffixes and directly read go Module information in go.mod

Solved：

https://github.com/cloudwego/cloudwego.github.io/pull/197
https://github.com/cloudwego/cloudwego.github.io/pull/199


Release v0.2.2

Attempt a new release. With recent fixes we hope that publishing to open-vsx.org should work this time.

The following 1 GitHub releases will be created once this pull request got merged.
Release v0.2.2 with changes since v0.2.1

Release v0.2.2 bb2ff33
Use 'release' as workflow trigger to start publish job bf7ccd7
Use GitHub token from a committer in gh-release job 11e3188
Use trace server manager with Open Trace command 0846640


Search in playlist has some difficulties

Describe the bug
When you search in a playlist (to e.g. cue songs), the filtered list of songs don't persist.
To Reproduce
Search in a playlist.
Expected behavior
When searching, Enter should return the focus to the playlist instead of playing the hovered song. To clear the search, press / again and remove the search text.
Environment

OS: Arch
Application version: 0.14.0
Application features: -F notify,image,lyric-finder,pulseaudio-backend,streaming,media-control --no-default-features

Thanks for the awesome app!

This is intended behavior. Personally, I don't like the idea of "enter should return the focus to the playlist ... press / again and remove the search text".
The search popup only captures character inputs, so you can still use up, down, ctrl-{char}, etc to select filtered items in the playlist.

I noticed that too. How do you recommend doing things when wanting to queue multiple songs with the same search term? Because after entering the song's context menu, the search is reset.

Because after entering the song's context menu, the search is reset.

For add to queue, there is a command to do that: AddSelectedItemToQueue, so you don't need to go through the track menu. The command is binded by default to Z, which doesn't work well with search, so you'll need to bind a different key to the command. For example,
[[keymaps]]
command = "AddSelectedItemToQueue"
key_sequence = "C-z"

Then you can use ctrl-z to add an item to queue while keeping the search popup open.


Sprint X - Update Live STLTs on Public-Facing Pages

Problem Statement
As ReportStream Product, we need to keep our list of live STLTs up-to-date so that we communicate the state of our application to our current and prospective users and other stakeholders.
Acceptance Criteria

Update the list of live STLTs

To Do

[ ]

Too vague. Already accomplished some of it. Closing by committee decision. Will be re-assessed in future website improvement efforts.
@drew-usds @fmccaf1 @HeatherRienks @lizzieamanning


Changes to accomodate AWS Educate Starter Account

minor changes on front end styling
common problem fixes
Hi, this is my first pull request, and I'm still a newbie. Please correct me if I'm wrong...
Is it better to create an issue or a new branch?

Issue #, if available:
I am using AWS Educate starter account to follow this tutorial and there are several services that are not available for the starter account. List of services not available (I only did module 1-5):

NAT Gateway not available for AWS Educate Starter Account (#186 )
Fargate not available for AWS Educate Starter Account
Docker image build fail (#211 )
boto3 client required me to use the region_name parameter
Some parts of /module-3/app/service/mysfitsTableClient.py seem to be using python2.7 syntax

Description of changes:

I found a workaround for NAT Gateway by configuring NAT Instances on /module-2/cfn/core.yml
For Fargate, created an ECS cluster using EC2 Linux. Because of time constraint for my assignment, I have not found a way to write a cloudformation template for this and decided to do it on the console instead. I made appropriate changes on /module-2/aws-cli/task-definition.json and /module-2/aws-cli/service-definition.json to support ECS with EC2.
This thread recommends using pip3 and python3 on Dockerfile
For boto3 client, add the region name parameter

client = boto3.client('dynamodb', region_name='REGION_NAME')

Changed the print statements on /module-3/app/service/mysfitsTableClient.py into python3 syntax

Update:
(13 Aug 2020) NAT Gateway is now available for AWS Educate Starter Account, feel free to use the cloudformation template provided by the lab!
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Silviana,
Thank you for your hard work. I am a teacher who also uses educate starter accounts with my students.
Do your adaptations work?
What steps should I take to be able to use your version?

Silviana,
Thank you for your hard work. I am a teacher who also uses educate starter accounts with my students.
Do your adaptations work?
What steps should I take to be able to use your version?

Thanks for submitting this, I believe we should target having a new branch created for the AWS Educate account types.  We'd like to accomodate the audience and constraints on those accounts, but want to leave the "general" branches following the full functionality available on the platform.  I'll reply again when we have a new branch created that these changes can target. Thanks again for taking the time here!


chore(adapters): Add paginate to get partitions

Context: Boto3 Glue client skip deleting of some partitions during incremental build in insert_overwrite mode, because Glue catalog now use pagination in API so large number of partitions will be distributed on different page.  And the current code is only for the first page.
Update: Add a paginator to go through all page to get the partition.

Source where i get the fix: https://github.com/dbt-athena/dbt-athena/blob/main/dbt/adapters/athena/impl.py


Not working.

It types the word but it is wrong as if the image was updated or something. So I regenerated the DB and that did nothing to fix it. It appears with this update they patched most of everything. Even tho the regenerated DB wasn't the correct text to image, say if said "Data" the image would be "init" which i understand why it would, the images from updated DB and older DB were the same.

We have a PR (#17) that should resolve this issue.


Collect all .xcdatamodeld instead of only .xccurrentversion

Follow up to https://github.com/bazel-ios/rules_ios/pull/747 and https://github.com/bazel-ios/rules_ios/pull/748.
Noticed that some files were not being copied into the bundle correctly if we collect only the .xccurrentversion in the datamodels attribute. So collecting all files under the .xcdatamodeld directory instead.
Specifically, from this PR's branch, you can see the issue by building this target
bazel build tests/ios/app:AppTestOnly --define=apple.experimental.tree_artifact_outputs=1

and noticing how there's an additional .momd file being placed at the root of the app bundle (it happens with .xctest bundles too). This file is a duplicate of the .momd that is placed under the SomeDependency.bundle directory.
This PR specifically ensures we're packing the bundles the same way as before while exposing data model files in the datamodels attribute of the AppleResourceInfo provider.
Before:

After:

... this is not right. This is changing things in the bundle still and that's not the intent. This test
bazel test //tests/ios/frameworks/core-data-resource-bundle:CoreDataExampleTests

was 🟢 before and is 🔴 in this PR.
I'll revisit my approach for this .xccurrentversion story and propose a better change or consider fixing this directly in rules_xcodeproj. Closing for now and sorry for the noise 🤦♂.


feat: studio docs, other updates

Summary
Added docs for the Studio web app and CLI. Also, a number of cleanups are included (wagmi updates, better quickstarts, etc.).

@joewagner I had a bit of trouble with some of the CLI commands. Particularly, the team and project subcommands for add and create as well as the import-data command. I added some observations in this doc at the bottom, but it's possible I was using them incorrectly. I've still included them in the docs but they might need adjusting in case I was in fact wrong in the suage.

@joewagner I had a bit of trouble with some of the CLI commands. Particularly, the team and project subcommands for add and create as well as the import-data command. I added some observations in this doc at the bottom, but it's possible I was using them incorrectly. I've still included them in the docs but they might need adjusting in case I was in fact wrong in the usage.

@dtbuchholz this notion doc is awesome, thanks for going through all of this.  The teamandprojectsubcommands foraddandcreate` aren't quite finished, I'll get them going asap.  We didn't prioritize since you can do those things via the website.
The import-data command does currently require a project id, i.e. we don't support using the universally unique tableland table name.  This might be the wrong approach, but so far the cli is designed to interact with an existing studio project or not at all.
With that said it would be really easy to setup an internal package that exposes the import logic and this cli and the tableland cli could both have import commands.

@joewagner ah that's right...i think you had mentioned those commands don't work. removed em, for now.
okay cool, i think these should be good to go now!
one thing—i wasn't actually able to get import-data to work. context here.

@sanderpick can i get a 👍 once more? removed the import-data command


.NET 5 (.net 2.0 standard) - confilcts in nuget packages

Found conflicts between different versions of "System.Numerics.Vectors" that could not be resolved.
 There was a conflict between "System.Numerics.Vectors, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" and "System.Numerics.Vectors, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
     "System.Numerics.Vectors, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was chosen because it was primary and "System.Numerics.Vectors, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was not.
     References which depend on "System.Numerics.Vectors, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Numerics.Vectors.dll].
         ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Numerics.Vectors.dll
           Project file item includes which caused reference "ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Numerics.Vectors.dll".
             System.Numerics.Vectors
     References which depend on "System.Numerics.Vectors, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [].
         pc\.nuget\packages\stereokit\0.3.2\lib\netstandard2.0\StereoKit.dll
           Project file item includes which caused reference "pc\.nuget\packages\stereokit\0.3.2\lib\netstandard2.0\StereoKit.dll".
             pc\.nuget\packages\stereokit\0.3.2\lib\netstandard2.0\StereoKit.dll

I have seen this message pop up before, but it hasn't blocked anything or caused problems for me yet. Is this behaving as a blocker on .NET 5?
I'm still going to look into this at some point, but if it's blocking you, then I'll definitely prioritize it for sooner rather than later!

Hi, it's not something that blocks, but I don't know what's really going on in the application / game. Which library versions are loaded and how it affects the size of the application and compatibility with the new .NET 5. This is not the highest priority, but you will have to take care of it.

Ok, great! I'll look into this for the next update :)


Make system_user "stanley" configurable

Currently the system_user is hard-coded to be "stanley". However, people can use a custom st2actionrunner image that does not have "stanley", and instead has some other user that StackStorm should use.
This PR allows us to inform helm about the alternate user, removing the hard-coded references to the "stanley" user.

make system_user/stanley configurable
changelog entry

This builds on #219. I will remove this from "draft" mode once #219 is merged.


Error compiling Unicode escape sequence

uglifier-1.2.1 can't compile the following JavaScript code:
var str = "\u201E";

My environment:
ruby_1_9_3-r34209
multi_json-1.0.4
execjs-1.2.13
uglifier-1.2.1
The complete session log (paths in backtrace trimmed):
$ cat pr1.js
var str = "\u201E";
$ irb
irb(main):001:0> require 'uglifier'
=> true
irb(main):002:0> Uglifier.new.compile(File.read("pr1.js"))
MultiJson::DecodeError: 387: unexpected token at '"var str=\"\""]
'
        from /opt/ruby_1_9_3-r34209/lib/ruby/1.9.1/json/common.rb:148:in `parse'
        from /opt/ruby_1_9_3-r34209/lib/ruby/1.9.1/json/common.rb:148:in `parse'
        from /[...]/gems/multi_json-1.0.4/lib/multi_json/engines/json_common.rb:9:in `decode'
        from /[...]/gems/multi_json-1.0.4/lib/multi_json.rb:76:in `decode'
        from /[...]/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:61:in `extract_result'
        from /[...]/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:27:in `block in exec'
        from /[...]/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:40:in `compile_to_tempfile'
        from /[...]/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:26:in `exec'
        from /[...]/gems/uglifier-1.2.1/lib/uglifier.rb:101:in `compile'
        from (irb):2
        from /opt/ruby_1_9_3-r34209/bin/irb:12:in `<main>'
irb(main):003:0>

The problematic Unicode character is a "low double comma quotation mark" (http://www.unicode.org/charts/PDF/U2000.pdf). I stumbled upon this by uglifiing a tiny_mce.js from https://github.com/spohlenz/tinymce-rails/blob/master/assets/vendor/tinymce/tiny_mce.js#L1238 (TinyMCE 3.4.7) - see code block starting at line 1238, "asciiMap" variable).

I can't replicate this with the same set of gems (although I'm running Ruby 1.9.3-p0) :( I tried with different LANG/LC_ALL environment variables but they didn't change anything. Even TinyMCE was minified correctly in my testing.
Uglifier should be able to handle Unicode characters. UglifyJS replaces escaped code points with the real character and saves few bytes the process. This can cause problems if some part of the system isn't able to handle UTF-8.
The only remotely related thing I found out was that MultiJson.decode('"var str=\"„\""') fails when :json_gem is used as MultiJson.engine, but works when yajl-ruby is used.

hmmm :(
Unfortunately, with yajl-ruby I am also getting an error:
$ irb
irb(main):001:0> require 'uglifier'
=> true
irb(main):002:0> Uglifier.new.compile(File.read("pr1.js"))
MultiJson::DecodeError: lexical error: invalid character inside string.
                       ["ok","var str=\"\""]
                     (right here) ------^

        from /[...]/gems/multi_json-1.0.4/lib/multi_json/engines/yajl.rb:10:in `parse'
        from /[...]/gems/multi_json-1.0.4/lib/multi_json/engines/yajl.rb:10:in `decode'
        from /[...]/gems/multi_json-1.0.4/lib/multi_json.rb:76:in `decode'
        from /[...]/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:61:in `extract_result'
        from /[...]/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:27:in `block in exec'
        from /[...]/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:40:in `compile_to_tempfile'
        from /[...]/gems/execjs-1.2.13/lib/execjs/external_runtime.rb:26:in `exec'
        from /[...]/gems/uglifier-1.2.1/lib/uglifier.rb:101:in `compile'
        from (irb):2
        from /opt/ruby_1_9_3-r34209/bin/irb:12:in `<main>'
irb(main):003:0>

Could you give me a hint, where is the replacing of escaped code points with the real characters done? Thanks.

UglifyJS first parses the source to AST and then generates code from it.
https://github.com/mishoo/UglifyJS/blob/master/lib/parse-js.js#L397
https://github.com/mishoo/UglifyJS/blob/master/lib/process.js#L1373
By the way, what JS runtime are you using? I used Node for testing, therubyracer have also worked well for me. I haven't tried with Spidermonkey.

I was using spidermonkey-1.8.0rc1. As the error goes away when using nodejs-0.4.7, I'd call this issue solved. :-)
Thanks for the help!

Ok, good to know. I'll try to find out if there's anything which can be
done to make non-ascii characters work with Soidermonkey.
On Friday, January 6, 2012, r-stu31 <
<EMAIL_ADDRESS>wrote:

I was using spidermonkey-1.8.0rc1. As the error goes away when using
nodejs-0.4.7, I'd call this issue solved. :-)
Thanks for the help!

Reply to this email directly or view it on GitHub:
https://github.com/lautis/uglifier/issues/24#issuecomment-3387794


Automatic map tile export capability

This adds the ability to, if configured to do so, export the map tile to a specific file location when the region detects that the map has been changed.  That file location could be on a network share to the map server, or another tool could be used to copy the files to the map server, where they can then be digested by the supertile generation system (cough, Anaximander, cough) to create the full map set.
The code has been written to accept existing Halcyon.ini configurations.  Such legacy configurations will simply result in this new system being not activated.  To be  clear: updating a region to a version with this patch does not require changing the existing Halcyon.ini.  Only if you want to activate map exporting will you need to change the INI.
Please note that there has been a purposeful semantic change: only non-temp non-physical objects are now part of the map rendering.  The idea being that objects that are flagged physical and/or temporary are transient and therefore shouldn't be part of a "map" anyway.

Included the optimization that makes the process significantly faster.

This PR looks good to me, pending good answers to the following:

Is there a plan to have MinimumTaintedMapTileWaitTime in the ini file?
  It's important that these never collide as it could cause a backlog in the FireAndForget threads.

I'm thinking it might be good to ensure a minimum minimum that should be capable of always exceeding the longest time for a ExportMapTileToDisk call.  That's probably only seconds but the minimum time is specified in seconds so someone putting a 1 in there could result in bad juju. ;)  Maybe it should ensure a minimum of 10 minutes between these calls or something like that.

Already there, but commented out as it sets the default:
;MinimumTaintedMapTileWaitTime = 3600
MaximumTaintedMapTileWaitTime is set with a "sane" value as it has a
default of 0 = "every time the map is tainted".
I did a worst-case test on my Linux box, and the regions handled it -
however it really put a strain on the machine, and the region only had a
few scripted object and only one avvie.  As this is set by the
administrator of the grid, I didn't want to initially limit the minimum
other than make sure it was not negative.  My thoughts were: if the
sysadmin want to kill his server, just make sure he's been warned. :D
On Wed, Jul 20, 2016 at 1:33 PM, Jim Tarber<EMAIL_ADDRESS>wrote:

This PR looks good to me, pending good answers to the following:

Is there a plan to have MinimumTaintedMapTileWaitTime in the ini
file?
 It's important that these never collide as it could
cause a backlog in the FireAndForget threads.

I'm thinking it might be good to ensure a minimum minimum that should
be capable of always exceeding the longest time for a ExportMapTileToDisk
call. That's probably only seconds but the minimum time is specified in
seconds so someone putting a 1 in there could result in bad juju. ;) Maybe
it should ensure a minimum of 10 minutes between these calls or something
like that.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/InWorldz/halcyon/pull/235#issuecomment-234073407, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABGoaBuz6ntkRcgqcEKU_W0IycQiLHrJks5qXoYhgaJpZM4I-M89
.

I don't follow, because these comments seem self-contradictory. What is the default, is it 3600 or 0? If it's 3600, I think this PR is good to go.

Already there, but commented out as it sets the default: ;MinimumTaintedMapTileWaitTime = 3600

MaximumTaintedMapTileWaitTime is set with a "sane" value as it has a default of 0 = "every time the map is tainted".

Is this not new code (the default in previous releases was to never do this)? So the administrator doesn't know this is coming and the default should be to either not do this at all or do it infrequently enough so as to not add load to the system.
I'm not actually all too concerned with load, although that is a concern. What I'm worried about is every change causing a new thread to be added and blocked on the Monitor lock and a backlog in FireAndForget threads created that just builds and builds.  If every prim change, terrain edit, etc,  immediately fires up a new thread (by default), we have a serious problem here. If it only checks once every 3600 seconds, it's not a problem at all.
I think a default of 3600 seconds is good.  If that is what it is, then this PR is in good shape. If it's 0, that needs to change.
Separately, I thiunk we should probably also have a hard minimum of something like 60 seconds (or even longer if map generation could take longer than that).

As noted in the INI file diff comments, unless RegionMapTileExportFilename is set - which it is not by default - none of the core of the new code is operational especially none of the disk writes.   Thus no surprises for existing regions or grids.
I think there's some confusion here, and it may be due to the simplistic naming of the entries.  While MaximumTaintedMapTileWaitTime and MinimumTaintedMapTileWaitTime are simple handles that a sysadmin can comprehend easily, they are not treated directly as max and min in the code.  From a developer's POV the "Min" means "the amount of time needed to pass before allowing a disk write of the map tile" while "Max" means "the interval in seconds that a timer should check to see if the map has been tainted and that Min time has passed."
Thus if Max < Min, it simply means a timer will be firing faster than it really needs to be, but most of the time it'll be just hitting a falsy if statement and dropping out immediately.  If Max == 0, then the timer never fires.  If Min == 0, then every map taint will initiate a F&F for the purpose of doing the disk write.  However if there is already a F&F disk write in progress, then the new F&F fails the TryEnter call and aborts out rapidly.  These files are small: 256x256px JPEG images.  They write fast to local disks, and fairly fast to network disks.  A network disk could take a long time to fail/succeed, in which time multiple F&F's could have hit the lock and aborted - not a huge waste as hitting the lock and aborting is VERY fast.
Now, the value given to "Min" in the sample INI is not the "default" - where default means what the code will assign if you do not give a value.  It is instead a casual recommendation, and a reasonable starting point for those who want to try and experiment with activating this block of code.
Map generation takes milliseconds on my test region.  I do want to do an insanity test though: what happens if the space from ground level to ground level + 256 if filled to region capacity with prims that are 1x1x1 meter or larger?  How long does it take?  I'll see if I can run a test on that! :D

Constants - they vary from run to run:

Generating terrain image takes 40 ms.
Encoding image as JPEG2000 takes 40 ms.
Attempting to save to asset server, and failing, takes 100 ms.
Disk write of map tile to my platter disk takes 40 ms.

There are two speed tests at two object counts: I have the code as-is in this patch, and the code after an as-yet unreleased optimization to the drawing code; I also have two object count extremes.
Code as-is, 11 objects in drawing area: 1 ms.
Code optimized, 11 objects in drawing area: 1 ms.
Code as-is, TODO objects in drawing area: TODO ms.
Code optimized, TODO objects in drawing area: TODO ms.
(I will be editing this comment with the high prim count results as soon as I can - ran out of time tonight)

Thus if Max < Min, it simply means a timer will be firing faster than it really needs to be, but most of the time it'll be just hitting a falsy if statement and dropping out immediately. If Max == 0, then the timer never fires.

I wasn't concerned about anything to do with the Max value, only where Min < time to process. However...

If Min == 0, then every map taint will initiate a F&F for the purpose of doing the disk write. However if there is already a F&F disk write in progress, then the new F&F fails the TryEnter call and aborts out rapidly.

When I first reviewed this, I missed the fact that it was a **Try**Enter which is why the minimum time mattered greatly.  Now that you've pointed out that it is a conditional Enter, that significantly lowers my concerns.
That said, I am still concerned by the low minimum (0 in this case).  We really don't need to ever support such low numbers, and I don't really see any value at all in supporting a minimum time of 0. Almost any larger value avoids any hint of a problem.
Let me spell out my concern, even with the TryEnter: A value of 0 in a fast-changing region effectively means tight loop, and if changes occur at a rate that is faster than the time to process, a full CPU could still be used.  If changes happened only every 100ms, and processing took 50ms, we could see 50% CPU usage.  (And 10 changes per second is very low compared to what we've seen.)  In a region where there are moving objects and other changes, this could cause a lot of thread use just firing up the FireAndForget handlers that did nothing much. I really think the minimum should be limited to at least a minute, preferably something more like 10 minutes. And it certainly shouldn't be the default to 0, as we know that will be shorter than the processing time.

I didn't really understand the answer to this:

What is the default, is it 3600 or 0? If it's 3600, I think this PR is good to go.
So I checked the code again and it looks like the default is 3600, not 0:
private TimeSpan minimumMapPushTime = new TimeSpan(1, 0, 0);
and as long as the Max default of 0 doesn't cause that to change, and this code:

int pushTimeSeconds = Math.Max(0, worldmapConfig.GetInt("MinimumTaintedMapTileWaitTime", (int) minimumMapPushTime.TotalSeconds));
minimumMapPushTime = new TimeSpan(0, 0, pushTimeSeconds);

So if that ends up with 3600 in pushTimeSeconds by default, then I think the defaults are all good.
However, since it is configurable, I'd like to see a minimum non-zero value enforced for that pushTimeSeconds (which is basically a minimum for MinimumTaintedMapTileWaitTime) so that administrators can't shoot themselves in the foot.  Unless they install all the .PDB files and know how to pull stack traces on all threads and understand what they mean, this could result in a nasty performance problem that is difficult to diagnose.  Avoiding that is as easy as adding a check for pushTimeSeconds' value after it fetches MinimumTaintedMapTileWaitTime. How does a hard 1 minute limit sound for that?  (Do we really need to push updated maps more frequently than once per minute?)

60 seconds as a hard limit for Min sounds good to me.

All looks good, thumbs up on the PR. Ready for merge.

As of Anaximander 2 this becomes a moot point for me: Anax2 generates the map tiles itself and does a better job at it.  Maybe it'd help someone, but for now I'm just closing the PR as my purpose for this is gone.  At some point I'll get Anax2 server mode working and submit a PR to connect regions to that for nearly-live map updates, but that won't be this code.


Do not show messages when file was read from standard input

When running black - messages - already well formatted, good job. and reformatted - should not be shown.

You can simply use 2>/dev/null in this case, no?

Well, I have two problems here. I use this in the Emacs package to format current file "in memory".
If the buffer contains correct python source, I want to substitute current content with the black output. In this case, redirect to /dev/null helps.
If the buffer contains code with a syntax error, I want to show error output in the separate editor window. In this case, redirect to the /dev/null will hide the actual error.
But if I keep stderr as is, in the normal case source code buffer will contain status messages for successful or skipped formatting.

How about this: redirect stderr to /tmp/black_last.log and only show it if the exit code != 0?
Sorry I'm pushing back on changing this. I'm just sure people will just want increased controls over output if I ever agree to this. I'd rather see this handled the UNIX way.

Seems reasonable. I don't want to open Pandora's box just to be useful in rare cases.
Thanks again!

@ambv have the same problem with vim and neoformat, can't we add some option like --quiet as in isort or --silent to prevent outputting any messages from black?

Hi @kalekseev
I figured out how to split stdout and stderr into different emacs buffers. It's implemented via a pipe from stderr and actually, there are two processes. Probably Vim has the same possibility.
I agree with @ambv not to add this flag because it increases maintenance support and open questions for a lot more configuration. If it is possible to solve this without changing black itself we should try to do so.
As far as I know vim support python as a scripting language. Probably this can help, but it probably depends on vim compilation details. Like against what python version it was compiled?
Regards, Artem.

Hi @proofit404, yes it's not that hard to read the stdout only, my question is more about convenience. Almost all formatters that I worked with have some sort of that option and I think it could improve user experience with black, because you can run black --help and see solution for your problem.
Otherwise user should know about stdout/stderr check how it can be integrate with his editor, etc..
BTW for neoformat I used
let g:neoformat_python_black = {
            \ 'exe': 'black',
            \ 'stdin': 1,
            \ 'args': ['--line-length', '110', '-', '2>/dev/null'],
            \ }

Thanks for the project @ambv!

Isn't stdout and stderr knowledge is obvious for users of the command line?

@proofit404  If you ask me then I don't think so, also output from black looks similar (no colors for example) so to start thinking about piping user should find that the messages and output goes to different pipes.
BTW I created pr with black support for neoformat https://github.com/sbdchd/neoformat/pull/150
also out of curiosity checked how much formatters in neoformat rely on stderr to /dev/null redirect
$ rg '/dev/null'

autoload/neoformat/formatters/haskell.vim
16:        \ 'args': ['2>/dev/null'],

autoload/neoformat/formatters/ruby.vim
23:        \ 'args': ['--auto-correct', '--stdin', '%:p', '2>/dev/null', '|', 'sed "1,/^====================$/d"'],

Don't just put 2 to /dev/null. If Black fails, it will display potentially helpful errors there. Is it possible to redirect output and only show it if return code is not 0?
It seems to me like neoformat and other similar frameworks should do that by default. @kalekseev, how many plugins in neoformat today use a variant of --quiet?

Don't just put 2 to /dev/null. If Black fails, it will display potentially helpful errors there. Is it possible to redirect output and only show it if return code is not 0?

This is why Unix tools conventionally have a quiet mode that avoids all non-error output (in fact the classic Unix way would be to have that mode be the default, but I'm not fussed about that); because at this point it's no longer a matter of a simple redirection, it requires logic, and not every integration framework is going to make that easy.
I think black should have a --quiet option that avoids all output except in case of failure.

@ambv

Is it possible to redirect output and only show it if return code is not 0?

as far as I know it's not possible in neoformat right now

how many plugins in neoformat today use a variant of --quiet?

$ rg "silent|\-q(uiet)?"

I haven't considered Windows before (Black standardizes newlines to \n) but this might be a reason to support --quiet after all. Sigh. Let me see how this behaves on Windows.


[impeller]: antiAliasWithSaveLayer is not working as expected while running with impeller.

Steps to Reproduce

Execute flutter run --enable-impeller on the code sample.
Check the output on the iOS simulator or device.
Comment out the marked line and hot-restart. The appearance will be as aspected.

Expected results:
Actual results:

In the attached video.

Code sample

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Container(
              alignment: Alignment.center,
              child: const Card(
                elevation: 4,
                semanticContainer: true,
                clipBehavior: Clip.antiAliasWithSaveLayer, // This line
                shape: StadiumBorder(),
                child: SizedBox.square(
                  dimension: 45,
                  child: Padding(
                    padding: EdgeInsets.all(8),
                    child: CircularProgressIndicator(
                      strokeWidth: 3,
                      valueColor: AlwaysStoppedAnimation<Color>(Colors.red),
                    ),
                  ),
                ),
              ),
            )
          ],
        ),
      ),
    );
  }
}

Logs
Output of running flutter doctor -v
[✓] Flutter (Channel stable, 3.7.7, on macOS 13.0.1 22A400 darwin-arm64, locale en-IN)
    • Flutter version 3.7.7 on channel stable at /Users/dhruvin/Developement/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2ad6cd72c0 (4 days ago), 2023-03-08 09:41:59 -0800
    • Engine revision 1837b5be5f
    • Dart version 2.19.4
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/dhruvin/Library/Android/sdk
    • Platform android-33, build-tools 32.1.0-rc1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14B47b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Community Edition (version 2022.1.4)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 70.2.4
    • Dart plugin version 221.6008.17

[✓] VS Code (version 1.76.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.60.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.0.1 22A400 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 108.0.5359.124

[✓] HTTP Host Availability
    • All required HTTP hosts are available

Behaviour difference between the Impeller and Skia.

      With impeller

      Without

I can reproduce the issue using the code sample provided above. It does appear to be an issue with only Clip.antiAliasWithSaveLayer. See the recording below.

recording
https://user-images.githubusercontent.com/88313112/224646547-f303ee49-fc81-4fd7-b4c6-3fc0b96d0714.MP4

code sample
import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      home: MyHomePage(title: ''),
    ),
  );
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  Clip _clip = Clip.antiAliasWithSaveLayer;

  void changeClip() {
    const clips = Clip.values;

    setState(() {
      _clip = clips[(_clip.index + 1) % clips.length];
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('behaviour: $_clip'),
            Container(
              alignment: Alignment.center,
              child: Card(
                elevation: 4,
                semanticContainer: true,
                clipBehavior: _clip, // This line
                shape: const StadiumBorder(),
                child: const SizedBox.square(
                  dimension: 45,
                  child: Padding(
                    padding: EdgeInsets.all(8),
                    child: CircularProgressIndicator(
                      strokeWidth: 3,
                      valueColor: AlwaysStoppedAnimation<Color>(Colors.red),
                    ),
                  ),
                ),
              ),
            )
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: changeClip,
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel stable, 3.7.7, on macOS 13.2.1 22D68 darwin-arm64, locale en-GB)
    • Flutter version 3.7.7 on channel stable at /Users/nexus/dev/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2ad6cd72c0 (5 days ago), 2023-03-08 09:41:59 -0800
    • Engine revision 1837b5be5f
    • Dart version 2.19.4
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] Android Studio (version 2022.1)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] IntelliJ IDEA Community Edition (version 2022.3.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 72.1.4
    • Dart plugin version 223.8888

[✓] VS Code (version 1.76.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.60.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.2.1 22D68 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 111.0.5563.64

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[!] Flutter (Channel master, 3.9.0-1.0.pre.164, on macOS 13.2.1 22D68 darwin-arm64, locale en-GB)
    • Flutter version 3.9.0-1.0.pre.164 on channel master at /Users/nexus/dev/sdks/flutters
    ! Warning: `flutter` on your path resolves to /Users/nexus/dev/sdks/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutters. Consider adding /Users/nexus/dev/sdks/flutters/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/nexus/dev/sdks/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutters. Consider adding /Users/nexus/dev/sdks/flutters/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 9ba0d08ebc (27 hours ago), 2023-03-12 00:16:19 -0500
    • Engine revision 57f7120ef9
    • Dart version 3.0.0 (build 3.0.0-322.0.dev)
    • DevTools version 2.22.2
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] Android Studio (version 2022.1)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] IntelliJ IDEA Community Edition (version 2022.3.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 72.1.4
    • Dart plugin version 223.8888

[✓] VS Code (version 1.76.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.60.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.2.1 22D68 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 111.0.5563.64

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.


Using a remote hbase/zookeeper cluster

More of a question - most of the references require the installation of this module to connect to a local zookeeper instance.   Can it connect to a remote hbase/zookeeper instance

Yes, you can connect to any accessible remote zookeeper/hbase.


column name should be "secret"

I think the example column should be "secret" to match the table created in the example.

FYI @sfc-gh-ngaberel re: https://github.com/Snowflake-Labs/terraform-provider-snowflake/pull/1739
Thanks for adding this! Excited to start using it.


Rename test components

Renamed network test components
test io-sim-classes with github-actions

bors merge


Remove linter related code from other project

I reconsidered the current situation and nobody likes spreading linter and config files in every project, since stylelint, eslint, jscs(was eaten by eslint project, we should drop it in the near future) already offered great global command line interface tools:

stylelint.
eslint.
jscs.

We can install them globally, put all config files into one place - your home folder, centralizing configs makes maintenance much easier.
In each project, we can drop the juwai-lint-cfg npm package in package.json and grunt/gulp/webpack linter plugins, just put eslint  EXAMPLE, stylelint EXAMPLE in your git hook pre-commit script.

I have a few questions after reading the issue, let me know if I misunderstood something:

Can we list the arguments against having the rc files in each repository?
When you write We can install them globally, is that every developer’s responsibility to do so? How do we ensure people have the latest revisions of the modules and configuration in their repository?
How do we lint the code with Travis-CI (or any other continuous integration tool)?

Thanks for reply.

Can we list the arguments against having the rc files in each repository?

The code style should be consistent across all the company projects(ideally), the the easiest way to achieve that is put config file into one centralized place, so that we can more easily maintain it, for instance if we made an update for .stylelintrc config file in this repo and need update it for each project, assuming each project has it's own .stylelintrc, how many PRs we gonna have for updating them? but with centralized .stylelintrc, developer just need update one .stylelintrc in their home folder, and updating could be done by one command $ curl -o ~/.stylelintrc https://raw.githubusercontent.com/juwai/juwai-lint-cfg/master/.stylelintrc.

When you write We can install them globally, is that every developer’s responsibility to do so?

No, it's not, if you are not a front-end developer, and don't have ESLint/stylelint/jscs installed, the git hook will skip linting front-end files in your local.

How do we lint the code with Travis-CI (or any other continuous integration tool)?

Basic it's same as before.

Download latest linter configurations from this repo.

This could be done with a simple curl commands, e.g:
Get the latest stylelintrc config: $ curl -o ~/.stylelintrc https://raw.githubusercontent.com/juwai/juwai-lint-cfg/master/.stylelintrc

Install linters

$ npm install -g stylelint

Lint it!

$ stylelint public/assets/css

How do we ensure people have the latest revisions of the modules and configuration in their repository?

Previous answer has maintained that Travis-CI  always downloads the latest configs/tools, if your local configs/tools were out of date, you probably won't pass the CI check, that ensures/forces you update your local configs/tools, with centralized configs and globalized linting tools, you don't need touch any project related code, pretty simple.

Closing this PR, achieved this purpose in https://github.com/juwai/eslint-config-juwai and https://github.com/juwai/stylelint-config-juwai


Tint

https://www.tint.ai/

Fixed in https://github.com/jplock/awesome-fintech/commit/8abc238bbf2378cde9a322dc6ad164f0d5cbea70


Broken Links from Chrome Web Store to Github Repo

The detail page on the CWS has 2 404's, both "from Chrome App Samples" under the title & the "Website" link in the description point to "https://github.com/GoogleChrome/chrome-app-samples/tree/master/gdrive" instead of https://github.com/GoogleChrome/chrome-app-samples/tree/master/samples/gdrive

Thank you really much!
I've just updated it the CWS page at https://chrome.google.com/webstore/detail/drive-sample/jpabeekbjicamajjcfejnochhmlbpgjh


Stop template engine from render a block

What problem does this feature solve?
If there was a way to stop template compiling from rendering a block in parent Vue instance and instead let another Vue instance or some other template engine do the job like what Django template engine does using verbatim tag. In my case I want to use many Vue instances inside a page and they might be nested. Note that I can't use components because the page is divided into fragments and rendered from different places.
What does the proposed API look like?
I don't know an exact and clean way but I was thinking of something like Django verbatim

I think that would result in a lot of code due to the way current virtual dom works. But you can still do something similar if you "transform" your vue apps in custom elements. Then each app will be scoped to it's own shadow dom.

custom elements doesn't solve the problem unless I use ignoredElements of Vue config.

I'd just avoid mixing templates like this - instead, mount the other instance (with in-js template string) onto an empty element. Either way, I don't think we'd add such an API because the use case is way too niche.


Enable CoffeeScript

Good to merge.

Why CoffeeScript? Why not all the languages?

@gylaz, because it came up here. We can enable other stuff in a different PR.


noSlotBoundsIntersect should check strict inequality

Originally from https://github.com/input-output-hk/ouroboros-network/pull/4341#discussion_r1101447839. We consider the DiffSeq module in this issue.
In definitions like extend and append, noSlotBoundsIntersect ensures that the diffs in a diff sequence have slot numbers that are montonically increasing across the sequence. Currently, noSlotBoundsIntersect checks for non-strict inequality. However, we would like to check for strict inequality, since we expect to see only one adopted block (and consequently, one adopted diff) per slot. However, Epoch Boundary Blocks from the Byron era violate this strict inequality. We should investigate whether we can use a different measure, like Points, that are strictly increasing.
-- FIXME(jdral): It should be the case that there is a strict inequality, but
-- EBBs violate this. Should we use something else instead of slots? Points?
noSlotBoundsIntersect :: SlotNoUB -> SlotNoLB -> Bool
noSlotBoundsIntersect (SlotNoUB sl1) (SlotNoLB sl2) = sl1 <= sl2

Note: there are two other places where a non-strict equality is used even though we would want to use strict equality. These are the bsWrite functions for the TVar backing store implementation, and the LMDB backing store implementation. See

I'm fairly certain we would have to do #2156 first, before we can check strict inequality.


Initialize DNS Pod Service for ID Localization.

Addresses https://github.com/kubernetes/website/issues/15341 and https://github.com/jk8s/sig-docs-id/issues/18

/cc @kubernetes/sig-docs-id-reviews

/assign

@irvifa any update on this?

@girikuncoro updated, sorry for my delay 🙇

@irvifa  sorry for delay from my end as well, thank you for your continuous contribution to Kubernetes docs 🎉
/lgtm
/approve


Limit amount of RAM that dcm4chee can take up

The arc container tends to take up around 650 MB of RAM. Limit it to 500 MB. We can increase it if it seems unstable.

This is no longer needed due to #1425. Closing.


Add content-delivery-repo export/import sub-commands.

JIRA: PDC-1917

Coverage increased (+0.06%) to 89.849% when pulling 4a5c4f3ad5c436288e6dd5c060e92a99e7ec7a78 on hluk:PDC-1917_content-delivery-repo-export-import into 2f6ef7db5dff3453d0f04bbc9a236bcfde690b83 on product-definition-center:master.

:+1:

+1 (since it's really not mine change)


fix(CX-3180): Update Collector Profile logged-out experience

The type of this PR is: Fix

This PR solves CX-3180
Description
This PR updates the logged-out experience of the Collector Profile
Screenshots

Desktop
mWeb

Demo
https://user-images.githubusercontent.com/20655703/211595077-a7a6b43d-b08c-490d-8a82-e1f77865c87d.mov

Can you also make sure that the redirect after the user logs in takes you to the collector profile (my collection) once the user logs in with the feature flag enabled

@MounirDhahri The current implementation is to send the user back to the page they came from, but I'll update it to redirect to /collector-profile/my-collection after logging in 👍

no need to, we can keep redirecting them to where they started ;)

LGTM feel free to merge

Actually, you're right, maybe we should have the code after enabling the feature flag, with the current setup before releasing the feature, the user would log in and be redirected to an empty page, I'll move the check after the feature flag check 🌟


Designer git commit forces file rights

Describe the bug
All the tracked files are forced and committed without execution rights. i.e. mode 755 resets to 644
To Reproduce
Steps to reproduce the behavior:

have git shared project
have some file UNRELATED to insomnia / OUTSIDE .insomnia folder with execution right tracked into git
change something in an insomnia request/record, then commit and then push

Expected behavior
only .insomnia files are touched
Desktop (please complete the following information):

OS: MS Windows10
Installation Method: installer from insomnia website
App Version 2020.2.0

Hi @skiat
Have you been able to reproduce this issue with our latest release: https://github.com/Kong/insomnia/releases/tag/core%402022.6.0-beta.2?

Hi @skiat
Have you been able to reproduce this issue with our latest release: https://github.com/Kong/insomnia/releases/tag/core%402022.6.0-beta.2?

Hello kreosus, thanks for your message, unfortunately this bug and the other I posted in the same period did not allow my company to proceed with this version of insomnia. So I did not try it ever again. We are using an insomnia sync with a team account which is doing what we need 😉


Nested LXD virtualization in peer containers causes vsock ID conflicts

Required information

Distribution: Ubuntu
Distribution version: 22.04 "Jammy"
The output of "lxc info" or if that fails:

Kernel version: 5.19.0-35-generic
LXC version: 5.12
LXD version: 5.12
Storage backend in use: zfs

lxc info output
$ lxc info
config: {}
api_extensions:
- storage_zfs_remove_snapshots
- container_host_shutdown_timeout
- container_stop_priority
- container_syscall_filtering
- auth_pki
- container_last_used_at
- etag
- patch
- usb_devices
- https_allowed_credentials
- image_compression_algorithm
- directory_manipulation
- container_cpu_time
- storage_zfs_use_refquota
- storage_lvm_mount_options
- network
- profile_usedby
- container_push
- container_exec_recording
- certificate_update
- container_exec_signal_handling
- gpu_devices
- container_image_properties
- migration_progress
- id_map
- network_firewall_filtering
- network_routes
- storage
- file_delete
- file_append
- network_dhcp_expiry
- storage_lvm_vg_rename
- storage_lvm_thinpool_rename
- network_vlan
- image_create_aliases
- container_stateless_copy
- container_only_migration
- storage_zfs_clone_copy
- unix_device_rename
- storage_lvm_use_thinpool
- storage_rsync_bwlimit
- network_vxlan_interface
- storage_btrfs_mount_options
- entity_description
- image_force_refresh
- storage_lvm_lv_resizing
- id_map_base
- file_symlinks
- container_push_target
- network_vlan_physical
- storage_images_delete
- container_edit_metadata
- container_snapshot_stateful_migration
- storage_driver_ceph
- storage_ceph_user_name
- resource_limits
- storage_volatile_initial_source
- storage_ceph_force_osd_reuse
- storage_block_filesystem_btrfs
- resources
- kernel_limits
- storage_api_volume_rename
- macaroon_authentication
- network_sriov
- console
- restrict_devlxd
- migration_pre_copy
- infiniband
- maas_network
- devlxd_events
- proxy
- network_dhcp_gateway
- file_get_symlink
- network_leases
- unix_device_hotplug
- storage_api_local_volume_handling
- operation_description
- clustering
- event_lifecycle
- storage_api_remote_volume_handling
- nvidia_runtime
- container_mount_propagation
- container_backup
- devlxd_images
- container_local_cross_pool_handling
- proxy_unix
- proxy_udp
- clustering_join
- proxy_tcp_udp_multi_port_handling
- network_state
- proxy_unix_dac_properties
- container_protection_delete
- unix_priv_drop
- pprof_http
- proxy_haproxy_protocol
- network_hwaddr
- proxy_nat
- network_nat_order
- container_full
- candid_authentication
- backup_compression
- candid_config
- nvidia_runtime_config
- storage_api_volume_snapshots
- storage_unmapped
- projects
- candid_config_key
- network_vxlan_ttl
- container_incremental_copy
- usb_optional_vendorid
- snapshot_scheduling
- snapshot_schedule_aliases
- container_copy_project
- clustering_server_address
- clustering_image_replication
- container_protection_shift
- snapshot_expiry
- container_backup_override_pool
- snapshot_expiry_creation
- network_leases_location
- resources_cpu_socket
- resources_gpu
- resources_numa
- kernel_features
- id_map_current
- event_location
- storage_api_remote_volume_snapshots
- network_nat_address
- container_nic_routes
- rbac
- cluster_internal_copy
- seccomp_notify
- lxc_features
- container_nic_ipvlan
- network_vlan_sriov
- storage_cephfs
- container_nic_ipfilter
- resources_v2
- container_exec_user_group_cwd
- container_syscall_intercept
- container_disk_shift
- storage_shifted
- resources_infiniband
- daemon_storage
- instances
- image_types
- resources_disk_sata
- clustering_roles
- images_expiry
- resources_network_firmware
- backup_compression_algorithm
- ceph_data_pool_name
- container_syscall_intercept_mount
- compression_squashfs
- container_raw_mount
- container_nic_routed
- container_syscall_intercept_mount_fuse
- container_disk_ceph
- virtual-machines
- image_profiles
- clustering_architecture
- resources_disk_id
- storage_lvm_stripes
- vm_boot_priority
- unix_hotplug_devices
- api_filtering
- instance_nic_network
- clustering_sizing
- firewall_driver
- projects_limits
- container_syscall_intercept_hugetlbfs
- limits_hugepages
- container_nic_routed_gateway
- projects_restrictions
- custom_volume_snapshot_expiry
- volume_snapshot_scheduling
- trust_ca_certificates
- snapshot_disk_usage
- clustering_edit_roles
- container_nic_routed_host_address
- container_nic_ipvlan_gateway
- resources_usb_pci
- resources_cpu_threads_numa
- resources_cpu_core_die
- api_os
- container_nic_routed_host_table
- container_nic_ipvlan_host_table
- container_nic_ipvlan_mode
- resources_system
- images_push_relay
- network_dns_search
- container_nic_routed_limits
- instance_nic_bridged_vlan
- network_state_bond_bridge
- usedby_consistency
- custom_block_volumes
- clustering_failure_domains
- resources_gpu_mdev
- console_vga_type
- projects_limits_disk
- network_type_macvlan
- network_type_sriov
- container_syscall_intercept_bpf_devices
- network_type_ovn
- projects_networks
- projects_networks_restricted_uplinks
- custom_volume_backup
- backup_override_name
- storage_rsync_compression
- network_type_physical
- network_ovn_external_subnets
- network_ovn_nat
- network_ovn_external_routes_remove
- tpm_device_type
- storage_zfs_clone_copy_rebase
- gpu_mdev
- resources_pci_iommu
- resources_network_usb
- resources_disk_address
- network_physical_ovn_ingress_mode
- network_ovn_dhcp
- network_physical_routes_anycast
- projects_limits_instances
- network_state_vlan
- instance_nic_bridged_port_isolation
- instance_bulk_state_change
- network_gvrp
- instance_pool_move
- gpu_sriov
- pci_device_type
- storage_volume_state
- network_acl
- migration_stateful
- disk_state_quota
- storage_ceph_features
- projects_compression
- projects_images_remote_cache_expiry
- certificate_project
- network_ovn_acl
- projects_images_auto_update
- projects_restricted_cluster_target
- images_default_architecture
- network_ovn_acl_defaults
- gpu_mig
- project_usage
- network_bridge_acl
- warnings
- projects_restricted_backups_and_snapshots
- clustering_join_token
- clustering_description
- server_trusted_proxy
- clustering_update_cert
- storage_api_project
- server_instance_driver_operational
- server_supported_storage_drivers
- event_lifecycle_requestor_address
- resources_gpu_usb
- clustering_evacuation
- network_ovn_nat_address
- network_bgp
- network_forward
- custom_volume_refresh
- network_counters_errors_dropped
- metrics
- image_source_project
- clustering_config
- network_peer
- linux_sysctl
- network_dns
- ovn_nic_acceleration
- certificate_self_renewal
- instance_project_move
- storage_volume_project_move
- cloud_init
- network_dns_nat
- database_leader
- instance_all_projects
- clustering_groups
- ceph_rbd_du
- instance_get_full
- qemu_metrics
- gpu_mig_uuid
- event_project
- clustering_evacuation_live
- instance_allow_inconsistent_copy
- network_state_ovn
- storage_volume_api_filtering
- image_restrictions
- storage_zfs_export
- network_dns_records
- storage_zfs_reserve_space
- network_acl_log
- storage_zfs_blocksize
- metrics_cpu_seconds
- instance_snapshot_never
- certificate_token
- instance_nic_routed_neighbor_probe
- event_hub
- agent_nic_config
- projects_restricted_intercept
- metrics_authentication
- images_target_project
- cluster_migration_inconsistent_copy
- cluster_ovn_chassis
- container_syscall_intercept_sched_setscheduler
- storage_lvm_thinpool_metadata_size
- storage_volume_state_total
- instance_file_head
- instances_nic_host_name
- image_copy_profile
- container_syscall_intercept_sysinfo
- clustering_evacuation_mode
- resources_pci_vpd
- qemu_raw_conf
- storage_cephfs_fscache
- network_load_balancer
- vsock_api
- instance_ready_state
- network_bgp_holdtime
- storage_volumes_all_projects
- metrics_memory_oom_total
- storage_buckets
- storage_buckets_create_credentials
- metrics_cpu_effective_total
- projects_networks_restricted_access
- storage_buckets_local
- loki
- acme
- internal_metrics
- cluster_join_token_expiry
- remote_token_expiry
- init_preseed
- storage_volumes_created_at
- cpu_hotplug
- projects_networks_zones
- network_txqueuelen
- cluster_member_state
- instances_placement_scriptlet
- storage_pool_source_wipe
- zfs_block_mode
- instance_generation_id
- disk_io_cache
api_status: stable
api_version: "1.0"
auth: trusted
public: false
auth_methods:
- tls
environment:
  addresses: []
  architectures:
  - x86_64
  - i686
  certificate: |
    -----BEGIN CERTIFICATE-----
    <redacted>
    -----END CERTIFICATE-----
  certificate_fingerprint: 9c473ce74f6bda12dd4ec97c3a28cd8cd4063fcfbfcc0435d9bfe1e7ba7f15f6
  driver: lxc | qemu
  driver_version: 5.0.2 | 7.1.0
  firewall: nftables
  kernel: Linux
  kernel_architecture: x86_64
  kernel_features:
    idmapped_mounts: "true"
    netnsid_getifaddrs: "true"
    seccomp_listener: "true"
    seccomp_listener_continue: "true"
    shiftfs: "false"
    uevent_injection: "true"
    unpriv_fscaps: "true"
  kernel_version: 5.19.0-35-generic
  lxc_features:
    cgroup2: "true"
    core_scheduling: "true"
    devpts_fd: "true"
    idmapped_mounts_v2: "true"
    mount_injection_file: "true"
    network_gateway_device_route: "true"
    network_ipvlan: "true"
    network_l2proxy: "true"
    network_phys_macvlan_mtu: "true"
    network_veth_router: "true"
    pidfd: "true"
    seccomp_allow_deny_syntax: "true"
    seccomp_notify: "true"
    seccomp_proxy_send_notify_fd: "true"
  os_name: Ubuntu
  os_version: "22.04"
  project: default
  server: lxd
  server_clustered: false
  server_event_mode: full-mesh
  server_name: timeloop
  server_pid: 1603373
  server_version: "5.12"
  storage: zfs
  storage_version: 2.1.5-1ubuntu6
  storage_supported_drivers:
  - name: ceph
    version: 17.2.0
    remote: true
  - name: cephfs
    version: 17.2.0
    remote: true
  - name: cephobject
    version: 17.2.0
    remote: true
  - name: dir
    version: "1"
    remote: false
  - name: lvm
    version: 2.03.11(2) (2021-01-08) / 1.02.175 (2021-01-08) / 4.47.0
    remote: false
  - name: zfs
    version: 2.1.5-1ubuntu6
    remote: false
  - name: btrfs
    version: 5.16.2
    remote: false

Issue description
When attempting to use lxd to launch virtual machines in multiple peer containers, errors such as vhost-vsock: unable to set guest cid: Address already in use can be observed when launching VMs, causing the VMs to fail to start.
Steps to reproduce
Create a profile allowing nested virtualization, such as:
lxc profile create virt && \
lxc profile set virt security.nesting=true && \
lxc profile device add virt kvm unix-char source=/dev/kvm && \
lxc profile device add virt vhost-net unix-char source=/dev/vhost-net && \
lxc profile device add virt vhost-vsock unix-char source=/dev/vhost-vsock && \
lxc profile device add virt vsock unix-char source=/dev/vsock

Launch two or more containers with this profile, such as:
lxc launch ubuntu:jammy hv1 -p virt -p default
lxc launch ubuntu:jammy hv2 -p virt -p default

Use lxc shell to enter both containers and run:
lxd init --auto
lxc launch images:ubuntu/bionic/cloud bionic --vm

Expected results
Both virtual machines should be created and started.
Actual results
The second VM to be created will fail to start. lxc info --show-log local:bionic will display:
[...]
qemu-system-x86_64:/var/snap/lxd/common/lxd/logs/bionic/qemu.conf:115: vhost-vsock: unable to set guest cid: Address already in use

Additional Information
There was an attempt to address this in PR #10216. However, this fix seems to assume that the vsock IDs are only shared with the parent, not peer containers.
libvirt seems to avoid this problem by iterating over usable IDs until a free ID is found.

I like where you were going with this, @tomponline. A few thoughts on the commit you referenced:

I doubt a hypervisor would have a number of virtual machines approaching anywhere close to the size of a 32-bit integer, and the call to check whether or not the ID is already in use should be relatively fast.

Rather than picking 10 IDs and then giving up (which could go badly if the user gets unlucky), why not make the loop less bounded? I wouldn't give up until checking at least a few thousand. The libvirt code I referenced never gives you up - which is arguably a bug, so hopefully it doesn't let you down.
Instead of picking values totally at random, why not create a hash using something unique about the VM and start trying IDs there? (Or maybe just take the first 16 bits of the VM UUID, shift them to the most significant bytes of the vsock ID, and try 2^16 iterations from there? That would also have the advantage of being very unlikely to crash with other tooling on the system, such as libvirt, which starts counting from 3.)

Don't forget that IDs 0-2 seem to be reserved and unusable.
I'm curious now how the kernel keeps track of the IDs, and if it is at all useful to have low-numbered IDs instead of random values. (probably an investigation for another day)

Hello, I am writing to express my interest in working on the issue mentioned in the bug report #11508 for LXD. As a student at the university, I am eager to contribute to open source projects and gain valuable experience in software development.
I have experience in Linux systems and I am familiar with virtualization technologies. I believe that my skills and knowledge would be useful in resolving the issue mentioned in the bug report. I am willing to work with the LXD development team to find a solution to the problem and contribute to the project.
Thank you for considering my interest in this issue. I look forward to hearing back from you.

Thanks @Anis-cpu-13 assigned to you!

I think I have exactly same issue by peer containers causing vsock ID conflict when I try to launch a QEMU VM within containers.
What's current stage on the fix?
Is there a workaround/hack to fix it for now?
@tomponline

@stgraber , this issue is one which stops our company to move to LXD, is there any workaround before the fix?
Thought 5.14 would fix this one :/

@kochia7 what is the use case for running VMs inside containers?

@kochia7 what is the use case for running VMs inside containers? (it maybe there is a workaround in the short term until this is fixed).

We have Android Machines (Qemu/CrossVM) running per container, unfortunately we are not able  to run VMs directly on the machine, so planning to use LXC containers as lightweight isolation for each Qemu VM.

Thanks. What is the reason for "we are not able to run VMs directly on the machine"?
And are you aware that by passing through non-namespaced devices like /dev/kvm, you are potentially exposing you host to attacks from the containers, so just want to check you are aware that doing that reduces the isolation.

VMM we using create artifacts which interfere each other with other machines, it's how the VMM is build, unable to work with several VM in parallel. So LXC creates just enough isolation to make them work

You can set volatile.vsock_id on the instance before starting it, so if you're able to set them to non-conflicting IDs, then you can workaround the problem for now.
lxc config set <VM instance> volatile.vsock_id=n

I'm not sure though how it will work with LXD's own vsock listener though (as opposed to the lxd-agent's).
It maybe that vsock just won't work properly when being run inside containers.

You can set volatile.vsock_id on the instance before starting it, so if you're able to set them to non-conflicting IDs, then you can workaround the problem for now.
lxc config set <VM instance> volatile.vsock_id=n

I will give it a try, seems promising! Thanks!

I used lxc config set <VM instance> volatile.vsock_id=n for LXC containers from the host
and
guest-cid for Qemu within the containers for nested VMs and it worked!

Only the last one would have done anything as setting vsock_id on a container doesn't do anything.

You can set volatile.vsock_id on the instance before starting it, so if you're able to set them to non-conflicting IDs, then you can workaround the problem for now.
lxc config set <VM instance> volatile.vsock_id=n

Didn't really work for LXD: https://github.com/lxc/lxd/issues/11739#issuecomment-1567389272


New release?

Hello,
I currently do not see any pending issues but quite some nice new features in the changelog. Would it be possible to release 0.0.4?
At work we require the recent changes I made to the minimum TTL and as packages are internally mirrored from PyPI I cannot pin to a specific commit from GitHub.
Let me know if there's anything I can do to help with a new release!
Daan

/cc https://github.com/octodns/octodns-cloudflare/pull/80


Vim9: crash when stepping through multiline autocmd in debug mode

Describe the bug
In Vim9 script, stepping through a multiline autocmd in debug mode makes Vim crash.
To Reproduce
Run this shell command:
vim -Nu NONE -S <(cat <<'EOF'
    vim9script
    def Func()
        autocmd BufRead * eval 1
                        | eval 2
    enddef
    breakadd func Func
    Func()
EOF
)

Vim crashes.
Expected behavior
Vim doesn't crash.
Environment

Vim version: 8.2 Included patches: 1-3112
OS: Ubuntu 20.04.2 LTS
Terminal: XTerm(353)

Additional context

backtrace
valgrind log
asan log

According to asan, a null pointer is loaded on line 1469 in src/charset.c:
while (VIM_ISWHITE(*p)) // skip to next non-white
                   ^^
                   null pointer

Actually, the autocmd is not necessary.  What matters is the continuation line:
vim9script
def Func()
      eval 1
    | eval 2
enddef
breakadd func Func
Func()


Incompatibility with Thrust v1.10.0 (CUDA 11.2)

Using Thrust v1.10.0 (included in CUDA v11.2), compiling the thrust example (test_external/thrust) fails with
../../include/boost/numeric/odeint/external/thrust/thrust_algebra_dispatcher.hpp(97): error: class template "boost::numeric::odeint::algebra_dispatcher" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_operations_dispatcher.hpp(96): error: class template "boost::numeric::odeint::operations_dispatcher" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(176): error: class template "boost::numeric::odeint::is_resizeable" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(177): error: class template "boost::numeric::odeint::resize_impl" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(177): error: class template "boost::numeric::odeint::resize_impl" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(178): error: class template "boost::numeric::odeint::same_size_impl" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(178): error: class template "boost::numeric::odeint::same_size_impl" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(179): error: class template "boost::numeric::odeint::copy_impl" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(179): error: class template "boost::numeric::odeint::copy_impl" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(179): error: class template "boost::numeric::odeint::copy_impl" has already been defined

The problem arises, because in Thrust v1.10.0 the types thrust::cpp::vector, thrust::omp::vector, thrust::tbb::vector and thrust::cuda::vector are all aliases of the same type thrust::detail::vector_base.

Similar problem with Thrust 1.15.0, running all thrust examples. The fix #46 does not solve it for me.
thrust$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Thu_Feb_10_18:23:41_PST_2022
Cuda compilation tools, release 11.6, V11.6.112
Build cuda_11.6.r11.6/compiler.30978841_0

thrust$ nvcc -O3 -I../../include/ phase_oscillator_chain.cu
/usr/include/boost/fusion/container/vector/vector.hpp(195): warning #20012-D: __host__ annotation is ignored on a function("vector_data") that is explicitly defaulted on its first declaration

/usr/include/boost/fusion/container/vector/vector.hpp(195): warning #20012-D: __device__ annotation is ignored on a function("vector_data") that is explicitly defaulted on its first declaration

/usr/include/boost/fusion/container/vector/vector.hpp(273): warning #20012-D: __host__ annotation is ignored on a function("vector") that is explicitly defaulted on its first declaration

/usr/include/boost/fusion/container/vector/vector.hpp(273): warning #20012-D: __device__ annotation is ignored on a function("vector") that is explicitly defaulted on its first declaration

/usr/include/boost/fusion/support/unused.hpp(25): warning #20012-D: __host__ annotation is ignored on a function("unused_type") that is explicitly defaulted on its first declaration

/usr/include/boost/fusion/support/unused.hpp(25): warning #20012-D: __device__ annotation is ignored on a function("unused_type") that is explicitly defaulted on its first declaration

/usr/include/boost/fusion/support/unused.hpp(31): warning #20012-D: __host__ annotation is ignored on a function("unused_type") that is explicitly defaulted on its first declaration

/usr/include/boost/fusion/support/unused.hpp(31): warning #20012-D: __device__ annotation is ignored on a function("unused_type") that is explicitly defaulted on its first declaration

../../include/boost/numeric/odeint/external/thrust/thrust_algebra_dispatcher.hpp(97): error: class template "boost::numeric::odeint::algebra_dispatcher" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_operations_dispatcher.hpp(96): error: class template "boost::numeric::odeint::operations_dispatcher" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(176): error: class template "boost::numeric::odeint::is_resizeable" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(177): error: class template "boost::numeric::odeint::resize_impl" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(177): error: class template "boost::numeric::odeint::resize_impl" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(178): error: class template "boost::numeric::odeint::same_size_impl" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(178): error: class template "boost::numeric::odeint::same_size_impl" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(179): error: class template "boost::numeric::odeint::copy_impl" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(179): error: class template "boost::numeric::odeint::copy_impl" has already been defined

../../include/boost/numeric/odeint/external/thrust/thrust_resize.hpp(179): error: class template "boost::numeric::odeint::copy_impl" has already been defined

10 errors detected in the compilation of "phase_oscillator_chain.cu".

I have been using the following hacky workaround:

apply my patch https://github.com/boostorg/odeint/pull/46
copy the directory include/boost/numeric/odeint/external/thrust to some location odeint_thrust/
replace all references to boost/numeric/odeint/external/thrust in  odeint_thrust/ by  odeint_thrust/
include in the following order:

#include <boost/numeric/odeint.hpp>
#include <odeint_thrust/thrust.hpp>
#include <thrust/device_vector.h>
#include <thrust/iterator/counting_iterator.h>


[Proposal] Allowing environments with different Box action/observation space limits in a vector environment

Proposal
https://github.com/Farama-Foundation/Gymnasium/blob/8333df8666811d1d0f87f1ca71803cc58bcf09c6/gymnasium/vector/sync_vector_env.py#L251-L266
https://github.com/Farama-Foundation/Gymnasium/blob/8333df8666811d1d0f87f1ca71803cc58bcf09c6/gymnasium/vector/async_vector_env.py#L576-L596
Currently, these methods checks if all the observation and action spaces in a vector environment are identical, and raises an error if they are not. I'm assuming this is the case because we want to ensure that we can stack the observations and actions into one numpy array. I'm proposing a change to allow differences in the observation and action spaces as long as the shapes are consistent  (e.g. the values in the low and high portions of a Box space).
The change can be implemented with an optional parameter to enable/disable it when creating the vector environments to preserve current default behaviours for now.
Motivation
I want to vectorize environments with different action space boundaries but the current implementation of vector environments does not allow for that.
Pitch
No response
Alternatives
No response
Additional context
No response
Checklist

[ ] I have checked that there is no similar issue in the repo

This is a very good point that I had never thought about.
The Space.__eq__ checks for straight equivalence where in this case what we actually care about is Space.shape equivalence.
I would want to do some testing with some of the newer (weird) spaces with how they act with the vector environments (Sequence, Graph and Text) but I see no issue with changing the == to space_shape_equivalence(env_1, env_2)
@howardh Would you be happy to implement the shape equivalence function (probably in vector.utils), add tests for it, change the vector code and add tests on the vector side as well?

@pseudo-rnd-thoughts I am happy to do these tasks if @howardh hasn't

@reginald-mclean go for it.
Looking back at this, another change is that the batched space reflect the composition of spaces in terms of low, high, etc

I got bored watching the UK general election so did most of the code for batching varying spaces
"""The batch space module."""

from copy import deepcopy
from functools import singledispatch

import numpy as np
import pytest

from gymnasium import Space
from gymnasium.spaces import (
    Box,
    Dict,
    Discrete,
    Graph,
    MultiBinary,
    MultiDiscrete,
    OneOf,
    Sequence,
    Text,
    Tuple,
)
from gymnasium.vector.utils import batch_space, iterate
from tests.spaces.utils import TESTING_SPACES, TESTING_SPACES_IDS

@singledispatch
def batch_spaces(spaces: list[Space]):
    """Batch a Sequence of spaces that allows the subspaces to contain minor differences."""
    assert len(spaces) > 0
    assert all(isinstance(space, type(spaces[0])) for space in spaces)
    assert type(spaces[0]) in batch_spaces.registry

    return batch_spaces.dispatch(type(spaces[0]))(spaces)

@batch_spaces.register(Box)
def _batch_spaces_box(spaces: list[Box]):
    assert all(spaces[0].dtype == space for space in spaces)

    return Box(
        low=np.array([space.low for space in spaces]),
        high=np.array([space.high for space in spaces]),
        dtype=spaces[0].dtype,
        seed=deepcopy(spaces[0].np_random),
    )

@batch_spaces.register(Discrete)
def _batch_spaces_discrete(spaces: list[Discrete]):
    return MultiDiscrete(
        nvec=np.array([space.n for space in spaces]),
        start=np.array([space.start for space in spaces]),
    )

@batch_spaces.register(MultiDiscrete)
def _batch_spaces_multi_discrete(spaces: list[MultiDiscrete]):
    return Box(
        low=np.array([space.start for space in spaces]),
        high=np.array([space.start + space.nvec for space in spaces]) - 1,
        dtype=spaces[0].dtype,
        seed=deepcopy(spaces[0].np_random),
    )

@batch_spaces.register(MultiBinary)
def _batch_spaces_multi_binary(spaces: list[MultiBinary]):
    assert all(spaces[0].shape == space.shape for space in spaces)

    return Box(
        low=0,
        high=1,
        shape=(len(spaces),) + spaces[0].shape,
        dtype=spaces[0].dtype,
        seed=deepcopy(spaces[0].np_random),
    )

@batch_spaces.register(Tuple)
def _batch_spaces_tuple(spaces: list[Tuple]):
    return Tuple(
        tuple(
            batch_spaces(subspaces)
            for subspaces in zip(*[space.spaces for space in spaces])
        ),
        seed=deepcopy(spaces[0].np_random),
    )

@batch_spaces.register(Dict)
def _batch_spaces_dict(spaces: list[Dict]):
    assert all(spaces[0].keys() == space.keys() for space in spaces)

    return Dict(
        {
            key: batch_spaces([space[key] for space in spaces])
            for key in spaces[0].keys()
        },
        seed=deepcopy(spaces[0].np_random),
    )

@batch_spaces.register(Graph)
@batch_spaces.register(Text)
@batch_spaces.register(Sequence)
@batch_spaces.register(OneOf)
def _batch_spaces_undefined(spaces: list[Graph | Text | Sequence | OneOf]):
    return Tuple(spaces, seed=deepcopy(spaces[0].np_random))

@pytest.mark.parametrize(
    "spaces,expected_space",
    [
        (
            (
                Box(low=0, high=1, shape=(2,), dtype=np.float32),
                Box(low=2, high=np.array([3, 5], dtype=np.float32)),
            ),
            Box(low=np.array([[0, 0], [2, 2]]), high=np.array([[1, 1], [3, 5]])),
        ),
        (
            (

            ),
        )
    ],
)
def test_varying_spaces(spaces: list[Space], expected_space):
    """Test the batch spaces function."""
    batched_space = batch_spaces(spaces)
    assert batched_space == expected_space

    batch_samples = batched_space.sample()
    for sub_space, sub_sample in zip(spaces, iterate(batched_space, batch_samples)):
        assert sub_sample in sub_space

@pytest.mark.parametrize("space", TESTING_SPACES, ids=TESTING_SPACES_IDS)
@pytest.mark.parametrize("n", [1, 3])
def test_batch_spaces_vs_batch_space(space, n):
    """Test the batch_spaces and batch_space functions."""
    batched_space = batch_space(space, n)
    batched_spaces = batch_spaces([deepcopy(space) for _ in range(n)])

    assert batched_space == batched_spaces, f"{batched_space=}, {batched_spaces=}"

It is missing some more testing and integration with vector environments.
Also, I'm not sure if batch_spaces is a good name as I fear it is too close to batch_space those the number of parameters differ significantly


Not shown in HomeKit app

I have setup followed:
config.json:
    {
      "platform": "rpi-camera",
      "cameras": [{"name": "Pi Camera"}]
    }

log:
[2018-2-17 15:09:28] Loaded plugin: homebridge-camera-rpi
[2018-2-17 15:09:28] Registering platform 'homebridge-camera-rpi.rpi-camera'
...
[2018-2-17 15:09:31] [rpi-camera] Initializing rpi-camera platform...
...
[2018-2-17 15:09:32] Pi Camera is running on port 44287.

But there is no Device in HomeKit. I removed the homebridge from devices and re-added it. But the camera dont show up. Bcm and ffmpeg is set / installed.

The camera is not a device that is managed by the bridge device "homebridge" but another "top level" device itself. So you need to add it like you did add "homebridge" (code is the same).

Ahh, ok.
I have read this in the readme... but i was thinking that the device should be added with the bridge.
Thanks!