[SPARK-17612][SQL] Support DESCRIBE table PARTITION SQL syntax

What changes were proposed in this pull request?
This PR implements DESCRIBE table PARTITION SQL Syntax again. It was supported until Spark 1.6.2, but was dropped since 2.0.0.
Spark 1.6.2
scala> sql("CREATE TABLE partitioned_table (a STRING, b INT) PARTITIONED BY (c STRING, d STRING)")
res1: org.apache.spark.sql.DataFrame = [result: string]

scala> sql("ALTER TABLE partitioned_table ADD PARTITION (c='Us', d=1)")
res2: org.apache.spark.sql.DataFrame = [result: string]

scala> sql("DESC partitioned_table PARTITION (c='Us', d=1)").show(false)
+----------------------------------------------------------------+
|result                                                          |
+----------------------------------------------------------------+
|a                      string                                   |
|b                      int                                      |
|c                      string                                   |
|d                      string                                   |
|                                                                |
|# Partition Information                                         |
|# col_name             data_type               comment          |
|                                                                |
|c                      string                                   |
|d                      string                                   |
+----------------------------------------------------------------+

Spark 2.0

Before

scala> sql("CREATE TABLE partitioned_table (a STRING, b INT) PARTITIONED BY (c STRING, d STRING)")
res0: org.apache.spark.sql.DataFrame = []

scala> sql("ALTER TABLE partitioned_table ADD PARTITION (c='Us', d=1)")
res1: org.apache.spark.sql.DataFrame = []

scala> sql("DESC partitioned_table PARTITION (c='Us', d=1)").show(false)
org.apache.spark.sql.catalyst.parser.ParseException:
Unsupported SQL statement
== SQL ==
DESC partitioned_table PARTITION (c='Us', d=1)
  at org.apache.spark.sql.catalyst.parser.AbstractSqlParser$$anonfun$parsePlan$1.apply(ParseDriver.scala:58)
  at org.apache.spark.sql.catalyst.parser.AbstractSqlParser$$anonfun$parsePlan$1.apply(ParseDriver.scala:53)
  at org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parse(ParseDriver.scala:82)
  at org.apache.spark.sql.execution.SparkSqlParser.parse(SparkSqlParser.scala:45)
  at org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parsePlan(ParseDriver.scala:53)
  at org.apache.spark.sql.SparkSession.sql(SparkSession.scala:573)
  ... 48 elided

After

scala> sql("CREATE TABLE partitioned_table (a STRING, b INT) PARTITIONED BY (c STRING, d STRING)")
res0: org.apache.spark.sql.DataFrame = []

scala> sql("ALTER TABLE partitioned_table ADD PARTITION (c='Us', d=1)")
res1: org.apache.spark.sql.DataFrame = []

scala> sql("DESC partitioned_table PARTITION (c='Us', d=1)").show(false)
+-----------------------+---------+-------+
|col_name               |data_type|comment|
+-----------------------+---------+-------+
|a                      |string   |null   |
|b                      |int      |null   |
|c                      |string   |null   |
|d                      |string   |null   |
|# Partition Information|         |       |
|# col_name             |data_type|comment|
|c                      |string   |null   |
|d                      |string   |null   |
+-----------------------+---------+-------+

How was this patch tested?
Pass the Jenkins tests with a new testcase.

Test build #65680 has started for PR 15168 at commit 1396eb1.

Test build #65680 has finished for PR 15168 at commit 1396eb1.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class DescribeTableCommand(

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65680/
Test PASSed.

Hi, @rxin .
Could you review this PR to implement DESCRIBE table PARTITION?

Hi, @hvanhovell .
Could you review this PR when you have some time?

Thank you, @hvanhovell . Yes, currently, as you mentionedas EXTEDNED or FORMATTED is not included in this PR since I wasn't sure that Spark 2.0 want to fix this regression.
Like Spark 1.6, I'll add that, too.

Hi, @hvanhovell .
Currently, DESC FORMATTED TABLE and DESC EXTENDED TABLE shows a little bit different from Apache Spark 1.6. I think it's improved a little. I'm revising the DETAIL/EXTENDED partition info of this PR to be consistent with Spark 2.0, not consistent with Spark 1.6.

Test build #65841 has started for PR 15168 at commit f8fb269.

Test build #65842 has started for PR 15168 at commit c33af71.

Hi, @hvanhovell . I updated the followings.

Add 'EXTENDED' and 'FORMATTED' description for 'PARTITION'.
Move the tests into SQLQueryTestSuite. describe.sql. Please note that the suite sorts the result, so it looks differently. You can see the PR description more correctly.
Update PR description
Could you review this again when you have some time?

I also like this feature. The Hive-generated statistics for partitioned tables are stored in partition-level properties. See the PR: https://github.com/apache/spark/pull/15158
We definitely need it before https://issues.apache.org/jira/browse/SPARK-17129 is done; otherwise, users are unable to read the statistics of partitioned tables.

Thank you, @gatorsmile .

Test build #65842 has finished for PR 15168 at commit c33af71.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65842/
Test FAILed.

Test build #65841 has finished for PR 15168 at commit f8fb269.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65841/
Test FAILed.

Merged build finished. Test FAILed.

Oh, my bad.
The only failure is describe.sql. We can not use SQLQueryTestSuite since the last access time is always different.
describe.sql *** FAILED *** (272 milliseconds)
[info]   Expected "...reated: Fri Sep 23 1[2:30:40] PDT 2016
[info]   	Last Acce...", but got "...reated: Fri Sep 23 1[4:47:49] PDT 2016
[info]   	Last Acce..." Result dit not match for query #3

I'll move back the testcase into the original test suite.

Test build #65859 has started for PR 15168 at commit ba22975.

Test build #65859 has finished for PR 15168 at commit ba22975.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65859/
Test FAILed.

Merged build finished. Test FAILed.

The failure seems to be irrelevant. Retest this please.
[info] - Naive Bayes Multinomial *** FAILED *** (137 milliseconds)
[info]   Expected 0.7 and 0.6494565217391305 to be within 0.05 using absolute tolerance.
[info]   validateModelFit:

retest this please

Test build #65861 has started for PR 15168 at commit ba22975.

Test build #65861 has finished for PR 15168 at commit ba22975.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65861/
Test PASSed.

It sounds like the implementation of this PR does not support data source tables. Please try the following example.
      spark
        .range(1).select('id as 'a, 'id as 'b, 'id as 'c, 'id as 'd).write
        .bucketBy(2, "b").sortBy("c").partitionBy("d")
        .saveAsTable("t1")
      sql("DESC FORMATTED t1 partition (d=1)").show(100, false)

The error you will get is:
org.apache.hadoop.hive.ql.metadata.Table.ValidationFailureSemanticException: table is not partitioned but partition spec exists: {d=1};

Thank you, @gatorsmile . I'll fix that soon.

Hi, @gatorsmile .
It's the same behavior with Apache Spark 1.6.2. This PR doesn't make any regression for Datasource tables. Actually, the error you mentioned is raised by HiveMetastore since it's not Hive compatible table as you see the WARNING below.
scala> sc.version
scala> sqlContext.range(1).select('id as 'a, 'id as 'b, 'id as 'c, 'id as 'd).write.partitionBy("d").saveAsTable("t1")
16/09/24 08:24:51 WARN HiveContext$$anon$2: Persisting partitioned data source relation `t1` into Hive metastore in Spark SQL specific format, which is NOT compatible with Hive. Input path(s):
file:/user/hive/warehouse/t1
scala> sql("DESC FORMATTED t1 partition (d=1)").show(100, false)
16/09/24 08:25:06 ERROR DDLTask: java.lang.RuntimeException: cannot find field null from [0:col]
	at org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils.getStandardStructFieldRef(ObjectInspectorUtils.java:416)

Yeah, I knew. : ) This PR is to support DESCRIBE PARTITION, right? The other DESCRIBE commands can support all the table types. Thus, I believe we need to support all the cases for DESCRIBE PARTITION

Actually, I think there was a reason not to do that in Spark 1.6.2. In Spark 2.0, is there any new way to lookup the partition info from Parquet Datasource through SessionCatalog? SessionCatalog seems not to support that until now like the Spark 1.6.2.
Anyway, if we need to support that here. This PR needs to be IMPROVEMENT jira issue. So far, it was BUG issue to recover the regression. :)

Yeah, please change the JIRA to improvement.
I did not check the code of Spark 1.6.2, but, since Spark 2.0, we provide a native support for DESC TABLE. See the PR: https://github.com/apache/spark/pull/13025

Sure. I'll investigate from that. Thank you for the pointer, @gatorsmile .

Partitioned View is another potential issue for this PR.
FYI, just submitted a related PR https://github.com/apache/spark/pull/15168

Hi, @gatorsmile . I investigated the related PRs.

#12934  [SPARK-14127][SQL] Makes 'DESC [EXTENDED|FORMATTED] <table>' support data source tables
#12844  [SPARK-14127][SQL] Native "DESC [EXTENDED | FORMATTED] <table>" DDL command
#13025  [SPARK-14127][SQL] "DESC <table>": Extracts schema information from table properties for data source tables

