Ruby: Segmentation fault in object finalizer

What version of gRPC and what language are you using?
grpc-1.56.0-x86_64-linux and ruby-3.2.2.
What operating system (Linux, Windows,...) and version?
Ubuntu 22.04
What runtime / compiler are you using (e.g. python version or version of gcc)
We're using the precompiled binaries.
What did you do?
I unfortunately don't have a reproduction, I however I have a few informations:

When some event happens, we fork from the process that was using GRPC to do some unrelated cleanup and then exit
Note that we don't use grpc in the fork, actually the backtrace show the forked children didn't get time to execute any code.

Backtrace:
(gdb) bt
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140265177915392) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=140265177915392) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=140265177915392, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007f920841a476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007f92084007f3 in __GI_abort () at ./stdlib/abort.c:79
#5  0x0000556266543bce in die () at error.c:776
#6  rb_bug_for_fatal_signal (default_sighandler=0x0, sig=sig@entry=11, ctx=ctx@entry=0x7f920733ee40, fmt=fmt@entry=0x5562669686b1 "Segmentation fault at %p") at error.c:817
#7  0x00005562666a89dd in sigsegv (sig=11, info=0x7f920733ef70, ctx=0x7f920733ee40) at signal.c:964
#8  0x00007f920841a520 in <signal handler called> () at /lib/x86_64-linux-gnu/libc.so.6
#9  0x00007f91f0af91f5 in  () at /artifacts/bundle/ruby/3.2.0/gems/grpc-1.56.0-x86_64-linux/src/ruby/lib/grpc/3.2/grpc_c.so
#10 0x00007f91f0835fe2 in  () at /artifacts/bundle/ruby/3.2.0/gems/grpc-1.56.0-x86_64-linux/src/ruby/lib/grpc/3.2/grpc_c.so
#11 0x00007f91f0b00a02 in  () at /artifacts/bundle/ruby/3.2.0/gems/grpc-1.56.0-x86_64-linux/src/ruby/lib/grpc/3.2/grpc_c.so
#12 0x00007f91f088fb90 in  () at /artifacts/bundle/ruby/3.2.0/gems/grpc-1.56.0-x86_64-linux/src/ruby/lib/grpc/3.2/grpc_c.so
#13 0x00007f91f088fe1f in  () at /artifacts/bundle/ruby/3.2.0/gems/grpc-1.56.0-x86_64-linux/src/ruby/lib/grpc/3.2/grpc_c.so
#14 0x00007f91f079b155 in  () at /artifacts/bundle/ruby/3.2.0/gems/grpc-1.56.0-x86_64-linux/src/ruby/lib/grpc/3.2/grpc_c.so
#15 0x00007f91f08367f5 in  () at /artifacts/bundle/ruby/3.2.0/gems/grpc-1.56.0-x86_64-linux/src/ruby/lib/grpc/3.2/grpc_c.so
#16 0x00007f91f0888ad5 in  () at /artifacts/bundle/ruby/3.2.0/gems/grpc-1.56.0-x86_64-linux/src/ruby/lib/grpc/3.2/grpc_c.so
#17 0x00007f91f0796cd4 in  () at /artifacts/bundle/ruby/3.2.0/gems/grpc-1.56.0-x86_64-linux/src/ruby/lib/grpc/3.2/grpc_c.so
#18 0x00007f91f0796d2e in  () at /artifacts/bundle/ruby/3.2.0/gems/grpc-1.56.0-x86_64-linux/src/ruby/lib/grpc/3.2/grpc_c.so
#19 0x000055626655e772 in run_final (zombie=<optimized out>, objspace=0x7f9207c77000) at gc.c:4373
#20 finalize_list (zombie=<optimized out>, objspace=<optimized out>) at gc.c:4392
#21 finalize_deferred_heap_pages (objspace=0x7f9207c77000) at gc.c:4421
#22 0x000055626657028a in rb_objspace_call_finalizer (objspace=0x7f9207c77000) at gc.c:4558
#23 0x0000556266548e71 in rb_ec_finalize (ec=0x7f9207c85050) at eval.c:168
#24 rb_ec_cleanup (ec=<optimized out>, ex=<optimized out>) at eval.c:262
#25 0x000055626654951c in ruby_cleanup (ex=<optimized out>) at eval.c:182
#26 ruby_stop (ex=<optimized out>) at eval.c:300
#27 0x000055626664c124 in rb_f_fork (obj=<optimized out>) at process.c:4460
#28 rb_f_fork (obj=<optimized out>) at process.c:4450
#29 0x000055626673b4c7 in vm_call_cfunc_with_frame (ec=0x7f9207c85050, reg_cfp=0x7f9207d8a180, calling=<optimized out>) at /tmp/ruby-build.20230626075400.392.v0Cs5Z/ruby-3.2.0-fd54de3d206077f5339b561b10b13f6bc903082a/vm_insnhelper.c:3270
#30 0x00005562667504ec in vm_sendish (method_explorer=<optimized out>, block_handler=<optimized out>, cd=<optimized out>, reg_cfp=<optimized out>, ec=<optimized out>) at /tmp/ruby-build.20230626075400.392.v0Cs5Z/ruby-3.2.0-fd54de3d206077f5339b561b10b13f6bc903082a/vm_callinfo.h:367
#31 vm_exec_core (ec=0x7f9207c85050, initial=140264762281488) at /tmp/ruby-build.20230626075400.392.v0Cs5Z/ruby-3.2.0-fd54de3d206077f5339b561b10b13f6bc903082a/insns.def:801
#32 0x000055626673ec45 in rb_vm_exec (ec=0x7f9207c85050, jit_enable_p=true) at vm.c:2383
#33 0x0000556266744268 in invoke_block (captured=<optimized out>, captured=<optimized out>, opt_pc=<optimized out>, type=<optimized out>, cref=0x0, self=140264996385480, iseq=0x7f91fd4ed6d0, ec=0x7f9207c85050) at vm.c:1398
#34 invoke_iseq_block_from_c (me=0x0, is_lambda=<optimized out>, cref=0x0, passed_block_handler=0, kw_splat=0, argv=0x7ffdc9027cd8, argc=1, self=140264996385480, captured=<optimized out>, ec=0x7f9207c85050) at vm.c:1454
#35 invoke_block_from_c_bh (force_blockarg=<optimized out>, is_lambda=<optimized out>, cref=<optimized out>, passed_block_handler=<optimized out>, kw_splat=<optimized out>, argv=<optimized out>, argc=<optimized out>, block_handler=<optimized out>, ec=<optimized out>) at vm.c:1472
#36 vm_yield_with_cref (is_lambda=0, cref=0x0, kw_splat=0, argv=0x7ffdc9027cd8, argc=1, ec=0x7f9207c85050) at vm.c:1509
#37 vm_yield (kw_splat=0, argv=0x7ffdc9027cd8, argc=1, ec=0x7f9207c85050) at vm.c:1517
#38 rb_yield_0 (argv=0x7ffdc9027cd8, argc=1) at /tmp/ruby-build.20230626075400.392.v0Cs5Z/ruby-3.2.0-fd54de3d206077f5339b561b10b13f6bc903082a/vm_eval.c:1347
#39 catch_i (tag=<optimized out>, _=_@entry=0, argc=argc@entry=1, argv=<optimized out>, blockarg=blockarg@entry=4) at /tmp/ruby-build.20230626075400.392.v0Cs5Z/ruby-3.2.0-fd54de3d206077f5339b561b10b13f6bc903082a/vm_eval.c:2310
#40 0x000055626673cace in vm_catch_protect (tag=<optimized out>, func=func@entry=0x556266743fa0 <catch_i>, data=data@entry=0, stateptr=stateptr@entry=0x7ffdc9027e04, ec=ec@entry=0x7f9207c85050) at /tmp/ruby-build.20230626075400.392.v0Cs5Z/ruby-3.2.0-fd54de3d206077f5339b561b10b13f6bc903082a/vm_eval.c:2392
#41 0x000055626673cd54 in rb_catch_obj (data=0, func=0x556266743fa0 <catch_i>, t=<optimized out>) at /tmp/ruby-build.20230626075400.392.v0Cs5Z/ruby-3.2.0-fd54de3d206077f5339b561b10b13f6bc903082a/vm_eval.c:2418
#42 rb_f_catch (argc=<optimized out>, argv=<optimized out>, self=<optimized out>) at /tmp/ruby-build.20230626075400.392.v0Cs5Z/ruby-3.2.0-fd54de3d206077f5339b561b10b13f6bc903082a/vm_eval.c:2368
#43 0x000055626673b4c7 in vm_call_cfunc_with_frame (ec=0x7f9207c85050, reg_cfp=0x7f9207d8a300, calling=<optimized out>) at /tmp/ruby-build.20230626075400.392.v0Cs5Z/ruby-3.2.0-fd54de3d206077f5339b561b10b13f6bc903082a/vm_insnhelper.c:3270
#44 0x00005562667504ec in vm_sendish (method_explorer=<optimized out>, block_handler=<optimized out>, cd=<optimized out>, reg_cfp=<optimized out>, ec=<optimized out>) at /tmp/ruby-build.20230626075400.392.v0Cs5Z/ruby-3.2.0-fd54de3d206077f5339b561b10b13f6bc903082a/vm_callinfo.h:367
#45 vm_exec_core (ec=0x7f9207c85050, initial=140264762281488) at /tmp/ruby-build.20230626075400.392.v0Cs5Z/ruby-3.2.0-fd54de3d206077f5339b561b10b13f6bc903082a/insns.def:801
#46 0x000055626673e27f in rb_vm_exec (ec=0x7f9207c85050, jit_enable_p=true) at vm.c:2374
#47 0x00005562665bb507 in load_iseq_eval (fname=140264997080400, ec=0x7f9207c85050) at load.c:697
#48 rb_load_internal (wrap=<optimized out>, fname=140264997080400) at load.c:758
#49 rb_f_load (argc=<optimized out>, argv=<optimized out>, _=<optimized out>) at load.c:833
#50 0x000055626673b4c7 in vm_call_cfunc_with_frame (ec=0x7f9207c85050, reg_cfp=0x7f9207d8a440, calling=<optimized out>) at /tmp/ruby-build.20230626075400.392.v0Cs5Z/ruby-3.2.0-fd54de3d206077f5339b561b10b13f6bc903082a/vm_insnhelper.c:3270
#51 0x000055626674efb8 in vm_sendish (method_explorer=<optimized out>, block_handler=<optimized out>, cd=<optimized out>, reg_cfp=<optimized out>, ec=<optimized out>) at /tmp/ruby-build.20230626075400.392.v0Cs5Z/ruby-3.2.0-fd54de3d206077f5339b561b10b13f6bc903082a/vm_callinfo.h:367
#52 vm_exec_core (ec=0x7f9207c85050, initial=140264762281488) at /tmp/ruby-build.20230626075400.392.v0Cs5Z/ruby-3.2.0-fd54de3d206077f5339b561b10b13f6bc903082a/insns.def:820
#53 0x000055626673ec45 in rb_vm_exec (ec=0x7f9207c85050, jit_enable_p=true) at vm.c:2383
#54 0x0000556266544431 in rb_ec_exec_node (ec=ec@entry=0x7f9207c85050, n=n@entry=0x7f9201ed7340) at eval.c:289
#55 0x00005562665495ed in ruby_run_node (n=0x7f9201ed7340) at eval.c:330
#56 0x00005562665441b7 in rb_main (argv=0x7ffdc9028798, argc=4) at ./main.c:38

