Operation implementation for quantum-cpg gates

Hi there
I am encountering a lot of "An operation is not implemented" errors and would like to know if you could spend some time implementing simple gates in the qasm parser.
They are very simple gates to implement I think and would help a lot.
The simplest ones are the gates y, z, t, s, tdg, sdg. I think these could be implemented in the same way as the x-gate which is already implemented.
The other gates I would like to see implemented are the custom gates rx, ry, rz. These are a little more difficult to implement but could be implemented in a similar way to the cx gate. Only instead of having 2 qubits as parameters these have 1 qubit and a different parameter.
I include some files to test these new gates if you want to try them.
OPENQASM 2.0;
include "qelib1.inc";

qreg q[4];
creg c[4];

y q[1];
z q[2];
t q[0];
tdg q[1];
s q[2];
sdg q[3];

measure q[0]->c[0];
measure q[2]->c[1];
measure q[3]->c[2];
measure q[1]->c[3];

OPENQASM 2.0;
include "qelib1.inc";

qreg q[4];
creg c[4];

rx(pi/2) q[0];
ry(pi/4) q[1];
rz(pi/6) q[2];

measure q[0]->c[0];
measure q[2]->c[1];
measure q[3]->c[2];
measure q[1]->c[3];

Regards
Carlos

Hi, the first set of gates should be supported now. The rotation ones are still missing.

Did you change any configuration recently because I am having problems executing trivial .qasm files that worked before
cpg-neo4j/build/install/cpg-neo4j/bin/cpg-neo4j --host=neo4j --user=neo4j --password=default1 /app/uploads/simple.qasm15:59:43,060 INFO  TranslationConfiguration$Builder Registered language frontend 'CLanguage' for following file types: [c, h]
15:59:43,068 INFO  TranslationConfiguration$Builder Registered language frontend 'CPPLanguage' for following file types: [cpp, cc, cxx, hpp, hh]
15:59:43,072 INFO  TranslationConfiguration$Builder Registered language frontend 'JavaLanguage' for following file types: [java]
15:59:43,075 INFO  TranslationConfiguration$Builder Registered language frontend 'PythonLanguage' for following file types: [py]
15:59:43,079 INFO  TranslationConfiguration$Builder Registered language frontend 'OpenQasmLanguage' for following file types: [qasm]
15:59:43,153 INFO  TranslationConfiguration$Builder Registered an extra (frontend dependent) default dependency: class de.fraunhofer.aisec.cpg.passes.DynamicInvokeResolver
15:59:43,153 INFO  TranslationConfiguration$Builder Registered an extra (frontend dependent) default dependency: class de.fraunhofer.aisec.cpg.passes.CXXExtraPass
15:59:43,153 INFO  TranslationConfiguration$Builder Registered an extra (frontend dependent) default dependency: class de.fraunhofer.aisec.cpg.passes.DynamicInvokeResolver
15:59:43,154 INFO  TranslationConfiguration$Builder Registered an extra (frontend dependent) default dependency: class de.fraunhofer.aisec.cpg.passes.CXXExtraPass
15:59:43,155 INFO  TranslationConfiguration$Builder Registered an extra (frontend dependent) default dependency: class de.fraunhofer.aisec.cpg.passes.JavaExternalTypeHierarchyResolver
15:59:43,157 INFO  TranslationConfiguration$Builder Registered an extra (frontend dependent) default dependency: class de.fraunhofer.aisec.cpg.passes.PythonAddDeclarationsPass
15:59:43,161 INFO  TranslationConfiguration$Builder Registered an extra (frontend dependent) default dependency: class de.fraunhofer.aisec.cpg.frontends.openqasm.passes.OpenQASMPass
15:59:43,161 INFO  TranslationConfiguration$Builder Registered an extra (frontend dependent) default dependency: class de.fraunhofer.aisec.cpg.passes.quantumcpg.QuantumEOGPass
15:59:43,161 INFO  TranslationConfiguration$Builder Registered an extra (frontend dependent) default dependency: class de.fraunhofer.aisec.cpg.passes.quantumcpg.QuantumDFGPass
15:59:43,163 INFO  TranslationConfiguration$Builder Passes before enforcing order: [EdgeCachePass, QiskitPass, QuantumEOGPass, QuantumDFGPass, DFGConnectionPass, TypeHierarchyResolver, ImportResolver, SymbolResolver, DFGPass, DynamicInvokeResolver, EvaluationOrderGraphPass, TypeResolver, ControlFlowSensitiveDFGPass, FilenameMapper, PrepareSerialization, DynamicInvokeResolver, CXXExtraPass, DynamicInvokeResolver, CXXExtraPass, JavaExternalTypeHierarchyResolver, PythonAddDeclarationsPass, OpenQASMPass, QuantumEOGPass, QuantumDFGPass]
15:59:43,208 INFO  TranslationConfiguration$Builder The following mermaid graph represents the pass dependencies:
flowchart TD;
   QiskitPass-->QuantumEOGPass;
   OpenQASMPass-->QuantumEOGPass;
   QiskitPass-->QuantumDFGPass;
   OpenQASMPass-->QuantumDFGPass;
   PrepareSerialization-->FilenameMapper;
   CXXExtraPass-->EvaluationOrderGraphPass;
   JavaExternalTypeHierarchyResolver-->ImportResolver;
   PythonAddDeclarationsPass-->SymbolResolver;
   SymbolResolver-->QiskitPass;
   EvaluationOrderGraphPass-->QiskitPass;
   EdgeCachePass-->QiskitPass;
   EvaluationOrderGraphPass-->QuantumEOGPass;
   QuantumEOGPass-->QuantumDFGPass;
   QuantumDFGPass-->DFGConnectionPass;
   ControlFlowSensitiveDFGPass-->DFGConnectionPass;
   TypeResolver-->TypeHierarchyResolver;
   TypeHierarchyResolver-->ImportResolver;
   TypeResolver-->SymbolResolver;
   TypeHierarchyResolver-->SymbolResolver;
   EvaluationOrderGraphPass-->SymbolResolver;
   SymbolResolver-->DFGPass;
   SymbolResolver-->DynamicInvokeResolver;
   DFGPass-->DynamicInvokeResolver;
   EvaluationOrderGraphPass-->ControlFlowSensitiveDFGPass;
   DFGPass-->ControlFlowSensitiveDFGPass;
   TypeResolver-->CXXExtraPass;
   TypeHierarchyResolver-->JavaExternalTypeHierarchyResolver;
   TypeResolver-->PythonAddDeclarationsPass;
   SymbolResolver-->OpenQASMPass;

15:59:43,211 INFO  TranslationConfiguration$Builder Passes after enforcing order: [[EdgeCachePass, TypeResolver, PrepareSerialization], [TypeHierarchyResolver, CXXExtraPass, PythonAddDeclarationsPass], [EvaluationOrderGraphPass, JavaExternalTypeHierarchyResolver], [ImportResolver, SymbolResolver], [QiskitPass, DFGPass, OpenQASMPass], [QuantumEOGPass, DynamicInvokeResolver, ControlFlowSensitiveDFGPass], [QuantumDFGPass], [DFGConnectionPass], [FilenameMapper]]
15:59:43,213 INFO  TranslationConfiguration$Builder Passes before enforcing order: []
15:59:43,213 INFO  TranslationConfiguration$Builder The following mermaid graph represents the pass dependencies:
flowchart TD;

15:59:43,214 INFO  TranslationConfiguration$Builder Passes after enforcing order: []
15:59:43,223 INFO  MeasurementHolder TranslationManager: Translation into full graph
15:59:43,224 INFO  MeasurementHolder TranslationManager: Executing Language Frontend
15:59:43,233 INFO  TranslationManager Parsing /app/uploads/simple.qasm
15:59:43,297 INFO  MeasurementHolder TranslationManager: Executing Language Frontend done in 69 ms
15:59:43,298 INFO  MeasurementHolder EdgeCachePass: Executing Pass
15:59:43,314 INFO  MeasurementHolder EdgeCachePass: Executing Pass done in 15 ms
15:59:43,314 INFO  MeasurementHolder TypeResolver: Executing Pass
15:59:43,316 INFO  MeasurementHolder TypeResolver: Executing Pass done in 1 ms
15:59:43,316 INFO  MeasurementHolder PrepareSerialization: Executing Pass
15:59:43,394 INFO  MeasurementHolder PrepareSerialization: Executing Pass done in 76 ms
15:59:43,394 INFO  MeasurementHolder TypeHierarchyResolver: Executing Pass
15:59:43,398 INFO  MeasurementHolder TypeHierarchyResolver: Executing Pass done in 3 ms
15:59:43,399 INFO  MeasurementHolder CXXExtraPass: Executing Pass
15:59:43,406 INFO  MeasurementHolder CXXExtraPass: Executing Pass done in 6 ms
15:59:43,406 INFO  MeasurementHolder PythonAddDeclarationsPass: Executing Pass
15:59:43,407 INFO  MeasurementHolder PythonAddDeclarationsPass: Executing Pass done in 0 ms
15:59:43,407 INFO  MeasurementHolder EvaluationOrderGraphPass: Executing Pass
15:59:43,429 INFO  MeasurementHolder EvaluationOrderGraphPass: Executing Pass done in 21 ms
15:59:43,429 INFO  MeasurementHolder JavaExternalTypeHierarchyResolver: Executing Pass
15:59:43,431 INFO  MeasurementHolder JavaExternalTypeHierarchyResolver: Executing Pass done in 1 ms
15:59:43,431 INFO  MeasurementHolder ImportResolver: Executing Pass
15:59:43,434 INFO  MeasurementHolder ImportResolver: Executing Pass done in 2 ms
15:59:43,435 INFO  MeasurementHolder SymbolResolver: Executing Pass
15:59:43,450 INFO  MeasurementHolder SymbolResolver: Executing Pass done in 14 ms
15:59:43,450 INFO  MeasurementHolder QiskitPass: Executing Pass
15:59:43,452 INFO  MeasurementHolder QiskitPass: Executing Pass done in 1 ms
15:59:43,453 INFO  MeasurementHolder DFGPass: Executing Pass
15:59:43,458 INFO  MeasurementHolder DFGPass: Executing Pass done in 5 ms
15:59:43,459 INFO  MeasurementHolder OpenQASMPass: Executing Pass
15:59:43,462 INFO  MeasurementHolder OpenQASMPass: Executing Pass done in 3 ms
15:59:43,463 INFO  MeasurementHolder QuantumEOGPass: Executing Pass
15:59:43,465 INFO  MeasurementHolder QuantumEOGPass: Executing Pass done in 2 ms
15:59:43,465 INFO  MeasurementHolder DynamicInvokeResolver: Executing Pass
15:59:43,469 INFO  MeasurementHolder DynamicInvokeResolver: Executing Pass done in 2 ms
15:59:43,469 INFO  MeasurementHolder ControlFlowSensitiveDFGPass: Executing Pass
15:59:43,472 INFO  MeasurementHolder ControlFlowSensitiveDFGPass: Executing Pass done in 3 ms
15:59:43,472 INFO  MeasurementHolder QuantumDFGPass: Executing Pass
15:59:43,474 INFO  MeasurementHolder TranslationManager: Translation into full graph done in 249 ms
java.util.concurrent.ExecutionException: java.util.NoSuchElementException: Collection contains no element matching the predicate.
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073)
at de.fraunhofer.aisec.cpg_vis_neo4j.Application.call(Application.kt:583)
at de.fraunhofer.aisec.cpg_vis_neo4j.Application.call(Application.kt:100)
at picocli.CommandLine.executeUserObject(CommandLine.java:2041)
at picocli.CommandLine.access$1500(CommandLine.java:148)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
at picocli.CommandLine.execute(CommandLine.java:2170)
at de.fraunhofer.aisec.cpg_vis_neo4j.ApplicationKt.main(Application.kt:650)
Caused by: java.util.NoSuchElementException: Collection contains no element matching the predicate.
at de.fraunhofer.aisec.cpg.passes.quantumcpg.QuantumDFGPass.accept(QuantumDFGPass.kt:312)
at de.fraunhofer.aisec.cpg.passes.quantumcpg.QuantumDFGPass.accept(QuantumDFGPass.kt:36)
at de.fraunhofer.aisec.cpg.passes.PassKt.executePass(Pass.kt:357)
at de.fraunhofer.aisec.cpg.TranslationManager.analyzeNonAsync(TranslationManager.kt:101)
at de.fraunhofer.aisec.cpg.TranslationManager.analyze$lambda$0(TranslationManager.kt:69)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