Unfortunately, those are extracting the partition column names from table properties. But, table properties does not have partition column values. Currently, Spark does not hold the partitioned column values of Datasource table in CatalogTable.
In this case, I'd like to make another issue for that since that's really a new feature. Since it's not supported Spark 1.6, I think it's nice-to-have item, not a must-to-have item in this PR. How do you think about that?

Thank you for your investigation! How about generating a user-friendly error message in these unsupported cases? The error messages from Hive is very confusing to the external users.

Yep. That's would be great. Thank you for guidance always!

Test build #65877 has started for PR 15168 at commit 21e8295.

Test build #65877 has finished for PR 15168 at commit 21e8295.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65877/
Test PASSed.

Thank you for review @gatorsmile .
Hi, @hvanhovell .
Could you review this again?

This PR needs to cover more negative cases. Below is an example:
    spark.range(10).select('id as 'a, 'id as 'b).createTempView("view1")
    sql("DESC view1 PARTITION (c='Us', d=1)").show()

We should issue an exception, right?

Definitely! Thank you, @gatorsmile . I added the logic to cover that.

Test build #65889 has started for PR 15168 at commit c78ea7c.

Test build #65889 has finished for PR 15168 at commit c78ea7c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65889/
Test PASSed.

How about the persistent view? I think we do not support it too, right?

Do you mean PartitionedView as you mentioned at #15233 ?

We do not need to support partitioned views, I think. Your PR is unable to handle it without a code change in HiveClientImpl.
For non-partitioned persistent view, you should also issue an exception, right?
Generally, I think we just need to issue an exception if the table is a view, no matter whether it is a temporary or persistent.

If we are talking about hive views (for non-partitioned persistent view), there is no partition info because it looks like a normal table. So, my PR handles that equally with normal tables.

For example, like the followings.
scala> sql("desc view1 partition (c='Us')").show
org.apache.spark.sql.AnalysisException: Partition spec is invalid. The spec (c) must match the partition spec () defined in table '`default`.`view1`';

I think we do not need an extra metastore call if we already know we do not support partitions over views. You can check all the other DDL implementation. We did the same thing.

I see. I'll prevent that from those persistent views, too.

Test build #65899 has started for PR 15168 at commit d171bf6.

LGTM except two minor comments and pending tests. cc @hvanhovell

I addressed those two comments. Thank you for thoughtful review, @gatorsmile !

Test build #65901 has started for PR 15168 at commit 095573c.

Test build #65903 has started for PR 15168 at commit ea3c2c3.

Test build #65899 has finished for PR 15168 at commit d171bf6.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test build #65901 has finished for PR 15168 at commit 095573c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65901/
Test PASSed.

Merged build finished. Test PASSed.

Test build #65903 has finished for PR 15168 at commit ea3c2c3.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65903/
Test PASSed.

Hi, @hvanhovell .
Could you review this PR again when you have some time?

Hi, @hvanhovell .
Could you review this PR again, please?

Oh, conflicts occurs due to https://github.com/apache/spark/pull/15234 . I'll resolve this soon.

@dongjoon-hyun sorry about that. Is the PR description (including all the exceptions) up to date?

Never mind~. Thank you for coming back! I'll check the PR description again and make up-to-date.

Test build #65988 has started for PR 15168 at commit ec574ff.

Test build #65989 has started for PR 15168 at commit 2ed1069.

Test build #65993 has started for PR 15168 at commit fc132e6.

Now, the PR description is also up-to-date.

Test build #65988 has finished for PR 15168 at commit ec574ff.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65988/
Test FAILed.

Test build #65989 has finished for PR 15168 at commit 2ed1069.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65989/
Test PASSed.

Test build #66001 has started for PR 15168 at commit 04c75e5.

Test build #65993 has finished for PR 15168 at commit fc132e6.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/65993/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/66001/
Test PASSed.

Finally, it passed! @hvanhovell .

Hi, @hvanhovell .
Could you review this again?

Hi, @hvanhovell . I thought it's a regression bug fix.
I'm wondering if you think this is a new feature for Spark 2.1.

@dongjoon-hyun we made the decision to regress here willingly. So I think it is a new feature, also this is currently not backportable.
LGTM. Merging to master. Thanks.

Oh, I see. Does that mean it's not allowed to be backported due to the policy although I made a patch for branch-2.0?

Thank you so much, @hvanhovell , @gatorsmile , and @skambha !

When implementing the native DDL support, we blocked a few DDL statements due to the resource limit. Thus, this PR is not a bug fix. In theory, we should not add new features into the previous releases.

@dongjoon-hyun the risk of this PR breaking something is quite low; so I am open to backporting as long as long as it does not create too much issues. BTW: did you open a backport? this was against master?

@gatorsmile , @hvanhovell . Yep. I knew the policy about new feature issues and bug fix issues. So, I wish this PR is considered as bug fix issue from the beginning. Ya, it's a new feature indeed.
@hvanhovell . I didn't make that yet since this PR wasn't merged before. I'll try to make a backport PR for that to receive a chance to be reviewed. That will be mostly the same code. If you think that's too much at that time, I'll close the backport PR then.
Thank you again, All.


print_nonl

It looks like there is a function with that name which is not used

It's used in backend.py by visit_Print


After doing all the process to generate the project. There are no Checkpoints.

First of all congrats, this looks promising.
But, after trying 5 times to finetune with the Mistral 7b model, I see there are no Checkpoints. I've set batch_size to 4 fl16, gradient accumulation to 8,... My JSON file is set on key:value pairs like "instruction" and "output", have changed that where it is "phrase" and "tone". Everything went through just with one Warning but nothing serious. Waited to it finnishes the finetunning. I see models folder with qlora and checkpoints. In QLora I have run_history_gpu-cpu.txt:

There is also another subfolder called again "qlora". Inside are on .json file "gpu-cpu_model.json" and another folder called "gpu-cpu_model". Inside this folder is another folder called adapter with a .json file "adapter_model.json" and "adapter_model.bin"
But in Checkpoints folder there is nothing. As said, tried several times. Different .json datasets. No clue why it doesn't work.
I'm running it on  Windows 11 with a NVIDIA RTX 4090. And it shows it is running it on my GPU.
So, what is going on???
When I run python gradio_chat.py I get:
(mistral-7b-env) zasear@zaesarius:/mnt/c/Users/zaesa/OneDrive/Escritorio/AI/Lawyer Mistral Agent/inference$ python gradio_chat.py Number of GPUs available: 1 Running on device: cuda CPU threads: 16 Loading checkpoint shards: 100%|████████████████████████████████████████████| 2/2 [02:44<00:00, 82.49s/it] Traceback (most recent call last):   File "/mnt/c/Users/zaesa/OneDrive/Escritorio/AI/Lawyer Mistral Agent/inference/gradio_chat.py", line 40, in <module>     usingAdapter = true NameError: name 'true' is not defined
Appreciate any help!

This might be due to OneDrive interfering with file locks and stuff (I see it in the path).
If I were you, I might try moving everything to some folder that isn't tied to OneDrive.

@venturaEffect, can you make sure the dataset file is getting copied to the dataset folder? Also did you increased the max_steps to match your needs on the dataset?

@venturaEffect, can you make sure the dataset file is getting copied to the dataset folder? Also did you increased the max_steps to match your needs on the dataset?

Oh, I have include it manually in the dataset. Does it make it automatically? No, haven't increased the max_steps. How do I know which are the required?

This might be due to OneDrive interfering with file locks and stuff (I see it in the path).

Well it is on my Desktop. Should I move it maybe to User folder?

@venturaEffect could it be model dependent? Using phi-2 after training there are checkpoints in models folder:
(phi-2-env) elsaco@RIPPER:~/ai/test1/models/checkpoints$ ls -lR
drwxr-xr-x 2 elsaco elsaco 4096 Dec 16 12:56 checkpoint-1000
drwxr-xr-x 2 elsaco elsaco 4096 Dec 16 11:34 checkpoint-500

more output
./checkpoint-1000:
total 822812
-rw-r--r-- 1 elsaco elsaco       464 Dec 16 12:56 README.md
-rw-r--r-- 1 elsaco elsaco       473 Dec 16 12:56 adapter_config.json
-rw-r--r-- 1 elsaco elsaco 167863690 Dec 16 12:56 adapter_model.bin
-rw-r--r-- 1 elsaco elsaco      1098 Dec 16 12:56 added_tokens.json
-rw-r--r-- 1 elsaco elsaco    456318 Dec 16 12:56 merges.txt
-rw-r--r-- 1 elsaco elsaco 671247290 Dec 16 12:56 optimizer.pt
-rw-r--r-- 1 elsaco elsaco     14180 Dec 16 12:56 rng_state.pth
-rw-r--r-- 1 elsaco elsaco      1064 Dec 16 12:56 scheduler.pt
-rw-r--r-- 1 elsaco elsaco       579 Dec 16 12:56 special_tokens_map.json
-rw-r--r-- 1 elsaco elsaco   2115105 Dec 16 12:56 tokenizer.json
-rw-r--r-- 1 elsaco elsaco      7534 Dec 16 12:56 tokenizer_config.json
-rw-r--r-- 1 elsaco elsaco     12015 Dec 16 12:56 trainer_state.json
-rw-r--r-- 1 elsaco elsaco      4472 Dec 16 12:56 training_args.bin
-rw-r--r-- 1 elsaco elsaco    798156 Dec 16 12:56 vocab.json

