TFLite with armnn delegate slower on little cortex ?

Hello,
I'm running a tflite model using armnn delegate (based on conv + lstm layers).
It's running on a small cortex A9 (v7l neon vfpv3 32-bits) and the processing time is 3 times slower than tflite model standalone execution (~3ms vs ~1ms).
Is it something that could happen on small cortex ?
Neon option is enabled and backend is CpuAcc.
Thanks for your feedback

Hi @n-moussa
I would expect it to be faster (or much the same). If parts of the model are unsupported by armnn for one reason or another then execution will fall back to the default tflite implementation. In that case it could be slower as shifting between tflite and the armnn delegate incurs a memory copying cost.
Can you provide some more information please?

How are you determining the processing time, is this the amount of time taken to create the network and run or just the time taken to run the network?
How many times are you running the ? The first inference is always slower.
 What datatype is it (i.e. is it float 32 or int8 for example?)
What version of the tflite delegate are you using?

Best regards,
Mike

Hi @MikeJKelly
Here some more details:

I'm measuring the processing time before and after the inference (setting the inputs -> call invoke() function -> setting outputs). It's running inside a thread and this part of the code is the same for tflite standalone and tflite with armnn delegate.

It's running several times (hundreds/thousands)

Unfortunately the model is not publicly available, it's a small one ( between 200 KBytes - 300 KBytes). It has basic layers such as conv2d, lstm, full connected, reshape, batchnorm). Is the unidirectional lstm supported by armnn delegate ? The datatype is float32.

I'm using TFlite 2.4.1 and armnn 21.02.

Thanks!

Hey @n-moussa
We do not support TfLite 2.4.1, but 2.3.1. It would be worth building TfLite on that branch.
Could I also ask what device you are using for the cortex A9? We may be able to run it and provide some feedback.
Cheers,
Keith

Hi @keidav01
I'm using a zynq 7020 platform for the cortex A9.
I'm attaching a tflite model (which is close to the one that I tested).
model.zip
I will try with TFLite 2.3.1
Thanks for your feedback!

Hi @keidav01
I have tried with TFLite 2.3.1, and I'm having the same performance issue.

