[Engine] Calling game.Exit() in a game running in Fullscreen mode causes an unhandled exception error on exit.

Release Type: Official Release
Version: <IP_ADDRESS>8
Platform(s): Windows
Describe the bug
Calling game.Exit() in a game running in Fullscreen mode causes an unhandled exception error on exit.  It appears the render device is resetting back to it's default windowed resolution on exit of fullscreen, and is trying to reload assets which have been unloaded by the game as it exited.
To Reproduce
Steps to reproduce the behavior:

Set game.Window.PreferredFullscreenSize to a size different to windowed resolution. I use:
     GraphicsOutput[] array = game.GraphicsDevice.Adapter.Outputs;
     game.Window.PreferredFullscreenSize = new Int2(array[0].CurrentDisplayMode.Height, array[0].CurrentDisplayMode.Width);

Set game.Window.IsFullscreen = true;

Call game.Exit()

Expected behavior
Game to exit silently and successfully.
Screenshots

Log and callstacks
N/A
Additional context
I have a simple project available which shows this issue here - SimpleFullscreenCrashTest.zip.
I have confirmed the issue using both normal fullscreen and 'FullscreenIsBorderlessWindow'.  Issue occurs whether you run from editor, Visual Studio or from a build file directly.
I upgraded a game from 4.0 which did not have this issue to the version <IP_ADDRESS>8, and am now experiencing this in that game. I also have a game that has only had this issue since upgrading to <IP_ADDRESS>8 from the previous patch suggesting this is a new issue in <IP_ADDRESS>8

In trying to write a workaround for this bug, I narrowed the bug down and can confirm it happens whenever you exit fullscreen mode, you do not have to be exiting the game.  Exiting the game is disabling fullscreen as well.  Exactly what in the disabling fullscreen process is causing the issue I haven't yet figured out.

I have been investigating running the game in different contexts to see if it makes a difference.  Desktop and WPF both work but still have the same fullscreen crash bug, however SDL context doesn't work at all.  I get an error on launch. Attached is the error screenshot.

The inner text reads: TypeLoadException: Method 'get_Windows64' in type 'Silk.NET.SDL.SDLLibraryNameContainer' from assembly 'Silk.NET.SDL, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' does not have an implementation.

I've downloaded the source and built the version 4.1 master and it has the same issue with Fullscreen and SDL context.  My app is DX11 win64 only.  Not sure if this makes any difference.

If I run a new project from self-built Stride, with no code, all contexts work as expected.  When I add code to set the game to fullscreen, Desktop, WPF context works, but SDL context displays a blank transparent window where I can see my desktop, there are no errors.
If I further add code to after 10 seconds exit fullscreen I then induce the DX11 SwapChainGraphicsPresenter error in all contexts except SDL.  SDL reverts back to windowed without any error and is now displaying correctly.
So I amended the test code to flip between fullscreen and windowed every 10 seconds.  As expected the other contexts all failed on the first switch invoking the DX11 SwapChainGraphicsPresenter error.  For the SDL context, it does the 'no display fullscreen', then switches to windowed and is visible.  On the next switch back to fullscreen SDL context falls over with a DX11 SwapChainGraphicsPresenter error.  This is the error generated:

It throws in the resize there:
https://github.com/stride3d/stride/blob/ffd71acc8a8a26a80e5275f833b6e1442e98d01c/sources/engine/Stride.Games/GraphicsDeviceManager.cs#L1051-L1065
Forcing a CreateDevice as the logic never sets needToCreateNewDevice back to false because of the exception.
Here's the exception that's ignored.
SharpDX.SharpDXException: HRESULT: [0x80070005], Module: [General], ApiCode: [E_ACCESSDENIED/General access denied error], Message: Access is denied.

   at SharpDX.Result.CheckError() in C:\projects\sharpdx\Source\SharpDX\Result.cs:line 195
   at SharpDX.DXGI.SwapChain.ResizeBuffers(Int32 bufferCount, Int32 width, Int32 height, Format newFormat, SwapChainFlags swapChainFlags) in C:\projects\sharpdx\Source\SharpDX.DXGI\Generated\REFERENCE\Interfaces.cs:line 4670
   at Stride.Graphics.SwapChainGraphicsPresenter.ResizeBackBuffer(Int32 width, Int32 height, PixelFormat format)
   at Stride.Graphics.GraphicsPresenter.Resize(Int32 width, Int32 height, PixelFormat format)
   at Stride.Games.GraphicsDeviceManager.ChangeOrCreateDevice(Boolean forceCreate)

So two issues in one, the one about serialization should be fixed as that serves as a failsafe to restore the game when driver crashes.

It throws in the resize there:
https://github.com/stride3d/stride/blob/ffd71acc8a8a26a80e5275f833b6e1442e98d01c/sources/engine/Stride.Games/GraphicsDeviceManager.cs#L1051-L1065
Forcing a CreateDevice as the logic never sets needToCreateNewDevice back to false because of the exception.
So two issues in one, the one about serialization should be fixed as that serves as a failsafe to restore the game when driver >crashes.

I am just checking I have the issue straight in my head :)
We have two issues.  The first issue is the exception which causes the rest of the function, including setting the bool to false, to not run. This forces a CreateDevice.
The second issue is that CreateDevice should succesfully create a new device, and not itself throw an error about the content serializer not being able to load textures.
I understand the priority of fixing the CreateDevice issue, but if we do not also deal with the other issue, wouldn't we be in a situation where whenever there is a change from fullscreen a new graphics device will be created?  I understand a fullscreen swap isn't generally something that occurs very often, but recreating a device would be quite expensive on resources each time wouldn't it?

Any news on this?  My 2nd game was supposed to release in December but still isn't released because of this issue, and my originally released game on Steam is currently broken because of this issue.  Any chance of this getting fixed?  Switching my games to DX12 just causes a whole heap of other errors & problems so I want to know if this will be fixed or if my games are now consigned to the rubbish bin because of this bug?
Utlimately it's just a progression of a bug I first posted about in 2020 - https://github.com/stride3d/stride/issues/932
but I just want to know is this going to be fixed?

I believe you know that this engine is community driven, people contributing to it are doing so on their free time. I don't have time to look into this further, and it doesn't look like anyone else is interested in tackling it, so your best bet is to fix it yourself or actively find someone who would do it for you

I can replicate both the fullscreen SDL and game.Exit() crashes in the attached sample and a new project (Alt + Enter to fullscreen and Alt + F4 to close are enough to replicate the latter crash).
This is a pretty critical issue as it means fullscreen support is effectively broken in Stride 4.2 on Windows (possibly other platforms as well). We should consider a bounty.

Just some added info the error seems to be Directx at least from what I have tested. I dont kow if opengl/vulkan works as expected. And it happens both when exiting the game from fullscreen and changing from fullscreen to windowed but with different errors.
Crash message when exiting from fullscreen:

SharpDX.SharpDXException: 'HRESULT: [0x80070005], Module: [General], ApiCode: [E_ACCESSDENIED/General access denied error], Message: Access is denied.
Crash message when going back to windowed:

SharpDX.SharpDXException: 'HRESULT: [0x887A0022], Module: [SharpDX.DXGI], ApiCode: [DXGI_ERROR_NOT_CURRENTLY_AVAILABLE/NotCurrentlyAvailable], Message: A resource is not available at the time of the call, but may become available later.

In the next few days, if life and work allows, I plan to update my Silk DX branch. There we can test if it is DX related, or SharpDX-specific, because while converting from SharpDX I've found several places where we were using the API wrong.
In fact, one of the reasons I've not yet finished that PR is because although the conversion is almost finished and compiles, the DX debug runtime logs hundreds of warnings of resources not released correctly, buffers not transitioned correctly, etc.

a temporary work around is the below code it seems.
if (Game.Window.IsFullscreen)
{
	Game.Window.Visible = false;
	Game.Window.IsFullscreen = false;
	Game.Window.Visible = true;
}
(Game as Game).Exit();

i also have a couple PRs that should solve the Texture issue and one to check for if the game is exiting from fullscreen to avoid trying to reload. Part of the problem seems to come from the fullscreen state change which is being called on destroy due to what was a previous work around.

a temporary work around is the below code it seems.
if (Game.Window.IsFullscreen)
{
	Game.Window.Visible = false;
	Game.Window.IsFullscreen = false;
	Game.Window.Visible = true;
}
(Game as Game).Exit();

I have tested and confirmed the workaround works.  You are an absolute life saver, thank you!! ❤
Now to get my head back into game development to fix the original and release my 2nd game. I am so happy.  😸

One more thing to add for SDL. you can create windowed fullscreen by using the below code:
// within an inherited Game class in the BeginRun overridden method

var desktopBounds = GraphicsDevice.Adapter.Outputs[0].DesktopBounds;
Window.SetSize(new Int2(desktopBounds.Right, desktopBounds.Bottom));
Window.AllowUserResizing = true;
Window.Position = new Int2(0, 0);

This puts the banner of the window above the screen and looks correct to the user at least. There is some funkiness still but this could be a temporary work around for at least a fullscreen affect. Proper fullscreen still has benefits of course but the SDL code in Stride needs a lot of love as its pretty unstable right now compared to the WinForms implementation.
I am also looking into some possible scaling issues but I cant confirm if its an issue with SDL or ImGui right now. Unrelated to this specific issue but I thought I would mention it somewhere in case someone else has more info.


Usage of oqsprovider with OpenSSL 3.0.2 and nginx 1.18.0 on Ubuntu 22.04

Describe the bug
I've successfully built oqsprovider (https://github.com/open-quantum-safe/oqs-provider/commit/cc3895f208730abfe1efc15f7c3ff4358ac6e4c0) from source, it seems to work properly when used with openssl (s_client).
To Reproduce
Steps to reproduce the behavior:

Install oqsprovider on stock Ubuntu 22.04
Add ssl_ecdh_curve x25519_kyber768:p384_kyber768; to nginx's config.
Run openssl s_client -tls1_3 -groups x25519_kyber768:p384_kyber768 example.com:443
No errors, successful connection
4.5. If ssl_ecdh_curve does not contain x25519_kyber768 and p384_kyber768 neither, then s_client errors out.
Try the same with a browser (Edge with p384_kyber768 enabled or Chrome with x25519_kyber768 enabled). X25519 is used instead. (https://pq.cloudflareresearch.com/ shows working support for Chrome)

This would indicate that the provider works when requested but Chrome/Edge just don't?
Maybe this is a trivial caveat I've missed reading through other issues, if so please do let me know.
Expected behavior
Completing oqsprovider installation and allowing the KeXs will make it possible for latest Edge and Chrome to utilize those KeXs.
Environment (please complete the following information):

OS: Ubuntu 22.04
OpenSSL version: OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
oqsprovider version: https://github.com/open-quantum-safe/oqs-provider/commit/cc3895f208730abfe1efc15f7c3ff4358ac6e4c0

Chrome & Edge do not use OpenSSL for their crypto, hence (their) failure to utilize oqsprovider is to be expected.

@baentsch There's a miscommunication, they're just two pieces of test software that connect to the nginx server described. But for some reason nginx with the provider doesn't seem compatible with the two.

can you please confirm that Chrome can successfully display this when connecting to https://test.openquantumsafe.org:6041/

Yes. Visiting that page with Chrome I get "Client-side KEM algorithm(s) indicated: 0xbaba:x25519_kyber768:x25519:secp256r1:secp384r1". Developer Tools -> Security tab also confirms that x25519kyber768draft00 is used.

To be sure nothing silly has happened during the build of the software stack

This is also my suspicion. But it's weird that OpenSSL s_client connection works if x25519_kyber768 is enabled and does not work if x25519_kyber768 is disabled.

This site is running the exact same software (nginx+oqsprovider+liboqs)

The same versions? If there's a know working set of versions I can switch to those and see if that changes anything.

Indeed. How does your build behave when connecting to the test server?

Also successful.
<!DOCTYPE html>
<html>
<head>
<title>Open Quantum Safe interop test server for quantum-safe cryptography</title>
</head>
<body>
<h1 align=center>
Successfully connected using
ecdsap256-x25519_kyber768!
</h1>

Client-side KEM algorithm(s) indicated:
x25519_kyber768:p384_kyber768
</body>
</html>

I can see from a Wireshark dump that Chrome is nicely sending ClientHello with group 25497 (I assume this is x25519_kyber768) and 29 (x25519). The server responds with Key Share Extension -> Key Share Entry -> Group: x25519. Resulting connection uses x25519.
Making a connection using OpenSSL (with the provider), it's sending ClientHello with group 25497. The server responds with Key Share Extension -> Key Share Entry -> Group: 0x6399 (25497). Resulting connection uses x25519_kyber768.
My nginx configuration contains ssl_ecdh_curve x25519_kyber768:x448_kyber768:p256_kyber768:x25519:secp256r1:x448:secp384r1:secp521r1; There's some kind of server-preferred KeX thing going on that ssl_ecdh_curve doesn't override?

There's some kind of server-preferred KeX thing going on that ssl_ecdh_curve doesn't override?

That could well be: OpenSSL has the final word. Do you have some system-wide "Group" configured in "openssl.cnf"?

Hah! Figured it out. Thank you for your patience!
If there are two server blocks that bind to the same IP and if one of those is default_server then its ssl_ecdh_curve overrides the ssl_ecdh_curve set by correct SNI server block.
OpenSSL worked great because it went over IPv6 that didn't have a default_server on the same, but my browsers hit the regular ssl_ecdh_curve default_server. Annoyingly both saw the same content, certificate, use the same ciphers, but only the available KeX-s differ in the end.
It is weird that nginx lets one define ssl_ecdh_curve when it has 0 effect in some scenarios. I should probably open a ticket about this (paper)cut.

I can also confirm that both browsers now work as expected, Chrome uses x25519_kyber768 and Edge p384_kyber768. :+1:

Do you have a link announcing this feature for Edge?

I haven't seen it publicly announced, but it is available under edge://flags#edge-post-quantum-kyber on current stable Edge.

@christianpaquin Do you have background on this?


[Improvement] [Seatunnel-web] Improve code in DatasourceServiceImpl,SeaTunnelEngineMetricsExtractor etc.

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
While fixing bugs, had noted down few code improvement.
JobExecParamUtil and JobUtils need to be renamed as per their usage and context.
DatasourceServiceImpl is making extra DB call.
SeaTunnelEngineMetricsExtractor, and DatasourceServiceImpl have some duplicate codes.
Setting cluster name is redundant.
SeaTunnel Version
NA
SeaTunnel Config
NA

Running Command
NA

Error Exception
NA

Zeta or Flink or Spark Version
No response
Java or Scala Version
No response
Screenshots
No response
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Raised PR https://github.com/apache/seatunnel-web/pull/199


Fixes unmerged app.config file

This went unnoticed while merging, for some reason my Docker container didn't update it either.
Will be more careful next time, sorry!

Heh, this is why oauth tests would be nice. Someday...
Thanks!


Failing to start

dietpi@DietPi:~/ConfessionBot$ python3 main.py
            merely framework v2.3.1
            currently named ConfessionBot by config, uses cb!
            created by Yiays#5930. https://github.com/yiays/merelybot

auth loaded.
help loaded.
confessions loaded.
error loaded.
language loaded.
Failed to load extension 'system':
Extension 'extensions.system' raised an error: ValueError: invalid literal for int() with base 10: ''
Traceback (most recent call last):
File "/home/dietpi/ConfessionBot/main.py", line 144, in
bot.run(token)
File "/home/dietpi/.local/lib/python3.9/site-packages/disnake/client.py", line 1123, in run
return future.result()
File "/home/dietpi/.local/lib/python3.9/site-packages/disnake/client.py", line 1102, in runner
await self.start(*args, **kwargs)
File "/home/dietpi/.local/lib/python3.9/site-packages/disnake/client.py", line 1064, in start
await self.connect(
File "/home/dietpi/.local/lib/python3.9/site-packages/disnake/shard.py", line 500, in connect
raise item.error
disnake.errors.PrivilegedIntentsRequired: Shard ID 0 is requesting privileged intents that have not been explicitly enabled in the developer portal. It is recommended to go to https://discord.com/developers/applications/ and explicitly enable the privileged intents within your application's page. If this is not possible, then consider disabling the privileged intents instead.

This is not an issue with ConfessionBot. Refer to the discord.py docs if you need help on hosting, or ask the discord.py discord server.
https://discordpy.readthedocs.io/en/stable/intents.html
https://discord.gg/r3sSKJJ

The main issue here is that you haven't provided a token in config.ini


Structured Interval Native Type

Placeholder needs fleshing out
Is your feature request related to a problem or challenge? Please describe what you are trying to do.

Currently interval types are represented as single primitive i64, i128, etc... This is despite them being composite types. The result is error prone, leading to incorrect overflow, parsing, etc... behaviour
Describe the solution you'd like

I would like to use a structured type as the native type for interval arrays, in a similae vein to the custom i256 type
Describe alternatives you've considered

Additional context

This may fall out of the arrow2 integration work #1176

This is blocked on https://github.com/apache/arrow-rs/issues/4733 as the kernels based around ToPrimitive will not work with a custom type

Proposed PR https://github.com/apache/arrow-rs/pull/5769


Enabling analytics leads to timeouts in response-streaming AWS Lambda

Follow-up from #89.  Turns out, the analytics are the cause for the task timeouts, not the pending promise.
Additional info: The affected Lambda functions do use response streaming. ~I haven't tested classic Lambdas with analytics yet.~ (Update: Only response-streaming Lambdas are affected.) The response stream is ended properly, but the task does not complete and runs into a timeout.
A related PR is #91. This interfered with my observations because I wasn't even aware that I was switching from enabled to disabled analytics in one of my changes.

It looks like you've found a temporary fix for the issue. If an immediate fix for analytics isn't necessary, I'll postpone addressing this issue for now since we're currently short on resources. Additionally, it would be helpful if you could share a sample code to make it easier to fix in the future.

Here's a repro: https://github.com/unstubbable/upstash-ratelimit-analytics-lambda-timeout

The timeouts do not occur when analytics is disabled.
They also do not occur with analytics enabled, and using a non-streaming handler.
With analytics enabled, not only does the timeout occur, but the response times are also significantly higher (approx. 2–3s vs. 150ms)

Hey, @unstubbable, I haven't found the underlying issue, but I'm still trying to figure out the issue.

Hi @unstubbable,
I tried your lambda and saw that the requests timeout like you said. Long story short, I found a solution but didn't figure out why this occurs in the first place.
I will make sure to add an example for streaming lambda or update our docs.
Solution

I checked whether the analytics were submitted correctly to redis before the Lambda timeout. They are succesfully submitted.
We also receive a succesful response from the API, so the code in our handler executes properly

But we still get timeout. I tried to find if there were other people who experienced similar issues and found some posts [1, 2, 3, 4].
What I kept seeing was the callbackWaitsForEmptyEventLoop parameter in the Lambda nodejs context. I set the parameter to false in the handler you provided and the timeouts dissappeared.
import {Ratelimit} from '@upstash/ratelimit';
import {Redis} from '@upstash/redis';
import type {APIGatewayProxyEventV2} from 'aws-lambda';

export const handler = awslambda.streamifyResponse<APIGatewayProxyEventV2>(
  async (event, responseStream, context) => {
    console.log(JSON.stringify({event}));

    context.callbackWaitsForEmptyEventLoop = false
    // ...

I looked into why we need to set this parameter to false in our case but I couldn't figure that out yet. After this change, there is no more timeouts.
Checking Latency
After verify the solution, I checked the time it takes for the requests to complete. The request time reduced as we expect after the fix.

 Thats why event loop waits until the end to execute the floating promises and sometimes not even executing them. That might be worth checking.

Hi again @unstubbable,
We identified the reason why we had to set the callbackWaitsForEmptyEventLoop parameter to false.
In the core-analytics library, there is a cache which calls setInterval but clearInterval is never called. We are making changes to disable the cache in rate limit library and only enable it in the analytics dashboard in Upstash console which is the original purpose of the cache.

Changes in core-analytics
Changes in ratelimit

After this change, lambda timeouts stopped without having to set callbackWaitsForEmptyEventLoop to false.
Thanks for bringing this issue to our attention!

I also saw Jest tests not exiting cleanly with the "Jest did not exit one second after the test run has completed." warning. Seems like the same issue and upgrading to 2.0 fixed it.
Just for anyone searching for this problem with jest + upstash/ratelimint


Issue in running vcs on windows OS

Dear Team Dailyco,
I encountered an issue while using VCS on Windows OS. The commands provided in the package.json files include the wrap wrapper function. However, when attempting to run the commands using yarn, an error is thrown stating that "wrap is not defined." Interestingly, if I manually copy the entire raw command and execute it in the shell, it runs perfectly fine.
I would appreciate your assistance in resolving this problem.

Hi Mohammad, what shell are you using on Windows?


_nest() call unexpected result

Another head scratcher for me.
Given this:
#include <stdio.h>
#include "qmsg.h"

#undef ns
#define ns(x) FLATBUFFERS_WRAP_NAMESPACE(QQQ, x)

int main()
{
  size_t nestedBufSize;
  uint8_t nestedBuffer[1024];

  // Build and store the nested buffer
  {
    flatcc_builder_t pBuilder;
    flatcc_builder_init(&pBuilder);
    ns(Payload_start_as_root(&pBuilder));
      ns(Payload_someId_add(&pBuilder, 456));
    ns(Payload_end_as_root(&pBuilder));

    nestedBufSize = flatcc_builder_get_buffer_size(&pBuilder);
    flatcc_builder_copy_buffer(&pBuilder, nestedBuffer, sizeof(nestedBuffer));
    flatcc_builder_clear(&pBuilder);
  }

  {
    printf("nested buffer: %p nested buffer size:%u\n", nestedBuffer, (uint32_t)nestedBufSize);
    ns(Payload_table_t) nestedPayload = ns(Payload_as_root(nestedBuffer));
    uint32_t someId_before_nesting = ns(Payload_someId(nestedPayload));
    printf("someId (before nesting): %u\n", someId_before_nesting); // <--- prints 456 as expected
  }

  {
    flatcc_builder_t builder;
    flatcc_builder_init(&builder);

    ns(Msg_start_as_root(&builder));
      //ns(Msg_payload_start_as_root(&builder)); <-- also tried with payload_start/end_as_root, prints "12" for someId after nesting.
      ns(Msg_payload_nest(&builder, nestedBuffer, nestedBufSize, 0)); // <--- also tried with 4 and 8 for align. Still prints 0
      //ns(Msg_payload_end_as_root(&builder));
    ns(Msg_end_as_root(&builder));

    size_t bufSize;
    uint8_t *bufPtr = (uint8_t*)flatcc_builder_get_direct_buffer(&builder, &bufSize);
    ns(Msg_table_t) msgTable = ns(Msg_as_root(bufPtr));
    ns(Payload_table_t) nestedPayload = ns(Msg_payload_as_root(msgTable));

    uint32_t someId = ns(Payload_someId(nestedPayload));
    printf("someId (after nesting): %u\n", someId); // <--- Why does this print 0 instead of 456?
  }

  return 0;
}

With this schema:
namespace QQQ;

table Payload
{
  someId:uint;
}

table Msg
{
  payload:[ubyte] (nested_flatbuffer: "Payload");
}

root_type Msg;

I'm expecting this line:
printf("someId (after nesting): %u\n", someId);

To print: "456". Any idea why it's printing 0 instead? Thank you.

edit
Changed Msg_payload_start_as_root(&pBuilder)/Msg_payload_end_as_root(&pBuilder) calls to Payload_start_as_root(&pBuilder)/Payload_end_as_root(&pBuilder).
These were not quite the appropriate calls to make since I'm not making a nested buffer at that point, I'm just making a standalone one that will later be nested. At first I thought this was my problem, but ultimately even after making the change, it made no difference in the results from what I could see.

When testing, could you please try call verify on the buffer with a debug linked library(flatccrt_d)
https://github.com/dvidelabs/flatcc#verifying-a-buffer
and the new section I just wrote:
https://github.com/dvidelabs/flatcc#debugging-a-buffer
I added a CMake option to enable traces - haven't really testet this recently, but might help.

Sure. That does indeed produce an error: Msg buffer is invalid: vtable offset out of range or unaligned
Updated code:
#include <stdio.h>
#include "qmsg.h"

#undef ns
#define ns(x) FLATBUFFERS_WRAP_NAMESPACE(QQQ, x)

int main()
{
  size_t nestedBufSize;
  uint8_t nestedBuffer[1024];

  // Build and store the nested buffer
  {
    flatcc_builder_t pBuilder;
    flatcc_builder_init(&pBuilder);
    ns(Payload_start_as_root(&pBuilder));
      ns(Payload_someId_add(&pBuilder, 456));
    ns(Payload_end_as_root(&pBuilder));

    nestedBufSize = flatcc_builder_get_buffer_size(&pBuilder);
    flatcc_builder_copy_buffer(&pBuilder, nestedBuffer, sizeof(nestedBuffer));
    flatcc_builder_clear(&pBuilder);
  }

  {
    printf("nested buffer: %p nested buffer size:%u\n", nestedBuffer, (uint32_t)nestedBufSize);
    ns(Payload_table_t) nestedPayload = ns(Payload_as_root(nestedBuffer));
    uint32_t someId_before_nesting = ns(Payload_someId(nestedPayload));
    printf("someId (before nesting): %u\n", someId_before_nesting); // <--- prints 456 as expected
  }

  {
    flatcc_builder_t builder;
    flatcc_builder_init(&builder);

    ns(Msg_start_as_root(&builder));
      //ns(Msg_payload_start_as_root(&builder)); <-- also tried with payload_start/end_as_root, prints "12" for someId after nesting.
      ns(Msg_payload_nest(&builder, nestedBuffer, nestedBufSize, 0)); // <--- also tried with 4 and 8 for align.
      //ns(Msg_payload_end_as_root(&builder));
    ns(Msg_end_as_root(&builder));

    size_t bufSize;
    uint8_t *bufPtr = (uint8_t*)flatcc_builder_get_direct_buffer(&builder, &bufSize);
    size_t finalBufferSize = flatcc_builder_get_buffer_size(&builder);
    printf("final buffer size: %u\n", (uint32_t)finalBufferSize);
    ns(Msg_table_t) msgTable = ns(Msg_as_root(bufPtr));
    ns(Payload_table_t) nestedPayload = ns(Msg_payload_as_root(msgTable));

    uint32_t someId = ns(Payload_someId(nestedPayload));
    printf("someId (after nesting): %u\n", someId); // <--- Why doesn't this print 456?

    int32_t ret;
    if ((ret = ns(Msg_verify_as_root(bufPtr, finalBufferSize)))) {
      printf("Msg buffer is invalid: %s\n",
      flatcc_verify_error_string(ret));
    }

  }

  return 0;
}

I note that if I use Msg_payload_start_as_root/Msg_payload_end_as_root calls around the _nest() call, I no longer get an error upon verify. However, as noted previously, the incorrect value of "12" is printed for someId when I do this. My understanding of the interface is that you're not supposed to use start_as_root/end_as_root around a _nest() call, so I'm not surprised that this is giving an odd result.
At the moment I'm still not sure why this is happening.

backtrace from gdb with those FLATCC_DEBUG_VERIFY/FLATCC_TRACE_VERIFY flags enabled:
verifier assert: vtable offset out of range or unaligned
fbs_crash: flatcc/g/src/runtime/verifier.c:308: verify_table: Assertion `0' failed.

Program received signal SIGABRT, Aborted.
─── Stack ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
[0] from 0x00007ffff7a4bcc9 in raise+57
[1] from 0x00007ffff7a4f0d8 in abort+328
[2] from 0x00007ffff7a44b86
[3] from 0x00007ffff7a44c32 in __assert_fail+66
[4] from 0x0000000000407617 in verify_table+382 at flatcc/g/src/runtime/verifier.c:308
[5] from 0x0000000000408556 in flatcc_verify_table_as_nested_root+318 at flatcc/g/src/runtime/verifier.c:498
[6] from 0x00000000004010af in __QQQ_Msg_table_verifier+51 at qmsg.h:1066
[7] from 0x000000000040789a in verify_table+1025 at flatcc/g/src/runtime/verifier.c:324
[8] from 0x00000000004082a3 in flatcc_verify_table_as_root+137 at flatcc/g/src/runtime/verifier.c:454
[9] from 0x00000000004010ee in QQQ_Msg_verify_as_root+42 at qmsg.h:1072
[10] from 0x00000000004012b0 in main+448 at fbs_unexpected.c:73

Some hexdumps:
buffer (with inline calls):
  0000  04 00 00 00 e0 ff ff ff  04 00 00 00 14 00 00 00  ................
  0010  04 00 00 00 f6 ff ff ff  c8 01 00 00 00 00 06 00  ................
  0020  08 00 04 00 06 00 08 00  04 00                    ..........
with _nest():
  0000  04 00 00 00 d4 ff ff ff  04 00 00 00 20 00 00 00  ............ ...
  0010  04 00 00 00 12 00 00 00  04 00 00 00 f8 ff ff ff  ................
  0020  c8 01 00 00 06 00 08 00  04 00 00 00 00 00 00 00  ................
  0030  06 00 08 00 04 00                                ......

"inline calls" means:
  {
    flatcc_builder_t builder;
    flatcc_builder_init(&builder);
    ns(Msg_start_as_root(&builder));
      ns(Msg_payload_start_as_root(&builder));
	ns(Payload_someId_add(&builder, 456));
      ns(Msg_payload_end_as_root(&builder));
    ns(Msg_end_as_root(&builder));

    size_t bufSize;
    uint8_t *bufPtr = (uint8_t*)flatcc_builder_get_direct_buffer(&builder, &bufSize);
    hexdump("buffer (with inline calls)", bufPtr, bufSize, stdout);
  }

and _nest() means using the code from the OP above.

I feel like the _nest() version and the inline calls version should produce identical results, but they're fairly different...

Added https://github.com/dvidelabs/flatcc/blob/master/doc/binary-format.md in case you or someone else wants to eyeball the dump.
I will have a look at the issue soon.

@mikkelfj Thanks, very useful.

I feel like the _nest() version and the inline calls version should produce identical results, but they're fairly different...

I can't really make sense of the nest version right now, but they are likely different because a top-level buffer will seek to place vtables at the end (clustered vtables) whereas nested buffers built inside a parent buffer has not space to place the vtable - it cannot extend upwards without running into the parent content. So it places the vtable earlier instead. It doesn't matter which direction only that the buffer is selfcontained with the vector it is placed - but details on what is going must wait till tomorrow.

Test and PR that hopefully fixes this over at #53.

Thanks!


Update @vx/scales to be consistent with d3 v5.0.0

I was looking through @vx/scale, when I noticed that it's not up-to-date with d3 v5.0.0 (the most current version)
The release notes have these two announcements:

Add d3-scale-chromatic.
Remove d3.schemeCategory20* categorical color schemes. (See note below.)
.
.
D3 now includes new categorical color schemes from ColorBrewer, along with ColorBrewer’s excellent diverging, sequential single-hue and sequential multi-hue color schemes. The twenty-color schemes were removed because their grouped design often falsely implied non-existent relationships in the data: a shared hue can imply that the encoded data are part of a group (a super-category), while the relative lightness can falsely imply order.

Issues that come from this:

vx is not consistent with the latest release of d3

If someone wanted to learn more about d3-scales page, they'd be confused as to why vx says there are colors, but d3 says otherwise 😢

Images on the @vx/scales readme are broken

Proposed Solution:
Port d3-scale-chromatic to @vx/scales, and update the docs.  This won't change the API, i.e.
// old way
import {schemeCategory10} from '@vx/scale'

// new way... it's the same :)
import {schemeCategory10} from '@vx/scale'

Breaking Changes:
For better or for worse (seems like for better) schemeCategory20[b,c] won't work anymore
Thanks for reading 😄
Let me know if you'd like help on this.  I'd be happy to submit a PR once this has @hshoff's blessing 🙏

Sounds good. I agree with linking to d3-scale-chromatic.  Maybe the readme can include a note on how to make color scales, i.e.
import { ordinal } from '@vx/scale'
import { schemeCategory10 } from 'd3-scale-chromatic'

colorScale = ordinal({
  range: category10
})

I'll work on this.  After updating the dependency, most of the work will be in fixing up the readme 📝and fixing tests


UnderLine Linux not showing (don't close issues re linux underscore you @Tyriar)

Does this issue occur when all extensions are disabled?: Yes

Version: 1.58.2
Commit: c3f126316369cd610563c75b1b1725e0679adfb3
Date: 2021-07-14T22:30:16.440Z
Electron: 12.0.13
Chrome: 89.0.4389.128
Node.js: 14.16.0
V8: <IP_ADDRESS>-electron.0
OS: Linux x64 5.4.0-77-generic

Steps to Reproduce:

Just open the integrated terminal and type "_"

https://github.com/microsoft/vscode/issues/35901

https://github.com/microsoft/vscode/issues/35901

https://github.com/microsoft/vscode/issues/107942

Looks like duplicate of #123077
Fix should be available in Insiders builds https://code.visualstudio.com/insiders/
Is it reproducible for you in Insiders builds?

Thanks, @IllusionMH I just checked the insiders, it has been fixed there.
Could we not close this until it has been deployed to vs code

Issues are closed when they are resolved in master. Keeping this open does not help.
I don't think that it make sense to keep this one open as it's clearly duplicate of another issue that is resolved, has milestone and tags.

Understood @IllusionMH


runtime: Add uefi::runtime::reset

No test added for this since our test runner isn't really set up for testing multiple resets.

Checklist

[ ] Sensible git history (for example, squash "typo" or "fix" commits). See the Rewriting History guide for help.
[ ] Update the changelog (if necessary)

Please resovle the conflict


Allow unrelated getter and setter Ref types leads to nested array type errors.

Vue version
3.4.35
Link to minimal reproduction
https://play.vuejs.org/#eNp9kcFuwjAMhl/FyoVVQi2U7VI6pG3isE0a0+BG0FSKYWVtEiVph4T67nNSDThMXKLY32/rt31kD0qFTY0sYanJdaEsGLS1mnBRVEpqC0fQuIUWtlpW0CNpjwsucimMhQzuHb05cgGwTvx/EPRdlHfR0j3DoO+DOFgFXLTB2HXIwiYrawzX1GM4hiiC2es5my8HKwKxB4t5AvEojl1ZGnU2ySAFFitVZhYpAkg3RTNJI/c63QVjfWYNWd4Wu3BvpKBpvWXOclmpokQ9U7agkThLwBPHsrKUPy8+Z3WNfixf84X59z/5vTm4HGfvGg3qBjk7MZvpHdoOT+dveKD/CVZyU5ekvgI/0Miydh472WMtNmT7QufdPvubFWK3MNODRWH+hnJGnbL1es7ojk9XRj/bHYW3vo7uRlv8bFC7nrRAAuHojrW/e2S5SQ==
Steps to reproduce
PR #11442 is not just a TS>5.1 issue; it also requires additional testing for nested Ref arrays.
What is expected?
a.value.b = 1; // OK

a.value.c[0] = 2; // OK

What is actually happening?
a.value.b = 1; // OK

a.value.c[0] = 2; // TS Error 2322

System Info
System:
    OS: macOS 13.6.7
    CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 24.11 MB / 32.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.16.0 - ~/.nvs/node/20.16.0/x64/bin/node
    Yarn: 1.22.22 - ~/.nvs/node/20.16.0/x64/bin/yarn
    npm: 10.8.2 - ~/.nvs/node/20.16.0/x64/bin/npm
    pnpm: 9.6.0 - ~/.nvs/node/20.16.0/x64/bin/pnpm
  Browsers:
    Chrome: 127.0.6533.90
    Safari: 17.5

Any additional comments?
https://vuejs.org/api/reactivity-core.html#ref

If an object is assigned as a ref's value, the object is made deeply reactive with reactive(). This also means if the object contains nested refs, they will be deeply unwrapped.

Thank you for reporting this issue.
FYI: this issue has existed prior to the changes merged in v3.4.35. However, I agree that it requires further investigation and testing.

Sorry, you’re right; this issue has existed in previous versions.

It's funny, but the types are actually correct and correspond to the runtime behavior. In this example, a.value.c[0] is indeed a ref. That's how reactive actually works:
const a = reactive([ref(1), ref(2)]);
console.log(a[0]); // a[0] is RefImpl here

I apologize for revisiting the responsive implementation code. The current type definition is reasonable. The issue lies with TypeScript arrays; you can check this playground.
https://www.typescriptlang.org/play/?ts=5.6.0-dev.20240807#code/JYOwLgpgTgZghgYwgAgKoihANnSATANTiwFcIAeAFQBpkBlAXkoD5kBvAWAChlkBzCGGQA3YmQAUASgBcySgG5uvAM6CRYiOOGy6kxVwC+3bggD2IZULjIGyANoBdZHGXIAglChwAnuXSYcfCJSChASAFsAI2haSyhQPgAfMKjoZmZ9OAA6AAcSZQALcTZ1ENkARmQDPW5svMLi0rJZACJylqq9ZAB6buQwZXEAJgBmIaHJWrsABgcs0RCbZCHMmbmFsiWWoZb5IA

I've discovered a new test case
In the environment of ts 5.5.4 + vue 3.4.34, the following code can correctly infer the type.
Playground for 3.4.34
import { ref } from "vue";
const g = { g: 0, h: "h" }
const e = {
  f: ref(g),
};
const c = {
  d: ref([e]),
};
const a = ref({
  b: ref([c]),
});
a.value.b[0].d[0].f = g; // f type is { g: number; h: string; }

However, in the environment of ts 5.5.4 + vue 3.4.35, there is an error in type inference.
Playground for 3.4.35
a.value.b[0].d[0].f = g; // f type is any


Change the labels on gateways to be on top by default

I've realized recently that i almost ALWAYS move the lable on a gateway to the top. Because generally it's best practice to have a task directed ahead of it and the alternative below it. It would be nice if the label above by default

@NPDeehan could you cross post this issue in the Camunda Forum to gather additional feedback on this topic?

Done - https://forum.camunda.org/t/labels-on-gateways-should-default-to-above/3302
Now i just play the waiting game...

This is addressed via adaptive label positioning (https://github.com/bpmn-io/bpmn-js/issues/738).


App won't login

I try to login to HA and have Nabu Vasa setup and everything but get an error when trying to use the app. "connection refused"

Hello,

8123
Yes
OAuth
0913 08:21:56 [Debug] :  AppLifecycleState.inactive
0913 08:21:56 [Debug] :  AppLifecycleState.resumed
0913 08:21:56 [Debug] :  AppLifecycleState.inactive
0913 08:21:56 [Error] :  Loading settings...
0913 08:21:56 [Error] :  Long-lived token read successful
0913 08:21:56 [Debug] :  Launching OAuth
0913 08:21:56 [Debug] :  AppLifecycleState.resumed
0913 08:21:58 [Debug] :  AppLifecycleState.inactive
0913 08:21:59 [Debug] :  AppLifecycleState.paused
0913 08:22:01 [Debug] :  AppLifecycleState.inactive
0913 08:22:01 [Debug] :  AppLifecycleState.resumed

That was it. I so have a screenahot of the error I get, not sure how to post that.

If you are using Remote UI, try to change port number in HA Client to 443. Let me know if it'll help.

This changes the error from ERR_SSL_PROTOCOL_ERROR to ERR_CONNECTION_REFUSED

Ok. So you are using Remote UI url in application settings? The one that in .nabu.casa domain. Right?

That did it.  I'm in now but now it seems to be having trouble getting my lovelace config.  I can access it via the WebUi no problem though.

Disable "Use Lovelace UI" in connection settings. Will it show your UI from web version?

Yes it comes up fine now.


⚠ Bofrost.fr has degraded performance

In 152a431, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 935 ms

Resolved: Bofrost.fr performance has improved in 7ac299f after 14 minutes.


fix: minor issue on how-to-open-a-pull-request.md

Just saw this while cloning the project fresh for another PR. When you clone the repo, you have to go into the directory before you add a new origin to it.

@TheRogue76 can you rebase so the CI is green?

Rebased. Fingers crossed!


Add producer metrics for Prometheus

Motivation
There are subscriptions and consumers metrics for prometheus but miss producers' metrics.
Modifications

Add producer metrics for prometheus.
Add a configration for whether export producer metrics, default is false.

Verifying this change
Add test case testPerProducerStats() in PrometheusMetricsTest
Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): ( no)
The public API: ( no)
The schema: ( no)
The default values of configurations: ( no)
The wire protocol: ( no)
The rest endpoints: ( no)
The admin cli options: ( no)
Anything that affects deployment: ( no)

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

Because this PR changes the generate method will break some PRs in branch 2.7. And this PR is not introduced some protocol changes so it's ok to cherry-pick to branch 2.7.


Implement automated and periodic backups of Vault's GCS bucket

Describe the problem
I've just emptied the bucket by mistake, and it would've been kind of nice to have a backup to restore. But that isn't the case, so I had to start afresh, which means that Android Gateway users must now reset their app's data.
 And a way to restore the backup when needed.

Vault is gone! 🎉


Some characters not accepted in editor

Within the edit box, some of the characters are not accepted:

simple quote '
"Degree" sign °

(copying them in works, typing via keyboard doesn't work)

Hi @xlthor
This issue is not reproduced.
Please tell me the test environment and input shortcut.
https://degreesymbolmac.com/

For me it's reproducible on http://suneditor.com/sample/index.html with Fireforx 82.0.1

simple quote '
"Degree" sign °

How did you enter the two symbols?

ähöm ... with my keyboard as usual? Just typing it. Copying them in works. Very strange, as within Chrome or IE it's working as expected.
I will make some tests on different machines and close this one. If that's not a local problem with my PC, I'll reopen again.

Need to reopen. The issue is not within Firefox and it does appear on several different machines with German Keyboards.
The diff between Chrome and FF (82.0.2) are different key codes for these keys:
FF:
' resolves to shift + keycode 163
° resolves to shift + keycode 160
Chrome:
' resolves to shift + keycode 191
° resolves to shift + keycode 220
I assume that the problem lies somewhere in the core.js and the detection of shortcut keys etc.

@xlthor There was a mistake in the code checking the keycode.
Thank you.
Can you please test at the this url?

Works! Great, Thanks!

I'll notify you after the version update.

The 2.34.2 version has been updated.
If this issue has not been resolved, please reopen this issue.
Thank you.


SyntaxError: Unterminated template literal

Got this error using version 2.2.3:
ERROR in .//css-loader!.//bootstrap/dist/css/bootstrap.css
Module build failed: /Users/jaap/Sites/auxiliary/node_modules/postcss-ordered-values/dist/rules/border.js:14
'hidden', 'dotted',`'dashed', 'solid', 'double', 'groove', 'ridge', 'inset', 'outset'];
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Unterminated template literal
at Object.exports.runInThisContext (vm.js:73:16)
Note the backtick between the words 'dotted' and 'dashed'.

I checked the build from npm and it doesn't have this. Is it something else in your environment? Did you try reinstalling the module?

I believe it to be a dependency of one of my other packages because I didn't install it myself. What's the best way to find the dependent package?

I would recommend reinstalling your node_modules and trying again, I don't know why a rogue backtick is there but it's definitely not showing with a fresh install. 😄

Closing as stale, hope this is resolved. 👍


Duplicate code block

The code blocks below these two line in this document are exactly the same:
The following code configures ASP.NET Core to authorize the Identity pages that require authorization:
The following the code sets the Identity cookie to use the correct Identity pages path.

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

ID: 804e24dd-7e30-8cf5-2c99-1ffacb4582f6
Version Independent ID: 3e25547b-e2c9-6634-2c38-2a77207f17d4
Content: Scaffold Identity in ASP.NET Core projects
Content Source: aspnetcore/security/authentication/scaffold-identity.md
Product: asp.net-core
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

Thanks for letting us know @MinhThienDX ... I'll square that away right now.


Add method is_one to One trait

From @pyfisch on August 5, 2016 17:15
The Zero trait contains two methods: zero returns the number 0 for the given type and is_zero is provided and can be used to check if a number is 0.
The One trait is similar but contains only the method one to create the number 1. Please also add a method to check if a number is one.
Copied from original issue: rust-num/num#214

It turned out not so easy without a breaking change, although we could add it where Self: PartialEq for now to allow a default implementation, and drop that in a breaking change (eventually).

That was rust-num/num#336 on the next branch.

The issue description/title should be updated to mention removing the PartialEq bound rather than adding the function.

Shouldn't this be closed?

I added the PartialEq note to #47 for breaking changes.


Importing a large linux perf file will crash the application

Hi, thank you for your work on this awesome project.
Back to the story, I was importing a large file (linux perf tool format), around ~1.3 GB and it crashed the application. The root cause is this line. When we're splitting the file into blocks, a block size can exceeds V8 strings limit. The situation is similar to #385.
My plan is:

change splitBlocks signature to

splitBlocks(contents: TextFileContent): TextFileContent[]

pending will now use StringBackedTextFileContent | BufferBackedTextFileContent. It will initially use StringBackedTextFileContent for performance then fallback to use BufferBackedTextFileContent if the block size exceeds the limit. Something like this

try {
  pending += line
} catch (error) {
  if (check(error)) {
    // convert to BufferBackedTextFileContent and continue
  }
}

To do this, we might need to add some methods to TextFileContent interface:

isEmpty(): to replace pending.length > 0
append(): to replace string concatenation

Another approach that I'm considering is to implement a generic splitBy(delimiter: string) for TextFileContent. I haven't thought it through yet but it seems like a non-trivial thing.
The file is fairly large file so I won't attach it here. I still keep it in my computer in case you want to have a look.

Hey @Goose97!
Thanks for the very clear description of the problem you'er trying to solve, and the links to the specific parts of the code!
If I'm understanding the problem correctly, I think there's a simpler solution that's probably more performant.
The splitBlocks function doesn't really need to exist at all. It was just a simple way to reason about the problem.
Instead, I think we can change the importer to just operate on the output of splitLines() directly without using \n\n delimited blocks as an intermediate. This also has the benefit of not doubling the memory requirements.
If we do your proposed change, I think we end up with the 1.3GB in memory three times: once as a buffer, once as the return value of .splitLines() and once as the TextFileContent[]. If we skip the splitBlocks, then we just have the first two.
Really, ideally, we'd have only the one in the buffer and splitLines() should return an iterator instead, then we'd only have the 1.3GB in memory once. That's a separate issue than the one you're trying to solve though.

Hi @jlfwong,
That makes a lot of sense. I'll try an PR, going the way you suggested.
I guess I'll go ahead and convert the splitLines() to return an iterator first (neat idea btw), then come back to this issue. Is that cool?

I guess I'll go ahead and convert the splitLines() to return an iterator first (neat idea btw), then come back to this issue. Is that cool?

Yeah, if you'd like to tackle that, then please go ahead!
Please make it a separate PR from the addressing the issue described here (so one of the iterator, one for the perf file fix)
If, in the process of doing that, you realize it's kind of a pain to do, it's also fine to address the linux perf-file specific issue without solving the iterator.


Logout and second login with same user issue

Version: 0.2.3
Steps:

create connection with User_1:

String userJid = ""; // full user jid
xmpp.XmppAccountSettings accountSettings = xmpp.XmppAccountSettings.fromJid(userJid, password);
xmpp.Connection _connection = xmpp.Connection.getInstance(accountSettings);
_connection.connect();

close connection for User_1:

_connection.close();

try connect again with same user:

_connection.connect();

I investigated code of your file Connection.dart and found issue here, I think you mean '=' instead of '==';
After changes in this place second login was started but didn't call all steps for login, just stoped after process features.
If you need more informations or logs, please let me know.

Hi Tatanka,
Can you please check if issue is fixed with latest push?

The issue still reproduces on current master branch from this repo. My second login stoped on state State: XmppConnectionState.DoneParsingFeatures but not State: XmppConnectionState.Ready like expected. Here full log with second login.
I tried use workaround and create new instance of Connection every time. What I mean:
_connection = xmpp.Connection(account);
_connection.connect();

then for logout use
_connection.close();
_connection = null;

then second login
_connection = xmpp.Connection(account);
_connection.connect();

but in this case after second login this code stoped wort, this stream stoped triggering although a receive incoming messages
_messageHandler = MessageHandler.getInstance(connection);
_messageHandler.messagesStream.listen((messageStanza) {
  onReceiveNewMessageStanza(messageStanza);
});

@vukoye I investigated this issue again.
It looks like issue related with sending package "http://jabber.org/protocol/disco#info"
I/flutter ( 2793): sending: <iq id="CLQYNURMR" type="get"<EMAIL_ADDRESS>to="chat.connectycube.com">
I/flutter ( 2793):   <query xmlns="http://jabber.org/protocol/disco#info"/>
I/flutter ( 2793): </iq>

this package doesn't send during second login.
It is because ConnectionNegotatiorManager adds ServiceDiscoveryNegotiator as singleton and on second login method pickNextNegotatiator() didn't return this negotiator because its state is NegotiatorState.DONE on second login.
Second unclear pieces of code:
https://github.com/vukoye/xmpp_dart/blob/master/lib/src/features/ConnectionNegotatiorManager.dart#L134
and
https://github.com/vukoye/xmpp_dart/blob/master/lib/src/features/ConnectionNegotatiorManager.dart#L140
this code does nothing.
@vukoye can you please review ConnectionNegotatiorManager I think it is reason of issues related with second login.

@vukoye I prepared Merge request https://github.com/vukoye/xmpp_dart/pull/27
Please review it and apply.


Update index.md

[ ] I have read freeCodeCamp's contribution guidelines.
[ ] My pull request has a descriptive title (not a vague title like Update index.md)
[ ] My pull request targets the master branch of freeCodeCamp.
[ ] None of my changes are plagiarized from another source without proper attribution.
[ ] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Congrats @yoimbert  on your first pull request (PR)! 🎉
Thank you for your contribution to the page! 👍
We're happy to accept these changes, and look forward to future contributions. 📝


Clarify Cloudflare implementation of .tee()

refs https://github.com/cloudflare/cloudflare-docs/issues/9285

👋Hi there, we’re going to close this PR due to inactivity


Compile the sample code in the documentation with tut

or something like that. See https://github.com/tpolecat/tut

See the new user guide which is compiler-checked.


Exception: Explicit valence for atom # 4 C, 5, is greater

I was trying to get the fast_molvae code to run on my own dataset and I changed the preprocess.py function code a little bit to run on my parallel worker setup. In the process I ended up removing the rdkit logger that's set to critical and I noticed a bunch of these exceptions:
[23:37:03] Explicit valence for atom # 1 C, 5, is greater than permitted
[23:37:03] Explicit valence for atom # 3 C, 5, is greater than permitted
[23:37:03] Explicit valence for atom # 1 C, 6, is greater than permitted
[23:37:03] Explicit valence for atom # 1 C, 5, is greater than permitted
[23:37:03] Explicit valence for atom # 1 C, 6, is greater than permitted
[23:37:03] Explicit valence for atom # 1 C, 6, is greater than permitted
[23:37:03] Explicit valence for atom # 1 C, 5, is greater than permitted
[23:37:03] Explicit valence for atom # 1 C, 6, is greater than permitted
[23:37:03] Explicit valence for atom # 3 C, 5, is greater than permitted
[23:37:03] Explicit valence for atom # 1 C, 5, is greater than permitted
[23:37:03] Explicit valence for atom # 1 C, 7, is greater than permitted
[23:37:03] Explicit valence for atom # 3 C, 5, is greater than permitted
[23:37:03] Explicit valence for atom # 1 C, 5, is greater than permitted
[23:37:03] Explicit valence for atom # 1 C, 7, is greater than permitted
[23:37:03] Explicit valence for atom # 1 C, 5, is greater than permitted
[23:37:03] Explicit valence for atom # 1 C, 6, is greater than permitted
[[2323::3737::0303] ] Explicit valence for atom # 1 C, 5, is greater than permitted
Explicit valence for atom # 4 C, 5, is greater
I think they are coming from get_clique_mol-> sanitize() in the chemutils.py. I am not sure if I am missing something but is this supposed to happen? I tried to repeat the same thing with your training set and same set of logs appear. And next to the return statement in the sanitize method in utils I notice that there is a comment - #We assume this is not None . So are we supposed to "clean" our data to not include the smiles for which this happens ?

Specifically here are some of the smile strings for which the sanitize method in chemutils resolves to be None
Mol is None
C1=CC=C2C(=C1)[CH2:14][CH:14]=[CH:14][CH:14]=2
[00:00:46] Explicit valence for atom # 1 C, 5, is greater than permitted
Mol is None
C[C:4]1(=O)[CH2:4][NH:4][CH2:4][CH:4]([NH2:2])[NH2+:4]1
[00:00:46] Explicit valence for atom # 5 C, 5, is greater than permitted
Mol is None
C[CH:4]1[CH2:4][NH:4][CH2:4][C:4](=O)([NH2:2])[NH2+:4]1
[00:00:46] Explicit valence for atom # 1 C, 5, is greater than permitted
Mol is None
[CH3:2][C:2]1([CH3:3])=[CH:8][N:8]=[CH:8][CH:8]=[CH:8]1
[00:00:46] Explicit valence for atom # 3 C, 5, is greater than permitted
Mol is None
C1=CC=C2C(=C1)=[CH:14][CH2:14][CH2:14][CH:14]=2
[00:00:46] Explicit valence for atom # 3 C, 5, is greater than permitted
Mol is None
C1=CC=C2C(=C1)=[CH:14][CH2:14][CH2:14][CH:14]=2
[00:00:46] Explicit valence for atom # 1 C, 5, is greater than permitted
Mol is None
C[C:4]1(=O)[CH2:4][NH:4][CH:4]([NH2:2])[CH2:4][NH2+:4]1
[00:00:46] Explicit valence for atom # 4 C, 5, is greater than permitted
Mol is None
C[CH:4]1[CH2:4][NH:4][C:4](=O)([NH2:2])[CH2:4][NH2+:4]1
[00:00:46] Explicit valence for atom # 1 C, 5, is greater than permitted
Mol is None
[OH:2][C:15]1([NH2:3])[CH:15]=[CH:15][CH:15]=[CH:15][CH:15]=1```

Hi,
This is expected behavior if you remove the RDKit logger. The invalid smiles come from the graph assembly algorithm in graph decoder (not get_clique_mol->sanitize()). This happens when the assembler attaches two cliques in an invalid way, and those invalid attachments are removed during the enumeration.


Add title bottom spacing

This PR fixes spacing missing between the title and body content.
Screenshots
Add title spacing on search-help view

Title spacing seems to be already present on feedback view

Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main or master).
[x] My commit messages follow [best practices][best_practices].
[ ] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[ ] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Hey @0kyn! Good work on the PR.
I should point out though that issues where someone has recently expressed intent to work should not be considered for raising a PR. This can lead to a lot of wasted effort for the person who might have already started working for a fix.

My bad... I'm truly sorry @theshakeabhi, and thank you @dhruvkb for the advice. I need some good habits and practices!
Should I asked into the issue if another dev still working on it?

It's not a problem at all, 0kyn. We are always learning better ways to collaborate.
But yeah, asking is a good way to make sure that someone is not already working on it. Or maybe if there hasn't been any activity for a few days, you can assume that it's available.

hey @0kyn, it's absolutly not a problem. As @dhruvkb mentioned we are all learning to collaborate. Cheers on your PR getting merged.


Fix kibana link in system tests

Description
It still links to the old kibana at http://kibana.spacemesh.io/app/kibana
Steps To Reproduce

Run any system test
Click the link it outputs

Expected Behavior
Link to the correct kibana instance at https://kibana-tests.spacemesh.io/

or just remove the link


feat(g2a-com#52): add 'remove' command

Added:

when installing new commands, if a new version is downloaded, the old one is removed from the filesystem
remove command:

klio remove -> removes the files of all commands specified in klio.yaml from the filesystem, deletes entries from dependency.json, leaves klio.yaml untouched
klio remove COMMAND -> same as above, just for 1 command
klio remove COMMAND -g -> same as above, just for global scope
If files are not found in the filesystem, it's assumed they where deleted manually (a log is displayed with debug level)

Coverage report
github.com/g2a-com/klio/internal/dependency/manager/error.go:9:		Error				100.0%
github.com/g2a-com/klio/internal/dependency/manager/manager.go:45:	NewManager			0.0%
github.com/g2a-com/klio/internal/dependency/manager/manager.go:57:	GetUpdateFor			100.0%
github.com/g2a-com/klio/internal/dependency/manager/manager.go:93:	InstallDependency		72.5%
github.com/g2a-com/klio/internal/dependency/manager/manager.go:196:	GetInstalledCommands		100.0%
github.com/g2a-com/klio/internal/dependency/manager/manager.go:221:	downloadFile			68.8%
github.com/g2a-com/klio/internal/dependency/registry/common.go:35:	findHighestMatching		100.0%
github.com/g2a-com/klio/internal/dependency/registry/common.go:53:	isCompatible			100.0%
github.com/g2a-com/klio/internal/dependency/registry/common.go:57:	isMoreSpecific			0.0%
github.com/g2a-com/klio/internal/dependency/registry/local.go:20:	NewLocal			0.0%
github.com/g2a-com/klio/internal/dependency/registry/local.go:29:	Update				92.9%
github.com/g2a-com/klio/internal/dependency/registry/local.go:53:	GetExactMatch			0.0%
github.com/g2a-com/klio/internal/dependency/registry/local.go:57:	GetHighestBreaking		100.0%
github.com/g2a-com/klio/internal/dependency/registry/local.go:61:	GetHighestNonBreaking		100.0%
github.com/g2a-com/klio/internal/dependency/registry/remote.go:22:	NewRemote			0.0%
github.com/g2a-com/klio/internal/dependency/registry/remote.go:31:	Update				90.0%
github.com/g2a-com/klio/internal/dependency/registry/remote.go:67:	GetExactMatch			0.0%
github.com/g2a-com/klio/internal/dependency/registry/remote.go:71:	GetHighestBreaking		100.0%
github.com/g2a-com/klio/internal/dependency/registry/remote.go:75:	GetHighestNonBreaking		100.0%
github.com/g2a-com/klio/internal/dependency/registry/version.go:11:	Match				100.0%
github.com/g2a-com/klio/internal/dependency/registry/version.go:17:	GreaterThan			100.0%
github.com/g2a-com/klio/internal/dependency/registry/version.go:23:	getExactMatch			0.0%
github.com/g2a-com/klio/internal/dependency/registry/version.go:31:	getMinorAndPatchConstraints	100.0%
github.com/g2a-com/klio/internal/dependency/registry/version.go:39:	getMajorConstraints		100.0%
github.com/g2a-com/klio/internal/project/schema.go:19:			NewDefaultConfig		100.0%
github.com/g2a-com/klio/internal/project/schema.go:27:			MarshalYAML			60.0%
github.com/g2a-com/klio/internal/project/schema.go:86:			minimalConfig			100.0%
github.com/g2a-com/klio/internal/project/schema.go:104:			UnmarshalYAML			54.5%
github.com/g2a-com/klio/internal/project/util.go:11:			LoadProjectConfig		0.0%
github.com/g2a-com/klio/internal/project/util.go:20:			SaveProjectConfig		0.0%
github.com/g2a-com/klio/internal/project/util.go:25:			CreateDefaultProjectConfig	83.3%
total:									(statements)			74.4%


[feature] Revamping mock prompt to take in interface list of inputs

Merge after #35 to reduce this PR's size.
I had trouble diagnosing "what happened when" with the original MockPrompt, so I rewrote it to take in different "beads" of inputs as if we're creating a necklace. I also added type-checking and print statements so contributors can figure out the test inputs needed to test their test case.

Codecov Report

Merging #39 into master will decrease coverage by 0.38%.
The diff coverage is 44.73%.

@@            Coverage Diff             @@
##           master      #39      +/-   ##
==========================================
- Coverage   49.19%   48.81%   -0.39%
==========================================
  Files          11       11
  Lines         687      717      +30
==========================================
+ Hits          338      350      +12
- Misses        320      332      +12
- Partials       29       35       +6

Impacted Files
Coverage Δ

pkg/aws_config_client/survey.go
0.00% <0.00%> (ø)

pkg/aws_config_client/completer.go
78.37% <47.22%> (-7.43%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update cf2ab96...cee0a09. Read the comment docs.


ICA host enabled in genesis as default

Summary of Bug
Yo. I'm not sure if it's intentional or not but even without wiring up the host module for ICA in app.go the genesis will always be pre-filled with:
"host_genesis_state": {
     "active_channels": [],
     "interchain_accounts": [],
     "port": "icahost",
      "params": {
       "host_enabled": true,
        "allow_messages": [
          "*"
        ]
  }

I'm guessing this effects nothing as there is no host module wired up but I found it confusing. Any reason for this or is it just a side effect?
Version
latest
Steps to Reproduce
Remove host module wiring and init a new genesis.

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged/assigned

Yeah, this is side effect of having both controller and host genesis under the same sdk module. I'm assuming you're using icacontroller only, but seeing this in genesis.json without wiring up the host keeper etc?
Chains can just switch this to false, but there won't be any other unintended side effects. Unfortunately you can't really programatically switch the param to false - since the genesis is never actually initialised this object exists only the genesis.json is never actually set in the db. You should be able to verify that with: $binary q interchain-accounts host params

Got it thanks.

Sometime in the future there may be small chance we have to split host/controller into separate sdk modules as depinject doesn't support multiple kvstore keys, and then this would no longer be showing up in the json file. Unsure if that will happen or not, there's a potential workaround/hack also suggested for that problem but its outside the scope of this issue.
Since there's no actionable items I'll close this.


Ionic v2 serve doesn't livereload

I am starting a project using ionic start tmp tutorial --v2 and starting the serve with ionic serve.
The problem is that when I change the files in the app folder, the server doesn't detect the changes and the web page is not refreshed.
Things I have tried

Uninstalled ionic and reinstalled it.
Tried creating projects from scratch
Tried using Chrome and Safari

Versions
ionic 2.0.0-beta.17
Cordova 6.0.0
npm 2.14.12
node v4.3
OS X 10.11.3

Legit. Did a screen share with him and wasn't able to resolve. @tlancina any ideas?

Hmm, if you npm install -g webpack (you may need to sudo npm install -g webpack) and then run webpack -w does it detect changes?

Thank you :):) That fixed it. So the problem was about having webpack installed globally?

@ahmedbaracat I'm not sure what to tell you, unfortunately.  I asked about installing webpack to see if it was detecting changes for webpack -w but not ionic serve, which would indicate it's an ionic issue, but it sounds like there may be some issues with fsevents on your system.
Very strange that it works sometimes, but not others.  What does your webpack.config.js look like, and what are the paths to the projects? We've had some very hard to track down issues that ended up being caused by webpack regexes matching paths they weren't supposed to be.

@tlancina Thank you It is definitely a path issue. I was having problems with my path for sometimes now because of a folder that had spaces and parentheses. I changed it now and tested several ionic projects and live reload worked just fine.
Thank you :):)

@ahmedbaracat awesome! Glad it's working now. I'm going to close this, but please feel free to comment if you're still having issue.

I think this is still a "bug" in that it doesn't work if you have paths with spaces. Seems like an escaping issue. Will dig around a bit and see if I see any easy fixes

I can confirm ye old trick of symbol linking the path does resolve the problem

Strangely symbol linking doesn't seem to fix the problem. I actually had to move the directory out of the dir with the space

@kentongray thanks for taking a look, what's the output of ionic info for you? I just tested out a new project with a space in the path quickly and livereload was working for me.  If there is a simple way to reproduce this I'll re-open the issue.

Looks like i'm also having the same issue with livereload. My project path have a folder called "0. Dropbox", and though i have not tested to move it outside because webpack -w did the trick for me, it might also confirm the bug with whitespaces or symbols in path.

@tlancina sorry I missed your message

Your system information:

Cordova CLI: 5.0.0
Gulp version:  CLI version 3.9.0
Gulp local:   Local version 3.9.0
Ionic Version: 2.0.0-alpha.57
Ionic CLI Version: 2.0.0-beta.19
Ionic App Lib Version: 2.0.0-beta.9
ios-deploy version: 1.7.0
ios-sim version: 3.1.1
OS: Mac OS X El Capitan
Node Version: v5.2.0
Xcode version: Xcode 7.2.1 Build version 7C1002

@gsabater interestingly enough mine is a dropbox folder don't think that should break it but you never know..

i'd actually love to dig into the root issue but i can't find where the webpack related code actually is.... is it on this repo?

also since i see that there are different branches i am using the typescript ionic2


[PowerToys Run] Searching feels really slow

Whenever I start writing for an application name, after two or three characters, it kind of freezes for split second, and then autocomplete feels not smooth as well. And I am sure it is not my laptop that causes that, as it is quite powerful + the performance is the same on windows idle and with full load from 5-6 applications consuming more than 7gb ram.
In comparison, Wox is instant, it has no lag whatsoever during typing.
Specs:
CPU: i5-10210u
Ram: 8GB
OS: Windiws 10 version 2004 build 19041.329
w/ ssd

Have you tried to use task manager to see what processes are occuping too much memory?kill them might help.
If powerlaucher is occupying too much memory, for example 200+mb, this might be caused by a known memory leak, and microsoft is trying to fix this.
I think providing clipped pictures of you task manager will help us to solve your problem.We need to see what is the buggy process that is causing your problem.

I think you misunderstood what i said. even in idle windows mode, whenever i turn on laptop, and have nothing opened, other than powertoys run, it does what i have described. and i have checked task manager as well, but it only occupies 2mb ram, so memory leak must not be a problem

This is new, since i have not heard things like your case before.
Seems to be a new bug...

Have the same issue as described - experience input and search lag when I type.
Input delay is observed after I type in t ; search delay is observed after I type in teams

The only difference to the originally posted issue, however, is I see powerlauncer occupying 500mb+ in memory;

Specs:
Device: Surface Book 1
CPU: i7-6600U
Ram: 16GB
OS: Windows 10 version 2004 build 19041.329

@painotpi
This is the same that i talked about earlier.
Without doubt, the memory leak is serious problem.
Hope you guys can submit your issue here and so we can get more attention.

do you have Indexer (Windows Search) disabled?
what version of powertoys do you have installed?

@crutkas
Windows search service is running,

PowerToys version is 0.19.1

possible we could do a teams meeting where I could look at a few things?   We're trying to figure out commonalities<EMAIL_ADDRESS>

Have the same issue as described - experience input and search lag when I type.
Input delay is observed after I type in t ; search delay is observed after I type in teams

The only difference to the originally posted issue, however, is I see powerlauncer occupying 500mb+ in memory;

Specs:
Device: Surface Book 1
CPU: i7-6600U
Ram: 16GB
OS: Windows 10 version 2004 build 19041.329

Honestly, mine does the same, the difference is that, in task manager, it has no issue. at most it uses 20-ish mb ram, so i have no idea. Also i have to admit that, freezing for me is not that long

After I updated to 0.19.2, I noticed that powerlauncher seems to be occupying less memory and now it seems to be not having that "2-sec memory peak" style problem as it used to be.
But it still occupies 160+MB memory with my computer, so I wonder if there are still some problem to be fixed...

@dentistfrankchen yeah, the RAM usage has definitely reduced ~110-120mb for me and is much faster as compared to earlier. There is still some input/search lag from time to time though but definitely not as bad as earlier.

My current theory is that occurs when we try to bind a large number of results ItemSource of the ListView (backed by a virtualizing stack panel.   Currently this is unbounded despite only showing a fixed set of results.    I think we can improve this by the following:

Clamp the number of results that can be added into the observable collection.
We may also want to consider levering the AdvancedCollectionView to DeferNotifications of the observable collection.

@somil55 was going to potentially look at this.  @crutkas / @saahmedm .  Can we add this to .21 / InVEST-2007?

@ryanbodrug-microsoft  yes please

I have the same issue on my Surface Book 2 where there would be a seconds-delay lag while typing or backspacing rapidly. I think this is due to the fact that the screen is a HiDPI display, because on my other non-HiDPI desktop the lag is not as apparent.

We've done a lot of perf related fixes in 0.21, please try that out
https://github.com/microsoft/PowerToys/releases

will give it a look and report back the results! thanks for update

Using v0.23.2 and the search is extremely slow, comparing to wox which is pretty much instant

Using v0.23.2 and the search is slow, comparing to wox which is pretty much instant

Mine does same. Currently I am at v0.25.0. Does anyone have the workaround?

@permanar
Try to update to v0.25.0. There were performance improvements.

@mykhailopylyp he said he was currently at v0.25.0

Oh sorry, I misread.

@permanar
Could you please share files from 'C:\Users{SystemName}\AppData\Local\Microsoft\PowerToys\PowerToys Run\Logs'?
As a temporary fix try to delete everything from 'C:\Users\MykhailoPylyp\AppData\Local\Microsoft\PowerToys\PowerToys Run\Cache' and restart PowerToys.

@joffarex / @permanar  please open up a new issue so we can track versus this closed issue
@mykhailopylyp the cache is rebuilt on startup of PT Run

@crutkas oh i do not have this problem anymore. i just replied just because i received notification about it. OP for this new problem should obviously open new issue

Solution for me was to allow windows to index file contents. I turned on content indexing only in a few areas. Works like magic now. Before it was so laggy. I hated it.

For me, using v0.31.2, the lag was terrible after I added iCloud photos which also got added automatically to the search index. I modified my search settings so that iCloud photos folder is excluded from search and the lag has gone.

@tanc wonder if files were still being indexed.  Wonder if we can detect if stuff is being proactively indexed

There's still a delay in V0.35.0; please reopen. This is not an issue in Wox.

Still a significant delay in V0.43.0.

@lifesick please open a new issue with the diagnostic zip from "report bug". Thanks!

Still an issue

Can confirm. Huge delay even on nvme.

/reportbug
This will let us quickly see what worst offenders are.

@pinguluk and @Moe1369 please create new issues and include a report bug log.

@pinguluk and @Moe1369 please create new issues and include a report bug log.

https://github.com/microsoft/PowerToys/issues/15416


S3C-4368 "S3 API capabilities update"

Hello clemenceauriacombe,
My role is to assist you with the merge of this
pull request. Please type @bert-e help to get information
on this process, or consult the user documentation.
Status report is not available.

Waiting for approval
The following approvals are needed before I can proceed with the merge:

the author

2 peers

update syntax and indentation

Codecov Report

Merging #50 (c643768) into development/1.0 (fb7b0f9) will not change coverage.
The diff coverage is n/a.

@@                Coverage Diff                 @@
##             development/1.0      #50   +/-   ##
==================================================
  Coverage              88.77%   88.77%
  Complexity               170      170
==================================================
  Files                     11       11
  Lines                    766      766
  Branches                  46       46
==================================================
  Hits                     680      680
  Misses                    48       48
  Partials                  38       38

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fb7b0f9...c643768. Read the comment docs.

Waiting for approval
The following approvals are needed before I can proceed with the merge:

the author

2 peers

The following reviewers are expecting changes from the author, or must review again:

@anurag4dsb

/approve

Waiting for approval
The following approvals are needed before I can proceed with the merge:

the author

2 peers

The following reviewers are expecting changes from the author, or must review again:

@anurag4dsb

The following options are set: approve

In the queue
The changeset has received all authorizations and has been added to the
relevant queue(s). The queue(s) will be merged in the target development
branch(es) as soon as builds have passed.
The changeset will be merged in:

:heavy_check_mark: development/1.0

There is no action required on your side. You will be notified here once
the changeset has been merged. In the unlikely event that the changeset
fails permanently on the queue, a member of the admin team will
contact you to help resolve the matter.
IMPORTANT
Please do not attempt to modify this pull request.

Any commit you add on the source branch will trigger a new cycle after the
current queue is merged.
Any commit you add on one of the integration branches will be lost.

If you need this pull request to be removed from the queue, please contact a
member of the admin team now.
The following options are set: approve

I have successfully merged the changeset of this pull request
into targetted development branches:

:heavy_check_mark: development/1.0

Please check the status of the associated issue S3C-4368.
Goodbye clemenceauriacombe.


td-agent-gem with error "Segmentation fault"

Check CONTRIBUTING guideline first and here is the list to help us investigate the problem.
Describe the bug

When I installed plugin elasticsearch-xpack via td-agent-gem I encountered error Segmentation fault.
# td-agent-gem install elasticsearch-xpack
/sbin/td-agent-gem: line 4:  8229 Segmentation fault      /opt/td-agent/embedded/bin/fluent-gem "$@"

I also encountered the error Segmentation fault when viewing the td-agent version.

To Reproduce

The td-agent  is installed by the following command:
curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh

Expected behavior

Your Environment

Fluentd or td-agent version: td-agent v3.6.0 (Fluent v1.9.2)
Operating system: cat /etc/os-release

NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

Kernel version: uname -r

3.10.0-957.27.2.el7.x86_64

If you hit the problem with older fluentd version, try latest version first.
Your Configuration
<!-- Write your configuration here -->

Your Error Log
<!-- Write your **ALL** error log here -->

Additional context

There was no problem when testing on another server, but this error always appears on this server. May be caused by a problem with this server environment.


Add new StrictMode version for confusing operator precedence

Summary of the new feature / enhancement
There were multiple discussions about PowerShell's confusing operator order:
> 1 -or 1 -and 0  # expected true like in every programming language
false
> 1, 2+3, 4  # expected @(1, 5, 4) like in Python
1
2
3
4

Just today @SteveL-MSFT accidentally found another example with + and , in #18003 :
> @('a'+'b', 'c'+'d')  # expected @('ab', 'cd') like in Python
ab cd

If even "Principal Software Engineering Manager for PowerShell" (sorry Steve for dragging you into it) cannot get it right, then surely something has to be done.
My proposal to "fix" it without an enormous breaking change of changing operator precedence is to add a new StrictMode version, which emits and error any time a "confusing" operator precedence is encountered without parentheses. Since StrictMode versions are opt-in, this is not a breaking change. I believe this to be a perfect solution, as user simply has to add parentheses to make it explicit what order they expect:
> 1 -or 1 -and 0
Error
> 1 -or (1 -and 0)  # expected behavior
1
> (1 -or 1) -and 0  # current behavior
0
> 0 -and 1 -or 1  # no parentheses required, as both behaviors produce same result
1

Full list of which combination of operators in what order should emit the error is to be determined, but can be gathered from older issues and https://github.com/nightroman/PowerShellTraps
Proposed technical implementation details (optional)
Implementation should have as little performance impact as possible. I hope that simple pattern matching on the AST should be enough, e.g. and/or confusion should be detectable by checking for the pattern x -or y -and z (x -and y -or z is not an issue, as it always executes and first, both in PowerShell's same-precendence and other languages' and-before-or).
If possible, it should be done at parsing stage, to also detect code in not-taken branches.

I don't think this should be a strict mode feature. It's better as a script analyzer rule so editors like VS code can warn you before you attempt to run the script.

@MartinGC94 That would limit the feature only to the particular editor. I believe that a shell language is a bit different usage, as a system admin may quickly edit a script in some basic text editor, or somebody may run couple lines of code directly from terminal, without creating a script first. Personally I was bitten by and/or when trying to look up some files with a Select-Object oneliner. If it's possible to integrate those checks into parser, I see no reason not to do it.
What I am questioning instead is whether a single version setting is good enough. As we add more checks, it is more and more difficult to get them all correct. If somebody wants to use a check from version N, they need to first fulfill all of the previous ones. Maybe moving to a flag system would be a good idea, so that if you don't like this particular check but want to use future ones, you could just do Set-StrictMode -Version 7 -Exclude 'OperatorPrecedence'.

You can always read help topic about_Operator_Precedence.


Support to write GPUImagePicture into a movie file

Add timeframe support to GPUImagePicture so that it can be written to a movie file using GPUImageMovieWriter.
Example of a self-contained method that zooms in on a image and write to a file:
+ (void)zoomInAndWriteToMovie:(UIImage*)image
{
    NSString* moviePath = @"output.mp4";
    NSString* documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) firstObject];
    NSURL* movieURL = [NSURL URLWithString:moviePath relativeToURL: [NSURL fileURLWithPath:documentPath isDirectory:YES]];
    GPUImageMovieWriter *movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(1280,720)];

    GPUImagePicture *imageSource = [[GPUImagePicture alloc] initWithImage:image];
    GPUImageTransformFilter *transformFilter = [[GPUImageTransformFilter alloc] init];
    [imageSource addTarget:transformFilter];

    [transformFilter addTarget:movieWriter];
    [movieWriter startRecording];

    const int totalFrames = 100;
    const float startZoomRatio = 1.2f;
    const float endZoomRatio = 1.0f;
    for (int i = 0; i < totalFrames; i++) {
        float currentZoomRatio = startZoomRatio + (endZoomRatio - startZoomRatio) * i / (float)totalFrames;
        CGAffineTransform scaleTransform = CGAffineTransformMakeScale(currentZoomRatio, currentZoomRatio);

        transformFilter.affineTransform = scaleTransform;
        imageSource.imageFrameTime = CMTimeMake(i, 30); // 30 FPS

        dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
        [imageSource processImageWithCompletionHandler:^{
            dispatch_semaphore_signal(semaphore);
        }];

        dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
    }
                [[GPUImageContext sharedFramebufferCache] purgeAllUnassignedFramebuffers];
    [transformFilter removeTarget:movieWriter];

    dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
    [movieWriter finishRecordingWithCompletionHandler:^{
        dispatch_semaphore_signal(semaphore); // Force to wait for the completion, it might be causing bugs to continue without waiting.
    }];

    dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
    [transformFilter removeAllTargets];
    [imageSource removeAllTargets];
}

@okoriko Thanks a lot for this example and pull request!
I tried to write a photo from camera into a movie.
Usually I record a start a movieWriter with (640, 360) size and video file looks ok, but
when I took a photo with 3264x2448 resolution and set writer with:
GPUImageMovieWriter *movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(640,360)];

I got a poor quality photo animation.
If I double size for moviewWriter image looks good.
So why does recorded video look good with small writer resolution, but not with image?

@hash3r what do you mean poor quality? Did you try to downscale/downsample it first with another filter?
It might be many other things but certainly one thing that comes to my mind would be artifacts from downscaling without a proper filter (especially if it is using point sampling on the texture).

Thank you for reply!

Did you try to downscale/downsample it first with another filter?
No, I just used your example above, without any filters.

I added some video examples with different recording sizes.
Video 640x360
[Image animation 1920x1080]https://www.dropbox.com/s/0sr2k8qewojwnhl/image_video_1920x1080.mov?dl=0
[Image animation 1280x720]https://www.dropbox.com/s/khs8racpdbvh9d9/image_video_1280x720.mov?dl=0
[Image animation 640x360]https://www.dropbox.com/s/25jp4n7m6jdd1qb/image_video_640x360.mov?dl=0
Of course image animation with bigger recording resolution looks better on the phone.
It's just interesting for me, does it depend only on recording size of MovieWriter?


General: All ca.gov links should not be links

@kkoryaka taught me that CA.gov will make the text not be formatted as a link. I'm picking up this issue to review the whole Design System site to find and replace this text since an engineer is not required to do this work.

@kkoryaka I used this fix on the About page and the Visual design page, but in both instances it's still coming up as a linked CA.gov. Any idea why it's not working here?

I see what you are saying @m-sullivan7 . I don't know why it's working on one page and doesn't on another. Here is other alternative that that works on both pages CA.gov. So, you pretty much enclosing period into span tag.

This worked like a charm! Thanks @kkoryaka ! I'll take it from here. 🙂

I've reviewed the Design System site for all instances of CA.gov and have used the <span> tag to change them so they're no longer creating links. This issue is done.


Fix typo

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

Thanks for this, please sign the contributors license agreement if you don't mind :)

I will not sign any CLA that I do not fully understand. Especially not for fixing typos. You can do the change yourself, that "patch" is something obvious, so feel free to do a commit on your own and close this :)