./checkpoint-500:
total 822812
-rw-r--r-- 1 elsaco elsaco       464 Dec 16 11:34 README.md
-rw-r--r-- 1 elsaco elsaco       473 Dec 16 11:34 adapter_config.json
-rw-r--r-- 1 elsaco elsaco 167863690 Dec 16 11:34 adapter_model.bin
-rw-r--r-- 1 elsaco elsaco      1098 Dec 16 11:34 added_tokens.json
-rw-r--r-- 1 elsaco elsaco    456318 Dec 16 11:34 merges.txt
-rw-r--r-- 1 elsaco elsaco 671247290 Dec 16 11:34 optimizer.pt
-rw-r--r-- 1 elsaco elsaco     14180 Dec 16 11:34 rng_state.pth
-rw-r--r-- 1 elsaco elsaco      1064 Dec 16 11:34 scheduler.pt
-rw-r--r-- 1 elsaco elsaco       579 Dec 16 11:34 special_tokens_map.json
-rw-r--r-- 1 elsaco elsaco   2115105 Dec 16 11:34 tokenizer.json
-rw-r--r-- 1 elsaco elsaco      7534 Dec 16 11:34 tokenizer_config.json
-rw-r--r-- 1 elsaco elsaco      6106 Dec 16 11:34 trainer_state.json
-rw-r--r-- 1 elsaco elsaco      4472 Dec 16 11:34 training_args.bin
-rw-r--r-- 1 elsaco elsaco    798156 Dec 16 11:34 vocab.json

As for the error on line 40 in gradio_chat.py change true to True and it will work:
(phi-2-env) elsaco@RIPPER:~/ai/test1/inference$ python gradio_chat.py
Number of GPUs available: 1
Running on device: cuda
CPU threads: 3
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
Loading checkpoint shards: 100%|██████████████████████████████████████████████| 2/2 [00:05<00:00,  2.75s/it]
Number of GPUs available: 1
Model ../model-cache/microsoft/phi-2 loaded successfully on cuda
Running on local URL:  http://<IP_ADDRESS>:7860

@venturaEffect, can you make sure the dataset file is getting copied to the dataset folder? Also did you increased the max_steps to match your needs on the dataset?

@vriveras Oh, I have include it manually in the dataset. Does it make it automatically? No, haven't increased the max_steps. How do I know which are the required?

The max steps are low of the default dataset which means you are not triggering the eval steps where the checkpoint is created. Once you are done the final adapter should still be available under model [Project Path]\models\qlora\qlora\gpu-cpu_model\adapter\ the inference projects will load it automatically from there for testing.
Thanks for pointing out the bug with the inference on line 40, we have now fixed the templates.

The max steps are low of the default dataset which means you are not triggering the eval steps where the checkpoint is created. Once you are done the final adapter should still be available under model [Project Path]\models\qlora\qlora\gpu-cpu_model\adapter\ the inference projects will load it automatically from there for testing.
Thanks for pointing out the bug with the inference on line 40, we have now fixed the templates.

Ok, following your steps, even if I don't think it is necssary to max steps the little data that I'm trying to fine tune.
Now, don't know why, when trying to select the path to the project folder (BTW when clicking on the input the mouse pointer shows a forbidden icon ????) now  it opens  suddenly on the search bar (???) on Visual Studio to select the PATH (Can't select through folders, have to put the path in the bar, really bad as UE. Anyway... )
When Relaunching Window In Workspace now it tells me this:

There is clearly something wrong in routing the path.

The max steps are low of the default dataset which means you are not triggering the eval steps where the checkpoint is created. Once you are done the final adapter should still be available under model [Project Path]\models\qlora\qlora\gpu-cpu_model\adapter\ the inference projects will load it automatically from there for testing.

Thanks for pointing out the bug with the inference on line 40, we have now fixed the templates.

Ok, following your steps, even if I don't think it is necssary to max steps the little data that I'm trying to fine tune.
Now, don't know why, when trying to select the path to the project folder (BTW when clicking on the input the mouse pointer shows a forbidden icon ????) now  it opens  suddenly on the search bar (???) on Visual Studio to select the PATH (Can't select through folders, have to put the path in the bar, really bad as UE. Anyway... )
When Relaunching Window In Workspace now it tells me this:

There is clearly something wrong in routing the path.

Thanks for the feedback on the UI we haven't seen that. We will try to repro and get a fix out.
As for the fine-tuning if you have little data there is no need to increase the max steps but also why you need intermediate checkpoints other than the final adapter which is generated at the end in the path I shared. The default setting for save steps is calculated by the trainer, if you want to force the creation you can set 'save_steps' after the project is generate but you will need to use a small number of steps that matches your dataset.

The max steps are low of the default dataset which means you are not triggering the eval steps where the checkpoint is created. Once you are done the final adapter should still be available under model [Project Path]\models\qlora\qlora\gpu-cpu_model\adapter\ the inference projects will load it automatically from there for testing.

Thanks for pointing out the bug with the inference on line 40, we have now fixed the templates.

Ok, following your steps, even if I don't think it is necssary to max steps the little data that I'm trying to fine tune.
Now, don't know why, when trying to select the path to the project folder (BTW when clicking on the input the mouse pointer shows a forbidden icon ????) now  it opens  suddenly on the search bar (???) on Visual Studio to select the PATH (Can't select through folders, have to put the path in the bar, really bad as UE. Anyway... )
When Relaunching Window In Workspace now it tells me this:

There is clearly something wrong in routing the path.

Thanks for the feedback on the UI we haven't seen that. We will try to repro and get a fix out.
As for the fine-tuning if you have little data there is no need to increase the max steps but also why you need intermediate checkpoints other than the final adapter which is generated at the end in the path I shared. The default setting for save steps is calculated by the trainer, if you want to force the creation you can set 'save_steps' after the project is generate but you will need to use a small number of steps that matches your dataset.

Thanks for the answer, but it isn't clear to me how would be the next steps. I have no checkpoints. Having the adapter, what would be the next step? How do I interact with my finetune Mistral model?
Appreciate

The project is not saved inside WSL instance but on C:\home\<username>\ that's why the error Workspace does not exist. See #28
To continue finetuning copy the project from C:\home to ~home inside WSL then run conda activate mistral-7b-env and follow README for more info.

After the fine-tuning is done just run one of the inferencing files console_chat.py or gradio_chat.py  they will automatically load the model with the adapter. You can take a look here https://github.com/microsoft/windows-ai-studio/blob/main/walkthrough-simple-dataset.md#inferencing-with-the-fine-tuned-model

After the fine-tuning is done just run one of the inferencing files console_chat.py or gradio_chat.py they will automatically load the model with the adapter. You can take a look here https://github.com/microsoft/windows-ai-studio/blob/main/walkthrough-simple-dataset.md#inferencing-with-the-fine-tuned-model

Ok, thanks, will try. In any case this seems to be a bug.

The project is not saved inside WSL instance but on C:\home\<username>\ that's why the error Workspace does not exist. See #28
To continue finetuning copy the project from C:\home to ~home inside WSL then run conda activate mistral-7b-env and follow README for more info.

I appreciate your response. Just can't understand why this new workaround, and opening the bar with a default error PATH. Non sense.

The project is not saved inside WSL instance but on C:\home\<username>\ that's why the error Workspace does not exist. See #28

To continue finetuning copy the project from C:\home to ~home inside WSL then run conda activate mistral-7b-env and follow README for more info.

I appreciate your response. Just can't understand why this new workaround, and opening the bar with a default error PATH. Non sense.

This has nothing to do with the checkpoint. Projects are always created in Windows unless you placed them in WSL when creating it. WSL mounts your drives automatically and we use that as the location. C:\users\ becomes /mnt/c/users automatically when launching. You can manually open the project after they are created by just opening the folder on a WSL remote. Go to the folder in WSL and type 'code .' from the folder and it will open it. You can follow the instructions after that to do inference.

The project is not saved inside WSL instance but on C:\home\<username>\ that's why the error Workspace does not exist. See #28

To continue finetuning copy the project from C:\home to ~home inside WSL then run conda activate mistral-7b-env and follow README for more info.

I appreciate your response. Just can't understand why this new workaround, and opening the bar with a default error PATH. Non sense.

This has nothing to do with the checkpoint. Projects are always created in Windows unless you placed them in WSL when creating it. WSL mounts your drives automatically and we use that as the location. C:\users\ becomes /mnt/c/users automatically when launching. You can manually open the project after they are created by just opening the folder on a WSL remote. Go to the folder in WSL and type 'code .' from the folder and it will open it. You can follow the instructions after that to do inference.

This is a joke:

Following your steps. The Path is good (if it is how you say.... ) But no, Since yesterday night. Don't know what you have done it just doesn't find the workspace (?). I've done everything changed your code error (from true to True), max_steps also (even if not necessary), tried to run it even if there are no checkpoints because there is the adapter and ti will work (??)
Nothing, errors, wrong paths, icons showing forbidden when hovering in the path input (?). Tried like over 20 times. One time it stayed like 24 hours (on Windows 11 NVIDIA 4090).
The promise where great and should be legit coming from Windows (??). But start to miss Langchain.