And the build returns some failed tests 219.2 > Task :cpg-language-openqasm:test
OpenQASMFrontendTest > testPlaquette() FAILED
java.util.concurrent.ExecutionException at OpenQASMFrontendTest.kt:60
Caused by: java.util.NoSuchElementException at _Collections.kt:214
OpenQASMFrontendTest > testAdder() FAILED
java.util.concurrent.ExecutionException at OpenQASMFrontendTest.kt:46
Caused by: java.util.NoSuchElementException at QuantumDFGPass.kt:312
OpenQASMFrontendTest > testIf() FAILED
java.util.concurrent.ExecutionException at OpenQASMFrontendTest.kt:85
Caused by: java.util.NoSuchElementException at QuantumDFGPass.kt:312
OpenQASMFrontendTest > testMoreOperations() FAILED
java.util.concurrent.ExecutionException at OpenQASMFrontendTest.kt:99
Caused by: java.util.NoSuchElementException at QuantumDFGPass.kt:312

Yeah, one of my changes had some unintended effects and I just reverted it.

Hi, I tried to add the gates rx, ry, rz in a first draft in commit 846b397 for OpenQASM. Let me know if this makes sense to you. In the future, we might also support this in qiskit where I expect it to be easier since I neither have to extend the parser for new nodes nor add new nodes to the graph.


Bugcheck 0x139 with the first parameter 0x3a

Would it be possible to update the list of parameter 1 for bug check 0x139 to include 0x3a? I have encountered it in a Windows 11 VM, and not I'm not able to troubleshoot, cause of the lack of information I have.

@amirsaleh-alavi - Thanks for the input that we should add additional information on Bug Check 0x139. We use customer input like this, as well as data on how often the bug checks occur, to determine how we allocate our documentation team resources. As you may know, we provide general developer guidance in topics such as https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/blue-screen-data. Enabling driver verifier and having a debugger attached, may help provide more information on which driver is triggering this sub code.
In general, if a specific driver continues to cause this stop code, the developer of that driver will need to update their code. If you don't have the source code, you can try updating the driver, if a newer version is available.
We will use your input and other data, to determine if we can provide additional information on this stop code that is broadly applicable. Again, thanks for the input, and good luck with your issue.


Scan for npm package-lock.json when scanning a NuGet solution/project

Hi,
within Issue #25 you added a support to scan for npm package-lock-json when scanning a NuGet solution.
Unfortunately, we do not want parts of this behavior.
I can't see a switch to control this behavior. If I call 'pgscan identify' on a solution it automatically takes npm-dependencies into account, even if I say the type is "nuget". Am I missing something here? Or is it not possible to control this?
Further, all package-lock-json files are read recursively. Until now we were able to give pgscan a specific path to a specific package-lock-json. We don't want every file to be scanned. It doesn't seem to give a switch here neither?
So maybe adding a switch would be an option - which controls if all package-lock.json files should be taken into account automatically or not. Or an additional parameter to give the specific path to the package-lock.json if one wants to do it in one call but with only one specific package-lock.json file.
Let me know if I am missing something and what you think about this suggestions.

Hi @crotondo-dap,
I just release 1.4.3 that implements the fix and now will not scan NPM dependencies when the type is specified.

Hi @rhessinger,
thank you for fixing this so quickly. Regarding this:

Further, all package-lock-json files are read recursively.

We've seen that package-lock.json files from npm packages consumed by our project are also getting processed when no specific package-lock.json is specified on the command line. We think that all package-lock.json files under \node_modules should be ignored.
Do you agree or do you think these files should also be processed?

Hi @aunverdorben-dap,
That is a fair point to make.  My thought was that including the node_modules folder in the recursive search would allow us to include the child dependencies used by installed packages that were not marked as dependencies in the npm package.  But in my research and testing, I have found the package-lock.json at the root of the node_modules folder includes a subset of the data in the main package-lock.json.  So no extra information was added. Do your package-lock.json files under the node-modules folder have additional information the parent doesn't? Also, do your packages in that folder have package-lock.json outside of the root of that folder?
Looking at the hidden lock file documentation.  The information in that file should be redundant as it is only used to improve performance, but if there is manual change in the node_modules tree by something other than npm, then the lock file is ignored (and should probably be removed anyways).  I'm inclined to just exclude files from the node_modules folder as you suggest.
Thanks,
Rich

Hi @crotondo-dap,
Thanks for confirming that for me.  I'll add a new issue to remove the scanning of the node_modules, but it will be a low-priority change since most cases will not yield any different results.
Thanks,
Rich


Bump T1 dependencies

Updated: nix/t1/dependencies/_sources/generated.json
nix/t1/dependencies/_sources/generated.nix

link to bug introduced in chipsalliance/t1#863.


deprecated add-on option

zigbee2mqtt add-on version (if edge, please report commit hash): 0.17.0
Operating environment (HassOS, Virtual Machine, Device/platform running Home Assistant): Debian 10 Supervised

Description of problem:
New Supervisor (2021.2.5) prints error in Supervisor's log:
21-02-10 06:19:14 WARNING (MainThread) [supervisor.addons.validate] Add-on config 'auto_uart' is deprecated, use 'uart'. Please report this to the maintainer of Zigbee2mqtt
21-02-10 06:19:14 WARNING (MainThread) [supervisor.addons.validate] Add-on config 'auto_uart' is deprecated, use 'uart'. Please report this to the maintainer of Zigbee2mqtt Edge

Your entire configuration from the frontend (with sensitive fields redacted):
n/a

Your logs from Home Assistant
n/a

Fixed in 1.17.1-1


The difference between cvpr2021 and 2022 in fusion part

Why in the 2022 branch, the liadr and RGB image could be fused in different resolution, sorry I do not go the details of the code. Thanks in advance!

The 2D feature maps from the image and LiDAR are reshaped into 1D and fed as tokens to the transformer. The resolution of feature maps doesn't affect the fusion part. In the cvpr2021 branch, the image and LiDAR BEV had the same resolution at the input (256x256) so that led to the same resolution of feature maps at each fusion step.

Thanks for your repley, so there is no changes in transformer fusion part? only because the resolution of input of transformer has changed?

The fusion part is the same.

Sorry to bother you and thanks for your always quick reply!! I am diving into the details of your code, I have two simple questions:

why the lidar images has two channel, what do they represent?
why the seq_len is 1, why not use a long sequence data as input?

Another question:
I would like to visualize the attention map, how to do the evaluation to obtain it, thanks in advance!

If I understand correct, you only use the encoder of Transformer for fusion, why not consider decoder part (exclude the Linear and Softmax in the end)?

The 2-channel LiDAR BEV representation is a 2-bin histogram of points above and at ground level. We adopt this representation from PRECOG.
We did not observe any improvements for seq_len > 1 but I think we didn't try different possibilities. I'd suggest FIERY encoder if you want to include past observations.
You can check viz.py for visualizing attention maps.
A recent work InterFuser has used transformer decoder as well in the architecture.

Thanks for your infomration about InterFuser, so you also think that apply decoder into fusion part could improve the performance, right? Another fusion way I founf as the following, just FYI "MULTIMODAL TRANSFORMER FUSION FOR CONTINUOUS EMOTION RECOGNITION"

You can try different architectures and see how well they work.

Could you plz briefly explain what is the intuition to let you add the velocity embedding, does it improve the performance? Because I did not have this information in my fusion project, I am also considering what could be replaced as your velocity embedding. Thanks in advance!

The velocity provides information about the vehicle dynamics which can help with future motion prediction. Incorporating velocity in the architecture is a design choice and it requires trying different possibilities. I don't remember the exact ablation scores but several works (eg. CILRS, TCP, InterFuser) use velocity in different ways.

Thanks for your reply, does "single timestep input" mean the seq_len is 1 in your implementation? Is it possible to use one modality input in encoder and another modality input to the decoder in transformer?

Yes, single timestep input means seq_len=1. The usage of different modalities at different locations in the architecture is a design choice that depends on the task and implementation details.

We have observed in the 2022 paper that the velocity embedding reduces performance, we don't use it anymore. See Table 10.
Other papers have also observed the phenomenon that giving the network information about the past leads to shortcut learning and reduces performance (e.g. CILRS, Causal confusion in imitation learning, Copycat agents).
The current velocity is only provided to the PID controller in the 2022 work, that has no learned components.
For the same reason we only use sequence length 1. Naively using larger sequence lengths will reduce performance I think (we have not explicitly investigated it in these works).

@Kait0 Thanks for your reply! I cannot understand why giving the network past information leads to reducing the performance, why not help? It is a sequence to sequence problem, the pasr information is a memory intuitionly it should help the network to learn something, right? The same as larger sequence, I think the larger the easier to help network learning the something between each timestep.

You will need to read the papers if you want to gain a better understanding.
This is a phenomenon that the community has consistently observed, but I don't think it is fully understood yet.
I think the leading hypothesis right now is there are strong spurious correlations in the temporal data.
For example at a red light there is a high probability that you are going to keep still if your velocity is 0.0.
This can lead to good open loop training loss because copying the previous actions is only wrong in a few examples.
Such a policy would break down during closed loop evaluation though (e.g. a model that learned to predict the future velocity by copying the past velocity will never start to drive).