Based on this backtrace we can see that following the fork Ruby runs the ruby_stop -> ruby_cleanup routine in the children:
rb_f_fork(VALUE obj)
{
    rb_pid_t pid;

    pid = rb_call_proc__fork();

    if (pid == 0) {
        if (rb_block_given_p()) {
            int status;
            rb_protect(rb_yield, Qundef, &status);
            ruby_stop(status);
        }
        return Qnil;
    }

    return PIDT2NUM(pid);
}

This cause finalizers to be executed, and one of them calls into GRPC and end up crashing.
Unfortunately since the grpc binaries strip symbols, I have no idea which Object it might be or what function it might be calling.
I think it would be worth not stripping symbols, that would make debugging these things easier.
What did you expect to see?
I'd expect the process not to crash.
What did you see instead?
The process crashes.

This cause finalizers to be executed, and one of them calls into GRPC and end up crashing.

Grepping in the source, I can't find any finalizer being defined.
So the offending Object must be one that doesn't set RUBY_TYPED_FREE_IMMEDIATELY. This somewhat limit the number of suspects.

There is only two types with deferred free:

grpc_rb_md_ary_data_type
grpc_rb_server_data_type

As far as I know, we're only using grpc client, so that would rule out grpc_rb_server_data_type, leaving only grpc_rb_md_ary_data_type as a suspect.

Hum, actually:
const rb_data_type_t grpc_rb_md_ary_data_type = {
    "grpc_metadata_array",
    {GRPC_RB_GC_NOT_MARKED,
     GRPC_RB_GC_DONT_FREE,
     GRPC_RB_MEMSIZE_UNAVAILABLE,
     {NULL, NULL}},
    NULL,
    NULL,
#ifdef RUBY_TYPED_FREE_IMMEDIATELY
    /* it is unsafe to specify RUBY_TYPED_FREE_IMMEDIATELY because
     * grpc_rb_call_destroy
     * touches a hash object.
     * TODO(yugui) Directly use st_table and call the free function earlier?
     */
    0,
#endif
};

That type doesn't free at all, so this comment must be outdated, and that leave only grpc_rb_server_data_type which does have a deferred free function that does make substantial calls into the grpc-core:
static void grpc_rb_server_free_internal(void* p) {
  grpc_rb_server* svr = NULL;
  gpr_timespec deadline;
  if (p == NULL) {
    return;
  };
  svr = (grpc_rb_server*)p;

  deadline = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME),
                          gpr_time_from_seconds(2, GPR_TIMESPAN));

  grpc_rb_server_maybe_shutdown_and_notify(svr, deadline);
  grpc_rb_server_maybe_destroy(svr);

  xfree(p);
}

I greped all our code and dependencies, and I highly doubt we're running any Server or RpcServer, so this is very puzzling.

@casperisfine it should be able to get debug symbols by building the gem from source under env var: GRPC_CONFIG=dbg. That will yield an unoptimized build but it won't be stripped.
It is possible to try running with that?

When some event happens, we fork from the process that was using GRPC to do some unrelated cleanup and then exit

Are you forking and then not immediately doing an exec? If so, that will generally cause undefined behavior. It should work though we release a proper fork support mechanism in 1.57 (e.g. the GRPCprefork and postfork APIs

It is possible to try running with that?

Yes, I shipped https://github.com/Shopify/grpc/commit/4ae893297818ca7f27786cac10f5140ddcc22a73 and waiting for this to happen again.

Are you forking and then not immediately doing an exec?

Yes, as I said, it's doing some cleanup task entirely unrelated to GRPC.

e.g. the GRPCprefork and postfork APIs

Note that here the GC is being invoked before any ruby code post fork, even in 1.57 it might not be possible to call postfork before this happen.

Yes, as I said, it's doing some cleanup task entirely unrelated to GRPC.

Ok, in that case I don't think we can debug this and make it work - i.e. this is not supported behavior. Garbage collection in the child can cause lots of subtle issues if threads and fds are not properly shut down across the fork.

Note that here the GC is being invoked before any ruby code post fork, even in 1.57 it might not be possible to call postfork before this happen.

The fork support added in 1.57 is actually designed to solve this because:
a) File descriptors are reset in the child process in a pthread_atfork handler.
b) Threads are properly shut down in the parent before forking. Today, there are a bunch of place where threads could be dropped in the child while holding a mutex that a finalizer ends up trying to acquire for example, easily causing deadlock.

Makes sense, I'll wait for https://github.com/grpc/grpc/pull/33430 to be merged and try it. Thanks!

Ok, so for the record I managed to get a backtrace with symbols:
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=139761381195776) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=139761381195776) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=139761381195776, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007f1cbba1a476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007f1cbba007f3 in __GI_abort () at ./stdlib/abort.c:79
#5  0x0000561474668bce in die () at error.c:776
#6  rb_bug_for_fatal_signal (default_sighandler=0x0, sig=sig@entry=11, ctx=ctx@entry=0x7f1cba93e440, fmt=fmt@entry=0x561474a8d6b1 "Segmentation fault at %p") at error.c:817
#7  0x00005614747cd9dd in sigsegv (sig=11, info=0x7f1cba93e570, ctx=0x7f1cba93e440) at signal.c:964
#8  0x00007f1cbba1a520 in <signal handler called> () at /lib/x86_64-linux-gnu/libc.so.6
#9  pollset_kick(grpc_pollset*, grpc_pollset_worker*) (pollset=0x7f1c99077d80, specific_worker=<optimized out>) at src/core/lib/iomgr/ev_epoll1_linux.cc:1087
#10 0x00007f1ca4340368 in pollset_kick(grpc_pollset*, grpc_pollset_worker*) (pollset=<optimized out>, specific_worker=<optimized out>) at src/core/lib/iomgr/ev_posix.cc:258
#11 0x00007f1ca4645b68 in grpc_pollset_kick(grpc_pollset*, grpc_pollset_worker*) (pollset=<optimized out>, specific_worker=<optimized out>) at src/core/lib/iomgr/pollset.cc:53
#12 0x00007f1ca439f9f8 in cq_end_op_for_next(grpc_completion_queue*, void*, grpc_error_handle, void (*)(void*, grpc_cq_completion*), void*, grpc_cq_completion*, bool)
     (cq=0x7f1c99077c00, tag=0x7f1c991dda90, error=..., done=0x7f1ca4298760 <grpc_core::(anonymous namespace)::StateWatcher::FinishedCompletion(void*, grpc_cq_completion*)>, done_arg=0x7f1c99005b00, storage=<optimized out>) at src/core/lib/surface/completion_queue.cc:739
#13 0x00007f1ca439fc2e in grpc_cq_end_op(grpc_completion_queue*, void*, absl::lts_20230125::Status, void (*)(void*, grpc_cq_completion*), void*, grpc_cq_completion*, bool)
     (cq=<optimized out>, tag=<optimized out>, error=..., done=done@entry=0x7f1ca4298760 <grpc_core::(anonymous namespace)::StateWatcher::FinishedCompletion(void*, grpc_cq_completion*)>, done_arg=done_arg@entry=0x7f1c99005b00, storage=<optimized out>, internal=false) at src/core/lib/surface/completion_queue.cc:885
#14 0x00007f1ca4298aee in grpc_core::(anonymous namespace)::StateWatcher::Orphan (this=0x7f1c99005b00) at third_party/abseil-cpp/absl/status/status.h:842
#15 grpc_core::DualRefCounted<grpc_core::(anonymous namespace)::StateWatcher>::Unref (this=0x7f1c99005b00) at ./src/core/lib/gprpp/dual_ref_counted.h:77
#16 grpc_core::(anonymous namespace)::StateWatcher::WatchComplete(void*, grpc_error_handle) (arg=0x7f1c99005b00, error=...) at src/core/ext/filters/client_channel/channel_connectivity.cc:198
#17 0x00007f1ca4340e48 in exec_ctx_run (closure=0x7f1c99005b58) at src/core/lib/iomgr/exec_ctx.cc:45
#18 grpc_core::ExecCtx::Flush() (this=this@entry=0x7ffcb2ee7130) at src/core/lib/iomgr/exec_ctx.cc:72
#19 0x00007f1ca439898a in grpc_core::ExecCtx::~ExecCtx() (this=0x7ffcb2ee7130, __in_chrg=<optimized out>) at ./src/core/lib/iomgr/exec_ctx.h:117
#20 grpc_channel_destroy(grpc_channel*) (channel=0x7f1c99030540) at src/core/lib/surface/channel.cc:437
#21 0x00007f1ca4293869 in grpc_rb_channel_safe_destroy (bg=<optimized out>) at rb_channel.c:134
#22 grpc_rb_channel_free_internal (p=0x7f1c9907e460) at rb_channel.c:160
#23 grpc_rb_channel_free (p=0x7f1c9907e460) at rb_channel.c:168
#24 0x0000561474683772 in run_final (zombie=<optimized out>, objspace=0x7f1cbb277000) at gc.c:4373
#25 finalize_list (zombie=<optimized out>, objspace=<optimized out>) at gc.c:4392
#26 finalize_deferred_heap_pages (objspace=0x7f1cbb277000) at gc.c:4421
#27 0x000056147469528a in rb_objspace_call_finalizer (objspace=0x7f1cbb277000) at gc.c:4558
#28 0x000056147466de71 in rb_ec_finalize (ec=0x7f1cbb285050) at eval.c:168
#29 rb_ec_cleanup (ec=<optimized out>, ex=<optimized out>) at eval.c:262
#30 0x000056147466e51c in ruby_cleanup (ex=<optimized out>) at eval.c:182
#31 ruby_stop (ex=<optimized out>) at eval.c:300
#32 0x0000561474771124 in rb_f_fork (obj=<optimized out>) at process.c:4460

So the culprit seem to be grpc_rb_channel_free.


Adding CdnjsCatalog convert tests and npm package tests

        var list = new List<Asset>();

Can we have a better name for this?maybe assets?

Refers to: src/LibraryManager/Providers/Cdnjs/CdnjsCatalog.cs:278 in d787c74. [](commit_id = d787c74109d0398e0a40936539adc3d8b8a21f92, deletion_comment = False)

        var list = new List<Asset>();

Yes. That make sense to me.

In reply to: 407914986 [](ancestors = 407914986)

Refers to: src/LibraryManager/Providers/Cdnjs/CdnjsCatalog.cs:278 in d787c74. [](commit_id = d787c74109d0398e0a40936539adc3d8b8a21f92, deletion_comment = False)

        }

As discussed offline, can you verify if this?

Refers to: src/LibraryManager/Providers/Cdnjs/CdnjsCatalog.cs:299 in d787c74. [](commit_id = d787c74109d0398e0a40936539adc3d8b8a21f92, deletion_comment = False)


Push xDS when SE TargetPort is changed

Please provide a description of this PR:
Fixes https://github.com/istio/istio/issues/49878

@dddddai: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
3102f6c9d77f66db72fede079b7578682c192562
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

can we do eds push when targetport changed