Sorry for delayed response. Please make sure that you are disconnected from WSL before creating the workspace. For example, the left bottom of the VS Code window shows your connection status.

Please make sure to disconnect from WSL before creating the workspace. Once the workspace is created, please use WSL.
It should look something like this while you are creating the workspace.


$Diff with ...rest doesn't work

Example:
/* @flow */

type Props = {
	title: string;
  	age: number;
};

type WrapProps = $Diff<Props, {
	age: number;
}>;

const Person = (props: Props) => {};
const YoungPerson = (props: WrapProps) => {
	return Person({age: 21, ...props});
};

Gives an error:
14: 	return Person({age: 21, ...props});
                   ^ object literal. Expected object instead of
14: 	return Person({age: 21, ...props});
                                ^ Props

However if i declare WrapProps sub type manually, it works:
/* @flow */

type Props = {
	title: string;
  	age: number;
};

/*type WrapProps = $Diff<Props, {
	age: number;
}>;
*/

type WrapProps = {
	title: string;
};

const Person = (props: Props) => {};
const YoungPerson = (props: WrapProps) => {
	return Person({age: 21, ...props});
};

Seems like $Diff is not working correctly.

Indeed, you can't use the spread type on a $Diff type either:
type SpreadFromDiff = {...$Diff<Props, {title: string}}

$Diff is not a public feature. It only works properly as lower bound, i.e. you can assign something to it, but can't use it after that

but the first example should work, right ?

No, it shouldn't. $Diff only works properly as argument in declarations

@vkurchatkin it's publicly documented https://flow.org/en/docs/types/utilities/#toc-diff and I don't see how that example is different from the example in this issues (sans the ... spread).
It would be great if you can provide an example of how it can be used since I've tried $Diff multiple times without success and I'm afraid I don't follow any of the explanations above :(

$Diff aside, is there any other idiomatic way to annotate react components that wrap another component and exposing a subset of the wrapped component's props (i.e. providing the rest itself inside the wrapper)?

Here is as simple example:
type X = $Diff<{ a: string}, {}>;
var x: X = { a: 'string' }; // This works as expected
x.a; // This is an error

Each type consists of two parts: upper bound and lower bound.  Upper bound defines if you can assign something to the type (i.e. if it's a subtype of the type). Lower bound defines if you can use the type in some particular way. $Diff only implements upper bound, so once you have something of type $Diff you can't do anything with it.
So if you want to use $Diff in your code you have to cast it to any.  This is probably fine if you take $Diff as an argument, but not ideal if you return it from a function.

@vkurchatkin thanks for the example, that clears things up, really helpful!
Just a detail, in the other post above you wrote "lower bound" and this reply "upper bound" (which matches your explanation for $Diff)

Issue described by @vkurchatkin above doesn't seem to be an issue any longer since flow 0.57


RDFa support

This is an 'issue' along the lines of getting a status update like https://github.com/antoniogarrote/rdfstore-js/issues/86 .
The current RDFa implementation, dare I say, is heavy and hairy. If you are using it, you are probably aware of it.
Is anyone currently working on or planning to improve this?
Any recommendations or good experiences to report from the list at http://www.w3.org/community/rdfjs/wiki/Comparison_of_RDFJS_libraries ?

Hi Sarven,
There is some ongoing work for RDFa parsing in our library RDF-Ext. However, it currently only works in Node/IO.js and not browser yet and it needs additional work for language support.
But @bergos plans to work more on it and fix the remaining issues. The goal is to get rid of the JSON-LD lib dependency and directly integrate it into RDF Interfaces API. It is using Green Turtle lib.
Ticket:
https://github.com/zazukoians/rdf-ext/issues/10
Initial code:
https://github.com/zazukoians/rdf-ext/blob/master/lib/jsonld-parser.js#L224
https://github.com/zazukoians/rdf-ext/blob/master/lib/microdata-parser.js


Draw a waypoint when searching for a address or city

Why would you want to do that?

Imagine I want to create a track between several coordinates, so first I search for each of them, GPXStudio creates for me a special waypoint (with a flag icon for example) for each coordinates, then I can immediately have a look to the draft preview of my future track, the user can then remove them if he wants.

I think it is sufficient to be taken exactly at the location selected in the search bar, you can then add a waypoint there if you wish.


Using Form in a Modal

Thanks for this wonderful contact form, Jon! :-)
I have the form working fine on a regular web page. However, I still can't get the form to work in a Bootstrap 4 modal after spending the better part of the last two days trying to find a solution. When attempting to submit the form when its displayed in a modal, everything works fine up to and including the reCaptcha, but then nothing happens upon clicking the send button. I'm learning, but at this point my knowledge of JS is rudimentary at best, so I haven't had any luck with troubleshooting the problem. Among the things I have tried is adding $("#myModal").on('shown.bs.modal', to the beginning of contact-form.js, but it made no difference. Any ideas on how I can make the form work in a modal?

Hmm... As long as you copied everything within the form tag in index.html to the modal body, it should work. Are there any errors in the console? If you open up the console when the modal is open, and run $("#feedbackSubmit") does it return the button w/i your modal? Also, make sure there is only one button on the page with an id of feedbackSubmit.

Yes, I copied everything within the form tag to the modal body. There is only one button on the page. There are no errors showing in the Firebug console. Running $("#feedbackSubmit") does return the button. If I intentionally leave a required field blank or skip the reCaptcha, clicking the button does produce the appropriate error message. But, if the form is filled out correctly, nothing happens when the button is clicked.

If you go to the Network tab, is it actually making a request on Submit?
If this is publicly available on the web, email me at<EMAIL_ADDRESS>and we'll get it figured out.

It turns out that the problem was that I had carelessly created duplicate IDs in the modal and it took me a while to notice this really simple, dumb error! The form works great in my modal now. Thanks to Jon for helping me via email in my effort to troubleshoot what turned out to be a nonexistent reCaptcha problem.


Length issues with unicode characters.

Hi,
First thanks for creating this framework.
I'm having issues where sending a string with specials characters seems to have it's length calculated incorrectly.
routeContext.getResponse().text("»»»»»1234567890");

The arrow is & raquo;
The client browser receives this:
»»»»»12345

How can I solve this issue?
I'm on 0.9.0-SNAPSHOT using tomcat. This issue did not happen in version 0.8.0.

I see this line was added during the chunked transfer-encoding commit.
https://github.com/decebals/pippo/commit/bafb890b80dfbe7da8af42f408fbecc2dfdc9a67?diff=split#diff-1139f570296eedff92a5c1cb05865c24R1055
The length calculation could be going wrong here?

I will take a look.

In few words for string content the method Response.contentLength(int length) must contain the bytes length and not the characters length.
For more info see http://stackoverflow.com/questions/2773396/whats-the-content-length-field-in-http-header

Nice catch!

By the way, I updated the SNAPSHOT version on Sonatype.

Thanks for the fixes so far. This issue is unfortunately still present when encoding JSON data using pippo-jackson. (tested 1.0.0). When using pippo-gson there are no problems. But I really wish to use jackson.
Code to replicate:
ObjectNode node = new ObjectMapper().createObjectNode();
node.put("test", "»»»»»1234567890");
response.json(node);