Thanks for your kind explanantion. Btw, I cannot understand the expalantion of attention maps in the paper, can you give me some more expalanation here, thanks in advance!

Each token is a 32x32 patch in the input modality and the attention layers in the transformer compute attention between these tokens. Yellow denotes the source token which we are analyzing and green denotes the 5 tokens which have the highest weights in the attention maps. We also highlight the presence of vehicles in LiDAR in red for ease of visualization (the red area is not an input or output of the attention layer).

I found I cannot use you provided pretrained model to run vis.py, could you give me more details to run viz.py for visualize attention map. Thanks in advance!!

How to define the vertical and horizontal anchors for my own data?

You can increase it but you also need to consider the compute resources you have (computation increases quadratically with the anchor size)

Thanks for your reply, does the anchors mean the size of grid feature map for patch token?

Each feature map is of size HxWxC which is reshaped into HW tokens of dimension C. Here, anchors refers to H and W.

I noticed that in ViLT(https://arxiv.org/abs/2102.03334), they have a model-type embedding to seperate the textual and image embedding, how do you seperate lidar and RGB without model-type embedding? How do you know which output of transformer fusion belongs to lidar or RGB for the next step CONV and fusion?

In our implementation, the first half of the output belongs to RGB and the later half to LiDAR. We did not try using a model-type embedding.

Thanks for your reply! In your implementation of positional embedding, you used:
self.pos_emb = nn.Parameter(torch.zeros(1, (1 + 1) * seq_len * vert_anchors * horz_anchors, n_embd))
I noticed that BERT who is the first one to use a learnable positional embeddiing instead of sin and cos function in transformer, they used nn.Embedding() to implement this learnable PE,  do you know what is the difference between nn.Parameter() and nn.Embedding()  ?

We observe that for 62.75% of the image tokens, all the top-5 attended tokens belong to the LiDAR and for 88.87%, at least one token in the top-5 attended tokens be- long to the LiDAR.
What is the meaning of image tokens belong to LiDAR?

In the cvpr2021 branch, the transformer takes in 128 tokens as input: 64 from the image feature map and 64 from the LiDAR feature map. The output also has 128 tokens and in our implementation, the first half of the output belongs to RGB and the later half to LiDAR. This is by design.

I see. The diemension of atten_map in cvpr2021 baranch is 244128128, in the paper you said top-5 attention weights in 24 tokens, how to understand the top-5 among these 24 atten_maps (4128*128)?

Its top-5 attention weights for each of the 24 tokens.

Where can I obtain the weight of each attention token?

I see. The diemension of atten_map in cvpr2021 baranch is 24_4_128_128, in the paper you said top-5 attention weights in 24 tokens, how to understand the top-5 among these 24 atten_maps (4_128*128)?

@ap229997 Sorry for stupid question always. I would like to confirm my understanding about visualization of attention maps. One token among all (64 + 64) 128 tokens generates the attention vector which size is 1*128, and if the highest value in the former 64 values, it is belong to Image, otherewise belongs to LiDAR. Am I correct?

I see. The diemension of atten_map in cvpr2021 baranch is 24_4_128_128, in the paper you said top-5 attention weights in 24 tokens, how to understand the top-5 among these 24 atten_maps (4_128*128)?

@ap229997 Sorry for stupid question always. I would like to confirm my understanding about visualization of attention maps. One token among all (64 + 64) 128 tokens generates the attention vector which size is 1*128, and if the highest value in the former 64 values, it is belong to Image, otherewise belongs to LiDAR. Am I correct?

Yes.

If I am correct, the 128*128 should be a attention matrix including all input tokens' attention?

Yes, '4' corresponds to the 4 attention heads in our architecture and the first dimension is the batch size.


After using the 5172e4d fix, there is still a vulnerability to disable public memos

Describe the bug
Although after the fix, when the disable public memo switch is turned on, there is an error prompt when creating a public memo, but after creating a private memo first, it can then be modified to a public memo. The disable switch does not prevent further.
Steps to reproduce

Turn on the disable public memo switch
Create a personal or team memo
Modify private or team memos to public memos.

The version of Memos you're using
Version: v0.18.2
Screenshots or additional context
No response

you can review pr #2816 and see if it is suitable for you and us.


blog post about Africa Internet Summit 2019

A good idea. In the fullness of time.

@pboothe or @georgiamoon If you have notes on this event and would like me to draft a blog post, please let me know.

My thoughts would just an overview of what we did there, so the
workshop outline, and links to the slides. There are some photos that I can
find a link to as well.
Slides should be in the drive!
On Tue, Feb 4, 2020 at 2:40 PM critzo<EMAIL_ADDRESS>wrote:

@pboothe https://github.com/pboothe or @georgiamoon
https://github.com/georgiamoon If you have notes on this event and
would like me to draft a blog post, please let me know.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/m-lab/website/issues/494?email_source=notifications&email_token=AHDGT52L6JLFRP7X2IXSCALRBHAC5A5CNFSM4H5I4LP2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKY5PGI#issuecomment-582080409,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHDGT5ZVISYOEIUSMKZ2IDTRBHAC5ANCNFSM4H5I4LPQ
.

--
Georgia Bullen
M-Lab Advisory Committee Chair


[BUG] Example configurations needed in notebooks.

Describe the bug
Quickstart.ipynb:

file_directory: a local directory of text files. The file structure should be flat,
with no nested directories. (i.e. file_directory/file1.txt, file_directory/file2.txt, etc.)
storage_name:   a unique name to identify a blob storage container in Azure where files
from file_directory will be uploaded.
index_name:     a unique name to identify a single graphrag knowledge graph index.
Note: Multiple indexes may be created from the same storage_name blob storage container.
endpoint:       the base/endpoint URL for the GraphRAG API (this is the Gateway URL found in the APIM resource).

Please provide example values for each variable. For example ' a unique name to identify a blob storage container in Azure ' is misleading - container endpoint URL does not seems to be correct here.

related to #127


virtual method of a class cannot be used in other class' method on gpu hip

This is demonstrated in DGNonLinearForm::evalFaceFlux_gpu() as a minimal example on the branch gpu_dryair_transport.
  // get state and gradient
  for (int eq = 0; eq < num_equation; eq++) {
    u1[eq] = d_uk_el1[eq + k * num_equation + iface * maxIntPoints * num_equation];
    u2[eq] = d_uk_el2[eq + k * num_equation + iface * maxIntPoints * num_equation];
  }

  // evaluate flux
  // d_rsolver->Eval_LF(u1, u2, nor, Rflux);

  // For some unknown reason, the hip build is very sensitive to
  // how Eval_LF is called.  If we copy the state to u1, u2 and
  // normal to nor and then call as above (which behaves correctly
  // for CUDA), the resulting flux is nonsense.  But, if we just
  // point into d_uk_el1 at the right spots, all is well.  This
  // problem seems to have something to do with virtual functions
  // and pointer arguments, but I don't understand it.  However,
  // this approach is working.
  d_rsolver->Eval_LF(d_uk_el1 + k * num_equation + iface * maxIntPoints * num_equation,
                     d_uk_el2 + k * num_equation + iface * maxIntPoints * num_equation,
                     d_shapeWnor1 + offsetShape1 + maxDofs + 1 + k * (maxDofs + 1 + dim),
                     Rflux);

A known problem in this approach is that it is not applicable to other places where data array indexing order is different.
While this is working at least for d_rsolver->Eval_LF, following the same approach for d_flux->ComputeViscousFluxes does not work (see line 371 in src/dgNonlinearForm.cpp). Through a small test on the branch issue145, it turns out that the problem is the calling of other objects' virtual methods, such as mixture->computeSpeciesEnthalpies or transport->ComputeFluxTransportProperties within d_flux->ComputeViscousFluxes.

When all these methods are hard-coded within the function, d_flux->ComputeViscousFluxes works.

If these virtual methods are changed to non-virtual, they work properly on gpu hip. On the branch issue145 (see line 95 of src/equation_of_state.cpp), GasMixture::computeSpeciesEnthalpies is defined as non-virtual, which can pass cyl3d.gpu.test. (For demonstration purpose, I hard-coded transport->ComputeFluxTransportProperties within d_flux->ComputeViscousFluxes, on line 283 of src/fluxs.cpp. So other tests will fail except cyl3d.gpu.test.)

Defining these methods to be const did not make a difference.

Both computeSpeciesEnthalpies and ComputeFluxTransportProperties are defined to be MFEM_HOST_DEVICE.

For an unknown reason, mixture->ComputePressure works even within other objects' method. Since this is defined inline, I also tried inline for other methods, but it didn't work.

Just as const RiemannSolver *d_rsolver = rsolver_;, I attempted to define a pointer GasMixture *d_mix = mixture; within ComputeViscousFluxes routine, although this did not work. Perhaps the pointer must be defined outside MFEM_FORALL loop, but this is not attempted yet.

It seems that the last point is the fundamental reason for the failure. @trevilo , why should these objects be defined outside MFEM_FORALL loop? Do you think there would be any workaround for this?

On the branch issue145, GasMixture object pointer is created outside the MFEM_FORALL loop, and taken as an input argument of ComputeViscousFluxes. In this branch, TransportProperties::ComputeFluxTransportProperties is hard-coded within ComputeViscousFluxes.
This returns a memory access fault on gpu hip path:
------------------------------------
  _______ _____   _____
 |__   __|  __ \ / ____|
    | |  | |__) | (___
    | |  |  ___/ \___ \
    | |  | |     ____) |
    |_|  |_|    |_____/

TPS Version:  1.1 (dev)
Git Version:  e798d61
MFEM Version: MFEM v4.3 (release)
------------------------------------

Options used:
   --no-version
   --runFile inputs/input.dtconst.cyl.ini
   --no-debug

Caching input file -> inputs/input.dtconst.cyl.ini

---------------------------------
MFEM Device configuration:
Device configuration: hip,cpu
Memory configuration: host-std,hip
---------------------------------

TPS is using non-GPU-aware MPI.
Fluid is set to the preset 'dry_air'. Input options in [plasma_models] will not be used.
number of elements on rank 0 = 6153
min elements/partition       = 6153
max elements/partition       = 6153
restart: 0
Initial time-step: 2.53434e-06s

[INLET]: Patch number                      = 1
[INLET]: Total Surface Area                = 9.78349e-03
[INLET]: # of boundary faces               = 133
[INLET]: # of participating MPI partitions = 1

[OUTLET]: Patch number                      = 2
[OUTLET]: Total Surface Area                = 0.00978
[OUTLET]: # of boundary faces               = 131
[OUTLET]: # of participating MPI partitions = 1
Iteration = 0: wall clock time/iter = 0.000 (secs)
Memory access fault by GPU node-1 (Agent handle: 0x1c6afc0) on address 0x1d9d000. Reason: Page not present or supervisor privilege.