Probably worth asking about thins on the Compute Library github issues. The performance for Arm NN on Cortex-A CPUs comes from Compute Library (https://github.com/ARM-software/ComputeLibrary). I believe the optimisations for Arm v7 are not as good as the optimisations for Arm v8.

Is there a way to track and profile the NN model execution when using ArmNN delegate ?

Is there a way to track and profile the NN model execution when using ArmNN delegate ?
Thanks

Hey @n-moussa,
You can use the benchmark_model tool provided by tensorflow which can be downloaded for your particular platform at the bottom of this link: https://www.tensorflow.org/lite/performance/implementing_delegate.
You can utilize the ArmNN TfLite Delegate through this tool with the flags --external_delegate_path and --external_delegate_options

Hi @n-moussa,
Have you any further questions? I will close this issue in 2 days otherwise with the assumption that your questions have been satisfied.
Thank you very much,
Keith

Hi @keidav01
The problem is still occurring and I would like to share my latest update please.
As you advised, I gave a try with the benchmark tool and this time I used a raspberry pi 4 (64-bits CPU A72). When testing the TFLite model with and without armnn delegate, I got a performance drop by almost 10x (using float-32 precision for the model).
~70 µs without armnn delegate
~623 µs with armnn delegate
So the problem is not coming from the HW right?
/benchmark_model --graph=ts_75.tflite
STARTING!
Log parameter values verbosely: [0]
Graph: [ts_75.tflite]
Loaded model ts_75.tflite
Going to apply 0 delegates one after another.
The input model file size (MB): 0.184108
Initialized session in 1.304ms.
Running benchmark for at least 1 iterations and at least 0.5 seconds but terminate if exceeding 150 seconds.
count=7028 first=2071 curr=69 min=68 max=2071 avg=70.3736 std=24

Running benchmark for at least 50 iterations and at least 1 seconds but terminate if exceeding 150 seconds.
count=14192 first=93 curr=70 min=68 max=249 avg=69.691 std=5

Inference timings in us: Init: 1304, First inference: 2071, Warmup (avg): 70.3736, Inference (avg): 69.691
Note: as the benchmark tool itself affects memory footprint, the following is only APPROXIMATE to the actual memory footprint of the model at runtime. Take the information at your discretion.
Peak memory footprint (MB): init=1.90234 overall=1.90234

./benchmark_model --graph=ts_75.tflite --external_delegate_path="../armnn-21.02/build/delegate/libarmnnDelegate.so" --external_delegate_options="backends:CpuAcc;logging-severity:info"
STARTING!
Log parameter values verbosely: [0]
Graph: [ts_75.tflite]
External delegate path: [../armnn-21.02/build/delegate/libarmnnDelegate.so]
External delegate options: [backends:CpuAcc;logging-severity:info]
Loaded model ts_75.tflite
Info: ArmNN v24.0.0

Info: Initialization time: 0.26 ms

INFO: TfLiteArmnnDelegate: Created TfLite ArmNN delegate.
EXTERNAL delegate created.
Going to apply 1 delegates one after another.
Explicitly applied EXTERNAL delegate, and the model graph will be partially executed by the delegate w/ 3 delegate kernels.
The input model file size (MB): 0.184108
Initialized session in 30.886ms.
Running benchmark for at least 1 iterations and at least 0.5 seconds but terminate if exceeding 150 seconds.
count=784 first=1203 curr=564 min=536 max=5798 avg=636.411 std=277

Running benchmark for at least 50 iterations and at least 1 seconds but terminate if exceeding 150 seconds.
count=1601 first=716 curr=564 min=508 max=10487 avg=623.432 std=347

Inference timings in us: Init: 30886, First inference: 1203, Warmup (avg): 636.411, Inference (avg): 623.432
Note: as the benchmark tool itself affects memory footprint, the following is only APPROXIMATE to the actual memory footprint of the model at runtime. Take the information at your discretion.
Peak memory footprint (MB): init=10.6992 overall=10.6992
Info: Shutdown time: 0.33 ms

Thank you,
Moussa

So I'm guessing the problem here is "Explicitly applied EXTERNAL delegate, and the model graph will be partially executed by the delegate w/ 3 delegate kernels."
I wonder if the overhead of calling out to the delegate for a partial execution is vastly overshadowing any other contribution to execution time.

When I check the model, I don't find any ops that wouldn't be supported by the delegate..(based on the doc here https://arm-software.github.io/armnn/latest/delegate.xhtml)
It has basic CNN, BN, LSTM, FC.
I need to check why it's going for a partial execution.
There should be some parameter or config that may be not supported by the delegate.
And this is also being higher:
Peak memory footprint (MB): init=10.6992 overall=10.6992

BatchNormalization isn't on that list?

I would expect the peak memory footprint with the delegate to be higher  - at the very least, it has to load the delegate code into memory.

In fact, the BN isn't on this list.
But the 'TFLite ops' used to support the BN are simple 'ADD' and 'MUL'.
So, this should not cause the switch between backends.

I would expect the peak memory footprint with the delegate to be higher - at the very least, it has to load the delegate code into memory.

I see, it makes sense for the memory usage then.

I have the same issue.
`./linux_aarch64_benchmark_model --graph=model_32bits_float.tflite
STARTING!
Log parameter values verbosely: [0]
Graph: [model_32bits_float.tflite]
Loaded model model_32bits_float.tflite
Going to apply 0 delegates one after another.
The input model file size (MB): 0.019552
Initialized session in 0.969ms.
Running benchmark for at least 1 iterations and at least 0.5 seconds but terminate if exceeding 150 seconds.
count=2988 first=296 curr=166 min=145 max=469 avg=166.384 std=7
Running benchmark for at least 50 iterations and at least 1 seconds but terminate if exceeding 150 seconds.
count=5961 first=175 curr=165 min=143 max=2615 avg=166.798 std=39
Inference timings in us: Init: 969, First inference: 296, Warmup (avg): 166.384, Inference (avg): 166.798
Note: as the benchmark tool itself affects memory footprint, the following is only APPROXIMATE to the actual memory footprint of the model at runtime. Take the information at your discretion.
Peak memory footprint (MB): init=1.32812 overall=1.32812
`
`./linux_aarch64_benchmark_model --graph=model_32bits_float.tflite --external_delegate_path="ArmNN-linux-aarch64/libarmnnDelegate.so" --external_delegate_options="backends:CpuAcc;logging-severity:info"
STARTING!
Log parameter values verbosely: [0]
Graph: [model_32bits_float.tflite]
External delegate path: [ArmNN-linux-aarch64/libarmnnDelegate.so]
External delegate options: [backends:CpuAcc;logging-severity:info]
Loaded model model_32bits_float.tflite
Info: ArmNN v25.0.0
Info: Initialization time: 0.86 ms
INFO: TfLiteArmnnDelegate: Created TfLite ArmNN delegate.
EXTERNAL delegate created.
Going to apply 1 delegates one after another.
Explicitly applied EXTERNAL delegate, and the model graph will be partially executed by the delegate w/ 1 delegate kernels.
The input model file size (MB): 0.019552
Initialized session in 43.078ms.
Running benchmark for at least 1 iterations and at least 0.5 seconds but terminate if exceeding 150 seconds.
count=2533 first=421 curr=212 min=180 max=421 avg=196.386 std=8
Running benchmark for at least 50 iterations and at least 1 seconds but terminate if exceeding 150 seconds.
count=5072 first=218 curr=196 min=171 max=640 avg=196.159 std=8
Inference timings in us: Init: 43078, First inference: 421, Warmup (avg): 196.386, Inference (avg): 196.159
Note: as the benchmark tool itself affects memory footprint, the following is only APPROXIMATE to the actual memory footprint of the model at runtime. Take the information at your discretion.
Peak memory footprint (MB): init=30.7734 overall=30.7734
Info: Shutdown time: 0.17 ms
`
The model is :
Model: "sequential_2"

Layer (type)                 Output Shape              Param #
lstm_2 (LSTM)                (None, 20)                3920

flatten_2 (Flatten)          (None, 20)                0

output (Dense)               (None, 10)                210
Total params: 4,130
Trainable params: 4,130
Non-trainable params: 0

I have the same issue. The model is :
Model: "sequential_2"

Layer (type)                 Output Shape              Param #
lstm_2 (LSTM)                (None, 20)                3920

flatten_2 (Flatten)          (None, 20)                0

output (Dense)               (None, 10)                210
Total params: 4,130
Trainable params: 4,130
Non-trainable params: 0
./linux_aarch64_benchmark_model --graph=model_32bits_float.tflite --external_delegate_path="ArmNN-linux-aarch64/libarmnnDelegate.so" --external_delegate_options="backends:CpuAcc;logging-severity:info"
STARTING!
Log parameter values verbosely: [0]
Graph: [model_32bits_float.tflite]
External delegate path: [ArmNN-linux-aarch64/libarmnnDelegate.so]
External delegate options: [backends:CpuAcc;logging-severity:info]
Loaded model model_32bits_float.tflite
Info: ArmNN v25.0.0
Info: Initialization time: 0.86 ms
INFO: TfLiteArmnnDelegate: Created TfLite ArmNN delegate.
EXTERNAL delegate created.
Going to apply 1 delegates one after another.
Explicitly applied EXTERNAL delegate, and the model graph will be partially executed by the delegate w/ 1 delegate kernels.
The input model file size (MB): 0.019552
Initialized session in 43.078ms.
Running benchmark for at least 1 iterations and at least 0.5 seconds but terminate if exceeding 150 seconds.
count=2533 first=421 curr=212 min=180 max=421 avg=196.386 std=8
Running benchmark for at least 50 iterations and at least 1 seconds but terminate if exceeding 150 seconds.
count=5072 first=218 curr=196 min=171 max=640 avg=196.159 std=8
Inference timings in us: Init: 43078, First inference: 421, Warmup (avg): 196.386, Inference (avg): 196.159
Note: as the benchmark tool itself affects memory footprint, the following is only APPROXIMATE to the actual memory footprint of the model at runtime. Take the information at your discretion.
Peak memory footprint (MB): init=30.7734 overall=30.7734
Info: Shutdown time: 0.17 ms
./linux_aarch64_benchmark_model --graph=model_32bits_float.tflite
STARTING!
Log parameter values verbosely: [0]
Graph: [model_32bits_float.tflite]
Loaded model model_32bits_float.tflite
Going to apply 0 delegates one after another.
The input model file size (MB): 0.019552
Initialized session in 0.969ms.
Running benchmark for at least 1 iterations and at least 0.5 seconds but terminate if exceeding 150 seconds.
count=2988 first=296 curr=166 min=145 max=469 avg=166.384 std=7
Running benchmark for at least 50 iterations and at least 1 seconds but terminate if exceeding 150 seconds.
count=5961 first=175 curr=165 min=143 max=2615 avg=166.798 std=39
Inference timings in us: Init: 969, First inference: 296, Warmup (avg): 166.384, Inference (avg): 166.798
Note: as the benchmark tool itself affects memory footprint, the following is only APPROXIMATE to the actual memory footprint of the model at runtime. Take the information at your discretion.
Peak memory footprint (MB): init=1.32812 overall=1.32812

Maybe --enable_op_profiling=true would be helpful? https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/tools/benchmark#profiling-model-operators
I don't know for sure, but maybe that will tell you which operators are not running on the delegate

Maybe --enable_op_profiling=true would be helpful? https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/tools/benchmark#profiling-model-operators
I don't know for sure, but maybe that will tell you which operators are not running on the delegate

The  UNIDIRECTIONAL_SEQUENCE_LSTM layer doesn't run with ArmNN delegate.
Node   0 Operator Builtin Code  44 UNIDIRECTIONAL_SEQUENCE_LSTM (not delegated)
24 Input Tensors:[0,5,4,3,2,13,12,11,10,-1,-1,-1,9,8,7,6,-1,-1,14,17,-1,-1,-1,-1] -> 18976B (0.02MB)
1 Output Tensors:[18] -> 2240B (0.00MB)
1 Temporary Tensors:[22] -> 320B (0.00MB)
Node   1 Operator Builtin Code  22 RESHAPE (delegated by node 4)
2 Input Tensors:[18,15] -> 0B (0.00MB)
1 Output Tensors:[19] -> 0B (0.00MB)
Node   2 Operator Builtin Code   9 FULLY_CONNECTED (delegated by node 4)
3 Input Tensors:[19,1,16] -> 0B (0.00MB)
1 Output Tensors:[20] -> 0B (0.00MB)
Node   3 Operator Builtin Code  25 SOFTMAX (delegated by node 4)
1 Input Tensors:[20] -> 0B (0.00MB)
1 Output Tensors:[21] -> 0B (0.00MB)
Node   4 Operator Custom Name TfLiteArmNnDelegate
4 Input Tensors:[1,15,16,18] -> 24688B (0.02MB)
1 Output Tensors:[21] -> 40B (0.00MB)
Execution plan as the list of 2 nodes invoked in-order: [0,4]
Among these nodes in the execution plan:
Node 4 is a TfLiteArmNnDelegate node (0xaaab068132b0), which has delegated 3 nodes: [1-3]
--------------Subgraph-0 dump has completed--------------

Thanks, so two questions here @MikeJKelly and @keidav01

We should add UNIDIRECTIONAL_SEQUENCE_LSTM to the roadmap
Is it plausible that one operator not being delegated could cause a big performance drop? Can we improve this?

What is the difference between UNIDIRECTIONAL_SEQUENCE_LSTM and LSTM (release 21.02) ?
Thank you !

I'm not really sure of all the mathematical differences in the operations, but it's to do with how Keras models get converted to Tensorflow Lite format.
An LSTM at the Keras level can convert to LSTM, BIDIRECTIONAL_SEQUENCE_LSTM, or UNIDIRECTIONAL_SEQUENCE_LSTM at the Tensorflow Lite level, depending on how the sequence worked in Keras.
There's some documentation here: https://www.tensorflow.org/lite/convert/rnn. There's an example here: https://colab.research.google.com/github/tensorflow/tensorflow/blob/master/tensorflow/lite/examples/experimental_new_converter/Keras_LSTM_fusion_Codelab.ipynb showing an LSTM within a Sequence context getting converted to a UNIDIRECTIONAL_SEQUENCE_LSTM.
I think that you get a UNIDIRECTIONAL_SEQUENCE_LSTM (rather than an LSTM) if the time_major attribute is set in Keras.

Thanks a lot for providing insights on this issue!
I tried with turning on / off the time_major attribute at keras level (by default it's off).
The TFLite model is still using UNIDIRECTIONAL_SEQUENCE_LSTM.
I think it's aligned with what suggested on their doc
https://www.tensorflow.org/lite/convert/rnn

Users may choose time-major or no time-major. Keras LSTM adds a time-major attribute in the function def attributes. For Unidirectional sequence LSTM, we can simply map to unidirecional_sequence_lstm's time major attribute.

If you look at their supported ops, we can find the time_major attribute in their implementation.
https://www.tensorflow.org/mlir/tfl_ops#tflunidirectional_sequence_lstm_tflunidirectionalsequencelstmop

time_major | BoolAttr | bool attribute attribute

The UNIDIRECTIONAL_SEQUENCE_LSTM is providing the same results (in terms of accuracy) against its keras implementation tf.keras.LSTM(units, return_sequences=True). It maintains the cell states between predictions (stateful between sequences but stateless between batch of sequences).
https://keras.io/guides/working_with_rnns/

Hi @MatthewARM,

I've added this to our CE roadmap
It's very plausible that one operator not being delegated could be causing this massive drop in performance. It may be that a single partition is being created for unidirectional_sequence_lstm for vanilla tf lite and the two others for the ArmNN Delegate. The overhead in having these partitions communicate with eachother could be quite costly. Notwithstanding that it's quite a large operation involved, in LSTM. I'll investigate improving this

Thanks a lot for providing insights on this issue!
I tried with turning on / off the time_major attribute at keras level (by default it's off).
The TFLite model is still using UNIDIRECTIONAL_SEQUENCE_LSTM.
I think it's aligned with what suggested on their doc
https://www.tensorflow.org/lite/convert/rnn

Users may choose time-major or no time-major. Keras LSTM adds a time-major attribute in the function def attributes. For Unidirectional sequence LSTM, we can simply map to unidirecional_sequence_lstm's time major attribute.

If you look at their supported ops, we can find the time_major attribute in their implementation.
https://www.tensorflow.org/mlir/tfl_ops#tflunidirectional_sequence_lstm_tflunidirectionalsequencelstmop

time_major | BoolAttr | bool attribute attribute

The UNIDIRECTIONAL_SEQUENCE_LSTM is providing the same results (in terms of accuracy) against its keras implementation tf.keras.LSTM(units, return_sequences=True). It maintains the cell states between predictions (stateful between sequences but stateless between batch of sequences).
https://keras.io/guides/working_with_rnns/

Could you share your code ?
How to get LSTMOp in a tflite model ?

Hi @kassianl26
Sorry, I was not able to get a tflite model with LSTMOp.
It always uses a UNIDIRECTIONAL_SEQUENCE_LSTM op.
Hmm, I'm not getting a performance drop when using XNNPACK delegate and it also falls back to TFLite to support LSTM.

Hi @n-moussa,
Apologies for the delay. Can you test the performance on a 64 bit architcture please? Our Compute Library is not greatly optimised for v7 32bit
Let me know how you get on.
Cheers,
Keith

Hi @MatthewARM,
1. I've added this to our CE roadmap

2. It's very plausible that one operator not being delegated could be causing this massive drop in performance. It may be that a single partition is being created for unidirectional_sequence_lstm for vanilla tf lite and the two others for the ArmNN Delegate. The overhead in having these partitions communicate with eachother could be quite costly. Notwithstanding that it's quite a large operation involved, in LSTM. I'll investigate improving this

Hi @keidav01
Is the layer UNIDIRECTIONNAL_SEQUENCE_LSTM from tf lite going to be implemented in the next update ?
Thank you

Hi @Colm-in-Arm,
How we can test the reference implementation ?
Should we use the armnn Parser for TFLite and try to run it on x86-64 ? or arm CPU ?
Thanks a lot for the update,
Moussa

HI @n-moussa,
Right now the TfLite delegate support is in review (https://review.mlplatform.org/c/ml/armnn/+/6099) and there's no TfLite parser support. If you really wanted to test it then you would need to go directly to the Arm NN interface calling "AddUnidirectionalSequenceLstmLayer". I would suggest you wait until the TfLite delegate support is merged.
Colm.

Closing this as the TFLite delegate support has been merged for ArmNN reference backend (CpuRef) on the TFLite Delegate. When support is added to ArmNN's accelerated CPU backend (CpuAcc) we'll update this ticket.
Best regards,
Mike


xNetadapterAdvancedProperty Change advanced properties

Pull Request (PR) description
Added xNetAdapterAdvancedProperty for changing advanced properties on network adapter
This Pull Request (PR) fixes the following issues:
Fixes #286
Task list:

[x] Change details added to Unreleased section of CHANGELOG.md?
[x] Added/updated documentation, comment-based help and descriptions in .schema.mof files where appropriate?
[x] Examples appropriately updated?
[ ] New/changed code adheres to Style Guidelines?
[x] Unit and (optional) Integration tests created/updated where possible?

This change is

Codecov Report

Merging #291 into dev will not change coverage.
The diff coverage is n/a.

@@         Coverage Diff         @@
##            dev   #291   +/-   ##
===================================
  Coverage    98%    98%
===================================
  Files        25     25
  Lines      1834   1834
===================================
  Hits       1798   1798
  Misses       36     36

Great stuff @atdhe18 - appreciate the contribution! There are a couple of errors occurring in the automated AppVeyor tests - could you take a look at these and I'll review?

Hi @PlagueHO , I'm lookint into it and trying to find out why the errors are occuring. :)

@PlagueHO We seems to have a problem with CodeCov  in the CI pipeline. See https://ci.appveyor.com/project/PowerShell/xnetworking/build/3.1.786.0#L4670. Saw this in xFailOverCluster and SqlServerDsc as well. Not sure yet whats going on.
@atdhe18 This has nothing to do with this PR. :)

@johlju , @atdhe18 - oh dear - I see. It looks like either the CodeCov has been updated and broken something or something has changed in AppVeyor.
It is possible that this line:
https://github.com/PowerShell/DscResource.Tests/blob/dev/DscResource.CodeCoverage/CodeCovIo.psm1#L325 is resulting in a bad path.
I'll take a look at this tomorrow (unless you've already solved it by then :grin: )

@PlagueHO it seems it actually the codecov python script. It fails on this row.
https://github.com/PowerShell/DscResource.Tests/blob/a3bbb6d7d2e289a82807560afc669408c7565817/DscResource.CodeCoverage/CodeCovIo.psm1#L336
The file it tries to upload does work, the $resolvedResultFile contains 'C:\Users\appveyor\AppData\Local\Temp\1\codeCov.json'. And running Get-Content do get a json file.
Running the problem row manually on the build worker.
[DBG]: PS C:\projects\xfailovercluster>> codecov -f $resolvedResultFile -X gcov
codecov : The filename, directory name, or volume label syntax is incorrect.
At line:1 char:1
+ codecov -f $resolvedResultFile -X gcov
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (The filename, d...x is incorrect.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

      _____          _
     / ____|        | |
    | |     ___   __| | ___  ___ _____   __
    | |    / _ \ / _  |/ _ \/ __/ _ \ \ / /
    | |___| (_) | (_| |  __/ (_| (_) \ V /
     \_____\___/ \____|\___|\___\___/ \_/
                                    v2.0.10

==> Detecting CI provider
  -> Got branch from git/hg
  -> Got sha from git/hg
==> Preparing upload
    Error running `cd 'C:\projects\xfailovercluster' && git ls-files`: None
Error: Missing repository upload token

Tip: See all example repositories: https://github.com/codecov?query=example
Support channels:
  Email<EMAIL_ADDRESS>  IRC:     #codecov
  Gitter:  https://gitter.im/codecov/support
  Twitter: @codecov

Hi @johlju - good detective work. I've taken a brief look at the python and it looks like it is unable to detect the Token information used to upload the coverage data to CodeCov.io. I'm just debugging this locally on my machine (I can replicate the issue here).

Actually, I think the above token issue is a red herring. If you look at the CodeCovUpload.log artifact: https://ci.appveyor.com/project/PowerShell/xnetworking/build/3.1.786.0/artifacts
It shows:

      _____          _
     / ____|        | |
    | |     ___   __| | ___  ___ _____   __
    | |    / _ \ / _  |/ _ \/ __/ _ \ \ / /
    | |___| (_) | (_| |  __/ (_| (_) \ V /
     \_____\___/ \____|\___|\___\___/ \_/
                                    v2.0.10

==> Detecting CI provider
    AppVeyor Detected
==> Preparing upload
    Error running `cd 'C:\projects\xnetworking' && git ls-files`: None
XX> Skip processing gcov
==> Collecting reports
XX> Searching for reports disabled
    Targeting specific files
    + C:\Users\appveyor\AppData\Local\Temp\1\codeCov.json bytes=1015201
==> Uploading
    .url https://codecov.io
    .query service=appveyor&commit=287671eeb0117d7374e8102aaf6c329c9d9a7607&package=py2.0.10&branch=dev&build=bsjueksk050yjjm6&job=PowerShell%2Fxnetworking%2F3.1.786.0&pr=291&slug=PowerShell%2FxNetworking
    Pinging Codecov...
    Uploading to S3...
    https://codecov.io/github/PowerShell/xNetworking/commit/287671eeb0117d7374e8102aaf6c329c9d9a7607

So clearly the upload succeeded (even though an error is shown). You can see the coverage here:
https://codecov.io/github/PowerShell/xNetworking/commit/287671eeb0117d7374e8102aaf6c329c9d9a7607
So it appears there is some error/glitch in the Python that just dumps this message into the error stream - which PowerShell is picking up.
As this is not failing the build process right now, we should log this in DSCResources.Tests and work on it over there.

I've logged the error over here: https://github.com/PowerShell/DscResource.Tests/issues/203

Doing a great job here @atdhe18. Thank you for submitting this.
Is it possible to add Integration Tests for this resource? It does look like these should be able to be created using the Loopback adapter. I'd suggest just copying the pattern for something like this one: https://github.com/PowerShell/xNetworking/blob/dev/Tests/Integration/MSFT_xNetAdapterBinding.Integration.Tests.ps1

Reviewed 1 of 5 files at r1, 4 of 6 files at r2, 2 of 2 files at r4.
Review status: all files reviewed at latest revision, 43 unresolved discussions.

CHANGELOG.md, line 5 at r4 (raw file):

## Unreleased

- MSFT_xNetAdapterAdvancedProperty

Can you add a colon to the end of this line?

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 20 at r4 (raw file):

<#
.SYNOPSIS
    Gets the current state of NetAdapterRss for a adapter.

The .SYNOPSIS is incorrect I think.

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 23 at r4 (raw file):

.PARAMETER NetworkAdapterName
    Specifies the Name of the network adapter to check.

Shouldn't this be something like:
Specifies the name of the network adapter to get the advanced property for.

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 34 at r4 (raw file):

{
    [CmdletBinding()]
    [OutputType([Hashtable])]

Can you use full typename [System.Collections.Hashtable]

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 38 at r4 (raw file):

    (
        [Parameter(Mandatory = $true)]
        [String]

Can you use full typename [System.String]

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 43 at r4 (raw file):

        [Parameter(Mandatory = $true)]
        [ValidateSet("*FlowControl","*InterruptModeration","*IPChecksumOffloadIPv4","*JumboPacket","*LsoV2IPv4","*LsoV2IPv6","*MaxRssProcessors","*NumaNodeId","*NumRssQueues","*PriorityVLANTag","*ReceiveBuffers","*RSS","*RssBaseProcNumber","*RssMaxProcNumber","*RSSProfile","*SpeedDuplex","*TCPChecksumOffloadIPv4","*TCPChecksumOffloadIPv6","*TransmitBuffers","*UDPChecksumOffloadIPv4","*UDPChecksumOffloadIPv6","AdaptiveIFS","ITR","LogLinkStateEvent","MasterSlave","NetworkAddress","WaitAutoNegComplete")]
        [String]

Can you use full typename [System.String]

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 47 at r4 (raw file):

        [Parameter(Mandatory = $true)]
        [String]

Can you use full typename [System.String]

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 58 at r4 (raw file):

    try
    {
        $netAdapteradvprop = Get-NetAdapterAdvancedProperty -Name $networkAdapterName  -RegistryKeyword $RegistryKeyword -ErrorAction Stop

Can you use variable name $netAdapterAdvancedProperty - we try to avoid abbreviating variable names?
Also, seems like there is too many spaces before -RegistryKeyword

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 86 at r4 (raw file):

<#
.SYNOPSIS
    Gets the current state of NetAdapterRss for a adapter.

The .SYNOPSIS is incorrect I think.

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 88 at r4 (raw file):

    Gets the current state of NetAdapterRss for a adapter.

.PARAMETER NetworkAdapterName

Shouldn't this be something like:
Specifies the name of the network adapter to set the advanced property on.

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 103 at r4 (raw file):

    (
        [Parameter(Mandatory = $true)]
        [String]

Can you use full typename [System.String]

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 108 at r4 (raw file):

        [Parameter(Mandatory = $true)]
        [ValidateSet("*FlowControl","*InterruptModeration","*IPChecksumOffloadIPv4","*JumboPacket","*LsoV2IPv4","*LsoV2IPv6","*MaxRssProcessors","*NumaNodeId","*NumRssQueues","*PriorityVLANTag","*ReceiveBuffers","*RSS","*RssBaseProcNumber","*RssMaxProcNumber","*RSSProfile","*SpeedDuplex","*TCPChecksumOffloadIPv4","*TCPChecksumOffloadIPv6","*TransmitBuffers","*UDPChecksumOffloadIPv4","*UDPChecksumOffloadIPv6","AdaptiveIFS","ITR","LogLinkStateEvent","MasterSlave","NetworkAddress","WaitAutoNegComplete")]
        [String]

Can you use full typename [System.String]

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 112 at r4 (raw file):

        [Parameter(Mandatory = $true)]
        [String]

Can you use full typename [System.String]

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 123 at r4 (raw file):

    try
    {
        $netAdapteradvprop = Get-NetAdapterAdvancedProperty -Name $networkAdapterName  -RegistryKeyword $RegistryKeyword -ErrorAction Stop

Can you use variable name $netAdapterAdvancedProperty - we try to avoid abbreviating variable names.
Also, seems like there is too many spaces before -RegistryKeyword

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 154 at r4 (raw file):

<#
.SYNOPSIS
    Gets the current state of NetAdapterRss for a adapter.

The .SYNOPSIS is incorrect I think.

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 157 at r4 (raw file):

.PARAMETER NetworkAdapterName
    Specifies the Name of the network adapter to check.

Shouldn't this be something like:
Specifies the name of the network adapter to test the advanced property for.

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 168 at r4 (raw file):

{
    [CmdletBinding()]
    [OutputType([Boolean])]

Can you use full typename [System.Boolean]

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 172 at r4 (raw file):

    (
        [Parameter(Mandatory = $true)]
        [String]

Can you use full typename [System.String]

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 177 at r4 (raw file):

        [Parameter(Mandatory = $true)]
        [ValidateSet("*FlowControl","*InterruptModeration","*IPChecksumOffloadIPv4","*JumboPacket","*LsoV2IPv4","*LsoV2IPv6","*MaxRssProcessors","*NumaNodeId","*NumRssQueues","*PriorityVLANTag","*ReceiveBuffers","*RSS","*RssBaseProcNumber","*RssMaxProcNumber","*RSSProfile","*SpeedDuplex","*TCPChecksumOffloadIPv4","*TCPChecksumOffloadIPv6","*TransmitBuffers","*UDPChecksumOffloadIPv4","*UDPChecksumOffloadIPv6","AdaptiveIFS","ITR","LogLinkStateEvent","MasterSlave","NetworkAddress","WaitAutoNegComplete")]
        [String]

Can you use full typename [System.String]

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 181 at r4 (raw file):

        [Parameter(Mandatory = $true)]
        [String]

Can you use full typename [System.String]

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 189 at r4 (raw file):

            $localizedData.CheckingNetAdapterMessage
        ) -join '')

Remove two blank lines. Should only have 1 blank line here rather than 3.

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 194 at r4 (raw file):

    try
    {
        $netAdapteradvprop = Get-NetAdapterAdvancedProperty -Name $networkAdapterName  -RegistryKeyword $RegistryKeyword -ErrorAction Stop

Can you use variable name $netAdapterAdvancedProperty - we try to avoid abbreviating variable names.
Also, seems like there is too many spaces before -RegistryKeyword

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.psm1, line 210 at r4 (raw file):

            ) -join '')

        If ($RegistryValue -eq $netadapteradvprop.RegistryValue)

Lower case i in if.

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.schema.mof, line 4 at r4 (raw file):

class MSFT_xNetAdapterAdvancedProperty : OMI_BaseResource
{
    [Key,ValueMap{"*FlowControl","*InterruptModeration","*IPChecksumOffloadIPv4","*JumboPacket","*LsoV2IPv4","*LsoV2IPv6","*MaxRssProcessors","*NumaNodeId","*NumRssQueues","*PriorityVLANTag","*ReceiveBuffers","*RSS","*RssBaseProcNumber","*RssMaxProcNumber","*RSSProfile","*SpeedDuplex","*TCPChecksumOffloadIPv4","*TCPChecksumOffloadIPv6","*TransmitBuffers","*UDPChecksumOffloadIPv4","*UDPChecksumOffloadIPv6","AdaptiveIFS","ITR","LogLinkStateEvent","MasterSlave","NetworkAddress","WaitAutoNegComplete"},Values{"*FlowControl","*InterruptModeration","*IPChecksumOffloadIPv4","*JumboPacket","*LsoV2IPv4","*LsoV2IPv6","*MaxRssProcessors","*NumaNodeId","*NumRssQueues","*PriorityVLANTag","*ReceiveBuffers","*RSS","*RssBaseProcNumber","*RssMaxProcNumber","*RSSProfile","*SpeedDuplex","*TCPChecksumOffloadIPv4","*TCPChecksumOffloadIPv6","*TransmitBuffers","*UDPChecksumOffloadIPv4","*UDPChecksumOffloadIPv6","AdaptiveIFS","ITR","LogLinkStateEvent","MasterSlave","NetworkAddress","WaitAutoNegComplete"},Description("Specifies the registrykeyword of the property that should be in desired state.")] String RegistryKeyword;

Use camel case forRegistryKeyword in description.

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.schema.mof, line 5 at r4 (raw file):

{
    [Key,ValueMap{"*FlowControl","*InterruptModeration","*IPChecksumOffloadIPv4","*JumboPacket","*LsoV2IPv4","*LsoV2IPv6","*MaxRssProcessors","*NumaNodeId","*NumRssQueues","*PriorityVLANTag","*ReceiveBuffers","*RSS","*RssBaseProcNumber","*RssMaxProcNumber","*RSSProfile","*SpeedDuplex","*TCPChecksumOffloadIPv4","*TCPChecksumOffloadIPv6","*TransmitBuffers","*UDPChecksumOffloadIPv4","*UDPChecksumOffloadIPv6","AdaptiveIFS","ITR","LogLinkStateEvent","MasterSlave","NetworkAddress","WaitAutoNegComplete"},Values{"*FlowControl","*InterruptModeration","*IPChecksumOffloadIPv4","*JumboPacket","*LsoV2IPv4","*LsoV2IPv6","*MaxRssProcessors","*NumaNodeId","*NumRssQueues","*PriorityVLANTag","*ReceiveBuffers","*RSS","*RssBaseProcNumber","*RssMaxProcNumber","*RSSProfile","*SpeedDuplex","*TCPChecksumOffloadIPv4","*TCPChecksumOffloadIPv6","*TransmitBuffers","*UDPChecksumOffloadIPv4","*UDPChecksumOffloadIPv6","AdaptiveIFS","ITR","LogLinkStateEvent","MasterSlave","NetworkAddress","WaitAutoNegComplete"},Description("Specifies the registrykeyword of the property that should be in desired state.")] String RegistryKeyword;
    [Required, Description("Specifies the network adapter name")] String NetworkAdapterName;

Add full stop at the end of description.

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.schema.mof, line 6 at r4 (raw file):

    [Key,ValueMap{"*FlowControl","*InterruptModeration","*IPChecksumOffloadIPv4","*JumboPacket","*LsoV2IPv4","*LsoV2IPv6","*MaxRssProcessors","*NumaNodeId","*NumRssQueues","*PriorityVLANTag","*ReceiveBuffers","*RSS","*RssBaseProcNumber","*RssMaxProcNumber","*RSSProfile","*SpeedDuplex","*TCPChecksumOffloadIPv4","*TCPChecksumOffloadIPv6","*TransmitBuffers","*UDPChecksumOffloadIPv4","*UDPChecksumOffloadIPv6","AdaptiveIFS","ITR","LogLinkStateEvent","MasterSlave","NetworkAddress","WaitAutoNegComplete"},Values{"*FlowControl","*InterruptModeration","*IPChecksumOffloadIPv4","*JumboPacket","*LsoV2IPv4","*LsoV2IPv6","*MaxRssProcessors","*NumaNodeId","*NumRssQueues","*PriorityVLANTag","*ReceiveBuffers","*RSS","*RssBaseProcNumber","*RssMaxProcNumber","*RSSProfile","*SpeedDuplex","*TCPChecksumOffloadIPv4","*TCPChecksumOffloadIPv6","*TransmitBuffers","*UDPChecksumOffloadIPv4","*UDPChecksumOffloadIPv6","AdaptiveIFS","ITR","LogLinkStateEvent","MasterSlave","NetworkAddress","WaitAutoNegComplete"},Description("Specifies the registrykeyword of the property that should be in desired state.")] String RegistryKeyword;
    [Required, Description("Specifies the network adapter name")] String NetworkAdapterName;
    [Required, Description("Specifies the registryvalue.")] String RegistryValue;

Use camel case forRegistryValue in description.

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/MSFT_xNetAdapterAdvancedProperty.schema.mof, line 7 at r4 (raw file):

    [Required, Description("Specifies the network adapter name")] String NetworkAdapterName;
    [Required, Description("Specifies the registryvalue.")] String RegistryValue;
    [Read, Description("Output Display value of selected RegistryKeyword")] String DisplayValue;

Add full stop at the end of the description.

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/en-US/MSFT_xNetAdapterAdvancedProperty.strings.psd1, line 6 at r4 (raw file):

    CheckingNetAdapterMessage = Checking if network adapter exists or not.
    NetAdapterNotFoundMessage = Network adapter not found.
    NetAdapterTestingStateMessage = Checking if adapter {0} {1} is in desired state.

Can you add single quotes around the {1} as this will make it clearer what the RegistryValue is (just something we tend to do).

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/en-US/MSFT_xNetAdapterAdvancedProperty.strings.psd1, line 7 at r4 (raw file):

    NetAdapterNotFoundMessage = Network adapter not found.
    NetAdapterTestingStateMessage = Checking if adapter {0} {1} is in desired state.
    NetAdapterIsInDesiredStateMessage = Network adapter {0} {1} is in desired state {2}.

Can you add single quotes around the {1} as this will make it clearer what the RegistryValue is (just something we tend to do) and also around the {2}.

Modules/xNetworking/DSCResources/MSFT_xNetAdapterAdvancedProperty/en-US/MSFT_xNetAdapterAdvancedProperty.strings.psd1, line 8 at r4 (raw file):

    NetAdapterTestingStateMessage = Checking if adapter {0} {1} is in desired state.
    NetAdapterIsInDesiredStateMessage = Network adapter {0} {1} is in desired state {2}.
    NetAdapterApplyingChangesMessage = Network adapter {0} {1} was {2}, should be {3}, applying changes.

Can you add single quotes around the {1} as this will make it clearer what the RegistryValue is (just something we tend to do) and also around the {2} and {3}.

Modules/xNetworking/Examples/Resources/xNetAdapterAdvancedProperty/1-JumboPacket.ps1, line 20 at r4 (raw file):

        xNetAdapterAdvancedProperty JumboPacket9014
        {
            NetworkAdapterName = 'Ethernet'

Can you use VS Code Format document to cause these = values to all line up? I wrote about it here: https://dscottraynsford.wordpress.com/2017/11/18/auto-formatting-powershell-in-visual-studio-code/

Tests/Unit/MSFT_xNetAdapterAdvancedProperty.Tests.ps1, line 43 at r4 (raw file):

            RegistryValue = 1514
        }
        function Get-NetAdapterAdvancedProperty { }

Can you add a blank line before this one?

Tests/Unit/MSFT_xNetAdapterAdvancedProperty.Tests.ps1, line 44 at r4 (raw file):

        }
        function Get-NetAdapterAdvancedProperty { }
        Describe "$($script:DSCResourceName)\Get-TargetResource" -Tag 'Get' {

Can you add a blank line before this one?

Tests/Unit/MSFT_xNetAdapterAdvancedProperty.Tests.ps1, line 55 at r4 (raw file):

                It 'Should return the JumboPacket size' {
                    $result = Get-TargetResource @TestJumboPacket9014
                    $result.RegistryValue | Should Be $TestJumboPacket9014.RegistryValue

We're moving to Pester v4 guidelines, so can you change all parameter names after a Should function to start with dash.
E.g.
Should Be ... -> Should -Be ...
Should Throw ... -> 'Should -Throw ...`
Can you change throughout this script? There is a script you can use to do this easily: https://gist.github.com/indented-automation/aeb14825e39dd8849beee44f681fbab3

Tests/Unit/MSFT_xNetAdapterAdvancedProperty.Tests.ps1, line 80 at r4 (raw file):

                }
            }
            Context 'Adapter does not exist' {

Can you add a blank line before this one?

Tests/Unit/MSFT_xNetAdapterAdvancedProperty.Tests.ps1, line 88 at r4 (raw file):

                It 'Should throw an exception' {
                    { Get-TargetResource @TestAdapterNotFound } | Should throw $errorRecord

Capital T for throw

Tests/Unit/MSFT_xNetAdapterAdvancedProperty.Tests.ps1, line 97 at r4 (raw file):

            Describe "$($script:DSCResourceName)\Set-TargetResource" {

Please remove blank line

Tests/Unit/MSFT_xNetAdapterAdvancedProperty.Tests.ps1, line 154 at r4 (raw file):

                    }
                }

Please remove 2 blank lines - should only have 1 blank line here.

Tests/Unit/MSFT_xNetAdapterAdvancedProperty.Tests.ps1, line 172 at r4 (raw file):

                    }
                }

Please remove blank line

Tests/Unit/MSFT_xNetAdapterAdvancedProperty.Tests.ps1, line 174 at r4 (raw file):

            }

Please remove blank line

Tests/Unit/MSFT_xNetAdapterAdvancedProperty.Tests.ps1, line 176 at r4 (raw file):

        }
        Describe "$($script:DSCResourceName)\Test-TargetResource" {

Please add blank line here

Tests/Unit/MSFT_xNetAdapterAdvancedProperty.Tests.ps1, line 190 at r4 (raw file):

                }

                it 'Should call all mocks' {

Capital I for It.

Tests/Unit/MSFT_xNetAdapterAdvancedProperty.Tests.ps1, line 207 at r4 (raw file):

                }

                it 'Should call all mocks' {

Capital I for It.

Comments from Reviewable


new: create test functions for scipy-quant

co-authored-by: Ahmed Darwish<EMAIL_ADDRESS>co-authored-by: Michał Stęchły<EMAIL_ADDRESS>Description
Include description of feature this PR introduces or a bug that it fixes. Include the following information:
Moved scipy-quant from z-quantum to orquestra-opt and created test functions.
Please verify that you have completed the following steps

[X] I have self-reviewed my code.
[X] I have included test cases validating introduced feature/fix.
[X] I have updated documentation.

Codecov Report

Merging #12 (68d5847) into main (b319b2f) will decrease coverage by 0.27%.
The diff coverage is 91.42%.

@@            Coverage Diff             @@
##             main      #12      +/-   ##
==========================================
- Coverage   98.18%   97.90%   -0.28%
==========================================
  Files          25       26       +1
  Lines         825      860      +35
==========================================
+ Hits          810      842      +32
- Misses         15       18       +3

Impacted Files
Coverage Δ

src/orquestra/opt/api/optimizer_test.py
100.00% <ø> (ø)

...orquestra/opt/optimizers/scikit_quant_optimizer.py
91.42% <91.42%> (ø)

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 b319b2f...68d5847. Read the comment docs.

Implemented the changes from first PR


Add hide and show commands

Check if a large number of removeMapIDs are executed against a specific player and there is a lag on the untargeted players. I would like to know if running setPopup/addMapObject for each person instead of peer_id=-1 would cause problems

As a result of the experiment, it was only the target players that experienced lag.

Functions using ui_id should be limited to no more than 100 calls/tick per player. If you call more than that, the player will experience lag.

It seems like a good idea to pre-list the players who need to set markers.


Week added to aggregation and expiring data process

Coverage increased (+0.05%) to 50.652% when pulling a393cfae7088c4dafec1eaa3cac33d0071c99f6c on compae:feature/date-aggregation-weekly into 4c0869f30012842b71439ccf8983d74dad8423d0 on Stratio:master.

Coverage increased (+0.05%) to 50.652% when pulling a393cfae7088c4dafec1eaa3cac33d0071c99f6c on compae:feature/date-aggregation-weekly into 4c0869f30012842b71439ccf8983d74dad8423d0 on Stratio:master.

Changes Unknown when pulling 9b22a4fd1587600d5794d5ae9d63984ed5b4586c on compae:feature/date-aggregation-weekly into ** on Stratio:master**.


[Docs]: Can't find how to completely disable SSL

Is there an existing issue already for your request/idea?

[x] I have searched for an existing issue, and could not find anything. I believe this is a new documentation enhancement to be evaluated.

What problem in the existing documentation this issue aims to solve?
I want to use Istio for strict mutual TLS, but I can't figure out how to completely disable SSL from operator.
Describe what additions need to be done to the documentation
No response
Describe what pages need to change in the documentation, if any
No response
Describe what pages need to be removed from the documentation, if any
No response
Additional context
No response
Backport?
N/A
Code of Conduct

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

hey @framework20 , did you able to disable to ssl? i'm facing the same issue while migrating the zalando postgres cluster to cloudnative-pg.

Hi @anaskhantpl! Not yet, I'm trying to figure it out in my free time. If you find a solution or understand which way to look, write here pls, I will be glad and we will think together.


Ride OpeningTime and ClosingTime lost in v3.0

Hi,
Since v3, the response to GetWaitTimes(), doesn't include opening time and closing time of each ride anymore (tested with disneylandparis)
Is it possible to restore this functionality ?
Thanks

Back in v2 of the library, we were using an old version of the Disneyland Paris API which is no longer used or updated by Disney sadly.
They now use the same API servers and setup as the Florida/California parks, which probably offer ride opening times but I'm not sure where that data is yet. We can try and find that and add it if it's in there, I can give it a poke over the weekend if I get a spare moment.

Could be great ! Thanks !

See PR #15 for work on this (combined with some work for issue #14).
Hopefully have most of this work done today, just need to watch some of the park APIs during operating hours to confirm how they behave when rides are down for maintenance etc.

Added ride schedule data to Disney parks in 3.0.6, which is on npm now.

Great !


jonatan: update atmosphere.js package jonatan:angular-google-places-autocomplete?

Meteor's atmosphere.js provides a means whereby folks anonymously post packages of projects like angular-google-places-autocomplete, with no way to contact them.
The only working packaging of a-g-p-a is jonatan:angular-google-places-autocomplete, which was released once and needs updating to pick up the forceSelection fix from last March.
I'm posting this here in the hope that "jonatan" sees it.  I've tried several other ways to contact.

+1 my next step is to make my own package of this code.


Pico Speaker JSON File

What is your question?
So I'm planning to do a Lua port of a Starlight Mayhem stage, and I wanna ask 3 questions:

In Stress, how does the picospeaker JSON file work (the file in the data file for Stress)?
Can I do something similar for other characters not in dadGroup, gfGroup, or boyfriendGroup (e.g. Lua characters)?
Can I run a character file in Lua and incorporate that with a file similar to picospeaker?

Bumping this because I still can't figure it out.

it uses another json file called picospeaker which is basically just a normal chart file except it uses those notes to make pico play different shooting animations
as far as I can see there's no way to make this work with other characters without changing the source code, what you can do however is use the play animation event to make something similar, however, that only works with dad bf and gf so if you wanna do it with a background character per se then you'd have to make a custom event to make that character play animations


Add lintr / other checks to github actions workflow for merging into dev

Look at  https://github.com/jimhester/lintr
Can add tests maybe

https://devtools.r-lib.org/reference/check.html


Add isEmpty on required string

ValidationBuilder().required("").build()
only works on strings that are null. However when a string is empty "" the validator says that it's valid. I expected an invalid error.

Yeah, it appears that when using a TextEditingController, the value is often silently converted from a null into an empty string, so as a result this required check never hits, even though the fields are empty.

Another workaround is an extension method:
extension CustomValidationBuilder on ValidationBuilder {
  notEmpty() => add((value) {
    return value.isEmpty ? 'This field is required' : null;
  });
}


'ITK_MAX_THREADS': undeclared identifier

g:\test\vcpkg\buildtrees\itk\itk\modules\remote\rtk\include\rtkJosephForwardAttenuatedProjectionImageFilter.h(86): error C2065: 'ITK_MAX_THREADS': undeclared identifier (+ a few other occourences)
According to a quick search within the sources of itk ITK_MAX_THREADS has been moved into the itk namespace itk::ITK_MAX_THREADS

Thanks for the report, this occurred with ITK_FUTURE_LEGACY_REMOVE ON. Fixed by db27af0.


Hotfix/improve glsl semantic conversion

Set the requiredType for on glsl for hlsl semantics
Added isTypeEqual function that will compare types based on contents (not pointer value)
Improve comments based on review.

@jsmall-nvidia Did you mean to reopen this PR, or is that something GitHub did automatically when you merged code into the branch? If possible, I'd prefer to use a new PR for any follow-on work.


Shrink By option does not work if atlas ON

Operating system or device - Godot version:
Windows 10, 2.1 alpha with 182ee80
Issue description (what happened, and what was expected):
Shrink By option does not work if altas ON.
Steps to reproduce:

make an image group at Project Export Settings > Image Groups
chage Compress Mode to Compress Disk
change shrink by option value to 4
export project and run
can see blurry image
make Atlas ON
export project and run
can not see blurry image (not shrink)

Link to minimal example project (optional but very welcome):

it seems to work for me, can you try erasing your export cache (just delete everything in ~/.godot/tmp ) and re export directly with shrink by 4? I want to know of this is a cache issue

@reduz yes. it works after clear cache in ~/.godot/tmp

oh thanks for the info, it seems it is a cache issue then, will take a
look
On Sun, Jun 12, 2016 at 12:20 PM, volzhs<EMAIL_ADDRESS>wrote:

@reduz https://github.com/reduz yes. it works after clear cache in
~/.godot/tmp
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/4990#issuecomment-225442716,
or mute the thread
https://github.com/notifications/unsubscribe/AF-Z27Zea8Cn5BoEeZ3gyj-ZVHotnMh5ks5qLCOhgaJpZM4IskB7
.

This is somewhere either in editor_import_export.cpp (most likely) or editor_texture_import_plugin.cpp
The generated atlases are cached sp they don't have to be re-generated every time, and they are cached together with a configuration file of the parameters use to cache the atlas. In theory, if the parameters are different (in this case shrink x2) , the atlas cache should no longer valid.
This piece of code (image conversion mostly) is pretty hacky, all the EditorImportExport options will need a serious clean-up at some point. For now fixing the bug would be enough

to add more detail, the specific bug is that the atlas is not being regenerated (the cache version is used) despite the parameters changed

As there was no answer to the above request, we're closing this issue as inactive.
If you can still reproduce it, please open a new issue against a currently supported release of Godot.

generating altas at exporting is removed in 3.x so...
I expect rewritten one will be added at some point and this issue might not happen again.


Update Health Checks to 6.0

Fixes #24092.
Internal Preview URL.
Working notes on changes:

Removed two sections:

Metric-based probe with a custom response writer: I don't think this offers anything in the context of health checks that's not already covered elsewhere in the topic.
Restrict health checks with MapWhen: This looks like it would have never compiled, so I don't think it's serving any value.

Removed instructions to run different scenarios in the sample app.
Combined RequireHost and Filter by port.

@Rick-Anderson If you get chance, can you take a quick look at this one? Ignore the Distribute a health check library section, as I'm not quite gonna get to that today. I've made some biggish changes in this one, and I still need to do a final edit pass, but it'd be good to get some feedback before I get back to it early next week.
No worries if you don't have time yet, of course.

@glennc would you like anyone to review the Health checks update to .NET 6?


Accounting points need effective dates when created

Is your feature request related to a problem? Please describe.

If we don't know the effective date of an accounting point, we cannot verify if any processes within the MR domain are initiated before the existing of the metering/accounting point
Specifically for a move in process it relates to this rule found in the validation sheet:

Rule Description
Rule Explanation
Exception Message
Exception Details
Rejection Code

The metering point to which the received data applies must be known in the system
Only transactions on registered metering points are allowed, meaning not only an ID but also a corresponding state must exist
GSRN-code <1> unknown: The specified metering point has not been registered in the system on effectuation date <2>
<1> gsrn <2> effective date
Code E10

Describe the solution you'd like.

We need to add effective dates to our accounting points based on the effective dates stemming from the MeteringPointCreated events.

Reopening. Adding the specific rule this is needed for in MR domain. It is important we include all relevant data when


[VM initialization] - Please generate the SDK against 4.3.9-1

The problem
Initializing a VM in a generic way was a long standing issue of the API.
The variance between system requrired specific client interaction and caused fraction
in usage, and room for bugs:
To run a Centos VM and initialize it:
vm =  { .... initizliation: {...generic attributes and/or specific cloud init stuff}
vm.useCloudinit().run
Window VM
vm = { .. initialization: { ... generic attributes and/or specific sysprep...}
vm.useSysprep().run
RHCOS/FCOS in 4.3.9-1 and above
vm = { ... osType=rhcos_x86 ... initialization: {...custom_script: ..} }
Now the API is streamlined, and relies on the os-type. so to initialize, just use:
vm.useInitialization().run
The only requirement is to make sure the right os is picked for the target VM. That's enough
info to pick the right method.

The metamodel version speicifed in the root pom.xml
latest metamode-4.3.9-1

Expected behavior: [What you expect to happen]
to run a vm and initializae in 4.3.9-1 and above inthe same way: vm.useInitialization().run
Actual behavior: [What actually happens]
Have to switch/case the VM type. Can't have a generic client.
Reproduces how often: [What percentage of the time does it reproduce?]
100%
Link to logs [ Good To Have ]
https://bugzilla.redhat.com/show_bug.cgi?id=1797659
This Change should follow a change in Terraform provider ovirt, to make it support all initialization
of all VMs. Currently is only supports cloud-init

@imjoey PTAL

@rgolangh thanks for reporting and reminding. This is a very helpful feature. I'll working on this right now.

@imjoey I think we need branch per major version. I would like a 4.3 lease, along with 4.4. Do you
have any idea how to do that?

@rgolangh yep,  good point. A new branch sdk_4.3 is for 4.3.x release iteration.  While I'm a little confused about do we need the new branch sdk_4.4 for 4.4.x versions, or simply use master branch? Any insights are welcome. Thanks.

master reflect 4.4 so I guess there is no other branch needed
On Thu, 12 Mar 2020 at 17:36, Joey<EMAIL_ADDRESS>wrote:

@rgolangh https://github.com/rgolangh yep, good point. A new branch
sdk_4.3 is for 4.3.x release iteration. While I'm a little confused about
do we need the new branch sdk_4.4 for 4.4.x versions, or simply use master
branch? Any insights are welcome. Thanks.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/oVirt/ovirt-engine-sdk-go/issues/201#issuecomment-598255365,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABGBYHEFOW3JYJSI5ZIEPGTRHD6NZANCNFSM4LGLY3EQ
.

master reflect 4.4 so I guess there is no other branch needed

Thanks @rgolangh  for your reply. I reviewed the previous releases and I'm afraid that I mistakenly matched the version of model and sdk. For example, the very early version 4.3.2 had already started using model 4.4.0.
Do you have any good suggestions on how to handle this tough situation? Do we need to fix the previous mistake?

Calling @mwperina to participate.
To be clear we are talking on branches in this project and also in go-ovirt right?
For whoever is using the sdk's master branch, we keep tracking 4.4.
For 4.3 lets create an sdk_4.3 branch to be generated from model_4.3 branch
So if anyone is experienceing problem because they interfacing engine 4.3 with the current  version of the sdk (4.4) then they are advised to vendor the sdk_4.3 branch .
The semver of the tags on go-ovirt can then added on the branches. For example in sdk_4.3 branch we could tag v<IP_ADDRESS> when we generate from it.

@rgolangh yep, only this project needs multiple branches. Totally agreed with your insights above. One question I'm very concerned about is which commit would be the start point for this new sdk_4.3 ?
Cause the very early version 4.3.2 had already started using model 4.4.0, so I guess there may be two options:

Fork from tag 4.3.1 which was using model 4.3.21
Fork from the latest release 4.4.1 (even 4.4.2 which includes the newest patch) and then simply change the model version to the latest 4.3.31

From my point of view, I would prefer option 2.  What's your opinions? @rgolangh @mwperina Thanks.

On Fri, 13 Mar 2020 at 17:10, Joey<EMAIL_ADDRESS>wrote:

@rgolangh https://github.com/rgolangh yep, only this project needs
multiple branches. Totally agreed with your insights above. One question
I'm very concerned about is which commit would be the start point for this
new sdk_4.3 ?
Cause the very early version 4.3.2 had already started using model 4.4.0,
so I guess there may be two options:

Fork from tag 4.3.1 which was using model 4.3.21
Fork from the latest release 4.4.1 (even 4.4.2 which includes the
newest patch) and then simply change the model version to the latest
4.3.31

From my point of view, I would prefer option 2. What's your opinions?
@rgolangh https://github.com/rgolangh @mwperina
https://github.com/mwperina Thanks.
—

Ok now I get more clearly what you are asking. Will the end result be
different for those 2 solutions?

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/oVirt/ovirt-engine-sdk-go/issues/201#issuecomment-598767557,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABGBYHDWGW55DOTFNWOPQMDRHJEHJANCNFSM4LGLY3EQ
.

@rgolangh  I'm afraid yes.

Solution 1 will give us a more clean and correct commit history which only use model_4.3, but requires backporting plenty of patches from our latest version (sdk_4.4).
Solution 2 does not need backporting patches, but will definitely contain the incorrect commit history, e.g.: sdk_4.3.9 uses model_4.4.10.

Neither would be perfect though.

Is this still relevant? @rgolangh ? @imjoey ?

we are using effectively using go-ovirt 4.4 version which have compatibility with 4.3 engine. I still think this is important and we should have it, but not urgent.

Closing due to capacity. We are using master everywhere so no real point in pushing for a 4.3 respin.


FEN parsing

I wonder if I should split Chess.lean into its own repo as a standalone project.

I wonder if I should split Chess.lean into its own repo as a standalone project.

I think that would make sense!


[Plugins] Provide a structure for plugin logging/errors

Right now, plugins use console.log/console.error to log messages to the dev console. This ends up with users seeing a big console log stream when they build, when we have the structure in place for each "step"/"plugin" to log to it's own "section".
Current Build Output
[DASHBOARD]

▼ Console

[log] ANY RANDOM PLUGIN OUTPUT
[log] INSTALL LOGS
[log] BUNDLER LOGS

Desired Build Output
[DASHBOARD]

▼ Plugin Name

[LOG MESSAGE]
[WARN MESSAGE]

▼ Optimizing Dependencies

INSTALL LOGS

▼ Optimizing Application (@snowpack/plugin-webpack)

BUNDLER LOGS

(mostly) resolved in #567


CMakeLists.txt for the CMake support

We need CI integration (.travis.yml) so we can automatically verify the CMakefile is correct (and doesn't break later).

@0xHexE are you interested in picking this PR up? This looks like a good start but should also include targets to run scan upon building etc. And if we switch to cmake we should probably also consider dropping the gnu makefile.

I would love to keep the normal Makefile for simple test running on systems running CMake.

you mean for systems not using cmake? It's pretty safe to switch from makefile -> cmake as cmake generates makefiles (or ninja files), but we can keep the gnu makefile if you'd prefer.

Continuing this work in #65.


User objects in kubeconfig are not per cluster friendly

What kind of request is this (question/bug/enhancement/feature request):
Bug
Steps to reproduce (least amount of steps as possible):

Sign in as user
Create multiple clusters
Generate kubeconfig for at least two clusters

Result:

User object will have the same name field, but different token fields. Ideally this would be something like user-ab11z.$clusterID if the tokens are now generated per cluster.

Other details that may be helpful:
This is a change it seems in 2.2.0 after talking with some folks at rancher in how the token field is generated.
e.g.
Pre 2.2.0
kubeconfig-user-ab11z:YAYATOKEN

vs
2.2.0
kubeconfig-user-ab11z.c-a123b:YAYATOKEN

Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): 2.2.0
Installation option (single install/HA): HA

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported): Custom
Machine type (cloud/VM/metal) and specifications (CPU/memory):AWS, m5.xlarge
Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019-01-13T23:15:13Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.4", GitCommit:"c27b913fddd1a6c480c229191a087698aa92f0b1", GitTreeState:"clean", BuildDate:"2019-02-28T13:30:26Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

Docker version (use docker version):

Client:
 Version:      17.03.2-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   f5ec1e2
 Built:        Tue Jun 27 02:21:36 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.2-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   f5ec1e2
 Built:        Tue Jun 27 02:21:36 2017
 OS/Arch:      linux/amd64
 Experimental: false

Is this actually a bug or an enhancement? If I create two clusters I see different usernames in the token entries:

I am for changing the users.name entry to match what is in the token if it makes it easier to copy & paste those entries to another kubeconfig, but the kubeconfig should work as is without issue. I think this request should be changed to an enhancement unless you have more info to show an issue. FWIW in the docs we say: This kubeconfig file and its contents are specific to the cluster you are viewing. You will need a separate kubeconfig file for each cluster that you have access to in Rancher.

@erikwilson because the user.name field is the same across all clusters a given user has access to, it makes it annoying to configure multiple clusters in one kubeconfig file. Yes, users could use multiple kube config files, but then it becomes cumbersome to remember to use --kube-config vs --context.
Switching how the user.name field behaves enables people to use either workflow that works best for them, instead of being forced into one or have to input manual work when copy/pasting from rancher.
Additionally, this satisfies the request in #13853 to be able to generate one big kube config file :D

It is definitely an enhancement, as in it works as designed but you don't like how it's designed.  Seems reasonable to do something about though.
Another option is to just call the user the same as the cluster & context, calling it the random string user ID doesn't actually add any real value (and if you want to know it it's inside the token value).  I think thats what the UI did before it was switched to the server generating the config file...

Yah, annoying or ideally != bug if the generated kubeconfig works the way it is intended. #13853 is a feature request. I think this is a good idea and we should do it, but not a bug.

Arguably it could be classified as a UX bug (Pedantic on my part, I know :P). As a consumer (Let's say I'm newer to k8s and rely on rancher to help me out), the instructions tell me to place the contents to ~/.kube/config. I'm happy and hacking along, and now I need to do some stuff against another cluster, the rancher instructions now tell me to place the config in the same file. The rancher process flow has now caused me to no longer have a configuration for my previous cluster.
The docs are a lot more clear about using multiple files and the problem presented, but from the UI, it's not evident: https://rancher.com/docs/rancher/v2.x/en/cluster-admin/kubeconfig/
Triage the problem as you will, just know it's a major thorn for us and our internal customers who use rancher.

Facing same issue and agree that this is a bad user experience.

rancher/rancher:master-head  b8a4b64c
The newly generated kubeconfig file has the username equivalent to the cluster name, but when the local auth endpoint is enabled, there is no associated user for that context, and attempting to use that context fails with an authentication error.
apiVersion: v1
kind: Config
clusters:
- name: "ec2"
  cluster:
    server: "https://<rancher_host>/k8s/clusters/c-7th98"
    certificate-authority-data: cadata
- name: "ec2-brandon-ec2-ecw1"
  cluster:
    server: "https://<cluster_host>:6443"
    certificate-authority-data: cadata

users:
- name: "ec2"
  user:
    token: token

contexts:
- name: "ec2"
  context:
    user: "ec2"
    cluster: "ec2"
- name: "ec2-brandon-ec2-ecw1"
  context:
    user: "ec2-brandon-ec2-ecw1"
    cluster: "ec2-brandon-ec2-ecw1"

current-context: "ec2"

$> kubectl config use-context ec2-brandon-ec2-ecw1
Switched to context "ec2-brandon-ec2-ecw1"
$> kubectl api-resources
error: You must be logged in to the server (Unauthorized)

Changed to use the same user (named the base cluster name) for all the contexts.

rancher/rancher:master-head ca39b717

Deploy Rancher
Create Cluster w/ local auth endpoint enabled
Generate kubeconfig
Kubeconfig contains one user, with name equivalent to base cluster name
Each context uses the correct user
kubectl is functional for both contexts

Until this new feature is released or for those who use older version of Rancher, the solution is to manually prefix usernames from different clusters with cluster name or any arbitrary string. E.g.:
contexts:
- context:
    cluster: sandbox
    user: user-6bqmf
  name: sandbox
users:
- name: user-6bqmf
  user:
    token: kubeconfig-user-6bqmf.c-ltt4h:...

becomes
contexts:
- context:
    cluster: sandbox
    user: sandbox-user-6bqmf
  name: sandbox
users:
- name: sandbox-user-6bqmf
  user:
    token: kubeconfig-user-6bqmf.c-ltt4h:...

For sandbox cluster.


Allow to import Open Images annotations without images

Summary and Motivation
Open Images requires you to know the size of the image.
Current format implementation does not add Image to Item if the image has no path.
It is not possible to load a dataset without images, but with meta information about them.
How to test

Checklist

[ ] I submit my changes into the develop branch
[ ] I have added description of my changes into CHANGELOG
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues

License

[ ] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.
[ ] I have updated the license header for each file (see an example below)

# Copyright (C) 2021 Intel Corporation
#
# SPDX-License-Identifier: MIT

Will you add a test for this? There was a test for the image meta, maybe it needs to be changed?

Added test.


add password reset button and a note on password restrictions during registration

We've added the password reset button, but no note -- we'll need to think through how to best present such a note so that it does not interfere with the rest of the components.


Do not pollute working directory with temporary files

Various files like MockServerCertificate.pem, MockServerPublicKey.pem and MockServerPrivateKey.pem are created in the working directory.
They are meant to be deleted on VM exit, but sometimes this does not work, e. g. if the OS has a lock on the files or if the VM closes unexpectedly.
Please do not create those files in the working directory, but in the temporary directory instead where they do not disturb anything if they cannot be deleted.

This is now fixed


[#660] feat: big address sync improvement > pagination

Related to #660

Description
Paginated tx fetch on button detail table
We no longer fetch all txs for some address and then pass this as props to the table component, we actually pass the getter function to the table component and it only fetches from the DB  the txs we are actually going to render.
This means that addresses with a lot of txs don't become unusable, although there is still some considerable lag (~1s) when ordering & changing pages for these types of addresses, since prisma's findMany function lags when skipping & counting entries.
Test plan
Test the button/[id] (button detail view) for large and small addresses: the orderings should work, the new TX arrival automatic refresh should work, etc.
This PR also adds new integration tests to test the new query parameters for the address/transactions/[addressId] endpoint.

After loading the first 100 results, it starts grabbing single transactions after but really really slowly.

I couldn't reproduce that; with the address in question I only see it grabbing single new transactions, since all the old ones are seeded at build time and should be present already.

* When txs are loading in, it should be made clear in the UI. We had this but somehow it's not working here.

This should show "No transactions.", I don't understand why it doesn't show in yours. Maybe there is something in the browser/app console log?

Sometimes after refreshing, the total number of results shrinks (it went from 102 for me to 100, then to 101).

I'll try to reproduce that, it is indeed weird.

* Wallets page loading time is really bad after adding a big address.

This is consequence of #730, I'll fix in a separate PR


NextMajor & Running Tests: The identity check failed for the outgoing message

Describe the issue
Our build pipeline with NextMajor fails when trying to run tests.
We use the Swiss (CH) version of BC
I managed to get same error when I manually created a new container with NextMajor.
After stopping and restarting the container the error disappeared (??)
The actual error is in German unfortunately:
2022-02-08T13:56:41.1754157Z ERROR DIALOG: Fehler bei der Identitätsprüfung für eine ausgehende Nachricht. Die erwartete DNS-Identität des Remoteendpunkts war "", aber der Remoteendpunkt hat den DNS-Anspruch "d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf" bereitgestellt.  Unter 'net.tcp://localhost:7046/BC/Service' wurde kein Server gefunden. Möglicherweise ist die URL falsch, oder der Server ist zurzeit nicht verfügbar.
Scripts used to create container and cause the issue
CreateContainer.ps1:
Param(
[Parameter(Mandatory=$true)]
[string] $artifactUrl,
[Parameter(Mandatory=$true)]
[string] $containerName,
[string] $imageName = "BC-Image"
)
$credential = [PSCredential]::new("$ENV:Username", (ConvertTo-SecureString -String "$ENV:Password" -AsPlainText -Force))
$licenseFile = "$ENV:LicenseFile"
Write-Host "Create container $containerName from $artifactUrl"
$segments = "$PSScriptRoot".Split('')
$rootFolder = "$($segments[0])$($segments[1])"
$additionalParameters = @("--volume ""$($rootFolder):C:\Agent""")
$myscripts = @(@{'MainLoop.ps1' = 'while ($true) { start-sleep -seconds 10 }'})
$parameters = @{
"accept_eula"               = $true
"accept_outdated"           = $true
"includeTestToolkit"        = $true
"includeTestLibrariesOnly"  = $true
"containerName"             = $containerName
"imageName"                 = $imageName
"artifactUrl"               = $artifactUrl
"auth"                      = "NAVUserPassword"
"Credential"                = $credential
"updateHosts"               = $true
"doNotExportObjectsToText"  = $true
"doNotCheckHealth"          = $true
"EnableTaskScheduler"       = $false
"memoryLimit"               = "30G"
"licenseFile"               = $licenseFile
"additionalParameters"      = $additionalParameters
"myScripts"                 = $myscripts
"runSandboxAsOnPrem"        = $true # BC v18 and higher only. Improves performance for tests.
}
New-NavContainer @parameters
From RunTests.ps1:
Run-TestsInBcContainer -containerName $containerName -CompanyName "SwissdecSVTests" -XUnitResultFileName $TempTestResultFile -testSuite $testSuite -testCodeunit 3099152 -credential $credential -extensionId '*******' -culture 'de-CH' -AzureDevOps "warning" -detailed
Full output of scripts
2022-02-08T13:49:27.0238938Z ##[section]Starting: Create Build Container
2022-02-08T13:49:27.0344844Z ==============================================================================
2022-02-08T13:49:27.0345159Z Task         : PowerShell
2022-02-08T13:49:27.0345440Z Description  : Run a PowerShell script on Linux, macOS, or Windows
2022-02-08T13:49:27.0345700Z Version      : 2.198.0
2022-02-08T13:49:27.0345938Z Author       : Microsoft Corporation
2022-02-08T13:49:27.0346261Z Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/powershell
2022-02-08T13:49:27.0346617Z ==============================================================================
2022-02-08T13:49:27.6958234Z Generating script.
2022-02-08T13:49:27.6997303Z Formatted command: . 'C:\devops_agent_1\_work\1\s\scripts\Create-Container.ps1' -***Name "d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf" -artifactUrl "https://bcinsider.azureedge.net/sandbox/20.0.35891.0/ch***" -imageName "BC-Sandbox-NextMajor"
2022-02-08T13:49:27.7248754Z ========================== Starting Command Output ===========================
2022-02-08T13:49:27.7413063Z ##[command]"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ". 'C:\devops_agent_1\_work\_temp\f4b3457d-8c00-479e-8ac6-e702ccd3a3c6.ps1'"
2022-02-08T13:49:27.9269001Z Create *** d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf from https://bcinsider.azureedge.net/sandbox/20.0.35891.0/ch***
2022-02-08T13:49:28.1185847Z BcContainerHelper version 3.0.2-preview547
2022-02-08T13:49:28.1266928Z BcContainerHelper emits usage statistics telemetry to Microsoft
2022-02-08T13:49:28.8878696Z WARNING: Container name should not exceed 15 characters
2022-02-08T13:49:30.3647775Z BcContainerHelper is version 3.0.2-preview547
2022-02-08T13:49:30.3655979Z BcContainerHelper is running as administrator
2022-02-08T13:49:30.3672795Z Host is Microsoft Windows Server 2019 Standard - ltsc2019
2022-02-08T13:49:30.4922329Z Docker Client Version is 20.10.7
2022-02-08T13:49:30.4945496Z Docker Server Version is 20.10.7
2022-02-08T13:49:32.3836751Z Fetching all docker images
2022-02-08T13:49:32.5525834Z Fetching all docker volumes
2022-02-08T13:49:32.6680560Z ArtifactUrl and ImageName specified
2022-02-08T13:49:33.4259022Z Image bc-sandbox-nextmajor:sandbox-20.0.35891.0-ch already exists
2022-02-08T13:49:34.5440756Z Using image bc-sandbox-nextmajor:sandbox-20.0.35891.0-ch
2022-02-08T13:49:34.6730937Z Disabling Health Check (always report healthy)
2022-02-08T13:49:34.6833935Z Creating Container d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf
2022-02-08T13:49:34.6899786Z Style: sandbox
2022-02-08T13:49:34.6907350Z Multitenant: No
2022-02-08T13:49:34.6917995Z Version: 20.0.35891.0
2022-02-08T13:49:34.6931289Z Platform: 20.0.35749.0
2022-02-08T13:49:34.6938672Z Generic Tag: <IP_ADDRESS>
2022-02-08T13:49:34.6956982Z Container OS Version: 10.0.17763.2300 (ltsc2019)
2022-02-08T13:49:34.6961710Z Host OS Version: 10.0.17763.2300 (ltsc2019)
2022-02-08T13:49:34.7022916Z Using process isolation
2022-02-08T13:49:34.7073759Z Using locale de-CH
2022-02-08T13:49:34.7100386Z Disabling the standard eventlog dump to *** log every 2 seconds (use -dumpEventLog to enable)
2022-02-08T13:49:34.7213843Z Using license file https://***bcpipelines.blob.core.windows.net/***-pipeline-secrets/Entwicklerlizenz.flf
2022-02-08T13:49:34.7342662Z Downloading C:\ProgramData\BcContainerHelper\Extensions\d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf\my\license.flf
2022-02-08T13:49:35.0336250Z Additional Parameters:
2022-02-08T13:49:35.0349852Z --volume "C:\devops_agent_1:C:\Agent"
2022-02-08T13:49:35.0355267Z --env customNavSettings=EnableTaskScheduler=False
2022-02-08T13:49:35.0361249Z Files in C:\ProgramData\BcContainerHelper\Extensions\d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf\my:
2022-02-08T13:49:35.0399701Z - AdditionalOutput.ps1
2022-02-08T13:49:35.0406518Z - license.flf
2022-02-08T13:49:35.0411614Z - MainLoop.ps1
2022-02-08T13:49:35.0417913Z - SetupVariables.ps1
2022-02-08T13:49:35.0423049Z - updatehosts.ps1
2022-02-08T13:49:35.0428857Z Creating *** d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf from image bc-sandbox-nextmajor:sandbox-20.0.35891.0-ch
2022-02-08T13:49:35.2316321Z ccd61836c52580c93a78b1feea1be7dced88327dd8d9fd32571bb37753abc8e5
2022-02-08T13:49:36.4350440Z Waiting for *** d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf to be ready
2022-02-08T13:49:37.5660841Z Adding DSWS-BS1-GSC-A1 to hosts file
2022-02-08T13:49:37.5661231Z Initializing...
2022-02-08T13:49:37.5661882Z Setting host.***helper.internal to <IP_ADDRESS> in *** hosts file
2022-02-08T13:49:37.5662649Z Starting Container
2022-02-08T13:49:37.5663213Z Hostname is d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf
2022-02-08T13:49:38.7387456Z PublicDnsName is d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf
2022-02-08T13:49:38.7387893Z Using NavUserPassword Authentication
2022-02-08T13:49:39.8922578Z Starting Local SQL Server
2022-02-08T13:49:41.0230211Z Starting Internet Information Server
2022-02-08T13:49:41.0230641Z Creating Self Signed Certificate
2022-02-08T13:49:41.0230997Z Self Signed Certificate Thumbprint B6197B701EBEC42A6F63C8DEDE85C0B3B0D6A0C5
2022-02-08T13:49:41.0231504Z DNS identity d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf
2022-02-08T13:49:41.0231902Z Modifying Service Tier Config File with Instance Specific Settings
2022-02-08T13:49:41.0232290Z Modifying Service Tier Config File with settings from environment variable
2022-02-08T13:49:42.1523824Z Setting EnableTaskScheduler to False
2022-02-08T13:50:06.5976040Z Starting Service Tier
2022-02-08T13:50:06.5976408Z Registering event sources
2022-02-08T13:50:10.0663473Z Creating DotNetCore Web Server Instance
2022-02-08T13:50:10.0664143Z Enabling Financials User Experience
2022-02-08T13:50:10.0664952Z Using license file 'c:\run\my\license.flf'
2022-02-08T13:50:11.2063425Z Import License
2022-02-08T13:50:11.2063807Z Creating http download site
2022-02-08T13:50:11.2064088Z Setting SA Password and enabling SA
2022-02-08T13:50:12.3327028Z Creating *** as SQL User and add to sysadmin
2022-02-08T13:50:14.6001979Z WARNING: This license is not compatible with this version of Business Central.
2022-02-08T13:50:14.6002809Z Creating SUPER user
2022-02-08T13:50:14.6003400Z WARNING: The password that you entered does not meet the minimum requirements.
2022-02-08T13:50:14.6003868Z It should be at least 8 characters long and contain at least one uppercase
2022-02-08T13:50:14.6004245Z letter, one lowercase letter, and one number.
2022-02-08T13:50:15.7581669Z WARNING: This license is not compatible with this version of Business Central.
2022-02-08T13:50:16.9137658Z WARNING: This license is not compatible with this version of Business Central.
2022-02-08T13:50:16.9138210Z Container IP Address: <IP_ADDRESS>
2022-02-08T13:50:16.9138660Z Container Hostname  : d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf
2022-02-08T13:50:16.9139137Z Container Dns Name  : d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf
2022-02-08T13:50:16.9139688Z Web Client          : http://d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf/BC/
2022-02-08T13:50:16.9140168Z Dev. Server         : http://d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf
2022-02-08T13:50:16.9140544Z Dev. ServerInstance : BC
2022-02-08T13:50:16.9140942Z Setting d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf to <IP_ADDRESS> in host hosts file
2022-02-08T13:50:16.9141176Z
2022-02-08T13:50:16.9141404Z Files:
2022-02-08T13:50:16.9141791Z http://d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf:8080/ALLanguage.vsix
2022-02-08T13:50:16.9142031Z
2022-02-08T13:50:16.9142339Z WARNING: You are running a *** which is 90 days old.
2022-02-08T13:50:16.9142746Z Microsoft recommends that you always run the latest version of our ***s.
2022-02-08T13:50:16.9142939Z
2022-02-08T13:50:16.9143207Z Container Total Physical Memory is 63.8Gb
2022-02-08T13:50:16.9144130Z Container Free Physical Memory is 42.6Gb
2022-02-08T13:50:16.9144288Z
2022-02-08T13:50:16.9144565Z Initialization took 39 seconds
2022-02-08T13:50:16.9144854Z Ready for connections!
2022-02-08T13:50:17.4961008Z Reading CustomSettings.config from d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf
2022-02-08T13:50:18.0999755Z Creating Desktop Shortcuts for d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf
2022-02-08T13:50:19.3088464Z WARNING: This license is not compatible with this version of Business Central.
2022-02-08T13:50:19.4017011Z Skipping app 'C:\Applications.CH\Microsoft_Permissions Mock_20.0.35891.0.app' as it is already installed
2022-02-08T13:50:19.4156092Z WARNING: This license is not compatible with this version of Business Central.
2022-02-08T13:50:19.4243128Z Skipping app 'C:\Applications.CH\Microsoft_Test Runner_20.0.35891.0.app' as it is already installed
2022-02-08T13:50:19.4566072Z WARNING: This license is not compatible with this version of Business Central.
2022-02-08T13:50:19.4648980Z Skipping app 'C:\Applications.CH\Microsoft_Any_20.0.35891.0.app' as it is already installed
2022-02-08T13:50:19.4785031Z WARNING: This license is not compatible with this version of Business Central.
2022-02-08T13:50:19.4873673Z Skipping app 'C:\Applications.CH\Microsoft_Library Assert_20.0.35891.0.app' as it is already installed
2022-02-08T13:50:19.5003416Z WARNING: This license is not compatible with this version of Business Central.
2022-02-08T13:50:19.5092616Z Skipping app 'C:\Applications.CH\Microsoft_Permissions Mock_20.0.35891.0.app' as it is already installed
2022-02-08T13:50:19.5230838Z WARNING: This license is not compatible with this version of Business Central.
2022-02-08T13:50:19.5383254Z Skipping app 'C:\Applications.CH\Microsoft_Library Variable Storage_20.0.35891.0.app' as it is already installed
2022-02-08T13:50:19.5545639Z WARNING: This license is not compatible with this version of Business Central.
2022-02-08T13:50:19.5633131Z Skipping app 'C:\Applications.CH\Microsoft_System Application Test Library_20.0.35891.0.app' as it is already installed
2022-02-08T13:50:19.5826899Z WARNING: This license is not compatible with this version of Business Central.
2022-02-08T13:50:19.5909913Z Skipping app 'C:\Applications.CH\Microsoft_Tests-TestLibraries_20.0.35891.0.app' as it is already installed
2022-02-08T13:50:19.5914416Z TestToolkit successfully imported
2022-02-08T13:50:20.1597582Z Container d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf successfully created
2022-02-08T13:50:20.1606363Z
2022-02-08T13:50:20.1638564Z Use:
2022-02-08T13:50:20.1693129Z Get-BcContainerEventLog -***Name d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf to retrieve a snapshot of the event log from the ***
2022-02-08T13:50:20.1707738Z Get-BcContainerDebugInfo -***Name d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf to get debug information about the ***
2022-02-08T13:50:20.1717419Z Enter-BcContainer -***Name d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf to open a PowerShell prompt inside the ***
2022-02-08T13:50:20.1726840Z Remove-BcContainer -***Name d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf to remove the *** again
2022-02-08T13:50:20.1736326Z docker logs d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf to retrieve information about URL's again
2022-02-08T13:50:20.9771370Z ##[section]Finishing: Create Build Container

2022-02-08T13:54:21.4638714Z ##[section]Starting: Run Tests
2022-02-08T13:54:21.4741500Z ==============================================================================
2022-02-08T13:54:21.4741824Z Task         : PowerShell
2022-02-08T13:54:21.4742120Z Description  : Run a PowerShell script on Linux, macOS, or Windows
2022-02-08T13:54:21.4742403Z Version      : 2.198.0
2022-02-08T13:54:21.4742648Z Author       : Microsoft Corporation
2022-02-08T13:54:21.4742988Z Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/powershell
2022-02-08T13:54:21.4743352Z ==============================================================================
2022-02-08T13:54:22.1586190Z Generating script.
2022-02-08T13:54:22.1631950Z Formatted command: . 'C:\devops_agent_1\_work\1\s\scripts\Run-Tests.ps1' -***Name "d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf" -BuildArtifactFolder "C:\devops_agent_1\_work\1\a" -TestResultsFile (Join-Path "C:\devops_agent_1\_work\1\s" "TestResults.xml") -TestSuite "DEFAULT" -TempFolder "C:\devops_agent_1\_work\_temp" -platform "Sandbox" -runCodeCoverage "true"
2022-02-08T13:54:22.1891302Z ========================== Starting Command Output ===========================
2022-02-08T13:54:22.2064015Z ##[command]"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ". 'C:\devops_agent_1\_work\_temp\d2fa701e-23d4-48a2-984c-1d541bdba397.ps1'"
2022-02-08T13:54:23.3231766Z Create Companies
2022-02-08T13:55:44.2833769Z Initializing TestSuite on d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf
2022-02-08T13:55:56.4256150Z Running BeforeTestrunner with dataset SwissdecSV on d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf
2022-02-08T13:56:34.7657430Z Running Swissdec SV tests on d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf
2022-02-08T13:56:34.9298573Z BcContainerHelper version 3.0.2-preview547
2022-02-08T13:56:34.9374216Z BcContainerHelper emits usage statistics telemetry to Microsoft
2022-02-08T13:56:37.7884846Z Connecting to http://localhost:80/BC/cs?tenant=default&company=SwissdecSVTests
2022-02-08T13:56:41.1754157Z ERROR DIALOG: Fehler bei der Identitätsprüfung für eine ausgehende Nachricht. Die erwartete DNS-Identität des Remoteendpunkts war "", aber der Remoteendpunkt hat den DNS-Anspruch "d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf" bereitgestellt.  Unter 'net.tcp://localhost:7046/BC/Service' wurde kein Server gefunden. Möglicherweise ist die URL falsch, oder der Server ist zurzeit nicht verfügbar.
2022-02-08T13:56:41.4492732Z at Run-Tests, C:\ProgramData\BcContainerHelper\Extensions\d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf\PsTestTool\PsTestFunctions.ps1: line 380
2022-02-08T13:56:41.4495188Z at <ScriptBlock>, <No file>: line 61
2022-02-08T13:56:41.4831891Z Cannot open page 130455. You might need to import the test toolkit to the *** and/or remove the folder C:\ProgramData\BcContainerHelper\Extensions\d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf\PsTestTool and retry. You might also have URL or Company name wrong.
2022-02-08T13:56:41.4848975Z at Run-Tests, C:\ProgramData\BcContainerHelper\Extensions\d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf\PsTestTool\PsTestFunctions.ps1: line 380
2022-02-08T13:56:41.4852223Z at <ScriptBlock>, <No file>: line 61
2022-02-08T13:56:41.4863377Z at Invoke-ScriptInBcContainer, C:\Program Files\WindowsPowerShell\Modules\BcContainerHelper\3.0.2\ContainerHandling\Invoke-ScriptInNavContainer.ps1: line 43
2022-02-08T13:56:41.4869508Z at Run-TestsInBcContainer, C:\Program Files\WindowsPowerShell\Modules\BcContainerHelper\3.0.2\AppHandling\Run-TestsInNavContainer.ps1: line 360
2022-02-08T13:56:41.4875690Z at <ScriptBlock>, C:\devops_agent_1\_work\1\s\scripts\Run-Tests.ps1: line 108
2022-02-08T13:56:41.4881237Z at <ScriptBlock>, C:\devops_agent_1\_work\_temp\d2fa701e-23d4-48a2-984c-1d541bdba397.ps1: line 3
2022-02-08T13:56:41.4884130Z at <ScriptBlock>, <No file>: line 1
2022-02-08T13:56:43.0826209Z Run-TestsInBcContainer Telemetry Correlation Id: 8ca9d9a3-b375-4c77-b9e3-c5411bc8b2b2
2022-02-08T13:56:43.1965008Z Cannot open page 130455. You might need to import the test toolkit to the *** and/or remove the folder
2022-02-08T13:56:43.1965886Z C:\ProgramData\BcContainerHelper\Extensions\d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73bcb43513bf\PsTestTool and
2022-02-08T13:56:43.1966625Z retry. You might also have URL or Company name wrong.
2022-02-08T13:56:43.1967528Z At C:\Program Files\WindowsPowerShell\Modules\BcContainerHelper\3.0.2\AppHandling\Run-TestsInNavContainer.ps1:490
2022-02-08T13:56:43.1968044Z char:17
2022-02-08T13:56:43.1968427Z +                 throw $_.Exception.Message
2022-02-08T13:56:43.1968789Z +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~
2022-02-08T13:56:43.1969424Z     + CategoryInfo          : OperationStopped: (Cannot open pag...any name wrong.:String) [], RuntimeException
2022-02-08T13:56:43.1970056Z     + FullyQualifiedErrorId : Cannot open page 130455. You might need to import the test toolkit to the *** and/
2022-02-08T13:56:43.1970640Z    or remove the folder C:\ProgramData\BcContainerHelper\Extensions\d***-bs1-gsc-a1-10685-9716c0e7-77fa-51af-4622-73b
2022-02-08T13:56:43.1971146Z   cb43513bf\PsTestTool and retry. You might also have URL or Company name wrong.
2022-02-08T13:56:43.1971482Z
2022-02-08T13:56:43.2640039Z ##[error]PowerShell exited with code '1'.
2022-02-08T13:56:43.2931325Z ##[section]Finishing: Run Tests

...

Screenshots
This is the eventlog of the same error when I tried to login to the manually created container:

After stopping and starting the docker container this error disappeared.
Additional context

does it happen all the time?
Yes. In pipeline
did it use to work?
Yes

Might be the same problem as #2298 - will investigate

https://bcinsider.azureedge.net/sandbox/20.0.35117.0/ch
is the last version which still works for us.

The eventlog you display here is from the Web Client not being able to connect to the Service Tier - this is a symptom.
Prior to that, there is probably an event log entry that the Service Tier has crashed and is no longer running.

I cannot seem to repro this problem, but due to 2298 - I do think we have a problem.

If you can stop the script right before run-tests and check whether the service tier is running - then we will know whether it is caused by run-tests or whether the real problem is earlier

I’ll try. My guess is that the problem is before running tests because I didn’t run tests on the manually created container.

We have an upcoming fix for 2298 - I would like to see that before diving deeper into this one.

Please retry this with insider build 20.0.36207.0 or later, thanks

Just tried with /sandbox/20.0.36210.0/de. Unfortunately container does not work. I attached the event log of the container.
PB365-MK-V20DE 2022-02-15 08.43.44.evtx.zip

Any chance that anybody can share a repro script (end 2 end), which showcases the problem?
possibly email me a link where I can download apps if they are needed.

I do now have a repro of the problem.
Will investigate and get back

Strangest bug ever - it only fails when you connect using German language (culture)

As a workaround, you should be able to add:
-additionalParameters @("--env customWebSettings=AuthenticateServer=false")
to the New-BcContainer call, then the problem should go away.
You can also specify this in the BcContainerhelper.config.json for all sessions on that machine:
"defaultNewContainerParameters":  {
                                      "additionalParameters":  [
                                                                   "--env customWebSettings=AuthenticateServer=false"
                                                               ]
                                  }

or set the variable for one session:
$bccontainerhelperconfig.defaultNewContainerParameters = @{ "additionalParameters" = @("--env customWebSettings=AuthenticateServer=false") }
All should work.

This should be fixed in next major.
Please re-open if the issue persists,


add support for sparql

trying to add sparql support
have NOT tested this locally
markdown kept having compilation errors

Fixed in #17


Improved the style of Elo Credit Card

Added improved SVG of Elo logo and added a new background gradient.

@lucascavalheiro fix shitty repo???

@gilbarbara I was not talking about your repo, but the fork.
And I was not intent to make a PR here with these changes, in the first place. Probably @ziondev made a mistake while selecting the repo to send his PR.


Make Decimal fields null if no value supplied

I want to merge this change because it fixes bug causing error when no costPrice or priceOverride were provided.
Fixes #2672
Pull Request Checklist

[ ] Privileged views and APIs are guarded by proper permission checks.
[ ] All visible strings are translated with proper context.
[ ] All data-formatting is locale-aware (dates, numbers, and so on).
[ ] Database queries are optimized and the number of queries is constant.
[ ] The changes are tested.
[ ] The code is documented (docstrings, project documentation).

Do we have any other occurrences of Decimal variables? I'd make sure that we cover all of them.

Now all decimals had been covered.