Problems with partition rebalancing

Description
We are having problems with partition rebalancing. We use Kubernetes and we have two replicas for a service with a stream.
One of the problems is message loss.
We have this problem when one of the two pods is down and the second has not yet taken over. If a message is produced at that time and the pod restarts, then the message is not processed.
In some cases, messages are published in duplicates but we have not identified when this happens.
In other cases, both replicas get stuck and we have to restart a single pod to unblock the situation. Here is our configuration.
 Stream property:
                client.id:      product
                num.stream.threads:     1
                default.key.serdes:     Streamiz.Kafka.Net.SerDes.StringSerDes
                default.value.serdes:   Streamiz.Kafka.Net.SerDes.StringSerDes
                default.timestamp.extractor:    Streamiz.Kafka.Net.Processors.Internal.FailOnInvalidTimestamp
                commit.interval.ms:     30000
                processing.guarantee:   AT_LEAST_ONCE
                transaction.timeout:    00:00:10
                poll.ms:        100
                max.poll.records:       500
                max.poll.restoring.records:     1000
                max.task.idle.ms:       0
                buffered.records.per.partition:<PHONE_NUMBER>
                inner.exception.handler:        System.Func`2[System.Exception,Streamiz.Kafka.Net.ExceptionHandlerResponse]
                production.exception.handler:   System.Func`2[Confluent.Kafka.DeliveryReport`2[System.Byte[],System.Byte[]],Streamiz.Kafka.Net.ExceptionHandlerResponse]
                deserialization.exception.handler:      System.Func`4[Streamiz.Kafka.Net.ProcessorContext,Confluent.Kafka.ConsumeResult`2[System.Byte[],System.Byte[]],System.Exception,Streamiz.Kafka.Net.ExceptionHandlerResponse]
                rocksdb.config.setter:  System.Action`2[System.String,Streamiz.Kafka.Net.State.RocksDb.RocksDbOptions]
                follow.metadata:        False
                state.dir:      C:\Users\****\AppData\Local\Temp\streamiz-kafka-net
                replication.factor:     1
                windowstore.changelog.additional.retention.ms:  86400000
                offset.checkpoint.manager:
                metrics.interval.ms:    30000
                metrics.recording.level:        INFO
                log.processing.summary:         00:01:00
                metrics.reporter:       System.Action`1[System.Collections.Generic.IEnumerable`1[Streamiz.Kafka.Net.Metrics.Sensor]]
                expose.librdkafka.stats:        False
                start.task.delay.ms:    5000
                parallel.processing:    False
                max.degree.of.parallelism:      8
                application.id:         product
                schema.registry.url:    <IP_ADDRESS>
                schema.registry.request.timeout.ms:     30000
                schema.registry.max.cached.schemas:     10
                avro.serializer.buffer.bytes:   2048
                protobuf.serializer.buffer.bytes:       2048
                avro.serializer.auto.register.schemas:  True
                protobuf.serializer.auto.register.schemas:      True
        Client property:
                bootstrap.servers:      <IP_ADDRESS>
                security.protocol:      plaintext
                debug:
        Consumer property:
                max.poll.interval.ms:   300000
                enable.auto.commit:     False
                enable.auto.offset.store:       False
                partition.assignment.strategy:  roundrobin
                auto.offset.reset:      earliest
                allow.auto.create.topics:       True
        Producer property:
                partitioner:    consistent_random
                enable.idempotence:     True
                message.timeout.ms:<PHONE_NUMBER>
                message.send.max.retries:       1000000
                retry.backoff.ms:       100
        Admin client property:
                None

How to reproduce
Run the stream on two pods.

Hi @dasilvaKevin ,
Why did you override the consumer property partition.assignment.strategy:  roundrobin ?
Can you share the logs of the two pods when the issue appears ?
Thanks,

Hi @LGouellec,
Thank you for your reply.
We have overridden the consumer property partition.assignment.strategy to roundrobin for testing because we have the same problem with range.
We have logs for the case when a message is not handled.
We started with one pod (log0) and we produced "product11". This message is handled.
We started a second pod (log1) and we produced "product12". This message is not handled and we have a lag on the source topic.
log0.txt
log1.txt

@dasilvaKevin
Product12 has been handled by your pod0.
Can you retry the same test but with changing the log4net pattern with the timestamp ? I could compare and understand better the different actions and timeline please ?

Hi @LGouellec,
We have not reproduced the same problem, but we do have two other cases.
First problem:
We started with one pod (log0) and we produced "product13" and this message is processed.
We started a second pod (log1) and we produced "product14" and this message is processed.
We produced "product15" and this message is processed eight minutes later.
Second problem:
We start two pods and produce "product15" to "product19" and all messages are processed.
We kill a pod and produce "product20"
and this message is not processed and we have a lag on the source topic.
The log2 file contains the logs of the remaining pod.
log0.txt
log1.txt
log2.txt

Hi @dasilvaKevin,
1st Problem :
As you can see on log1.txt, product15 has been processed at 2024-06-13T08:12:22.9014142Z and the timestamp of the message produced in Kafka is<PHONE_NUMBER>600 =  Thursday, 13 June 2024 08:12:22.600 so 300ms before the processing, not 8 minutes. If you see a delay between the producing and the processing, it's maybe due to multiple retry during processing, because in the processing side, the timestamp of the processing and the timestamp of the message persisted in Kafka is really near.
{ timestamp = 2024-06-13T08:12:22.9014142Z, log = { level = Debug, logger = Streamiz.Kafka.Net.Processors.StreamTask, original = stream-task[0|2] Start processing one record [Topic:product|Partition:2|Offset:6|Timestamp:1718266342600] }, message = stream-task[0|2] Start processing one record [Topic:product|Partition:2|Offset:6|Timestamp:1718266342600], metadata = { message_template = stream-task[0|2] Start processing one record [Topic:product|Partition:2|Offset:6|Timestamp:1718266342600] }, ecs = { version = 1.5.0 }, event = { severity = 1, timezone = Coordinated Universal Time, created = 2024-06-13T08:12:22.9014216Z }, process = { thread = { id = 16 }, pid = 1, name = ProductCategoryStream, executable = /app/Shared.dll } }
2nd Problem :
It seems Product20 has been processed, are you sure that you haven't a Product20 key record in the output topic ?
{ timestamp = 2024-06-13T08:56:49.3788938Z, log = { level = Debug, logger = Streamiz.Kafka.Net.Processors.SinkProcessor, original = stream-task[0|0]|processor[KSTREAM-SINK-0000000006]- Process<String,ProductWithCategory> message with key Product20 and stream.ProductWithCategory with record metadata [topic:product|partition:0|offset:4] }, message = stream-task[0|0]|processor[KSTREAM-SINK-0000000006]- Process<String,ProductWithCategory> message with key Product20 and stream.ProductWithCategory with record metadata [topic:product|partition:0|offset:4], metadata = { message_template = stream-task[0|0]|processor[KSTREAM-SINK-0000000006]- Process<String,ProductWithCategory> message with key Product20 and stream.ProductWithCategory with record metadata [topic:product|partition:0|offset:4] }, ecs = { version = 1.5.0 }, event = { severity = 1, timezone = Coordinated Universal Time, created = 2024-06-13T08:56:49.3788968Z }, process = { thread = { id = 16 }, pid = 1, name = ProductCategoryStream, executable = /app/Shared.dll } }
If not, please enable the debug librdkafka log (config.Debug = "broker,topic,msg") , the Kafka Producer is asynchronous, so if the produce doesn't succeed to produce messages, it will retry multiple times.

Hi @LGouellec,
Thanks for the clarification on the first problem.
For the second problem, when we enable the librdkafka log (config.Debug = "broker,topic,msg"), we encounter a System.NullReferenceException: 'Object reference not set to an instance of an object.' at Confluent.Kafka.Consumer`2.get_Name() in Confluent.Kafka\Consumer.cs: line 134.

Hi @dasilvaKevin ,
Can you share the full stack trace of exception please ?

Can you try to override the conf :
config.Client = "your client ID";

Hi @LGouellec,
We use the version 1.5.1.
For configuration, we override the ClientID.
Here's our configuration: :
var config = new StreamConfig<StringSerDes, StringSerDes> {     ApplicationId = _options.ClientId,     BootstrapServers = _options.Servers,     SecurityProtocol = _options.SecurityProtocol,     AutoOffsetReset = _options.AutoOffsetReset,     EnableIdempotence = true,     MessageTimeoutMs = _options.ProducerMessageTimeoutMs,     MessageSendMaxRetries = _options.ProducerMessageMaxRetries,     RetryBackoffMs = _options.ProducerRetryBackOffMs,     AllowAutoCreateTopics = true,     SchemaRegistryUrl = _options.SchemaRegistryUrl,     SchemaRegistryRequestTimeoutMs = _options.SchemaRegistryRequestTimeoutMs,     SchemaRegistryMaxCachedSchemas = _options.SchemaRegistryMaxCachedSchemas,     BufferBytes = _options.BufferBytes,     AutoRegisterSchemas = _options.AutoRegisterSchemas,     PartitionAssignmentStrategy = PartitionAssignmentStrategy.RoundRobin,     Partitioner = Partitioner.ConsistentRandom,     ClientId = _options.ClientId,     Debug = "broker,topic,msg", };

Please add also to have more debug logs
config.Logger = LoggerFactory.Create((b) =>
                {
                    b.AddConsole();
                    b.SetMinimumLevel(LogLevel.Debug);
                })

Hi @LGouellec,
We already have that.
The System.NullReferenceException occurs when we override the Debug property.
For the first log files I sent you, we used this loggerFactory.

HI @dasilvaKevin ,
Can you upgrade and try the last RC version ? 1.6.0-RC2

Hi @LGouellec,
We have the same error with the last RC.

Hi @dasilvaKevin,
Can you open a ticket here confluent-kafka-dotnet and asking with client.Name throw a NullReferenceException whereas you have configured the ClientId property thks

Hi @LGouellec,
I found a workaround.
I added an if statement in this method in class KafkaLoggerAdapter:
private string GetName(IClient client)
{
    // FOR FIX
    var name = "";
    try
    {
        if (client.Handle == null || client.Handle.IsInvalid)
[category1.txt](https://github.com/user-attachments/files/16131193/category1.txt)

            return "Unknown";

        name = client.Name;
    }
    catch (NullReferenceException)
    {
        name = "Unknown";
    }

    return name;
}

I reproduced the issue where a message is not consumed and there is lag in my consumer group.
The message was produced at 15:46:23.068.
Uploading category1.txt…
category2.txt

Hi, I've encountered a similar issue in my tests.
I've an application with a topology that reads data from two topics (let's say TA and TB) with an N number of partition for each topic.
If I deploy the app on it's own everything works fine.
If I add another instance the rebalacing kicks in and the following can happen:
Only X partition of TA are assigned to the consumer therefore public void CreateTasks(ICollection<TopicPartition> assignment) is executed without any TB partition in.
Tasks are created but only partition from TA are associated to it.
Few seconds later also the related partition from TB are associated to the consumer and  public void CreateTasks(ICollection<TopicPartition> assignment) is executed again.
However the tasks are already present in the activeTasks list and the TB partitions are ignored.
When this happens the consumer results as it's consuming messages from TB but nothing happens as the partition is not associated to any task.

Hey @EmanueleAlbero,
Can you share your logs when this issue appears ? It seems another problem, not directly related to this original issue, but maybe I'm wrong.
With more logs (please put the logs of your 2 instances, date and time will help a lot), I can troubleshoot better
Appreciate,

CI.Processor.Debug.JustPublished.Reducted.log
Attached the logs of the app just published on ESK.
The previous running instance get deleted once the new app liveness probe is fine.
This is the events that actually triggers the issue.
The issue is usually with topic-root.source1.v1
If I delete the running pod and launch it again everything works fine.
I got
[07-26 10:34:00 DBG][Streamiz.Kafka.Net.Processors.Internal.TaskCreator][TraceId:] Created task 0-0 with assigned partition topic-root.source2.v1 [[0]],topic-root.source1.v1 [[0]] [07-26 10:34:00 DBG][Streamiz.Kafka.Net.Processors.Internal.TaskCreator][TraceId:] Created task 0-0 with assigned partition topic-root.source2.v1 [[0]],topic-root.source1.v1 [[0]] [07-26 10:34:00 DBG][Streamiz.Kafka.Net.Processors.Internal.TaskCreator][TraceId:] Created task 0-1 with assigned partition topic-root.source2.v1 [[1]],topic-root.source1.v1 [[1]] [07-26 10:34:00 DBG][Streamiz.Kafka.Net.Processors.Internal.TaskCreator][TraceId:] Created task 0-1 with assigned partition topic-root.source2.v1 [[1]],topic-root.source1.v1 [[1]] and so on.
Otherwise, as in the attached logs If it receives source2 first (line 244) it creates the task with only 1 partition and when it receives the source1 it's ignored (line 3810).
I've tried to apply the fix you wrote for the issue I'm commenting but it didn't solves my problem.
Thanks a lot for your incredible effort in this library!

Hi, found out the issue for not receiving all the required topics at once was due to the consumer Partition strategy set to CooperativeSticky.
Receiving all the topics at once everything works fine.

Hi, I have found out a possible cause for the missing messages consumed\sent.
The application I'm working on uses the default value (configuration.Guarantee == ProcessingGuarantee.AT_LEAST_ONCE).
With this setting the producer is shared
            if (configuration.Guarantee == ProcessingGuarantee.AT_LEAST_ONCE) {     log.LogInformation("{LogPrefix}Creating shared producer client", logPrefix);     producer = kafkaSupplier.GetProducer(configuration.ToProducerConfig(GetThreadProducerClientId(threadId))         .Wrap(threadId)); }
But, when the rebalancing occurs the record collector tries to dispose it
`
public void Close()
{
log.LogDebug("{LogPrefix}Closing producer", logPrefix);
if (producer != null)
{
lock (_lock)
{
string producerName = producer.Name.Split('#')[0];
if (instanceProducer.ContainsKey(producerName) && --instanceProducer[producerName] <= 0)
{
if (retryRecordContext.HasNext)
log.LogWarning(
"There are messages still pending to retry in the backpressure queue. These messages won't longer flush into the corresponding topic !");
            retryRecordContext.Clear();
            producer.Dispose();
            producer = null;
            CheckForException();
        }
    }
}

_adminClient?.Dispose();

}
`
Once disposed, at the next Partitions assignment a disposed producer is assigned causing issues and access violations

@EmanueleAlbero Will take a look next week

Hey @EmanueleAlbero ,

Hi, found out the issue for not receiving all the required topics at once was due to the consumer Partition strategy set to CooperativeSticky. Using Range or RoundRobin strategy allows to receive all the topics at once. Now the only issue remaining is that sometime after the initial rebalancing the application is not consuming messages from the topics (and I see the consumer group latency grow up on kafka ui) but I'm still investigating on this and for this I haven't tried yet the fix you made in this issue (I will try and update about the result).

If you join multiple topics, Range is better to be sure all co-partitioned tasks are assigned to the same instance.
When the rebalancing occurs the record collector is flushed first, after closed but only if there is no other partitions which use the producer instance.
I encourage you to create another ticket, becasue this one was a synchronization issue between KStream and GlobalKTable, and no directly related to your issue.
It will easier and better to separate both issues.
Btw, I'm currently conducting a satisfaction survey to understand how I can better serve and I would love to get your feedback on the product.
Your insights are invaluable and will help us shape the future of our product to better meet your needs. The survey will only take a few minutes, and your responses will be completely confidential.
Survey
Thank you for your time and feedback!


[BUG]: Checkbox whitespace

Issue description
Checkbox whitespace is broken for smaller screens
Media & Screenshots

Baklava Version
2.3.0-beta.3
Operating system

Priority this issue should have
Medium (should be fixed soon)
Please review the checkboxes that are applicable.

[ ] This issue is directly related to React

checkbox label
.label {
    word-break: break-all;
}

change with:
.label {
    word-break: initial;
}

What is the reason for the 'break-all' defination?

What is the expected result above? @AykutSarac
@fatihhayri I think we did this to avoid layout issues in Select component (multi select with very long single word values)

This is very ugly and unreadable. I'd expect to break by words, not by characters.

According to MDN break-word is deprecated but maybe we could prefer to use overflow-wrap: break-word;.


Can you solve the age-restricted videos?

Can you solve the age-restricted videos? Thanks!

i am heaving same issue


feat(libbpf/bpftool): scaffold libbpf/bpftool

libbpf/bpftool: Automated upstream mirror for bpftool stand-alone build
Check List

[x] Read CONTRIBUTING.md

[x] Read OSS Contribution Guide

[x] All commits are signed

This repository enables Require signed commits, so all commits must be signed

[x] Avoid force push
[x] Do only one thing in one Pull Request
[x] Execute cmdx s to scaffold code
[ ] Install and execute the package and confirm if the package works well

Not sure how i have to do the test.
I also noticed one issue with the package, the binaries are not made to be executable will aqua handle this?
i.e. chmod +x binary?

Not sure how i have to do the test.

https://aquaproj.github.io/docs/products/aqua-registry/contributing/#how-to-add-a-package

Run test: cmdx t <package name>

I also noticed one issue with the package, the binaries are not made to be executable will aqua handle this?
i.e. chmod +x binary?

aqua should make commands executable.

I'll update the document.

https://github.com/aquaproj/aquaproj.github.io/pull/1188

v4.247.0 is out 🎉
https://github.com/aquaproj/aqua-registry/releases/tag/v4.247.0


yt-dlp missing quality of YouTube web

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting that a supported site is broken
[X] I've verified that I'm running yt-dlp version 2023.03.04 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
United States
Provide a description that is worded well enough to be understood
When viewing this video on YouTube.com on Firefox, the quality (1080p selected) is much clearer than any quality that can be downloaded with yt-dlp.
For example: At 09:31, there is a frame where a message can be seen on blue. Screenshot taken from YouTube.com.

This message is completely gone in yt-dlp downloads, including the ones with the highest resolution and bitrate (312, 617, 303). Screenshot from 312 ./yt-dlp_macos --extractor-args "youtube:player_client=all" -f 312 'https://www.youtube.com/watch?v=aSs5EgvgYpY'.

There are other instances in this video where yt-dlp downloads lack quality compared to the much clearer YouTube web video. yt-dlp is missing the quality that is being played on YouTube web.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', '--extractor-args', 'youtube:player_client=all', '--cookies-from-browser', 'firefox', '-F', 'https://www.youtube.com/watch?v=aSs5EgvgYpY']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[392389b7d] (darwin_exe)
[debug] Python 3.8.9 (CPython arm64 64bit) - macOS-13.2.1-arm64-arm-64bit (LibreSSL 2.8.3)
[debug] exe versions: ffmpeg 6.0 (setts), ffprobe 6.0
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[Cookies] Extracting cookies from firefox
[debug] Extracting cookies from: "/Users/23376/Library/Application Support/Firefox/Profiles/bmi7uf4u.default-release/cookies.sqlite"
[Cookies] Extracted 2534 cookies from firefox
[debug] Proxy map: {}
[debug] Loaded 1786 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version<EMAIL_ADDRESS>Current version<EMAIL_ADDRESS>Current Build Hash: 1f893f5fb990b1df08820be3fac6c46ee93c0b2f797b72a104bbd485139a8e9d
yt-dlp is up to date<EMAIL_ADDRESS>[youtube] Extracting URL: https://www.youtube.com/watch?v=aSs5EgvgYpY
[youtube] aSs5EgvgYpY: Downloading webpage
[debug] [youtube] Extracted SAPISID cookie
[youtube] aSs5EgvgYpY: Downloading android player API JSON
[youtube] aSs5EgvgYpY: Downloading android embedded player API JSON
[youtube] aSs5EgvgYpY: Downloading android music player API JSON
[youtube] aSs5EgvgYpY: Downloading android creator player API JSON
[youtube] aSs5EgvgYpY: Downloading android embedscreen player API JSON
[youtube] aSs5EgvgYpY: Downloading web embedded client config
[youtube] aSs5EgvgYpY: Downloading player 36754c51
[youtube] aSs5EgvgYpY: Downloading web embedded player API JSON
[youtube] aSs5EgvgYpY: Downloading web music client config
[youtube] aSs5EgvgYpY: Downloading web music player API JSON
[youtube] aSs5EgvgYpY: Downloading web creator player API JSON
[youtube] aSs5EgvgYpY: Downloading web embedscreen player API JSON
[youtube] aSs5EgvgYpY: Downloading tv embedded player API JSON
[youtube] aSs5EgvgYpY: Downloading ios player API JSON
[youtube] aSs5EgvgYpY: Downloading ios embedded player API JSON
[youtube] aSs5EgvgYpY: Downloading ios music player API JSON
[youtube] aSs5EgvgYpY: Downloading ios creator player API JSON
[youtube] aSs5EgvgYpY: Downloading ios embedscreen player API JSON
[youtube] aSs5EgvgYpY: Downloading mweb player API JSON
[youtube] aSs5EgvgYpY: Downloading mweb embedscreen player API JSON
[debug] Loading youtube-nsig.36754c51 from cache
[debug] [youtube] Decrypted nsig zhUcHIUdyxr00jOb4fm => dYmsxvSzCyCwGA
[youtube] aSs5EgvgYpY: Downloading m3u8 information
[youtube] aSs5EgvgYpY: Downloading m3u8 information
[youtube] aSs5EgvgYpY: Downloading m3u8 information
[youtube] aSs5EgvgYpY: Downloading m3u8 information
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, filesize, fs_approx, tbr, vbr, abr, asr, vext, aext, hasaud, id
[info] Available formats for aSs5EgvgYpY:
ID      EXT   RESOLUTION FPS CH │   FILESIZE   TBR PROTO │ VCODEC          VBR ACODEC      ABR ASR MORE INFO
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb2     mhtml 48x27        0    │                  mhtml │ images                                  storyboard
sb1     mhtml 80x45        0    │                  mhtml │ images                                  storyboard
sb0     mhtml 160x90       0    │                  mhtml │ images                                  storyboard
233     mp4   audio only        │                  m3u8  │ audio only          unknown             Default
234     mp4   audio only        │                  m3u8  │ audio only          unknown             Default
599     m4a   audio only      2 │    2.79MiB   31k dash  │ audio only          mp4a.40.5   31k 22k ultralow, m4a_dash
600     webm  audio only      2 │    3.00MiB   33k dash  │ audio only          opus        33k 48k ultralow, webm_dash
249-drc webm  audio only      2 │    4.43MiB   49k dash  │ audio only          opus        49k 48k low, DRC, webm_dash
250-drc webm  audio only      2 │    5.81MiB   64k dash  │ audio only          opus        64k 48k low, DRC, webm_dash
139     m4a   audio only      2 │    4.42MiB   49k dash  │ audio only          mp4a.40.5   49k 22k low, m4a_dash
249     webm  audio only      2 │    4.40MiB   49k dash  │ audio only          opus        49k 48k low, webm_dash
250     webm  audio only      2 │    5.76MiB   64k dash  │ audio only          opus        64k 48k low, webm_dash
140-drc m4a   audio only      2 │   11.72MiB  129k dash  │ audio only          mp4a.40.2  129k 44k medium, DRC, m4a_dash
251-drc webm  audio only      2 │   11.49MiB  127k dash  │ audio only          opus       127k 48k medium, DRC, webm_dash
140     m4a   audio only      2 │   11.72MiB  129k dash  │ audio only          mp4a.40.2  129k 44k medium, m4a_dash
251     webm  audio only      2 │   11.36MiB  126k dash  │ audio only          opus       126k 48k medium, webm_dash
17      3gp   176x144      8  1 │    6.35MiB   70k https │ mp4v.20.3       70k mp4a.40.2    0k 22k 144p
597     mp4   256x144     15    │    2.56MiB   28k dash  │ avc1.4d400b     28k video only          144p, mp4_dash
598     webm  256x144     15    │    2.04MiB   23k dash  │ vp9             23k video only          144p, webm_dash
602     mp4   256x144     15    │ ~ 10.37MiB  112k m3u8  │ vp<IP_ADDRESS>  112k video only
394     mp4   256x144     30    │    5.59MiB   62k dash  │ av01.0.00M.08   62k video only          144p, mp4_dash
160     mp4   256x144     30    │    4.86MiB   54k dash  │ avc1.4d400c     54k video only          144p, mp4_dash
269     mp4   256x144     30    │ ~ 21.17MiB  229k m3u8  │ avc1.4D400C    229k video only
278     webm  256x144     30    │    6.30MiB   70k dash  │ vp9             70k video only          144p, webm_dash
603     mp4   256x144     30    │ ~ 14.38MiB  155k m3u8  │ vp<IP_ADDRESS>  155k video only
395     mp4   426x240     30    │    8.81MiB   97k dash  │ av01.0.00M.08   97k video only          240p, mp4_dash
133     mp4   426x240     30    │   10.04MiB  111k dash  │ avc1.4d4015    111k video only          240p, mp4_dash
229     mp4   426x240     30    │ ~ 43.16MiB  466k m3u8  │ avc1.4D4015    466k video only
242     webm  426x240     30    │   10.36MiB  114k dash  │ vp9            114k video only          240p, webm_dash
604     mp4   426x240     30    │ ~ 26.76MiB  289k m3u8  │ vp<IP_ADDRESS>  289k video only
396     mp4   640x360     30    │   17.95MiB  198k dash  │ av01.0.01M.08  198k video only          360p, mp4_dash
134     mp4   640x360     30    │   19.41MiB  214k dash  │ avc1.4d401e    214k video only          360p, mp4_dash
230     mp4   640x360     30    │ ~ 86.47MiB  933k m3u8  │ avc1.4D401E    933k video only
18      mp4   640x360     30  2 │   44.50MiB  492k https │ avc1.42001E    492k mp4a.40.2    0k 44k 360p
243     webm  640x360     30    │   18.63MiB  206k dash  │ vp9            206k video only          360p, webm_dash
605     mp4   640x360     30    │ ~ 52.99MiB  572k m3u8  │ vp<IP_ADDRESS>  572k video only
397     mp4   854x480     30    │   31.39MiB  347k dash  │ av01.0.04M.08  347k video only          480p, mp4_dash
135     mp4   854x480     30    │   29.31MiB  324k dash  │ avc1.4d401f    324k video only          480p, mp4_dash
231     mp4   854x480     30    │ ~126.30MiB 1363k m3u8  │ avc1.4D401F   1363k video only
244     webm  854x480     30    │   29.13MiB  322k dash  │ vp9            322k video only          480p, webm_dash
606     mp4   854x480     30    │ ~ 85.70MiB  925k m3u8  │ vp<IP_ADDRESS>  925k video only
22      mp4   1280x720    30  2 │ ~130.44MiB 1408k https │ avc1.64001F   1408k mp4a.40.2    0k 44k 720p
136     mp4   1280x720    30    │  115.76MiB 1279k dash  │ avc1.4d401f   1279k video only          720p, mp4_dash
247     webm  1280x720    30    │   68.99MiB  762k dash  │ vp9            762k video only          720p, webm_dash
302     webm  1280x720    59    │   86.90MiB  960k dash  │ vp9            960k video only          720p60, webm_dash
612     mp4   1280x720    59    │ ~271.16MiB 2927k m3u8  │ vp<IP_ADDRESS> 2927k video only
398     mp4   1280x720    60    │  104.89MiB 1159k dash  │ av01.0.08M.08 1159k video only          720p60, mp4_dash
298     mp4   1280x720    60    │   65.35MiB  722k dash  │ avc1.4d4020    722k video only          720p60, mp4_dash
311     mp4   1280x720    60    │ ~324.60MiB 3503k m3u8  │ avc1.4D4020   3503k video only
399     mp4   1920x1080   60    │  205.30MiB 2268k dash  │ av01.0.09M.08 2268k video only          1080p60, mp4_dash
299     mp4   1920x1080   60    │  219.14MiB 2421k dash  │ avc1.64002a   2421k video only          1080p60, mp4_dash
312     mp4   1920x1080   60    │ ~588.45MiB 6351k m3u8  │ avc1.64002A   6351k video only
303     webm  1920x1080   60    │  202.90MiB 2242k dash  │ vp9           2242k video only          1080p60, webm_dash
617     mp4   1920x1080   60    │ ~444.65MiB 4799k m3u8  │ vp<IP_ADDRESS> 4799k video only

For example: At 09:31, there is a frame where a message can be seen on blue. Screenshot taken from YouTube.com.

Check the currently playing itag in "stats for nerds". If you download the same itag but is getting different quality, it is likely difference b/w how your browser and video player process the video.

Thank you, it was 399. Not the highest VBR one so I wouldn't have thought to try it.

it was 399.

Awesome. That is what yt-dlp will select with -S res,vcodec[^1], so our internal assumptions of quality seems to hold well in this case
[^1]: which is recommended option for best quality and will be made default after #4846


cbuild reporting errors when a context build fails (CI usage)

Describe The Problem To Be Solved
Using cbuild in CI system on a solution with multiple contexts should indicate failure when a context fails. How can this be achieved?

I believe there is currently no feature that allows that.
Possible Solutions could be

Exit code
Build summary in *.cbuild-idx.yml

This is a proposal how messages could look like in *.cbuild-idx.yml
cbuilds:
- cbuild: BSD_Client/BSD_Client.Debug+MIMXRT1062DVL6A.cbuild.yml
project: BSD_Client
configuration: .Debug+MIMXRT1062DVL6A
errors: true
messages:
errors:
-  "No compatiple software layer found. Review required connections of the project."
- "board 'NXP::EVK-MIMXRT1060x' was not found"
warnings:
- "My fake warning: xyz"
info:
- "My fake info: component<EMAIL_ADDRESS>obsolete
configuration: .Release+MIMXRT1062DVL6A
errors: true
messages:
errors:
- "board 'NXP::EVK-MIMXRT1060x' was not found"

MCUTO-347


Can't compile project

Hi,
i haven't dealt with java in a log time, so it may totally be my fault. By when i try to compile the project with IntelliJ i always end up with
C:....\bambu-farm-main\bambu\src\main\java\com\tfyre\bambu\printer\BambuPrinter.java:3:29
--> import com.tfyre.bambu.model.BambuMessage:
java: Package com.tfyre.bambu.model ist not available

Its a multi module project, please make sure you build the entire project.... BambuMessage is something that is generated by the Protobuf processor.


Can't scroll to infowindow bottom on first open, but can when it's opened 2nd time

RE: S/B ticket 5153336
http://cdb.io/1EOxJBK
If you click on purple marker to open infowindow, you can scroll downward but not all the way to the bottom of the content. Scrollbar indicates you're at the bottom, when you aren't:

If you close infowindow and open same one again, you're able to scroll all the way down.

ping @xavijam @saleiva
Steph could you try to reproduce it in your own account? :smile: thanks!

Yep! Tested mine w/huge header images instead of txt & having same problem: http://cdb.io/1dNeFtN

The problem was that the height of the scroll was calculated before the image was loaded. That's why it was only failing the first time. The next time the infowindow was opened, the image was already loaded and the scroll was calculated correctly.


feat: Support 'mod' arithmetic operator

Motivation

Missing arithmetic operator mod in JDSL.

Modifications

Add Jpql function, expression and serializer for mod operator.
Add tests.
Update documentation (English and Korean).

Result

The arithmetic operator mod is added.

Closes

#581

Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (755c8d5) 91.97% compared to head (b158e32) 91.99%.

Files
Patch %
Lines

...ender/jpql/serializer/impl/JpqlModuloSerializer.kt
87.50%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #645      +/-   ##
==========================================
+ Coverage   91.97%   91.99%   +0.01%
==========================================
  Files         297      299       +2
  Lines        3215     3235      +20
  Branches      195      195
==========================================
+ Hits         2957     2976      +19
- Misses        204      205       +1
  Partials       54       54

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


feature: custom ssl

Coverage increased (+0.04%) to 92.386% when pulling 5c648064879267458cef7d28538d0cc27365c124 on lolwhoami:custom-ssl into 3234d82df1356e523ddf2fc4d25d963cd02e47ae on ericmdantas:master.

v1.10.0 released


onExitPage option missing for amplitude init function

onExitPage option, that is there in the js sdk, is missing in the amplitude init function
Expected Behavior
Expected to find onExitPage option. Or some documentation in case it is removed or replaced by something else.
Current Behavior
onExitPage option is not present in the init function
Steps to Reproduce

Install the Typescript SDK
Try to init Amplitude sdk

Environment

TS SDK Version<EMAIL_ADDRESS>Installation Method: yarn
Browser and Version: Chrome/VSCode

Hi @abhi-gn, we have migration docs posted here: https://www.docs.developers.amplitude.com/data/sdks/typescript-browser/migration/#flush-or-onexitpage The link anchors on this specific topic. Let me know if this helps!

Thanks @kevinpagtakhan, this helps.


Plan to achieve fermat spiral tool path?

Hello, Thanks for your work, do you have any plan about Fermat spiral tool path?

Hi! Do you mean connected Fermat spiral toolpath (CFS)? I used to apply it to CP and IQOP. If you need, I think I can plan to add the function.

Hi! Do you mean connected Fermat spiral toolpath (CFS)? I used to apply it to CP and IQOP. If you need, I think I can plan to add the function.

Thanks, I mean CFS, this repository is about 2D, I want to use in 3D scenario, just like this.

OK! I will add a function on toolpath connection (i.e., CFS) in 2024. It is noteworthy that NEPath plans 2D toolpaths. If you need to plan 3D toolpaths like CAM, I think that you can try to transform the 2D toolpaths into 3D.

Oh, It's a good news. What's more, I want to know how to smooth the contour when using contour parallel, the sharp path isn't suitable for robot.

OK! I will add a function on toolpath connection (i.e., CFS) in 2024. It is noteworthy that NEPath plans 2D toolpaths. If you need to plan 3D toolpaths like CAM, I think that you can try to transform the 2D toolpaths into 3D.

Oh, It's a good news. What's more, I want to know how to smooth the contour when using contour parallel, the sharp path isn't suitable for robot.

As I know, the reqirement is "path smoothing" or "trajectory smoothing". Some works on additive manufacturing or CNC machining may be helpful. Three typical methods are as follows.
[1] Wang W, Hu C, Zhou K, et al. Local asymmetrical corner trajectory smoothing with bidirectional planning and adjusting algorithm for CNC machining[J]. Robotics and Computer-Integrated Manufacturing, 2021, 68: 102058. (See Figure 1)
[2] Zhao H, Zhu L M, Ding H. A real-time look-ahead interpolation methodology with curvature-continuous B-spline transition scheme for CNC machining of short line segments[J]. International Journal of Machine Tools and Manufacture, 2013, 65: 88-98. (See Figure 1)
[3] Zhao H, Gu F, Huang Q X, et al. Connected fermat spirals for layered fabrication[J]. ACM Transactions on Graphics (TOG), 2016, 35(4): 1-10. (See Appendix)

As I know, the reqirement is "path smoothing" or "trajectory smoothing". Some works on additive manufacturing or CNC machining may be helpful. Three typical methods are as follows. [1] Wang W, Hu C, Zhou K, et al. Local asymmetrical corner trajectory smoothing with bidirectional planning and adjusting algorithm for CNC machining[J]. Robotics and Computer-Integrated Manufacturing, 2021, 68: 102058. (See Figure 1) [2] Zhao H, Zhu L M, Ding H. A real-time look-ahead interpolation methodology with curvature-continuous B-spline transition scheme for CNC machining of short line segments[J]. International Journal of Machine Tools and Manufacture, 2013, 65: 88-98. (See Figure 1) [3] Zhao H, Gu F, Huang Q X, et al. Connected fermat spirals for layered fabrication[J]. ACM Transactions on Graphics (TOG), 2016, 35(4): 1-10. (See Appendix)

Thanks, It's useful for me.

Hi, XiaXingLuo! The function on toolpath connecting is available now! You might have interest in it. For example, project the connected toolpaths onto the machined surface, and then smoothen the path.

Hi, XiaXingLuo! The function on toolpath connecting is available now! You might have interest in it. For example, project the connected toolpaths onto the machined surface, and then smoothen the path.

Wo! Good news for me, although it is "double spiral", I think I can study your source code to get "single spiral". Thanks for your efforts.


Add Java version requirements to track

For example, some problems require Java 8 to be solved.

Should we say which problems require which versions of Java, or just put a blanket statement that Java 8 is required?

I think it would be best to say so, yes. The downside is that some might have to install it first, but Java 8 isn't super new and some exercises can't be solved without it (the tests use classes only found in Java 8).

Ok, thanks. I've updated the docs site with this.

Thanks!


Trust secret doesn't support bundle with multiple source certificates

Describe the bug
When the trust secret has multiple source certificates, the broker pods only trust one, i.e.
apiVersion: trust.cert-manager.io/v1alpha1
kind: Bundle
metadata:
  name: my-bundle
spec:
  sources:
  - secret:
      name: "my-foo-cert-secret"
      key: "tls.crt"
  - secret:
      name: "my-bar-cert-secret"
      key: "tls.crt"
  target:
    secret:
      key: "root-certs.pem"

apiVersion: broker.amq.io/v1beta1
kind: ActiveMQArtemis
metadata:
  name: broker
spec:
  acceptors:
    - name: tls-acceptor
      port: 61617
      sslEnabled: true
      needClientAuth: true
      sslSecret: my-broker-cert-secret
      trustSecret: my-bundle

[!TIP]
Vote this issue reacting with :+1: or :-1:

Resolved by https://github.com/artemiscloud/activemq-artemis-operator/commit/416f9dbda97a4d9951c0f956b8186c9cfa1638a3


Introduce Transpiler & Refactor Compilation Flow

Summary
The QISKit transpiler is introduced, which includes:

a PassManager (to be expanded and become smarter)
a BasePass class, to serve as a template for all analysis passes and circuit rewriting passes
a CXCancellation pass, to demonstrate that the pass manager works (to be expanded to other passes)

Resolves #538.
Todo this PR:

[x] Tests: Test CX cancellation pass, test empty pass_manager, test default pass_manager (None)
[x] Rebase after #563 is merged.

Todo future PR:

Migrate optimize_1q_gates to transpiler
Migrate swap_mapper to transpiler
Introduce notion of fixed point and convergence in passes

Details and comments

The transpiler contains a compile method and a transpile method.
Compile means going from circuit -> dag -> qobj.
Transpile means going from dag->dag, using a set of passes, managed by a PassManager().

Skipping the transpiler is as simple as passing an empty pass_manager.

Already some optimizations can be found using this framework. For example, the default qiskit compiler only calls cx_cancellation after the mapper. However, with a modular approach, we can request cx_cancellation before the mapper as well. In cases when cx gates can be cancelled before mapping, the mapper output is much more efficient.

In the spirit of http://scholar.google.ch/scholar_url?url=https://arxiv.org/pdf/1805.09607&hl=en&sa=X&scisig=AAGBfm0hJq6rJJk9gLoi3Qjy0WLluRHTiQ&nossl=1&oi=scholaralrt I think the transpiler should be parametric in terms of the target dialect of QASM. This means, it should be agnostic of the kind of QASM as output, being QObj one of them, maybe (?).

@delapuente I think I am done with the changes I wanted to make for this PR. I will do the rest of transpiler features in the next PR.
Two pylint errors exist which I haven't been able to remove. Maybe you know how to do that.
1- redefined-builtin for the compile() method is triggered, even though I include a line:
# pylint: disable=redefined-builtin in _transpiler.py.
2- it complains about super delegation in the CXCancellation class. i tried doing things to remove that but some pylint errors persist. I may have to just bring back the requires and preserves features of BasePass class back. I am going to need to use them soon anyway.

Perfect, @ajavadia . I'm going to try to solve those problems myself, rebase on master and we could proceed merging this PR. Thank you for the effort.

@delapuente thanks for the review and the follow up issue. I have modified the comment that you pointed out.


ShareButton fix

mobile useEffect and cleanup state, small fix to TypeOfHelpInput missing key

Rebranched to fix issue with /


Re-connect doesn't work when using SockJS

Disconnect and Re-connect using SockJS doesn't work. It seems to re-open a SockJS connection it is required to create a new SockJS object. As this object is created once in the constructor it will fail.
If the SockJS object is already closed a new instance should be created.
	angular.module('app', [ 'AngularStompDK' ])
	.config(function(ngstompProvider) {
		ngstompProvider.url('/ws').class(SockJS).debug(true);
	})
	.controller(
			'MainCtrl',
			function($scope, ngstomp) {
					ngstomp.subscribe("/topic/1", function(){}, $scope);
					ngstomp.disconnect();
					ngstomp.connect();
			}
	);

Log:

Opening Web Socket...
angular.js:12416 Web Socket Opened...
angular.js:12416 >>> CONNECT
login:undefined
passcode:undefined
host:undefined
accept-version:1.1,1.0
heart-beat:10000,10000
<<< CONNECTED
version:1.1
heart-beat:0,0
connected to server undefined
angular.js:12416 >>> SUBSCRIBE
id:sub-0
destination:/topic/display/8483

DISCONNECT

Opening Web Socket...

Because of the abstraction of stomp, I don't think checking the state of SockJs is à good idea... It could be better to reset the stompClient on disconnect() or at the beggining of connect().
What do you think of this solution ?
II will try to do the modification this weekend, but if you want to do a PR, you're welcome

Fix in https://github.com/davinkevin/AngularStompDK/commit/f4b29473778055459ad715fcdf6c8351fc2d5b1c
Tell me if it's ok for you (if I forget something maybe...)

Thanks, the fix works fine!!
As an improvement:
The subscribe() function should do an implicit connect() if the connection was closed or throw an error 'connection closed' to indicate the subscription failed.


New source: https://dev.to/

I believe it to be a very useful 'social network' for programmers with useful articles.

Devto is already there.
You can add it from the settings page.


Replies disappear when blocking is off

I really like this extension and it performs the translation job flawlessly. The one issue I'm having is many times I will expand a comment to view the replies and they aren't there. They appear for a split second and then disappear even though it shows that there are indeed a number of replies. I'm not using the block function and I have attached a screenshot of my settings. My specifications are below. I'll be happy to check whatever you may need me too, I just want this to work. Thanks.

Windows 11 Pro 22H2
Chrome Version 113.0.5672.93 (Official Build) (64-bit)
No Adblocker in use on YouTube

enable filter by default is on , also enable language filter


Bolzano's Theorem Mathlab

Just a basic algoritm to resolve limits in a specific function

What a great code :smile: !
Thank you for contributing! :rocket:


Remove ResourceQuota parameter

I got the warning info: the parameter resourcequota is obsolete after I executed the powershell of Example2

Docs Build status updates of commit 34dec07:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Set-SPOSite.md
:white_check_mark:Succeeded
View (sharepoint-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@Byronliu123 Please implement the suggested changes. Thanks

@Byronliu123 Gentle reminder.

@Byronliu123 Please implement the suggested feedback so that merge can be initiated. Thanks

@tiburd Please help.

Docs Build status updates of commit 124766a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Set-SPOSite.md
:white_check_mark:Succeeded
View (sharepoint-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 84ba220:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Set-SPOSite.md
:white_check_mark:Succeeded
View (sharepoint-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Dataset path

Hello, Do you know how to compute the rank1 and mAP? could you give me the code which compute the rank1 and mAP, My mail is<EMAIL_ADDRESS>Thank you very much! @SeunghoChae


fix: update nextChargeDate while updating recurring contribution interval

Resolve https://github.com/opencollective/opencollective/issues/5297

[x] When updating from monthly to yearly: next charge date should be set to 1st January of next year
[x] When updating from yearly to monthly

If the last charge was before the 15th of the month: the next charge date should be set to the 1st of next month
If the last charge was after the 15th of the month: the next charge date should be set to the 1st of the month after next month

Not sure why these UpdateMutation tests are failing. Seems unrelated.

/cc @Betree I have fixed the CI, all green now.


Remove old classes

Codecov Report

Merging #178 into master will decrease coverage by 4.95%.
The diff coverage is 80.00%.

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


[improve](regression case) Add more inverted index regression case

Proposed changes
Issue Number: close #xxx
Problem summary

add more inverted index regression case for unique mow
add inverted index case with different data types

Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Improve TypeScript types by removing [k: string]: any from LexicalNode

This refactoring improves the ability for TypeScript to catch errors, particularly typos, because otherwise any unknown method would pass the type checker. I did find one bug in LinkNode (#5221) and some tests that were using textNode.length instead of textNode.__text.length.
The most awkward part was adding an explicit type to the constructors for the classes to implement Klass more precisely. I think that subclasses shouldn't typically need to do this since the superclass' type will generally be sufficient.
Another perhaps controversial addition was adding branded types for isNestedListNode and $isRootOrShadowRoot so that a more precise type could be refined with a predicate in a way that doesn't make TypeScript try and infer the wrong thing (e.g. if f(x): x is Node returns false then it will also infer !(x is Node) but that is not desired when we are looking for something more precise than the type alone.

I think the failing collab tests are just flaky, based on trying them locally. The failing mac tests were a network error.
npm run test-e2e-collab-prod-chromium List.spec.mjs:1422

><EMAIL_ADDRESS>test-e2e-collab-prod-chromium
> cross-env E2E_BROWSER=chromium E2E_PORT=4000 E2E_EDITOR_MODE=rich-text-with-collab playwright test --project="chromium" List.spec.mjs:1422

Running 1 test using 1 worker

  ✘  1 …/__tests__/e2e/List.spec.mjs:1422:3 › Nested List › remove list breaks when selection in empty nested list item 2 (4s)
  ✓  2 …e2e/List.spec.mjs:1422:3 › Nested List › remove list breaks when selection in empty nested list item 2 (retry #1) (2s)

Looks like another flaky collab test, I can reproduce the flakiness locally. Seems to fail more often than not with FIrefox but I haven't reproduced a failure with chromium.
❯ E2E_PORT=4000 npm run test-e2e-collab-firefox Toolbar.spec.mjs:37

><EMAIL_ADDRESS>test-e2e-collab-firefox
> cross-env E2E_BROWSER=firefox E2E_EDITOR_MODE=rich-text-with-collab playwright test --project="firefox" Toolbar.spec.mjs:37

Running 1 test using 1 worker

  ✘  1 …refox] › packages/lexical-playground/__tests__/e2e/Toolbar.spec.mjs:37:3 › Toolbar › Insert image caption + table (5s)
  ✓  2 …ckages/lexical-playground/__tests__/e2e/Toolbar.spec.mjs:37:3 › Toolbar › Insert image caption + table (retry #1) (3s)

  1) [firefox] › packages/lexical-playground/__tests__/e2e/Toolbar.spec.mjs:37:3 › Toolbar › Insert image caption + table

    Error: expect(received).toEqual(expected) // deep equality

    - Expected  - 0
    + Received  + 1

    @@ -13,10 +13,11 @@
              spellcheck="true"
              data-lexical-editor="true">

                Yellow flower in tilt shift lens

    +

       at packages/lexical-playground/__tests__/utils/index.mjs:159

      157 |     ignoreInlineStyles,
      158 |   });
    > 159 |   expect(actual).toEqual(expected);
          |                  ^
      160 | }
      161 |
      162 | export async function assertHTML(

        at assertHTMLOnPageOrFrame (file:///Users/bob/src/lexical/packages/lexical-playground/__tests__/utils/index.mjs:159:18)
        at retryAsync (file:///Users/bob/src/lexical/packages/lexical-playground/__tests__/utils/index.mjs:204:7)
        at withRetry (file:///Users/bob/src/lexical/packages/lexical-playground/__tests__/utils/index.mjs:169:37)
        at async Promise.all (index 0)
        at assertHTML (file:///Users/bob/src/lexical/packages/lexical-playground/__tests__/utils/index.mjs:170:5)
        at file:///Users/bob/src/lexical/packages/lexical-playground/__tests__/e2e/Toolbar.spec.mjs:47:5

  1 flaky
    [firefox] › packages/lexical-playground/__tests__/e2e/Toolbar.spec.mjs:37:3 › Toolbar › Insert image caption + table

Thanks for this - would be great to get it merged.

Happy to do whatever I can to speed that along, short of rewriting the collaboration support to be consistent in tests 😅

Happy to do whatever I can to speed that along, short of rewriting the collaboration support to be consistent in tests 😅

yea don't worry about those tests. I skimmed this and I don't see an issue, but since it's a larger change let me just make sure the rest of the core team has a chance to object. I'll ping internally after the holidays.

This is one of the things that was necessary in this PR: https://github.com/facebook/lexical/pull/3931
However, it seems better that this PR addresses it in isolation. Very cool!

Should be good to go now, if there's any feedback or unexpected test failures I'm happy to address them

Should be good to go now, if there's any feedback or unexpected test failures I'm happy to address them

Thanks!
This one is actually a little suspicious, because it's failing consistently across collab suites:
[1]   1 failed
[1]     [chromium] › packages/lexical-playground/tests/e2e/CopyAndPaste/html/ImageHTMLCopyAndPaste.spec.mjs:64:3 › HTML Image CopyAndPaste › Copy + paste + undo multiple image
Typically with flakiness on collab we'll see most suites pass, or a couple fail with different tests. Usually the same test failing across multiple suites (and runs, since I re-ran) is indicative of a problem somewhere.
Not sure if you have any ideas of what it could be off the top of your head.

I don't think that is a regression in this PR, I can reproduce a consistent failure of that test locally from main and several older tags. I couldn't find any tag where this test passed. I did not do an exhaustive search, just a few in the v0.12.x and v0.11.x series by hand.

Scratch that, I was running the tests wrong (forgot to start the collab server) and can repro a success now. Will look closer!

@acywatson so it turns out that this test is timing dependent, doesn't have its own sleep in the right place, but it worked because it was dependent on a distant bug which caused an unintentional unconditional sleep. I had fixed that bug because the type was wrong (parentheses in the wrong place for an await expression). I restored the unconditional sleep and now it works again. See https://github.com/facebook/lexical/pull/5223/commits/2c5b2108dfd1dca6aa78e1d36f2dede2d5e5b6f4

@acywatson so it turns out that this test is timing dependent, doesn't have its own sleep in the right place, but it worked because it was dependent on a distant bug which caused an unintentional unconditional sleep. I had fixed that bug because the type was wrong (parentheses in the wrong place for an await expression). I restored the unconditional sleep and now it works again. See 2c5b210

Beautiful! Thank you.

This change causes the append method to not be recognized as a type.
editor.registerCommand(
ADD_TEXT_WITH_CHUNKS,
(payload) => {
const root = $getRoot();
root.getFirstChild()?.append($createTextNode(payload));
return false;
},
priority,
),
);
Does this mean we are doing this the wrong way?

This change causes the append method to not be recognized as a type.

editor.registerCommand(

    ADD_TEXT_WITH_CHUNKS,

    (payload) => {

     const root = $getRoot();

     root.getFirstChild()?.append($createTextNode(payload));

     return false;

    },

    priority,

   ),

);

Does this mean we are doing this the wrong way?

Yeah, there's no type level guarantee that getFirstChild is an ElementNode

@alicercedigital There are a couple ways to do this that TypeScript would not complain about. The reason it worked before is because node.anyTypoYouCouldImagine would be typed as any, so it would not stop you from calling any method at all, even ones that did not exist, so long as it didn't have an existing type that conflicted with what you were doing. According to the type checker, here you are trying to call append() on a LexicalNode, which should be an error because it is only implemented by ElementNode.

For whatever reason, there's an unsound generic cast available on getFirstChild (which predates this PR), so you can write:

root.getFirstChild<ElementNode>()?.append($createTextNode(payload));

This is unsound in general, and exactly what you were doing before at runtime, but RootNode's children should only be ElementNode so it's not an issue in practice unless there are other bugs.

If you wanted to use the same logical code, but with a runtime type check, you would need to make this two lines:

const parent = root.getFirstChild();
if ($isElementNode(parent)) {
  parent.append($createTextNode(payload));
}

You could also use LexicalNode's getTopLevelElement, which is basically the same as 2 but does a little more work since it looks up the root again before the type check:

root.getFirstChild()?.getTopLevelElement()?.append($createTextNode(payload));

@alicercedigital There are a couple ways to do this that TypeScript would not complain about. The reason it worked before is because node.anyTypoYouCouldImagine would be typed as any, so it would not stop you from calling any method at all, even ones that did not exist, so long as it didn't have an existing type that conflicted with what you were doing. According to the type checker, here you are trying to call append() on a LexicalNode, which should be an error because it is only implemented by ElementNode.

For whatever reason, there's an unsound generic cast available on getFirstChild (which predates this PR), so you can write:

root.getFirstChild<ElementNode>()?.append($createTextNode(payload));

This is unsound in general, and exactly what you were doing before at runtime, but RootNode's children should only be ElementNode so it's not an issue in practice unless there are other bugs.

If you wanted to use the same logical code, but with a runtime type check, you would need to make this two lines:

const parent = root.getFirstChild();
if ($isElementNode(parent)) {
  parent.append($createTextNode(payload));
}

You could also use LexicalNode's getTopLevelElement, which is basically the same as 2 but does a little more work since it looks up the root again before the type check:

root.getFirstChild()?.getTopLevelElement()?.append($createTextNode(payload));

Thank you for the careful and explanatory response!


Support for SF Symbols v3

SF Symbols v3 are now officially a thing and the corresponding app to browse them can be downloaded at https://developer.apple.com/sf-symbols/.
I quickly browsed the app and saw the following new features:

There are new types in addition to Monochrome and Multicolor: Hierarchical & Palette. Fortunately, there is a file embedded in the app that tells us everything about the types for each symbol: layerset_availability.plist. I suggest we add this information to each's symbol documentation (similar to the localized versions).
There's a new file symbol_categories.plist, but I suggest we just ignore it because there's no real value in adding the symbol category to each's symbol documentation IMO.
According to Apple, there are > 600 new symbols. As all files that were used to generate the SFSafeSymbols code are still present in the app, it's probably not much work to create an update for these new versions.

Are there any updates? It would be great if there was a dev branch available. And I believe the iOS 15 is coming soon. 😄

Seeing no activity doesn't inspire me with confidence that still package is still maintained.
I ended up creating my own version: https://github.com/ptrkstr/Symbols

Hi everybody! I'm very much sorry for the huge delay! Especially to @ptrkstr for the huge amount of work of creating a new, up-to-date repository. 😒 I'm now committed to releasing an update within the next 10 days, starting by getting https://github.com/piknotech/SFSafeSymbols/pull/72 merged ASAP.
@ptrkstr If you want, I'd like to invite you to collaborate on this repository. Spreading the responsibility over multiple people would ensure quick updates even if I sometimes just don't find the time to work on this repository.

Hi @fredpi, thanks for replying, I can understand life can be busy sometimes.
I whole-heartedly appreciate the invitation to collaborate on this great project. I will have to pass on this offer for now however. 🙏

Still waiting for updates. 😂

Hi everybody! I'm very much sorry for the huge delay! Especially to @ptrkstr for the huge amount of work of creating a new, up-to-date repository. 😒 I'm now committed to releasing an update within the next 10 days, starting by getting #72 merged ASAP.
@ptrkstr If you want, I'd like to invite you to collaborate on this repository. Spreading the responsibility over multiple people would ensure quick updates even if I sometimes just don't find the time to work on this repository.

@fredpi I love this project and am greatly incentivized to keep it updated with the latest SF Symbols releases. Please let me know if I can contribute in any fashion.

@rygood Thank you!!
As specified in the contributing guide, every help is appreciated (that includes participation in issue discussions, as you already did in https://github.com/SFSafeSymbols/SFSafeSymbols/issues/87).
If you want to become a core contributor ( i. e. have extended privileges (write access, CI access & CocoaPods ownership)), a successfully merged non-trivial PR is required. This is also described in the contributing guide.

I see that the v3.2 branch contains support for SFSymbols 3.0/3.1/3.2. Are there plans to merge this into stable? Or should we be using v3.2 directly?

@sepw yes, I will try to merge it in the coming days. The v3.2 branch will be deleted once it's merged, but you can continue using it for now.

The 3.3 release is now finally out! 🚀
And sorry for the huge delay...

The 3.3 release is now finally out!

@fredpi That's great to hear, thank you.


[Accessibility]A11y_ Azure Data Studio_ NewJobs_Keyboard:Keyboard focus is going to the non- interactive content after the "Notification tab".

Bug Description:
Check out Keros! - Identify accessibility bugs before check-in and make bug fixing faster and easier.
Environment Details:
Application name: Azure Data Studio
Version: 1.8.0-insider (user setup)
Commit: 2ca39b5
Electron: 3.1.8
Node.js: 10.2.0
V8: 6.6.346.32
OS: Windows_NT x64 10.0.17763
Additional details:
Tool name: Keyboard
MAS Number: MAS2.1.1
Steps to Reproduce:
1.Launch the Azure Data Studio application.
2.Enable the SQL server agent extension.
3.Naviagte to the connected server->Select the database->Navigate to the SQL agent tab.
4.Navigate to the Jobs tab->hit on the "New job" button using the tab key.
5.Use the next tab to navigate to the "New job" page.
6.Observe if the keyboard focus land to the "New job".
Actual:
Keyboard focus is going to the non- interactive content after the "Notification tab". keyboard focus goes to the blank content
Similar issue
Similar issue is observed in the following List of pages:
1.Title :- Create operator
Navigation steps for the Create operator page.
1.Launch the Azure Data Studio application.
2.Enable the SQL server agent extension.
3.Naviagte to the connected server->Select the database->Navigate to the SQL agent tab.
4.Navigate to the Operators tab->hit on the "New operator" button using the tab key.
5.Use the next tab to navigate to the "Create operator" page.
6.Observe if the keyboard focus land to the "New operator"
Similar issue has been Observed in the CreateAlert.
Navigation path
1.Go to the  SQL server agent tab->On alerts tab->Click on new alert button.
Expected:
After the notifications tab, the keyboard focus should land to the "Name" textbox.
Recommendations:
Refer below link which is repository of bug fixes code snippets:
https://microsoft.sharepoint.com/teams/msenable/mas/pages/browse-fixes.aspx
User Impact:
keyboard only user will face difficulty while navigating within the page.
MAS Reference:
https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={8492c4eb-c179-40ae-8777-cd044ed725a2}
Attachment for Reference:
5575_[Accessibility]A11y_ Azure Data Studio_ NewJobs_Keyboard.pptx
Does this issue occur when all extensions are disabled?: Yes

Verified the bug in App version:
Version: 1.9.0-insider (user setup)
Commit: a79f1ac830e3cb99130a21797a48d8db76fda4a0
Date: 2019-06-13T07:43:03.456Z
VS Code 1.34.0
V8: 6.6.346.32
OS: Windows_NT x64 10.0.17763
Bug is fixed and does not repro.


aws-controllers-k8s/prometheusservice-controller aarch64/arm64 support

Is your feature request related to a problem?
Cannot run the prometheusservice-controller on arm64/aarch64 gravitron instances.
Describe the solution you'd like
Currently receiving the error exec ./bin/controller: exec format error  which indicates CPU architecture mismatches and is resulting in the controller pod not starting with CrashLoopBackOff errors. Would like to be able to run on Gravitron so we don't get those anymore.
Describe alternatives you've considered
None at this time.

Encountering the same issue. We are running on t4g.large node instances.

/remove-lifecycle stale

/remove-lifecycle stale

@aiell0 @hgoyal1 @romosa ARM based controller images are now supported for all existing controllers.
/close


Settings for Arduino RP2040 Connect

what is the correct setting for MP34DT05 at Arduino RP2040 Connect?
Pin Data:22,Clk:23 not running.
Microphone 20000Hz?
Thanks.

Now is Running with
Pin Data 22
Pin Clk 23
SampleRate 16000Hz
Sample_Buffer 512
src/pdm_microphone.c
PDM_DECIMATION  128

Hi @RickorDD, I'm closing this as resolved.

Can I add that the main problem is that the code is assuming that the left/right select pin is tied low so that samples are clocked in on rising edge, however the RP2040 Connect has the select pin tied high so that samples are clocked in on falling edge. Modifying the pdm_microphone.pio file to clock in samples on falling instead of rising edge also fixes this.


Add mypy checks

Part of #162.
Added mypy test to flexCI configuration and made small fixes to pass the test. I'm planning to send another PR for further type annotations after this PR.

Discussions:

Introduce pysen and follow mypy option generated.
Do not add type annotation to tests, because it is difficult to annotate parameterize tests and tests using mock, so we won't annotate tests. Increase the coverage of example and add types there to detect typing errors.

Introduced pysen (136414a).
Found 1058 errors in 57 files (checked 74 source files)

/test

/test

@kmaehashi PTAL!

Could you remove package_data from setup.py as well?

@kmaehashi Fixed!


ICheckBoxCellEditor should support special looks depending on defined style names

The ICheckBoxCellEditor got special style names, to be able to display additionally a radio button, a switch, a toggle button or a normal button.
/** Display type constant for checkbox. /
public static final String STYLE_CHECKBOX      = "ui-checkbox";
/* Display type constant for radio button. /
public static final String STYLE_RADIOBUTTON   = "ui-radiobutton";
/* Display type constant for switch. /
public static final String STYLE_SWITCH        = "ui-switch";
/* Display type constant for togglebutton. /
public static final String STYLE_TOGGLEBUTTON  = "ui-togglebutton";
/* Display type constant for button. */
public static final String STYLE_BUTTON        = "ui-button";

What's the current state?

Same state as reactUI

Why is this issue still open?

Because @mhandsteiner said that he just finished a new style today (hyperlink), this style is still to be implemented

OK, but new style means new issue. This issue doesn't contain information about hyperlinks and implementation is done?


add polish git cheatsheet from #6008

What does this PR do?
Add polish git cheatsheet from #6008
Add language notations in cheatsheets where clear from title/author
Checklist:

[ x] Read our contributing guidelines
[ x] Search for duplicates.
[x ] Include author(s) and platform where appropriate.
[x ] Put lists in alphabetical order, correct spacing.
[ x] Add needed indications (PDF, access notes, under construction)

Do other people get the error "message": "There was an error getting change files for repo:free-programming-books owner:EbookFoundation base:0000000000000000000000000000000000000000 head:31ee766b18ce03a512d7702e6259f0c9d9405ebb" in the link check?

Do other people get the error "message": "There was an error getting change files for repo:free-programming-books owner:EbookFoundation base:0000000000000000000000000000000000000000 head:31ee766b18ce03a512d7702e6259f0c9d9405ebb" in the link check?

Is a wellknown issue: trilom/file-changes-action#116 caused by the push event on check the changes for first commit of a new branch.
If changes are done in a fork, at least doesn't block the PR when summited. Or make a force push or amend (commit without changes) and solved.

Do other people get the error "message": "There was an error getting change files for repo:free-programming-books owner:EbookFoundation base:0000000000000000000000000000000000000000 head:31ee766b18ce03a512d7702e6259f0c9d9405ebb" in the link check?

Solved.
I have taken advantage of the fact that we are in the cheatsheets file to also go ahead with #6091 :wink:

thanks @davorpa


Support for go 1.20

It seems that lensm does not support go 1.20 binaries yet.
Also getting some errors when trying to compile my program with go 1.19:
unable to load source from "gofile../Users/rhi/code/table/page.go": open gofile../Users/rhi/code/table/page.go: no such file or directory

Can you try again with the latest branch. I updated the goobj file parsing code, but I'm not quite sure that's the problem.
Do you use some flags when building the binary?

Updated the code, this fixed the issue with go 1.20 binary, thanks.
The other issue with the path not found is gone, it was likely because I had no main(), only tests.

Yeah, I don't think it will work with just compiled packages. It does require an actual binary. You should be able to use go test -c . to create the binary that you can open.


Massive operations

Now that we have 0.8 version, we can merge in the batch operations in the tests and documentation.

Let's reinstate the mass operations in the main trunk


Trigger new compaction runs immediately on error

Failing in a compaction run should not cause VAST to wait for the configured interval until it starts a new run, as this may lead to the disk running full. This bumps the compaction plugin to include the changes done by @lava to fix this behavior.

I changed the base to the related improvement branch so I can deploy it on the internal testbed.

@dominiklohmann can I push here to fix the nix submodule rev?

@dominiklohmann can I push here to fix the nix submodule rev?

Yes, certainly.


this ain't batching. this is throttling

have a nice day

once could simply do promise.all without the need of this


MRTK Examples Hub 2.2 for HL2 fails to deploy

Describe the bug
Trying to sideload the 2.2 Examples Hub appx with a HL2 fails to install.
The Examples Hub for 2.1 works just fine.
To reproduce
Steps to reproduce the behavior:
Download this
MRTK.Examples.Hub_v2.2.0_HoloLens2_ARM.zip
https://github.com/microsoft/MixedRealityToolkit-Unity/releases/download/v2.2.0/MRTK.Examples.Hub_v2.2.0_HoloLens2_ARM.zip
And sideload on a HL2 device.
Fails to install.
Expected behavior
Should install.
Target platform (please complete the following information)

HoloLens 2

@reneschulte do you have any specific errors/logs that you see when this happens?

@cre8ivepark can you validate 2.3 Examples Hub appx  sideload works?


Support analytics for JMS api

Currently GW not publish analytics events if API is created with JMS backend. Since JMS backend is configured as Async there is no response from the JMS backend. Hence no response, analytics response handler not get executed.

If the JMS backend has configured as Async(OUT_ONLY) manner, the BE will not send any response. As per our implementation, to publish the analytics, it should invoke the APIMgtResponseHandler. But due to not having a response when the JMS backend Async, we need to manually add that APIMgtResponseHandler to the "insequence" of the API(Normally the "APIMgtResponseHandler" is contained in the out sequence).
In order to achieve that, you can edit the "velocity_template.xml" file(<AM_HOME>/repository/resources/api_templates) and add that required "APIMgtResponseHandler" when passing the OUT_ONLY property in the message context.
In here we need to set some properties as well before invoking that "APIMgtResponseHandler". They need to set as the below values.

BACKEND_LATENCY = 0
BACKEND_REQUEST_END_TIME = 0
HTTP_SC = 202

Steps:

Open the "velocity_template.xml" file and add the below filter to set those above-mentioned properties before selecting the production or sandbox endpoints.
Filter

<filter source="$ctx:OUT_ONLY" regex="true">
        <then>
                <log level="full" message="test" value="hi"/>
                <property name="BACKEND_LATENCY" value="0" scope="axis2"/>
                <property name="BACKEND_REQUEST_END_TIME" value="0" scope="axis2"/>
                <property name="HTTP_SC" value="202" scope="axis2" type="INTEGER"/>
                <class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/>

        </then>
        <else></else>
</filter>

Where you need no that filter to the "velocity_template.xml" file?(refer below part of the velocity_template.xml file)
##############  define the filter based on environment type production only, sandbox only , hybrid ############

#if(($environmentType == 'sandbox') || ($environmentType =='hybrid' && !$endpoint_config.get("production_endpoints") ))
#set( $filterRegex = "SANDBOX" )
#else
#set( $filterRegex = "PRODUCTION" )
#end
#if($apiStatus != 'PROTOTYPED')
<filter source="$ctx:OUT_ONLY" regex="true">
        <then>
                <log level="full" message="test" value="hi"/>
                <property name="BACKEND_LATENCY" value="0" scope="axis2"/>
                <property name="BACKEND_REQUEST_END_TIME" value="0" scope="axis2"/>
                <property name="HTTP_SC" value="202" scope="axis2" type="INTEGER"/>
                <class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/>

        </then>
        <else></else>
</filter>

<filter source="$ctx:AM_KEY_TYPE" regex="$filterRegex">
        <then>

After adding the filter as above, then Save the "velocity_template.xml" file to deploy the changes to the environment.
Then you can republish the API which has already deployed, otherwise, when creating a new API with JMS backend as Async manner, those required properties and handler will add.
Then invoke the APIs and see the analytics pages, then you could able to see the required analytics of particular API.
eg: ABC is my JMS BE api with Async manner

Adding this to the product by default can introduce a small performance hit due to the new logic added. Therefore, this will not be added to the product. If someone needs this, they can manually do the change.


feat(datahub-frontend): add checksum annotation for user-secrets

This annotation will cause the Deployment to automatically restart the pod if the users secret is updated. Without this annotation, the pod might be outdated, having an internal version of user.props that doesn't match the secret's.
Checklist

[X] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable)

All green. @david-leifker could you (or someone else who has permissions) perhaps merge this?


[vuetify] Automate releaseDate, support and eol retrieval

Based on https://vuetifyjs.com/en/introduction/long-term-support/.

Expected diff:
diff --git i/releases/vuetify.json w/releases/vuetify.json
index f7ff94b..6ea9f89 100644
--- i/releases/vuetify.json
+++ w/releases/vuetify.json
@@ -1,5 +1,22 @@
 {
-  "releases": {},
+  "releases": {
+    "3": {
+      "name": "3",
+      "releaseDate": "2022-11-01"
+    },
+    "2": {
+      "name": "2",
+      "releaseDate": "2019-07-23",
+      "support": "2023-07-05",
+      "eol": "2025-01-23"
+    },
+    "1": {
+      "name": "1",
+      "releaseDate": "2019-02-05",
+      "support": "2019-07-31",
+      "eol": "2020-07-31"
+    }
+  },
   "versions": {
     "3.5.8": {
       "name": "3.5.8",


Markdown format updates

Fix syntax error in markdown template
Only convert text to markdown if html format is being used
Add a few blank lines for markdown
Update the overview section so it uses markdown instead of html

Can one of the admins verify this patch?

Thanks for your contribution!
Just a few minor comments. Can you also link to gists containing examples of generated Markdown and HTML with this change?

Here is a repository which contains before and after files: https://github.com/guymers/bazel_skydoc_markdown_updates

Thanks! This change LGTM.
We are currently in the process of changing our tooling for importing changes to Skydoc to the internal repository. I'll merge this once that is done (should be in the next day or so).

No worries


Is support compontent tag ?

Is support compontent tag ?
or
can i use webpack setup
vue-apollo
https://apollo.vuejs.org/guide/components/query.html#tag-setup

nope, there is a todo though


gexpect: capture process stdout/stderr to ease debugging

This commit adds a new function Capture() to gexpect. When called before
calling Expect*(), it will save the process output so it can be
recovered later with CollectOutput().
Based on tehnerd's solution:
https://github.com/ThomasRooney/gexpect/pull/4

Thanks

Note: noticed this PR didn't actually include the requisite fields or Collect() function. I've gone and added those.

Yep, I didn't think you'd merge it that quickly and sent the PR before testing it :sweat_smile: Thanks!


Restored previous single shot upload threshold

Resolves https://github.com/Azure/azure-sdk-for-net/issues/16013

LGTM.
Could you add tests for that to make sure we don't regress it in the future?
We need something like PartitionedUploaderTests.AsyncUploadsAsSingleBlockIfUnderLimit and PartitionedUploaderTests.CanHandleLongBlockBufferedUpload. I.e. make sure that 255 goes as single shot and 257 is split into blocks.

LGTM.
Could you add tests for that to make sure we don't regress it in the future?
We need something like PartitionedUploaderTests.AsyncUploadsAsSingleBlockIfUnderLimit and PartitionedUploaderTests.CanHandleLongBlockBufferedUpload. I.e. make sure that 255 goes as single shot and 257 is split into blocks.

Where would this test live?  256 MB is probably too big for a live test, and we definitely don't want to record this.

LGTM.
Could you add tests for that to make sure we don't regress it in the future?
We need something like PartitionedUploaderTests.AsyncUploadsAsSingleBlockIfUnderLimit and PartitionedUploaderTests.CanHandleLongBlockBufferedUpload. I.e. make sure that 255 goes as single shot and 257 is split into blocks.

Where would this test live? 256 MB is probably too big for a live test, and we definitely don't want to record this.

We have this https://github.com/Azure/azure-sdk-for-net/blob/9c680d8f61b6317e97beeaf5b97477e34e564b9b/sdk/storage/Azure.Storage.Blobs/tests/BlockBlobClientTests.cs#L2074-L2099 that uploads 256 MB and seems to be stable. I'd give it a try and make it live test.


Aggressive Memory Leak

I've been able to narrow down an aggressive memory leak I'm experiencing to this:
Run with:  node --harmony --expose-gc filename.js
var co = require('co');

function* sleep() {
    return new Promise(function(resolve) {
        setTimeout(resolve, 1);
    });
};

co(function*() {

	for(var i = 0; true; ++i) {
		yield sleep();

		if (i % 10000 === 0) {
			global.gc();
			console.log(process.memoryUsage());
		}

	}

}).then(function() {
	console.log('finished')
}, function(err) {
	console.log('caught error: ', err.stack);
});

Sample output:
{ rss: 17420288, heapTotal: 9620736, heapUsed: 3590768 }
{ rss: 44822528, heapTotal: 49288192, heapUsed: 12972200 }
{ rss: 70955008, heapTotal: 58575616, heapUsed: 21688912 }
{ rss: 80048128, heapTotal: 66831104, heapUsed: 30531560 }
{ rss: 89157632, heapTotal: 76118528, heapUsed: 39490184 }
{ rss: 98275328, heapTotal: 85405952, heapUsed: 48445040 }
{ rss: 107368448, heapTotal: 93661440, heapUsed: 57410024 }
{ rss: 116477952, heapTotal: 102948864, heapUsed: 66365712 }
{ rss: 125591552, heapTotal: 112236288, heapUsed: 75330040 }
{ rss: 134684672, heapTotal: 120491776, heapUsed: 84285144 }
{ rss: 143798272, heapTotal: 129779200, heapUsed: 93250072 }
{ rss: 152907776, heapTotal: 139066624, heapUsed: 102205152 }
{ rss: 162000896, heapTotal: 147322112, heapUsed: 111170352 }
{ rss: 171114496, heapTotal: 156609536, heapUsed: 120125032 }

@jonathanong
V8 bug?
But I tested Chrome 39, it seems already be fixed.

@hax you should read this: https://github.com/promises-aplus/promises-spec/issues/179
As they discussed, it's a bug in spec, bluebird and then/promise already fixed this in their implementations, but these patches don't follow the spec.

if someone wants to test the old version in iojs/master... :D

I use<EMAIL_ADDRESS>still got memory leak if we remove global.gc();.
Test scripts https://gist.github.com/fengmk2/8fdbd896fee458efe0b4

@fengmk2 V8 only gc if short of memory.

@fengmk2 a memory leak is when calling the garbage collector does not work as expected. Garbage collecting is an heavy process that may slow the program down, so V8 (as other languages using gc) calls it automatically when short of memory, or if idle (i.e. waiting for IO or something), or when the engine notices an increase in orphan objects (i.e. ready to be gc'd). In the sample you provided, you see that memory is, indeed, garbage collected at some point. You have to compare memory usage at startup, and monitor peaks; these peaks should not increase excessively during a burn-in test.

I use<EMAIL_ADDRESS>still got memory leak if we remove global.gc();.

If calling global.gc() frees memory then it's not a memory leak.

My problem, sorry for disturb all.

@fengmk2 I tried run your demo (https://gist.github.com/fengmk2/8fdbd896fee458efe0b4) in a memory limited container (iojs/latest), gc triggered when limit reached.

anybody can take a look at https://github.com/cnpm/mirrors/pull/41?

@undoZen the memory limit value is 100mb, 200mb or 1gb?

@fengmk2 I tried 20m 22m 25m all take over 2~4m over specified limit but not gone further.

@dead-horse After reading the issue (https://github.com/promises-aplus/promises-spec/issues/179 ) and writing a promise implementation my self, I believe that this is NOT the spec bug, just missing an optional optimization for edge case. And I believe it's possible to optimize the promise implementation to avoid this issue while not break the right behavior about the order. I will publish my new promise implementaion to prove it soon.

@hax hope you will keep your promise ... to release your promise implementation soon.

@hax it was already proven however I don't see it as an optional optimization (memory leak is a bug) or an edge case (the pattern is the clearest one to perform for loop equivalent).

@petkaantonov It seems still have some issues. The main problem is, V8 native impl (Chrome and Safari 8) and Firefox native impl show very diff behaviors. Currently Firefox may be more close to the ES6 spec as my understanding. I will post a testcase soon.

I recently found that this issue is more complex than I thought, to preserve the order behavior of current ES6 draft strictly (which most implementations fail, only Firefox implementation and my-promise is ok), it's impossible to eliminate "leak" completely, though it can be reduced to leaking only one small object (as a pointer to denote the position) for each nest promise.
So, it may be a ES6 spec "bug" if you don't treat this as edge case. But it may be not a Promise/A+ spec bug since Promise/A+ spec seems not define the order. I opened an issue https://github.com/promises-aplus/promises-spec/issues/183 for more discuss.


changes made in scrolling part of laps

Enhancements Breakdown:
Auto-Scroll: Ensures that when new laps are added, the view scrolls automatically to the most recent lap.
Animations with Framer Motion: Each new lap fades and slides into view smoothly, enhancing the user experience.
so that it will automatically scroll down and changes made in hovering on button specially on dark or light mode.
#76
@param-code

Excellent!!


Fix compiler warnings

Fix deprecation warnings due to the use of sprintf rather than snprintf.

Accidentally pushed this fix directly into main rather than this branch. Alas.


Massive refactor of Fedora/CentOS RPM spec

The RPM spec for Fedora/CentOS has been massively refactored.
Within the limits of supporting both Fedora and CentOS 7, the structure has been redone so that 32-bit and 64-bit builds can be done from the same spec, and that it complies with Fedora's guidelines on how a package should be structured.
The package is also now at parity with the ports and the Debian packaging in terms of building and installing Lumina Desktop.
The version number has been bumped to 0.8.8 to reflect that it will be part of the next release.
The DEPENDENCIES file has also been adjusted to reflect reality.

A variant of this spec for 0.8.7 has been built using Fedora Copr. You can see the results here.
It builds successfully on CentOS 7, Fedora 22, and Fedora 23.

Looks good to me.
Thanks for re-working that build spec for Linux systems!


Request new types/traits

Hi actions on google team,
Now we are developing smart devices such as Television, Sensor, Settop box, ... but currently. The lib has not supported these types yet.
Can we request actions on google support these types? Or can you provider us to early access the EAPs on these traits and types ?
Thanks,

Thanks for reporting this! Please submit your request using the official device type request form so we can track it properly.


make html on mac throws error

still working on debug, but to keep track of bugs here is one, as @JohnGriffiths suspected, may not work on mac natively:
(venv) Kyles-MacBook-Pro:doc kylemathewson$ make html
/bin/sh: sphinx-build: command not found
make: *** [html] Error 127

Thanks for the info.
Open to suggestions re: doc build support on mac. Haven't looked into it.
Currently things work for linux, and indirectly for windows visa WSL (which is how I've been doing it so far).
From the error there it sounds like it's read the Makefile correctly but is stumbling on sphinx .
Do you definitely have the sphinx etc python libraries installed in that env?

ok I figured it out, I hadn't install any packages because of https://github.com/NeuroTechX/eeg-notebooks/issues/3, so I removed that dependency from the .txt and installed, now this runs,


Fix ReferenceError from incomplete refactor

Commit b5fe47e renamed current to currentRoute but left behind one usage of current.

thx @cletusw


Overview Participations for a specific course

As instructors, we want to have the possibility to see/analyze the data for students for a specific course. For example, I want to easily check the overall participations of student A for the course B which had in total 16 exercises so far.
I want to know, in how many exercises the students participated (14 out of 16).

Something like this?

More information in the table required?

Looks good!
I would enrich the page with further information on top of the page if this is possible:

name of the course
number of total exercises for one course


Develop admin auth (Old 229)

In gitlab by @A-Lawrence on Aug 31, 2015, 01:08
Admin auth currently just goes through VATSIM SSO.
Need to change this to use UK sso and then extend the auth.user => auth.adm

In gitlab by @A-Lawrence on Aug 31, 2015, 01:14
Moved our authentication for users over to multi-auth.  Resolves issue #488494 (256).
Fixed the issue with borked logins causing an error.  Resolves issue #268.
Can close all auth issues now.  Resolves issue #488514 (229).
ÔåÆ <<cset 1dbf6d556da3>>
ALawrence66 - 2015-02-22T16:32:16.868934+00:00

In gitlab by @A-Lawrence on Aug 31, 2015, 01:14
auth.user not extended.  Instead multiauth was used.
ALawrence66 - 2015-02-21T23:25:32.388696+00:00


ACR download manifest changes

Fixes #33246

Regenerates ACR
Removes ManifestDownloadOptions per ACR crew decision
Implements manifest content validation and adds sync/async tests

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-containers-containerregistry


Add possibility to edit files on a message

Summary
Adds multiple arguments to the Message.edit() function, now allowing to edit files when editing a message.
Checklist

[x] If code changes were made then they have been tested.

[x] I have updated the documentation to reflect the changes.

[ ] This PR fixes an issue.
[x] This PR adds something new (e.g. new method or parameters).
[ ] This PR is a breaking change (e.g. methods or parameters removed/renamed)
[ ] This PR is not a code change (e.g. documentation, README, ...)

Versionadded should be added

What version should it be?


Add support to read zstd compressed spkg files

Add support to read zstd compressed spkg files
When we need to re-process cache files (like in https://github.com/streamingfast/substreams/releases/tag/v1.9.0), the spkg file is stored zstd compressed by module in the substreams cache location.
Substreams cannot currently read zstd compressed files.
This enhancement request is to have substreams natively read zstd compressed files.  According to @sduchesneau it already checks if the extension is a '.yaml' or '.spkg'... checking for zstd and inlining a decoder should be straightforward.
Goal is to allow for this to work:
$ substreams info  s3://[insert_details]/substreams.partial.spkg.zst --skip-package-validation

I believe this was implemented last week.

Do you have a link? Can't find it.. but should be straighforward.. and would be a great contribution :)


Uber (https://m.uber.com) opens infinite WebApps instances upon login

I've been testing different sites in WebApps and found that logging into https://m.uber.com causes the app to get stuck in some kind of loop, leading it to open an infinite number of instances of the same window in WebApps, effectively soft-locking my device.
I've tried toggling different settings in WebApps ("Block 3rd party requests", "User Agent" etc.) but the behaviour remains the same regardless.
You can recreate this by browsing to https://m.uber.com in WebApps and logging in. Once you've entered your password, you'll encounter the issue immediately.
Any idea what the problem is here? Is a fix possible? Thank you.

I suspect the problem may lie with Uber requiring 3rd party cookies for session mangement. Enabling 3rd party cookies would open up tracking to 3rd party sites and advertisers, so it's been disabled in the app with no option to enable it. Hopefully Uber changes how their session management works...


[http-request] : Can't set payload handling when method is passed in via msg.method

Current Behavior
When - set by msg.method - is used for the method, it hides the payload handling dropdown on the node config editor.
Now then, If the user does not first choose the payload handling option prior to  selecting - set by msg.method -
The users payload is ignored, i.e for GET requests, the payload is not passed in as a query string, as the default is to ignore it.
The user has to first set it back to GET, change the payload handling option, then set it back to - set by msg.method -.
The option is there initially, but this could trip up new users.
Expected Behavior
Iether allow payload handling options to be include in the message, or to not hide the option
Steps To Reproduce

Add a new http-request node
set it to - set by msg.method -
Note that the payload handling option has gone

Example flow
No response
Environment

Node-RED version: 3.0.0
Node.js version: 16.15.1
npm version: 8.11.0
Platform/OS: Debian
Browser: Safari

Discussed here:
https://discourse.nodered.org/t/http-request-node-returning-error

I have an example flow which I can share by forum DM if necessary.

@Paul-Reed could you share a minimal flow here please?
Ta.

No, because it contains my api key/secret, but I can DM it to you, for your personal attention.
The error cannot be demonstrated without a valid api request which needs api auth.

Issue confirmed.

ether allow payload handling options to be include in the message, or to not hide the option

@dceejay my preference would be to permit the payload handling option (for GET requests) to be set by the msg rather than always display the dropdown.
My reasoning is there may be only 1 HTTP Request Node on a flow, used for all GET/POST/ETC using msg.method and some of the routes may want payload in the QS, some may want payload in the body.
My current solution would be to replace the at lines 203~205
<EMAIL_ADDRESS>... with a "per msg" (on the fly) determination...
        this.on("input",function(msg,nodeSend,nodeDone) {
            // ...
            // ... snipped for brevity ---
            // ...
            // ...
            let paytoqs = false
            let paytobody = false
            if (msg.method && n.method && (n.method === "use")) {
                method = msg.method.toUpperCase(); // use the msg parameter
                // If the method is set to GET (by msg.method), we need to check what to do with the payload
                if (method === "GET") {
                    if (msg.payloadToQuerystring === true) {
                        paytoqs = true
                    } else if (msg.payloadToBody === true) {
                        paytobody = true
                    }
                }
            } else {
                  // use UI options (original code)
                if (n.paytoqs === true || n.paytoqs === "query") {
                    paytoqs = true
                } else if (n.paytoqs === "body") {
                    paytobody = true
                }
            }

Thoughts please Dave?

Makes complete sense to include it in the message
if I may add a slight alterantive to consider?
if (method === "GET") {
    switch (msg.payloadHandling.toLowerCase()) {
        case 'qs':
            paytoqs = true
            break
        case 'body':
            paytobody = true
            break
    }
} else {
  ...
}

Could make it easier to add more options in the future, using just one key to dictate handling.

@marcus-j-davies I like the single msg property idea - it does simplify things somewhat. But for compatibility reasons, I would suggest the value options are true, "query" and "body".  This aligns with the current option values.

true and "query" would mean add payload to querystring
"body" would mean add payload to body

The built in docs would not bother to mention the true value but for compatibility reasons, would be supported.
            let paytoqs = false
            let paytobody = false
            let payloadHandling = n.paytoqs
            if (msg.method && n.method && (n.method === "use")) {
                method = msg.method.toUpperCase(); // use the msg parameter
                // If the method is set to GET (by msg.method), use msg.payloadHandling
                payloadHandling = msg.payloadHandling
            }

            // Test payloadHandling to see if it has been set
            if (payloadHandling === true || payloadHandling === "query") {
                paytoqs = true
            } else if (payloadHandling === "body") {
                paytobody = true
            }

Sounds sensible to me... no objections here.


Created API keys have no aud in them and thus don't work.

Create a new API key then try and use in in an api call e.g.
http --verify=no http://localhost:8080/api/systemInfo/v1/ "Authorization:Bearer ${TOKEN}"

then you get
Caused by: org.jose4j.jwt.consumer.InvalidJwtException: JWT (claims->{"exp":1589011553,"sub":"admin","iss":"stroom","aud":null}) rejected due to invalid claims. Additional details: [[7] No Audience (aud) claim present.]

Looks like the create token requests from the UI are not specifying a clientId to create the token for.  It is debatable if the client should be specifying the client id as we currently only have one.

You can check what is in the token using https://jwt.io

fixed in beta.30


fix test after contprof is enabled by default

Signed-off-by: Zhenchi<EMAIL_ADDRESS>
What problem does this PR solve?

Issue Number: close #xxx
What is changed and how it works?

Could you also try whether fmt is correctly checked and exited?

/merge


Expose EditorInspector.get_selected_path

Currently needed in cases similar to GridMap's MeshLibrary, where removing an item in the inspector requires to know which property is selected.

Thanks!


log error instead if disabling IPv6 router advertisement failed

addresses https://github.com/docker/for-linux/issues/1033
Previously, failing to disable IPv6 router advertisement prevented the daemon to start.
An issue was reported by a user that started docker using systemd-nspawn "machine",
which produced an error;
failed to start daemon: Error initializing network controller:
Error creating default "bridge" network: libnetwork:
Unable to disable IPv6 router advertisement:
open /proc/sys/net/ipv6/conf/docker0/accept_ra: read-only file system

This patch changes the error to a log-message instead.

@justincormack @arkodg @samuelkarp PTAL

@thaJeztah now that we have incorporated the security patch, can we please utilize this library into  setupDefaultSysctl -  https://github.com/moby/libnetwork/blob/master/osl/kernel/knobs_linux.go similar to
https://github.com/moby/libnetwork/blob/13a4da01ec396d4bd59cc2108a7d183d7ac7fddd/osl/namespace_linux.go#L40
its best effort and logs errors

Ok, let me update the Info to a Warn
@arkodg I think I prefer to do the refactor in a follow-up directly after, as this was a regression, and want to keep the diff small for the 19.03 branch (I agree with looking at refactoring though)

@arkodg @samuelkarp @cpuguy83 updated to print a warning, I'll have a look at the refactor later