Output:
{"test":"»»»»»1234567

Actually when I'm encoding the jackson object using gson (ugly but just for testing) there are also issues.
So I guess it's something higher up in the chain that handles the different encoding types.
Output of jackson object using pippo-gson:
{"_children":{"test":{"_value":"»»»»»1234567890"}},"_nodeFactory":{"_cfgBigDecimalExact":fa

I will take a look but it's not clear for me what you try yo achieve. Show me some code (a quickstart project will be perfect).


Fix slycot zero

Add a unit test to make sure that StateSpace.zero() works for systems with no transmission zeros and add a fix for a bug in the slycot version that did not work for this case.

Coverage decreased (-0.05%) to 78.914% when pulling 87ec281f29593f10655d40b6911e013259180882 on murrayrm:fix_slycot-zero into f79fbe42d2c60a7471a206f255b12789d3b740e2 on python-control:master.


Detached resources not listed anymore after second deployment with the same template. Normal?

Describe the bug
I am not sure if I just not completely understand deployment stacks yet or if it is really something that does not work as it should in my tenant or something.
When some resources as removed form the the bicep file and then then Deployment Stack is updated with 'detatchAll'  the removed resources are shown as detached resources as expected. But then after the the Deployment Stack is updated again with exactly the same template the detached resources are not shown anymore.
To Reproduce
Steps to reproduce the behavior:

Given the following simple Bicep template:

param location string = resourceGroup().location

resource storageaccount1 'Microsoft.Storage/storageAccounts@2021-02-01' = {
  name: 'strdeploystacktest123'
  location: location
  kind: 'StorageV2'
  sku: {
    name: 'Standard_LRS'
  }
}

resource storageaccount2 'Microsoft.Storage/storageAccounts@2021-02-01' = {
  name: 'strdeploystacktest12345'
  location: location
  kind: 'StorageV2'
  sku: {
    name: 'Standard_LRS'
  }
}

Create a deployment Stack with az stack group create ... --action-on-unmanage detachAll or New-AzResourceGroupDeploymentStack ... -ActionOnUnmanage DetachAll
Removing 'storageaccount1' resource from the Bicep file.
Update the Deployment Stack with az stack group create ... --action-on-unmanage detachAll or New-AzResourceGroupDeploymentStack ... -ActionOnUnmanage DetachAll  agian.
The Storage Account 'str12345' is shown as detached resource now just as expected.
Update the Deployment Stack again. Still same command line options and same Bicep file as used on step 4.
The Storage Account 'str12345' is not shown as detached resource anymore. Even tough the resource itself still exists it can not be tracked with the Deployment Stack anymore.

Expected behavior
I would have expected that after the Stack is updated again with an unmodified template (Step 6. above) the Deployment Stack still keeps track of the previous detached resources so that they may also be cleaned up / deleted later on trough the Deployment Stack.
Especially when I read this section in the documentation: https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/deployment-stacks?tabs=azure-cli#control-detachment-and-deletion I would assume that I would be able to delete detached Resources by changing the option of 'action-on-unmange' from 'detachAll' to 'deleteResources' or 'deleteAll' and updated the Deployment Stack again (without changing the Bicep file anymore). But it seems that this is only possible on the first Deployment Stack update right after a resource is removed from the Bicep files. If I choose to detach the removed resource at this moment I will not have any option anymore to delete the detached resources by a Deployment Stack update later on. Correct?
Screenshots
Initial creation of the Deployment Stack. Bot Storage Account are shown as Managed:

Removing 'strdeploystacktest123' from the Bicep file and update the Deployment Stack ('DetachAll'). 'strdeploystacktest123' is listed as Detached as expected:

Updating the Deployment Stack again with the same Bicep file and same command line parameters. 'strdeploystacktest123' is not shown anymore. This is what surprises me:

Hey @dantedallag

The detached and deleted resource lists are only a reference to that last operation and a resource can't go from managed --> detached --> deleted; it can only go from managed --> detached or deleted.

Ah yes, makes perfectly sense. That is what I had misunderstood. I thought the detached resources are tracked by the Deployment Stack until they get actually deleted. But it make sense that they are get in an unmanaged state and therefore are not tethered to the stack anymore.
I was just thinking about some blue/green deployment scenarios where you would create new resources in parallel and let the old ones in detached state. Once the new resources are ready and tested the old, detached resources can be deleted by specify the 'deleteResources' in the next Stack Update. But the longer I think about it I think this should probably better be solved with two Deployment Stacks.
Thank you, you helped me a lot!


Sidebar with commitees missing on phone

Commitees visible when screen width is bigger than 800 pixels

But disappears when below 800 pixels

Fix could be padding or margin for the sidebar

Update!!!
Commitee isn't missing or has disappeared, but has moved to the sidebar.

This issue can be considered fixed as the committee list isn't missing but has moved, this is a feature!


Hide existing partner charts in "library" catalog

In rancher/charts in the master branch, we currently have multiple charts that are visible in the legacy UI to launch these charts. This determines the "library" catalog in the old UI.
With v2.6, we have migrated to serving up all new charts in Apps & Marketplace which is located per cluster in the new UI. These charts are from:

rancher/charts in the release-v2.x branches
rancher/partner-charts in the main branch

We want to hide the ability to launch any new chart from the old library catalog by maxing out the Rancher version by adding to any chart without a maximum Rancher version to be set to Rancher v2.6.2.
Impact: No users will be able to launch versions of these older charts in Rancher v2.6.3 onwards, but anyone who already has the chart installed would continue being able to maintain it.
To Do:
Review each chart and each version in rancher/charts, check the questions.yml to see if rancher_max_version exists or not.
If the questions.yml contains a label to indicate that it's a partner (io.rancher.certified: partner), then it is a partner chart
If no max versions exists and it is a partner chart, add rancher_max_version: 2.6.2 into questions.yml file.

The datadog chart is still a visible partner chart in the library.

The datadog chart is no longer visible after https://github.com/rancher/charts/pull/1609 was merged.

Fresh install checks - Pass
Partner charts are not showing up in the "library" catalog section after enabling legacy feature flag in rancher v2.6.3-rc2
Upgrade checks - Not working; UI issue.
Performed following steps:

Deployed rancher v2.6.2 and enabled legacy feature.
Deployed partner charts from "library" catalog.
Upgraded rancher to v2.6.3-rc2.
Partner charts are present under Multi-Cluster Apps section but when I am trying to upgrade the chart, getting this error: Cannot read property 'match' of undefined Reload to try again or log out. Created this UI issue.


rework odata section to add info about getting the odata route

@rareddy I added the description about how customers can obtain the OData route.


RCTShadowView API broken after 0.53.0 (iOS only)

Environment
Environment:
OS: macOS 10.14.2
Node: 11.0.0
Yarn: Not Found
npm: 6.4.1
Watchman: 4.9.0
Xcode: Xcode 9.2 Build version 9C40b
Android Studio: 3.2 AI-181.55<IP_ADDRESS>56338
Packages: (wanted => installed)
react: ^16.4.0 => 16.7.0
react-native: ^0.55.4 => 0.55.4
Description
I am using the shadow view to locate the absolute coordinates of a component in the screen.
with 0.53.0 everything was fine, I was overriding applyLayoutNode and doing :
- (void)applyLayoutNode:(YGNodeRef)node
      viewsWithNewFrame:(NSMutableSet<RCTShadowView *> *)viewsWithNewFrame
       absolutePosition:(CGPoint)absolutePosition
{
       [_bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
        RCTMyView *view = (RCTMyView*)viewRegistry[self.reactTag];
        if ([view isKindOfClass:[RCTMyView class]]) {
            CGRect rect = CGRectMake(absolutePosition.x+YGNodeLayoutGetLeft(node), absolutePosition.y+YGNodeLayoutGetTop(node), YGNodeLayoutGetWidth(node), YGNodeLayoutGetHeight(node));
            [view updateComponent:rect];
        } else {
            RCTLogError(@"Cannot update button: %@ (tag #%@) is not RCTMyView", view, self.reactTag);
        }
    }];
    [super applyLayoutNode:node viewsWithNewFrame:viewsWithNewFrame
 absolutePosition:absolutePosition];
}

This function was only invoked when the layout requested a change, e.g screen rotation
with the next version, the interface has been broken in iOS only(still the same in android), so my code didn't compile anymore, which is something odd, since it's a public interface and obliged me to change my component code depending on the version. RCTView interface is not broken, otherwise most 3rd party components will not compile anymore.
With 0.55.4, I need to overwrite layoutWithMetrics :
- (void)layoutWithMetrics:(RCTLayoutMetrics)layoutMetrics
            layoutContext:(RCTLayoutContext)layoutContext {

    [_bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
        RCTMyView *view = (RCTMyView*)viewRegistry[self.reactTag];
        if ([view isKindOfClass:[RCTMyView class]]) {
            // RN framework always adds 2 subviews to the rootView, the 3 anchored to the origin (0,0).
            // subv2 will be the parent of the view we declare in render()
            // --------------- rootView
            //    --------------- subv1
            //       --------------- subv2
            CGRect rect = layoutMetrics.frame;
            RCTShadowView* v = self.superview;
            while (v) {
                rect.origin.x += v.layoutMetrics.frame.origin.x;
                rect.origin.y += v.layoutMetrics.frame.origin.y;
                v = v.superview;
            }
            [view updateComponent:rect];
        } else {
            RCTLogError(@"Cannot update button: %@ (tag #%@) is not RCTMyView", view, self.reactTag);
        }
    }];

    [super layoutWithMetrics:layoutMetrics layoutContext:layoutContext];
}

This new function has 3 problems:

it is periodically invoked, even if nothing has changed on screen
it is not possible to get the absolute coordinates using the parameters layoutMetrics or layoutContext, without having to loop as I do here. Remember in 0.53.0 I was having the absolute position of the parent node...
is there any plan to break this public interface again in the future? this will not be a viable solution for my client who will need a new release everytime the interface is changed
It would be nice to have a react native core developper having a look at this.

This shadow interface has not been broken anymore until 0.57, and its android equivalent has never been broken(LayoutShadowNode)
Reproducible Demo
N/A

same issue on 0.58


Bower version 1.5.3 still reports update available after updating

As title.

Maybe 1.6.2 works for you? I can't reproduce.

it just happened to me. I did 1.7.0 last night and it's prompting me to "update" to 1.6.5. It's also incorrectly reporting my local version as 1.6.3.

@eppineda Maybe it is this issue: https://github.com/greenkeeperio/greenkeeper/issues/33#issuecomment-144468858

It certainly looks similar.
On Tue, Dec 8, 2015, 04:59 Adam Stankiewicz<EMAIL_ADDRESS>wrote:

@eppineda https://github.com/eppineda Maybe it is this issue: greenkeeperio/greenkeeper#33
(comment)
https://github.com/greenkeeperio/greenkeeper/issues/33#issuecomment-144468858
—
Reply to this email directly or view it on GitHub
https://github.com/bower/bower/issues/1943#issuecomment-162836868.

--
epp


[authoring] merge comments on documents into editor plugin

so as to avoid requiring threads plugin by default

What's the motivation here? I'm actually feeling okay about having threads on by default after #5370 was merged. I think I'd actually be more concerned w/ bloating the markdown plugin.


[Bug] topic name display bug

What did I do

Create a connection, and subscribe two topic "/test/123" and "$SYS/#"

Disconnect

Reconnect

Click subscribe button (if default topic name not change to "testtopic/#", then close dialog and reclick subscribe button )

Subscribe topic "test/123"

What happened
Subscribe list show just added topic name is "testtopic/#"

After switch connection, display list data correct.

Expected
display list data correct.
Environment

OS: macOS Monterey 12.1

MQTTX version, v1.7.1

More detail
Log
[2022-01-20 10:04:01] [INFO] APP init
[2022-01-20 10:04:10] [INFO] MQTTX client with ID 4186b700-f9f7-470c-8e5d-631d261b2b56 assigned
[2022-01-20 10:04:10] [INFO] Connect client local-sz, MQTT/TCP connection: mqtt://<IP_ADDRESS>:1884
[2022-01-20 10:04:10] [INFO] local-sz connect success, MQTT.js onConnect trigger
[2022-01-20 10:04:10] [INFO] Topic: /test/123 is resubscribing
[2022-01-20 10:04:10] [INFO] Saved topic: /test/123
[2022-01-20 10:04:10] [INFO] Topic: /test/123 successfully subscribed
[2022-01-20 10:04:10] [INFO] Topic: $SYS/# is resubscribing
[2022-01-20 10:04:10] [INFO] Saved topic: $SYS/#
[2022-01-20 10:04:10] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:10] [INFO] local-sz message arrived: message added "message_9e8417f6-1e9d-4801-8c2f-8ee5c0308ba5" added to topic<EMAIL_ADDRESS>payload: "EMQ X Broker" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:10] [INFO] Message Arrived with topic: $SYS/brokers
[2022-01-20 10:04:10] [INFO] local-sz message arrived: message added "message_14b41c7d-c750-4aaa-91ae-c52dff62298a" added to topic "$SYS/brokers", payload<EMAIL_ADDRESS>MQTT.js onMessageArrived trigger
[2022-01-20 10:04:10] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:10] [INFO] local-sz message arrived: message added "message_5212a6d3-89eb-46ad-abdd-7cfdd95434c8" added to topic<EMAIL_ADDRESS>payload: "4.3.11" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:10] [INFO] Topic: $SYS/# successfully subscribed
[2022-01-20 10:04:18] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_d39aca0e-aaa0-41ed-b70a-7b1b617d7540" added to topic<EMAIL_ADDRESS>payload: "7" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:18] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_6cc262e5-5725-4e29-a555-5271ae470076" added to topic<EMAIL_ADDRESS>payload: "55" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:18] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_8c48116d-281d-4677-9ff7-4193f4a84ba8" added to topic<EMAIL_ADDRESS>payload: "55" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:18] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_40e4b1f6-6180-43e6-87ad-b89392fe8d48" added to topic<EMAIL_ADDRESS>payload: "11" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:18] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_d8ddf32b-1f01-4446-9d7b-9088d5993bb0" added to topic<EMAIL_ADDRESS>payload: "7" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:18] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_58d61746-af10-4861-99e0-463e45ca3273" added to topic<EMAIL_ADDRESS>payload: "11" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:18] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_a248f95b-854e-4fdd-a514-e48d28000ef8" added to topic<EMAIL_ADDRESS>payload: "7" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:18] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_f347d58b-15e1-43f8-af93-80b7bf63d2a5" added to topic<EMAIL_ADDRESS>payload: "56" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:18] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_46bbda52-54ff-48ff-94b4-8fbfc59188e0" added to topic<EMAIL_ADDRESS>payload: "40" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:18] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_ba52e0e7-f37d-4ad6-a862-f41aff30153d" added to topic<EMAIL_ADDRESS>payload: "6" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:18] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_2aee75b0-cbe1-4cca-a3f4-7af4f17f8e4f" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:18] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_b43dbd77-b01c-4075-b667-b58f62fc9dfc" added to topic<EMAIL_ADDRESS>payload: "17" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:18] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_cd4f48fa-ab23-4dc5-af49-e0186eb73845" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:18] [INFO] Message Arrived with topic: $SYS/brokers
[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_8ea1ff51-9cfd-4aea-a787-5436ad53c0bc" added to topic "$SYS/brokers", payload<EMAIL_ADDRESS>MQTT.js onMessageArrived trigger
[2022-01-20 10:04:18] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:18] [INFO] local-sz message arrived: message added "message_8b29756a-5bbd-4b09-8db6-29990ec26bb7" added to topic<EMAIL_ADDRESS>payload: "41" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_852eaea0-2532-4060-82c5-2a7011fb9c32" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_c76ad8fd-645d-4b0c-a6b4-7dc7d2f94473" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_90db4d62-1f01-4e93-8d07-cdc1957fca5a" added to topic<EMAIL_ADDRESS>payload: "6064" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_bb8ba0f7-a60e-47ed-8e1e-a0309db2151d" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_a4932e53-7128-4849-a992-680b7947872a" added to topic<EMAIL_ADDRESS>payload: "355293" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_4331c7ba-7cb0-43c4-b205-7837cf2bec6a" added to topic<EMAIL_ADDRESS>payload: "11" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_209e8beb-9362-4f44-ac81-6618f7d416ed" added to topic<EMAIL_ADDRESS>payload: "7122" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_47e557d6-3512-4c9f-9a81-07508e7f1786" added to topic<EMAIL_ADDRESS>payload: "7122" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_8b6bccf6-a609-4fb0-887b-ac1ffc7fc6d6" added to topic<EMAIL_ADDRESS>payload: "8" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_202335dc-3556-4580-b9a5-10d03139a77b" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_b8d29456-8691-4f58-8185-c6ec5a603cd9" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_d747841a-82fd-44e8-9597-7038e2b63625" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_7821ceb8-b735-4580-ba4a-7a032b62cff4" added to topic<EMAIL_ADDRESS>payload: "EMQ X Broker" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_e712daf8-cd64-46e4-a57a-c51ef865dfce" added to topic<EMAIL_ADDRESS>payload: "17" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_75b78084-9c91-4cad-938a-966c50598830" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_abf547f8-e943-44d3-b79c-3ef6b67867b9" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_08834dc7-4fcb-475e-94e3-5c3078cca682" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_f330dfe0-b618-4c9f-a20a-12c2497da81f" added to topic<EMAIL_ADDRESS>payload: "56" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_caed425b-6bb2-4d49-8f21-b956ac90efeb" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_ed9f69e5-1300-43d9-a564-b8c5946abe89" added to topic<EMAIL_ADDRESS>payload: "6069" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_c9ec70da-a0c7-4c3b-8212-65fa449e1bc5" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_02dba3f5-7bc0-44ec-bc63-f54c27496d75" added to topic<EMAIL_ADDRESS>payload: "8" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_f436525c-b54d-484b-80b3-26c02ae2f040" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_4be8f638-924e-487f-a04c-c1f5a85cac99" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_5c3d028b-8e0a-4a9b-ae19-ce904f7bd87d" added to topic<EMAIL_ADDRESS>payload: "11" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_59188764-779c-4a9d-94ca-d5b96307e1a0" added to topic<EMAIL_ADDRESS>payload: "71" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_33e29f02-20af-4b87-8b61-66ce3ff892bf" added to topic<EMAIL_ADDRESS>payload: "37" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_ed76adc2-2d33-4b55-a5c1-bc5b9a0ac33e" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_361ddef5-8edf-4534-b75d-8f42ee8e0232" added to topic<EMAIL_ADDRESS>payload: "6" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_008db6ce-e09f-4f9e-ad0c-78a1ad8e5dd0" added to topic<EMAIL_ADDRESS>payload: "2983" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_69eb4892-98ea-4d2d-9883-bab00450b740" added to topic<EMAIL_ADDRESS>payload: "6069" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_40435b66-346d-4c43-b566-bed0fd6c0a0b" added to topic<EMAIL_ADDRESS>payload: "17" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_3f53b5df-c7ee-4bbd-81e1-ea9f60b0ac78" added to topic<EMAIL_ADDRESS>payload: "6840" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_8bff130b-35d1-41e5-af4c-a53540b7491d" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_57f9508d-53bf-4d00-9d40-810c8ff07f87" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_b48d6ffc-532b-4ab2-8ef5-759314b5fb9e" added to topic<EMAIL_ADDRESS>payload: "6069" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_7c67809a-fe62-4b69-9fa4-3b0c24a36c33" added to topic<EMAIL_ADDRESS>payload: "17" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_13207490-0b73-4931-b72e-3df23ac049fc" added to topic<EMAIL_ADDRESS>payload: "11" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_74af552b-9b5c-4d43-accf-0ed4ebd238ec" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_cbdb4b26-f8f5-4582-b826-55477e84ebbc" added to topic<EMAIL_ADDRESS>payload: "17" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_c56c890c-da2b-4247-9446-93c9b209e2a3" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_949bfa8d-e122-47f5-aacb-9d0370c0c0ad" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_8e121b14-b909-433e-a5e3-5adb64574041" added to topic<EMAIL_ADDRESS>payload: "17" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_419e14be-dfe2-42b0-851b-7b90ffe30d49" added to topic<EMAIL_ADDRESS>payload: "71" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_94c3517c-a4e4-41db-b063-4ee93625cddd" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_e266ac09-b7ae-4d94-a6d9-2eba233ac358" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_d1325d65-6d68-49cb-b276-e8388107ad1a" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_53a8a3c7-2de9-4958-b5e7-8cc9ee350a29" added to topic<EMAIL_ADDRESS>payload: "13319" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_2f52c9b3-1672-49fc-88ed-101c371beb0e" added to topic<EMAIL_ADDRESS>payload: "13298" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_efd4ae4e-385a-4038-ab38-68f0e8f2c553" added to topic<EMAIL_ADDRESS>payload: "302705" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_e17ab74c-3efe-47e5-94d5-fe1a0dbf633f" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_5fe1e6f9-cbb7-4cea-9c7a-d015af1f70da" added to topic<EMAIL_ADDRESS>payload: "5" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_b146002d-6aa8-424a-8d72-9a59cfd9e0bc" added to topic<EMAIL_ADDRESS>payload: "55" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_2c007c89-ae10-4a0d-845a-753380b3d9c1" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_0fda2e33-5456-4229-bacd-82d74e724e1e" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_79c20d54-f495-42a5-a413-ff44d1841348" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_ab869572-cabb-499b-966b-c2eb3408cd9e" added to topic<EMAIL_ADDRESS>payload: "6064" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_6954974d-7654-4e2b-8d48-aead84b0a90f" added to topic<EMAIL_ADDRESS>payload: "5" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_ed89d19a-6ae2-46da-b3e5-d73278d3fac1" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_b408474d-4ae9-48ad-9176-1813d9760ef5" added to topic<EMAIL_ADDRESS>payload: "6" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_05ab7223-5279-4551-a240-358f5542a2fe" added to topic<EMAIL_ADDRESS>payload: "15" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_450bbb36-0d6b-418a-a4d3-0b8514d2853f" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:19] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:19] [INFO] local-sz message arrived: message added "message_0a1adc08-80ee-4e22-888e-c559911d76a3" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_2ecf2a58-8454-4157-911d-993e02d8b8d7" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_2c3c7ae6-49a6-4621-93f9-189887309914" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_d7dd151a-60af-4e66-81e1-179c81c1d797" added to topic<EMAIL_ADDRESS>payload: "1" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_88b6c026-c939-4357-acc3-2e9cefe3044f" added to topic<EMAIL_ADDRESS>payload: "1155" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_4d4b65d2-12ee-4087-be71-487661aaa4c3" added to topic<EMAIL_ADDRESS>payload: "71" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_a9635545-4568-490d-9aa0-8d0377bdbc33" added to topic<EMAIL_ADDRESS>payload: "3" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_fb698c21-9800-4725-8be2-3895e3c1a71f" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_66ba0294-c097-4c95-b4ec-fa9601907a2c" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_2a2e2f5b-931e-4620-9da3-85f1b885ac96" added to topic<EMAIL_ADDRESS>payload: "37" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_35174675-7a73-45d9-a6f4-6b6c2561ccca" added to topic<EMAIL_ADDRESS>payload: "6032" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_ec6453b7-8861-41ef-8f19-13060c1eedf9" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_3be126ab-e7dd-48f9-8fbc-14ec1b2d6e7c" added to topic<EMAIL_ADDRESS>payload: "17" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_16073bde-ecc0-4e70-8e08-bf8dd7f2b9b3" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_ab16d94c-0ca5-40a0-b3f1-d730debcc6ee" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_0f78f9da-a471-42f5-933e-801632b52d59" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_44041152-9b54-47a6-8afe-d492d7368de8" added to topic<EMAIL_ADDRESS>payload: "6064" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_de1f07b8-5afd-4c47-b91b-a1628db9031e" added to topic<EMAIL_ADDRESS>payload: "17" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_1ef9c993-9272-4084-a5f0-9df5706e2ef1" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_aed27e0c-04c8-4213-988a-10ea6ce3e3f3" added to topic<EMAIL_ADDRESS>payload: "8" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_3ba07666-8213-4da5-9c0b-cc71a1fcc38e" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_4b54380c-e42b-4532-9ba3-a54a6de35159" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_06c12a5a-f217-4929-ae25-75927be41dbc" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_260538c8-71f5-4d1d-ae9c-67f8fadd4bcc" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_021b6e1d-bff9-4a44-8cb1-d5742888af03" added to topic<EMAIL_ADDRESS>payload: "16 hours, 22 minutes, 10 seconds" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_9e279e56-924b-4f0f-a6c0-d3818e0def3d" added to topic<EMAIL_ADDRESS>payload: "2022-01-20 02:04:18" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_06dd2434-ebed-4c40-a337-3719b41d27bb" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_ff2b25cd-5751-45b0-9c7c-bc9d61dbdcd5" added to topic<EMAIL_ADDRESS>payload: "56" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_ad502b66-2345-445a-b8e5-4b03b708c460" added to topic<EMAIL_ADDRESS>payload: "55" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_b4b1c0fb-5100-40ec-beab-ced33a831107" added to topic<EMAIL_ADDRESS>payload: "1156" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_d95f1036-1fe7-41ee-9d02-e9dc97c46d80" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_624a0be5-24ae-4f38-a320-714a8aca4bca" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_c8decef3-509a-4806-bff2-bd88352a53a1" added to topic<EMAIL_ADDRESS>payload: "86" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_1448f0fc-787e-4161-bb8f-5baed7305436" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_fc49abaf-258d-4a56-bb88-4ee7c7bd0de0" added to topic<EMAIL_ADDRESS>payload: "56" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_86f8828b-bae5-42b4-96db-672c46948bfd" added to topic<EMAIL_ADDRESS>payload: "15" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_f2e19fce-80f1-4ef7-a05a-fe6e9314b299" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_9cba8f22-ca31-4834-9e3c-77f11e4b7275" added to topic<EMAIL_ADDRESS>payload: "0" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:20] [INFO] Message Arrived with topic<EMAIL_ADDRESS>[2022-01-20 10:04:20] [INFO] local-sz message arrived: message added "message_aac87217-d48c-42df-bdd4-b065e5336f95" added to topic<EMAIL_ADDRESS>payload: "4.3.11" MQTT.js onMessageArrived trigger
[2022-01-20 10:04:28] [INFO] Saved topic: test/123
[2022-01-20 10:04:28] [INFO] Topic: test/123 successfully subscribed