It seems that there are similar issues (https://github.com/ROCmSoftwarePlatform/tensorflow-upstream/issues/302) with gfx803 architecture.

This issue appears to be hardware specific.  We were seeing the problems on our gfx803 card, but recent testing on a gfx90a (after unifying the _CUDA_ and _HIP_ paths in #192) doesn't show any problems.  Since gfx803 is an old card that isn't fully supported anymore, I don't think we should worry about this unless we start seeing issues on newer hardware.


docs(restoreAllMocks): available in Jest 21.1.0+

Summary

The restoreAllMocks function was added in v20.1.0 but exposed in v21.1.0, i.e. people will get jest.restoreAllMocks is not a function error before v21.1.0, the actual available version should be v21.1.0+.
CHANGLOG v21.1.0: Expose restoreAllMocks to object (#4463)
Test plan
docs only

Codecov Report

Merging #4522 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #4522   +/-   ##
=======================================
  Coverage   56.82%   56.82%
=======================================
  Files         186      186
  Lines        6304     6304
  Branches        3        3
=======================================
  Hits         3582     3582
  Misses       2721     2721
  Partials        1        1

Continue to review full report at Codecov.

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

Thanks!


Cannot find module

I followed your README. I have a very simple function function1 (created via serverless tutorial). I ran mocha-create and mocha-run commands under serverless project root.
Creation worked OK:
$ sls function mocha-create function1
serverless-mocha-plugin: created test\function1.js

However mocha-run returned this error:
$ sls function mocha-run function1
Unhandled rejection Error: Cannot find module '../functions♀unction1/handler.js'

note: the module has this funny ♀ character in stead of /f.

The issue was path.relative returns relative path in native form, under windows it uses non-posix path separator \.  Injecting replace at index.js at line  242 like this fixed the issue:
let funcPath = path.relative(projectPath, funcFullPath).replace(/\\/g, "/");

I could fix this with a pull request but never done it, if you show me I can happily contribute and fix it via pull request..

Hi @ecoruh, I think there is already PR open to fix this issue: https://github.com/SC5/serverless-mocha-plugin/pull/12.

Ah ok thanks.

Similar error, but it looks like the reasons for mine are different, since the fix didn't work and I don't have the weird character replacement.
Unhandled rejection Error: Cannot find module 'dynamodb-doc'

Thanks for the feedback, that has now been fixed, I'm about to release a new package version once I have all of the PRs merged.


Bad representation binary keys

Binary keys printed like
db=3 ���YƠ�D�F
��[0] -> {eAB2J1IxJRAUZRkfHRAZEBwXGx8CCw==, score=0.000002}
And it is very hard to parse output. It will be better it will be shown as encoded binary data.

Yup, I did not yet decide how to properly present them.

I think it's not a problem to present such keys as byte escape format like "\xfff" or encode it to base64.


KCORE-403: Refactor Raft StateMachine API

This PR addresses some of the suggested improvements from KCORE-403, including:

Rename DistributedStateMachine to ReplicatedStateMachine
Make StateMachine interface extends AutoClosable
Remove accept API
Get a separate RecordAppender interface which is only available when becomeLeader is triggered, to clearly indicate only leader has the authority to append records

I haven't implemented the part for delaying stateMachine.becomeLeader after the HW propagating to the current quorum epoch, which seems needing more discussion to clarify.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

I guess the key question we need to think about here is whether or not we want ReplicatedStateMachine to follow primary copy semantics. I think we have been assuming this model in most of the KIP-500 documentation without coming out and saying so directly. Specifically, we have assumed that all writes get sent to the controller (which is the leader of the quorum) and it decides whether or not to append the entry. For example, AlterIsr is a suggestion which the controller might refuse. It is not an operation on the log itself which gets blindly replicated. As I understand it, the model works like this:

The leader maintains the materialized state.
Writes are forwarded to the leader and it decides whether or not to append the entries to the log.
If an entry is appended to the log, the leader updates a separate data structure with uncommitted state. New writes must take into account the uncommitted state, but it is not visible until it become committed.
Once the entry is committed, the update is reflected in the materialized state.
If the leader gets demoted, it has to drop uncommitted state.

The advantage of this approach is that it allows for more complex processing by the controller. However, the downside is the uncommitted state bookkeeping.
For the sake of argument, let's consider the more traditional replicated state machine model. In this case, the leader of the quorum has no special purpose beyond coordinating replication. There would be no "controller" as we know it today. Any node with a view of the log can send entries to the leader to be written to the log. The leader does not do any fancy validation and just appends the entry. Whether or not the entry affects the state machine then only depends on semantics of the state machine.
For example, let's take a case of a replica shrinking the ISR. With the primary copy model, the request gets sent to the controller as an AlterIsr request. If we had already kicked the replica out of the ISR because of a timeout, then we could consider the AlterIsr a no-op and respond successfully without appending anything to the log. Or if the node sending the AlterIsr was no longer the leader, the controller could reject the request.
With the replicated state machine model, the leader would send the AlterIsr log entry directly to the leader of the quorum and it would be appended to the log. Once it gets committed, then each node would have to decide independently whether or not the intended operation succeeded. For example, if the previously appended entry for that partition had a larger epoch, then the new entry would have to be ignored by the state machine.
The benefit of the replicated state machine is that it avoids the need to keep track of the uncommitted state. New log entries are applied to the state machine as soon as they become committed and entries which would cause invalid state transitions are simply ignored. Here are a few downsides though:

The lack of a centralized leader can cause clients to write conflicting entries. This does not cause state machine violations, but could lead to unnecessary log noise.
Log compaction is more complicated because it must account for state machine semantics.
Not as sure about this, but application-specific semantics seem easier to implement in the primary copy model. For example, the state machine does not have to be restricted by backwards compatible state change rules or by deterministic operations.

The pure replicated state machine model is tempting to consider because it avoids some of the issues with the centralization of the controller. However, in some sense, it undercuts one of the main benefits of KIP-500, which is our ability to write custom logic in the consensus layer. I think we'd be limited to much more abstract operations in this model, such as CAS updates. We'd almost be treating the log as an external store, so the only advantage over Zookeeper would be that we actually get access to the log. Although it is tempting, I think we should probably stick with the primary copy model, but I'm interested to hear other thoughts.

I personally think having the consistent view is a more understandable model, and having the leader set a fencing point for non-valid entries also save the unnecessary load transfer. On the other hand, I felt that the accept call is still positioned in a weird spot, as we should be able to filter out invalid high level requests, and only append valid records IMHO.
Without a high level state machine implementation, it becomes harder to make sense out of the current refactoring. Should we start prototyping the controller state machine sooner to understand the problem? What if we just apply AlterConfig results to build a ReplicatedStateMachine extension that leverage raft quorum to build a consistent view? A good API prototyping could help us make more concrete decision in early stage.


Support for dynamicWidgets

Description
TS adapter does not support dynamic widgets which are supposed to reduce network traffic.
Steps to reproduce
Example from
https://www.algolia.com/doc/api-reference/widgets/dynamic-facets/js/
Produces the following error:
TypesenseInstantsearchAdapter.js:41
Error: 404 - Could not find a facet field named * in the schema.
at TypesenseInstantsearchAdapter1._validateTypesenseResult (TypesenseInstantsearchAdapter.js:81:13)
at TypesenseInstantsearchAdapter.js:28:14
at Array.map ()
at TypesenseInstantsearchAdapter1._callee$ (TypesenseInstantsearchAdapter.js:27:58)
at tryCatch (runtime.js:63:40)
at Generator.invoke [as _invoke] (runtime.js:294:22)
at Generator.next (runtime.js:119:21)
at asyncGeneratorStep (asyncToGenerator.js:3:24)
at _next (asyncToGenerator.js:25:9)

We need to add support for this on the Typesense Server side first: #612

I see that instead of the "*" error, it shows the error 'Field name is not marked as a guy in the schema.'
I using const data = useDynamicWidgets({      guys: ['*']    }) in docker version 0.25.0.rc9
It's not finished, do I need to do something else to make it work?
I'm using react-instantsearch-hooks-web

This is now available. Here's how to use it: https://github.com/typesense/typesense-instantsearch-adapter/issues/150#issuecomment-1441201147


Disabling notifications does not work

Expected behavior
Disable notifications checked in settings so notifications should be disabled during Quiet Time
Actual behavior
Quiet Time set to an inclusive period like 02:00-01:59 (expected 23 hours 59 minutes of quiet time) does not disable notifications during this period
Steps to reproduce

Set Quiet Time between 02:00-01:59

Environment
K-9 Mail version: 5.203
Android version: 6.0.1

I doubt we support wrapped time periods. We should probably look at that.
But if you just want to disable them all, Android has ways to do that.

That's a non-feature anyway, since it can be accomplished through Android settings instead.
 I know I can disable it completely using Android but I gave an extreme example in place of a quiet time of 02:00-00:00 for example.

Renamed issue to address what we should actually try and fix here.


Fedora 26 uses the same package_name as Fedora 25

Fedora 26 is almost upon us (it's available today as an alpha release), and it uses the same package name as Fedora 25.

Would it be worth changing the match to be any Fedora version about a certain value, or is the history a good indicator that the value for 27 will change yet again?

I agree with changing the default. That seems sensible.
It will fail anyway, if the package name changes.

It's technically legal to install a package named /usr/sbin/semange, which dnf will resolve to whatever package provides that, and I think puppet's package provider will do the right thing with it, but that's not exactly a common practice (and likely to surprise users of the module). ;)
I've updated the diff to make 24+ the new default, and removed the explicit failure.

Thanks!


[WIP] Add initial theme option to the app config

Firstly, thanks for an awesome addon.
Related to #10
I'm not quite sure what options you want to expose in the
application config for flash message, so I've currently just
exposed a flashTheme config option. This is what the alertType
will use to infer the class prefix. One can still explicitly
set the messageType in the component declaratively, I've added
a test to verify that as well.
Is this along the lines of what you were thinking? What else
would you like to see here?

Hi John,
Thanks for being the first contributor! :)
I guess I probably should have wrote a better description and title for the issue. Basically I had planned to include a few themes (different CSS files) that you could import into your app. That said though, I do want to move all the default options in the service to an object in config/environment.js (or perhaps write our own option loader, I'm not sure yet), so this is a step in the right direction!

Yay! : )
Ah, I see. When I get a chance tomorrow (or perhaps this evening) I will amend this PR to use a config object for the service defaults since that seems to be the way I'm heading with this right now. This should then resolve #6 instead of #10. I definitely misinterpreted your issue a bit, but if it can still be helpful, I'm glad!

That'd be great, thanks! :)

Going to go ahead and close this to open a new PR targeted for #6, and #9.

:+1:


Please add a tag for the latest release

Hello, package maintainer for Arch Linux here.
I'm just wondering if the maintainers of this fine project would be able to add a git tag for the latest release (2.0.12)?

Done.

Thank you very much! :)

You're welcome. We recently improved our test and release automation, but
it seems we forgot that step.
On Mon, Oct 10, 2022, 4:59 PM George Rawlinson @.***>
wrote:

Thank you very much! :)
—
Reply to this email directly, view it on GitHub
https://github.com/google/atheris/issues/45#issuecomment-1273814123, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABKWZFL5U45EHLELCTAOX33WCR7RTANCNFSM6AAAAAARAOCWI4
.
You are receiving this because you modified the open/close state.Message
ID: @.***>


[Nitpick] Rough transitions between random background videos

Give an example of what is wrong
When cycling through random background videos, the transition can be a bit jarring / distracting.  I've attached two examples when this happens below (the 2nd and 5th pictures are the transition frames, which are problematic).

Given an example of what it should look like
It should be a smooth transition from one video to the next (this is the behavior I see in Stepmania 5.1 branch on the same computer).
System info:

Linux mint 20 x64 MATE
Intel i5-6600T
Intel HD Graphics 530
Kingston 500GB NVME
16GB DDR4 Ram

This is due to the newer FFMPEG driver, and the way the frames are cached. We'll look into this, thanks for reporting

We have a fix in testing, that will be out in the next release, sorry for it taking so long!


Filewatcher not updating on copied files or changed files

Have noticed today that copied files and changed files are no longer being picked up by the synctrayzor filewatcher when they occur,
If I then create a new file after copying or adding content to a file, the watcher kicks in and all the changed / copied / new files sync
The synctrayzor.log runs this while the files are being copied or edited
2016-04-26 14:18:44.2450 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 1 events
2016-04-26 14:18:44.2606 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <GenericEvent ID=310 Type=Ping Time=26/04/2016 14:18:44 Data=null>
2016-04-26 14:19:44.2568 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 1 events
2016-04-26 14:19:44.2724 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <GenericEvent ID=311 Type=Ping Time=26/04/2016 14:19:44 Data=null>
2016-04-26 14:20:44.2711 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 1 events
2016-04-26 14:20:44.2868 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <GenericEvent ID=312 Type=Ping Time=26/04/2016 14:20:44 Data=null>

and when I create the new file this happens
2016-04-26 14:21:10.5979 #1588 [Info] SyncTrayzor.Services.DirectoryWatcher: Path Changed: c:\localdocs\username\New Text Document.txt
2016-04-26 14:21:10.5979 #1588 [Debug] SyncTrayzor.Syncthing.ApiClient.SyncthingApiClient: Scanning folder: username subPath: New Text Document.txt
2016-04-26 14:21:10.6291 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 1 events
2016-04-26 14:21:10.6316 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <StateChangedEvent ID=313 Time=26/04/2016 14:21:10 Folder=username From=idle To=scanning Duration=00:02:47.1550000>
2016-04-26 14:21:11.8742 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 1 events
2016-04-26 14:21:11.9054 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <LocalIndexUpdated ID=314 Time=26/04/2016 14:21:11 Folder=username Items=2 Version=10128>
2016-04-26 14:21:12.4202 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 1 events
2016-04-26 14:21:12.4202 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <RemoteIndexUpdatedEvent ID=315 Time=26/04/2016 14:21:12 Device=<DEVICEID> Folder=username Items=2>
2016-04-26 14:21:12.5918 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 1 events
2016-04-26 14:21:12.5918 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <FolderSummary ID=316 Time=26/04/2016 14:21:12 Folder=username Summary=<FolderStatus GlobalBytes=4030809690 GlobalDeleted=1548 GlobalFiles=7356 LocalBytes=4030780634 LocalDeleted=1321 LocalFiles=7356 InSyncBytes=4030809690 InSyncFiles=7356 NeedBytes=0 NeedFiles=0 IgnorePattners=False, Invalid= State=scanning StateChanged=26/04/2016 14:21:10 Version=1296261>>
2016-04-26 14:21:12.5918 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 1 events
2016-04-26 14:21:12.6074 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <GenericEvent ID=317 Type=FolderCompletion Time=26/04/2016 14:21:12 Data={"completion":100,"device":"<DEVICEID>","folder":"username"}>
2016-04-26 14:21:12.8727 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 1 events
2016-04-26 14:21:12.8727 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <StateChangedEvent ID=318 Time=26/04/2016 14:21:12 Folder=username From=scanning To=idle Duration=00:00:02.2590000>
2016-04-26 14:21:12.8883 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 1 events
2016-04-26 14:21:12.8883 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <StateChangedEvent ID=319 Time=26/04/2016 14:21:12 Folder=username From=idle To=syncing Duration=00:00:00>
2016-04-26 14:21:12.9688 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 1 events
2016-04-26 14:21:12.9688 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <StateChangedEvent ID=320 Time=26/04/2016 14:21:12 Folder=username From=syncing To=idle Duration=00:00:00.0940000>
2016-04-26 14:21:12.9913 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 1 events
2016-04-26 14:21:12.9913 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <FolderSummary ID=321 Time=26/04/2016 14:21:12 Folder=username Summary=<FolderStatus GlobalBytes=4030809690 GlobalDeleted=1548 GlobalFiles=7356 LocalBytes=4030780634 LocalDeleted=1321 LocalFiles=7356 InSyncBytes=4030809690 InSyncFiles=7356 NeedBytes=0 NeedFiles=0 IgnorePattners=False, Invalid= State=idle StateChanged=26/04/2016 14:21:12 Version=1296261>>
2016-04-26 14:21:12.9913 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 1 events
2016-04-26 14:21:12.9913 #1588 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <GenericEvent ID=322 Type=FolderCompletion Time=26/04/2016 14:21:13 Data={"completion":100,"device":"<DEVICEID>","folder":"username"}>

running SyncTrazor version <IP_ADDRESS>9 and syncthing v0.12.22, I tried going back to v0.12.21 as that was a recent change, but it has the same  issue
I'm quite confused as I'm 100% sure this was working when testing SyncTrayzor and for the first dozen users rolled out, but now I'm seeing it when trying to copy or edit files on any device.
If I run Rescan on a device with changed or copied files, it picks them up and syncs them to the other device

Hrm, can't reproduce.
Didn't you change some details of how users' network shared were mapped? Could that be the cause?

Yep that was me!
I don't think it is the drive mapping, I've tried making changes to the real location instead of the subst drive letter and it doesn't pick up the changes there either,
As I said I'm really confused by this as I'm sure it was working the only change I've made to the configuration is to change the folder path from the subst drive to the real path on the client end,
The server hasn't had any configuration changes and is exhibiting the same issue!

Narrowed down a bit further - its not the creating a new file that the file system watcher picks up and starts the sync, its the rename function.
So it looks like only renaming a file is currently working on our system for the file system watcher!

Had a thought as well - the laptops I have to test at the moment have been recently reinstalled and will be ~3 months out of date for windows updates, which then apply at their leisure via SCCM.
Its possible that there is something in a .net framework update that could be related so I'm going to force all updates and see what happens!

I've created a version with some more logging here: https://ci.appveyor.com/project/canton7/synctrayzor/build/<IP_ADDRESS>9/artifacts (it will be built in about 15 mins).
Probably not a good idea to run it everywhere - it won't support long paths - but it would be interesting to see if it prints anything on a test machine.

No problem - I can run it on one test machine I have here and try the windows updates on the 2nd,
Thanks!

Had a thought as well - the laptops I have to test at the moment have been recently reinstalled and will be ~3 months out of date for windows updates, which then apply at their leisure via SCCM.

That doesn't match...

The server hasn't had any configuration changes and is exhibiting the same issue!

`Had a thought as well - the laptops I have to test at the moment have been recently reinstalled and will be ~3 months out of date for windows updates, which then apply at their leisure via SCCM.
That doesn't match...
The server hasn't had any configuration changes and is exhibiting the same issue!`
Your right. I was just trying to think of any differences between my test machines and somehow forgot the server was doing the same, sorry!

 Very Sorry!

Here are the logs from the debug  build:
2016-04-26 16:23:26.8687 #2504 [Debug] SyncTrayzor.Syncthing.SyncthingProcessRunner: [2DSOS] 2016/04/26 16:23:26.868755 upnpservice.go:58: INFO: No UPnP device detected
2016-04-26 16:23:41.6481 #2504 [Debug] SyncTrayzor.Services.FileWatcher: OnCreated. ChangeType=Created FullPath=c:\localdocs\usernamep\New Text Document.txt Name=New Text Document.txt
2016-04-26 16:23:53.9420 #2504 [Debug] SyncTrayzor.Services.FileWatcher: OnRenamed.  StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  Access-Control-Allow-Origin: *
  Pragma: no-cache
  X-Syncthing-Id: 2DSOSWW-5TFAR3H-TKFXB3C-EQA4TKG-AON7Y47-KDZO5VA-KR3U7QT-JFPCNAL
  X-Syncthing-Version: v0.12.22
  Cache-Control: no-store, no-cache, max-age=0
  Date: Tue, 26 Apr 2016 15:23:58 GMT
  Content-Length: 0
  Content-Type: text/plain; charset=utf-8
  Expires: Tue, 26 Apr 2016 15:23:56 GMT
}.  ChangeType=Created FullPath=c:\localdocs\usernamep\Zoe ROBB - Copy.docx Name=Zoe ROBB - Copy.docx
2016-04-26 16:25:16.8553 #2504 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 1 events
2016-04-26 16:25:16.8709 #2504 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <GenericEvent ID=40 Type=Ping Time=26/04/2016 16:25:16 Data=null>