TargetPort also impacts LDS(see https://github.com/istio/istio/issues/48580). I believe we need a full push

In response to a cherrypick label: new pull request created: #50095

In response to a cherrypick label: new pull request created: #50096

In response to a cherrypick label: new pull request could not be created: failed to create pull request against istio/istio#release-1.19 from head istio-testing:cherry-pick-50068-to-release-1.19: status code 422 not one of [201], body: {"message":"Validation Failed","errors":[{"resource":"PullRequest","code":"custom","message":"A pull request already exists for istio-testing:cherry-pick-50068-to-release-1.19."}],"documentation_url":"https://docs.github.com/rest/pulls/pulls#create-a-pull-request"}

In response to a cherrypick label: new pull request created: #50097

In response to a cherrypick label: new pull request could not be created: failed to create pull request against istio/istio#release-1.21 from head istio-testing:cherry-pick-50068-to-release-1.21: status code 422 not one of [201], body: {"message":"Validation Failed","errors":[{"resource":"PullRequest","code":"custom","message":"A pull request already exists for istio-testing:cherry-pick-50068-to-release-1.21."}],"documentation_url":"https://docs.github.com/rest/pulls/pulls#create-a-pull-request"}

In response to a cherrypick label: new pull request could not be created: failed to create pull request against istio/istio#release-1.19 from head istio-testing:cherry-pick-50068-to-release-1.19: status code 422 not one of [201], body: {"message":"Validation Failed","errors":[{"resource":"PullRequest","code":"custom","message":"A pull request already exists for istio-testing:cherry-pick-50068-to-release-1.19."}],"documentation_url":"https://docs.github.com/rest/pulls/pulls#create-a-pull-request"}

In response to a cherrypick label: new pull request could not be created: failed to create pull request against istio/istio#release-1.21 from head istio-testing:cherry-pick-50068-to-release-1.21: status code 422 not one of [201], body: {"message":"Validation Failed","errors":[{"resource":"PullRequest","code":"custom","message":"A pull request already exists for istio-testing:cherry-pick-50068-to-release-1.21."}],"documentation_url":"https://docs.github.com/rest/pulls/pulls#create-a-pull-request"}


could this page be updated please? Very old.

[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 27338e81-9282-521f-e0b6-245124da59ec
Version Independent ID: 27338e81-9282-521f-e0b6-245124da59ec
Content: Private endpoints for accessing Power BI - Power BI
Content Source: powerbi-docs/enterprise/service-security-private-links.md
Service: powerbi
Sub-service: pbi-security
GitHub Login: @davidiseminger
Microsoft Alias: davidi

Thanks for your comment, @FalkeSK. This issue has been assigned to the doc author for review.

We've recently updated that article. Thanks!


Add unit models

Description
This PR beings to implement some models for pint.Quantity wrappers that play well with pydantic models.
Todos

[x] ArrayQuantity
[x] Deserialization
[ ] Remove old code
[ ] Enforce explicitness of units in existing models? (a.k.a. revert most of #65)

Some feedback

Need to set validate_assignment = True in order for validators to be called when mutating a model
Units of fields are mutable (within the constraint that changes to units match dimensionality) - unclear if this is a feature or a downside
Does baz=np.array([3, 2, 1]).tobytes(), work on all platforms? (Something about endianness of the NumPy array)
Test for Atom.parse_raw(a.json()) == a?
Test for Atom(**a.dict()) == a?
Main limitation of this implementation is reading primitives back in, i.e. in Atom(**json.loads(a.json()))/Molecule(**json.loads(m.json())) because those representations of data are ambiguous (without a custom deserializer)
Add a test case for mixing FloatQuantity, ArrayQuantity, and primitive(s)

Some feedback

Need to set validate_assignment = True in order for validators to be called when mutating a model
Units of fields are mutable (within the constraint that changes to units match dimensionality) - unclear if this is a feature or a downside
Does baz=np.array([3, 2, 1]).tobytes(), work on all platforms? (Something about endianness of the NumPy array)
Test for Atom.parse_raw(a.json()) == a?
Test for Atom(**a.dict()) == a?
Main limitation of this implementation is reading primitives back in, i.e. in Atom(**json.loads(a.json()))/Molecule(**json.loads(m.json())) because those representations of data are ambiguous (without a custom deserializer)
Add a test case for mixing FloatQuantity, ArrayQuantity, and primitive(s)

Merging this now, and in a separate PR will roll these classes out to the existing models

Merging this now, and in a separate PR will roll these classes out to the existing models


Warning: Invalid prop transKey of type object supplied to SlideTransition expected string

Hi, many thanks for this library. Unfortunatelly there is some Warning message in dev tools after upgrade of material-ui package from 1.3.x to 1.5.1
Environment

Tech
Version

material-ui-pickers
1.0.0-rc.13

material-ui
1.5.1

React
16.4.2

Browser
Google Chrome  68.0.3440.106

Platform
Mac OS X 10.13.6

Peer library
<EMAIL_ADDRESS>

Steps to reproduce

Click on the input to open picker dialog

Expected behavior
No warning
Actual behavior
Warning message in dev tools:
index.js:2178 Warning: Failed prop type: Invalid prop `transKey` of type `object` supplied to `SlideTransition`, expected `string`.
    in SlideTransition (created by WithStyles(SlideTransition))
    in WithStyles(SlideTransition) (created by CalendarHeader)
    in div (created by CalendarHeader)
    in div (created by CalendarHeader)
    in CalendarHeader
    in WithUtils(CalendarHeader) (created by WithStyles(WithUtils(CalendarHeader)))
    in WithStyles(WithUtils(CalendarHeader)) (created by Calendar)
    in Calendar
    in WithUtils(Calendar) (created by WithStyles(WithUtils(Calendar)))
    in WithStyles(WithUtils(Calendar)) (created by DateTimePicker)
    in div (created by DateTimePickerView)
    in DateTimePickerView (created by WithStyles(DateTimePickerView))
    in WithStyles(DateTimePickerView) (created by DateTimePicker)
    in div (created by DateTimePicker)
    in DateTimePicker
    in WithUtils(DateTimePicker) (created by WithStyles(WithUtils(DateTimePicker)))
    in WithStyles(WithUtils(DateTimePicker)) (created by RenderPropsComponent)
    in div (created by DialogContent)
    in DialogContent (created by WithStyles(DialogContent))
    in WithStyles(DialogContent) (created by ModalDialog)
    in div (created by Paper)
    in Paper (created by WithStyles(Paper))
    in WithStyles(Paper) (created by Dialog)
    in Transition (created by Fade)
    in Fade (created by WithTheme(Fade))
    in WithTheme(Fade) (created by Dialog)
    in RootRef (created by Modal)
    in div (created by Modal)
    in Portal (created by Modal)
    in Modal (created by WithStyles(Modal))
    in WithStyles(Modal) (created by Dialog)
    in Dialog (created by WithStyles(Dialog))
    in WithStyles(Dialog) (created by ModalDialog)
    in ModalDialog (created by WithStyles(ModalDialog))
    in WithStyles(ModalDialog) (created by ModalWrapper)
    in ModalWrapper (created by RenderPropsComponent)
    in RenderPropsComponent (created by withHandlers(RenderPropsComponent))
    in withHandlers(RenderPropsComponent) (created by lifecycle(withHandlers(RenderPropsComponent)))
    in lifecycle(withHandlers(RenderPropsComponent)) (created by withState(lifecycle(withHandlers(RenderPropsComponent))))
    in withState(lifecycle(withHandlers(RenderPropsComponent))) (created by BasePicker)
    in BasePicker
    in WithUtils(BasePicker) (created by DateTimePickerWrapper)
    in DateTimePickerWrapper (created by WithStyles(DateTimePickerWrapper))
    in WithStyles(DateTimePickerWrapper) (created by ForwardRef)
    in div (created by FormControl)
    in FormControl (created by WithStyles(FormControl))
    in WithStyles(FormControl) (at form.js:12)
    in renderField (created by Field)
    in Field (at index.jsx:123)
    in div (created by Grid)
    in Grid (created by WithStyles(Grid))
    in WithStyles(Grid) (at index.jsx:122)
    in div (created by Grid)
    in Grid (created by WithStyles(Grid))
    in WithStyles(Grid) (at index.jsx:95)
    in div (at index.jsx:65)
    in form (at index.jsx:64)
    in ReactFinalForm (at index.jsx:61)
    in FormConfig (created by WithStyles(FormConfig))
    in WithStyles(FormConfig) (created by Mutation)
    in Mutation (created by Apollo(WithStyles(FormConfig)))
    in Apollo(WithStyles(FormConfig)) (created by Query)
    in Query (created by Apollo(Apollo(WithStyles(FormConfig))))
    in Apollo(Apollo(WithStyles(FormConfig))) (at index.jsx:119)
    in div (at index.jsx:118)
    in div (at index.jsx:82)
    in PageDevice (created by WithStyles(PageDevice))
    in WithStyles(PageDevice) (created by Query)
    in Query (created by Apollo(WithStyles(PageDevice)))
    in Apollo(WithStyles(PageDevice)) (created by Route)
    in Route (at index.jsx:103)
    in main (at index.jsx:100)
    in div (at index.jsx:72)
    in AppPure (created by WithStyles(AppPure))
    in WithStyles(AppPure) (at Root.jsx:19)
    in Router (created by BrowserRouter)
    in BrowserRouter (at Root.jsx:18)
    in MuiThemeProvider (at Root.jsx:17)
    in ApolloProvider (at Root.jsx:16)
    in MuiPickersUtilsProvider (at Root.jsx:15)
    in Root (at index.jsx:14)

It looks like when Calendar.jsx and CalendarHeader.jsx include SlideTransition.jsx, they pass the value of transKey prop as a Date object instead of a string (as required by prop-types).
I don't know the author's intended purpose here for the transition key, but perhaps converting transKey={currentMonth} to transKey={currentMonth.toISOString()} should do the trick. Just using .toString() would also work as React doesn't really care what's inside its keys.
@dmtrKovalenko  This is what (probably) needs to be updated:
here: https://github.com/dmtrKovalenko/material-ui-pickers/blob/f8b9976cbdd337e20ef4530f09e35a4cb96d7942/lib/src/DatePicker/CalendarHeader.jsx#L40
and here: https://github.com/dmtrKovalenko/material-ui-pickers/blob/f8b9976cbdd337e20ef4530f09e35a4cb96d7942/lib/src/DatePicker/Calendar.jsx#L250

Fixed in rc.14


Support for nullable types

I have a bool? property and bind it to Visibility:
Visibility="{cb:Binding 'IsConnected == null || IsConnected == false'}"

I got error Binding error: one of source fields is Unset, return null. Is it possible to work with nullable types?

Thank you for issue! Yes, calcbinding works with nullable types from last (<IP_ADDRESS>) version, but there are some restrictions for two way and onewaytosourse modes. In example multibinding is used, so mode = oneway.
Please check you have referenced latest version of library.
The error "unset" usually appears when source property doesn't exist, so please review, whether the property is written right in path.
If you already have latest version and path is correct, let me know, I will try to resolve this situation

Yep, I have <IP_ADDRESS>, version. Adding Mode=OneWay have not helped. The property exists because when I use only Visibility="{cb:Binding 'IsConnected == null}" then it works but it isn't wnat I need.

Ok, I found one bug - keywords true and false are not supported. It is surprising that nobody did not notice it for half a year!)
But your problem is not only this. There are problems with determine type of Nullable value if it = null.
If CalcBinding meets such value, it suggests that value have type Object, because there isn't way to determine type of null value. That suggestion allows to compile Path with null values with unknown type. Next, if property change value from null to not null, CalcBinding detect that change and recompile Path with correct property type.
When property have null value, we are only allowed to write 'property == null' or 'property != null'.
So now there is not way to overcome this.
I have an idea to add NullToVisibility flag, the same as FalseToVisibility, it can resolve exactly your problem.

In the nullable structure there is a property called hasvalue i dunnow if
you can bind to it or not but you can start from there

What about to allow some kind of type hint, e.g. like casting (bool?)property == false?

i think there is a good way of fixing this
1 - remove the IsConnected == null check
2 - add TargetNullValue flag in binding expression referring to the value when IsConnected is null
3 - do a check using a simple null check in the expression code and if it returns true , then apply the TargetNullValue as a result

I wasn't able to get this working either - no matter what condition I put, it's always spitting out binding errors. Was this issue closed w/o a solution?


format/packfile: implement delta encoding

Added all the logic to the encoder to be able to encode ref-delta and offset-delta objects
Created plumbing.ObjectToPack to handle deltas and standard objects when we are writting them into a packfile
Added specific encoder delta tests, one standard object and one delta, and one standard object and two deltas

Merge https://github.com/src-d/go-git/pull/159 first

Current coverage is 76.94% (diff: 70.24%)

Merging #172 into master will decrease coverage by 0.92%

@@             master       #172   diff @@
==========================================
  Files            88         90     +2
  Lines          5518       5799   +281
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           4297       4462   +165
- Misses          761        863   +102
- Partials        460        474    +14

Powered by Codecov. Last update cb30e88...1db3523


TextField and nested PortalTargets breaks app

Describe the bug
When putting a TextField or another PortalTarget inside a PortalTarget, the app will break and show the error
"LeaderLayer anchor must come before FollowerLayer in paint order, but the reverse was true."
To Reproduce
IMPORTANT:
In order to reproduce the error correctly:
TextField: you need to be able to set the visibility of the PortalTarget (Look at example)
PortalTarget: you need to be able to set the visibility of this second PortalTarget
import 'package:flutter/material.dart';
import 'package:flutter_portal/flutter_portal.dart';

void main() => runApp(
      const Portal(
        child: MaterialApp(
          home: Material(
            child: PortalError(),
          ),
        ),
      ),
    );

class PortalError extends StatefulWidget {
  const PortalError({Key? key}) : super(key: key);

  @override
  State<PortalError> createState() => _PortalErrorState();
}

class _PortalErrorState extends State<PortalError> {
  bool isOpened = false;

  @override
  Widget build(BuildContext context) {
    return Center(
      child: PortalTarget(
        visible: isOpened,
        anchor: const Aligned(
          follower: Alignment.topCenter,
          target: Alignment.bottomCenter,
        ),
        portalFollower: SizedBox(
          width: 400,
          height: 300,
          child: TextFormField(),
        ),
        child: TextButton(
          onPressed: () {
            setState(() {
              isOpened = !isOpened;
            });
          },
          child: const Text('PortalTarget'),
        ),
      ),
    );
  }
}

1.- Make the PortalTarget visible by pressing the button
2.- Click on the TextField
The exception will be fired
3.-Try to type inside the TextField, which will fire again the exception
4.- When clicking on the TextField, the inserted text that was not visible, will be visible now
Possible Origin
When setting a couple of Breakpoints I realised one thing
On the function _debugCheckLeaderBeforeFollower() inside layer.dart

The first iteration of the while loop fails because sibling does not have a next sibling
However when you checked the previous siblings of sibling```` you find as the second previous sibling followerSubtreeBelowAncestor```

I tried to fix it myself but didn't have any results.

Workaround: Maybe make the portal target always visible, and use things like visible ? TextField() : Container() to hide it (?)

Yeah sorry, I forgot to mention #76
Yeah I am using the master branch and I have tried the workaround too but the same error pops out

Try to use this widget (it replaces all the Portal structure) [dartpad live example]:
overlay_button_builder.dart
import 'package:flutter/material.dart';

class OverlayButtonBuilder extends StatefulWidget {
  final Widget child;
  final Widget overlay;
  final bool showOverlay;
  final OverlayAnchor anchor;
  const OverlayButtonBuilder({
    super.key,
    required this.child,
    required this.overlay,
    required this.showOverlay,
    this.anchor = OverlayAnchor.dropdown,
  });

  @override
  State<OverlayButtonBuilder> createState() => _OverlayButtonBuilderState();
}

class _OverlayButtonBuilderState extends State<OverlayButtonBuilder> {
  OverlayEntry? entry;
  final layerLink = LayerLink();

  @override
  void initState() {
    super.initState();
    applyVisibilityState();
  }

  @override
  void didUpdateWidget(covariant OverlayButtonBuilder oldWidget) {
    applyVisibilityState();
    super.didUpdateWidget(oldWidget);
  }

  @override
  Widget build(BuildContext context) {
    return CompositedTransformTarget(
      link: layerLink,
      child: widget.child,
    );
  }

  void applyVisibilityState() {
    final isShowOverlay = widget.showOverlay && entry == null;
    final isHideOverlay = !widget.showOverlay && entry != null;

    WidgetsBinding.instance.addPostFrameCallback((timer) {
      if (isShowOverlay) showOverlay();
      if (isHideOverlay) hideOverlay();
    });
  }

  void hideOverlay() {
    entry?.remove();
    entry = null;
  }

  void showOverlay() {
    if (entry != null) return;
    entry = OverlayEntry(
      opaque: false,
      builder: (context) => Material(
        type: MaterialType.transparency,
        child: Center(
          child: CompositedTransformFollower(
            link: layerLink,
            offset: widget.anchor.dialogOffset,
            followerAnchor: widget.anchor.dialog,
            targetAnchor: widget.anchor.button,
            child: widget.overlay,
          ),
        ),
      ),
    );
    Overlay.of(context).insert(entry!);
  }
}

class OverlayAnchor {
  final Alignment button;
  final Alignment dialog;
  final Offset dialogOffset;
  const OverlayAnchor({
    required this.button,
    required this.dialog,
    this.dialogOffset = Offset.zero,
  });

  static const dropdown = OverlayAnchor(
    button: Alignment.bottomRight,
    dialog: Alignment.topRight,
    dialogOffset: Offset(0, 8),
  );

  OverlayAnchor copyWith({
    Alignment? button,
    Alignment? dialog,
    Offset? dialogOffset,
  }) {
    return OverlayAnchor(
      button: button ?? this.button,
      dialog: dialog ?? this.dialog,
      dialogOffset: dialogOffset ?? this.dialogOffset,
    );
  }
}

HOW TO USE
import 'package:flutter/material.dart';

void main() {
  runApp(const MaterialApp(home: HomeWidget()));
}

class HomeWidget extends StatefulWidget {
  const HomeWidget({super.key});

  @override
  State<HomeWidget> createState() => _HomeWidgetState();
}

class _HomeWidgetState extends State<HomeWidget> {
  bool showOverlay = false;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Home Page')),
      body: Center(
        child: OverlayButtonBuilder(
          showOverlay: showOverlay,
          anchor: const OverlayAnchor(
            button: Alignment.bottomRight,
            dialog: Alignment.topRight,
            dialogOffset: Offset(0, 8),
          ),
          overlay: Container(
            width: 250,
            color: Colors.amber,
            padding: const EdgeInsets.all(15),
            child: const TextField(),
          ),
          child: ElevatedButton(
            child: const Text('Click me to show/hide'),
            onPressed: () {
              setState(() {
                showOverlay = !showOverlay;
              });
            },
          ),
        ),
      ),
    );
  }
}

I encountered the same issue described here. I tried the suggested solutions mentioned in the issue thread, but the error still persists. Additionally, I made sure to have the latest version of the flutter_portal package. Please let me know if there are any updates or workarounds for this problem.

Well, this is a long living bug (and seems to be the only one reported in a long time). I am really out of bandwidth since I am busy with my app and open source projects, but feel free to examine it and create a PR! I am happy to provide suggestions about how to debug it: For example, the first step may be to dump the trees (render tree, layer tree etc) in a minimal reproducible sample.

I understand that running open source projects takes time. The main issue may be related to the TextField widget or its text rendering. I tried using CupertinoTextField, but encountered the same problem. Changing to EditableText was the only solution that worked.
I will try to create PR with a sample project in the following week so that we can further investigate this issue.

Changing to EditableText was the only solution that worked.

A guess: Then maybe it is the Overlay used inside TextField? Maybe try to hackily remove those OverlayEntry inside TextField (by temporarily modify flutter source code) and see whether it works?

Yes, it is related to overlays which are used to draw selection controls.
It is impossible to remove them.

Btw, Does things like these work?
https://api.flutter.dev/flutter/material/TextField/selectionControls.html
https://api.flutter.dev/flutter/material/TextField/selectionEnabled.html

It seems that wrapping the child with a Portal widget, rather than the MaterialApp itself, can avoid errors.


[Android Editor] export loading indicator is missing

Tested versions

Reproducible in 4.4.dev3

System information
Godot v4.4.dev3 - Android - Single-window, 1 monitor - OpenGL ES 3 (Compatibility) - Mali-G52 -  (8 threads)
Issue description
AFAIK there was a loading indicator. The loading screen when exporting from the Android Editor seems to be missing same for when installing Export template. It feels like the Editor is unresponsive without the loading indicator
https://github.com/user-attachments/assets/50ab969a-30f2-435b-9d44-14ac05a08bdb
Steps to reproduce
Just export anything project from the Android Editor
Minimal reproduction project (MRP)
N/A

Probably this is because of your device hardware.

Could be but i think I saw the loading indicator in some version of godot, can't remember which one tho

This isn't a problem in mobile renderer for some reason


feat: reimplement #[type = ..] on enums for enum generation

This is a reimplementation of #24. I tried merging that PR into main but I had some merge issues because the PR is old.
All the tests pass and you can now add #[ts(type = "enum"] or #[ts(type = "const enum"] to generate an enum like
#[ts(type = "const enum")]
enum Dog {
  Woof,
  Bark,
  Howl
}

generates a typescript enum like
const enum Dog = { Woof, Bark, Howl };

Credits to @JakubKoralewski for implementing this.

Thanks, really appreciate it! The tests currently seem to fail, do you know why?

The problem seems to be running cargo test --no-default-features. I'll check it out.

Ok I think I fixed it. The tests were using attribute macros from serdelike serde(rename_all = ...) instead of ts(rename_all = ...) without having having the right directives enabled. I changed them to the latter now it should pass.

@NyxCode is there any possibility for this one to be merged in when you have capacity?

@NyxCode  This PR hasn't been active since 2022. Considering that and the fact that TS enums are generally considered to be really bad, should this PR be closed?

@escritorio-gustavo Agreed, especially with your current work on enums in mind, which might require some deep refactors.
If @pintariching is still interested in this, it'd probably make sense to re-write this based on the current master once enum flattening lands.

Great, given that I'll also close #24, since this is a reimplementation of that


Etcd listens on localhost for GCE

#5962
Will roll out the change to other cloud providers after GCE.
#5011

Running e2e tests.

LGTM. Thanks!

Ha, sorry. Just saw the "Running e2e."
... hopefully that works. :)

yes :)
will track the e2e jenkins run as well.

http://kubekins.dls.corp.google.com/job/kubernetes-e2e-gce/4142/consoleFull
All tests, except 1 passed.
Will look at the failing test but I doubt it is related to my change.
Summarizing 1 Failure:
[Fail] ReplicationController [It] should serve a basic image on each replica with a private image
/go/src/github.com/GoogleCloudPlatform/kubernetes/_output/dockerized/go/src/github.com/GoogleCloudPlatform/kubernetes/test/e2e/rc.go:151
Ran 31 of 35 Specs in 1107.520 seconds
FAIL! -- 30 Passed | 1 Failed | 0 Pending | 4 Skipped F0403 12:55:29.517718   24805 driver.go:112] At least one test failed
2015/04/03 12:55:29 Error running Ginkgo tests: exit status 255

Per Quinton's test summary email today, it is a flaky test with a 70% stability.
This PR should be good.

@dchen1107

@brendanburns @zmerlynn Can I make changes for  "etcd on localhost" on all providers ?
Or do you forsee any issues ?
GCE seems to be doing well, e2e and manual tests passed.

I'm actually fine with that. I nearly changed it once before, but the change it was in was wide enough already.

Created PR #6422


liveViz does not work with 1 pe

Original author: Yanhua Sun
Original issue: https://charm.cs.illinois.edu/redmine/issues/619

If the program is running with +p1, the livdliv will not connect on client side. Is this a known problem?

Original date: 2015-04-30 18:05:03

LiveViz should work on any number of PEs, even in a stand-alone run. If it doesn't this needs to be fixed. CCS in general is a key feature of Charm++

Original date: 2015-08-17 17:50:34

Verified that liveViz fails to work with +p1.


Adding name to the contributors

Added name to the contributor

We don't want this change to README.
The title of the Pull Request should be meaningful.
Make sure you resolve merge conflicts.

Changes made -Eun Sung


About the environment

I am having the following problem，can someone give some help？thanks！

Here is my CUDA version and cuDNN version：

And which torch version should I choose？1.0.1.post2 or 1.4 ？


Add gftools-autohint.py

I realised we needed a command line wrapper around gftools.autohint (i.e. ttfautohint-py with our script-detection logic added) for the ninja builder, because everything the ninja builder calls has to be a command line utility.
But I also realised that it's useful for us to provide a command-line wrapper around ttfautohint-py anyway. The whole point of ttfautohint-py is that it gives you an easy way to install the latest version of ttfautohint, not just the one in your distribution (which can be quite old), and the whole point of gftools is that you can install it and get the latest version of everything you need to build fonts. But installing ttfautohint-py doesn't give you an easy way to run the latest version of ttfautohint.
I also needed something to get the right script for auto hinting full Noto fonts; these contain a Latin set but may be quite small. With our current script detection logic a large Latin set might overwhelm a small other set of glyphs, which are actually the ones you want to target for autohinting. The discount_latin argument ignores Latin glyphs when determining which is the primary script of a font .

Apologies for not reviewing this. I'll cut a release and look at this next week.

No problem. I suggest we split the primary script detection out to another module, and also use the GSUB closure trick I posted elsewhere, so we can use this to fill in primary script metadata on new fonts (or backfill the old catalogue).

I'm merging this because we have already added the primary script detection code, and we have builder.autohint already, so this is now just a CLI wrapper.


nonassign should not be thrown when attribute is absent

I have an error because i'm setting a bound value from a component controller, which in some case doesn't have the bound attribute set (not needed).
I feel like it shouldn't throw an error here.
Some code:
const MyComponent = {
  templateUrl: './component.html',
  bindings: {
    nextable: '='
  },
  controller: function($scope) {
    this.nextable = false;
  }
};

angular.module('app').component('component', MyComponent);

<component nextable="uselessButNeededToWork"></component>
<component></component> <!-- Feels innocent, but will throw -->

thrown error:
angular.js:13642 Error: [$compile:nonassign] Expression 'undefined' in attribute 'nextable' used with directive 'component' is non-assignable!
http://errors.angularjs.org/1.5.6/$compile/nonassign?p0=undefined&p1=nextable&p2=component
    at angular.js:68
    at parentSet (angular.js:9820)
    at parentValueWatch (angular.js:9833)
    at regularInterceptedExpression (angular.js:15766)
    at Scope.$digest (angular.js:17211)
    at Scope.$apply (angular.js:17486)
    at done (angular.js:11637)
    at completeRequest (angular.js:11843)
    at XMLHttpRequest.requestLoaded (angular.js:11776)

using angular 1.5.6

Per the documentation, this is expected behavior for a non-optional binding.  Make it an optional binding if that's the behavior you want.
https://docs.angularjs.org/api/ng/service/$compile#directive-definition-object

@dcherman is right, this is expected behavipr

Well, I didn't even know optionnal bindings existing, thank you for the docs


Consider renaming to "pig effects", it's better. Short name can be left as-is.

We'll get right on that :+1:


[Doc] Copyedit dev guide

Why are these changes needed?
The current dev guide is accurate and concise, but there is room to improve clarity and readability, which is the aim of this PR.  Note: I used GPT for the first copyediting pass and I reviewed it manually to ensure the changes were positive and the underlying meaning did not change.

Related issue number

Checks

[ ] I've made sure the tests are passing.
Testing Strategy

[ ] Unit tests
[ ] Manual tests
[ ] This PR is not tested :(

This PR only updates docs. Merge this PR before CI passes.


Update docs to point at new example data

Found a couple of other places where the old example data were being pointed to. Updates the URL to point at a version of the example data with ontologymaps.

Ah, I was just going to ask about update_data.py!
+1


Expose experimental edition features in descriptor sets

This change exposes edition feature sets in a DescriptorSet, the wrapper around protobuf file descriptor messages provided by createDescriptorSet from @bufbuild/protobuf.
Each type (DescFile, DescMessage, DescField, etc.) receives a new method with this PR:
  /**
   * Get the edition features for this protobuf element.
   */
  getFeatures(): MergedFeatureSet;

The returned type is a protobuf message google.protobuf.FeatureSet, but with a modified type that marks all properties as required.
The value is resolved from the edition feature defaults (obtained at build time from protoc in https://github.com/bufbuild/protobuf-es/pull/619), merged with the features of all parent elements and the current element. This implements the logic specified in the design documents for editions here and here.
Users can provide their own edition feature defaults via a new optional argument to createDescriptorSet. This can be useful for language-specific features, although usability is currently limited because we do not support extensions yet (tracked in https://github.com/bufbuild/protobuf-es/issues/86), which makes it difficult to obtain the features at runtime.
This PR also updates the properties packed and packedByDefault of DescField (and DescExtension) to provide sensible values for editions that respect features. Test coverage for proto2 and proto3 has been added prior to this PR in https://github.com/bufbuild/protobuf-es/pull/625 to guard against regressions.

(I'm still ooo, but happened to see the message in Slack so figured I could do a quick scan.)


Split mock_service

Description:
mock_service in our tests tried to be smart about if it was called from a sync or async context. We don't want any test functionality to depend on _thread_ident so I have split the function.
Related issue (if applicable): Related to #8194

Nice find. This should definitely help.


Zigbee2MQTT installation fails

Please verify that you have read and understood the guidelines.
yes
A clear and concise description of the issue.
Hello all,
When installing Zigbee2MQTT via the Proxmox VE Helper Script I receive an error related to "npm":
I am running the advanced settings to enable verbose mode. But I made sure all settings are identical to the "default" settings.
Looks like the script needs an update? Or could it be something with my system/setup?
Thanks in advance for your help. And thank you for your this project, really great initiative to carry on with tteck's work.
What settings are you currently utilizing?

[X] Default Settings
[ ] Advanced Settings

Which Linux distribution are you employing?
Debian 12
If relevant, including screenshots or a code block can be helpful in clarifying the issue.
 ✓ Set up Zigbee2MQTT Repository
npm warn deprecated<EMAIL_ADDRESS>This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated<EMAIL_ADDRESS>Glob versions prior to v9 are no longer supported
npm error code E404
npm error 404 Not Found - GET https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz - Not found
npm error 404
npm error 404  'jest-diff@https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz' is not in this registry.
npm error 404
npm error 404 Note that you can also install from a
npm error 404 tarball, folder, http url, or git url.
npm error A complete log of this run can be found in: /root/.npm/_logs/2024-12-08T18_42_51_305Z-debug-0.log

[ERROR] in line 45: exit code 0: while executing command $STD npm ci
root@pve:~#

Please provide detailed steps to reproduce the issue.
No response

Do you read the discussion annoucment? Npm is deprecated for dev branch. You need to migrate himself.


[Proposal] Support to use CSS units in Weex DSL

Proposal: Support to use (part of) CSS units in Weex DSL
Background
In the current version, weex ignored all CSS units, they are all treated as relative values.
In order to better support the configurable viewport ( #421 ), we should also introduce some CSS units, especially the absolute length of the unit.
Purpose

Follow up the CSS standard specification.
Write non-responsive layouts. ( #965 #1543 )
Write device based layouts. ( #27 #491 #1022 )

Introduce
Support to use pt (or dp) as absolute units in Weex DSL.

pt, the absolute units used in CSS and iOS.
dp, the absolute unit used in Android.

I personally think it's more appropriate to use pt, because CSS already has this attribute, doing so reduces the learning costs of users and avoids introducing our own concepts.
Renderer
Renderers are only need to be confirmed what's the meaning of deviceWidth: deviceWidth should be the device pixel width (currently is the screen resolution width, if there has a difference between them, native should also provide a new environment parameter) .
iOS
No need to change.
Android
No need to change.
HTML5
No need to change.
JS Runtime
No need to change.
JS Framework
The js framework handles the unit of the style attribute, and if it encounters a string ending with pt in the style value, it should be converted to a number relative to the width of the screen by calculation.
height = 200 * viewportWidth / deviceWidth

But it will be a little harmful for the performance.
transformer
Transformer should retain the pt units, and still ignore the other units (as px) to be compatible with the old version.
Before:
.box {
  width: 600px;
  height: 200pt;
}

After:
module.exports.style = {
  "box": {
    "width": 600,
    "height": "200pt"
  }
}

Tools
weex-loader
No need to change.
weex-toolkit
No need to change.
weex-devtool
No need to change.
weex-pack
No need to change.
User Experience
Developers have more flexibility in writing styles.
Notes

This proposal is separated from #421 .

On hold, temporarily move to #1494 . It will be reopen when we actually doing this.


Feature/add transpile step

Originally, I do have a CleanUp step to remove the tmp folder as well as any transpiled file within in the tryBundle method like this
fs.rmSync(tmpPath, { force: true, recursive: true });

, but the thing is  it just did not work, so I made a compromise by adding this folder to the .gitignore

Hi @MyNameIsTakenOMG ! Thanks for the contribution. I have a suggestion to add to your PR.
In my use case, I have a build runner that transpiles and bundles all lambda .ts files with their dependencies using esbuild. So what I pass in to the helper is already a module in .cjs format. How about we add an optional argument to configure the transpilation step?

fromAssetHelper(targetModule: string, config: AssetHelperConfig)

interface AssetHelperConfig {
    transpiler: TranspilerOptions
}

enum TranspilerOptions {
  Off
  Typescript,
  Esbuild
}

Hi @MyNameIsTakenOMG ! Thanks for the contribution. I have a suggestion to add to your PR.
In my use case, I have a build runner that transpiles and bundles all lambda .ts files with their dependencies using esbuild. So what I pass in to the helper is already a module in .cjs format. How about we add an optional argument to configure the transpilation step?
fromAssetHelper(targetModule: string, config: AssetHelperConfig)

interface AssetHelperConfig {
    transpiler: TranspilerOptions
}

enum TranspilerOptions {
  Off
  Typescript,
  Esbuild
}

Ah, I should have left some room for customization while focusing on adding this transpile step. Thank you for the heads-up 👍 Btw, I haven't used esbuild before, only spent some time taking a look at its doc tonight, so if I messed up with the build options, please let me know

This is awesome. Thank you for taking the time to incorporate the config and esbuild, @MyNameIsTakenOMG !

I was able to test and verify the esbuild step - it works just fine ! I use a config script for my esbuild to exclude the aws-sdk/* and aws-lambda modules which are already part of the lambda environment. Incorporating this could be a future enhancement but this is good for now.


Max Per team = 2

Without delcaring each team on the slate how do you code it where the maximum number of players from ANY team on slate in one lineup could be 2?

A simple way is to use set_total_teams. Assuming there are 8 lineup slots, if you set it to 7, you will not get more than two players from a team in a lineup.
optimizer.set_total_teams(lineup_slots - 1)

If you want to have the option of two players from two or more teams each, or no requirement that two players be on the same team, then you would use a loop to discard lineups that violate that constraint, as that particular constraint does not appear to be implemented yet:
def valid_lineup(lineup):
    # count players on teams
    # return False if count wrong, return True if correct
    return True/False depending on condition

valid_lineups = []
n_lineups = 10

for lineup in optimizer.optimize(1000):
    if valid_lineup(lineup):
        valid_lineups.append(lineup)
        if len(valid_lineups) >= n_lineups:
            break

To add this functionality to the optimizer, it seems like it is a small variation on the TeamMatesRule
class LimitedTeamMatesRule(OptimizerRule):
    def apply(self, solver):
        for team, quantity in self.optimizer.players_from_one_team.items():
            players_from_same_team = [variable for player, variable in self.players_dict.items() if player.team == team]
            solver.add_constraint(variables=players_from_same_team, coefficients=None, sign=SolverSign.LTE, rhs=2)

You would likely want to a parameter for 2 in case you wanted to limit to 3 teammates, etc.

How would you implement this for showdown? The rule I'd like to set is for NBA showdown. I'm thinking an onslaught isn't likely to win so I'd like a rule to include at least 2 players from each team. I know how to set exactly 2 but not more than 2. Goal is to make 2-4, 3-3, and 4-2 lineups

How would you implement this for showdown? The rule I'd like to set is for NBA showdown. I'm thinking an onslaught isn't likely to win so I'd like a rule to include at least 2 players from each team. I know how to set exactly 2 but not more than 2. Goal is to make 2-4, 3-3, and 4-2 lineups

Anyone know an easy way to Force a 4-2 stack, or 5-1(showdown)

finally got it @sansbacon.  Closing it.  Thanks

@sansbacon After examining this it partially works.  How would u tackle this?
currently on FD it has 9 roster slots, - 1 makes it 8(wanting 2 max per team).
What this does is allow 1 set of teammates in a lineup(Butler/Lowry) from MIami
But it will skip optimal versions if one tandem is already in lineup.
For example
If lowry/butler are in lineup together, you will never get another "pair" of teammates in the same lineup.  I want this to be possible, but that would be that max of it.  At most 2 "tandems" per lineup.  Thoughts?


new feature compute skew

Please add functionality to compute skew as well for the case of non-normal distributed data

actually we are only expecting normally distributed data

@marinalexs sldkfsldkfjls


Please read the Tutorial and FAQ before asking questions

As mentioned in the README file, there is a tutorial and FAQ document. Please read it before raising questions. Thanks.
Tutorial: https://github.com/pyusb/pyusb/blob/master/docs/tutorial.rst
FAQ: https://github.com/pyusb/pyusb/blob/master/docs/faq.rst

Do you think issue templates could help?
Or (/and) maybe we just need to make the documentation easier to find.

Personally I think issue template just deters the users from submitting issues. So I am against the idea of issue templates.
So I think documentation will help. Examples will help too. Right now we do not really have full examples other than the tutorials.

I spent a bit of time labeling all the github issues. It seems to me that better documentation and better examples will help to sort out many issues.

Personally I think issue template just deters the users from submitting issues.

I partially agree: they can indeed act as a deterrent.  But I think that can be managed/tuned.
What I suggest is something fairly light/relaxed, where there's even still an option opt out of the templates.  Something like what I have in liquidctl, but obviously adapted to our needs (mention the faq/tutorial; lsusb -v output; etc.).

Either way, this issue being pinned doesn't appear to have helped.

Okay, un-pin this one.
Your suggestion is good. I have no objections with a light template.

In this case, I will close this issue.

BTW, I have added the following simple patch to the FAQ. I find this to be a common issue for Windows users.
https://github.com/pyusb/pyusb/commit/67550ed625e4252c0d586dd8ed5de681f4ad4edc


LEA: Issue 154 - lea should use issuer from config

Fixes #154

I noticed the CI did not complete successfully and judging from the output of the tests there are syntax errors present.
Please address the following ToDos:

[ ] Fix syntax errors
[ ] Rebase your branch, there are potentially breaking changes due to #112
[ ] Check if the test environment still works:

cargo ci distribution
Re-run test environment
Check CARL's endpoint https://carl/api/lea/config
Make sure the configuration from the issuer contains a trailing slash (requirement by #112)
Check if authentication is pointing to correct address


TableSortLabel should not be hidden when mouse is not hovering on it

Describe the desired behavior
When a .MuiTableSortLabel is not hovered on, the arrow should have the ~disabled color~
(edit: should be a "disabledBackground" color of Gray500@12% for light theme, and a Black200@24% for dark theme).
When it is hovered or in-use, the label should be text.secondary
Describe the current behavior
The arrow has an opacity 0 on it when not in use.

Additional Context
This will be part of the Tables effort.

2633

@huayunh Shall we close this, as PR has been merged?


desisurvey.nightcal -> desisurvey.ephemerides

desihub/desisurvey#30 removed desisurvey.nightcal and split up its functionality into several other locations including desisurvey.ephemerides.  We missed getting surveysim in sync and it was still referencing desisurvey.nightcal.Ephemerides and desisurvey.nightcal.get_moon_interpolator.
This PR fixes that so that surveysim master will work with desisurvey master.

I thought I caught all of these updates but I guess not.  My tests should have caught this but perhaps the original .pyc file was resolving references to the old module name?

I checked that there are no remaining refs to nightcal and that I can run the surveysim script after deleting all my .pyc files.  Looks good!


Fixing broken link (front-end)

fixes #26
Description: Adding netlify.toml file in front-end for setting the redirects to index.html .
Checklist

[x] I've followed the Contributing guidelines provided in the repository.
[x] I've made the changes which were demanded in the linked issue.
[x] I've tested my code on a Chromium based browser.
[x] I've tested my code on Mozilla Firefox.
[x] My code gave a clean console on debugging. (no warnings/errors)

Thanks for the PR


Links to build reference (and others) broken in README.md

There are a number of links that are broken in the README.

Looks like these are for the GitHub pages docs. Never mind.


Installation failure ia32 v 1.13.1

On executing setup program on Windows 7 I recieve the message ShellExecuteEx failed; code 67. The network name can not be found.
I am installing under a non-privileged user, and this failure happens after I type in the admin password.

It works if I right click on the file and run as administrator.


Seeking support for http broadcasts

I would like to add seeking support for http broadcasts. While connected, it would be possible to seek backwards (to beginning of broadcast ?), and then forwards up to latest received tick.
There are no CDemoFullPackets in http broadcasts, so not sure how it would work.
I see there is /full endpoint, but it only delivers CDemoPacket. Is that good enough to restore full snapshot ?
/full endpoints could be enumerated by periodically calling /sync.
Do you maybe have some ideas how this could be implemented ?

Ok, I just realized how it works : every fragment has it's own /full and /delta packets.
So this is perfectly seekable.
The only question is, can DemoParser be restored from /full fragment ?


ConnectByDeviceIdSucceeded Event  cause INTERNAL_SERVICE_EXCEPTION

Hello, AVS Team:
I'm still working on implement Bluetooth interface.
It's work fine with EnterDiscoverMode , ScanDevice, PairDevice ...etc
until ConnectByDeviceId
when this directive come , i response this
{
	"context":[
		{
			"header":{
				"namespace":"Speaker",
				"name":"VolumeState"
			},
			"payload":{
				"volume":100,
				"muted":false
			}
		},
		{
			"header":{
				"namespace":"SpeechSynthesizer",
				"name":"SpeechState"
			},
			"payload":{
				"token":"amzn1.as-ct.v1.Bluetooth#ACRI#PlatformTTSRenderer_32366c69-3f33-440a-82c5-9192f81c3046",
				"offsetInMilliseconds":0,
				"playerActivity":"FINISHED"
			}
		},
		{
			"header":{
				"namespace":"AudioPlayer",
				"name":"PlaybackState"
			},
			"payload":{
				"token":"",
				"offsetInMilliseconds":0,
				"playerActivity":"IDLE"
			}
		},
		{
			"header":{
				"namespace":"Bluetooth",
				"name":"BluetoothState"
			},
			"payload":{
				"alexaDevice":{
					"friendlyName":"my_alexa_device"
				},
				"pairedDevices":[
				],
				"activeDevice":{
					"uniqueDeviceId":"4d2a9f3a-d8ce-11e7-b997-b827ebb5c166",
					"friendlyName":"Lai MacBook Pro",
					"supportedProfile":[
						{
							"name":"A2DP-SOURCE",
							"version":"1.3"
						},
						{
							"name":"A2DP-SINK",
							"version":"1.3"
						}
					],
					"streaming":"INACTIVE"
				}
			}
		},
		{
			"header":{
				"namespace":"SpeechRecognizer",
				"name":"RecognizerState"
			},
			"payload":{
				"wakeword":""
			}
		},
		{
			"header":{
				"namespace":"Alerts",
				"name":"AlertsState"
			},
			"payload":{
				"allAlerts":[
				],
				"activeAlerts":[
				]
			}
		}
	],
	"event":{
		"header":{
		"namespace":"Bluetooth",
		"name":"ConnectByDeviceIdSucceeded",
		"messageId":"8ad29dff-49b8-4e6b-9f02-815c045e39f1"
	},
	"payload":{
		"device":{
			"uniqueDeviceId":"4d2a9f3a-d8ce-11e7-b997-b827ebb5c166",
			"friendlyName":"Lai MacBook Pro"
		},
			"requester":"CLOUD"
		}
	}
}

but i get this error msg
2017-12-04 08:37:18.695 [  9] E MessageRequest:onExceptionReceived:exception={"header"\:{"namespace"\:"System"\,"name"\:"Exception"\,"messageId"\:"0d5e5649-8641-4e52-8458-298a2ec2de46"}\,"payload"\:{"code"\:"INTERNAL_SERVICE_EXCEPTION"\,"description"\:"Request could not be executed due to an internal service error."}}

Test Flow

In Amazon Alexa Bluetooth Console click Pair A New Device
Wait avs-client reply Scan Device List
Click the device which i want to pair
I can see that device in the paird device page
And i Click that device again, trying to connect
Connect failed due to INTERNAL_SERVICE_EXCEPTION

Question :

Is there something I missed in my context or my event payload?
When a Paired Device is ConnectByDeviceId success, i need to put them from "pairedDevices" to  "activeDevice" , is that right?

Hi axdc11239,
Can you provide the x-amzn-requestid value from the log for one of these failed requests?  That may allow us to see what the server did not like about your event.
Thank you,
-SWH

Hi, Thanks for your reply.
This is my log
2017-12-05 01:57:32.707 [  3] I DirectiveSequencer:onDirective:directive={"namespace\:"Bluetooth"\,name\:"ConnectByDeviceId"\,messageId\:"be25b878-0321-477e-b381-961bc2ed8b46"\,dialogRequestId\:""}
2017-12-05 01:57:32.707 [  4] I DirectiveRouter:preHandleDirective:messageId=be25b878-0321-477e-b381-961bc2ed8b46,action=calling
2017-12-05 01:57:32.707 [  5] I DirectiveRouter:handleDirective:messageId=be25b878-0321-477e-b381-961bc2ed8b46,action=calling
2017-12-05 01:57:32.709 [  6] I Bluetooth:onContextAvailable:event=ConnectByDeviceIdSucceeded
2017-12-05 01:57:33.182 [  9] E MessageRequest:onExceptionReceived:exception={"header"\:{"namespace"\:"System"\,"name"\:"Exception"\,"messageId"\:"66ead6ce-6e16-4704-96d8-db0d9eb1c9a4"}\,"payload"\:{"code"\:"INTERNAL_SERVICE_EXCEPTION"\,"description"\:"Request could not be executed due to an internal service error."}}

-Edmund

Hi Edmund,
Sorry, but that log does not include an x-amzn-requestId value.  Lines with those values will include the string x-amzn-requestId before the value we need to look at the server logs.
If you are not seeing lines like those in your logs, are you testing with a DEBUG build?  You can create a debug build by passing -DCMAKE_BUILD_TYPE=DEBUG on the cmake command line.  That is required, otherwise DEBUG level logging is compiled out.  You will also need to specify DEBUG9 on the SampleApp command line to enable DEBUG logging.
Also, it is often most helpful to just attach the whole log output (as a file, if possible, please) in case it contains other clues to the root of the problem.
Regards,
-SWH

Thanks for reminding!
the attachment file is the whole log output.
2017_12_05_13_13_avs_log.txt

Hello axdc11239,
When  connecting a paired device succeeds, the device should be under both activeDevice and pairedDevices.  If a new device is paired with Alexa device, it should be added to the pairedDevice list and when a bluetooth device is connected, it should appear in activeDevice.
Please let us know if this helps you,
-SWH

Hi, Thanks for your help.
It seems works.
but i have 2 another question

when i followed your instruction to let a activeDevice added to the pairedDevice
avs bluetooth console showing a blue bluetooth icon which means we connected.
but my device still showing the same error.
2017-12-06 01:53:38.708 [  9] 0 EventBuilder:buildJsonEventString:messageId=82c5aeaf-e127-414a-aaff-29e5f6ab44fc,namespace=Bluetooth,name=ScanDevicesUpdated
2017-12-06 01:53:38.713 [  9] I Bluetooth:onContextAvailable:event=ConnectByDeviceIdSucceeded
2017-12-06 01:53:38.715 [  9] 0 EventBuilder:buildJsonEventString:messageId=f339ed13-ea73-4f39-a360-b5d7c3832427,namespace=Bluetooth,name=ConnectByDeviceIdSucceeded
2017-12-06 01:53:38.766 [  b] 0 HTTP2Transport:processNextOutgoingMessage
2017-12-06 01:53:38.766 [  b] 0 HTTP2StreamPool:getStream:streamId=23,numAcquiredStreams=2
2017-12-06 01:53:39.109 [  b] 0 HTTP2Stream:receivedRequestId:value=x-amzn-requestid\: 0e9c6ffffee94c42-00004067-000029fe-7d01bcf734d7ae5b-523490b6-23
2017-12-06 01:53:39.109 [  b] 0 HTTP2Transport:cleanupFinishedStream:streamId=23,result=204
2017-12-06 01:53:39.110 [  b] 0 HTTP2StreamPool:releaseStream:streamId=23,numAcquiredStreams=1
2017-12-06 01:53:39.110 [  b] 0 CurlEasyHandleWrapper:reset:responseCode=HTTP_RESPONSE_SUCCESS_NO_CONTENT
2017-12-06 01:53:39.110 [  b] 0 HTTP2Transport:processNextOutgoingMessage
2017-12-06 01:53:39.110 [  b] 0 HTTP2StreamPool:getStream:streamId=25,numAcquiredStreams=2
2017-12-06 01:53:39.471 [  b] 0 HTTP2Stream:receivedRequestId:value=x-amzn-requestid\: 0e9c6ffffee94c42-00004067-000029fe-7d01bcf734d7ae5b-523490b6-25
2017-12-06 01:53:39.472 [  b] E MessageRequest:onExceptionReceived:exception={"header"\:{"namespace"\:"System"\,"name"\:"Exception"\,"messageId"\:"8249fafd-ac4b-4ce0-b8ed-b10fb962609a"}\,"payload"\:{"code"\:"INTERNAL_SERVICE_EXCEPTION"\,"description"\:"Request could not be executed due to an internal service error."}}
2017-12-06 01:53:39.473 [  b] 0 HTTP2Transport:cleanupFinishedStream:streamId=25,result=500
2017-12-06 01:53:39.474 [  b] 0 HTTP2StreamPool:releaseStream:streamId=25,numAcquiredStreams=1

what is this exception means?

Is there any case that a device showing on activeDevice but not in pariedDevice ?

Because , I saw the Bluetooth Interface Document has a Context Sample
the activeDevice  "AVS Device 1" is not added in pairedDevices
Is this sample need to be modified or that is a special case?

Hello Edmund,
Regarding 1:
Looking up the service logs for the latest exception you included, I see the same error being reported.  Looking again at your request, I see that you have used the name "supportedProfile" and not "supportedProfiles" as specified here (Note the 's' at the end).  Please let us know whether or not changing this helps.
Regarding 2:
As far as I know, there is not case for a "activeDevice" to not also be in the list of "pairedDevices".
Also, would you please provide a link to the misleading example in our documentation, I have not found the case that you are referring to.
Thank you,
-SWH

Dear scotthea:
Thanks for your reply.
Tomorrow, I will try the first problem.
and
The second one, I found this example at Bluetooth Document
in the Context chapter

There is a > Show Sample button there

And click it , that is what i talking to.
I copied this example to here.
And I found this example is also using supportedProfile but not supportedProfiles  , that maybe not correct too, right?
{
    "header": {
        "namespace": "Bluetooth",
        "name": "BluetoothState",
    },
    "payload": {
        "alexaDevice": {
            "friendlyName": "Echo-0ST",
        },
        "pairedDevices": [
            {
                // This identifies Kelly's Phone as a paired device
                // that supports two profiles.
                "uniqueDeviceID": "353088131600891",
                "friendlyName": "Kelly's Phone",
                "supportedProfile":[
                    {
                        "name" : "A2DP-SOURCE",
                        "version" : "1.3"
                    },
                    {
                        "name" : "AVRCP",
                        "version" : "1.0"
                    }
                ],
            },
        ],
        // This identifies the connected device and its supported
        // profiles.
        "activeDevice": {
           "uniqueDeviceID": "367388087352897",
           "friendlyName": "AVS Device 1",
           "supportedProfile":[
                {
                    "name" : "A2DP-SOURCE",
                    "version" : "1.3"
                },
                {
                    "name" : "AVRCP",
                    "version" : "1.0"
                },
                {
                    "name" : "A2DP-SINK",
                    "version" : "1.3"
                }
           ],
           // This is the streaming state at the time an event is sent.
           // This will determine what playback directives are sent to your
           // product.
           streaming: "ACTIVE"
        },
    }
}

Thanks for your help.
Edmund

Hello Edmund,
Thank you so much for pointing this out so clearly!  We will work on getting the documentation corrected.
Regards,
-SWH

Hello Edmund,
Taking a further look at the services log, it seems that the request sent triggering your latest exception is also badly malformed.  The message that was received was:

{"context":[{"header":{"namespace":"Speaker","name":"VolumeState"},"payload":{"volume":100,"muted":false}},{"header":{"namespace":"SpeechSynthesizer","name":"SpeechState"},"payload":{"token":"amzn1.as-ct.v1.Bluetooth#ACRI#PlatformTTSRenderer_b6ab3247-83f8-4142-a4f0-87c1ec2b111c","offsetInMilliseconds":0,"playerActivity":"FINISHED"}},{"header":{"namespace":"AudioPlayer","name":"PlaybackState"},"payload":{"token":"","offsetInMilliseconds":0,"playerActivity":"IDLE"}},{"header":{"namespace":"Bluetooth","name":"BluetoothState"},"payload":{"alexaDevice":{"friendlyName":"[[SCRUBBED]]","friendlyName":"[[SCRUBBED]]","supportedProfile":[{"name":"A2DP-SOURCE","version":"1.3"},{"name":"A2DP-SINK","version":"1.3"}]}],"activeDevice":{"uniqueDeviceId":"4140abd2-da28-11e7-acd7-b827ebb5c166","friendlyName":"[[SCRUBBED]]","supportedProfile":[{"name":"A2DP-SOURCE","version":"1.3"},{"name":"A2DP-SINK","version":"1.3"}],"streaming":"INACTIVE"}}},{"header":{"namespace":"SpeechRecognizer","name":"RecognizerState"},"payload":{"wakeword":""}},{"header":{"namespace":"Alerts","name":"AlertsState"},"payload":{"allAlerts":[],"activeAlerts":[]}}],"event":{"header":{"namespace":"Bluetooth","name":"ConnectByDeviceIdSucceeded","messageId":"f339ed13-ea73-4f39-a360-b5d7c3832427"},"payload":{"device":{"uniqueDeviceId":"4140abd2-da28-11e7-acd7-b827ebb5c166","friendlyName":"[[SCRUBBED]]"},"requester":"DEVICE"}}}

If you run that through a JSON validator you will find that there is an unexpected ']' right before "activeDevice".  There are also two "friendlyName" values under "alexaDevice", as well as a "supportedProfile" value under "alexaDevice".
It looks to me as if the start of the "pairedDevices" section has gone missing from the message that was sent.
Regards,
-SWH

Since I modify the JSON key from supportedProfile to supportedProfiles , there is no more exceptions.
At the same time , I checked the JSON format before I sent , everything seems works fine. It is weird. I will keep observing this JSON format problem.
At the end, thanks for your helps, again.
I summarized my problems and the solutions.
When you paired a device , you need to update your context Bluetooth.BluetoothState.
This paired device should add to pairedDevice list but not in activeDevice
and the most important thing is, if there is no activeDevice you CAN NOT have this JSON key with an empty JSON object like below example
{
  ...
  ...
  "activeDevice":{}
}

this will cause an internal exceptions too.
If you connected a device and you need to update your context before you send back
ConnectByDeviceIdSucceeded event
and the connected device should add to  BOTH activeDevice and pairedDevice

Edmund

Hello Edmund,
Thank you for the summary and also for reporting the restriction on an empty "activeDevice" object.
The issue appears to have been addressed, so I will close it.  Please re-open it if I have closed it in error.
Thank you for your help!
-SWH


timeout stuck producer/consumer operation request

Motivation
Sometimes due to broker's bug, broker could not complete producer/consumer creation request and in this case, client is not timing out which causes stuck producer/consumer/replicator-producer.
Recently we have seen that due to below exception replication producer gets stuck and remote broker is not notifying to the repl-producer.
Caused by: java.lang.NullPointerException
        at org.apache.pulsar.broker.service.persistent.PersistentTopic.hasSchema(PersistentTopic.java:1815) ~[pulsar-broker-2.2.2-yahoo.jar:2.2.2-yahoo]
        at org.apache.pulsar.broker.service.ServerCnx.lambda$25(ServerCnx.java:836) ~[pulsar-broker-2.2.2-yahoo.jar:2.2.2-yahoo]
        at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656) ~[?:1.8.0_131]
        ... 24 more

Modifications
Client producer/consumer creation timesout after configured operation-timeout if broker doesn't complete request in a given timeout.
Result
It helps to unblock stuck producer/consumer request.

rerun java8 tests

@sijie addressed the change. can you please review it.


Fix for 0.10.0

Config for 0.10.0 has changed and I needed to pick apart the erb template to work out exactly what changed.
This isn't backwards compatible, but since the release of 0.10.0 the old versions have been removed from the debian repo (so I'm not sure whether it's worth making it backwards compatible).
This PR might not of any use, it's just me saying "yo dude, this is what I had to do to get 0.10.0 working"

haha tnx ... correct if there are no debs for 0.10.0 no point to worry about back compatibility. Also the new version of the module was not released yet so I will probably just merge it :)


The £ symbol doesn't render correctly when passed in from configuration

I am currently making a Web API via ASP.Net Core. I tried passing in a connection string from a ConfigurationFile using the Configuration["Data:ConnectionString"]) approach, as part of the DBConext.
I struggled to understand why the user could not be authenticated against the SQL Database. Upon closer inspection, it appears as though the £ symbol is not rendered correctly from the configuration file. Please find an example below;
Example Configuration Setup
   "Data": {     "ConnectionString": "£x4mple!" //Inject this in via the Azure Web App   } }
Example usage within startup.cs
            string brokenExample = Configuration["Data:ConnectionString"];
            string workingExample = "£x4mple!";

Example output from startup.cs
brokenExample is outputted as "�x4mple!"
workingExample is outputted as "£x4mple!"
My work around was to use a database administrator password that does not contain the £ symbol, however, it would be great if this could be fixed.

Submitted this in the wrong repository, now opened in ASP.NET core at https://github.com/aspnet/Home/issues/1567


Fix all regulation tracks enabled by default

Description
There is a long list of regulatory tracks that were turned on by default in the Structural Variation page. A side cause of this issue is that the page eventually breaks due to attempting to load a big amount of data into the page.
The issue was fixed after removing regulatory_features tracks which were enabled in the code. This was the longest list of regulatory tracks.
Relevant links:

Live site where the page breaks: https://www.ensembl.org/Homo_sapiens/StructuralVariation/Context?r=13:99984196-99986821;sv=nsv916030;svf=121912273;vdb=variation
Sandbox where it now works: http://wp-np2-1e.ebi.ac.uk:8310/Homo_sapiens/StructuralVariation/Context?r=13:99984196-99986821;sv=nsv916030;svf=121912273;vdb=variation

Views affected
Structural variant (genome context)
Possible complications
Not sure about this yet
Related JIRA Issues (EBI developers only)
ENSWEB-6624

Hi @imransl were you able to find which track was breaking the site?

Hi @imransl were you able to find which track was breaking the site?

I am not sure if it is one track or many. Couldn't find out which track/s were the culprit. Only found out that they belong to the regulatory-features group, which we don't want to be turned on by default.

Hi @imransl were you able to find which track was breaking the site?

I don't think it was any one track, so much as the sheer quantity of them - the regulatory build has increased in size over the years, and probably just hit a tipping point.


std.getopt: throw an UnknownOptionException rather than Exception

danny.milo (@daym) reported this on 2014-11-22T13:13:26Z
Transfered from https://issues.dlang.org/show_bug.cgi?id=13764
CC List

hsteoh
john.loughran.colvin
rburners

Description
It would be nice if std.getopt would throw something like an UnknownOptionException rather than the very nondescript Exception it does now.

As it is now, it's hard to tell harmless "user errors" from serious internal errors. Also, having to use string matching to find out which it is isn't so nice.

hsteoh commented on 2014-11-25T15:18:56Z
I think this is a worthwhile enhancement request. Reopening.

rburners commented on 2015-01-04T20:13:13Z
this is fixed

rburners commented on 2015-01-03T17:02:02Z
I will make that PR

john.loughran.colvin commented on 2016-01-31T14:10:59Z
Not quite, there is still a raw enforce in handleOption (https://github.com/D-Programming-Language/phobos/blob/master/std/getopt.d#L703)

danny.milo commented on 2014-11-25T11:17:37Z
It's already fixed in git phobos master, there's a GetOptException now. Still have to do string comparison to find out what happened (required option missing vs. unrecognized option). Oh well.


Pinned report list on program page causes error when year has non-ascii chars

Certain pinned reports result in ascii errors when trying to load program page as a user with Spanish language selected.  I'm guessing this is a side-effect of having changed the way we're storing/displaying period names.
Steps to reproduce:

Change language to Spanish (you can do this later if you want).
From the iptt_quickstart page, select a "Recent progress for all indicators" report for any program (TolaData Test will work).
Once in the report, change the TIME PERIODS dropdown to Years.
Pin the report and select "Visit the program page now"
The program page will load fine if you've selected English as your language, but it will give you a DjangoUnicodeDecodeError if you have Spanish selected.

Program page loaded in Spanish (altho the actual text hasn't been translated yet)


Mean and std formulas difference

First of all, thanks for an idea to calculate mean and variance of an arbitrary image dataset in this tutorial.
While reading the tutorial, I have noticed a difference in 2 formulas for the variance: in a header the sum of squares is divided by n, while in the end a mean squared is divided by n. Although formula in the end is wrong, code is right.
Please correct me if I am mistaken.

Hi @tooHotSpot, thanks for your comment!
If I understand your point correctly, there is actually no error in the formula. The difference comes from the fact that the formula in the header is for sigma (the variance), whereas the formula in the end is for the sum of squared mean differences, which is only a numerator in sigma.
The sum of squared mean differences equals sigma times n. Therefore, if you divide the formula in the end by n, component by component, you should get the variance formula at the top.
I hope this helps! :)

Sorry for late reply, please! You are right, thanks!


ESLint errors

I tried to use this plugin for vue-use and now I receive such eslint errors:
ESLint: 'useVModel' is not defined.(no-undef)

Maybe you can create something like https://github.com/antfu/vue-global-api#eslint

Ur been spoiled by plugins
// .eslintrc.js
module.exports = {
globals: {
    useVModel: true
  }
}


docs(button): match code sample with image

In the screenshot, it doesn't contain favorite button.

LGTM


Add XcodeGen

Adds XcodeGen
Project URL
https://github.com/yonaskolb/XcodeGen
Category
Tools. (Though it could go in Xcode.Other or Project Setup. Should it be added to all, or just one?
Description
XcodeGen is a command line tool that generates your Xcode project using your folder structure and a simple project spec.
The project spec is a YAML or JSON file that defines your targets, configurations, schemes and custom build settings. All you source directories are automatically parsed and referenced appropriately while preserving your folder structure. Sensible defaults are used in many places, so you only need to customize what is needed.
Why it should be included to awesome-ios (optional)

✅ Easy configuration of projects which is human readable and git friendly
✅ Groups in Xcode are always synced to your directories on disk
✅ Create projects on demand and remove your .xcodeproj file from git, which means no merge conflicts!
✅ Easily copy and paste files and directories without having to edit anything in xcode
✅ Share build settings across multiple targets with build setting groups
✅ Automatically generate Schemes for different environments like test and production
✅ Easily create new projects with complicated setups on demand without messing around with Xcode
✅ Generate from anywhere including Continuous Delivery servers
✅ Distribute your spec amongst multiple files for easy sharing and overriding

Checklist

[x] Only one project/change is in this pull request
[x] Addition in chronological order (bottom of category)
[x] Supports iOS 9 / tvOS 10 or later
[x] Supports Swift 4 or later
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

          1 Warning

:warning:
Found 3 link issues, a project collaborator will take care of these, thanks :)

Link issues by awesome_bot

Line
Status
Link

752
301
https://github.com/knly/Evergreen redirects tohttps://github.com/nilsleiffischer/Evergreen

1414
301
https://github.com/skylab-inc/Edge redirects tohttps://github.com/skylab-inc/Lightning

1523
503
https://cucumber.io/

  Generated by :no_entry_sign: Danger

Thank you


[azure] Cost Management

This PR adds a simple costs overview on subscription level with pre-defined timeframe selection (7 days, 30 days).

[x] I added a CHANGELOG entry for this change.
[ ] I adjusted the corresponding documentation for this change.
[ ] I adjusted the values.yaml file and the documentation for all values.

I'd like to enhance the cost integration, but want to do it in another PR.
@ricoberger Is it okay for you to merge this for now?


Use io.NopCloser

Description
Use io.NopCloser
Type of change

Refactor (refactoring code, removing useless files)

Testing steps
Done on CI
Checklist

[ ] make before_commit passes
[ ] updated documentation wherever necessary
[ ] added or modified tests if necessary
[ ] updated schemas and validators in insights-data-schemas in case of input/output change

Codecov Report

Merging #240 (84690f2) into master (0e69fb9) will decrease coverage by 0.25%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #240      +/-   ##
==========================================
- Coverage   92.85%   92.59%   -0.26%
==========================================
  Files          33       33
  Lines        1091     1094       +3
==========================================
  Hits         1013     1013
- Misses         63       66       +3
  Partials       15       15

Impacted Files
Coverage Δ

logger/logger.go
78.35% <0.00%> (-1.80%)
:arrow_down:

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 0e69fb9...84690f2. Read the comment docs.


43 frame 6

Sketch for Frames 6 and Frames 7

I keep the elements that @mariea1022  created in her pull request, these colors are just for reference. Currently, the page looks like this  :


[incubator/cassandra] update backup image - enable ABS support

What this PR does / why we need it:
Change backup image to our company's official image.
Update version to enable support for Azure Blob Storage.
Remove parallelism level of "full" to use default of 1 - reduces resources consumption.
Thanks!

/ok-to-test

/lgtm


Can iziModal be used without jquery?

I'm trying to use iziModal in a porject where i cant afford to add jquery. Can iziModal still be useful?

IziModal works only with jQuery.


Many 'Conflicts' and deplyment errors for virtual NIC creation

Love the concept, however, as I am deploying it now there are many 'conflict' errors when the templates are submitted to create the NICs.  Could this be a timing issue?  I've been working with the repositories for a couple of months, and Azure for years, so I am confident that I am deploying it correctly.  Just a heads up.  I'll re-run it if I am able and see if the NICs complete once the networks have completed.
I've cleaned up an error message below.  As I mentioned, there are several similar errors, all of which seem to be NICs.
"The resource operation completed with terminal provisioning state 'Failed'.\",\r\n \"details\": [\r\n {\r\n \"code\": \"DeploymentFailed\",\r\n \"message\": \"At least one resource deployment operation failed. Please list deployment operations for details.
\\\"Resource /subscriptions/MyGUID/resourceGroups/ra-aad-ntier-rg/providers/Microsoft.Network/virtualNetworks/ra-aad-ntier-vnet/subnets/web referenced by resource /subscriptions/31dc635d-99a8-40ad-b1f3-be54f9fa58f9/resourceGroups/ra-aad-onpremise-rg/providers/Microsoft.Network/networkInterfaces/ra-aad-ntier-web-vm2-nic1 was not found. Please make sure that the referenced resource exists, and that both resources are in the same region.

Document details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e9383c21-9143-1559-c1a8-e6f6dc830159
Version Independent ID: 37c6c659-a6bc-633e-2b3f-337deb01c215
Content: Integrate on-premises AD domains with Azure Active Directory
Content Source: docs/reference-architectures/identity/azure-ad.md
Service: guidance
GitHub Login: @telmosampaio
Microsoft Alias: pnp

Should be fixed by issue corrected in early June 2019


Add IsActivatedChanged event for DockContent and DockContentHandler

Sometimes the code structure required me to listen to the modification of IsActivated of DockContent instead of ActiveContentChanged, but there currently isn't any way to do so.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.