@GuryYu Hi, thanks for your feedback! It's fixed on https://github.com/emqx/MQTTX/releases/tag/v1.7.2


Trivia Game Design Enhancement

This pull request contains the updated code for the "Trivia Game Design Enhancement". It is the result of the following issue:
Trivia Game Design Enhancement #915
Output Screenshot

Hi @panwar8279
Kindly review this pull request.


Allow to alter zscaler IPs list

default ZScaler Proxy IPs works well in most AWS VPCs but not everywhere
we have to have a way to override them

@PiotrPalkaSpotOn - Can you update the chart version?

@dalefrancum right... Always forget about this one. Updated. Thanks for a good eye!


Initial version of the duckdb_% table functions documentation.

New page describing the duckdb_ table functions.
As this is my first PR to this project I can imagine I might not be doing it quite right.
Please let me know if there's anything I should correct.
Thanks in advance.

Thank you! I'll review this in the next few days as my wife defeats this covid plague and we can split time caring for our little kiddo again!

@Alex-Monahan thanks for the reply! No rush, please take care, I wish your wife a speedy recovery.

Hello! Would you mind granting me the ability to make edits in your fork? I'd like to remerge with the main branch, and then add in links to this page for the drop down menu.
Thanks!

@Alex-Monahan sure! You should have an invite from github in the mail. Thanks!

