[Feedback wanted] Should Vulkano panic on validation errors instead?

Vulkano returns errors from a lot of functions, indicating what are essentially validation errors: something wasn't correct about the arguments. AutoCommandBufferBuilder in particular has a huge list of error types, for all of the different operations it can perform.
Thinking about it, though, it seems to me that the user would rarely, if ever, actually respond to any of these errors. If draw fails because you provided improper arguments, what would you actually do in this case? You did something dumb, that's not something your application is meant to recover from. It's going to happen every time you run your program. You're supposed to treat it as a bug and fix it.
So I think it's probably better to respond to validation errors with a panic instead of returning a useless error to the user. The user would then not be led to believe that it's an error they actually should handle. Let's face it, you don't.  Even Vulkano's examples do. Removing all those superfluous error types would also slim down Vulkano's API a fair bit.
Keep in mind, this is specifically about validation errors: errors that can be detected before any call to Vulkan is actually made, determined purely by the arguments of a function. Errors resulting from a Vulkan call after the fact would remain in place, of course.

Hahaha yeah.  I had my thoughts on the question here:
https://github.com/vulkano-rs/vulkano/commit/65254ed10c81694e45555e6044851b718ae200c0
I personally would favor an unified error type that prints the Valid Usage ID (VUID) of the validation error and debug statement.  Panics, while safe, are considered rude by some.
Fits nicely with the try operator.

"Rude" maybe, but if you return an error, what's the user going to do with that error?

I'm trying to use Vulkano for virtualization.  The guest may be assumed to be evil, and send untrusted input to Vulkano.
For virtual machines, it's preferably to return an error in that instance rather than (safely) take down the process.  See comments here:
https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2626487/4..7/rutabaga_gfx/src/rutabaga_gralloc/vulkano_gralloc.rs#b96
I guess it backs to the question: "Is Vulkano a validation layer?".  I think tomaka's original vision is yes, it should be a Rust-based validation layer.  A Rust based validation layer would of course be better than a C++ layer.
But Vulkano doesn't have a 1:1 mapping of Vulkan apis.  It's possible, but would take many refactorings.  And LunarG's validation layer is quite good.  If your Ash change goes well, it may be worth trying to convince LunarG to leave their mud huts and embrace Rust 🙂.
Maybe in the long run, we can organize the validation such a way the user can be disable via feature flag for performance.
cargo build --features=super-unsafe-disable-validation

You're using UnsafeImage here, which isn't really guaranteed to validate anything! Only safe types in Vulkano normally validate.
I also see that you propagate the error that Vulkano returns. Where do you actually respond to this error?

For the error, it's printed to a log file eventually, instead of taking down the virtual machine.
I'm not a huge fan of the ImmutableImage or ImmutableBuffer APIs, since they are quite limiting.  I would just do full-featured, safe Image and Buffer APIs.  That requires a ton of refactoring and the Ash-change as-well tho.
For my limited use case and UnsafeImage implementation, I do believe I am using the UnsafeImage API in a safe way.  It would be terrific to use Vulkano for more expansive use cases as well, but that requires more developers/bigger community than currently exists.
I do think Vulkano, by the virtue of the Rust language, has a higher ceiling as a validation layer than anything written in C++. This why I prefer Error on panic! where possible, since errors show the true excellence of Rust.
I would say Error handling/validation in Vulkano is kind of disorganized and haphazard.  LunarG's layer is better, simply since they have full-time employees to work on it.

Do you know if std::panic::catch_unwind would suit your purposes if validation errors were to be removed?

From an API perspective, I do think Vulkano returning an error using the try operator is better than std::panic::catch_unwind.  Simpler for the Vulkano user, I think.
I'm a huge fan of a unified error type (say VulkanoResult<T> and VulkanoError).  It could wrap a ValidationError(ValidUsageID), and which can just go over the VK spec.

I currently don't have much time to elaborate on this, but I believe the Rust way of doing this is how it's currently done. Mostly. There are some places where error handling must be re-thought because it assumes that the user unwraps anyways and leaves objects in error states. However, in most places I believe things are fine the way they are.
Panics should only happen when something happens that should not have happened and is completely unexpected. Wrong usage by the user is definitely not a case where a panic should normally occour. Of course every rule has it's exceptions.
I would also vote against a unified error type as it usually makes actual error handling much harder while simplifying error reporting. This is at least my experience.

Although the Vulkan spec defines errors (VK_ERROR_DEVICE_LOST, VK_ERROR_TOO_MANY_OBJECTS), these are
dwarfed in comparison to the massive amount of Valid Usage ID (VUID)-based validation errors.
This goes to the main critique of Vulkano by WebGPU developers: Vulkan is not supposed to be a validated API.  The developer is supposed to run the application via a validation layer when debugging.  When in production, the user is not expected to handle validation errors gracefully.
Vulkano kind of mixes the two, adds it's own errors, and the result is weird and jumbled.
In addition, Vulkan objects and Vulkano objects (such as StdMemoryPool) are mixed around.  Vulkan tries to be both a validation layer and middleware.
From a code organization persepctive, I would take these two premises:
 - Yes, Vulkano is a validation layer and we aim to convince LunarG about the power of Rust.
   Rust validation >> C++ validation.
 - Yes, Vulkano does offer middleware capabilities for users.

The logical outcome of these permises is three crates:
- ash_bindings to replace vk_sys
- vulkano_core that aims to out-do C++ validation layers with a 1:1 mapping of API functions
  to Vulkan.
- vulkano_middleware that provides convenience structs such as `StdMemoryPool`

The error types will naturally flow from such a MASSIVE reorganization. The great thing is the user can even turn off validation, and use Rust-like objects over Ash.
These are just my thoughts about Vulkano direction.  The Ash change is absolutely pivotal, and Rua should be made maintainer just for attempting it, and IMO we need LunarG buy-in.

@Eliah-Lakhin What do you think of this? I'm still not really convinced that there is much utility in actually returning errors for the caller to handle.

@Rua I would vote to keep Result<.., Error> interface :) It's up to user to choose whether they want to recover or unwrap in this case. For example, in my project in most cases I use recovering. Someone maybe not, and in this case writing .unwrap everytime might be a bit annoying, but I'm this is a cost user pays for adopting of bad practice.
Anyway, as a compromise solution we can make a feature flag in Vulkano that would turn off recoverable interface for all public API methods, but there will be a lot of work to do this.

I would also vote against a unified error type as it usually makes actual error handling much harder while simplifying error reporting. This is at least my experience.

@faulesocke Yes, I think so too.

Ok, I won't pursue this any further then, but I can leave it open in case people have new input.

My dream of convincing LunarG to adopt Rust is very far-off and impractical (which would be helped by an unified ValidationError), and requires the Ash change anyways.
Keeping the way things are sgtm, but we should consider the long-term structure and vision of the project in mind as refactorings continue.

How about keeping the individual errors as they are, but grouping all errors that a function can return under an enum like this?
enum VulkanoError<R, V> {
    Runtime(R),
    Validation(V),
}