I can see OnCreated events firing but nothing happening with them?  The OnRenamed event seems to fire the syncthing.apiclient routine?

Let's see...
There's an amount of dead time between receiving the notification and telling Syncthing about it: during this period, we'll take potentially many notifications and reduce them to a single (parent) path. This is to avoid spamming Syncthing if there are many notifications in quick succession.
So it actually looks like it's ignoring the OnRenamed notification

Here's another build with loads more logging: https://ci.appveyor.com/project/canton7/synctrayzor/build/<IP_ADDRESS>0/artifacts

Right! I'm leaving work in ~15 mins, if it builds and is available I'll try and test is quickly to get the logs over to you!
Thanks again!  My colleagues are commenting about how well you are supporting the app, better than any of our software support contacts! :)

Thanks :smile:

got it!
case sensitivity issue!
2016-04-26 16:56:12.3229 #3232 [Debug] SyncTrayzor.Services.FileWatcher: OnCreated. ChangeType=Created FullPath=c:\localdocs\mulveep\New Text Document.txt Name=New Text Document.txt
2016-04-26 16:56:12.3249 #3232 [Debug] SyncTrayzor.Services.FileWatcher: RecordPathChange: path=c:\localdocs\mulveep\New Text Document.txt pathExists=True
2016-04-26 16:56:12.3400 #3232 [Debug] SyncTrayzor.Services.FileWatcher: RecordPathChanged: long path name = c:\localdocs\MULVEEP\New Text Document.txt
2016-04-26 16:56:12.3400 #3232 [Warn] SyncTrayzor.Services.FileWatcher: Ignoring path c:\localdocs\MULVEEP\New Text Document.txt as it does not start with c:\localdocs\mulveep\