Thank you for this doc! Lots of great info in here - I really appreciate it.
I did my best when filling in the ?'s you had as placeholders, and I think each "Always" statement is true. Let's merge this for now and fix if needed!
One ToDo is to update the search JSON so that this is searchable - will do that the next time that I run an update on the search! (ran into an error last time I tried to run it - likely some Windows fun!).


Reimplement static-timing pass.

This is intended to address #654.

I took a crack at adding the passes/static-timing tests. Now I'm not sure what was meant by the issue about "Enable "correctness static" tests and Add -d static-timing flag to "correctness dynamic" tests". As far as I can see from what I uncommented, those are the same sets of tests? Which ones in the correctness directory should have static timing disabled?

@rachitnigam I think this is good for a first draft whenever you get a chance to take a look. I've tested this with the pipelined dot product I get out of CIRCT and it does work and show the stages executing concurrently in a VCD trace!

You can see the multiplier, which would be the bottleneck, still isn't fully utilized at steady state... I'm trying to see if I can tighten up the while loop state machine. There's also the register update for the while condition that will always take an extra cycle in the steady state. I haven't thought about the implications, but we could potentially read the condition combinationally to save that.
BTW, I didn't end up using the bounds attribute in the implementation, so the only requirement here is the enables are all static.

I think this is good for a first draft whenever you get a chance to take a look.

All right, marking this as "ready for review" and asking other folks to join in! Thanks for the work!

I'm trying to see if I can tighten up the while loop state machine