This is parameterised, so a function would specify concrete types for R and V in its signature. Then users are still free to respond to any error they wish, but they can also easily filter out validation errors. The enum could also be given methods to make it easier for the user to panic on validation errors (the behaviour I'd like in my project), but I'm not sure yet what the best design for that would be. Ideas welcome.

Yeah, that looks very good.

Also, I think including the specific Vulkan VUID in all validation errors in some form is a must too.


Feature/get building map

New feature implementation
Implemented feature
Added an endpoint (/building_map) to receive the BuildingMap message from.
This PR is dependent on the following PR in order to work: open-rmf/rmf_traffic_editor#377

Thanks for the PR. Tested, the endpoint works as described. Is it possible to fix a few lines of pycodestyle linting issue? Thanks


Build sgx_unwind v1.15 falied

When I compiled sgx_unwind I encountered some errors, here is the configuration of my machine, I hope you can help solve it, thank you very much.
OS:ubuntu 20.04
Rust : rustc 1.61.0-nightly (458262b13 2022-03-09)
Intel sgx sdk version: 2.17
sgx driver version: 2.11.054c9c4c
 --- stderr
  autoreconf: Entering directory `.'
  autoreconf: configure.ac: not using Gettext
  autoreconf: running: aclocal --force
  autoreconf: configure.ac: tracing
  autoreconf: running: libtoolize --copy --force
  autoreconf: running: /usr/bin/autoconf --force
  autoreconf: running: /usr/bin/autoheader --force
  autoreconf: running: automake --add-missing --copy --force-missing
  configure.ac:18: installing 'config/compile'
  configure.ac:11: installing 'config/missing'
  src/Makefile.am:371: warning: whitespace following trailing backslash
  src/Makefile.am:372: warning: whitespace following trailing backslash
  src/Makefile.am: installing 'config/depcomp'
  src/Makefile.am:165: warning: variable 'libunwind_dwarf_generic_la_SOURCES' is defined but no program or
  src/Makefile.am:165: library has 'libunwind_dwarf_generic_la' as canonical name (possible typo)
  src/Makefile.am:619: warning: variable 'libunwind_x86_64_la_SOURCES' is defined but no program or
  src/Makefile.am:619: library has 'libunwind_x86_64_la' as canonical name (possible typo)
  src/Makefile.am:168: warning: variable 'libunwind_dwarf_generic_la_LIBADD' is defined but no program or
  src/Makefile.am:168: library has 'libunwind_dwarf_generic_la' as canonical name (possible typo)
  src/Makefile.am:621: warning: variable 'libunwind_x86_64_la_LIBADD' is defined but no program or
  src/Makefile.am:621: library has 'libunwind_x86_64_la' as canonical name (possible typo)
  src/Makefile.am:620: warning: variable 'libunwind_x86_64_la_LDFLAGS' is defined but no program or
  src/Makefile.am:620: library has 'libunwind_x86_64_la' as canonical name (possible typo)
  autoreconf: Leaving directory `.'
  grep: ./configure: No such file or directory
  grep: ./configure: No such file or directory
  expr: syntax error: unexpected argument ‘30’
  sed: -e expression #1, char 1: unknown command: `,'
  grep: ./configure: No such file or directory
  expr: syntax error: unexpected argument ‘30’
  sed: -e expression #1, char 1: unknown command: `,'
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Lfind_dynamic_proc_info.c:1: warning: "UNW_LOCAL_ONLY" redefined
      1 | #define UNW_LOCAL_ONLY
        |
  <command-line>: note: this is the location of the previous definition
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Lget_accessors.c:1: warning: "UNW_LOCAL_ONLY" redefined
      1 | #define UNW_LOCAL_ONLY
        |
  <command-line>: note: this is the location of the previous definition
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/x86_64/Los-linux.c:1: warning: "UNW_LOCAL_ONLY" redefined
      1 | #define UNW_LOCAL_ONLY
        |
  <command-line>: note: this is the location of the previous definition
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Lget_proc_name.c:1: warning: "UNW_LOCAL_ONLY" redefined
      1 | #define UNW_LOCAL_ONLY
        |
  <command-line>: note: this is the location of the previous definition
  In file included from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread.h:37,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/libunwind_i.h:52,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/init.c:26:
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread_compat.h:39:10: fatal error: sgx_spinlock.h: No such file or directory
     39 | #include "sgx_spinlock.h"
        |          ^~~~~~~~~~~~~~~~
  compilation terminated.
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Lget_proc_info_by_ip.c:1: warning: "UNW_LOCAL_ONLY" redefined
      1 | #define UNW_LOCAL_ONLY
        |
  <command-line>: note: this is the location of the previous definition
  In file included from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread.h:37,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/libunwind_i.h:52,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Gfind_dynamic_proc_info.c:26,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Lfind_dynamic_proc_info.c:4:
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread_compat.h:39:10: fatal error: sgx_spinlock.h: No such file or directory
     39 | #include "sgx_spinlock.h"
        |          ^~~~~~~~~~~~~~~~
  compilation terminated.
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Ldyn-extract.c:1: warning: "UNW_LOCAL_ONLY" redefined
      1 | #define UNW_LOCAL_ONLY
        |
  <command-line>: note: this is the location of the previous definition
  In file included from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread.h:37,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/libunwind_i.h:52,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Gget_accessors.c:26,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Lget_accessors.c:4:
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread_compat.h:39:10: fatal error: sgx_spinlock.h: No such file or directory
     39 | #include "sgx_spinlock.h"
        |          ^~~~~~~~~~~~~~~~
  compilation terminated.
  In file included from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread.h:37,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/libunwind_i.h:52,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/mempool.c:27:
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread_compat.h:39:10: fatal error: sgx_spinlock.h: No such file or directory
     39 | #include "sgx_spinlock.h"
        |          ^~~~~~~~~~~~~~~~
  compilation terminated.
  In file included from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread.h:37,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/libunwind_i.h:52,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/x86_64/unwind_i.h:35,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/x86_64/Gos-linux.c:28,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/x86_64/Los-linux.c:4:
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread_compat.h:39:10: fatal error: sgx_spinlock.h: No such file or directory
     39 | #include "sgx_spinlock.h"
        |          ^~~~~~~~~~~~~~~~
  compilation terminated.
  In file included from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread.h:37,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/libunwind_i.h:52,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Gget_proc_name.c:26,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Lget_proc_name.c:4:
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread_compat.h:39:10: fatal error: sgx_spinlock.h: No such file or directory
     39 | #include "sgx_spinlock.h"
        |          ^~~~~~~~~~~~~~~~
  compilation terminated.
  In file included from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread.h:37,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/libunwind_i.h:52,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/x86_64/is_fpreg.c:28:
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread_compat.h:39:10: fatal error: sgx_spinlock.h: No such file or directory
     39 | #include "sgx_spinlock.h"
        |          ^~~~~~~~~~~~~~~~
  compilation terminated.
  In file included from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread.h:37,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/libunwind_i.h:52,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/os-linux.c:29:
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread_compat.h:39:10: fatal error: sgx_spinlock.h: No such file or directory
     39 | #include "sgx_spinlock.h"
        |          ^~~~~~~~~~~~~~~~
  compilation terminated.
  In file included from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread.h:37,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/libunwind_i.h:52,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/dyn-info-list.c:26:
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread_compat.h:39:10: fatal error: sgx_spinlock.h: No such file or directory
     39 | #include "sgx_spinlock.h"
        |          ^~~~~~~~~~~~~~~~
  compilation terminated.
  make[4]: *** [Makefile:1765: mi/init.lo] Error 1
  make[4]: *** Waiting for unfinished jobs....
  make[4]: *** [Makefile:1765: mi/Lfind_dynamic_proc_info.lo] Error 1
  make[4]: *** [Makefile:1765: mi/Lget_accessors.lo] Error 1
  make[4]: *** [Makefile:1765: mi/Lget_proc_name.lo] Error 1
  make[4]: *** [Makefile:1765: mi/mempool.lo] Error 1
  make[4]: *** [Makefile:1765: x86_64/Los-linux.lo] Error 1
  make[4]: *** [Makefile:1765: x86_64/is_fpreg.lo] Error 1
  make[4]: *** [Makefile:1765: mi/dyn-info-list.lo] Error 1
  In file included from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread.h:37,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/libunwind_i.h:52,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Gget_proc_info_by_ip.c:26,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Lget_proc_info_by_ip.c:4:  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread_compat.h:39:10: fatal error: sgx_spinlock.h: No such file or directory
     39 | #include "sgx_spinlock.h"
        |          ^~~~~~~~~~~~~~~~
  compilation terminated.
  make[4]: *** [Makefile:1765: os-linux.lo] Error 1
  In file included from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread.h:37,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/libunwind_i.h:52,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/flush_cache.c:26:
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread_compat.h:39:10: fatal error: sgx_spinlock.h: No such file or directory
     39 | #include "sgx_spinlock.h"
        |          ^~~~~~~~~~~~~~~~
  compilation terminated.
  In file included from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread.h:37,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/libunwind_i.h:52,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Gdyn-extract.c:26,
                   from /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/src/mi/Ldyn-extract.c:4:
  /home/Scc/.cargo/git/checkouts/incubator-teaclave-sgx-sdk-c63c8825343e87f0/d2d339c/sgx_unwind/../sgx_unwind/libunwind/include/pthread_compat.h:39:10: fatal error: sgx_spinlock.h: No such file or directory
     39 | #include "sgx_spinlock.h"
        |          ^~~~~~~~~~~~~~~~
  compilation terminated.
  make[4]: *** [Makefile:1765: mi/Lget_proc_info_by_ip.lo] Error 1
  make[4]: *** [Makefile:1765: mi/flush_cache.lo] Error 1
  make[4]: *** [Makefile:1765: mi/Ldyn-extract.lo] Error 1
  make[3]: *** [Makefile:1225: all] Error 2
  make[2]: *** [Makefile:592: all-recursive] Error 1
make[1]: *** [Makefile:61: libenclave.a] Error 101
make[1]: Leaving directory '/home/Scc/Scc-project/tee-worker/enclave-runtime'
make: *** [Makefile:208: enclave] Error 2

This may have something to do with the SGX environment settings on my machine, and when I compile in source code, the terminal will return such an error. Then I tried to introduce the missing file as an absolute path and the compilation passed.

A recommended way would be to add a line to your shell rc file, like this source /opt/intel/sgxsdk/environment. This would automatically set all the needed environment variables to proper values.


Refactor/pn 34 #96 refactor config

Coverage increased (+0.009%) to 80.702% when pulling d68bc0bae290699e725458290991df9d444042d6 on refactor/pn-34-#96-refactor-config into cd855e2806e16219f7441a8da1bf542dceeee787 on master.

Coverage increased (+0.04%) to 80.736% when pulling 5f87ff8905056fccf4c6ff746d2755c61a28ce5e on refactor/pn-34-#96-refactor-config into cd855e2806e16219f7441a8da1bf542dceeee787 on master.

Coverage increased (+0.4%) to 81.089% when pulling 3ca5a29461f7b61abce811aab062f216abda8a54 on refactor/pn-34-#96-refactor-config into cd855e2806e16219f7441a8da1bf542dceeee787 on master.

Coverage increased (+0.4%) to 81.089% when pulling 8b1bc88aba33bb04aa60a8b28aaa46c02222a52a on refactor/pn-34-#96-refactor-config into cd855e2806e16219f7441a8da1bf542dceeee787 on master.


Need to connect once or in every function where client is being used?

A bit confused on connect(). Do we have to connect once or need to connect in each function where we are interacting with redis?

Once for the whole application (before running any command).


 Did you bind the current directory into container?

      check your `docker run ...` command, if there's no `volumn` arg,
      then you need to add it so that we can bind the volume of /bot:

        `--volume="$(pwd)":/bot`

      this will let the container visit your current directory.

    if you still have issue, please have a look at
      https://github.com/chatie/wechaty/issues/66
      and do a search in issues, that might be help.

 __        __        _           _
 \ \      / /__  ___| |__   __ _| |_ _   _
  \ \ /\ / / _ \/ __| '_ \ / _` | __| | | |
   \ V  V /  __/ (__| | | | (_| | |_| |_| |
    \_/\_/ \___|\___|_| |_|\__,_|\__|\__, |
                                     |___/
____________________________________________________
            https://www.chatie.io
  _____      _ _     _
 | ____|_  _(_) |_  / |
 |  _| \ \/ / | __| | |
 | |___ >  <| | |_  | |
 |_____/_/\_\_|\__| |_|

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>start: `docker run --env CLOUDINARY_SECRET=$CLOUDINARY_SECRET -ti --volume="$(pwd)":/bot --rm zixia/wechaty src/main.ts`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /usr/local/google/home/zzn/.npm/_logs/2017-10-30T05_50_07_946Z-debug.log

After docker pull zixia/wechaty, I had a new version of image, and the same error is there, while
Starting Wechaty v0.10.44 with Node.js v7.10.1

is now
Starting Wechaty v0.11.42 with Node.js v8.8.1 ...

I do not know what happened but I suggest you try to run unit tests inside docker and have a look at it.
like: wechaty test
See: https://circleci.com/gh/Chatie/wechaty/2698

I tried the latest docker image and it works without any problem.

Working directory: /bot
Please make sure you had installed all the NPM modules which is depended by your bot script.
Executing ts-node example/ding-dong-bot.ts

| __        __        _           _
| \ \      / /__  ___| |__   __ _| |_ _   _
|  \ \ /\ / / _ \/ __| '_ \ / _` | __| | | |
|   \ V  V /  __/ (__| | | | (_| | |_| |_| |
|    \_/\_/ \___|\___|_| |_|\__,_|\__|\__, |
|                                     |___/

=============== Powered by Wechaty ===============
-------- https://github.com/chatie/wechaty --------

I'm a bot, my super power is talk in Wechat.

If you send me a 'ding', I will reply you a 'dong'!
__________________________________________________

Hope you like it, and you are very welcome to
upgrade me for more super powers!

Please wait... I'm trying to login in...

10:59:06 INFO Wechaty v0.11.45 starting...
https://login.weixin.qq.com/qrcode/wZFwVQB-8g==
[0] Scan QR Code in above url to login:
^CWechaty exit 130 because of SIGINT
 Script terminated by Control-C
   ____ _        _            ____
  / ___| |_ _ __| |    _     / ___|
 | |   | __| '__| |  _| |_  | |
 | |___| |_| |  | | |_   _| | |___
  \____|\__|_|  |_|   |_|    \____|

 __        __        _           _
 \ \      / /__  ___| |__   __ _| |_ _   _
  \ \ /\ / / _ \/ __| '_ \ / _` | __| | | |
   \ V  V /  __/ (__| | | | (_| | |_| |_| |
    \_/\_/ \___|\___|_| |_|\__,_|\__|\__, |
                                     |___/
____________________________________________________
            https://www.chatie.io
  _____      _ _     _ _____  ___
 | ____|_  _(_) |_  / |___ / / _ \
 |  _| \ \/ / | __| | | |_ \| | | |
 | |___ >  <| | |_  | |___) | |_| |
 |_____/_/\_\_|\__| |_|____/ \___/

zixia@blinder:~/git/wechaty$

Close this issue due to inactive for months.
Hope this issue had been resolved.


A TelemetryProcessor that is also a TelemetryModule is not Initialized

#445 introduced a way to set up TelemetryProcessors via DI.
If a TelemetryProcessor also implements ITelemetryModule the base SDK will call Initialize on it.
We should do the same in aspnetcore.

@karolz-ms FYI

As a general comment, trying to replicate all the behaviors of the base SDK in this repo is a losing proposition. Can we consider exposing some of the internals of the telemetry pipeline (particularly the configuration factory) from the Base SDK - either by making them public or adding an "InternalsVisibleTo" from the base SDK to this one?

@pharring So do you think we should implement this behavior to unblock SnapshotCollector while using this issue to track the more comprehensive resolution?

@karolz-ms yes, I think so.


Language server seems to crash seconds after starting

Upon launching vscode, syntax highlighting works for a split second and then reverts to the default highlighting (what it would look like without C# extension). Restarting the language server does the same.
Environment data
dotnet --info output:
.NET SDK:
 Version:           8.0.101
 Commit:            6eceda187b
 Workload version:  8.0.100-manifests.69afb982

Runtime Environment:
 OS Name:     void
 OS Version:
 OS Platform: Linux
 RID:         linux-x64
 Base Path:   /home/dave/.dotnet/sdk/8.0.101/

.NET workloads installed:
 Workload version: 8.0.100-manifests.69afb982
There are no installed workloads to display.

Host:
  Version:      8.0.1
  Architecture: x64
  Commit:       bf5e279d92

.NET SDKs installed:
  7.0.405 [/home/dave/.dotnet/sdk]
  8.0.101 [/home/dave/.dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 7.0.15 [/home/dave/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.1 [/home/dave/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 7.0.15 [/home/dave/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.1 [/home/dave/.dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  DOTNET_ROOT       [/home/dave/.dotnet]

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

VS Code version:
Version: 1.86.2
Commit: 903b1e9d8990623e3d7da1df3d33db3e42d80eda
Date: 2024-02-13T19:41:37.860Z
Electron: 27.2.3
ElectronBuildId: 26908389
Chromium: 118.0.5993.159
Node.js: 18.17.1
V8: <IP_ADDRESS>-electron.0
OS: Linux x64 6.6.16_1

C# Extension version
v2.18.16
C# Dev Kit Extension version
v1.3.10
Logs
C#
Dotnet path: /home/dave/.dotnet/dotnet
Activating C# + C# Dev Kit + C# IntelliCode...
waiting for named pipe information from server...
[stdout] {"pipeName":"/tmp/9dfdabc4.sock"}
received named pipe information from server
attempting to connect client to server...
client has connected to server
[Info  - 16:20:45] [Program] Language server initialized

C# Dev Kit
Starting Spawn .NET server...
Starting Open a solution...
Starting Open a solution with environment service...
Starting Clear environment...
Using local .NET runtime at "/home/dave/.config/Code/User/globalStorage/ms-dotnettools.vscode-dotnet-runtime/.dotnet/7.0.16~x64/dotnet"
.NET server started and IPC established in 1295ms
Completed Spawn .NET server (2208ms)
Completed Clear environment (2878ms)
Completed Open a solution with environment service (2945ms)
Starting Restore solution...
Completed Open a solution (2968ms)
Starting NuGet restore for the solution.
Starting command: "dotnet" restore <path-to-solution> --interactive...
Failed to listen to project initialization status: Error: Activating the "Microsoft.VisualStudio.ProjectSystem.ProjectInitializationStatusService (0.1)" service failed.

sometimes crashes like this:
Starting Spawn .NET server...
Starting Open a solution...
Starting Open a solution with environment service...
Starting Clear environment...
Using local .NET runtime at "/home/dave/.config/Code/User/globalStorage/ms-dotnettools.vscode-dotnet-runtime/.dotnet/7.0.16~x64/dotnet"
.NET server STDOUT: [createdump] Gathering state for process 16078 Microsoft.Visua
[createdump] Crashing thread 3edb signal 11 (000b)

.NET server STDOUT: [createdump] Writing crash report to file /home/dave/.cache/Microsoft/csdevkit/dumps/Microsoft.Visua.16078.dmp.crashreport.json

.NET server STDOUT: [createdump] Crash report successfully written

.NET server STDOUT: [createdump] Writing minidump with heap to file /home/dave/.cache/Microsoft/csdevkit/dumps/Microsoft.Visua.16078.dmp

.NET server STDOUT: [createdump] Written 191619072 bytes (46782 pages) to core file
[createdump] Target process is alive

.NET server STDOUT: [createdump] Dump successfully written in 6291ms

.NET server exited with null

C# Dev Kit - Test Explorer
Created Test Controller
unable to create test controller for c# extension: Error: Activating the "Microsoft.VisualStudio.TestWindow.VSCode.Service (0.1)" service failed.

C# LSP Trace Logs
Extension vscode.bat does not contribute csharpExtensionLoadPaths a whole bunch of times for every extension installed.
Steps to reproduce

Launch vscode

Expected  behavior
Language server starts and shows errors and warnings as well as highlighting syntax.
Actual behavior
Syntax highlighting is visible for a split second before reverting to the default.
Additional context
There's a process running called Microsoft.CodeAnalysis.LanguageServer and eating up 500MB of ram, suggesting the language server is indeed running.
Sometimes I get a "No installed .NET SDK on this computer" message even though the SDK is installed and omnisharp.sdkPath is set correctly

So.. Turns out the issue was probably caused by dotnet being installed using the dotnet-install.sh script. Removing it and installing again from the tarball fixed the issues.


Update release-notes-sqlpackage.md

the release notes had a minor typo and incorrectly referenced. serverless instead of dedicated pools.

thank you @jasonhorner!

@dzsquared - is this approved and ready to merge? if so, can you add #sign-off in a comment?
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team


Disable "p" (80) keydown for print preview

styleguide/blob/master/assets/js/print.js (lines 98-104) adds a keydown binding for print preview.
  $(document).bind('keydown', function(e) {
      var code = (e.keyCode ? e.keyCode : e.which);
      if (code == 80 && !$('body').hasClass('print-preview')) {
          $.printPreview.printPreview();
          return false;
      }
  });

Here we have issues when users write "p" in forms... because it will trigger the print preview.
We would like to use the complete/minimized main{.min}.js, without changes, but disable this print
preview feature.
Whats the most elegant way to disable "p" keydown at all (or at least in forms) ?

Good point here. I think we can remove this feature in the next release.

:+1: for removing ;)

AFAYK, is there a way to properly unbind this keydown?

We removed this "feature" completely. It serves no real purpose and can is better being called from the button. e35a1fe2273c02ad39bb68405b2804b78de96aa7

:+1:


[cart-controls-ui]: Disconnect from web socket not working

it seems like react-use-websocket doesn't have and api to close the ws connection

okay after re-read docs it seems like it can be done via the 3rd parameter shouldConnect: false, deffault it set to to true. Also can set socket url to null
This can lead to not having to connect to the ws when initiliazing.
just for reference the complete interface
type UseWebSocket = (
  //Url can be return value of a memoized async function.
  url: string | () => Promise<string>,
  options: {
    fromSocketIO?: boolean;
    queryParams?: { [field: string]: any };
    protocols?: string | string[];
    share?: boolean;
    onOpen?: (event: WebSocketEventMap['open']) => void;
    onClose?: (event: WebSocketEventMap['close']) => void;
    onMessage?: (event: WebSocketEventMap['message']) => void;
    onError?: (event: WebSocketEventMap['error']) => void;
    onReconnectStop?: (numAttempts: number) => void;
    shouldReconnect?: (event: WebSocketEventMap['close']) => boolean;
    reconnectInterval?: number;
    reconnectAttempts?: number;
    filter?: (message: WebSocketEventMap['message']) => boolean;
    retryOnError?: boolean;
    eventSourceOptions?: EventSourceInit;
  } = {},
  shouldConnect: boolean = true,
): {
  sendMessage: (message: string, keep: boolean = true) => void,
  //jsonMessage must be JSON-parsable
  sendJsonMessage: (jsonMessage: any, keep: boolean = true) => void,
  //null before first received message
  lastMessage: WebSocketEventMap['message'] | null,
  //null before first received message. If message.data is not JSON parsable, then this will be a static empty object
  lastJsonMessage: WebSocketEventMap['message']['data'] | null,
  // -1 if uninstantiated, otherwise follows WebSocket readyState mapping: 0: 'Connecting', 1 'OPEN', 2: 'CLOSING', 3: 'CLOSED'
  readyState: number,
  // If using a shared websocket, return value will be a proxy-wrapped websocket, with certain properties/methods protected
  getWebSocket: () => (WebSocket | null),
}

Fix


Add generate random contact id api

@rudigiesler ready for another look, returning -1 if we don't have any ids left, we can handle that in rapidpro.


Remix compatibility

How do I use this library with remix? Remix provides web standard objects rather than the native Node.js req and res objects. I can't figure out how to extract compatible Node.js http objects from this:
// api.stream.ts

export const loader = async ({ request, response }: LoaderFunctionArgs) => {
  const session = await createSession(request, response)

  return session.push('hello world')
}

wild guess: maybe you could try to use smth like this? https://github.com/sergiodxa/remix-utils/blob/main/src/server/event-stream.ts while putting in as initfunction the createSession method? however as I see there, they seem to use the common nodejs Response type, if I get that correct? Anyhow, maybe the creator of this lib can give a better answer.


Update utils.py

Fix the error with:
Traceback (most recent call last):
  File "/home/newt/Going_Projects/cyber_intelligence/env/lib/python3.7/site-packages/fake_useragent/utils.py", line 154, in load
    for item in get_browsers(verify_ssl=verify_ssl):
  File "/home/newt/Going_Projects/cyber_intelligence/env/lib/python3.7/site-packages/fake_useragent/utils.py", line 99, in get_browsers
    html = html.split('<table class="w3-table-all notranslate">')[1]
IndexError: list index out of range

I think this is a duplicate of https://github.com/hellysmile/fake-useragent/pull/110.


[Release] Include Emission assets.

See https://github.com/artsy/emission/pull/304.

While added, they are not showing up in the beta build. Instead, some weird red box shows up.


feat: GU-2745 add repeat transfer support for other tokens

UPDATE
instead of using string based operation to decide which operation support repeating, added privilege list of transactions that would support repeating, later this list can be updated to support further operations like swap repeat etc.
https://github.com/ecency/ecency-mobile/assets/6298342/d5fd0d83-fc25-4268-a87f-0d10c005982c


Can edit/post request for help but not specify help time

You can edit and post a new request without actually saying when you need the help by. Should be an easy fix

This is expected behaviour it is not a required field


batch-mode operation: prompt-me-not

Just ended up with a 31GB log file on our build server full of:
Project loading failed: (r)etry, (q)uit, or (i)gnore? Invalid response.

Can you add a system-property to disable such prompting?
This should be exposed to plugins.

sbt < /dev/null is the recommended way to run sbt on a build server.

ha. clever.

@quelgar +1
Have you found solution for Windows?
I have tried sbt command > NUL without any success, it't not showing "Project loading failed" but it's still waiting interaction from user.

I "solved" it by making more Linux build agents.

I bumped into this today on a Windows build agent. @mikla did you ever come up w/ a Windows solution? Is it fair game to reopen this defect given if there's no good Windows work-around?

What is the solution for Windows? I tried changing my launch batch file to:
java [sbt jar etc] < NUL
but I still get the "Project loading failed" prompt.

Given this answer https://stackoverflow.com/a/313115/463761 (by Jon Skeet no less) it's strange that doesn't work. I wonder if perhaps the JDK on Windows with < NUL doesn't behave the same as < /dev/null on Unix-like platforms.

Perhaps the solution is to use javaw? See javaw in https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html.


Update chatbot.cfg

@AleksandrPanasiuk you need to keep your telegram token private and not give it to ANYONE other wise they can controll your bot. You need to regen your token now


Update cloud-update.md

added public preview comment

The update for this was added to a note that has since been deleted. Closing request.


http://ot.substance.io/demo/ is down

I am trying to open http://ot.substance.io/demo/ but it freezes

I'm not able to access the new implementation - link is down.

I confirm http://ot-demo.timbaumann.info is down, but the heroku link still works: http://operational-transformation.herokuapp.com

Seems to work here.

I've recently noticed some DNS lookup flakiness on my domain as well. I'm using Digital Ocean's DNS servers for ot-demo.timbaumann.info. Last time the demo was down, resetting the DNS routing on Digital Ocean helped.


User NL groupName instead of groupId

Update is tested

Missed this. Is it tested? Or just add to testing for 1.12?

Yes, it is tested (for both 1.10.2 and 1.12)
But draw attention I'll be missed this week, so I will not be do fix during this time if any problem will happen.

No worries, thanks again for all of your help over the past week of recent with 1.12, and your continued dedication to this and your other plugins!


Issue "Attempting to parse an unsupported color function "oklch"

This error occurs when i am using html2pdf lib ver 0.10.2 to convert html content into a pdf file (Chrome 131.0.6778.205 and Edge). Please give me a solution, thanks you!

look it https://github.com/niklasvh/html2canvas/issues/2700


Support for ES256

I liked your library a lot, but needed to use the ES256 algorithm. So I added it.
The change from algorithms.RS256.name to just algorithm seems to work for me with both RS256 and ES256. The crypto library handles this correctly.

Hey there @alexeichhorn!
Thanks for contributing this.
I have added a test to verify a token generated with ES256 (which forced me to use crypto.subtle.verify, because the ECDSA nonce is random for each new signature which results in a different signature - might be useful for #1 - hint to future me / contributers).
I have published it to npm -  v0.0.20.


Support for layers?

Hi there,
Great work on this package!! I'm wondering if I'm missing something but I can't find any function for loading layers from an h5ad? If I'm not mistaken, it would be great to have support for layers as well as obsp and varp, which would complete your support for the anndata h5ad format.
Thanks!
MT

Hi MT,
Thanks for your interest!
You’re right, we haven't yet provided support for layers and the obsp/varp sections. We plan to add this functionality in the near future.
In the meantime, here’s a workaround example for achieving layers with CapAnnData in backed mode (though it's a bit ugly for now):
import anndata as ad
import numpy as np
from scipy.sparse import csr_matrix

# Create AnnData object with random data
adata = ad.AnnData(X=np.random.random((10, 10)))
adata.layers["dense_layer"] = np.random.random((10,10))
adata.layers["sparse_layer"] = csr_matrix(np.random.random((10,10)))
adata.write_h5ad("test.h5ad")

# Use CapAnnData to read the h5ad file
from cap_anndata import read_h5ad
from anndata.experimental import sparse_dataset

with read_h5ad("test.h5ad") as cap_adata:
    print(cap_adata.X)  # <HDF5 dataset "X": shape (10, 10), type "<f8">
    print(cap_adata._file["layers"]["dense_layer"])  # <HDF5 dataset "dense_layer": shape (10, 10), type "<f8">
    print(cap_adata._file["layers"]["sparse_layer"])  # <HDF5 group "/layers/sparse_layer" (3 members)>
    print(sparse_dataset(cap_adata._file["layers"]["sparse_layer"]))  # CSRDataset: backend hdf5, shape (10, 10), data_dtype float64

Ok I think that makes sense, so ._file is like indexing into the h5 normally?

so ._file is like indexing into the h5 normally?

Yeah, exactly

@mtvector we added support for layers, obsm, varm, obsp, varp fields in the v0.3.0 release which has just been published. Please give it a try!


Fixes #860 - removes processor tests

Fixes #860 - removes processor tests.
Removals

Processor unit tests and related content.

Testing

./setup.sh && gulp test should not run processor tests.

Review

@kurtw
@jimmynotjim
@sebworks
@KimberlyMunoz

Todos

Will we add these back at some point?

:+1:

:+1:


[BLM] Advance mode Astral Fire Tweaks

Tightened the timings for Paradox and Firestarter during astral fire as they were a little too conservative. Now Advance mode will try to fit in 4 Fire IVs before every Paradox and Firestarter will not be used unless timing is about to expire before reaching despair.

Going to decline this as the current implementation measures against different spell speeds rather than just looking at the element timer, which makes it more flexible overall.


added default docker URL values

What this PR does / why we need it: fixes a Swarm re
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #1434
Special notes for your reviewer:
Release note:

Bugfix: docker binaries not available in acs-engine v0.6.0-built swarm clusters

@wangtt03 @raulfiru @benkoller @DonMartin76 @shrutir25 @optiomas FYI, We'll be merging this in to restore a regression introduced with this PR:
https://github.com/Azure/acs-engine/pull/499
It is possible various soverign cloud flows for Swarm cluster deployment will no longer work. Please fix that in a subsequent PR, which will be able to use add'l E2E coverage to protect against any future regressions.
Thanks!


Add Java Console.log

Fixes #3

Thanks for the PR!
I have two small requests:

Could you also add Java to README.md?
Could you make the Console class lower-case? If not, could you document that in the README.md change?

Thanks!

Could you make the Console class lower-case?

Yes I can. Its just that I found you keeping capital case Log in Go code.

Yes I can. Its just that I found you keeping capital case Log in Go code.

Yeah, that's because I haven't found a workaround for Go yet. :-(
The main use case here is familiarity at the expense of local language idioms, so I try to use lowercase where possible. (And I should probably document that in README.md at this point.)

changes done

I can also try to add them myself when I'm not at work.

Did this on the branch and merged.
Thanks for the contribution! 😊


dictionary for custom dataset

Hello and thank you for sharing this project.
I want to evaluate this model on my custom dataset. How can I create a dictionary for that?

Hi, apologies for the delayed response. Would you like to fine-tune then test or directly test?
If you'd like to test directly, then you can follow the dataset format here: https://github.com/cambridgeltl/sapbert/tree/main/evaluation (also some available datasets for download)
If you'd like to fine-tune then test, you can refer to my response to this issue: https://github.com/cambridgeltl/sapbert/issues/4


refactor for easier inspection of virtual_process! result

Codecov Report

Merging #147 (7f2522b) into master (be736c5) will decrease coverage by 0.12%.
The diff coverage is 84.00%.

:exclamation: Current head 7f2522b differs from pull request most recent head 19c0753. Consider uploading reports for the commit 19c0753 to get more accurate results

@@            Coverage Diff             @@
##           master     #147      +/-   ##
==========================================
- Coverage   84.65%   84.53%   -0.13%
==========================================
  Files          11       11
  Lines        1258     1267       +9
==========================================
+ Hits         1065     1071       +6
- Misses        193      196       +3

Impacted Files
Coverage Δ

src/JET.jl
67.01% <72.72%> (-0.88%)
:arrow_down:

src/print.jl
86.79% <80.00%> (-0.34%)
:arrow_down:

src/virtualprocess.jl
97.79% <100.00%> (+0.02%)
:arrow_up:

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 be736c5...19c0753. Read the comment docs.


Add Aloha College to the repository off accepted schools

To get to use JetBrains tools for both computer science and web development courses.

@dave8898 Please provide us with:

the school official full name
the school official website URL
the school street address, including city and country
a proof, which shows that the school recognizes the domain you are submitting as an official email domain for the students.

@dave8898 You might miss my previous comment. Please react.

@dave8898 I am sorry, this request remains unanswered for a while. I have to close it without merging. Please reopen and comment if you have an update regarding the aforementioned issue. Thank you for your understanding!


Add Casanovo-DB Functionality

Added functionality of Casanovo-DB that builds on top of Tide (Phase 1).
This is accomplished through two new commands, annotate and db-search.
Most of the functionality is created through subclassing existing classes as only minor modifications are needed to get the data flow to work.

Can you make sure the unit tests succeed?
On a quick glance, without looking at the content of the code, please also adhere to the maximum line length for strings (both within code and docstrings). Black doesn't do this automatically.

Can you make sure the unit tests succeed?
On a quick glance, without looking at the content of the code, please also adhere to the maximum line length for strings (both within code and docstrings). Black doesn't do this automatically.

I will definitely take a look at the line lengths and fix them if they are over the maximum.
As for the unit tests, the only one failing is the test_initialize_model test, which seems to be the issue we are waiting on in PR #301 .
FAILED tests/unit_tests/test_runner.py::test_initialize_model - RuntimeError: MPS backend out of memory (MPS allocated: 0 bytes, other allocations: 0 bytes, max allowed: 7.93 GB). Tried to allocate 1024 bytes on private pool. Use PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0 to disable upper limit for memory allocations (may cause system failure).

No, I don't think that this is the same problem. #301 tries to do tests on the Mac M1 chips, which indeed doesn't work. The current tests on dev only use the old Mac architectures though, and should run successfully (as with the previous state of this branch).

@VarunAnanth2003 To avoid running on MPS-supported macOS versions, in the GitHub test action, change macos-latest to macos-13.

The macOS version has been fixed in #327, so just merge dev into your PR.

@CodiumAI-Agent /review
Testing (i) whether this works and (ii) how useful its suggestions are.

I guess humans are still superior, because it didn't find additional issues and my review was more detailed.

I guess humans are still superior, because it didn't find additional issues and my review was more detailed.

Cool! I'm surprised that its suggestions are even slightly coherent.

This branch is currently fully up to date with dev and does not introduce any new failing tests (that aren't already linked to known problems).

By default, Casanovo-DB should only report the top scoring PSM for each spectrum, and there should be a paremater top_n that allows the user to ask for more (like for tide). Currently, reporting all PSMs requires a huge amount of memory, and the resulting output file for even a modest run is 100+ Gb, which is impractical for most users who just care about the top id for each spectrum.

Yes, definitely. Casanovo-DB should adhere to the value set for top_match in the config, which controls exactly that behavior.


URL Parameters, Restrict Matching?

Is there anyway to restrict matching on dynamic routes?
e.g. in the Ambiguous Matches example, if I only wanted to match for known users, could this be done? Or would the User component have to handle 404-ing?

Update: I think I found a decent enough way of doing this by using the render prop of Route, to render a Redirect if it doesn't find a match for the url params. If there's a better way I'd love to hear, else I will close 🙂

I do this in a similar way, but I put the logic in the component and use component state/props. This way I can control the view during loading and can redirect or render on completion.


libhiredis with libev and custom event loop

I posted this question on StackOverflow, but have not received an answer. Perhaps this is a better place to ask my question.
My application uses libhiredis with libev backend. I need to send Redis async commands and process the resulting Redis async callback. However, unlike the simple example from here I cannot use the default event loop. The following code approximates the example with a custom event loop. However, when compiled with only the redisLibevAttach() induced libev io watcher, the event loop thread terminates immediately. You can see this by running
g++ -g -std=c++11 -Wall -Wextra -Werror hiredis_ev.cpp -o hiredis_ev -lpthread -lhiredis -lev && gdb ./hiredis_ev

where GDB happily prints that a new thread is created and almost immediately terminates. This is further confirmed by running info thread in GDB which does not show my_ev_loop. However, if I change the code to add any other libev watcher, like a timer, then everything is good. You can see this by running
g++ -g -DTIMER -std=c++11 -Wall -Wextra -Werror hiredis_ev.cpp -o hiredis_ev -lpthread -lhiredis -lev &&  ./hiredis_ev

I should not need a dummy libev timer to keep the event loop running. What am I missing?
#include <iostream>
#include <thread>
#include <hiredis/hiredis.h>
#include <hiredis/async.h>
#include <hiredis/adapters/libev.h>

static struct ev_loop *loop = nullptr;
static void redis_async_cb(redisAsyncContext *, void *, void *)
{
  std::cout << "Redis async callback" << std::endl;
  fflush(nullptr);
}

#ifdef TIMER
  static ev_timer timer_w;
  static void ev_timer_cb(EV_P_ ev_timer *, int)
  {
    std::cout << "EV timer callback" << std::endl;
    fflush(nullptr);
  }
#endif

int main()
{
  loop = ev_loop_new(EVFLAG_AUTO);

#ifdef TIMER
  ev_timer_init(&timer_w, ev_timer_cb, 0, 0.1);
  ev_timer_start(loop, &timer_w);
#endif

  redisAsyncContext* async_context = redisAsyncConnect("localhost", 6379);
  if (nullptr == async_context)
  {
    throw std::runtime_error("No redis async context");
  }

  redisLibevAttach(loop, async_context);
  std::thread ev_thread(ev_run, loop, 0);
  pthread_setname_np(ev_thread.native_handle(), "my_ev_loop");
  ev_thread.detach();

  // Give the event loop time to start
  while (!ev_iteration(loop))
  {
    std::this_thread::sleep_for(std::chrono::milliseconds(1));
  }

  // Send a SUBSCRIBE message which should generate an async callback
  if (REDIS_OK != redisAsyncCommand(async_context, redis_async_cb, nullptr, "SUBSCRIBE foo"))
  {
    throw std::runtime_error("Could not issue redis async command");
  }
  std::cout << "Waiting for async callback" << std::endl;
  fflush(nullptr);
    fflush(nullptr);

  // Wait forever (use CTRL-C to terminate)
  while (true)
  {
    std::this_thread::sleep_for(std::chrono::milliseconds(1));
  }

  return 0;
}

Move your SUBSCRIBE call before you spin off the thread and start the loop and it works
#include <iostream>
#include <thread>
#include <hiredis/hiredis.h>
#include <hiredis/async.h>
#include <hiredis/adapters/libev.h>

static struct ev_loop *loop = nullptr;
static void redis_async_cb(redisAsyncContext *, void *, void *)
{
    std::cout << "Redis async callback" << std::endl;
    fflush(nullptr);
}

#ifdef TIMER
static ev_timer timer_w;
static void ev_timer_cb(EV_P_ ev_timer *, int) {
    std::cout << "EV timer callback" << std::endl;
    fflush(nullptr);
}
#endif

int main() {
    loop = ev_loop_new(EVFLAG_AUTO);

#ifdef TIMER
    ev_timer_init(&timer_w, ev_timer_cb, 0, 0.1);
    ev_timer_start(loop, &timer_w);
#endif

    redisAsyncContext* async_context = redisAsyncConnect("localhost", 6379);
    if (nullptr == async_context) {
        throw std::runtime_error("No redis async context");
    }

    redisLibevAttach(loop, async_context);

    // Send a SUBSCRIBE message which should generate an async callback
    if (REDIS_OK != redisAsyncCommand(async_context, redis_async_cb, nullptr, "SUBSCRIBE foo")) {
        throw std::runtime_error("Could not issue redis async command");
    }

    std::thread ev_thread(ev_loop, loop, 0);
    pthread_setname_np(ev_thread.native_handle(), "my_ev_loop");
    ev_thread.detach();

    // Give the event loop time to start
    while (!ev_iteration(loop)) {
        std::this_thread::sleep_for(std::chrono::milliseconds(1));
    }

    std::cout << "Waiting for async callback" << std::endl;
    fflush(nullptr);
    fflush(nullptr);

    // Wait forever (use CTRL-C to terminate)
    while (true) {
        std::this_thread::sleep_for(std::chrono::milliseconds(1));
    }

    return 0;
}

Move your SUBSCRIBE call before you spin off the thread and start the loop and it works

@michael-grunder - Thank you! that does indeed work. But I for my posterity, can you please explain why it does? I was under the impression that simply starting an ev watcher, which is what happens when redisLibevAttach() is called, is sufficient. I think what this implies is that an io watcher must also have something to process before the loop starts.

It's a good question actually.
From a bit of digging, it looks like we're not starting the watchers in redisLibevAttach, just initializing them with ev_io_init.
Once a command is sent, we execute logic like:
static void redisLibevAddWrite(void *privdata) {
    redisLibevEvents *e = (redisLibevEvents*)privdata;
    struct ev_loop *loop = e->loop;
    ((void)loop);
    if (!e->writing) {
        e->writing = 1;
        ev_io_start(EV_A_ &e->wev);
    }
}

Which starts the watcher.  If I add a call to ev_io_start(EV_A_ &e->wev) in redisLibevAttach I can put the subscribe before or after (or both) and it works.
I didn't write most of the async functionality so I'll need to spend a bit more time with it to see whether tweaking the logic is appropriate.


Remove unused stylesheets

What
Remove the 5 stylesheets listed below from the frontend rendering app:

_conditionals.scss
_title-context-reset.scss
_recruitment-banner.scss
_local-authority.scss
_accounts.scss

Why
They are not being used in the application. Removing these files will reduce the overall file size of application.css sent to the client and make maintenance easier.
The unused stylesheets were identified as part of the PR to "Set up individual component CSS loading" on the frontend - https://github.com/alphagov/frontend/pull/3342/files
Trello card - Individual loading of assets: Frontend CSS
Screenshots
The screenshots below show a very small difference in file size for applications.css
Before (18.3kB)

After (18.2kB)

⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠

@MartinJJones I know I'm late to the party but I'm interested to know how you confirmed that these stylesheets aren't needed. Some seem to be related to things that would be pulled into frontend pages but possible coming from elsewhere (ok that's specific to the recruitment banner). I'm slightly nervous that some "injected" bits of content might appear without some intended styling as a result of this.

Thanks @maxgds, I should have included the steps I took in the description.
My approach was to:

Ensure that the CSS class names are not being used anywhere in the frontend application
Following this, understand the history of where the CSS class names came from and when/why they were removed. The table below includes further information on this
Checked all the pages listed in the README file - https://github.com/alphagov/frontend/blob/main/README.md for any visual changes comparing against live (ignoring '[settle-in-the-uk](https://www.gov.uk/settle-in-the-uk as this was redirected)'

stylesheet
comments

_conditionals.scss
The media-down mixin was originally added in https://github.com/alphagov/frontend/commit/5c2994bccf36cc24f5d5d2780ca829fa6b5fe1b9. This mixin was only being used in travel-advice.scss which was later removed in https://github.com/alphagov/frontend/pull/2127/files

_title-context-reset.scss
cannot find the CSS class used anywhere in the frontend app or when searching the content store

_recruitment-banner.scss
include the banner-container class used to increase the top margin on the intervention component used in the application.html view template, added in https://github.com/alphagov/frontend/commit/378211a655d9dd92e6e8805e7f3b3fe59dec5b93. This was later removed in https://github.com/alphagov/frontend/pull/3237/files

_local-authority.scss
included the separator class added in https://github.com/alphagov/frontend/commit/107d3583a80a885574c3b52b1ac77e4014eb670d, this was only used in the district_and_county_council.html view template, but was later removed in https://github.com/alphagov/frontend/pull/2128

_accounts.scss
included 2 classes, accounts-panel and account-your-account__email, these classes were only being used in the account_home/show.html view template. This was removed when the account/home path was redirected to DI as part of this PR https://github.com/alphagov/frontend/pull/3267/files

Thanks, Martin! Very thorough and satisfies my concerns.


perfect Cache PredisHandler

add PredisHandlerTest
add PredisHandler userguide
add Predis composer-dev config
fix. PredisHandler clean, getMetaData return type.
fix. clean,delete doc return type, in userguide, type is bool.

Checklist:

[x] Securely signed commits
[x] Component(s) with PHPdocs
[x] Unit testing, with >80% coverage
[x] User guide updated
[x] Conforms to style guide

This looks great! I know nothing about Predis but the changes all make sense to me. I'm going to ask @lonnieezell to take a look, but if anybody else has experience with Predis a review would be helpful.


⚠ Samsung has degraded performance

In 7ac0b48, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2736 ms

Resolved: Samsung performance has improved in c98377a.


Add the Repository field to Package.json

Just want to get rid of this little error message:
npm WARN package.json<EMAIL_ADDRESS>No repository field.

awesome thanks!

released as v1.6.1

Thank you! That was super fast!


Terraform remote-exec fail

Hello Everybody,
I am getting timeout error on remote-exec. Can someone please help me to get this resolve.
==========Here is my code===========
variable "aws_access_key" {}
variable "aws_secret_key" {}
variable "private_key_path" {
default = "Terraform.pem"
}
variable "key_name" {
default = "Terraform"
}
provider "aws" {
access_key = "${var.aws_access_key}"
secret_key = "${var.aws_secret_key}"
region     = "us-east-1"
}
resource "aws_security_group" "nginx_sg" {
name          = "nginx_sg"
description   = "security group for nginx from terraform"
ingress {
from_port   = 22
to_port     = 22
protocol    = "tcp"
cidr_blocks = ["<IP_ADDRESS>/0"]
}
ingress {
from_port   = 80
to_port     = 80
protocol    = "tcp"
cidr_blocks = ["<IP_ADDRESS>/0"]
}
ingress {
from_port   = 8080
to_port     = 8080
protocol    = "tcp"
cidr_blocks = ["<IP_ADDRESS>/0"]
}
egress {
from_port       = 0
to_port         = 0
protocol        = "-1"
cidr_blocks     = ["<IP_ADDRESS>/0"]
}
}
resource "aws_instance" "nginx" {
ami           = "ami-07ebfd5b3428b6f4d"
instance_type = "t2.micro"
key_name        = "${var.key_name}"
vpc_security_group_ids = ["${aws_security_group.nginx_sg.id}"]
associate_public_ip_address = "true"
connection {
user        = "ubuntu"
private_key = "${file(var.private_key_path)}"
host = "${aws_instance.nginx.id}"
}
provisioner "remote-exec" {
inline = [
"sudo apt-get update",
"sudo apt-get install nginx -y",
"sudo service nginx start"
]
}
}
output "aws_instance_public_dns" {
value = "http://${aws_instance.nginx.public_dns}:80"
}
===========Error============
aws_instance.nginx (remote-exec): Connecting to remote host via SSH...
aws_instance.nginx (remote-exec):   Host: i-0ad0667xxxxxxx
aws_instance.nginx (remote-exec):   User: ubuntu
aws_instance.nginx (remote-exec):   Password: false
aws_instance.nginx (remote-exec):   Private key: true
aws_instance.nginx (remote-exec):   Certificate: false
aws_instance.nginx (remote-exec):   SSH Agent: true
aws_instance.nginx (remote-exec):   Checking Host Key: false
aws_instance.nginx: Still creating... [5m50s elapsed]
aws_instance.nginx: Still creating... [6m0s elapsed]
Error: timeout - last error: dial tcp <IP_ADDRESS>:22: i/o timeout
Thank you in advance !

Hi Ramparitala,
In connection section the value of host should be public_ip.
host = "${aws_instance.nginx.public_ip}"

Thank you for you prompt response @dhana9000 . Issue resolved by changing host to
host = "${aws_instance.nginx.public_ip}"


math: add tests for corner cases of Yn Bessel function

Follow-up on #18823 and corresponding change https://go-review.googlesource.com/#/c/35970/ (see Rob's comment in that change).

I think we are already testing almost all the edge cases here.
We are testing Yn(n,a) for combinations of n=2,-3 and a= positive finite number, 0, -Inf, +Inf, NaN.
So it might be enough to add a = negative finite number and as a single special case Yn(0,0).

The special cases listed for Yn are:
Yn(n, +Inf) = 0
Yn(n ≥ 0, 0) = -Inf
Yn(n < 0, 0) = +Inf if n is odd, -Inf if n is even
Yn(n, x < 0) = NaN
Yn(n, NaN) = NaN
also
Y0(+Inf) = 0
Y0(0) = -Inf
Y0(x < 0) = NaN
Y0(NaN) = NaN
and
Y1(+Inf) = 0
Y1(0) = -Inf
Y1(x < 0) = NaN
Y1(NaN) = NaN
[Note that Y0(x) = Yn(0, x) and Y1(x) = Yn(1, x)]
Yn(n, x) is already tested for n ∈ {0, 1, 2, -3} and x ∈ {+∞, -∞, 0, NaN}, covering each of the above cases at least once. There are also several test cases over the same values of n with finite x>0. Note that the tests for n=0 and n=1 actually test Y0 and Y1 but that's equivalent. The only test that might be seen as missing is finite x<0 but I don't think it's needed.

I think we are in agreement about which which cases are already tested.
The only case not tested at all is negative finite number for which I added a test with -1. This a usefull addition imo.
Y0(0) is already tested, like you said. So with the extra test Yn(0,0) we are only testing that Yn is calling Y0 in that case. I could see that this is something we might not need.

Oh, sorry, I missed that you had already sent a CL. I don't think that Yn(0, x) is needed unless we also need Yn(1, x) (and Jn(0, x) and Jn(1, x)). In my opinion the case Yn(n, x<0) is already covered by Yn(n, -Inf), so I don't think we actually need any change at all here. Nevertheless, extra tests aren't going to hurt.
Since a CL is already provided, should the HelpWanted label be removed from this issue?


Switched to parsing with ignoreWhitespace set

Also removed some files which were never being used, and some extra whitespace floating around.
All tests pass. Just wanted to run this by @MatthewMueller instead of committing it directly.

Hi Sidd,
Thanks for your efforts. I'll take a look at this over the weekend.
Do you have a HTML tidy in mind? I think it's important that what comes out of cheerio looks similar (or better) than what goes in (unless otherwise specified).

Works perfectly, thanks!

I use a vim plugin called vim-trailing-whitespace, which is why there were lots of whitespace swaps, sorry about that.


Remove double cgroup manager initialization.

The groups manager should always be provided by the manager.
It looks like this already happened except in the nsinit init case.
/cc @crosbymichael
Signed-off-by: David Calavera<EMAIL_ADDRESS>

Idk, if it was required it should probably be a required parameter.  I don't think it hurts anything to create this type does it?

Agree with @crosbymichael

It still feels weird, but I agree that it doesn't hurt :neutral_face:


Upload-WindowsAutopilotDeviceInfo - how to use client ID and secret?

I am trying to use the latest version of Upload-WindowsAutopilotDeviceInfo (1.2.1)
The notes say "1.2.1 - (2023-06-07) Improved access token retrieval, now supports client credentials flow using ClientID and ClientSecret parameters"
Yet when I run the script and pass a CLIENT ID and a CLIENT secret from an azure app I made, it still pops up with a username and password prompt. What am I doing wrong?
Is there any guidance to how to create the enterprise app to work right? What permissions should be turned on in the app?
Example of code I tried.. but it still asks for a username and password.
Install-Script -Name Upload-WindowsAutopilotDeviceInfo -force -confirm:$false -Scope "AllUsers"
$tenant = "mydomain.com"
$ClientID = "12sdsdsdsd-ffff-ssss-eeee-dsfsdfsdfsdf"
$Clientsecret = "blablablabla"
cd "$env:ProgramFiles\WindowsPowerShell\Scripts"
./Upload-WindowsAutopilotDeviceInfo -TenantName $tenant -ClientID $clientID -ClientSecret $clientsecret

So after testing is seems like this part of your script is the issue.


Added e2e test for wafv2

Signed-off-by: thejasn<EMAIL_ADDRESS>

/retest

/lgtm
/approve
/label docs-approved
/label px-approved
/label qe-approved


Renamed normalize_joint_error_ to joints_angle_wraparound_

This will be broken soon in https://github.com/ros-controls/ros2_controllers/pull/834

This needs to be backported to iron after https://github.com/ros-controls/ros2_controllers/pull/869
@Mergifyio backport iron


Error: Unexpected server response: 504

Hello! I'm trying to set up websockets to monitor order books (depth = 10) and this error keeps killing my code:

Error: Unexpected server response: 504
at ClientRequest.req.on (/Users/me/Desktop/code/binance/node_modules/ws/lib/websocket.js:590:5)
at emitOne (events.js:116:13)
at ClientRequest.emit (events.js:211:7)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:551:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:116:23)
at TLSSocket.socketOnData (_http_client.js:440:20)
at emitOne (events.js:116:13)
at TLSSocket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)

Occasionally it's 502, as well.
Is there a way to catch the error in my code? I don't see an onError event or anything. I tried putting the .onDepthLevelUpdate function in a try/catch block, to no avail.
Thanks!
Jason
Editing to add some additional detail: It's intermittent (as expected from 502/504 errors) but typically happens ~20-30 seconds after I start the sockets.

Update: Since the actual websockets object gets returned, I just added .on('error'... and .on('close' to it, and it caught the errors (mostly) elegantly! At least it stops the process from dying, and I can set it to restart the WS when it catches the close.
I'll mark this closed, thanks for letting me talk through it, haha! 👍


Shallow get value

Description

There is a case that only wants keys of a specific path. I think we can provide this feature with a parameter flag.

Done! We need to add it to ain-js


Allow formatting with long lines (fixes #186)

It's very annoying to not be able to format files with long comments. This provides a solution to that; but the stderr output is not displayed anywhere. I think that should be added at some point, but it's not really necessary to at least allow formatting these files. The stderr output will let you know which lines exceed the line length, which you might care about if you want to be strict about enforcing line length.

To add the stderr output into a buffer, we'd need to create a temporary file, and then load the contents of that temporary file into a buffer.

I added the stderr output to the *rustfmt* buffer. This allows you to see which lines are too long if you wish to fix them.

I've been using this for a while and I found a bug with some files not formatting correctly. Please don't merge this until I fix it, thanks!

 Fixed!

I've been used this quite a lot now. I'm pretty sure it's ready to be merged.

I had a couple of minor nits but I think it looks good overall.  Thanks for doing this.

I made the changes and tested it, and it seems to work fine. Let me know if there's anything else, and thanks for the review!


feat(banner) 添加banner分支

由于无法修改根元素html字体大小，html字体大小不知道为什么一直是12px，无法修改，所以样式暂时无法确定，希望有全局的mixins使用

Codecov Report

Merging #4 into dev will decrease coverage by 0.02%.
The diff coverage is 0%.

@@           Coverage Diff            @@
##             dev      #4      +/-   ##
========================================
- Coverage   5.58%   5.55%   -0.03%
========================================
  Files         54      55       +1
  Lines       1343    1350       +7
  Branches     177     177
========================================
  Hits          75      75
- Misses      1268    1275       +7

Impacted Files
Coverage Δ

src/config/index.ts
75% <ø> (ø)
:arrow_up:

src/layouts/index.tsx
0% <0%> (ø)
:arrow_up:

src/pages/Index/index.tsx
0% <0%> (ø)
:arrow_up:

src/layouts/Banner/index.tsx
0% <0%> (ø)

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 ef7c584...a25f43a. Read the comment docs.


Clear local store after successful update, apart from clearing the state

Steps,

enter time for one or more tasks
UPDATE them to redmine
exit the Lazymine

Resutls
Last entered tasks apear with last entered data as well
Expected
Last entered tasks to be there with cleared data

Verified.


Unable to use

I have downloaded this and libpqxx but terminal goes red always.
In documentation isnt specified where i should copy libpqxx-master to.

Sorry, I didn't see this for a few days.
Red means the batch file ended with a failure--can you see in the responses above any indication of what went wrong?
OH, misread the first time, "where i should copy libpqxx-master to"...
Yes, I see if you obey the "Skip past the notes..." and just look at the batch it doesn't explain. In the "Basics..." section it gives more explanation of how to structure. I'll try to edit the instructions in the near future to improve on this if one does "Skip..."
Anyway the batch file is just like the initial examples:

In this method you put the input source files subdirectory (libpqxx-master or libpqxx-) into the top-level directory. Then in this top-level directory execute the following two commands (adjusting the name of the input source accordingly):

Except you run the batch file which does the various commands.
So set up a top level directory for this activity.
Then place the batch files in that top level directory.
Then place the libpqxx-master directory (the one that has the code directly inside of it--not just what you downloaded from PQXX), need to copy out of that, as a subdirectory of that top level directory. You might have copied the original PQXX directory which might have that same name--but the actual source directory is inside of that. It is that subdirectory with that name with all the source code directly under that you need.
You can also look at the parameters set in the top of the batch file and adjust those. If you really wanted to use the original 2-level-nested directory, you can adjust the source location on the line:
SET SOURCE_DIRECTORY=libpqxx-%PQXX_VERSION%
to have a prefix to the outer subdirectory.
I highly recommend just copying the libpqxx-master subdirectory in the source code into the top level directory for the activity.


[Docs] Add 1_exist_data_model.md Chinese Version

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
Add 1_exist_data_model.md Chinese version.
Modification
Add 1_exist_data_model.md Chinese version.
BC-breaking (Optional)
Does the modification introduce changes that break the back-compatibility of the downstream repos?
no.
Use cases (Optional)
no.
Checklist

Pre-commit or other linting tools are used to fix the potential lint issues.
The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
If the modification has potential influence on downstream projects, this PR should be tested with downstream projects.
The documentation has been modified accordingly, like docstring or example tutorials.

Great! I think this PR is ready to merge now @ZwwWayne


Event publish failed

Thanks for your work on the demo!
As you mentioned in the article, "we won't have to worry about setting Timeouts, performing Retries and configuring Circuit Breakers", that's why we should choose event based async integration.
But in this scenario we MUST be sure that event is sent (let's not touch consuming part for now). Imagine if in afterTransaction event is not accepted by our MQ broker for some reason (network issue, bad config, server reboot). Some scenarios will be okay, like if we temporary have wrong comments count on a post. But in some cases it will be a major issue: Posts module failed to send Created event, and some user is sending comment, the Comments module Post projection never created, so we will fail here.
It seem like in the current version on the project your solution is baseline events. So we should do this pretty often, or just "be okay" with potentialy outdated data across the system. What would be your solution to keep the system simple enough and avoid "post not found" error, for example.
I hope we don't fall back to good old retries during event producing...

Hi, thanks for this analysis!
We can break it down to 2 scenarios:
A) Event was'nt sent due to a Bug in the Code
The solution would be to fix and deploy the Bug, do a one-time baseline.
B) there's an Infrastructure issue that has prevented the Event from being sent to the Bus.
Infrastructure is usually in a highest availability tier and is expected never to fail to the point of a complete meltdown. We should have sufficient redundancy and failover coverage for that never to happen. That being said, we could log all serialized events in a persistent storage prior to actually sending them out. That Way, If needed, we could "replay" them via simple code logic. This approach would be similar to Event Sourcing.

Isn't that what the Symfony Messenger is designed for? Or maybe I missed the essence of the question.

I think all's clear. Closing.


[FLINK-9972][flip6] Handle debug memory logging in flip6

Debug memory logging was being ignored in flip6 code and was only supported in legacy code/mode. This PR adds missing support for memory logging.
Verifying this change
This change is not covered by any tests. Can it be tested in some reasonable way?
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

I think this is still valuable, since it's a much simpler way to achieve this goal. While troubleshooting, asking a user to configure slf4j-reporter imo is asking a bit too much.
But maybe somewhere down the road we could drop MemoryLogger and add some shortcote code that would setup slf4j-reporter correctly when taskmanager.debug.memory.log is set to true?

much simpler? You just have to copy a jar from /opt to /lib and copy&paste this into the config:
metrics.reporter.slf4j.class: org.apache.flink.metrics.slf4j.Slf4jReporter
metrics.reporter.slf4j.interval: 60 SECONDS

Yes, probably you are right that we should be able to replace it with Slf4jReporter. I had a wrong impression that you need to manually specify which metrics you want to dump. But lets investigate it as separate ticket in the future.

merging to release-1.5 and release-1.6 ...


Failed to create rent contract (devnet)

Setup

Farm: 4416
NodeID: 161
New 3Node with nvidia geforce 1660 super GPU to test on dev net. (see #1806 for AMD)
zos screen is not displayed since the GPU is used by zos (no issue here)
GPU card is properly detected by zos/the dashboard.

Situation
For the following, I tested on 161 first, then tested with 160 to check if it was recurrent. The following contains some screenshots to show what happened. In brief, first time I click reserve it seems to work, but no contracts get created. Then I get an error trying to reserve again.
Note/Feature Request: The display message should be set to last a couple more seconds. It was even hard just to screenshot the display message. Display it for 8 seconds might be sufficient, for example.
When I click Reserve, I get first this display message:

Then nothing. And no contracts get created.

If I try to reserve again, I get this:

Trying to deploy on a full VM, the node is not rented:

Troubleshoot and Updates
Let me know if I can try something to fix this. I will keep this issue updated if things change on the 3Node's side.

#1927 devnet is pending tfchain's upgrade to fix these issues :)

OK thanks for the info.
I will test the node outside of the grid in the meantime then, until the fix is in.
Let me know if we can close this issue, since there are already related issues/PRs.


Issues with training with slurm

Hi! When running the command sbatch experiment.sh, I am facing the following errors:
sbatch: error: resolve_ctls_from_dns_srv: res_nsearch error: Unknown host
sbatch: error: fetch_config: DNS SRV lookup failed
sbatch: error: _establish_config_source: failed to fetch config
sbatch: fatal: Could not establish a configuration source
These errors are showing up even though i did not add any new robots or make any changes to the repo. Did anyone face a similar issue? Thank you!

These errors look like general slurm errors specific to you slurm setup on your cluster.  Maybe one of the SLURM arguments (top of the experiment.sh) that I use don't work on your slurm setup

Hi apologies for the delayed response. I faced some errors with the slurm setup so I ended up using bash to run it instead.


[BugFix] error path joining of get_design_path util

The get_design_path function in utils.py has a bug. To run python3 run_designs.py --regression scripts/config/regression.config spm, it will show error:

Traceback (most recent call last):
File "run_designs.py", line 423, in
cli()
File "/usr/local/lib/python3.6/site-packages/click/core.py", line 1128, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/click/core.py", line 1053, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.6/site-packages/click/core.py", line 1395, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.6/site-packages/click/core.py", line 754, in invoke
return __callback(*args, **kwargs)
File "run_designs.py", line 338, in cli
ConfigHandler.gen_base_config(design, base_config_path)
File "/openlane/scripts/config/config.py", line 105, in gen_base_config
copyfile(config_file, base_config_file)
File "/usr/lib64/python3.6/shutil.py", line 120, in copyfile
with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: '/openlane/./designs/spm/config.tcl'

This is because os.path.join(os.getcwd(), f"./designs/{design}/") is '/openlane/./designs/spm/'.

Went ahead and decided to make things more consistent- let's see if anything break


Add Quiqup to E-commerce section

Company name: Quiqup
Description: London-based startup offering on-demand, short distance logistics solutions
Location: London, UK
Github link: https://github.com/QuiqUpLTD
Elixir used: The data bus and core message broker are written in Elixir
Sorted Alphabetically: ✔

Thanks @Zorbash!


Fix loading and error handling

Fixes #235, #233

For some reason this file was poorly indented, use the whitespace option of github to see the diff


Unable to run builddbg command.

The command line outputs "Aborted!" after running builddbg.
My shell input:
#Clean input file
input='input_orfs.fasta'
cat $input
| pepsyn stripstop - -
| pepsyn filterstop - -
| pepsyn x2ggsg - -
| pepsyn disambiguateaa - - \

input_orfs.clean.fasta

#Build De-bruijn graph
output='dbg.k20.pickle'
kmer_size=20
pepsyn builddbg -k $kmer_size input_orfs.clean.fasta $output
Am I doing something wrong? Any help would be greatly appreciated!
Note: I don't think there is an issue with the input file since I have used the other pepsyn commands to create a peptide library and it seems to work.

I can't tell what your actual input command was as the formatting is funny. Could you fix and also copy the exact error output?

Hi, sorry I didn't notice it got posted in a weird way.
My input command is,
pepsyn builddbg -k $kmer_size $input_orfs.clean.fasta $output

Could you copy/paste exactly what you see please?
Also, what do you get if you run echo $kmer_size, echo $input_orfs, and echo $output? Finally, do you have networkx installed?

(also, if you can fence a block with three-backticks "```" to get it to render as code.)

I am attaching the bash scripts I am using for this. There are 2 files, one for the Phip-Seq workflow as given in the protocol:
https://www.nature.com/articles/s41596-018-0088-4
The file task_final.sh has the script as described in the protocol, so you can understand what I am trying to do on the command line. All the files mentioned here are in the working directory where the script is used.

The file taskdbg.sh is the one I am having errors with.

I run both of these by running "bash task_final.sh" on the command line.
I apologise I have not installed networkx.

(also, if you can fence a block with three-backticks "```" to get it to render as code.)

I am unsure how to do this, but I will give it a try.

building dbg: 1it [00:00, 6944.21it/s]
Traceback (most recent call last):
File "/root/miniconda3/bin/pepsyn", line 33, in
sys.exit(load_entry_point('pepsyn==0.4.1+5.ga596921',
'console_scripts', 'pepsyn')())
File "/root/miniconda3/lib/python3.10/site-packages/click/core.py",
line 1128, in call
return self.main(*args, **kwargs)
File "/root/miniconda3/lib/python3.10/site-packages/click/core.py",
line 1053, in main
rv = self.invoke(ctx)
File "/root/miniconda3/lib/python3.10/site-packages/click/core.py",
line 1659, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/root/miniconda3/lib/python3.10/site-packages/click/core.py",
line 1395, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/root/miniconda3/lib/python3.10/site-packages/click/core.py",
line 754, in invoke
return __callback(*args, **kwargs)
File
"/root/miniconda3/lib/python3.10/site-packages/pepsyn-0.4.1+5.ga596921-py3.10.egg/pepsyn/cli.py",
line 542, in builddbg
File
"/root/miniconda3/lib/python3.10/site-packages/pepsyn-0.4.1+5.ga596921-py3.10.egg/pepsyn/dbg.py",
line 159, in fasta_handle_to_dbg
File
"/root/miniconda3/lib/python3.10/site-packages/pepsyn-0.4.1+5.ga596921-py3.10.egg/pepsyn/dbg.py",
line 148, in name_seq_pairs_to_dbg
File
"/root/miniconda3/lib/python3.10/site-packages/pepsyn-0.4.1+5.ga596921-py3.10.egg/pepsyn/dbg.py",
line 126, in update_debruijn_graph
AttributeError: 'DiGraph' object has no attribute 'add_path'
I installed networkx and used the same script. It gave me this error^

Looks like networkx has moved the add_path function elsewhere in a more recent version. I don't have time to maintain this package so I can't fix any of these issues at the moment.

okay no worries,
Thank you!


Release 1.3.4

Release PR for next release.

Before actually bloom-releasing this we should update the drivers to use the timeout instead of the keepalive count as this raises an error in startup.
Thinking about this: Shouldn't we make the deprecation notice a warning?

Waiting for #183. Sorry I didn't realize the warning was in two places...


Auto Mode custom tags policy is attached to cluster role when Auto Mode disabled

Description
Auto Mode custom tags policy is attached to cluster role even when auto mode is disabled.  I believe this is the result of https://github.com/terraform-aws-modules/terraform-aws-eks/pull/3242
The variable defaults to true which explains why these are created.  Should there be an additional check for example that disables creation unless auto-mode itself is enabled?
https://github.com/terraform-aws-modules/terraform-aws-eks/pull/3242/files#diff-dc46acf24afd63ef8c556b77c126ccc6e578bc87e3aa09a931f33d9bf2532fbbR567

[x] ✋ I have searched the open/closed issues and my issue is not listed.

Versions

Module version [Required]: 20.31.4
Terraform version: 1.9.8
Provider version(s): 5.81.0

Expected behavior
auto-mode custom tags are ignored when auto-mode is disabled
Actual behavior
custom IAM policy/attachment with enable_auto_mode_custom_tags permissions is created

Closing this because I think it's expected; auto-mode is default for the module and it's up to users to disable the variable if not using auto mode.

Respectfully disagree with this outcome. Currently the local auto_mode_enabled (basically leveraging the content of var.cluster_compute_config) is used in several places for auto mode config.
Since that variable is empty by default, I don't really consider auto mode the default for this module.
I don't see why disabling these tags should the be done separately.
It looks pretty ugly in our current config where setting enable_auto_mode_custom_tags = false is the only specific mention of (a disabled) auto mode.


Documentation: Update build/install instructions to use IGVM

Coconut SVSM supports launch using two different custom builds of QEMU:

https://github.com/coconut-svsm/qemu/tree/svsm-v8.0.0 which contains a coconut SVSM specific launch protocol for the guest.
https://github.com/coconut-svsm/qemu/tree/svsm-igvm which supports launching a guest using IGVM.

The current installation instructions describe how to launch SVSM using 1. However, the plan is to move to only supporting IGVM. Therefore the documentaton has been updated to describe how to build an IGVM file containing SVSM/OVMF, build the required branch of QEMU and launch the guest.
The IGVM file packages SVSM with OVMF, therefore the item in the TODO list in README.md has been removed.
Note that the documentation refers to cloning and building the IGVM github repository. This currently does not include the required C API and is waiting on https://github.com/microsoft/igvm/pull/3 to be merged, hence this PR is marked as draft.

https://github.com/microsoft/igvm/pull/3 has now been merged so this PR is ready for review.

Hey Roy,
this looks good to me, thanks for updating the documentation. One last think which is needed before this can be merged is to update make test-in-svsm to use an IGVM packaged SVSM test binary. Can you add a commit with that conversion to this PR, please?

One last think which is needed before this can be merged is to update make test-in-svsm to use an IGVM packaged SVSM test binary. Can you add a commit with that conversion to this PR, please?

Done. I've added two commits - one to add a generic launch script then a subsequent commit to use this to launch the test-in-svsm tests.


Move events from FormFlow-class into real events

Fixes #11.

I will open up a new PR for this.

You could also just update the branch. Do whatever you want. ;)

Yeah but I somehow managed to completely screw the PR. Trying to solve this issue before open up a new one.


The _compareValue parameter is incorrectly calculated

At firt thank you for the job.
Describe the bug
The _compareValue parameter is incorrectly calculated in the setPeriod_TIMER_TC3(const float& period) function (and in similar other fonctions). At line 723 of file SAMDTimerInterrupt.hpp version 1.9.0:
// _Timer->COUNT.reg = map(_Timer->COUNT.reg, 0, _Timer->CC[0].reg, 0, _compareValue); <- false
_Timer->CC[0].reg = _compareValue;        // <-OK
Note : the maximum period is 1332 ms. The maximum compareValue is 65535 with the prescaler 1024. If the compareValue exceeds 65535, it is an error ( 16 bit mode).
Steps to Reproduce
Use a period of 1000 ms and use Serial.println(Millis()) in the interrupt fonction
Expected behavior
1000 ms more at every step
Actual behavior
I don't remember but near 200 ms.

Arduino IDE version 1.8.19
Arduino IOT 33

I think your code is not completely correct. Thanks anyway.
Please try the SAMD21_MultiTimers example with the following changes

https://github.com/khoih-prog/SAMD_TimerInterrupt/blob/d4b817726aba594b93b24d4c49ee3a908252be08/examples/SAMD21_MultiTimers/SAMD21_MultiTimers.ino#L55

to
uint32_t TIMER_INTERVAL_MS[MAX_TIMER]   = { 1000 /*20*/, 1000 /*50*/, 1200 /*100*/, 200, 500, 1000 };

https://github.com/khoih-prog/SAMD_TimerInterrupt/blob/d4b817726aba594b93b24d4c49ee3a908252be08/examples/SAMD21_MultiTimers/SAMD21_MultiTimers.ino#L129

to
#define DELAY_TIME_MS     60000

You'll see the results as follows
Starting SAMD21_MultiTimers on SAMD_NANO_33_IOT
SAMDTimerInterrupt v1.9.0
CPU Frequency = 48 MHz
[TISR] _period = 1000000.00 , frequency = 1.00
[TISR] _timerNumber = 0
[TISR] SAMDTimerInterrupt: F_CPU (MHz) = 48 , TIMER_HZ = 48
[TISR] TC3_Timer::startTimer _Timer = 0x 42002c00 , TC3 = 0x 42002c00
[TISR] SAMD21 TC3 period = 1000000.00 , _prescaler = 1024
[TISR] _compareValue = 46874              <==============   Correct _compareValue for 1000ms
Starting  TIMER_TC3 OK, millis() = 832
[TISR] _period = 1000000.00 , frequency = 1.00
[TISR] _timerNumber = 1
[TISR] SAMDTimerInterrupt: F_CPU (MHz) = 48 , TIMER_HZ = 48
[TISR] TC4_Timer::startTimer _Timer = 0x 42003000 , TC4 = 0x 42003000
[TISR] SAMD21 TC4 period = 1000000.00 , _prescaler = 1024
[TISR] _compareValue = 46874             <==============   Correct _compareValue for 1000ms
Starting  TIMER_TC4 OK, millis() = 834
[TISR] _period = 1200000.00 , frequency = 0.83
[TISR] _timerNumber = 2
[TISR] SAMDTimerInterrupt: F_CPU (MHz) = 48 , TIMER_HZ = 48
[TISR] TC5_Timer::startTimer _Timer = 0x 42003400 , TC5 = 0x 42003400
[TISR] SAMD21 TC5 period = 1200000.00 , _prescaler = 1024
[TISR] _compareValue = 56249             <==============   Correct _compareValue for 12000ms
Starting  TIMER_TC5 OK, millis() = 836
[TISR] _period = 200000.00 , frequency = 5.00
[TISR] SAMDTimerInterrupt: F_CPU (MHz) = 48 , TIMER_HZ = 48
[TISR] TCC_Timer::startTimer _Timer = 0x 42002000 , TCC0 = 0x 42002000
[TISR] SAMD21 TCC period = 200000.00 , _prescaler = 256
[TISR] _compareValue = 37499
Starting  TIMER_TCC OK, millis() = 837
[TISR] _period = 500000.00 , frequency = 2.00
[TISR] SAMDTimerInterrupt: F_CPU (MHz) = 48 , TIMER_HZ = 48
[TISR] TCC_Timer::startTimer _Timer = 0x 42002400 , TCC1 = 0x 42002400
[TISR] SAMD21 TCC1 period = 500000.00 , _prescaler = 1024
[TISR] _compareValue = 23436
Starting  TIMER_TCC1 OK, millis() = 839
[TISR] _period = 1000000.00 , frequency = 1.00
[TISR] SAMDTimerInterrupt: F_CPU (MHz) = 48 , TIMER_HZ = 48
[TISR] TCC_Timer::startTimer _Timer = 0x 42002800 , TCC2 = 0x 42002800
[TISR] SAMD21 TCC2 period = 1000000.00 , _prescaler = 1024
[TISR] _compareValue = 46874
Starting  TIMER_TCC2 OK, millis() = 1141
========================================
TC3  Actual/Programmed (ms) 1000/1000     <==============   Correct 1000ms
TC4  Actual/Programmed (ms) 1000/1000     <==============   Correct 1000ms
TC5  Actual/Programmed (ms) 1200/1200     <==============   Correct 1200ms
TCC  Actual/Programmed (ms) 200/200
TCC1 Actual/Programmed (ms) 500/500
TCC2 Actual/Programmed (ms) 1000/1000
========================================
TC3  Actual/Programmed (ms) 1000/1000
TC4  Actual/Programmed (ms) 1000/1000
TC5  Actual/Programmed (ms) 1200/1200
TCC  Actual/Programmed (ms) 200/200
TCC1 Actual/Programmed (ms) 500/500
TCC2 Actual/Programmed (ms) 1000/1000