Bleh.

This should fix it: https://ci.appveyor.com/project/canton7/synctrayzor/build/<IP_ADDRESS>1. Please let me know if it doesn't (not today, of course), and I'll include it in the next release if not.

No problem!
Looks like we did hit the issue when I changed from the subst drive (N:) to c:\localdocs\username after all, so I was right that it was working when testing previously! :)
Will test first thing tomorrow,
Thanks for looking into it so quickly!!

One question - does build 341 contain the extra debugging which will cause long paths to fail? or has that been removed and if it does fix I can use as a general build?

No, it doesn't.
One question: what's the actual casing of usernamep? I.e. if you view the folders in c:\localdocs\, does it show usernamep or USERNAMEP?

The folder is c:\LocalDocs\MULVEEP and the path in syncthing config.xml is c:\localdocs\mulveep
I'm not actually sure why the username is in all caps, it uses %username% in the subst command to create the folder, though that is in lowercase if I echo %username% in the command prompt and the actual user in AD is in CamelCase!  It might be some quirk of the user management software we use to deliver the drive mappings and other settings (RES Workspace)
The LocalDocs to localdocs is changes in my coding practice - powershell I wrote 2 years ago to create the folder and permissions I would use CamelCase, to powershell I wrote a few weeks ago to configure syncthing as I keep everything lowercase now.

quick test and seems to be working! creating files, adding content to files and copying files are now all being picked  up by the filewatcher and being synced in realtime again!
So looks good!
Thank you very much! :)

Great, that explains it, thanks. We established a watcher at c:\localdocs\mulveep because that's the path that Syncthing gave us, so we got change notifications for paths beginning with c:\localdocs\mulveep. However, when we can (i.e. when we know a path still exists and hasn't been deleted) we try and expand short paths (PROGRA~1, etc), and this had the side-effect of restoring the path to its proper case (c:\LocalDocs\MULVEEP). This then got caught in case-sensitivity fun, as you discovered. It also explains why some change notifications were unaffected.

This might not be related, but we are seeing this popping up in the logs quite regularly,
[X7RFW] 11:04:55 INFO: Puller (folder "username", file "My Settings\\links\\Downloads.lnk"): pull: peers who had this file went away, or the file has changed while syncing. will retry later
[X7RFW] 11:04:55 INFO: Puller: final: peers who had this file went away, or the file has changed while syncing. will retry later
[X7RFW] 11:04:55 INFO: Folder "username" isn't making progress. Pausing puller for 1m0s.