I think you may have to use the @bound attribute for this because remove-comb-groups transforms the control program of a while operator to execute a group that evaluates the condition before starting the next iteration which probably causes the delay you're seeing. In general, I think remove-comb-group should be made into an optional pass and compilation passes should directly deal with combinational groups for conditional evaluation.

In general, I think remove-comb-group should be made into an optional pass and compilation passes should directly deal with combinational groups for conditional evaluation.

Ok great, that is what I was pondering last night. I think we just need to make sure the assertions in the handling for if and while here take that into account; they are currently enforcing remove-comb-groups was run (since I copied them from tdcc). I'll worry about that as a later optimization... for now I am just stoked the "pipelined" approach is indeed "pipelining".
I was about to share this. Here's what the "non-pipelined" version looks like. This is the same program, also going through CIRCT, but just through the SCF dialect, without scheduling at the Affine level. You can see the next multiplies don't begin until after the previous adds finish, whereas in the above the next multiply starts on the same cycle as the previous add.

By my reading in gtkwave, the pipelined version has the result ready on the output of the adder after 61 clocks, compared to 93 clocks for the non-pipelined version. I'll try to run a synthesis for some device and get a resource report as well. I'm quite curious how area efficient the top-down-st FSM implementation is.

@mikeurbach looks like Github Actions are being annoying about running tests on forks. Can we try one of two things:

Close and reopen this PR?
If that doesn't help, I'll make you a contributor to this repository and you can open a PR from a branch within this repository?

I will try repopening a new on.

Okay, I've sent you an invite to collaborate on this repository.


Stop readTablePropXM() from Attempting to Read XM Payloads

Fixes #130

Awesome, thanks for the PR!


Fix wrong setting for datatype size and enable dynamic dims for all inputs and all dimensions

Resolve #449 and enable testing all dynamic dims in all inputs (by default). Thus, by default, `check-onnx-backend-dynamic" will import all dimensions in all inputs as unknown dims.
Enable tests for Constant and Size. It seems these tests work with master branch. Not sure which PRs solved issues about these tests. So just enable them here.

Is this PR has some conflict with PR#442 for SetStrides?

No, PR#442 only changed the function name, and this patch fixed the function calculation. Sorry for the confusion!

Is this PR has some conflict with PR#442 for SetStrides?

No, PR#442 only changed the function name, and this patch fixed the function calculation. Sorry for the confusion!


Remove permalink for FAQ

When the next version of docs ships the FAQ will live at this location so we don't need to use the permalink anymore ✨
cc @zeke I think this is all we need to change to prep for that update?

Sweet. So should we ship this now, then remove it later?

then remove it later?

Not sure what the 'it' is here 😄 This PR does remove the permalink.

🙈 oops I misread. So we should wait until 1.2.7 to merge this?

We can merge it now since these scripts are running on the site.


Output: viewBox="NaN"

When I run svg's through this plugin without the attribute viewBox set, the output of the particular svg will contain the viewBox attribute set to NaN.  I often use svg's with width and height set, instead of viewBox.
Most of the time I solved it by setting the viewBox. In the example below I changed width="357" height="357" to viewBox="0 0 357 357", but this shouldn't be necessary.
Example of svg before webpack:
<svg xmlns="http://www.w3.org/2000/svg" width="357" height="357">
    <path fill="#000" d="M357 35.7L321.3 0 178.5 142.8 35.7 0 0 35.7l142.8 142.8L0 321.3 35.7 357l142.8-142.8L321.3 357l35.7-35.7-142.8-142.8z"/>
</svg>

Example of symbol after webpack:
<symbol id="sprite-cancel-test" viewBox="NaN">
    <title>cancel-test</title>
    <path d="M357 35.7L321.3 0 178.5 142.8 35.7 0 0 35.7l142.8 142.8L0 321.3 35.7 357l142.8-142.8L321.3 357l35.7-35.7-142.8-142.8z"/>
</symbol>
<use xlink:href="#sprite-cancel-test" width="357" height="357"/>

This has been fixed in 1.0.4 🎉


ds login  or ds --version

Bug
Expected behavior:
redirect to login with github
Actual behavior:
Error: /Users/$USRNAME/.entropicrc
at load (/usr/local/lib/node_modules/ds/lib/config.js:21:11)
Environment info (where relevant)
OSX 10.14.5

Version of Node (node -v):
v12.4.0
Version of ds (ds --version):
error
at load (/usr/local/lib/node_modules/ds/lib/config.js:21:11)

It's still related to #104 for even node v12

https://github.com/entropic-dev/entropic/blob/master/cli/lib/config.js#L21 if you're up to date with master, that error would seem to imply that you have a syntax error in your ~/.entropicrc. It should look something like
[registries."https://registry.entropic.dev"]
token = "ent_v1_TOKEN_HERE"

Could you post the contents here (with token redacted)?

That's is the point actually , I am up to date with master but the point is  ~/.entropicrc not theres at all not created

it trying to load non existing file and dir (the error make sense), the point is where is actual .entropicrc creation

The file gets created by this function which is called here. Could you add a console.log(e) before the throw here and see if there are any more details?

that what i expected and then after logging
[Error: EISDIR: illegal operation on a directory, read] {
errno: -21,
code: 'EISDIR',
syscall: 'read'
}

Ah okay, so that's saying you have a directory at ~/.entropicrc, and it's trying to use `readFile.

cool it's working now, but suppose that we provide an error for that case !

what about changing this  with if (e.code === 'ENOENT' || e.code === 'EISDIR') {

That would still wind up throwing an error in the save function. It might make sense to just add another case, something like:
if (e.code === 'ENOENT') {
  return {};
}

if (e.code === 'EISDIR') {
  throw new errors.CouldNotReadConfigFile(filename, 'File is a directory!');
}

throw new errors.CouldNotReadConfigFile(filename, e);

@zacanger if you wouldn't mind i will have a PR for it

https://github.com/entropic-dev/entropic/pull/186
This will make lifes easier since it's handling everything in sync. Also modified error messages.


custom css region folding Word

Using 1.23, CSS region folding can only be found

/ * #region header* /

/ * #endregion * /

Can we add custom words to user settings?
/ * #css header*/

/ * #endcss * /

@lihua06 How common is the use of these markers? We should only add it to the default markers if they are commonly used. Otherwise, the request would rather by a dup of #36002


Align Color to Depth performance improvement tip

When aligning color frame to depth frame there is no need in projecting the depth pixel onto the color image region using the corners, as it's done here (as well as in sse and cuda versions)
https://github.com/IntelRealSense/librealsense/blob/d6f6be84b46190c8c84c95f6ac279d239320fcda/src/proc/align.cpp#L52
Because only the last color pixel value inside the region is assigned to aligned pixel
https://github.com/IntelRealSense/librealsense/blob/d6f6be84b46190c8c84c95f6ac279d239320fcda/src/proc/align.cpp#L99
Instead, it's enough to project the center of depth pixel only.

well, I guess the author wanna support align two images of different resolution or even of different ratios of width and height.

It doesn't matter. Your depth pixel [u,v] is projected onto color image region [y0,y1]x[x0,x2], then you iterate over the region assigning value of every single color pixel to THE SAME aligned pixel [u,v]. What's the point in iterating then?

I'm not quite sure about the reason why the author did the iterating. I just could tell my understanding.
I guess there is something that does matter. Like you said,  the [y0 y1]~[x0 x1] region needs to be filled by the same value but not left  empty or filled with other not existing values.
And actually, while aligning the depth image to another viewport,  there might exist some occlusion to take into consideration. So once the whole image alignment is done,  you might find out that  the region is not be filled with the same value any more, cuz' some pixels in the region were overlaid by pixels of neighboring region.
hope I'm not missing something ; P

In fact, you're describing the reverse process - Depth to Color alignment, where points mentioned by you really matter.
On the contrary, during Color to Depth alignment [x0,x1]x[y0,y1] region of color image is projected on to a single depth pixel. So, after iterating over the region, the last [x1,y1] pixel's value is assigned to depth pixel, which makes iterating meaningless.

Yes, I think you are right.
In my opinion, aligning color image of one viewpoint to the depth image of another different viewpoint is an ill-posed problem. It will cause some terrible artifacts in the aligned color image if the geometries are very complex (also depends on how different the two viewpoints are). So I never use it.

Artifacts are another problem. Of course there are some. But sometimes you just need to do alignment to get RGBD.

Hi @pavloblindnology
Appreciate the suggestion. There is no singular author to this code, it was contributed to by many developers. Do you have any data on the performance impact of what you are suggesting? There is fairly significant test-set for alignment validation in the unit-tests (since it is very easy to break with all the combinations of RGB and depth resolutions) in-case you'd consider contributing your optimization to the project.

@pavloblindnology Any update for the questions from Dorodnic? Looking forward to your reply. Thanks!

Hi @dorodnic
No, I don't have any data on performance, but presume it should be significant since inner loop will be totally eliminated.

@pavloblindnology Could you please submit one PR for your suggestion? Thanks!

@pavloblindnology Any update about this? Thanks!

@RealSenseCustomerSupport Well, unfortunately, don't have time to contribute.

@pavloblindnology That's all right. Thanks for your suggestions!