Use correct configuration for yarte benches

For Teams, declare env var CARGO_CFG_HTMLESCAPE_DISABLE_AUTO_SIMD and warning you escape 2 less characters.
Now I implement something unusable inline for the buf-min::Buffer trait.
Update the Teams with that environment variable and commenting that your XSS countermeasures are lower.
Or leave me alone that between Askama, those who come from python and you have me happy.
I'm working on a PHP substitution, not in python or Rust's default allocation algorithm replacements.
If you want to compete with someone, I recommend putting your buffer against the creators of tokio-rs/bytes to see what they think. Or do a PR to rust-lang for RawVec substitution or to TechEmpower benchmark.

(I am not very good at English, so I apologize in advance.)

For Teams, declare env var CARGO_CFG_HTMLESCAPE_DISABLE_AUTO_SIMD and warning you escape 2 less characters.

I removed Cargo.lock and target directory, and then recompiled with CARGO_CFG_HTMLESCAPE_DISABLE_AUTO_SIMD variable. However I couldn't see any significant difference in the result.

If you want to compete with someone, I recommend putting your buffer against the creators of tokio-rs/bytes to see what they think. Or do a PR to rust-lang for RawVec substitution or to TechEmpower benchmark.

Current buffer implementation is highly optimized for template rendering, and keeps compatibility with std::string::String. Also it is designed for performing well in Linux x86_64 platform specifically. Those concepts do not match to BytesMut nor RawVec. However it may be better to ask the opnion for tokio developpers. Thanks for the advice. :+1:
By the way, the Sailfish was initially developed as a tool for Rust teams in ISUCON (http://isucon.net/). ISUCON is a programming competition in Japan where participants compete for the performance of web applications. I'm going to compete with programmers who use another programming languages, so I keep research for faster web application until its perliminary contest, which is held in September.

Or leave me alone that between Askama, those who come from python and you have me happy. I'm working on a PHP substitution, not in python or Rust's default allocation algorithm replacements.

I'm not willing to compete with passionate developers like you. Rather I would like to share the optimization techniques for building blazing fast web application.

By the way, the Sailfish was initially developed as a tool for Rust teams in ISUCON (http://isucon.net/). ISUCON is a programming competition in Japan where participants compete for the performance of web applications. I'm going to compete with programmers who use another programming languages, so I keep research for faster web application until its perliminary contest, which is held in September.

A million yen and I am poor! Great! And how do I sign up?

For Teams, declare env var CARGO_CFG_HTMLESCAPE_DISABLE_AUTO_SIMD and warning you escape 2 less characters.

I removed Cargo.lock and target directory, and then recompiled with CARGO_CFG_HTMLESCAPE_DISABLE_AUTO_SIMD variable. However I couldn't see any significant difference in the result.

It may seem to me that with the iterator it goes a little slower than with the direct pointer, now I look at it.

Current buffer implementation is highly optimized for template rendering, and keeps compatibility with std::string::String. Also it is designed for performing well on Linux x86_64 platform specifically. Those concepts do not match to BytesMut nor RawVec. However it may be better to ask the opnion for tokio developpers. Thanks for the advice. +1

Exactly, you could benchmark your buffer vs. another.

Or leave me alone that between Askama, those who come from python and you have me happy. I'm working on a PHP substitution, not in python or Rust's default allocation algorithm replacements.

I'm not willing to compete with passionate developers like you. Rather I would like to share the optimization techniques for building blazing fast web application.

Use yarte with your buffer taking advantage of buf-min::Buffer or a buffer like the one from the previous version, which was bytes::BytesMut + &mut [MaybeUninit<u8>] and as you already saw it worked faster. But I changed it because in Techempower it doesn't give the same result.
But the only change that affects the result, apart from the changes in yarte, is the escape algorithm. In this latest version you added an if for short cases, but the double table algorithm is exactly the same.
That is, I thought that seeing the previous results you would understand what was happening and it seems that you have not understood it.

A million yen and I am poor! Great! And how do I sign up?

It has already stopped accepting applications because the limit was reached. However, It probably accepts more participants in August. Please keep track of the home page.

Use yarte with your buffer taking advantage of buf-min::Buffer or a buffer like the one from the previous version, which was bytes::BytesMut + &mut [MaybeUninit] and as you already saw it worked faster.

Currently I'm discouraged because the Sailfish applies some another optimization that yarte does not apply. Let me know when Yarte performance will get faster than the Sailfish, with the detailed benchmark result.
Also, In ISUCON competition the participants is not allowed to track the database contents in advance. That means I cannot use TemplateFixedTrait because I don't know the maximum length of the rendered templates (and of course, TemplateBytesTrait will become somewhat slower).
Furthermore, now I believe the template engine has been already optimized enough. Recently I realized that the MySQL database connection API would be the biggest bottleneck. Because of this I would like to give priority to the development of the MySQL API (based on mysql_async crate) for a while.

That is, I thought that seeing the previous results you would understand what was happening and it seems that you have not understood it.

Sorry, I don't know what you mean. Most programs in the world keep improving performance even after its stable release, doesn't it?

That is, I thought that seeing the previous results you would understand what was happening and it seems that you have not understood it.

Sorry, I don't know what you mean. Most programs in the world keep improving performance even after its stable release, doesn't it?

I mean, the implementation with BytesMut + &mut [MaybeUninit<u8>] of BigTable was faster on these benchmarks than sailfish. You remember? https://github.com/Kogia-sima/sailfish/blob/933d7850d73795bf329a98797bc98228166276d3/benches/README.md#results
And without any change in performance we move on to this.
https://github.com/Kogia-sima/sailfish/tree/a885f08d73dd32790874eebd1e935b90516ee552/benches#results
You win in BigTable.
But what happens here? Because with this change I have a 2% more request in techempower and here I lose half?
Then you enter an if for short cases in the escape algorithm.
https://github.com/Kogia-sima/sailfish/tree/2807340e59ceacb30305428b9d3bd440e518fd16/benches#results
And you're already the fastest.
But it seems to me that something is wrong.

Use yarte with your buffer taking advantage of buf-min::Buffer or a buffer like the one from the previous version, which was bytes::BytesMut + &mut [MaybeUninit] and as you already saw it worked faster.

Currently I'm discouraged because the Sailfish applies some another optimization that yarte does not apply. Let me know when Yarte performance will get faster than the Sailfish, with the detailed benchmark result.

These optimizations you are talking about only exist in code like this, constant. And if you already have them, it depends on the TRAIT buf-min::Buffer on which any buffer can be implemented.

Also, In ISUCON competition the participants is not allowed to track the database contents in advance. That means I cannot use TemplateFixedTrait because I don't know the maximum length of the rendered templates (and of course, TemplateBytesTrait will become somewhat slower).

Ok, if I make an implementation on TemplateBytesTrait, (in commit https://github.com/botika/yarte/commit/a39f49d5e2f7826b1be492bca56cd79342369fe3) faster, will you be my sponsor with what you get from the prize?

I mean, the implementation with BytesMut + &mut [MaybeUninit] of BigTable was faster on these benchmarks than sailfish.

TemplateBytesTrait was certainly faster but it was slower than old Sailfish in Teams benchmark. Note that the Sailfish 0.1.3 is faster than old version.

And without any change in performance we move on to this.
https://github.com/Kogia-sima/sailfish/tree/a885f08d73dd32790874eebd1e935b90516ee552/benches#results
You win in BigTable.
But what happens here? Because with this change I have a 2% more request in techempower and here I lose half?

I don't know what happened, but even if the benchmark is invalid, TemplateFixedTrait is not usable in ISUCON.

These optimizations you are talking about only exist in code like this, constant. And if you already have them, it depends on the TRAIT buf-min::Buffer on which any buffer can be implemented.

Buffer implementation is only a part of the Sailfish runtime utilities. The entire code is composed of various optimizations such as memcpy implementation for small length of bytes.

Ok, if I make an implementation on TemplateBytesTrait, (in commit botika/yarte@a39f49d) faster, will you be my sponsor with what you get from the prize?

Year I promise you :)

And use https://github.com/fafhrd91/rust-postgres for sql.

Unfortunately, the ISUCON participants are forced to use a MySQL server, not a PostgresQL.

I'm going to close this issue anyway because CARGO_CFG_HTMLESCAPE_DISABLE_AUTO_SIMD variable variable has little effect on the performance.


Need help installing

Greetings to all, need a person who installs on the server ViaBTC, the server runs and working stable, but the socket does not want to work, for the second week I’m fighting nothing helps, I'm in trouble.
telegram: @sourceblock
Wechat ID: sourceblock

see https://github.com/lealife/viabtc_exchange_server/issues/1

how to use Viabtc_exchange_ server to setup a new exchange in cloud server, such as AWS?


error: requires freeze lang_item

Hey,
I have a problem when compiling the cross library with Xargo. This works well on macOS, but with a Linux Debian (or derived) I got the following error, that you can check on Travis log.
Any idea of what is this?

error: requires freeze lang_item

Well, you are missing the freeze lang item. I don't know if it's new as I have never implemented custom unwinding (it seems to be related to unwinding). But you can probably grep for lang = "freeze" in rust-lang/rust to find out what it's used for and what's its signature.
Alterantively, you could try changing panic-strategy to abort in you target specification file (*-pulsar.json).

I already have the panic-strategy set to about. But I think maybe I'm using an old Rust repro version. Since this isn't related with the Xargo I will close this issue. Thanks man.


My thoughts

Sorry for getting distracted at the end of the geo-zarr meeting we just had (for those that were there). Here is a summary of what I was getting at.
(@rabernat , yes I know this has been discussed many times over - apologies)
There are two principal parts to the coordinates problem:

coordinate tranform
parsing/reading coordinate definitions

Coordinate transform
A mechanism within zarr/xarray to find (each of) the coordinates of a given array position and the (fractional) array location of a given coordinate set. This should be a vectorized operation each way.
Currently, xarray supports explicit coordinate value arrays via the netCDF model well (and "flexible" indexes whose internals I don't understand well).

I suggest that this should be an extension point, each associated with a different internal representation (e.g., affine is usually a square matrix, explicit arrays are usually one- or two-dimensional arrays with sizes determined by the data)
on day 1, we want to support explicit values and affine (linear transform)
other transforms should be pluggable, and eventually include for instance the large number of each curvature models built into grib
whether we should have a single affine matrix across all dimensions (lon, lat, time = f(x, y, z)), or if we should split dimensions (lon, lat = f1(x, y); time = f2(z)) is a decision to be taken early.
the coordinates interface must support slicing and might support units.

Crucially, I advocate that the transform mechanism is independent of the data domain, so that we don't treat "lon/lat" as special. This is because zarr and xarray are general purpose libraries, and we don't want to exclude microscopy, genetics and other fields with many users.
Coordinate definitions
In the meeting, a few specific (geo) coordinate definitions were mentioned:

gdal coefficients
tiff bounding box
CRS text/parameters

plus, of course, netCDF explicit arrays (with or without CF). I also mentioned astro WCS as a reference point (which supports explicit, affine, and various analytic forms for arbitrary dimensionality with no geo reference; interestingly, it also applies to fields of tables).
I would suggest that it is the job of geo-zarr to build the converters to and from these styles of definitions to transform internal representation, such that you can round-trip coordinate information without losing accuracy.

Wish I had space to take part in this work more... sorry to pop into this issue out of the blue, but I can't resist.
I Couldn't agree more @martindurant.
A potential source for inspiration on this is the implementation of rectilinear, curvilinear, and discrete spatio-temporal array axes in the stars R package. @edzer may be able to weigh in / advise. https://r-spatial.github.io/stars/articles/stars4.html is probably a good place to start.

I'm also trying to find my feet in this Python heavy space. Shouldn't this be a Zarr topic? Non lonlat geography exists in "geo", and even xarray has recognized the need to move beyond degenerate rectilinear arrays as the most compact referencing model. Zarr itself needs these compact forms as well, it's more about graphics and model arrays than geo-anything. Ensuring and persisting the crs is more the geo part, in general terms the metadata and units of the coordinate system are crucial in any domain, independently of whether a NetCDF style or more general framework is used.  I just worry this tent isn't broad enough, but I appreciate the importance (and brilliance) of Zarr. If it can get this smarter referencing for regular or graphics arrays, and not mix up regular-grids-devolved-to-longlat with real curvilinear cases it will truly be a general and future-proof framework.

Shouldn't this be a Zarr topic?

Yes, certainly it could be copied there; or maybe the coordinate interpreting discussion belongs in xarray? Maybe zarr simply presents the attributes defining coordinates mapping to other libraries, but personally I'd be happy to see the f(x, y, z, ...) and its inverse(s) defined in zarr.

Ensuring and persisting the crs is more the geo part, in general terms the metadata and units of the coordinate system are crucial in any domain

Exactly. I particularly have in mind medical ("device" and "patient" coordinates, normally affiune transforms) and astro (curvilinear celestial coordinates and physical units like wavelength), because of my background.

I just want to drop this here: the OGC specification that deals with all types of coverage and their encoding is OGC Coverage Implementation Schema 1.1 : https://docs.ogc.org/is/09-146r6/09-146r6.html#39

Currently, xarray supports explicit coordinate value arrays via the netCDF model well (and "flexible" indexes whose internals I don't understand well).

Crucially, I advocate that the transform mechanism is independent of the data domain, so that we don't treat "lon/lat" as special. This is because zarr and xarray are general purpose libraries, and we don't want to exclude microscopy, genetics and other fields with many users.

This is outside of the geozarr scope and more specific to Xarray, but I'd be happy to help towards having some kind of CoordinateTransform class built in Xarray, which would provide an abstract interface + a minimal set of features (e.g., for data slicing) such that it can be easily reused in 3rd-party, domain-specific Xarray indexes.
(note: Xarray "flexible" indexes are still not well documented)

@benbovy : Do you have any information about these flexible indexes. How does it work ?

@christophenoel - If I had to summarize how it works in one sentence: Xarray coordinates are all about data (labels) and metadata (attributes) whereas Xarray Index provides an API that allows dealing with these data / metadata in a highly customizable way for most common Xarray operations (isel, sel, align, concat, stack...). Xarray indexes are also stateful objects that may hold and propagate additional information (arbitrarily structured) along with coordinate labels and attributes.
There's only very basic documentation here: https://docs.xarray.dev/en/stable/internals/how-to-create-custom-index.html
You can also have a look at the different examples collected in https://github.com/pydata/xarray/discussions/7041.
Also specific to this issue:  pydata/xarray#9543
More to come soon(-ish), hopefully!

Everyone on this repo should check out Benoit's PR above. It's exactly what we need to move this forward.


No functions being processed

Hey
I tried running hmark on my projects and the testcode directory but ctags seems to be unable to parse any file.
I always get more or less following result:
[+] Hash index successfully generated.
[+] Saving hash index to file... (Done)

[+] Elapsed time: 0.07 sec.
Program statistics:
 - 4 files;
 - 0 functions;
 - 0 lines of code.

The command Im using is for instance:
./hmark_4.0.1_linux_x64 -c testcode/ OFF

Ctags output is mostly a non-zero error code and a parsing error:
Parser Error: Command '"/tmp/_MEIbtoICk/ctags" -f - --kinds-C=* --fields=neKSt "testcode/configs.c"' returned non-zero exit status 127.

I tried the prebuilt binaries for linux and Mac OS X. And for Mac OS X I also tried bulding ctags from their new repository.
Am I missing something here?
Thanks in advance and kind regards,
Tom

Solved the issue by using the python code directly


Text rendering on Screen width, not Picture width

The family posts a lot of vertical taken pictures with some text along with it. This works pretty well in general, but I was wondering whether it is a big change to render the text (maybe also the name of the sender) on the screen width, instead within the actual picture.
Sometimes, if you receive a picture with some more words like e.g. "Look at him, holding his first bottle of milk" along with a picture taken in portrait mode, there is literally nothing left of the picture :-)
The text fades out a few seconds later, which is great, but I was wondering if this could be improved by using the capacity of the actual screen instead.
Thank you!

That should be possible. We'll take a look.

Related issue: on the development branch I have some problem with videos. They are (in landscape mode) not scale to screen width but only screen height. Hence, if taken in a wide screen aspect ratio, the left and right edges are cutted, a scroll bar is shown (pretty ugly) and the sender/capiton labels are cutted. Unfortunately I don't have much time to look into the code for the video rendering.. I hope it to be only one option in the renderer

For videos the attributes videoWidth/videoHeightmust be queried.
Fixed in feature/caption-sender-fullscreen - 7795020

Funny, I found this solution 2 hours ago and wanted to create a PR :D thanks a lot :)

Done in develop


Ruby LSP client couldn't create connection to server (0.16.6)

Description
Reproduction steps

Start the Ruby LSP using VSCode (release or pre-release happens on both)
Immediately met with repeated pop-ups of "Ruby LSP client couldn't create connection to server", "Restarting server failed", "Pending response rejected since connection got disposed"
ruby-lsp failed to start

Other information leading to this and attempted fixes:

Happened as soon as I upgraded from Ruby 3.1.4 -> 3.1.5
Tried bundle install within the .ruby-lsp/ folder and regenerated the Gemfile.lock there
Tried rm -rf .ruby-lsp/ and restart VSCode/Extension
Tried switching between Release and Pre-Release versions
Tried reinstalling Ruby 3.1.5
I haven't uninstalled any other Ruby versions or otherwise modified any other install

Code snippet or error message
2024-04-29 20:42:54.274 [info] (proj) Discovered Ruby version 3.1.5
2024-04-29 20:42:54.274 [info] (proj) Using cached Ruby path: /Users/jakeduchesne/.asdf/installs/ruby/3.1.5/bin
2024-04-29 20:42:54.349 [info] (proj) Activated Ruby environment: gem_home=/Users/jakeduchesne/.gem/ruby/3.1.0@proj, version=3.1.5, yjit=null, gem_root=/Users/jakeduchesne/.asdf/installs/ruby/3.1.5/lib/ruby/gems/3.1.0
2024-04-29 20:42:54.943 [info] (proj) Ruby LSP> Skipping custom bundle setup since /Users/jakeduchesne/code/ezcater/proj/.ruby-lsp/Gemfile.lock already exists and is up to date

2024-04-29 20:42:54.970 [info] (proj) Ruby LSP> Running bundle install for the custom bundle. This may take a while...
Ruby LSP> Command: (bundle check || bundle install) 1>&2

2024-04-29 20:42:55.362 [info] (proj) The Gemfile's dependencies are satisfied

2024-04-29 20:42:55.904 [info] (proj) /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/prism-0.27.0/lib/prism.rb:81:in `require': incompatible library version -<EMAIL_ADDRESS>(LoadError)
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/prism-0.27.0/lib/prism.rb:81:in `<top (required)>'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/ruby-lsp-0.16.6/lib/ruby_lsp/internal.rb:18:in `require'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/ruby-lsp-0.16.6/lib/ruby_lsp/internal.rb:18:in `<top (required)>'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/ruby-lsp-0.16.6/exe/ruby-lsp:74:in `require'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/ruby-lsp-0.16.6/exe/ruby-lsp:74:in `<top (required)>'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/bin/ruby-lsp:25:in `load'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/bin/ruby-lsp:25:in `<top (required)>'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/bundler-2.5.9/lib/bundler/cli/exec.rb:58:in `load'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/bundler-2.5.9/lib/bundler/cli/exec.rb:58:in `kernel_load'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/bundler-2.5.9/lib/bundler/cli/exec.rb:23:in `run'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/bundler-2.5.9/lib/bundler/cli.rb:451:in `exec'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/bundler-2.5.9/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/bundler-2.5.9/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/bundler-2.5.9/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/bundler-2.5.9/lib/bundler/cli.rb:34:in `dispatch'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/bundler-2.5.9/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/bundler-2.5.9/lib/bundler/cli.rb:28:in `start'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/bundler-2.5.9/exe/bundle:28:in `block in <top (required)>'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/bundler-2.5.9/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/gems/bundler-2.5.9/exe/bundle:20:in `<top (required)>'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/bin/bundle:25:in `load'
	from /Users/jakeduchesne/.gem/ruby/3.1.0@proj/bin/bundle:25:in `<main>'

2024-04-29 20:42:55.913 [info] (proj) [Error - 8:42:55 PM] Server initialization failed.
2024-04-29 20:42:55.913 [info] (proj)   Message: Pending response rejected since connection got disposed
  Code: -32097
2024-04-29 20:42:55.914 [info] (proj) [Info  - 8:42:55 PM] Connection to server got closed. Server will restart.
2024-04-29 20:42:55.914 [info] (proj) true
2024-04-29 20:42:55.914 [info] (proj) [Error - 8:42:55 PM] Ruby LSP client: couldn't create connection to server.
2024-04-29 20:42:55.914 [info] (proj)   Message: Pending response rejected since connection got disposed
  Code: -32097
2024-04-29 20:42:55.914 [error] (proj) Error starting the server: Pending response rejected since connection got disposed
2024-04-29 20:42:55.915 [info] (proj) [Error - 8:42:55 PM] Server process exited with code 1.

I've gone through about all the troubleshooting that I can think of or that I've read from the docs, please let me know if I can provide any more useful information.

Hi @jake-duchesne
Which version manager are you using?
Also, could you try create a separate project using Ruby 3.3 to see if the error happens there?

Hi @jake-duchesne
Which version manager are you using?
Also, could you try create a separate project using Ruby 3.3 to see if the error happens there?

Hi @andyw8, asdf on the version manager and 0.16.6 is working on other projects, so it seems Vinicious is right here - apologies for the misaligned issue. I'll try to figure it out, I'm not super familiar with how gem installations work with extension compilations but gem install prism does work.
Anyways, thanks for the explainer and apologies again.


Client Allocation Request for: XJXH

Client Allocation Questions
Core Information

Name: XJXH
Website / Social Media: xjxh.pro
Region: Greater China Region
DataCap Requested: 1024TiB
Addresses to be Notarized: f1sfs2m6uvdn3zlzn4zchtmytsda3escmf3xiamty
Notary Requested: neogeweb3

@heweithegreat Please subscribe to notifications for this Issue to be aware of updates. Notaries may request additional information on the Issue.

Hello, XJXH is a high-tech company engaged in blockchain technology research and development, storage server research and development and production, sales and hosting. It has a number of patented technologies and a mature industrial chain. It invests in incubation fund management companies, cultural media companies, hardware equipment manufacturing companies, etc. Find me on github, my GitHub is heweithegreat
The company name is XJXH. The company was established in 2018. It is a private enterprise. The country of registration is China. The person in charge since its establishment is Du Xueping.
I plan to distribute DC storage, mainly in Greater China.
Mainly store and backup the data, videos and documentation generated during the operation of XJXH, including but not limited to company training videos, important company documents, company memorabilia, records of relevant meetings and exhibitions, etc.
No
I plan to allocate at least 3 miners to ensure fair distribution.
Agree

Can you provide some proof that you are working for XJXH? What is the best email I could reach out to you, I will need a work email under the domain xjxh.pro, thanks.

I own this domain xjxh.pro, which can proove that I work for XJXH, and my email is<EMAIL_ADDRESS>Thanks.

I will grant you 1TiB to get started.

Allocation was successful: https://filfox.info/en/message/bafy2bzacebtmwbjsacprs7fxhup3sdeng25gnuzhpn565sgnfdwhd2rmdb3xs


OnRestore callback

Hello!
I've stumbled upon a problem with using your package and a package for a tray notification.
Hiding window with appWindow.hide() hides it just fine, but clicking on a tray icon shows blank window.
I am not this familiar with windows API, but I suspect that it's due to how flutter engine works - it basically just makes initial window visible upon lmb click on tray icon, without triggering a rebuild\redraw on the window message.
I do realize that it might not be directly related to the package, but still wonder if it is possible to handle such a case on the package side?

If someone stumbles upon similar issue, that can be solved with adding
PostMessage(hwnd, 0x7FFE, 3, 0); where necessary in cpp files.
My cases were global hotkeys events in
LRESULT
Win32Window::MessageHandler(HWND hwnd,
                            UINT const message,
                            WPARAM const wparam,
                            LPARAM const lparam) noexcept {

and single instance mutex
int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
                      _In_ wchar_t *command_line, _In_ int show_command) {

Those make sure that upon sending SetForegroundWindow() or any other related events we emit event which is handled by bitsdojo_window package internally. Those values basically mean "Redraw children" in this package.

Thinking about it, I think having a callback which is invoked upon window state change (or on restore?) would help solve this case, and probably other use cases

Yes, this is coming in the next update


Fix tf.math.sobol_sample vulnerability with non-scalar inputs.

Check that given inputs are valid.
Add graph/eager unit tests. Graph mode was already ok but eager mode was not.
PiperOrigin-RevId: 476117492

We no longer patch 2.7, so only 2.8 to 2.10 need to be cherrypicked


Add configuration option to ignore file name

Hi,
Great plugin, however, I would like to be able to config the plugin to suit my current project settings
Current structure:
i18n
├── en-US.json
├── es.json
├── fr-CA.json
├── index.ts
└── pt-BR.json
The plugin pick up index as another locale, which always indicate missing translation for all keys.
If there is a config to ignore a file, or extension, that's be great.
Thank you

You can configure a file name pattern inside the plugin's configuration page.
Set something like *.json to only filter for relevant json files.


Dart2JS: Fields of sealed classe not promoted to JS field

void main(_Foo input) {
  if (input?.name != null) {
    print(true);
  }
}

class _Foo {
  String name;
}

... emits ...
if ((input == null ? input : input.get$name()) != null)
  P.print(true);

I imagine this is safe to promote to input.name, instead of generating a method?

Foo is not defined in your program.

Sorry, this was a bug, but is still true once defined.

Please provide exact repro instructions.
Without --trust-type-annotations, input could be anything non-null, e.g. a String. get$name() ensures a NoSuchMethodError for a String or other non-_Foo argument.
With --trust-type-annotations, the input is _Foo or null, but since there is no new _Foo(), it is only null. The code I see for main in this case is completely optimized away:
    main: [function(input) {
    }, "call$1", "bug1a3l__main$closure", 2, 0, 7],


support for Crysis remastered and enlisted ?

If Possible?

Crysis is using dx11. FSR2 for dx11 is not open-source at the moment.


4 directions

Hello, I'm using Drawflow well.
I'd like to set it in 4 directions, so could you tell me how to set it?


Fix typo

NIf to NgIf

+1

I signed it!

:+1:  da bots are your friend elijah

Nice find!

The directive is unused - see #161.
Could you please close this PR ?


[FEATURE] Reuse the TLC integration tests

A hint from @lemmy. TLC has plenty of integration tests: https://github.com/tlaplus/tlaplus/tree/master/tlatools/org.lamport.tlatools/test-model/suite
We should be able to replay them in Apalache, just by interpreting Print as TRUE and Assert(e, ...) as e. Also, TLC has a number of uni tests that extend ModelCheckerTestCase. We could probably use them to run unit tests for Apalache.
This will definitely improve the stability of Apalache.
cc @shonfeder @Kukovec

We have a stable test-suite now, not really relevant


Bulk update with history

Problem Statement
Since Django 2.2, bulk_update has been available. However, I noticed that this feature is not yet available django-simple-history.
Describe the solution you'd like
It would work much like bulk_create_with_history(), updating the objects in bulk and using the HistoryManager to efficiently bulk create historical instances albeit with a different history type.

Seems like a duplicate of https://github.com/treyhunner/django-simple-history/issues/528.


Need to test this scenario

Description:
I have implemented a chat application with Websocket and tested it. But got the following error rarely when using multiple clients.
021-06-21 13:36:38,508] SEVERE {b7a.log.crash} - class ballerina.websocket.1_2_0-beta_1.Client_readTextMessageFrame cannot be cast to class kalaiyarasiganeshalingam.chat_room.0_1_0.mainFrame (ballerina.websocket.1_2_0-beta_1.Client_readTextMessageFrame and kalaiyarasiganeshalingam.chat_room.0_1_0.mainFrame are in unnamed module of loader 'app')
java.lang.ClassCastException: class ballerina.websocket.1_2_0-beta_1.Client_readTextMessageFrame cannot be cast to class kalaiyarasiganeshalingam.chat_room.0_1_0.mainFrame (ballerina.websocket.1_2_0-beta_1.Client_readTextMessageFrame and kalaiyarasiganeshalingam.chat_room.0_1_0.mainFrame are in unnamed module of loader 'app')
	at kalaiyarasiganeshalingam.chat_room.0_1_0.chat_room.main(chat_room.bal:8)
	at kalaiyarasiganeshalingam.chat_room.0_1_0.$_init.$lambda$main$(chat_room)
	at io.ballerina.runtime.internal.scheduling.SchedulerItem.execute(Scheduler.java:597)
	at io.ballerina.runtime.internal.scheduling.Scheduler.run(Scheduler.java:327)
	at io.ballerina.runtime.internal.scheduling.Scheduler.runSafely(Scheduler.java:295)
	at java.base/java.lang.Thread.run(Thread.java:834)

Check whether we have any chance to get this.

This can happen due to caching issues in Ballerina. Clearing the ballerina cache should work. Closing the issue from standard library as this is not a bug in WebSocket.


Refactor permission check to use customize application user permission

Critical Changes
Changes
Issues Closed
New Metadata
Unpackaged Metadata
Deleted Metadata
Testing Notes

@MatthewBlanski should be good!


ENH: Add preprocessors to the RunEngine.

This PR adds an attribute to the RunEngine, preprocessors, that holds a list of functions that will be applied to the plan before execution. It's a hook that could be used to add things like beamline-specific cleanup that should always be performed.
Since preprocessors see all of the messages, they can do conditional cleanup like, "If we see detector X in this plan, do the following to 'cleanup' for detector X."
I'm pretty sure this is a good idea, but just in case we discover it's bad idea and want to take it away, let's hold off on documenting it for now. The PR includes a test and a docstring update but no prose documentation.
Closes #568

The current ways to achieve this are:

sub-class the RE
remember to wrap all of your plans with your decorator

stream of thought notes follow (read at your own peril):
The bad-idea-smell of this is that it is starting to push very specific knowledge about a BL into the RE where as it (maybe?) should live in the plans.
On the other hand, this is doing it in a consistent way which seems more graceful than subclassing the RE.
Also seems more reliable than requiring users to remember to wrap every plan.  On the other-other hand, the wrapping could (should?) happen in the BL config so that is not a super high burden
On the 5th hand, if this is a bad idea then the way suspenders is done is also a bad idea.
If we merge this we clearly have to add a message to manage the pre-processors so plans can install functions that mutate future plans in the current __call__ context :smiling_imp: .

Notes on an in-person conversation for posterity / the rest of the team:
I agree all around. The problem with asking BLs to wrap all their plans with custom decorators (say, decorators that perform BL-specific cleanup) is that then they can't use any bluesky plans out of the box. After time we add a plan, they have to remember to wrap it.
Like suspenders and some metadata, the stateful workflow makes sense here.
@tacaswell wants to me note that he is persuaded by that. We will probably merge this, but debate is still open if any DAMA members or ex-pats want to drop in and comment. :ghost:

Current coverage is 81.94% (diff: 100%)

Merging #600 into master will increase coverage by 0.02%

@@             master       #600   diff @@
==========================================
  Files            20         20
  Lines          4210       4215     +5
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           3449       3454     +5
  Misses          761        761
  Partials          0          0

Powered by Codecov. Last update d7dbb15...a722c8f

@irawaluyo I think this is something you are interested in


Fix back-compat issue in physics (es6)

There is a back-compat issue in es6. Instead of loading the main physics engine component the devs need to load the v1 physics engine component as well.
This PR changes the architecture a little. The basic physics engine component  has moved to a new file that is not expected to be loaded individually. It is loaded by both the base physics engine component and the v2 physics engine component,m making sure that a dev importing the v2 physics engine component will still have access to the scene extensions.

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/13453/merge
Test environment:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/13453/merge/index.html
To test a playground add it to the URL, for example:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/13453/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/13453/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/13453/merge
https://gui.babylonjs.com/?snapshot=refs/pull/13453/merge
https://nme.babylonjs.com/?snapshot=refs/pull/13453/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/13453/merge#BCU1XR#0


link support

there is no youtube link support?

Hey! There is support for YouTube links.
We are aware, that some links may not show the correct result, but it's being fixed in v5.0.5 (that will go out tomorrow).
You can use song link/name:
client.player.play(voiceChannel, songName);

weird
returned an error but now it works, i don't know why ...
anyway closing the problem thanks


go: json.Marshal of empty rows result encodes to null rather than []

json.Marshal encodes null for all empty results rather than [].
Example
When this function returns an empty list, the result is marshaled to null.
https://github.com/powersjcb/monitor/blob/be4992358e6f3589d5095fca88f6f179b4483842/go/src/server/db/metric.sql.go#L37
I was able to resolve this by changing the way the empty results are instantiated.
var items = []ResultRow -> items := make([]ResultRow, 0)
https://github.com/golang/go/issues/26866
https://apoorvam.github.io/blog/2017/golang-json-marshal-slice-as-empty-array-not-null/

Should have a PR open for this in a few min.

@powersjcb Thanks for the bug report and the pull request.
I've decided to keep the existing behavior. Marshalling a nil slice is documented behavior in the json/encoding package. This change could break existing applications that rely on the current behavior. I also like the fact that memory isn't allocated if the query returns zero results.
I hope you understand and I'm sorry you spent time putting together a PR only to have it not merged.

Fixed by #551 and #528


Static Library support

Is your feature request related to a problem? Please describe.
If I want to create a portable tool that has shader conversion support, or if I want to add the ability to generate shader code to a library, I need to worry about the DLLs.
Describe the solution you'd like
Use of BUILD_SHARED_LIBS in cmake or something. Whatever is easiest to implment.
Describe alternatives you've considered
N/A
Additional context
N/A

However, dxcompiler is DLL, which can't be changed. Even if ShaderConductor is lib, you still need to move DLLs. The down side of lib is you need link 6 other libs from SPIRV-Cross into every exes, instead of just 1.


Missing dependency on json

It is my understanding that json is not part of ruby standard library, hence needs to be declared as a dependency of rollout as of https://github.com/fetlife/rollout/commit/7b7bfc56a770a69749ea59edaa2072f9cefb502c.

json is part of the standard library
http://ruby-doc.org/stdlib-2.0.0/

My bad, I made an effort to check that.


It doesn't work

The code doesn't work

Closing this issue since it's unclear what's not working. Feel free to reopen with more details.

Closing this issue since it's unclear what's not working. Feel free to reopen with more details.


Regarding the PWCDCNet trained parameter

Hello,
Thanks for your code, it was really helpful. I want to check if the PWCDCNet trained parameters (@ model_600.cpkt files) are of the MPI Sintel dataset. Awaiting your reply.
Thanks,
Ram.

Thanks for watching.
Yes, model_600.ckpt is obtained by SintelClean, and model_50.ckpt (under model_100epochs_ft_Chairs) is by fine-tuning on FlyingChairs dataset started from model_600.ckpt.
Fine-tuned model seems to well generalized for many kinds input images. I recommend to consider to use it.
kindly regards :)


Because of unquoted path ament fails on Windows

+++ Building 'ament_cppcheck'
'C:\Program' is not recognized as an internal or external command, operable program or batch file.

This happens because  ament_tools/ament_tools/setup_arguments.py contains the following command line construction code:
# invoke get_setup_arguments() in a separate interpreter
cmd = prefix + [sys.executable, '-c', '"%s"' % ';'.join(code_lines)]
result = subprocess.run(
    ' '.join(cmd), stdout=subprocess.PIPE, shell=True, check=True)

If Python got installed into "Program Files" folder, the final  unquoted command line cmd can't be executed.
Proposed solution:
    sys_executable = sys.executable
    if not (sys_executable.startswith('"') and sys_executable.endswith('"')):
        sys_executable = '"' + sys_executable + '"'
    cmd = prefix + [sys_executable, '-c', '"%s"' % ';'.join(code_lines)]

Please create a pull request with your proposed change. That way we can simply run CI using the modified code and verify that it works.

Thank you for the report. The problem should be fixed by #162.

@dejanpan


fix(versions): update Activiti/example-runtime-bundle versions into master

UpdateBot pushed maven dependency: org.activiti.cloud.rb:activiti-cloud-runtime-bundle-dependencies to: 7.1.157

UpdateBot commands:
updatebot push-version --kind maven org.activiti.cloud.rb:activiti-cloud-runtime-bundle-dependencies 7.1.157


[Hold] Document preconditions in mutate existing rules

Description
Document that target resource supports precondition.
Related PR https://github.com/kyverno/kyverno/pull/4373
Slack discussion
No response

Superseded by #807. Closing.


Update prepare-to-install-service-mesh.adoc

Fixed link to Istion network prerequisites

This has been removed from docs.


problem with default value?

I would like to set default value on date picker:
// Schema
    datepicker: {
        type: Date,
        optional: true,
        autoform: {
            afFieldInput: {
                type: "bootstrap-datetimepicker",
                dateTimePickerOptions: {
                    pickTime: false
                }
            }
        }
    }

// Form
{{> afQuickField name='datepicker' value="01/15/2015"}}

Try "2015-01-15"

don't work.

now i need to use this.
or have any package, pl help me.

@thearabbit did you solved this issue?

Now work fine with<EMAIL_ADDRESS>


Ability to add extra information for a name - ie. Address/Wishlist/etc

Need the ability to add in extra information for each name.

Closed in commit: 4b07cbce69e0fba293de242edf84fbc740d3fee7


only display warning message for values.yml once

When starting the server, the following message displayed several times. We need to find a way to display only once.
Unable to load config 'values' with extension yml, yaml and json from external config, application config and module config. Please ignore this message if you are sure that your application is not using this config file.

One way to eliminate the message is to create a dummy values.yml in the resources/config folder with only one default value. For example, server.httpsPort: 8443. However, this will prevent the message from displaying and users won't realize that this file should be overwritten. I haven't look at the code yet. but wondering if there is a way to display it only one. @jiachen1120 @BalloonWen What do you think?

Hi! Maybe introduce a global flag to prevent loading values.yml block be triggered multiple time? I think this may be doable by just adding few lines.

@jiachen1120 Could you please give it a try?

@stevehu Sure! I am currently working on it :)

 only display warning message for values.yml once

 only display warning message for values.yml once master


MessageReactionRemove returns a 404?

I'm trying to remove a reaction as soon as it is added, so I am trying this:
func messageReactionAdd(s *discordgo.Session, m *discordgo.MessageReactionAdd) {
    err = s.MessageReactionRemove(m.ChannelID, m.MessageID, m.Emoji.ID, m.UserID)
    if err != nil {
        log.WithFields(log.Fields{"err": err}).Warning("Couldn't remove reaction from message")
    }
}

but it returns this:
WARN[Sep 14 06:20:54.821] Couldn't remove reaction from message         err="HTTP 404 Not Found, {\"message\": \"404: Not Found\", \"code\": 0}"

Is this normal behavior?

(*Emoji).ID doesn’t have a valid value on Unicode emojis. See (*Emoji).APIName, which exists specifically for this use case.

In that case might I suggest changing the signature of:
func (s *Session) MessageReactionRemove(channelID, messageID, emojiID, userID string) error

to:
func (s *Session) MessageReactionRemove(channelID, messageID, emojiAPIName, userID string) error

to make things a bit easier on the uninitiated?
Thank you for the reply, by the way; changing to use .APIName() worked!


[Resolved] Player with Journal joins, PlayerJoinEvent & Generated Exception errors

NOTE: I still felt it worthwhile to bring this to your attention, but half way through making this report I realized what triggered the error/s to occur in the first place. Whether or not they materialized as a result of the player having a Journal, and that it would've been handled differently (quietly?) had they NOT, I can only speculate on.
My best guess is that after I had changed a quest yesterday (which this player has) and removed a portion of the stage, that because the player had a Journal it somehow prevented Quests from forcing the player to quit said quest because it had been altered and no longer matched what was in their Data file. I believe this is what occurs when a player usually joins and quest/s they're on have changed, seeing as we have made changes in the past and this error-spam hasn't occurred.
*Based on past experience with Quests and the PlayerJoinEvent issues, I know that all is needed is for me to fix the entry in the the player Data file/s (if multiple players) which have the offending quest/s. I can do it quick and easy by deleting the player file, which is unfair to the player in my opinion; deleting the entire quest from their file, but is also unfair since they'll lose their quest progress; or to correct the specific portion that is mismatched from the quest/s in their current state, which in this case means simply removing the item-delivery-amounts line (and adjusting the stage if needed). *
We now return you to our regularly scheduled broadcast
Using: Quests build 76 (unfortunately I had yet to enable Debug in the config)
Chain of events... Things were working fine today until a player joined, causing Quests to freak out afterwards with an "Unable to pass PlayerJoinEvent" , and then with the Task ## error right up until the moment I unloaded the plugin.
The initial join error (one I had not seen for a very very long time!):
[12:54:29] [User Authenticator #70/INFO]: UUID of player LarisaGeekyGreek is bd2562ae-9a75-4f12-966f-814a10511187
[12:54:29] [Server thread/INFO]: LarisaGeekyGreek[/-IP OMITTED-] logged in with entity id 403584 at ([world] -1919.452530786104, 63.0, -1703.5685376954013)
[12:54:29] [Server thread/ERROR]: Could not pass event PlayerJoinEvent to Quests v2.4.0
org.bukkit.event.EventException
	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:297) ~[craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:36) ~[craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at net.minecraft.server.v1_8_R1.PlayerList.onPlayerJoin(PlayerList.java:258) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at net.minecraft.server.v1_8_R1.PlayerList.a(PlayerList.java:142) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at net.minecraft.server.v1_8_R1.LoginListener.b(LoginListener.java:81) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at net.minecraft.server.v1_8_R1.LoginListener.c(LoginListener.java:41) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at net.minecraft.server.v1_8_R1.NetworkManager.a(NetworkManager.java:150) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at net.minecraft.server.v1_8_R1.ServerConnection.c(SourceFile:151) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:733) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:284) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:609) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:517) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
	at java.lang.Thread.run(Thread.java:745) [?:1.7.0_72]
Caused by: java.lang.NullPointerException
	at me.blackvein.quests.Quester.getObjectivesReal(Quester.java:410) ~[?:?]
	at me.blackvein.quests.Quester.updateJournal(Quester.java:289) ~[?:?]
	at me.blackvein.quests.Quester$1.put(Quester.java:51) ~[?:?]
	at me.blackvein.quests.Quester$1.put(Quester.java:44) ~[?:?]
	at me.blackvein.quests.Quester.loadData(Quester.java:2582) ~[?:?]
	at me.blackvein.quests.PlayerListener.onPlayerJoin(PlayerListener.java:845) ~[?:?]
	at sun.reflect.GeneratedMethodAccessor668.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_72]
	at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_72]
	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:295) ~[craftbukkit_dev.jar:git-Bukkit-33d5de3]
	... 15 more

Then this error is what continued to spam the console for the entire time, once every second up until I unloaded quests:
14.05 13:23:12 [Server] WARN Task #83 for Quests v2.4.0 generated an exception
14.05 13:23:12 [Server] INFO java.lang.NullPointerException

14.05 13:23:12 [Server] INFO at me.blackvein.quests.Quester.getObjectivesReal(Quester.java:410) ~[?:?]
14.05 13:23:12 [Server] INFO at me.blackvein.quests.Quester.updateJournal(Quester.java:289) ~[?:?]
14.05 13:23:12 [Server] INFO at me.blackvein.quests.Quester$1.put(Quester.java:51) ~[?:?]
14.05 13:23:12 [Server] INFO at me.blackvein.quests.Quester$1.put(Quester.java:44) ~[?:?]
14.05 13:23:12 [Server] INFO at me.blackvein.quests.Quester.loadData(Quester.java:2582) ~[?:?]
14.05 13:23:12 [Server] INFO at me.blackvein.quests.Quests.getQuester(Quests.java:2607) ~[?:?]
14.05 13:23:12 [Server] INFO at me.blackvein.quests.NpcEffectThread.run(NpcEffectThread.java:33) ~[?:?]
14.05 13:23:12 [Server] INFO at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftTask.run(CraftTask.java:53) ~[craftbukkit_dev.jar:git-Bukkit-33d5de3]
14.05 13:23:12 [Server] INFO at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:349) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
14.05 13:23:12 [Server] INFO at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:668) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
14.05 13:23:12 [Server] INFO at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:284) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
14.05 13:23:12 [Server] INFO at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:609) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
14.05 13:23:12 [Server] INFO at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:517) [craftbukkit_dev.jar:git-Bukkit-33d5de3]
14.05 13:23:12 [Server] INFO at java.lang.Thread.run(Thread.java:745) [?:1.7.0_72]

The cause seems to be pretty clear that it was journal related, and a quick peek at their Data file does confirm the player having one:
currentQuests:
- Lost Hero
- Offering to Hades
currentStages:
- 1
- 0
quest-points: 3
questData:
  Lost Hero:
    item-delivery-amounts:
    - 0
    citizen-ids-killed:
    - 750
    citizen-amounts-killed:
    - 0
  Offering to Hades:
    mobs-killed:
    - Cow
    mobs-killed-amounts:
    - 25
    sheep-to-shear:
    - Black
    sheep-sheared:
    - 1
completed-Quests:
- Wild Boar Problems
- Polyphemus
- An incomplete collection
completedRedoableQuests:
- An incomplete collection
completedQuestTimes:
-<PHONE_NUMBER>451
hasJournal: true
lastKnownName: LarisaGeekyGreek

Aaaaand I now see why this all happened in the first place... It may or may not be entirely the journal's fault, but I guess that would be for you to decide :smile:
Why this happened was because yesterday I updated some quests, one of which did end up being Lost Hero, which as you can see this player has. What was changed on it is the item-delivery-amounts: portion of the stage which we had added as a temporary work-around for a previous issue. Seems that when I updated the quest, the plugin was unable to handle the change fluidly, again a possible cause being this specific player has a Journal.
I considered closing this right away after posting but opted not to as I was unsure if it would alert you or not.
-Form

So, what should have happened when you updated the Lost Hero quest? Should item-delivery-amounts be something other than 0?

This is how the quest's stage WAS:
    stages:
      ordered:
        '1':
          items-to-deliver:
          - name-DIRT:amount-1
          npc-delivery-ids:
          - 752
          delivery-messages:
          - '*Thank You*'
        '2':
          npc-ids-to-kill:
          - 750
          npc-kill-amounts:
          - 1

As you can see, it matches what the player's Data file looks like in my earlier post.
This is what it NOW is...
    stages:
      ordered:
        '1':
          npc-ids-to-kill:
          - 750
          npc-kill-amounts:
          - 1

What causes Quests to flip out is the fact that when a player who was offline and has that quest before its delivery stage was removed entirely, their Data file does not get updated.
How I go about fixing it is to look through the console output and find when the errors start (assuming it is only 1 player causing errors), resolve their IGN to UUID, open up their Quests Data file, and execute one of the methods that I found to work: remove quest entirely, modify quest, or if needed  delete their file entirely [I generally do not do this anymore thanks to having a better understanding of what causes issues]. All of these require the player to temporarily disconnect while I modify their file though, as reloading the plugin (via internal reload, or with PlugMan) only re-writes the player's Data file from the system's memory -- figuring that out took some trial and error, but sure does save time versus restarting the entire server!
To specifically answer your question...
The player's file data is correctly configured for Lost Hero BEFORE the changes, and so "0" is simply reflecting the fact they had not delivered any items yet.
However, ultimately the answer is No. That player's questData section now should look like this:
questData:
  Lost Hero:
    citizen-ids-killed:
    - 750
    citizen-amounts-killed:
    - 0
  Offering to Hades:
    mobs-killed:
    - Cow
    mobs-killed-amounts:
    - 25
    sheep-to-shear:
    - Black
    sheep-sheared:
    - 1

And then also having the currentStages set to 0 instead of 1, since as I understand it a quest with 1 stage only is given a 0.
The only two suggestions I can think of to solve this in an automated fashion would be during either server Start or Shutdown the Quests plugin goes through all Data files, runs checks against their listed quest Names, Stages and each stage's Objectives. When a discrepancy is found, execute one of the following methods [Note: I do realize that this in general isn't very efficient, and also some of these may no doubt involve a lot of code]:

If a quest's NAME has changed, but the other Objectives (deliveries, kills, etc) match entirely, then update the name of the quest but keep progress. Alternatively, if the Objectives are missing one or two but otherwise match 100% (i.e. Lost Hero had a delivery removed, but the same Kill Target was still in place), update the quest to reflect changes while keeping progress..
If the Name changes or Delivery objectives are removed on a quest that the player has delivered ANY amount items, flag the quest to allow the player to regain their turned in items. Note: This may need Quests to keep an alternate log file of Deleted or Changed quests in order to call on in order to return items. Reasoning would be due to unique items (NBT, specific item datavalue, etc), so that they receive those back instead of a vanilla item.  SUGGESTION: Often there are times when a player's inventory is full and Quests fails to deliver rewards. If this method is utilized I think that an inventory check should be executed before giving back the items delivered, whereby notifying the player their inventory is full, how many free-slots are required, and providing them a command they can run when when they've made room. /quests deliver maybe? [This would be of general benefit, non-exclusive to this]
Easiest, simply force the player in question to quit the quest or quests which are no longer a valid match. Again, worst case scenario given they'll lose all progress, but worst of all they may lose a lot of valuable items already delivered.

:sigh: I apologize, this was far far wordier than I had originally anticipated :frowning:
(Also I may have edit a portion and forgotten to delete what I changed, but I don't think so... Point is though, if anything reads as confusing, point it out and I'll clarify!)
-Form

So, in a nutshell, player data/journal needs to be updated when a Quest is updated.
Looking further into this, it appears Quests attempts to do so, but fails. I will certainly come back to this at a later date.

lol Yea, in a nutshell, exactly that. Works just fine for online players, doesn't for those who are offline.
Sorry it turned out to be a more involved issue than I was thinking :
-Form

I believe this was fixed sometime over the past year. if this is not the case, please create a new ticket for the issue. Thanks!


Built documentation is out of date

Per the "latest" build for my project, the latest push to the master is correctly found.  The latest build is has a has of 1b67562c0781794301bf05c619a36602efb9b7d5.  This information is found at:
https://readthedocs.org/projects/pynastran-git/builds/3689696/
The documentation for the latest is thus (the problem region is shown):
http://pynastran-git.readthedocs.org/en/latest/_modules/pyNastran/bdf/bdf.html#BDF
The documentation, it is not consistent with the the specified build.  One such file is found at:
https://github.com/SteveDoyle2/pyNastran/blob/1b67562c0781794301bf05c619a36602efb9b7d5/pyNastran/bdf/bdf.py
The __init__ begins on line 247 of this file and is inconsistent with the RTD documentation link.
I suspect some build files have not been properly cleaned out.  Is there anything I can do to fix this?

I'm seeing something similar too - I noticed that a recently-updated doc ( https://github.com/PyFilesystem/pyfilesystem/commit/20efe88158f5de4b680c901eba96de7a006a9ef1 ) was out of date on http://docs.pyfilesystem.org/en/latest/getting_started.html so I tried to trigger a manual rebuild, and RTD then complained about wx being in requirements.txt ( http://readthedocs.org/projects/pyfilesystem/builds/3700600/ ), which is something I fixed over an hour previously! https://github.com/PyFilesystem/pyfilesystem/commit/352ee57b07d44471db50f4a13b37a47806584d7b
Seems like RTD is somehow getting old versions of the Github source?

I forgot to mention, RTD is getting old source code, but not old conf.py or committed RST files.  Wiping the build does not fix it.

I just created an account on RTD and linked it to my github account to see if that would make any difference. I tried forcing another rebuild ( http://readthedocs.org/projects/pyfilesystem/builds/3700755/ ), and it's now grabbed commit-hash c1d94ae227b3b684929a08eb3a641a794e0f9fca which is (a bit better but) still behind the latest version of https://github.com/PyFilesystem/pyfilesystem/commits/master (currently at 20efe88158f5de4b680c901eba96de7a006a9ef1 ).

...and I've just pushed another commit https://github.com/PyFilesystem/pyfilesystem/commit/0f5bc2b68a38dae312e1888a79c16551d8f54e6d which triggered an auto-rebuild on RTD http://readthedocs.org/projects/pyfilesystem/builds/3700773/ and for some reason it's jumped back to the old version 191a54467a93cf9d497ce77b00d3e61f9ca28404 of the source again :-(

@SteveDoyle2 looks like the most recent build has the most recent commit
@lurch not quite sure why the builds are gravitating towards that commit. A manual rebuild pulled the correct commit though.
This could have been an intermittent issue, given both happened in the same time frame. Perhaps the time frame coincides with the GitHub outage?

Also, have either of these projects had a branch/tag/etc named 'latest' at any point?

No.  I did have a "master" RTD build because I wanted it to be consistent with my branch names.  Removing that maybe helped things.  I removed it in an effort to get my project to build.  I removed that right around the time Github went down, which broke other things, but I'm not sure what happened first.

had a branch/tag/etc named 'latest' at any point?

Nope. I've just kicked off my own manual-rebuild of the PyFilesystem RTD and it's remained at the 'correct' version now (so perhaps the problem is fixed), but I'll continue to keep an eye on it.

Well if this resurfaces, the versions may need to be reconfigured -- a branch named latest or stable will cause our code to not auto-advanced it's latest and stable pointer versions.
I'll close this for now, as it sounds like both projects are behaving as normal, but feel free to reopen.

I'm still having problems with this issue.  I wiped the build, but that did not help.  Is there any easy way I can remove the "latest" build and recreate it?
As before, the RST files I wrote are correctly applied to the documentation.
http://pynastran-git.readthedocs.org/en/latest/quick_start/gui.html#scripting
Additionally, the hash is correct.
The RST files that sphinx autogenerated are very old.
http://pynastran-git.readthedocs.org/en/latest/_modules/pyNastran/bdf/bdf.html#BDF
Comparing to the previous link to the following source on line ~254, it's easy to see the RTD source is out of date.  Self has been removed from the docstring.
https://github.com/SteveDoyle2/pyNastran/blob/master/pyNastran/bdf/bdf.py

Are you certain this isn't an issue with local caching? The generated files appear to match the source file you linked to, and the docstrings look how I'd expect. Additionally, the correct git hash is at the bottom of the page.

Are you certain this isn't an issue with local caching?

I'm sorry.  I don't think I follow.  I believe there is local caching on the RTD side.  When I generate documentation locally, it looks correct.  On the RTD side, it appears the parts I wrote by hand are correct, but the auto-generated class/function documentation based on actual source code is out of date.


🐞 Fix Toolbar and Tabs Style Differences

The toolbar is nearly white in Xcode and Finder in light mode while in CodeEdit it is light gray.

The toolbar is lighter gray in Xcode and Finder in dark mode while in CodeEdit it is a darker gray.

Notice the difference in tabs on both light and dark mode compared to Finder. We are opting for a more native tab style so that needs to look exactly like native tabs found in Finder. At some point it may be nice to have a setting to toggle between native style or Xcode style tabs.
Also notice the vibrancy effects, hover states and transition effects.
https://user-images.githubusercontent.com/806104/158947311-22cd9ff0-8cb6-4c37-9569-737d266645d2.mp4

I am trying to figure out how to fix the toolbar portion right now, I will look at the tab bar after.

I am working on improving the tab item styling and animation (to follow the design of Xcode, and add a configurable option to generally switch between two styles).
Do we need to leave some APIs for the theming of tab item?

No APIs at the moment. Did you have anything particular in mind?

Look at SegmentedControl for the background color. I believe it is .selectedControl at 0.75 opacity.

I think this can be closed. @austincondiff


Primitive types in Actor interfaces not supported by APT proxy compiler

I was declaring an Actor interface like so:
interface MyActor {
    void action(int count);
}

This fails the annotation processor with the message:
Error:(7, 8) error: Failed to generate eventizers for com.github.mttkay.actors.EventLog
java.lang.IllegalArgumentException: unsupported kind INT
at fi.jumi.actors.generator.codegen.JavaType.of(JavaType.java:26)
at fi.jumi.actors.generator.codegen.JavaVar$AstJavaVar.getType(JavaVar.java:61)
at fi.jumi.actors.generator.codegen.JavaVar.toFormalArguments(JavaVar.java:29)
at fi.jumi.actors.generator.EventStubGenerator.getFrontend(EventStubGenerator.java:101)
at fi.jumi.actors.generator.EventStubGenerator.getGeneratedClasses(EventStubGenerator.java:56)
at fi.jumi.actors.generator.AnnotationProcessor.generateEventizers(AnnotationProcessor.java:75)
at fi.jumi.actors.generator.AnnotationProcessor.process(AnnotationProcessor.java:30)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
...

Is there any reason why primitive types are not supported?
It works when changing the formal parameter type to Integer.

I think the JavaType helper is missing a case for PrimitiveType. What's the reason for using so much custom code around dealing with types? The Types class and related in the JDK should cover all you need? You can obtain a Types instance from the processing environment which you can use to enumerate types, no need to re-implement all this?

Thanks for telling about javax.lang.model.util.Types, it simplifies things considerably. :) This is my first experiment of using APT and I couldn't find much learning material online (all the articles I found were far too basic), so a code review from someone with more experience is welcome.
I'll look into this bug probably this Friday. Maybe switching to use Types will solve it as a side effect.

:+1: Yeah the docs are definitely scarce around APT. I always found it useful to look at projects like Dagger or auto to see how they do it, especially around unit testing (they use Google Compile Testing which works pretty well)


Speed up modtime on Windows

See https://github.com/martine/ninja/issues/476 - up to 7x faster. Also worth checking in conjunction with #13.

Merging with #13: For 6827 files: Someone has suggested that accessing the file modification times is actually CPU bound to some extent, and parallelising this operation may result in a noop build speedup. Apparently git on Windows uses this trick.
For 6827 files: 1CPU = 0.61s, 2CPU = 0.42s, 3CPU = 0.32s, 4CPU = 0.29s
So looks like it would help, also starting doing the mtime while loading the database would help too.

So there are three techniques here:

Parallelism, which looks like it might give us 2x speedup, and is used by Git.
Bulk operations through FindFiles, which might give us 7x speedup, but is dependent on most files in a directory being used (which I suspect is mostly true, but you could easily come up with pathological counter examples).
Starting modtime sooner when you are deserialising the database rather than when you are running rules.

We now have parallelism. The problem with the other approaches is they necessarily involve caching information, which might become stale.


Test writes in a cluster with a downed node

Spin up a 3 box cluster and do some writes. Then kill one, do more writes.
Ensure that the writes that went in while it was down are replicated to the node now that it's back.

This test case failed. I brought up 3 nodes, listening on port 8086, 8087, and 8088. After downing the node listening on port 8088, writing another another point to the server on 8086, and then bringing the downed node back online, I see the following:
$ curl -G http://localhost:8086/query?pretty=true --data-urlencode "db=foo" --data-urlencode "q=SELECT value FROM \"foo\".\"bar\".cpu GROUP BY time(1h)"
{
    "results": [
        {
            "rows": [
                {
                    "name": "cpu",
                    "columns": [
                        "time",
                        "value"
                    ],
                    "values": [
                        [
<PHONE_NUMBER>703000,
                            100
                        ],
                        [
<PHONE_NUMBER>703000,
                            100
                        ]
                    ]
                }
            ]
        }
    ]
}
$ curl -G http://localhost:8087/query?pretty=true --data-urlencode "db=foo" --data-urlencode "q=SELECT value FROM \"foo\".\"bar\".cpu GROUP BY time(1h)"
{
    "results": [
        {
            "rows": [
                {
                    "name": "cpu",
                    "columns": [
                        "time",
                        "value"
                    ],
                    "values": [
                        [
<PHONE_NUMBER>703000,
                            100
                        ],
                        [
<PHONE_NUMBER>703000,
                            100
                        ]
                    ]
                }
            ]
        }
    ]
}
$ curl -G http://localhost:8088/query?pretty=true --data-urlencode "db=foo" --data-urlencode "q=SELECT value FROM \"foo\".\"bar\".cpu GROUP BY time(1h)"
{
    "results": [
        {
            "rows": [
                {
                    "name": "cpu",
                    "columns": [
                        "time",
                        "value"
                    ],
                    "values": [
                        [
<PHONE_NUMBER>703000,
                            100
                        ]
                    ]
                }
            ]
        }
    ]
}

Note how the point is missing from server 8088.

The downed node did re-join the cluster, as can be seen from the logs. I'll dig into this and see what is going on.

Master as of https://github.com/influxdb/influxdb/commit/2aef4a794f3d419566859627d859d0bdbb96013a no longer exhibits this problem.
@benbjohnson -- I am curious. Any specific change you can point to (something in the major Raft refactor) that fixed this issue?

Actually, on closer inspection, this is still an issue -- re-opening.

I tested this today, after all the recent fixes, and it all looks good -- closing.
Test script is here: https://gist.github.com/otoolep/d573548f3cab19ab1fdb


1.1 RC1 Examples does not have the  latest spring boot version 3.2 RC1

https://github.com/spring-projects/spring-modulith/blob/2241ae19600c57d

Merged pull request against #329.


feat: KeyRange reads into "temporary" memory, remove StateSlots and "state" memory

This PR is based off the experimental develop branch (#212) which includes work toward the new generalized predicate program DAG model.
We remove "state memory" (which was originally used to provide values read from state-read programs to following state-read programs and constraints) in favour of having the KeyRange ops read directly into regular "temporary" memory.
Upon program completion, a "parent" node's stack and memory are used to initialize the stack and memory of any child programs, so the idea is that we no longer need this extra side-channel of "state memory" for passing values between programs.
The main difference is that temporary memory is flat. Under this PR, a KeyRange op first involves writing the absolute memory address and length for each value, followed by writing the values themselves. The KeyRange tests are a bit hairier as a result, but hopefully give an idea of how the behaviour has changed.
Closes #207
Closes #208

Cool.  If there is going to be a single memory and it ends up being the primary way that the programs pass data along to each other, should we keep a TRUNC or FREE instruction so that we only pass along actually useful data and can throw away temporary stuff?

should we keep a TRUNC or FREE instruction so that we only pass along actually useful data and can throw away temporary stuff?

looks like @freesig is a step ahead of us and landed FREE a couple of commits ago: https://github.com/essential-contributions/essential-base/blob/e3e169311803e2298e7f53ce89f0fc15441a5525/crates/asm-spec/asm.yml#L530


[composer][1/5]Outline Unary RPC methods' sample code implementation

@miraleung Could you take another look. Instead of comment composer call sample code, what I did is in service client class composer, compose sample code string first, and then pass it into the ServiceSampleCommentComposer.
Appreciate your comments. 🙏

Use samplecode-master branch


Windows test cleanup

What this PR does
Simplifies Windows (sysprep included) tests and removes skips. Testsuite users now need to filter out these tests with labels.

Fixes #
Special notes for your reviewer
Release note

NONE

Requires update as we relied on skip

/cc @0xFelix

@0xFelix @jean-edouard PTAL

@0xFelix PTAL

/retest

@jean-edouard Can we unhold?

/test pull-kubevirt-e2e-windows2016

/test pull-kubevirt-e2e-windows2016

Dropped Windows label from Sysprep as it is only running in periodics and the disk is not available on the windows lane

/test pull-kubevirt-e2e-windows2016

/test pull-kubevirt-e2e-windows2016


aks/use-wasi-node-pools: update the doc to refer to SpinKube

replace the slight workload with spin workload
add a section to describe all the supported runtime classes
few changes to the wording

@schaffererin
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

I've resolved all the comments. Could you please take another look? @schaffererin

#sign-off


Footer - Previous, Next

On your documentation site I see a footer with Previous / Next navigation but I can't seem to get that to appear.  Is there anything special I need to do?  Also, I didn't see a template file for it in templates/python/material

This is a MkDocs feature, relying on having every page in the nav. Without a repro case from you, I can only guess that you didn't define a nav.


Fix web crash on missing uniform buffer padding

The alignment is actually already there, but wgpu/Naga doesn't see it at this point.
Fixes  #1697
Checklist

[x] I have read and agree to Contributor Guide and the Code of Conduct

Confirmed working: https://app.rerun.io/commit/c8d0b55/?url=/data/prerelease/colmap_fiat.rrd


feat(*): add annotations to release

Annotations is an unstructured key value map stored with a release that
may be set by external tools to store and retrieve arbitrary metadata.
For example: currently there is no way to tell where the chart, from which
a release had been installed, came from (local file, repo, etc.). We can
store the chart's origin in the release annotations.
In future, when Helm will utilize TPRs or an addon API server to store
the release data, these annotations can easily be converted to the k8s
API's v1.ObjectMeta.Annotations.

This change is

We have in the past refrained from automatically adding annotations and labels, and instead suggested that people do this in the charts. The chart convention documents cover this, and most charts that I have seen seem to implement at least some of this. For example:
metadata:
  name: my-release-deployment
  labels:
    app: my-release
    chart: myapp-0.1.0
    release: my-release
    heritage: Tiller

Can you explain why it is better to do this in Tiller code instead? And also why it should be done in  annotations instead of labels?
I think there is an issue covering this already, and it has some associated discussion.

Can you explain why it is better to do this in Tiller code instead?

Sorry, I was unclear here.
I suggest attaching annotations only to the Helm's Release objects, not to the k8s objects, that are produced by Tiller when a release had been installed. I haven't found existing ways to store arbitrary metadata with Release objects, so I've decided to introduce k8s-like annotations.
Examples of such metadata would be:

origin (repo, path in the filesystem) of the installed Chart;
user (name, email), that installed the Release;
comments, inserted by user, which installed the Release.

And also why it should be done in annotations instead of labels?

Label keys have fixed length (AFAIR 63 chars?), while annotation keys don't have length limits. Also, the main purpose of labels is selecting objects, while annotations are there to store arbitrary (non-identifying) metadata with objects.
I believe, it could be also useful to attach labels along with annotations to Releases. For example, to list only releases, created by a given user.
But I don't have use-cases for labels yet, so I've proposed adding annotations only.

Seems like the author of #2450 also wants this functionality.
BTW, I can modify the PR so we would store the annotations in the underlying ConfigMap's metadata.annotations instead of storing them along with the other Release data in the data.release field.
This way the annotations might be accessed without Tiller's help.

Hmm... yeah, this is a more sophisticated approach than #2671, but would accomplish the same thing. So it might solve @kdada's problem, but also add a desirable feature to Helm.
@kdada would this solve your use case?
Regarding annotations, it seems like it might be more useful in the ConfigMap annotations, but that would cause quite a bit of extra work for other storage drivers. So leaving as-is is okay on that front.

@technosophos  Actually, I need the both feature.
The annotation is used for runtime info. I can use it to store runtime info instead of using values.yaml (#2450 as your said). And I need #2671 to store static info which belongs to a chart.

Added a one-line fixup: restore annotations on Release rollback.

Rebased against master.

BTW, here is the story behind this PR.
I'm working on an application -- kind of frontend to the part of Helm functionality. Among other things, it should be able to display a link to a Chart, from which a given Release had been installed.
Most likely, I'll also need to attach some other metadata, like those I've mentioned in the examples, to a Release in the future.


functional-tester: server returns ErrTooManyRequests

When run without failpoints enabled with master branch, this happens like every 400 rounds:
2016-07-15 09:13:17.407892 I | etcd-tester: [round#379] compacting 173189 entries (timeout 13s)
2016-07-15 09:13:17.415642 I | etcd-tester: [round#379] compacting storage (current revision 61857785, compact revision 61847785)
2016-07-15 09:13:17.415686 I | etcd-tester: [compact kv #0] starting (endpoint http://<IP_ADDRESS>:2379)
2016-07-15 09:13:22.366619 I | etcd-tester: [compact kv #0] done (endpoint http://<IP_ADDRESS>:2379)
2016-07-15 09:13:22.366697 I | etcd-tester: [compact kv #1] starting (endpoint http://<IP_ADDRESS>:2379)
2016-07-15 09:13:22.373339 I | etcd-tester: [compact kv #1] already compacted (endpoint http://<IP_ADDRESS>:2379)
2016-07-15 09:13:22.373353 I | etcd-tester: [compact kv #1] done (endpoint http://<IP_ADDRESS>:2379)
2016-07-15 09:13:22.373386 I | etcd-tester: [compact kv #2] starting (endpoint http://<IP_ADDRESS>:2379)
2016-07-15 09:13:22.376536 I | etcd-tester: [compact kv #2] already compacted (endpoint http://<IP_ADDRESS>:2379)
2016-07-15 09:13:22.376554 I | etcd-tester: [compact kv #2] done (endpoint http://<IP_ADDRESS>:2379)
2016-07-15 09:13:22.376569 I | etcd-tester: [round#379] compacted storage (compact revision 61847785)
2016-07-15 09:13:22.376580 I | etcd-tester: [round#379] checking compaction (compact revision 61847785)
2016-07-15 09:13:22.550047 I | etcd-tester: [round#379] confirmed compaction (compact revision 61847785)
2016-07-15 09:13:22.550081 I | etcd-tester: [round#379] starting the stressers...
2016-07-15 09:13:22.550179 I | etcd-tester: stresser "<IP_ADDRESS>:2379" is started
2016-07-15 09:13:22.550270 I | etcd-tester: stresser "<IP_ADDRESS>:2379" is started
2016-07-15 09:13:22.550350 I | etcd-tester: stresser "<IP_ADDRESS>:2379" is started
2016-07-15 09:13:22.550360 I | etcd-tester: [round#379] started stressers
2016-07-15 09:13:22.589981 I | etcd-tester: [round#380 case#0] injecting failure "kill all members"
2016-07-15 09:13:22.653770 I | etcd-tester: transport: http2Client.notifyError got notified that the client transport was broken read tcp <IP_ADDRESS>:35710-><IP_ADDRESS>:2379: read: connection reset by peer.
2016-07-15 09:13:22.705607 I | etcd-tester: transport: http2Client.notifyError got notified that the client transport was broken read tcp <IP_ADDRESS>:33166-><IP_ADDRESS>:2379: read: connection reset by peer.
2016-07-15 09:13:22.719098 I | etcd-tester: transport: http2Client.notifyError got notified that the client transport was broken read tcp <IP_ADDRESS>:60072-><IP_ADDRESS>:2379: read: connection reset by peer.
2016-07-15 09:13:22.719626 I | etcd-tester: [round#380 case#0] injected failure
2016-07-15 09:13:22.719647 I | etcd-tester: [round#380 case#0] recovering failure "kill all members"
2016-07-15 09:13:23.654100 I | etcd-tester: grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp <IP_ADDRESS>:2379: getsockopt: connection refused"; Reconnecting to {"<IP_ADDRESS>:2379" <nil>}
2016-07-15 09:13:23.705991 I | etcd-tester: grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp <IP_ADDRESS>:2379: getsockopt: connection refused"; Reconnecting to {"<IP_ADDRESS>:2379" <nil>}
2016-07-15 09:13:23.719514 I | etcd-tester: grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp <IP_ADDRESS>:2379: getsockopt: connection refused"; Reconnecting to {"<IP_ADDRESS>:2379" <nil>}
2016-07-15 09:13:23.723249 I | etcd-tester: grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp <IP_ADDRESS>:2379: getsockopt: connection refused"; Reconnecting to {"<IP_ADDRESS>:2379" <nil>}
2016-07-15 09:13:24.206012 W | etcd-tester: #0 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))
...
2016-07-15 09:14:23.311772 W | etcd-tester: #59 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))
2016-07-15 09:14:24.311971 I | etcd-tester: [round#380 case#0] recovery error: etcdserver: too many requests (http://<IP_ADDRESS>:2379)
2016-07-15 09:14:24.312032 I | etcd-tester: [round#380] cleaning up...

Happening again in 5-node cluster. Need to investigate.

2016-07-26 00:10:11.270320 I | etcd-tester: [round#0 case#1] injecting failure "kill majority of the cluster"
2016-07-26 00:10:11.340348 I | etcd-tester: transport: http2Client.notifyError got notified that the client transport was broken read tcp <IP_ADDRESS>:34546-><IP_ADDRESS>:2379: read: connection reset by peer.
2016-07-26 00:10:11.416948 I | etcd-tester: transport: http2Client.notifyError got notified that the client transport was broken read tcp <IP_ADDRESS>:54482-><IP_ADDRESS>:2379: read: connection reset by peer.
2016-07-26 00:10:11.588880 I | etcd-tester: transport: http2Client.notifyError got notified that the client transport was broken EOF.
2016-07-26 00:10:11.589335 I | etcd-tester: [round#0 case#1] injected failure
2016-07-26 00:10:11.589350 I | etcd-tester: [round#0 case#1] recovering failure "kill majority of the cluster"
2016-07-26 00:10:11.593922 I | etcd-tester: [round#0 case#1] recovered failure
2016-07-26 00:10:11.593942 I | etcd-tester: [round#0 case#1] canceling the stressers...
2016-07-26 00:10:11.594443 I | etcd-tester: stresser "<IP_ADDRESS>:2379" is canceled
2016-07-26 00:10:11.594481 I | etcd-tester: stresser "<IP_ADDRESS>:2379" is canceled
2016-07-26 00:10:11.594662 I | etcd-tester: grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp <IP_ADDRESS>:2379: getsockopt: connection refused"; Reconnecting to {"<IP_ADDRESS>:2379" <nil>}
2016-07-26 00:10:11.594683 I | etcd-tester: grpc: addrConn.transportMonitor exits due to: grpc: the connection is closing
2016-07-26 00:10:11.595004 I | etcd-tester: stresser "<IP_ADDRESS>:2379" is canceled
2016-07-26 00:10:11.595256 I | etcd-tester: grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp <IP_ADDRESS>:2379: getsockopt: connection refused"; Reconnecting to {"<IP_ADDRESS>:2379" <nil>}
2016-07-26 00:10:11.595271 I | etcd-tester: grpc: addrConn.transportMonitor exits due to: grpc: the connection is closing
2016-07-26 00:10:11.595415 I | etcd-tester: stresser "<IP_ADDRESS>:2379" is canceled
2016-07-26 00:10:11.595619 I | etcd-tester: grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp <IP_ADDRESS>:2379: getsockopt: connection refused"; Reconnecting to {"<IP_ADDRESS>:2379" <nil>}
2016-07-26 00:10:11.595642 I | etcd-tester: grpc: addrConn.transportMonitor exits due to: grpc: the connection is closing
2016-07-26 00:10:11.595773 I | etcd-tester: stresser "<IP_ADDRESS>:2379" is canceled
2016-07-26 00:10:11.595787 I | etcd-tester: [round#0 case#1] canceled stressers
2016-07-26 00:10:11.595796 I | etcd-tester: [round#0 case#1] updating current revisions...
2016-07-26 00:10:12.656577 I | etcd-tester: [round#0 case#1] updated current revisions with 26128
2016-07-26 00:10:12.656630 I | etcd-tester: [round#0 case#1] all members are consistent with current revisions [revisions: map[http://<IP_ADDRESS>:2379:26128 http://<IP_ADDRESS>:2379:26128 http://<IP_ADDRESS>:2379:26128 http://<IP_ADDRESS>:2379:26128 http://<IP_ADDRESS>:2379:26128]]
2016-07-26 00:10:12.656640 I | etcd-tester: [round#0 case#1] checking current storage hashes...
2016-07-26 00:10:12.656647 I | etcd-tester: [round#0 case#1] all members are consistent with storage hashes
2016-07-26 00:10:12.656654 I | etcd-tester: [round#0 case#1] starting the stressers...
2016-07-26 00:10:12.656754 I | etcd-tester: stresser "<IP_ADDRESS>:2379" is started
2016-07-26 00:10:12.656861 I | etcd-tester: stresser "<IP_ADDRESS>:2379" is started
2016-07-26 00:10:12.656997 I | etcd-tester: stresser "<IP_ADDRESS>:2379" is started
2016-07-26 00:10:12.657115 I | etcd-tester: stresser "<IP_ADDRESS>:2379" is started
2016-07-26 00:10:12.657236 I | etcd-tester: stresser "<IP_ADDRESS>:2379" is started
2016-07-26 00:10:12.657250 I | etcd-tester: [round#0 case#1] started stressers
2016-07-26 00:10:12.657260 I | etcd-tester: [round#0 case#1] succeed!
2016-07-26 00:10:12.974846 W | etcd-tester: #0 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))
2016-07-26 00:10:14.029413 W | etcd-tester: #1 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))
2016-07-26 00:10:15.101497 W | etcd-tester: #2 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))
2016-07-26 00:10:16.206458 W | etcd-tester: #3 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))
2016-07-26 00:10:17.264345 W | etcd-tester: #4 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))
2016-07-26 00:10:18.341863 W | etcd-tester: #5 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))
2016-07-26 00:10:19.354173 W | etcd-tester: #6 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))
2016-07-26 00:10:20.369578 W | etcd-tester: #7 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))
2016-07-26 00:10:21.374603 W | etcd-tester: #8 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))
2016-07-26 00:10:22.381448 W | etcd-tester: #9 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))
2016-07-26 00:10:23.398595 W | etcd-tester: #10 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))
2016-07-26 00:10:24.405856 W | etcd-tester: #11 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))
2016-07-26 00:10:25.422911 I | etcd-tester: [round#0 case#2] injecting failure "kill one random member"
2016-07-26 00:10:25.434436 I | etcd-tester: transport: http2Client.notifyError got notified that the client transport was broken EOF.

Error when deployed with current master branch. Will investigate more.

@heyitsanthony @xiang90 Here are problems in current 5-node cluster (3-node cluster is stable with any workloads).

If stresser is too intensive (writes, reads, deletes, etc. with QPS >15,000), etcd-tester fails either
from context deadline exceeded or etcdserver: too many requests.
2016-08-04 18:54:43.384135 I | etcd-tester: [round#2 case#10] injecting failure "slow down all members' network"
2016-08-04 18:54:45.844818 I | etcd-tester: [round#2 case#10] injected failure
2016-08-04 18:54:45.844868 I | etcd-tester: [round#2 case#10] recovering failure "slow down all members' network"
2016-08-04 18:55:14.600794 W | etcd-tester: #0 setHealthKey error (context deadline exceeded (http://<IP_ADDRESS>:2379))
2016-08-04 18:55:16.601800 W | etcd-tester: #1 setHealthKey error (context deadline exceeded (http://<IP_ADDRESS>:2379))
2016-08-04 18:55:18.602700 W | etcd-tester: #2 setHealthKey error (context deadline exceeded (http://<IP_ADDRESS>:2379))
2016-08-04 18:55:20.603592 W | etcd-tester: #3 setHealthKey error (context deadline exceeded (http://<IP_ADDRESS>:2379))

This is because at the same time, the server side complains:
2016-08-04 18:55:18.192136 W | etcdserver: avoid queries with large range/delete range!
2016-08-04 18:55:18.211402 W | etcdserver: apply entries took too long [19.241361ms for 1 entries]
2016-08-04 18:55:18.211451 W | etcdserver: avoid queries with large range/delete range!
2016-08-04 18:55:18.264797 W | etcdserver: apply entries took too long [24.369379ms for 1 entries]
2016-08-04 18:55:18.264850 W | etcdserver: avoid queries with large range/delete range!
2016-08-04 18:55:18.292144 W | etcdserver: apply entries took too long [26.692088ms for 1 entries]

Lighter workload (QPS <10,000) gives cluster too slow: only commit XXX requests in 30s.
This is because etcd-tester expects at least 10,000 stress requests processed within 30 seconds,
and read requests sometimes takes longer, making applier fall behind and returning etcdserver: too many requests.
2016-08-04 19:29:12.596001 I | etcd-tester: [DEBUG] stresser error rpc error: code = 2 desc = etcdserver: too many requests (<nil>, context canceled)
2016-08-04 19:29:12.596083 I | etcd-tester: [DEBUG] stresser error rpc error: code = 2 desc = etcdserver: too many requests (<nil>, context canceled)
2016-08-04 19:29:13.510437 W | etcd-tester: #1 setHealthKey error (etcdserver: too many requests (http://<IP_ADDRESS>:2379))

So I updated stresser to retry when it gets etcdserver.ErrTooManyRequests in https://github.com/coreos/etcd/pull/6081. Also gave more wait time SetHealthKey, but it still gets errors:
2016-08-04 23:49:13.580279 W | etcd-tester: #53 setHealthKey error (context deadline exceeded (http://<IP_ADDRESS>:2379))
2016-08-04 23:49:15.581044 W | etcd-tester: #54 setHealthKey error (context deadline exceeded (http://<IP_ADDRESS>:2379))
2016-08-04 23:49:18.572555 W | etcd-tester: #55 setHealthKey error (context deadline exceeded (http://<IP_ADDRESS>:2379))
2016-08-04 23:49:21.446366 W | etcd-tester: #56 setHealthKey error (context deadline exceeded (http://<IP_ADDRESS>:2379))
2016-08-04 23:49:23.447367 W | etcd-tester: #57 setHealthKey error (context deadline exceeded (http://<IP_ADDRESS>:2379))
2016-08-04 23:49:26.271767 W | etcd-tester: #58 setHealthKey error (context deadline exceeded (http://<IP_ADDRESS>:2379))
2016-08-04 23:49:29.230092 W | etcd-tester: #59 setHealthKey error (context deadline exceeded (http://<IP_ADDRESS>:2379))
2016-08-04 23:49:30.230291 I | etcd-tester: [round#0 case#8] recovery error: context deadline exceeded (http://<IP_ADDRESS>:2379)
2016-08-04 23:49:30.230367 I | etcd-tester: [round#0] cleaning up...
2016-08-04 23:49:30.294821 I | etcd-tester: transport: http2Client.notifyError got notified that the client transport was broken EOF.

TL;TR
Currently we stress too hard and etcd-tester keeps failing with etcdserver.ErrTooManyRequests.
We can try tuning the stresser with lesser workload, but it will be still hacky because we then
need to find some kind of perfect configuration which doesn't trigger etcdserver.ErrTooManyRequests
but is fast enough not get the slow commit error.
Any suggestion to handle this without much tuning?
Thanks.

@gyuho divide the per-stresser qps by total number of stressers?

Ok will try that. Thanks
On Thu, Aug 4, 2016, 17:52 Anthony Romano<EMAIL_ADDRESS>wrote:

@gyuho https://github.com/gyuho divide the per-stresser qps by total
number of stressers?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/coreos/etcd/issues/5950#issuecomment-237728160, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AGe_cpnB_E_gqbWZZpd90O5zv-Xux2yMks5qcolHgaJpZM4JNlM2
.

--
Sincerely,
Gyu-Ho Lee

The problem does not really make sense. Even with 10,000 QPS, we should be able to put 30 * 10,000 keys for 30 seconds if we only do put. Now we do put, get, delete, we should be able to do 30/3*10,1000 keys for 30 seconds. Now it is far less than that number (< 10, 000). I do not think it is a QPS issue at all.

We really need to separate the two different issues:

small number of commits
too many requests

too many requests can be related to QPS. small number of commits should not. Let's fix them one by one instead of trying to fix them all together.

basically I do not quite believe this claim.

but it is still hacky because we then
need to find some perfect configuration which doesn't trigger etcdserver.ErrTooManyRequests, but is fast enough to not trigger slow commit error.

1000 QPS should far more than enough to stress out the cluster. That is around 30,000 for 30 seconds. Now we have 10000 QPS, and we cannot commit enough. We need to know exact why.

@xiang90 Right. I will be clearer after investigating further.

We already fixed the too expensive query stuff. The commit not enough is not a problem in etcd. See https://github.com/coreos/etcd/pull/6123


Docs for grommet-cli and dxc theme

Wondering if there are docs for grommet-cli and how it works, i.e. does it use create-react-app underneath ? Also trying to create new app dxc theme is missing.

Hi, I believe DXC theme is not part of an official release yet. We will release a new version soon (probably this friday).
The best source of documentation for the cli is grommet help command, you can also issue help command for a specific task, for example grommet new --help.
It does not use create-react-app underneath.
I'm closing this issue since I believe there is nothing to be fixed. Feel free to continue the discussion here.


ENH: Add observed covariance from HCP data to cov notebook

Add observed covariance from HCP data to the notebook demonstrating the covariance functions.

Following https://github.com/nipreps/eddymotion/pull/214#issuecomment-2209132845.

I'm getting /data/hcp/bvals does not exist - can we maybe set up an env variable for the path where data is?

I'm getting /data/hcp/bvals does not exist

Sorry, I should have mentioned in that we should try with some local HCP data that we may have. I did not use the H5 file used in other examples because an HCP participant is used in the figure.

can we maybe set up an env variable for the path where data is?

We could. If you know some HCP participant that is up there somewhere in OpenNeuro we could use that for the notebook.

HCP should not be out there... I'll send you an email with solutions.

If you have the S3 credentials from HCP set up you can use DIPY's 'fetch_hcp':
https://github.com/dipy/dipy/blob/master/dipy/data/fetcher.py#L2599

@jhlegarreta can you send me the dwi, bvecs, bvals and mask you are using before tomorrow's meeting?

@jhlegarreta thanks for the data - closing this in favor of #218 (set you as a co-author of the commit to credit your original work here, hope that's fine!)