so far its been for unimportant files like shortcuts or desktop.ini (which we've now excluded from syncing) but I wanted to mention it as it seems like the index is not up to date as to fix it we run a rescan on the other connected node and the number of files increases and the error goes away from the remote node,
I have both nodes running <IP_ADDRESS>1 with the case fix included, these are new shared folders created after updating synctrayzor
I was going to put this as a new issue, but I have a slight feeling that maybe somehow these changes are not getting sent to syncthing to update its index.  I've left one broken, we have syncthing configured to rescan once per hour so I'm going to check to see if that fixes it when it rescans on its own,
Sorry!

That's weird - if a device is trying to pull the file, then Syncthing has already scanned and advertised it, so it can't be related to us not telling Syncthing about it.
My suspicion would be that Syncthing will hit the same issue even with filesystem notifications turned off.

These files are being changed as there is an active session on both sides of the sync,
Wouldn't Syncthing tell me its working as intended? As the sync is working after a rescan on a node, which is their normal behaviour without a file watcher?
It could be an artifact of the inital sync, while its downloading ~5gb the files have changed before it gets to them? But shouldn't that be picked up by the file watcher to tell syncthing to update its index?  Somehow the index is out of date?

If they're being constantly changed, then this is expected behaviour from Syncthing: by the time the pulling side gets around to requesting the file, it's changed.
I'm not sure whether Syncthing will listen for updates to the index while downloading files from it - I rather suspect it won't.

I'm not sure whether Syncthing will listen for updates to the index while downloading files from it - I rather suspect it won't.

That's what I was wondering about, it was my suspicion too based on the behaviour observed that the file watcher was telling Syncthing that a change had happened, but it was busy - as the button for rescan is disabled when in the Out-of-sync status, so I thought perhaps it couldn't accept an api request for a rescan while in that status either?
Do you get a meaningful response from the api when requesting a rescan on a file / folder, actually telling you its going to do it, or can't at that time? Or just a successfully sent api request but no status?

Or just a successfully sent api request but no status?

This

There's been a lot of work recently on partial indexes, so a change to this behaviour may already be in the pipeline.

Or just a successfully sent api request but no status?
This
Thought this was the most likely case!

There's been a lot of work recently on partial indexes, so a change to this behaviour may already be in the pipeline.
Ah yes, there's big changes in 0.13, not really in a place for me to use live yet but I'll check that when its out of beta,

If there is no status reported back from syncthing then there's nothing to work with if it ignores api calls from the file watcher and it will just have to find any missing changes during the hourly rescan (2m+ files 2.5TB in 250+ folders on the server, so frequent scanning causes pretty big io bottlenecks!).  I can't imagine its actually going to happen very often in day to day operation on real files, just during the first time sync,
Thanks again!

Nothing has changed in terms of scanning. I think scanning requests should block while there is one already running.

So we'll probably have the same issue in 0.13 - is it worth putting in a feature request to Syncthing to report a status when the api rescan request is blocked?  Filewatcher implementations could then queue changes to post to the api?
Unfortunately my go knowledge is next to non-existent so contributing it myself would be extremely hard :(

I'm still not clear on what exactly is going on here - are you sending a rescan request to a Syncthing instance which is downloading, or one which idle but has another device downloading from it?

Sorry if I'm not being clear enough!
We have 2 nodes with 1 folder shared between them running synctrayzor
The node on our server is set up first and contains the users personal files and documents, and is fully indexed by syncthing
We then log into the users laptop and start synctrayzor which begins to download the folder from the server node,
Once the laptop has completed the sync we then get the error about peers going away until a rescan is performed on the server node,
Does that make sense?

Right, so while the server is idle and the client is downloading, a file changes on the server. This change is not picked up on the server (until you rescan). Correct?

Almost - The user is logged with a drive mapped to the files on the server, while the client is downloading, which is why files change on the server while the client is downloading, but the index is up to date before we start the client and Syncthing is not scanning

Wait, you didn't mention that before - that's new.
What exactly is going? So there's a folder on the server, which is added to Syncthing as a folder. When a user logs in on a different machine, that folder gets mapped as a network drive, but the user also has Syncthing set up, and has that network drive added as a folder within Syncthing?

OK, so we have a server that contains user home drives -
these are mapped to a drive when the user logs into a network computer
when logging into their personal laptop that drive is instead mapped to a local folder
SyncTrayzor is running on the server and has the home drive folder which is local to the server added to Syncthing's config
SyncTrayzor is also running on the personal laptop and syncs the folder from the server node to the local folder used in the remapping above
Syncthing is working in a normal fashion as its syncing a real folder on a device to a real folder on a device, there are no network folders configured in syncthing,
It should be the same as using syncthing on a NAS with a drive mapped to a PC while also running syncthing on a laptop, which is why I didn't really go over the setup in detail, sorry again!

Right, thanks for clearing that up.
So my general description before was correct: the server is idle, and is notified of a change while another device is downloading. The other device does not pick up on that change until the server is manually rescanned.

In other words, this:

That's what I was wondering about, it was my suspicion too based on the behaviour observed that the file watcher was telling Syncthing that a change had happened, but it was busy - as the button for rescan is disabled when in the Out-of-sync status

Is not relevant: the server's Rescan button is not disabled, because the server is idle.

yes, I interpreted idle as there was no user access to the files!
Whoops!

Is not relevant: the server's Rescan button is not disabled, because the server is idle.

You know, I've not actually looked at the server folder status until after the download has finished and the error pops up - I'l have to check that on the next one I do,

OK, so all of the assertions that the server is idle when the change notification from SyncTrayzor arrives aren't actually substantiated?

OK, so all of the assertions that the server is idle when the change notification from SyncTrayzor arrives aren't actually substantiated?

Quite possible actually - As the initial adding of the folder, first scan and logging into the laptop and its syncing all took place within an hour (which is the rescan interval) I assumed the server status didn't change,
Next one I do I'll watch the server side as well as the client and see what happens.
The server does have other users folders configured as well, thinking about how I worded earlier it might be assumed its a single folder on the server, whereas its 1-1 relationship for folders, which contain the server node and the client node, but the server config contains the other users folders as well - though it shouldn't make a difference if another folder is scanning when you call for a scan on an idle folder right?
Sorry about this,

What I need to know is: When SyncTrayzor sends a "file changed" notification for a folder to Syncthing, what state is that folder within the Syncthing GUI?

I can watch that on the next one - any change should happen in the GUI even if its very quick, right?

You misunderstand: I don't want to know if SyncTrayzor's "file changed" notification triggers a change in the Syncthing GUI, I want to know whether the folder is Idle/Syncing/Scanning/Whatever at the point that SyncTrayzor sends its "file changed" notification.

We've set up 2 more laptops since my last message,
The first didn't exhibit the problem at all
The second had the error message for peers went away during the sync, but went away by itself after the initial sync completed,
During the client download the server status changes to Syncing a few times, checking the synctrayzor log file for file watcher events its a bit too quick to see - so I've recorded the log + syncything GUI so I can play back and catch the events,
I did notice though that the files or the folders which contain them which had the peers went away error are not listed in any of the watcher or api calls
I'll keep logging new installs to try and find one which has the same persistent problem as I found previously

I managed to capture one this morning,
The syncthing GUI reads "Up to Date", switching to "Syncing" or "Syncing (100%)" there is a ~100ms delay between the GUI  changing and my live log viewer changing, the GUI updates first. The live log viewer has a 500ms update check by default, so I'm pretty sure that the GUI is changing as a result of the synctrayzor call.  I could try and shorten the polling time if you think the accuracy is an issue.
 Folder: willenbrocka, Item: $RECYCLE.BIN, Type: Dir, Action: Update  2016-05-03 11:18:22.3215 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Created file transfer: <FileTransfer Folder=willenbrocka Path=$RECYCLE.BIN Status=Started ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=>  2016-05-03 11:18:22.3371 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemFinished ID=3237 Time=03/05/2016 11:18:22 Item=$RECYCLE.BIN Folder=willenbrocka Error=>  2016-05-03 11:18:22.3528 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item finished. Folder: willenbrocka, Item: $RECYCLE.BIN, Type: Dir, Action: Update  2016-05-03 11:18:22.3528 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: File Transfer set to complete: <FileTransfer Folder=willenbrocka Path=$RECYCLE.BIN Status=Completed ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=03/05/2016 10:18:22>  2016-05-03 11:18:22.3528 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemStarted ID=3238 Time=03/05/2016 11:18:22 Item=AppData Folder=willenbrocka Type=Dir Action=Update>  2016-05-03 11:18:22.3528 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item started. Folder: willenbrocka, Item: AppData, Type: Dir, Action: Update  2016-05-03 11:18:22.3528 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Created file transfer: <FileTransfer Folder=willenbrocka Path=AppData Status=Started ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=>  2016-05-03 11:18:22.3528 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemFinished ID=3239 Time=03/05/2016 11:18:22 Item=AppData Folder=willenbrocka Error=>  2016-05-03 11:18:22.3684 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item finished. Folder: willenbrocka, Item: AppData, Type: Dir, Action: Update  2016-05-03 11:18:22.3684 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: File Transfer set to complete: <FileTransfer Folder=willenbrocka Path=AppData Status=Completed ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=03/05/2016 10:18:22>  2016-05-03 11:18:22.3684 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemStarted ID=3240 Time=03/05/2016 11:18:22 Item=AppData\Microsoft Folder=willenbrocka Type=Dir Action=Update>  2016-05-03 11:18:22.3684 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item started. Folder: willenbrocka, Item: AppData\Microsoft, Type: Dir, Action: Update  2016-05-03 11:18:22.3840 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Created file transfer: <FileTransfer Folder=willenbrocka Path=AppData\Microsoft Status=Started ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=>  2016-05-03 11:18:22.3840 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemFinished ID=3241 Time=03/05/2016 11:18:22 Item=AppData\Microsoft Folder=willenbrocka Error=>  2016-05-03 11:18:22.3999 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item finished. Folder: willenbrocka, Item: AppData\Microsoft, Type: Dir, Action: Update  2016-05-03 11:18:22.3999 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: File Transfer set to complete: <FileTransfer Folder=willenbrocka Path=AppData\Microsoft Status=Completed ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=03/05/2016 10:18:22>  2016-05-03 11:18:22.3999 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemStarted ID=3242 Time=03/05/2016 11:18:22 Item=AppData\Microsoft\Excel Folder=willenbrocka Type=Dir Action=Update>  2016-05-03 11:18:22.3999 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item started. Folder: willenbrocka, Item: AppData\Microsoft\Excel, Type: Dir, Action: Update  2016-05-03 11:18:22.3999 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Created file transfer: <FileTransfer Folder=willenbrocka Path=AppData\Microsoft\Excel Status=Started ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=>  2016-05-03 11:18:22.3999 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemFinished ID=3243 Time=03/05/2016 11:18:22 Item=AppData\Microsoft\Excel Folder=willenbrocka Error=>  2016-05-03 11:18:22.4153 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item finished. Folder: willenbrocka, Item: AppData\Microsoft\Excel, Type: Dir, Action: Update  2016-05-03 11:18:22.4153 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: File Transfer set to complete: <FileTransfer Folder=willenbrocka Path=AppData\Microsoft\Excel Status=Completed ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=03/05/2016 10:18:22>  2016-05-03 11:18:22.4153 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemStarted ID=3244 Time=03/05/2016 11:18:22 Item=AppData\Microsoft\PowerPoint Folder=willenbrocka Type=Dir Action=Update>  2016-05-03 11:18:22.4153 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item started.  Folder: willenbrocka, Item: AppData\Microsoft\PowerPoint, Type: Dir, Action: Update  2016-05-03 11:18:22.4309 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: File Transfer set to complete: <FileTransfer Folder=willenbrocka Path=AppData\Microsoft\PowerPoint Status=Completed ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=03/05/2016 10:18:22>  2016-05-03 11:18:22.4309 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemStarted ID=3246 Time=03/05/2016 11:18:22 Item=AppData\Microsoft\Word Folder=willenbrocka Type=Dir Action=Update>  2016-05-03 11:18:22.4309 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item started. Folder: willenbrocka, Item: AppData\Microsoft\Word, Type: Dir, Action: Update  2016-05-03 11:18:22.4309 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Created file transfer: <FileTransfer Folder=willenbrocka Path=AppData\Microsoft\Word Status=Started ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=>  2016-05-03 11:18:22.4309 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemFinished ID=3247 Time=03/05/2016 11:18:22 Item=AppData\Microsoft\Word Folder=willenbrocka Error=>  2016-05-03 11:18:22.4465 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item finished. Folder: willenbrocka, Item: AppData\Microsoft\Word, Type: Dir, Action: Update  2016-05-03 11:18:22.4465 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: File Transfer set to complete: <FileTransfer Folder=willenbrocka Path=AppData\Microsoft\Word Status=Completed ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=03/05/2016 10:18:22>  2016-05-03 11:18:22.4465 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemStarted ID=3248 Time=03/05/2016 11:18:22 Item=Downloads Folder=willenbrocka Type=Dir Action=Update>  2016-05-03 11:18:22.4465 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item started. Folder: willenbrocka, Item: Downloads, Type: Dir, Action: Update  2016-05-03 11:18:22.4465 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Created file transfer: <FileTransfer Folder=willenbrocka Path=Downloads Status=Started ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=>  2016-05-03 11:18:22.4465 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemFinished ID=3249 Time=03/05/2016 11:18:22 Item=Downloads Folder=willenbrocka Error=>  2016-05-03 11:18:22.4622 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item finished. Folder: willenbrocka, Item: Downloads, Type: Dir, Action: Update  2016-05-03 11:18:22.4622 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: File Transfer set to complete: <FileTransfer Folder=willenbrocka Path=Downloads Status=Completed ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=03/05/2016 10:18:22>  2016-05-03 11:18:22.4622 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemStarted ID=3250 Time=03/05/2016 11:18:22 Item=Downloads\$RECYCLE.BIN Folder=willenbrocka Type=Dir Action=Update>  2016-05-03 11:18:22.4622 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item started. Folder: willenbrocka, Item: Downloads\$RECYCLE.BIN, Type: Dir, Action: Update  2016-05-03 11:18:22.4622 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Created file transfer: <FileTransfer Folder=willenbrocka Path=Downloads\$RECYCLE.BIN Status=Started ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=>  2016-05-03 11:18:22.4622 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemFinished ID=3251 Time=03/05/2016 11:18:22 Item=Downloads\$RECYCLE.BIN Folder=willenbrocka Error=>  2016-05-03 11:18:22.4622 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item finished. Folder: willenbrocka, Item: Downloads\$RECYCLE.BIN, Type: Dir, Action: Update  2016-05-03 11:18:22.4778 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: File Transfer set to complete: <FileTransfer Folder=willenbrocka Path=Downloads\$RECYCLE.BIN Status=Completed ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=03/05/2016 10:18:22>  2016-05-03 11:18:22.4778 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemStarted ID=3252 Time=03/05/2016 11:18:22 Item=My Music Folder=willenbrocka Type=Dir Action=Update>  2016-05-03 11:18:22.4778 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item started. Folder: willenbrocka, Item: My Music, Type: Dir, Action: Update  2016-05-03 11:18:22.4778 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Created file transfer: <FileTransfer Folder=willenbrocka Path=My Music Status=Started ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=>  2016-05-03 11:18:22.4778 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemFinished ID=3253 Time=03/05/2016 11:18:22 Item=My Music Folder=willenbrocka Error=>  2016-05-03 11:18:22.4778 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item finished. Folder: willenbrocka, Item: My Music, Type: Dir, Action: Update  2016-05-03 11:18:22.4934 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: File Transfer set to complete: <FileTransfer Folder=willenbrocka Path=My Music Status=Completed ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=03/05/2016 10:18:22>  2016-05-03 11:18:22.4934 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemStarted ID=3254 Time=03/05/2016 11:18:22 Item=My Music\$RECYCLE.BIN Folder=willenbrocka Type=Dir Action=Update>  2016-05-03 11:18:22.4934 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item started. Folder: willenbrocka, Item: My Music\$RECYCLE.BIN, Type: Dir, Action: Update  2016-05-03 11:18:22.4934 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Created file transfer: <FileTransfer Folder=willenbrocka Path=My Music\$RECYCLE.BIN Status=Started ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=>  2016-05-03 11:18:22.5090 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemFinished ID=3255 Time=03/05/2016 11:18:22 Item=My Music\$RECYCLE.BIN Folder=willenbrocka Error=>  2016-05-03 11:18:22.5090 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item finished. Folder: willenbrocka, Item: My Music\$RECYCLE.BIN, Type: Dir, Action: Update  2016-05-03 11:18:22.5090 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: File Transfer set to complete: <FileTransfer Folder=willenbrocka Path=My Music\$RECYCLE.BIN Status=Completed ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=03/05/2016 10:18:22>  2016-05-03 11:18:22.5090 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemStarted ID=3256 Time=03/05/2016 11:18:22 Item=My Pictures Folder=willenbrocka Type=Dir Action=Update>  2016-05-03 11:18:22.5090 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item started. Folder: willenbrocka, Item: My Pictures, Type: Dir, Action: Update  2016-05-03 11:18:22.5090 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Created file transfer: <FileTransfer Folder=willenbrocka Path=My Pictures Status=Started ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=>  2016-05-03 11:18:22.5090 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemFinished ID=3257 Time=03/05/2016 11:18:22 Item=My Pictures Folder=willenbrocka Error=>  2016-05-03 11:18:22.5247 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item finished. Folder: willenbrocka, Item: My Pictures, Type: Dir, Action: Update  2016-05-03 11:18:22.5247 #5556 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: File Transfer set to complete: <FileTransfer Folder=willenbrocka Path=My Pictures Status=Completed ItemType=Dir ActionType=Update Started=03/05/2016 10:18:22 Finished=03/05/2016 10:18:22>  2016-05-03 11:18:22.5247 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemStarted ID=3258 Time=03/05/2016 11:18:22 Item=My Pictures\$RECYCLE.BIN Folder=willenbrocka Type=Dir Action=Update>  2016-05-
The error on the client disappeared after this happened on the server:
2016-05-03 11:37:21.4296 #5556 [Info] SyncTrayzor.Services.DirectoryWatcher: Path Changed: E:\Work\willenbrocka\  2016-05-03 11:37:21.4296 #5556 [Debug] SyncTrayzor.Syncthing.ApiClient.SyncthingApiClient: Scanning folder: willenbrocka subPath:   2016-05-03 11:37:21.4296 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <StateChangedEvent ID=5502 Time=03/05/2016 11:37:21 Folder=willenbrocka From=idle To=scanning Duration=00:14:26.4960000>  2016-05-03 11:37:22.9747 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <LocalIndexUpdated ID=5503 Time=03/05/2016 11:37:22 Folder=willenbrocka Items=4 Version=1447490>  2016-05-03 11:37:23.2542 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <StateChangedEvent ID=5504 Time=03/05/2016 11:37:23 Folder=willenbrocka From=scanning To=idle Duration=00:00:01.8250000>  2016-05-03 11:37:23.3323 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <RemoteIndexUpdatedEvent ID=5505 Time=03/05/2016 11:37:23 Device=UVYNR2C-BUN6GAN-MTOYD2J-BIK2QHN-DLU4K2T-N6BKANX-U5PJS5C-CSB7EAC Folder=willenbrocka Items=4>  2016-05-03 11:37:23.3480 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <StateChangedEvent ID=5506 Time=03/05/2016 11:37:23 Folder=willenbrocka From=idle To=syncing Duration=00:00:00.0630000>  2016-05-03 11:37:23.4261 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <StateChangedEvent ID=5507 Time=03/05/2016 11:37:23 Folder=willenbrocka From=syncing To=idle Duration=00:00:00.0940000>  2016-05-03 11:37:23.4261 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <FolderSummary ID=5508 Time=03/05/2016 11:37:23 Folder=willenbrocka Summary=<FolderStatus GlobalBytes=1419689665 GlobalDeleted=2 GlobalFiles=7062 LocalBytes=1419689665 LocalDeleted=2 LocalFiles=7062 InSyncBytes=1419689665 InSyncFiles=7062 NeedBytes=0 NeedFiles=0 Invalid= State=idle StateChanged=03/05/2016 11:37:23 Version=1454555>>  2016-05-03 11:37:23.4261 #5556 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <GenericEvent ID=5509 Type=FolderCompletion Time=03/05/2016 11:37:23 Data={"completion":100,"device":"UVYNR2C-BUN6GAN-MTOYD2J-BIK2QHN-DLU4K2T-N6BKANX-U5PJS5C-CSB7EAC","folder":"willenbrocka"}>
The client first see's the peers went away error here:
2016-05-03 11:19:43.4808 #1160 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 2 events  2016-05-03 11:19:43.4808 #1160 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemStarted ID=3441 Time=03/05/2016 11:18:53 Item=Downloads\$RECYCLE.BIN\$IF0F8MU.ppt Folder=willenbrocka Type=File Action=Update>  2016-05-03 11:19:43.4948 #1160 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item started. Folder: willenbrocka, Item: Downloads\$RECYCLE.BIN\$IF0F8MU.ppt, Type: File, Action: Update  2016-05-03 11:19:43.4948 #1160 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 4 events  2016-05-03 11:19:43.5148 #1160 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Created file transfer: <FileTransfer Folder=willenbrocka Path=Downloads\$RECYCLE.BIN\$IF0F8MU.ppt Status=Started ItemType=File ActionType=Update Started=03/05/2016 10:19:43 Finished=>  2016-05-03 11:19:43.5268 #1160 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: <ItemFinished ID=3442 Time=03/05/2016 11:18:54 Item=Downloads\$RECYCLE.BIN\$IVD304F.pdf Folder=willenbrocka Error=>  2016-05-03 11:19:43.5268 #1160 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 6 events  2016-05-03 11:19:43.5268 #1160 [Debug] SyncTrayzor.Syncthing.SyncthingProcessRunner: [UVYNR] 11:19:43 INFO: Puller (folder "willenbrocka", file "My Settings\\links\\Downloads.lnk"): pull: peers who had this file went away, or the file has changed while syncing. will retry later  2016-05-03 11:19:43.5528 #1160 [Debug] SyncTrayzor.Syncthing.EventWatcher.SyncthingEventWatcher: Received 2 events  2016-05-03 11:19:43.5528 #1160 [Debug] SyncTrayzor.Syncthing.TransferHistory.SyncthingTransferHistory: Item finished. Folder: willenbrocka, Item: Downloads\$RECYCLE.BIN\$IVD304F.pdf, Type: File, Action: Update

Right, so SyncTrayzor is definitely telling Syncthing that the file has changed, and Syncthing is picking up on that change. Syncthing is not scanning (or doing anything else) when the change notification happened.
Therefore whatever's going on is entirely a Syncthing issue. Please open an issue with Syncthing, describing the problem in full detail (I'm still a bit unclear on what exactly is happening - the story appears to have changed a few times).

Fixed in v1.1.9

Thanks for all the extended checking, sorry I wasn't so clear at some points,
I'll open an issue with Syncthing as you suggested,
Thanks again!


Implementation of await should not call ContinueWith

After checking what the compiler does, I found that the implementation of 'await' is unnecessarily slow. It is mainly calling the continueWith method of Task which in turn does quite some additional stuff besides just installing the callback in its list.
As removing this functionality there is not possible, because it is part of the Task API (see #3955), it makes sense to provide and use a dedicated light-weight version ('attachContinuation' or something like that).
When the completion test for the Task is pulled out into the method that uses 'await'  (see #3951), this is really only a very simple method that would not have to call out to any other code itself.

Thanks for the heads up. There's always room for improvement and pointing out areas that "are hurt" is really helpful!

We got a fix for this, but as we don't really have numbers to compare (some benchmark etc), there's not much of a measure of "how much" this improved. But now with specialized code to do the task, it should improve, in the least. If curious about the change, take a look in the pull request above.
The reviewed approach wil make it to the next Bridge release.


Disable updater.updater on dev versions

The Updater component doesn't make much sense on dev versions. If you
want to run a production config with the updater enabled, you end up
with an 'Update Available' badge pointing you to the last release
version. This change disables the Updater component on dev and updates
the tests to use a faked version number.
A warning is emitted if the Updater component is disabled to ensure there is no confusion.
If the code does not interact with devices:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] Tests have been added to verify that the new code works.

I'm going to squash the PEP8 fix and reopen (and I have a flake8 commit hook installed now...)


Two issues in sample

Hi,
Thanks for providing this example. I've been playing around and found two issues.  Feel free to let me know if I miss out something.

"Authorization has been denied for this request." for "To Do List"

ToDoList controller is in SPA project but I got this error above after login.
Steps to replicate ~

Run the project
Open this link https://localhost:44326 in Chrome private mode
Click on 'To Do List' (It will ask you to log in. I logged in with my account )
It shows "Authorization has been denied for this request." in ToDoList page after successfuly logged in.
Check the Login/Logout text on the header (You will see the "Log out" - so it means the login was a success as well.)

'Login/In' text

Follow the step above.
Click on 'To Go List'
Observe the Login/Logout text on the header - (Error: It changed it to 'Login' again. )
ERROR: You will get the "Authorization has been denied for this request." in 'To Go List' as well.
Click back on "To Do List" again.  (same auth error)
Click again on "To Go List" - (There, you will see the list.  and the text on the header is still 'Login'. )

Note: Please ignore the data. As I mentioned here, I replaced the DAL with a List.
Thanks. Feel free to let me know if you need more information or if I miss out something.

Closing this as we are archiving this sample. Please check out the new sample at ms-identity-javascript-angular-spa-aspnetcore-webapi.


appsre: Build schemav2 images under podman

By default podman builds images in OCI format, which is Old. The
preferred way is "Schema v2", which docker does by default. Set an
environment variable so this happens when we build our app-sre images.

Per slack, this might be sufficient as is. We're going to try it. A followon may be needed.

This worked.
Before:
"mediaType":"application/vnd.oci.image.config.v1+json"
After:
"mediaType":"application/vnd.docker.distribution.manifest.v2+json"


Website: Zesty Docs

Update how the content is being rendered (from Markdown to WYSWYG)

There  are styling issues with some of the images

FIX ON DEV


Javadocs don't generate for Lombok annotations

Describe the bug
Javadocs are not generated for Lombok-annotated fields & methods project-wide.
To Reproduce
Steps to reproduce the behavior:

Generate Javadocs

Expected behavior
Javadocs should be copied over to their respective generated methods as per the Lombok documentation.

NEW in lombok v1.12.0: javadoc on the field will now be copied to generated getters and setters. Link

Additional context
Looks like we need to run delombok - requires using the lombok.jar or finding a Gradle plugin that does this for us? Solutions I've found are using Ant, and I don't really want to include ANOTHER step during build.

https://stackoverflow.com/questions/24997441/delombok-using-gradle

https://plugins.gradle.org/search?term=delombok ?


[Help]: Kwikset 910 Lock - Cannot figure out how to send lock, unlock

How can we help?
Trying to work out how to send door lock command. I've successfully setup the ZWave Controller with network key and I get back messages from the lock. I've been able to isolate lock and unlock messages (from manual locking, unlocking the door) using NOTIFICATION and eventLabel (if there is a better way to verify lock/unlock please let me know).
My problem is trying to send unlock, lock commands. I've tried the following inputting into the ZWave Controller:
I was using openzwave node with this code and it was working:
msg.payload = {"nodeid" : node_id, "cmdclass" : 98,
      "value" : (msg.payload === 'LOCK' ? true : false)}
  msg.topic = "setValue";

Here's what I've tried to translate into zwave-js
msg.payload = {'mode': 'ValueAPI', 'node': node_id, 'method': 'setValue', 'params': [{'cmdclass' : 98}, msg.payload === 'LOCK']}

and something I tried from a Yale lock issue I found here
 msg.payload = {
    node: 2,
    class: "Unmanaged",
    operation: "SetValue",
    params: [{ commandClass: 98, endpoint: 0, property: "targetMode" }, msg.payload === 'LOCK']
  }

The command seems to go through but there is no debug output coming from the ZWave Controller node.
Thanks for the help!
Version
latest npm
Node-RED Version
2.2
What hardware are you using?
Raspberry Pi
Any code to add?
No response

You seem to be using an extremely old version of the Module, but the below should work.
 msg.payload = {
    node: 2,
    class: "Unmanaged",
    operation: "SetValue",
    params: [{ commandClass: 98, endpoint: 0, property: "targetMode" }, 0xff]
  }

Unsecured = 0x00,
UnsecuredWithTimeout = 0x01,
InsideUnsecured = 0x10,
InsideUnsecuredWithTimeout = 0x11,
OutsideUnsecured = 0x20,
OutsideUnsecuredWithTimeout = 0x21,
Unknown = 0xfe,
Secured = 0xff

I took that, as I said from an issue, which is an old issue reported here. What is the correct way to do it for the current release?
I thought that changing to 0xff would do it but still the same; nothing happens on the lock and no msg out the ZWave Controller node.

So are you using the latest version?

I installed it from the pallet manager (raspberry pi w/node red 2.2);

Cool!
send this to controller node.
let Message = {
    "payload": {
        "mode": "ValueAPI",
        "node": 2,
        "method": "setValue",
        "params": [{ commandClass: 98, endpoint: 0, property: "targetMode" }, 0xff]
    }
}
return Message

See here.
https://github.com/zwave-js/node-red-contrib-zwave-js/wiki/Value-API

That's it! perfect. Thanks for such a great node and great help!!!

Any time