cmd/compile: SIGILL on ARMv7 after a C++ throw

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
go 1.8.1
What operating system and processor architecture are you using (go env)?
GOARCH="arm"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/rook/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
GOARM="7"
CC="arm-linux-gnueabihf-gcc"
GOGCCFLAGS="-fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build245517363=/tmp/go-build -gno-record-gcc-switches"
CXX="arm-linux-gnueabihf-g++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-I/home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/include"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-L/home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/lib"

What did you do?
I cross compiled Rook for armhf (see https://github.com/rook/rook/pull/497) but it seems to fail with a SIGILL on an Armv7 (Scaleway C1 machines). Everything works fine for aarch64 and amd64 but not arm.
Leading up to the SIGILL I see a SIGSEGV
Thread 11 "rookd" received signal SIGSEGV, Segmentation fault.
[Switching to LWP 1814]
0x01d539c0 in __cxa_throw ()
(gdb) bt
#0  0x01d539c0 in __cxa_throw ()
#1  0x00ecfbb8 in boost::throw_exception<boost::bad_lexical_cast> (e=...)
    at /home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/include/boost/throw_exception.hpp:69
#2  0x016565b2 in boost::conversion::detail::throw_bad_cast<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long> ()
    at /home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/include/boost/lexical_cast/bad_lexical_cast.hpp:92
#3  boost::lexical_cast<unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > (arg=...)
    at /home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/include/boost/lexical_cast.hpp:42
#4  validate (value=0x8213179c, error_message=0x8213181c)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config_validators.cc:34
#5  0x0104d57a in std::function<int (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)>::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const (__args#1=<optimized out>,
    __args#0=<optimized out>, this=0x791a7ec) at /usr/arm-linux-gnueabihf/include/c++/6/functional:2127
#6  md_config_t::set_val_impl (this=this@entry=0x78fc000, val=..., opt=opt@entry=0x791a7d8, error_message=error_message@entry=0x8213181c)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config.cc:1059
#7  0x0104f5f2 in md_config_t::validate_default_settings (this=this@entry=0x78fc000)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config.cc:1380
#8  0x01052d74 in md_config_t::md_config_t (this=0x78fc000)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config.cc:185
#9  0x01072c82 in CephContext::CephContext (this=0x78f8000, module_type_=1, init_flags_=0)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/ceph_context.cc:501
#10 0x01079c00 in common_preinit (iparams=..., code_env=code_env@entry=CODE_ENVIRONMENT_LIBRARY, flags=flags@entry=0,
    data_dir_option=data_dir_option@entry=0x0)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/common_init.cc:46
#11 0x00f95052 in cephd_generate_secret_key (buf=0x97077180 "", len=128)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/libcephd/libcephd.cc:84
#12 0x00e4d014 in _cgo_f53ec84379ef_Cfunc_cephd_generate_secret_key ()
#13 0x000e1d88 in runtime.asmcgocall () at /usr/local/go/src/runtime/asm_arm.s:543
#14 0x00000000 in ?? ()

when I continue I see the following:
Thread 11 "rookd" received signal SIGILL, Illegal instruction.
runtime.semrelease (addr=0x0) at /usr/local/go/src/runtime/sema.go:184
(gdb) x/i $pc
=> 0xcae40 <runtime.semrelease+380>:    ldr     pc, [sp], #32
(gdb) bt
#0  runtime.semrelease (addr=0x0) at /usr/local/go/src/runtime/sema.go:184
#1  0x00000000 in ?? ()

Here's the cpu info:
processor	: 0
model name	: ARMv7 Processor rev 2 (v7l)
BogoMIPS	: 50.00
Features	: half thumb fastmult vfp edsp thumbee vfpv3 tls idiva idivt vfpd32 lpae
CPU implementer	: 0x56
CPU architecture: 7
CPU variant	: 0x2
CPU part	: 0x584
CPU revision	: 2

Note that I'm cross compiling rook with arm-linux-gnueabihf-gcc, here's the version info:
rook@moby:~/go/src/github.com/rook/rook$ arm-linux-gnueabihf-gcc -v
arm-linux-gnueabihf-gcc (Ubuntu/Linaro 6.3.0-12ubuntu2) 6.3.0 20170406
Using built-in specs.

Also note that rookd is a statically compiled binary and libc/libc++ are also statically compiled in.
What did you expect to see?
No SIGILL

--with-mode=thumb

Could you try to disable thumb? Apparently the instruction in semrelease is valid, but it can be invalid in thumb mode. Go doesn't use thumb mode. It seems when it throws in thumb mode, it doesn't switch to arm mode.

@cherrymui I tried compiling the c/c++ code using -marm but I think libc and libstdc++ are also compiled in thumb mode. I would have to recompile libc and libstdc++ to avoid using thumb completely, right?

I tried compiling our c/c++ code using -marm and I still see the failure.

Could you post the new stack trace on failure? The stack trace in the earlier post shows that it goes into thumb mode very early:
#11 0x00f95052 in cephd_generate_secret_key (buf=0x97077180 "", len=128)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/libcephd/libcephd.cc:84

(because the PC is not 4-byte aligned)

However, libc and libstdc++ are also compiled in thumb mode and I didn't change those. I would have to recompile libc and libstdc++ to avoid using thumb completely, right?

I suspect libc supports both arm and thumb, and the linker should choose the right one. Could you paste your build process with go build -x? Thanks.

Is it possible to disable -marm in golang and just go with thumb?

No. Go assembler doesn't know thumb at all. For this to work it would require adding an entire backend.

I compiled all our c/c++ packages with -marm, here's the build log with -x:
# github.com/rook/rook/cmd/rookd
HEADER = -H4 -T0x11000 -D0x0 -R0x10000
searching for runtime.a in $WORK/runtime.a
searching for runtime.a in /home/rook/go/pkg/linux_arm_netgo/runtime.a
searching for runtime.a in /usr/local/go/pkg/linux_arm_netgo/runtime.a
searching for math.a in $WORK/math.a
searching for math.a in /home/rook/go/pkg/linux_arm_netgo/math.a
searching for math.a in /usr/local/go/pkg/linux_arm_netgo/math.a
 0.00 deadcode
 0.17 pclntab=7463342 bytes, funcdata total 1021601 bytes
 0.20 dodata
 0.24 dwarf
 0.33 symsize = 0
 0.68 reloc
 0.80 asmb
 0.84 datblk
 0.86 sym
 0.86 elfsym
 0.89 symsize = 725440
 0.91 symsize = 726416
 0.99 header
 1.05 host link: "arm-linux-gnueabihf-g++" "-marm" "-gdwarf-2" "-o" "/tmp/go-build027260696/github.com/rook/rook/cmd/rookd/_obj/exe/a.out" "-static" "/tmp/go-link-133287218/go.o" "/tmp/go-link-133287218/000000.o" "/tmp/go-link-133287218/000001.o" "/tmp/go-link-133287218/000002.o" "/tmp/go-link-133287218/000003.o" "/tmp/go-link-133287218/000004.o" "-L/home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/lib" "-ltcmalloc_minimal" "-Wl,--whole-archive" "-lpthread" "-Wl,--no-whole-archive" "-lcephd" "-lboost_system" "-lboost_thread" "-lboost_iostreams" "-lboost_random" "-lblkid" "-lrocksdb" "-lcurl" "-lz" "-lsnappy" "-lzstd" "-lcryptopp" "-lssl" "-lcrypto" "-laio" "-luuid" "-lexpat" "-lm" "-ldl" "-lresolv" "-L/home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/lib" "-L/home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/lib" "-g" "-O2" "-lpthread" "-g" "-O2" "-no-pie" "-static"
/home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/lib/libcephd.a(ClassHandler.cc.o): In function `ClassHandler::_load_class(ClassHandler::ClassData*)':
/home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/osd/ClassHandler.cc:151: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/tmp/go-link-133287218/000004.o: In function `mygetgrouplist':
/usr/local/go/src/os/user/getgrouplist_unix.go:15: warning: Using 'getgrouplist' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/tmp/go-link-133287218/000004.o: In function `mygetgrgid_r':
/usr/local/go/src/os/user/lookup_unix.go:38: warning: Using 'getgrgid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/tmp/go-link-133287218/000004.o: In function `mygetgrnam_r':
/usr/local/go/src/os/user/lookup_unix.go:43: warning: Using 'getgrnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/lib/libcephd.a(civetweb.c.o): In function `set_uid_option':
/home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/civetweb/src/civetweb.c:10481: warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/tmp/go-link-133287218/000004.o: In function `mygetpwnam_r':
/usr/local/go/src/os/user/lookup_unix.go:33: warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/tmp/go-link-133287218/000004.o: In function `mygetpwuid_r':
/usr/local/go/src/os/user/lookup_unix.go:28: warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/lib/libcephd.a(civetweb.c.o): In function `mg_inet_pton':
/home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/civetweb/src/civetweb.c:5652: warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/lib/libcrypto.a(b_sock.o): In function `BIO_gethostbyname':
/home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/src/openssl/crypto/bio/b_sock.c:121: warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
25.83 cpu time
357758 symbols
395804 liveness data

and here's a new back trace (looks 4 byte aligned):
[Switching to LWP 24485]
0x0243e918 in __cxa_throw ()
(gdb) bt
#0  0x0243e918 in __cxa_throw ()
#1  0x00f263d8 in boost::throw_exception<boost::bad_lexical_cast> (e=...)
    at /home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/include/boost/throw_exception.hpp:69
#2  0x01a24864 in boost::conversion::detail::throw_bad_cast<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long> ()
    at /home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/include/boost/lexical_cast/bad_lexical_cast.hpp:92
#3  boost::lexical_cast<unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > (arg=...)
    at /home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/include/boost/lexical_cast.hpp:42
#4  validate (value=0x5c, error_message=0x40)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config_validators.cc:34
#5  0x0115b884 in std::function<int (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)>::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const (__args#1=<optimized out>,
    __args#0=<optimized out>, this=0x800a7ec) at /usr/arm-linux-gnueabihf/include/c++/6/functional:2127
#6  md_config_t::set_val_impl (this=this@entry=0x7fec000, val=..., opt=opt@entry=0x800a7d8, error_message=0x82931824,
    error_message@entry=0x8293181c) at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config.cc:1059
#7  0x0115e988 in md_config_t::validate_default_settings (this=this@entry=0x7fec000)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config.cc:1380
#8  0x01162784 in md_config_t::md_config_t (this=0x7fec000)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config.cc:185
#9  0x011873a4 in CephContext::CephContext (this=0x7fe8000, module_type_=1, init_flags_=0)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/ceph_context.cc:501
#10 0x011918dc in common_preinit (iparams=..., code_env=code_env@entry=CODE_ENVIRONMENT_LIBRARY, flags=flags@entry=0,
    data_dir_option=data_dir_option@entry=0x0)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/common_init.cc:46
#11 0x01049a28 in cephd_generate_secret_key (buf=0x970e7480 "", len=128)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/libcephd/libcephd.cc:84
#12 0x00e6edbc in _cgo_f53ec84379ef_Cfunc_cephd_generate_secret_key ()
#13 0x00103b30 in runtime.asmcgocall () at /usr/local/go/src/runtime/asm_arm.s:543
#14 0x00000000 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

still happening:
Thread 10 "rookd" received signal SIGILL, Illegal instruction.
runtime.semrelease (addr=0x0) at /usr/local/go/src/runtime/sema.go:184
184	/usr/local/go/src/runtime/sema.go: No such file or directory.
(gdb) bt
#0  runtime.semrelease (addr=0x0) at /usr/local/go/src/runtime/sema.go:184
#1  0x00000000 in ?? ()

and here's the instruction:
(gdb) x/i $pc
=> 0xecbe8 <runtime.semrelease+380>:	ldr	pc, [sp], #32

@bassam Thank you for the new stack trace. The PCs look like indeed 4-byte aligned. To make sure it is in arm mode, could you print the instruction and $cpsr in gdb when it throws? If it looks like in thumb mode, could you print the instructions for the call sites on each frame, to see when it switches to thumb?
In your code, whom do you expect to handle the throw? C++, Go, or nothing (terminate program)? I don't know why/how it goes to runtime.semrelease. If it is in thumb mode, it could just jump wildly though.
The build log looks like a -v log from the linker, instead of go build -x. What I'd like to find out is how the compiler is invoked. Could you paste the commands you invoked the Go and C++ compiler?
Is there a way I could build your code and reproduce it? Thank you.

@cherrymui, here's the instruction and cpsr at the throw:
(gdb) x/i $pc
=> 0x243e918 <__cxa_throw+20>:  ldr     r3, [r0, #4]
(gdb) print $cpsr
$1 = 48

also here are the instructions at each call site:
(gdb) f 1
#1  0x00f263d8 in boost::throw_exception<boost::bad_lexical_cast> (e=...)
    at /home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/include/boost/throw_exception.hpp:69
69      /home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/include/boost/throw_exception.hpp: No such file or directory.
(gdb) x/i $pc
=> 0xf263d8 <boost::throw_exception<boost::bad_lexical_cast>(boost::bad_lexical_cast const&)+196>:      subeq   r10, r10, #204, 24      ; 0xcc00
(gdb) f 2
#2  0x01a24864 in boost::conversion::detail::throw_bad_cast<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long> ()
    at /home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/include/boost/lexical_cast/bad_lexical_cast.hpp:92
92      /home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/include/boost/lexical_cast/bad_lexical_cast.hpp: No such file or directory.
(gdb) x/i $pc
=> 0x1a24864 <validate(md_config_t::option_rbd_default_features_t*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)+228>: add     r2, sp, #88     ; 0x58
(gdb) f 3
#3  boost::lexical_cast<unsigned long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > (arg=...)
    at /home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/include/boost/lexical_cast.hpp:42
42      /home/rook/go/src/github.com/rook/rook/.work/build/arm-linux-gnueabihf/include/boost/lexical_cast.hpp: No such file or directory.
(gdb) x/i $pc
=> 0x1a24864 <validate(md_config_t::option_rbd_default_features_t*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)+228>: add     r2, sp, #88     ; 0x58
(gdb) f 4
#4  validate (value=0x5c, error_message=0x40) at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config_validators.cc:34
34      /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config_validators.cc: No such file or directory.
(gdb) x/i $pc
=> 0x1a24864 <validate(md_config_t::option_rbd_default_features_t*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)+228>: add     r2, sp, #88     ; 0x58
(gdb) f 5
#5  0x0115b884 in std::function<int (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)>::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const (__args#1=<optimized out>, __args#0=<optimized out>, this=0x800a7ec) at /usr/arm-linux-gnueabihf/include/c++/6/functional:2127
2127    /usr/arm-linux-gnueabihf/include/c++/6/functional: No such file or directory.
(gdb) x/i $pc
=> 0x115b884 <md_config_t::set_val_impl(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, md_config_t::config_option const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)+140>:    subs    r7, r0, #0
(gdb) f 6
#6  md_config_t::set_val_impl (this=this@entry=0x7fec000, val=..., opt=opt@entry=0x800a7d8, error_message=0x84d4f824, error_message@entry=0x84d4f81c)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config.cc:1059
1059    /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config.cc: No such file or directory.
(gdb) x/i $pc
=> 0x115b884 <md_config_t::set_val_impl(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, md_config_t::config_option const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)+140>:    subs    r7, r0, #0
(gdb) f 7
#7  0x0115e988 in md_config_t::validate_default_settings (this=this@entry=0x7fec000)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config.cc:1380
1380    in /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config.cc
(gdb) x/i $pc
=> 0x115e988 <md_config_t::validate_default_settings()+240>:    mov     r7, r0
(gdb) f 8
#8  0x01162784 in md_config_t::md_config_t (this=0x7fec000) at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config.cc:185
185     in /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/config.cc
(gdb) x/i $pc
=> 0x1162784 <md_config_t::md_config_t()+15576>:        mov     r0, r8
(gdb) f 9
#9  0x011873a4 in CephContext::CephContext (this=0x7fe8000, module_type_=1, init_flags_=0)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/ceph_context.cc:501
501     /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/ceph_context.cc: No such file or directory.
(gdb) x/i $pc
=> 0x11873a4 <CephContext::CephContext(unsigned int, int)+92>:  add     r3, r4, #124    ; 0x7c
(gdb) f 10
#10 0x011918dc in common_preinit (iparams=..., code_env=code_env@entry=CODE_ENVIRONMENT_LIBRARY, flags=flags@entry=0, data_dir_option=data_dir_option@entry=0x0)
    at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/common_init.cc:46
46      /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/common/common_init.cc: No such file or directory.
(gdb) x/i $pc
=> 0x11918dc <common_preinit(CephInitParameters const&, code_environment_t, int, char const*)+72>:      mov     r1, r7
(gdb) f 11
#11 0x01049a28 in cephd_generate_secret_key (buf=0x9735f180 "", len=128) at /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/libcephd/libcephd.cc:84
84      /home/rook/go/src/github.com/rook/rook/external/src/ceph-kraken/src/libcephd/libcephd.cc: No such file or directory.
(gdb) x/i $pc
=> 0x1049a28 <cephd_generate_secret_key(char*, size_t)+80>:     mov     r4, r0
(gdb) f 12
#12 0x00e6edbc in _cgo_f53ec84379ef_Cfunc_cephd_generate_secret_key ()
(gdb) x/i $pc
=> 0xe6edbc <_cgo_f53ec84379ef_Cfunc_cephd_generate_secret_key+60>:     str     r0, [r11, #-8]
(gdb) f 13
#13 0x00103b30 in runtime.asmcgocall () at /usr/local/go/src/runtime/asm_arm.s:543
543     /usr/local/go/src/runtime/asm_arm.s: No such file or directory.
(gdb) x/i $pc
=> 0x103b30 <runtime.asmcgocall+88>:    mov     r5, r0

I expect the C++ code to handle the throw.

Also here's the go build -x output:
WORK=/tmp/go-build360064696
WORK=/tmp/go-build410289934
github.com/rook/rook
mkdir -p $WORK/github.com/rook/rook/_obj/
mkdir -p $WORK/github.com/rook/rook/_obj/exe/
cd /home/rook/go/src/github.com/rook/rook
/usr/local/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/rook/rook.a -trimpath $WORK -p main -complete -installsuffix nocgo -buildid fb8296665293dab984bc05b51c9072ca99f10c18 -D _/home/rook/go/src/github.com/rook/rook -I $WORK -I /home/rook/go/pkg/linux_arm_nocgo -pack ./main.go
cd .
/usr/local/go/pkg/tool/linux_amd64/link -o $WORK/github.com/rook/rook/_obj/exe/a.out -L $WORK -L /home/rook/go/pkg/linux_arm_nocgo -installsuffix nocgo -extld=arm-linux-gnueabihf-gcc -buildmode=exe -buildid=fb8296665293dab984bc05b51c9072ca99f10c18 -s -X github.com/rook/rook/pkg/version.Version=v0.3.3-58-gb214910-dirty $WORK/github.com/rook/rook.a
mkdir -p /home/rook/go/src/github.com/rook/rook/bin/linux_arm/
cp $WORK/github.com/rook/rook/_obj/exe/a.out /home/rook/go/src/github.com/rook/rook/bin/linux_arm/rook
github.com/rook/rook/cmd/rookd
mkdir -p $WORK/github.com/rook/rook/cmd/rookd/_obj/
mkdir -p $WORK/github.com/rook/rook/cmd/rookd/_obj/exe/
cd /home/rook/go/src/github.com/rook/rook/cmd/rookd
/usr/local/go/pkg/tool/linux_amd64/compile -o $WORK/github.com/rook/rook/cmd/rookd.a -trimpath $WORK -p main -complete -installsuffix netgo -buildid c04c0521592a20996f7039de3203c3467a5668b2 -importmap github.com/bassam/cgosymbolizer=github.com/rook/rook/vendor/github.com/bassam/cgosymbolizer -importmap github.com/coreos/etcd/version=github.com/rook/rook/vendor/github.com/coreos/etcd/version -importmap github.com/coreos/pkg/capnslog=github.com/rook/rook/vendor/github.com/coreos/pkg/capnslog -importmap github.com/spf13/cobra=github.com/rook/rook/vendor/github.com/spf13/cobra -importmap k8s.io/client-go/kubernetes=github.com/rook/rook/vendor/k8s.io/client-go/kubernetes -importmap k8s.io/client-go/rest=github.com/rook/rook/vendor/k8s.io/client-go/rest -D _/home/rook/go/src/github.com/rook/rook/cmd/rookd -I $WORK -I /home/rook/go/pkg/linux_arm_netgo -pack ./api.go ./daemon.go ./main.go ./mds.go ./mon.go ./operator.go ./osd.go ./rgw.go ./tool.go ./version.go
cd .
/usr/local/go/pkg/tool/linux_amd64/link -o $WORK/github.com/rook/rook/cmd/rookd/_obj/exe/a.out -L $WORK -L /home/rook/go/pkg/linux_arm_netgo -installsuffix netgo -extld=arm-linux-gnueabihf-g++ -buildmode=exe -buildid=c04c0521592a20996f7039de3203c3467a5668b2 -X github.com/rook/rook/pkg/version.Version=v0.3.3-58-gb214910-dirty -extldflags -static $WORK/github.com/rook/rook/cmd/rookd.a
mkdir -p /home/rook/go/src/github.com/rook/rook/bin/linux_arm/
cp $WORK/github.com/rook/rook/cmd/rookd/_obj/exe/a.out /home/rook/go/src/github.com/rook/rook/bin/linux_arm/rookd

If you want to build it yourself here's the branch I'm using https://github.com/bassam/rook/tree/pr-armhf. Build instructions are here https://github.com/bassam/rook/tree/pr-armhf/build, I'm running the following to build for arm:
build/run make -j4 ALL_PLATFORMS=linux_arm release

I'm also happy to arrange an ssh session if you'd like to debug live. Thanks for all your help!

@bassam From the CPSR it looks like it is in thumb mode. Unfortunately the PCs for each frame you pasted are the instruction after the call instruction. What I'd like to find out is whether it switches to thumb at one of calls (BLX instruction). If you print the previous instruction (or simply do disasm to disassemble a piece of code), it may be helpful. Is it convenient for you to share the binary? I could disassemble it to find out something, since you already pasted the PCs.
It is interesting that C++ doesn't handle the throw and it jumps to Go code. Probably messed up with arm/thumb mode... Do you have a standalone C++ binary that exercises the same code path? Maybe just call the function that you called with Cgo directly from C++ with the same arguments? If so, could you try to build it with -marm to see whether the throw is handled properly?
Thank you for the build instruction. I'll give it a try.

@cherrymui here are the binaries if you want to take a look:
https://www.dropbox.com/s/xtpiw19mmpof6mq/rook-v0.3.3-58-gb214910-dirty-linux-arm.tar.gz?dl=0
https://www.dropbox.com/s/qcbg9hw7v4yzafg/rook-v0.3.3-58-gb214910-dirty-linux-arm-debug.tar.gz?dl=0

The first link has the rookd binary and the second one has rookd.debug.

@bassam Sorry for the delayed. I looked at your binary. It seems it goes to thumb mode at __cxa_throw, other frames are in ARM mode. This suggests that it may be related to libstdc++. Do you have a thumb-only libstdc++? If so, you'll probably need to install the ARM version of libstdc++.
If you have both ARM and thumb ones, it is useful to know how the linker is invoked. Do you use the Go linker or the C++ linker to produce the final binary? What flags are used? Thanks.

@cherrymui thanks that makes a lot of sense! I'll check the version of libstdc++ and hopefully that fixes the issue. I learned a lot about golang and ARM from this issue. Thanks again.


Add new page wiki needs updating

Hi @jedireza, been working with Aqua for a few days now, enjoying it!
One area for improvement I can see is an updated "Add new pages" wiki. The current guide is a little out of date and references code that has either changed or has been deleted. Can I make a contribution by updating the guide to make it easier for a new user to navigate?

That would be great. Thanks!

I've decided to archive this project. Thank you for your interest and contributions.
https://github.com/jedireza/aqua#no-longer-maintained


Little cleanup around measure_remote_op calls

Previously, the functions in download.rs did the measurement themselves, whereas for functions in delete.rs and upload.rs, it was the caller's responsibility. Move the measure_remote_op calls from download.rs to the callers, for consistency.
Remove pointless async blocks in upload.rs and delete.rs. They would've been useful for inserting the measure_remote_op calls, but since the caller's are responsible for measure_remote_op now, they're not neeed.
tiny cosmetic cleanup around imports

Note: this is best viewed with whitespace changes ignored, since this de-indents large block of code.


prevWorkingDay/nextWorkingDay to take into account only official holidays

Hi, I have a feature request for prevWorkingDay / nextWorkingDay methods. I want the ability to ask the isWorkingDay method to return true only on official holidays. Currently it returns true on observance and other types of holidays, and that makes the prevWorkingDay / nextWorkingDay functions not work correctly in our case, since observance holidays might be working days officially.
I'd be happy to put in a pull request with an optional query parameter to the mentioned methods that does not change the current behavior unless you set it explicitly, to keep compatibility. Let me know if you think this sort of functionality would be useful.

My bad, apparently not all 'observance' holidays should be removed from the list we need, so extending the holiday providers and removing the unnecessary holidays will be enough in our case.

Hi @tadasauciunas Extending the providers is definitely a solution. However I am aware that the way Yasumi determines a working day / non working day is not working correctly. Working on that one... :)


About AE1d

Hello,
No can find the RBM code, you not use it ad in original paper?

Hello,
I certainly don't implement RBM in this repository (i.e., no pre-training), because I don't fully understand its algorithm.
It's reported that pre-training using RBM is important in original paper.
So I would like to add its functions in the future.


📝 Upgrade docs

Changes

adds: More docstrings
fixed: closes #86 and closes #83
improvements: Better numpy docstrings with the RestructuredText also changed

Check off the following

[x] I have tested my changes with the current requirements
[x] My Code follows the pep8 code style.

Linted and fixed with autopep8 and flake8, line endings are all LF.
https://pincer-upgraded-docs.rtfd.io

Holy!

(Current implementation is broken)

Aight so I found a few things while quickly looking at the preview:
client.py:

Client.throttler missing : in defaults notation.
@event, load_cog docs rename botclient to myclient

commands.py:

update to descripted in command decorator example
document keep in remove_command & remove_commands

Aight so I found a few things while quickly looking at the preview:
client.py:

Client.throttler missing : in defaults notation.
@event, load_cog docs rename botclient to myclient

commands.py:

update to descripted in command decorator example
document keep in remove_command & remove_commands

I've made all of the changes.

@ooliver1 originally, I recall you changing the import of __version__ to RegEx. Why was that?
In the latest commit by @Lunarmagpie it was "reverted" back. Do you believe we should keep the change or not?

@ooliver1 originally, I recall you changing the import of __version__ to RegEx. Why was that?
In the latest commit by @Lunarmagpie it was "reverted" back. Do you believe we should keep the change or not?

Yeah, it was kinda broken. I thought it would be better to import directly than rewrite the regex whenever that part of __init__.py changed.

I did try to import but it would say weird stuff on readthedocs about importing outside top level package, I could try again though

:0 just looking at gh at school ayo

Seems like doc built wrongly xD


Pinch Zoom does not play animation if resetting back to the original zoom level

How to reproduce

Leaflet version I'm using: 1.2
Browser (with version) I'm using: Chrome
OS/Platform (with version) I'm using: Android (7.0)

Slightly pinch zoom the map. When you let go, the map will snap back to its original zoom level instead of animating back to it.
The map transform is not updated during pinch zooms. So while I'm pinching from zoom 16 to 16.3, the map's proxy's transform is still set as if the map was zoom 16.
When I let go and leaflet animates back to zoom 16, the following code catches the "no-op" and tries to handle it:
In _createAnimProxy
// workaround for case when transform is the same and so transitionend event is not fired
if (transform === this._proxy.style[prop] && this._animatingZoom) {
  this._onZoomTransitionEnd();
}

If I remove that check, the animations play as expected. Since the following code is also trying to account for the lack of transitionend event, is it safe to remove the above code?
In _animateZoom:
// Work around webkit not firing 'transitionend', see https://github.com/Leaflet/Leaflet/issues/3689, 2693
setTimeout(bind(this._onZoomTransitionEnd, this), 250);

Hi Edward,
could you provide a link to minimal example reproducing this issue?

Pinch zooming  (On mobile) on the map at http://leafletjs.com/ frequently causes the problem. It seems to happen more when zoomed in further (Not the max zoom bounce effect).

I don't see any problems with pinch zoom.

(Chrome on laptop with touchscreen)

https://i.imgur.com/PpOgjsv.gifv
Android, mobile chrome. Seems to happen if you are slow to pick up your fingers.


[Documentation] Added a FAQ for executor returning successful even after the query fa…

dded a FAQ for executor returning successful even after the query failed

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

@sraghunandan kindly review

Build Success with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3037/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4281/

Closed as this FAQ is not needed


Stronger - Task 4 - Yanav Lall

Task 4 - Modify Questionnaire to be about Post-Menopausal Health
:recycle: Current situation & Problem
The current version of the app contains a questionnaire that is not relevant to Stronger.
:gear: Release Notes
Edited the existing json file to fit the questionnaire to fit Stronger's goals of improving Postmenopausal health and integrated the modified questionnaire into the app.
:books: Documentation
Please ensure that you properly document any additions in conformance to Spezi Documentation Guide.
You can use this section to describe your solution, but we encourage contributors to document your reasoning and changes using in-line documentation.
:white_check_mark: Testing
No testing yet
:pencil: Code of Conduct & Contributing Guidelines
By submitting creating this pull request, you agree to follow our Code of Conduct and Contributing Guidelines:

[x] I agree to follow the Code of Conduct and Contributing Guidelines.

Nice work with the updates @yanavlall!

@yanavlall you can go ahead and merge this pull request now to complete the assignment. Thanks!


Unable to build project since last version (1.1.0)

Hello guys,
I'm using webpack to build my projects.
Since the last release (1.1.0) I'm having an error making it impossible to build :( :
'Circular dependency detected using "node_modules/has-proto/package.json"'
I retraced the dependencies between packages and it comes from :
├── side-channel
    ├── **call-bind**
    ├── get-intrinsic
             ├── call-bind (devDep)
             ├── has-proto
                      ├──**call-bind** (<= newly added)

Can you check if it was intended to add call-bind in your package.json?

Hello, we tried to solve the issue.
This is what we did:
Removed the call-bind dependency from package.json to resolve the circular dependency issue reported by a user using webpack. This change should not affect the functionality of the package as call-bind is likely used as a dev dependency in other parts of the project.
You can review changes in this commit: https://github.com/mnmnk43434/inspect-js-has-proto-3/commit/39ea2aa0ed8dfbabdfc3f53160c3be2ba8717c58.

[!CAUTION]
Disclaimer: The concept of solution was created by AI and you should never copy paste this code before you check the correctness of generated code. Solution might not be complete, you should use this code as an inspiration only.

If you no longer want Latta AI to attempt solving issues on your repository, you can block this account.

Yes, it was intentional, and it shouldn’t make it impossible - i also don’t see a cycle there. What version of webpack, and which version of which package manager, are you using?

Hi, i'm using webpack v4, npm 10.

ah, i see, the cycle is get-intrinsic → has-proto → call-bind → get-intrinsic. Hmm.

ok, so. get-intrinsic only uses has-proto in one place: to make a "get prototype" helper function, one that now exists in a much more reliable form as a private helper function inside has-proto. Unfortunately, the reliability comes from using get-intrinsic 🤣.
I think my solution is the following:

extract the callBound piece to a separate package, since this is the part that requires get-intrinsic
publish a major bump of call-bind that removes callBound (and update dependents to use the pair of packages instead of just the one)
extract the getDunder and setDunder helpers to their own package(s), so that get-intrinsic can depend on it directly (although to avoid a cycle, i'll have to not rely on get-intrinsic at all, but i can rely on call-bind v2)
replace the helpers in has-proto with those packages

publish a patch version of has-proto which closes this issue.

actually - that won't solve it, and this isn't a cycle, because dev deps of deps aren't ever installed.
iow, i think this is a bug in webpack, and you should file it.

Hi,
sorry I don't understand much of what you said above, I have no leverage here since these are deps of deps etc ...

No worries, some of it is just my stream of consciousness about it, some of it is documenting things for future reference :-)
Since there's indeed a cycle here, rest assured I'm working on a fix.


having ignoreLabels still adding label

I have the current present you described on your README file
I have
"ignoreLabels" : ["👏 dependencies"]
A label is created for PRs that has the ignore label above.
the action succeed
I do see in github log:

Are you certain this label was created by the action? I'm not really sure about this because it would've been logged here if it was added in this run.
Another possibility could be if the label's name (title needs formatting) has been changed in the config. So, if the tag existed already, but the name (in the config file) has now been changed, the action would look for a title matching the new name and would fail to remove the pre-existing old tag. Could that have happened here?


Avoid checking if matrix is unitary in Split2qUnitaries

Summary
This commit fixes a small oversight in the Split2QUnitaries transpiler pass. When it does decide to split the unitary into two single qubit unitary gates it was creating a new UnitaryGate object. When these UnitaryGate objects were created we weren't setting the check_input flag to false. This meant we were spending time validating the matrix was a unitary, but in the context the matrix is known to be unitary already, so we don't need to spend the time doing this checking.
Details and comments

Pull Request Test Coverage Report for Build<PHONE_NUMBER>7
Details

6 of 6 (100.0%)  changed or added relevant lines in 1 file are covered.
11 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.001%) to 88.828%

Files with Coverage Reduction
New Missed Lines
%

qiskit/transpiler/passes/synthesis/unitary_synthesis.py
2
88.26%

crates/qasm2/src/lex.rs
3
92.23%

qiskit/synthesis/two_qubit/xx_decompose/decomposer.py
6
90.91%

Totals

Change from base Build<PHONE_NUMBER>5:
-0.001%

Covered Lines:
74003

Relevant Lines:
83310

💛  - Coveralls


pallet to support multiple currencies (or tokens)

define generic multiple currencies trait
switch to a more Currency like trait
move tests to their own subfolder as we expect this to grow
simplify trait API
implement basic currencies trait
compat with the currency trait
currency creation
minting currency units
burning units of currency
currency details updates
add missing doc string
implement transfer dispatchable call and add event

Progress #3


Adds androidVersionCodeIncrement option instead of the hardcoded +10

Its ironic I actually have the #10 pull request.


Resume bots triângular nodeJS

hello i'm from brazil and did tests with
tokio vps 32cpus ws + 50gb network
PING 15MS
I WILL POST THE PRINTS
the maximum power that normal people could have
THIS TYPE OF ARBITRATION IS NOT PROFITABLE, NOT IN BINANCE
MAY BE PROFITABLE TRIANGLE AND POCISIONED ARBITRATION BETWEEN EXCHANGES 3-4-6 EXCHANGES
or maybe a bot made in C # or C ++ that is faster than nodejs

Awesome configs, FOR MINIMAL VALUE COINS IN TRADE.
{
"KEYS": {
    "API": "",
    "SECRET": ""
},

"INVESTMENT": {
    "BASE": "USDT",
    "MIN": 12,
    "MAX": 24,
    "STEP": 1
},

"TRADING": {
    "ENABLED": true,
    "EXECUTION_STRATEGY": "linear",
    "EXECUTION_TEMPLATE": ["", "", ""],
    "EXECUTION_CAP": 0.075,
    "TAKER_FEE": 0.00,
    "PROFIT_THRESHOLD": 0.01,
    "AGE_THRESHOLD": 50,
    "WHITELIST": []
},

"HUD": {
    "ENABLED": false,
    "ARB_COUNT": 10
},

"LOG": {
    "LEVEL": "debug",
    "PRETTY_PRINT": true
},

"DEPTH": {
    "SIZE": 10,
    "PRUNE": false,
    "INITIALIZATION_INTERVAL": 75
},

"CALCULATION_COOLDOWN": 15

}

Perhaps a bot written in another language might be faster. Algorithmic trading in general and especially arbitrage is sooooo time sensitive. Simply lacking a direct line to the exchange might disqualify traders.
Thank you for post such in depth data! I've run the bot on a 32 core machine out of Tokyo last year to test out some websocket scaling issues and saw mixed results leading me to believe that processing power is not the limiting factor here. It appears that even in the single digits of millisecond latency, you need to be faster. I'm confident the bot is identifying legit opportunities but in many cases lacks the speed to execute in a timely manner.
A SIGNIFICANT performance improvement is running the bot in parallel execution mode which will effectively make the bot 3 times faster in executing positions but requires balances of more coins to be held. I haven't invested enough time and value to spread out an investment across enough coins to test this strategy

I only have 120usd, to test the parallel effectively I believe that a bankroll of 500 would be good, spreading 11-12 usd among the top 20 coin some profit, soon I will try to test it. difficult is to leave some money to invest in cryptos hahaha :(

I have been playing around with ~500usd and still think it's a pain to identify the coins and distribute a stack of funds equally amongst them. Each coin being used needs to have a sufficient balance equal to the max balance to be converted of the base currency.
Perhaps a nice feature would be an automated equal distribution of funds into the given whitelist to prep for running in parallel execution mode. ie you use 5 symbols in the whitelist and BTC as a base so the bot calculates if you have enough BTC to satisfy the minimum amount of each symbol and then distributes it out with BUY/SELL orders as appropriate

an idea you put in development the configuration support more currencies in just one instance

I'm not sure what you mean by that? If you mean having multiple "base currencies" this is possible and perhaps a great idea.
I'm gonna close this as there isn't a particular thread focused on. Feel free to open a new issue!


Should we add isort to the pre-commit?

isort helps to organize the order of dependencies import, the current code is not formatted with isort. If a new PR is formatted with isort, there will be many changes in the order of dependencies import. The reordered code looks nice, but it also adds more work for the reviewers.
What about we use a PR to reformat the code, and also add isort to the pre-commit hooks?

If this one will get a go from the core, I can do a PR

I'm OK if it's a low-effort PR. @qingyun-wu what do you think?

Is it a common or rule-of-thumb practice to use isort? Do you know any other famous repo that also uses isort?

It's quite common in python projects in general. When we talk about packages it's not that common. From what I've found
modin - https://github.com/modin-project/modin/blob/master/environment-dev.yml
river - https://github.com/online-ml/river/blob/main/pyproject.toml
anomalib - https://github.com/openvinotoolkit/anomalib/blob/main/.pre-commit-config.yaml
albumentations - https://github.com/albumentations-team/albumentations/blob/master/.pre-commit-config.yaml
optuna - https://github.com/optuna/optuna/blob/master/pyproject.toml
As an alternative you could enable ruff version of isort and use it.

It's quite common in python projects in general. When we talk about packages it's not that common. From what I've found modin - https://github.com/modin-project/modin/blob/master/environment-dev.yml river - https://github.com/online-ml/river/blob/main/pyproject.toml anomalib - https://github.com/openvinotoolkit/anomalib/blob/main/.pre-commit-config.yaml albumentations - https://github.com/albumentations-team/albumentations/blob/master/.pre-commit-config.yaml optuna - https://github.com/optuna/optuna/blob/master/pyproject.toml
As an alternative you could enable ruff version of isort and use it.

What do you think? @sonichi @qingyun-wu

I think worth trying.

If this one will get a go from the core, I can do a PR

Hi @glevv , are you still interested in this? Thanks.

If this one will get a go from the core, I can do a PR

Hi @glevv , are you still interested in this? Thanks.

Yes, I can do this, but I need to know which route are we taking here: ruff version of isort (it will only require change in the config files) or original isort (it will be  a new dev dependency)?
Either way it will be a change in the whole codebase (imports sort) and change in the pre-commit hook.

If this one will get a go from the core, I can do a PR

Hi @glevv , are you still interested in this? Thanks.

Yes, I can do this, but I need to know which route are we taking here: ruff version of isort (it will only require change in the config files) or original isort (it will be a new dev dependency)?
Either way it will be a change in the whole codebase (imports sort) and change in the pre-commit hook.

imports sort in this PR is what we wanted, so we won't see a lot imports sort in new PRs.
ruff version sounds better.
A quick question, what do you mean with original isort need a new dev dependency? Do you mean we need to add isort into the dev virtual env? Wouldn't ruff version also install isort?
Thanks.

In this note, can we enable/install his bot - https://github.com/marketplace/pre-commit-ci - so contributions like this will only update the configuration and the bot will perform the changes so it is clear what are the automated changes and what is additional enhancement...


Show packages that can not be updated due to a conflict

The update transaction returned by updater.Prepare() already contains a list of items with conflicts but we don't use them yet.
How to display these items: TBD

Hey @kosmoz Can you tell me which package or file does i have to make this  change,  does this one is  correct pkg/update/update.go

Hi @RohanMishra315!
Most Glasskube tasks can be performed both via the web UI and the CLI. This is achieved by implementing those tasks in a generic way that can be called from either frontend. For this particular issue, the change is already implemented in the action itself (pkg/update/update.go), but the frontends do not use this feature yet.
You would probably have to change cmd/glasskube/cmd/update.go (the CLI update command), internal/web/server.go (where the web UI is defined) and some relevant template files for the web UI.
Are you interested in giving it a shot?

 If not then I can pick up.

Here I can see that we are already receiving the error due to conflicts:
https://github.com/glasskube/glasskube/blob/ce3037bac4b44761f344076def0c5e853bed9eeb/pkg/update/update.go#L155-L157
But not sure how does this looks like in CLI (if you have some steps to reproduce on receiving error in conflicts through CLI)
Also for the UI:
I need to add something over here to detect the conflict error, I wonder what exactly
https://github.com/glasskube/glasskube/blob/ce3037bac4b44761f344076def0c5e853bed9eeb/internal/web/server.go#L195

Hi @hanshal101, sorry for the late reply! Feel free to start working on this issue, if you're interested. Just let me know and I'll assign you.
You're right, the UpdateTransaction already contains the relevant items. For the UI, it's probably enough to pass the ConflictItems to the template and handle them there. You can try to come up with how it could look if you want, or we can think of something and provide a mock up.
For the CLI, I think it would be enough to print like this:

Some packages can not be updated due to conflicts: package-a, package-b
You can try to resolve the conflicts by updating them individually.

As for an example, or steps to reproduce, we don't currently have conflicting packages in our repository, which makes this whole task kind of theoretical :sweat_smile: But you can use a local repository and create a conflicting package there. If you need help with setting up a local repository, @Baalekshan might be able to help you.

Will try to solve this

@hanshal101 I will unassign this issue again, as it has been interactive for a long time.

@kosmoz  could I work on this issue?

Sure, go ahead. As you can see from the issues comment history, it is somewhat difficult to implement so let us know if you need anything

Sure, go ahead. As you can see from the issues comment history, it is somewhat difficult to implement so let us know if you need anything

any suggestion on how i can create a conflict between packages

Thanks a lot will see that


(de)adjustForRotation returning incorrect results

The method is written for clockwise rotations, but is being passed counter-clockwise rotation values.

Issue fixed in version 1.42


Protecting Storage system credentials from the K8S/OpenShift admin

Usecase:
Service  provider Managed OpenShift/K8S.
Service provider creates an account for openshift env.
Customer has cluster rights for the openshift/k8s cluster
Service Provider would not like the user to see SF credentials as that gices access to other accounts
possible solution:

encrypt credentials in db (i am not sure if this is good enough though) where will be the encryption key?
SF provides api user accounts which are limited to a tenant. this of course is not in pour hands

What do you think, any other ideas?

How are credentials stored exactly? secrets?

My customer is also very interested to have this option.

@jason43017 This feature is on the roadmap, but I should note that with the default install method where etcd is deployed as part of the Trident pod, only the Trident container can access etcd as the etcd container is locked down to the Trident pod. We also recommend installing Trident in its own namespace (tridentctl install -n trident) to ensure that the Trident pod is isolated from the rest of the Kubernetes cluster and nobody can kubectl exec into the etcd container and retrieve the Trident state.

As of Trident 20.07 the storage backend credentials are stored in Kubernetes secrets. As of Trident 21.04 a TridentBackendConfig CR can be created where a Kubernetes secret that contains the backend credential is specified. Closing this issue as the original concerns are resolved.


Swap Near to ETH on Aurora Network failed

Swap failed: [ethjs-query] while formatting outputs from RPC '{"value":{"code":-32603,"data":{"code":-32603,"message":"Internal Error - Exceeded the maximum amount of gas allowed to burn per contract.. Please report a bug at https://github.com/aurora-is-near/aurora-relayer/issues","data":{"host":"endpoint:8545","cf-ray":"6a76c6af52c4c70c-SGN"}}}}'
Swap on wallet address: 0x226FB96715aB87FA883Ba8Fc0d1C54A34E4C0Ed7

Duplicate issue https://github.com/aurora-is-near/aurora-relayer/issues/60


Move build.py to the root of the repo

build.py isn't really specific to uefi-test-runner; it has commands for
generating docs, running clippy, and running tests. Move it to the root
of the repo to reflect its broader role.
Updated various docs that reference build.py.

Tested the changes and it works well, thanks a lot!


owl-carusel not handling having the slug set

Hi.
On my page I specifically set the slug of posts to be prefixed by post dates, because that makes content easier to keep track of over time.
The Owl carousel unfortunately does not seem to handle the slug being set like that.
While the title, image and date seems to be correct in the carousel, the link to the post is not.
for instance, I forgot to set the slug as I would usually in my newest post, so the link to that works. But all other posts, where I have the date appended, it does not work.
https://drmowinckels.io/blog/2020-04-30-using-freesurfer-annotation-files-to-plot-in-r/

I'm afraid I don't see what you're describing. I don't see a difference between your newest post and the one you linked.
The carousel code in this theme is currently used on pages in the projects section. Do you mean something different, perhaps?

Maybe I'm misreading the code somewhere. I mean at the bottom of a post, before comments section, there is a carousel for other "related" posts. These do not correctly link to posts where slugs are set differently from default.

Hi.
After quite some digging, I found that this carousel comes from the diqsus comment section.
This is a new feature they have they call "Recommendations", and it does not handle url changes well. I had to make a csv mapping old and new urls after bundling my posts:
https://help.disqus.com/en/articles/1717068-migration-tools
The recommendations can also be turned off in the disqus admin panel.
So this has nothing to do with the theme, sorry about the confusion. I hope if someone encounters something similar they might find this comment and get it sorted.


Add id field to notebook YAML

Currently the notebook YAMLs do not have an id or notebook_identifier field. This makes it hard to reference a notebook as a related_asset from other assets, like datasets.
Related issues:

[ ] machine-learning-exchange/mlx#212

@JAulet

So for this issue I should go through the notebook YAMLs in this repository and add the id? @ckadner

Yes. For example, the CodeNet Language Classification notebook would get this id:
id: codenet-langclass


aws-env: migrate to buildGoModule

Description of changes

Migrating to buildGoModule so buildGoPackage can be deprecated as per #318069. Project needs an upstream patch to do so, as it does not have a vendor directory, nor is a module.
Also moved to by-name.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Are you an active user of aws-env? I notice that there's not been any maintenance done to upstream in a long while (which I guess your fetchpatch of your own PR also reveals)

Are you an active user of aws-env? I notice that there's not been any maintenance done to upstream in a long while (which I guess your fetchpatch of your own PR also reveals)

I'm not. Just migrated it for #318069

@msanft I'm going to vote removal, to be honest. Though I appreciate your work, and if anyone complains we can resurrect it. How does that sound to you? I can take care of the removal if need be. :)


Make WebTestCase abstract

PHPUnit includes files automatically which are non-abstract and tries to run tests. Thus, in our specific case we get an error on the WebTestCase file saying that "not tests are defined in WEbTestCase".
This commit should solve that issue.

First, this PR breaks all the unit tests. Did you run them before sending the PR?
Secondly, are you storing your vendor files somewhere that PHPUnit is including them and searching for tests? I'm a bit confused there.

No, I did an online edit, didn't realize all the tests were in place until after the merge request.
Well, I have all composer stuff stored in /vendor but my phpunit tests are also using auto loading. This causes the test base from here to be loaded as a test, as it extends php unit,  and then phpunit complains that there are no tests.
Feel free to discard my pull request.

I won't discard it yet. I'll try to replicate the problem you're having this week and see if I can sort out what's going on.
If you have a moment, can you clone the testing example and run the tests and let me know if you experience the same issue?


Update configuration process

@olefredrik and others, I have found it to be a pain that entering in the proxy URL for browsersync shows up in git as changes, so I have to remember to remove it whenever I make changes to the gulpfile to push upstream. I noticed you have had to undo some commits for the same reason in your PR's.
I propose the following:

Add config-default.yml file to the repo (just a duplicate of config.yml)
Add config.yml to .gitignore and remove it from tracking in repo
In the gulpfile, if config.yml exists, load the configuration from config.yml. If config.yml does not exist, load configuration from config-default.yml.
Move the browsersync proxy URL from the gulpfile to the config file.

This way users can create their own config.yml file by copying config-default.yml and have the theme configured differently for different environments and not deal with git headaches (like the proxy URL change showing up in git).
What do you guys think?

Good stuff, @colin-marshall ! Let's to this 👍


update README_CN.md

update README_CN.md to add External Loggers.
Fix #1466

@dabue merged, many thx


go panic during S3 backup

Output of restic version
restic 0.7.3 (v0.7.3-87-g3afd974d)
compiled with go1.9 on linux/amd64
How did you run restic exactly?
restic -r s3:s3.amazonaws.com/mybucket/home init
restic -r s3:s3.amazonaws.com/mybucket/home backup home/

What backend/server/service did you use?
S3
Expected behavior
Successful backup with no error or stack trace. It looks like restic caught the error based on "error while saving data to the repo", but then I'm not really sure how to interpret the panic and stack trace. Either restic should do more retries when encountering this error or if the retry limit has been reached at least exit more cleanly.

Actual behavior
Error with stack trace
$ restic -r s3:s3.amazonaws.com/mybucket/home init
enter password for new backend:
enter password again:
created restic backend f82b336ee6 at s3:s3.amazonaws.com/mybucket/home

Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.

$ restic -r s3:s3.amazonaws.com/mybucket/home backup home/
enter password for repository:
scan [/media/data/backup/home]
scanned 223870 directories, 2309793 files in 3:41
[1:15:27] 5.03%  57.200 MiB/s  252.874 GiB / 4.913 TiB  95872 / 2533663 items  0 errors  ETA 23:45:44
error while saving data to the repo: Put https://s3-us-west-2.amazonaws.com/mybucket/home/data/d3/d369f4e67aaad876b05537c16c66b5784437cc4fbbdcdcd42ebbc345ea384baf: net/http: HTTP/1.x transport connection broken: write tcp <IP_ADDRESS>:45742-><IP_ADDRESS>:443: write: connection reset by peer
client.PutObject
github.com/restic/restic/internal/backend/s3.(*Backend).Save
	src/github.com/restic/restic/internal/backend/s3/s3.go:283
github.com/restic/restic/internal/cache.(*Backend).Save
	src/github.com/restic/restic/internal/cache/backend.go:69
github.com/restic/restic/internal/repository.(*Repository).savePacker
	src/github.com/restic/restic/internal/repository/packer_manager.go:107
github.com/restic/restic/internal/repository.(*Repository).SaveAndEncrypt
	src/github.com/restic/restic/internal/repository/repository.go:250
github.com/restic/restic/internal/repository.(*Repository).SaveBlob
	src/github.com/restic/restic/internal/repository/repository.go:637
github.com/restic/restic/internal/archiver.(*Archiver).Save
	src/github.com/restic/restic/internal/archiver/archiver.go:104
github.com/restic/restic/internal/archiver.(*Archiver).saveChunk
	src/github.com/restic/restic/internal/archiver/archiver.go:161
runtime.goexit
	/usr/local/Cellar/go/1.9/libexec/src/runtime/asm_amd64.s:2337
panic: client.PutObject: Put https://s3-us-west-2.amazonaws.com/mybucket/home/data/d3/d369f4e67aaad876b05537c16c66b5784437cc4fbbdcdcd42ebbc345ea384baf: net/http: HTTP/1.x transport connection broken: write tcp <IP_ADDRESS>:45742-><IP_ADDRESS>:443: write: connection reset by peer

goroutine 322890 [running]:
github.com/restic/restic/internal/archiver.(*Archiver).saveChunk(0xc420562320, 0xe273a0, 0xc4200120a0, 0xc30911fd, 0x359d23, 0x1397335b00000, 0xc46ddf4000, 0x359d23, 0x928000, 0xc420090370, ...)
	src/github.com/restic/restic/internal/archiver/archiver.go:166 +0x41b
created by github.com/restic/restic/internal/archiver.(*Archiver).SaveFile
	src/github.com/restic/restic/internal/archiver/archiver.go:240 +0x3d0

Steps to reproduce the behavior
Since it looks like this was caused by some transient network error it'll be hard to reproduce.

Do you have any idea what may have caused this?
Not really. Looks like an unhandled network error but beyond that I'm not sure.
Do you have an idea how to solve the issue?
No

Same problem, some kind of transient network issue causes the client to panic:
error while saving data to the repo: Post xxx: dial tcp: lookup xxx.s3-eu-wes
t-1.amazonaws.com: no such host
client.PutObject
github.com/restic/restic/internal/backend/s3.(*Backend).Save
        src/github.com/restic/restic/internal/backend/s3/s3.go:228
github.com/restic/restic/internal/repository.(*Repository).savePacker
        src/github.com/restic/restic/internal/repository/packer_manager.go:122
github.com/restic/restic/internal/repository.(*Repository).SaveAndEncrypt
        src/github.com/restic/restic/internal/repository/repository.go:203
github.com/restic/restic/internal/repository.(*Repository).SaveBlob
        src/github.com/restic/restic/internal/repository/repository.go:529
github.com/restic/restic/internal/archiver.(*Archiver).Save
        src/github.com/restic/restic/internal/archiver/archiver.go:104
github.com/restic/restic/internal/archiver.(*Archiver).saveChunk
        src/github.com/restic/restic/internal/archiver/archiver.go:161
runtime.goexit
        /usr/local/go/src/runtime/asm_amd64.s:2337
panic: client.PutObject: Post https://xxx.s3-eu-west-1.amazonaws.com/xxx: dial tcp: lookup xxx.s3-eu-west-1.amazonaw
s.com: no such host

goroutine 255985 [running]:
github.com/restic/restic/internal/archiver.(*Archiver).saveChunk(0xc0421fa4b0, 0xdb82c0, 0xc042010128, 0x535d21, 0x22951
7, 0x1b60968fd00000, 0xc1213b6000, 0x229517, 0x266000, 0xc042228420, ...)
        src/github.com/restic/restic/internal/archiver/archiver.go:166 +0x422
created by github.com/restic/restic/internal/archiver.(*Archiver).SaveFile
        src/github.com/restic/restic/internal/archiver/archiver.go:240 +0x3d7

Would expect it to re-try with exponential backoff rather than just panicing

This is making is basically impossible for me to complete my initial backup since every time it fails it takes hours to scan everything again before actually continuing with the upload and then it fails with something like:
error while saving data to the repo: Post https://xxx.s3-eu-west-1.amazonaws.com/xxx: http: server closed idle connection
client.PutObject
github.com/restic/restic/internal/backend/s3.(*Backend).Save
src/github.com/restic/restic/internal/backend/s3/s3.go:228
github.com/restic/restic/internal/repository.(*Repository).savePacker
src/github.com/restic/restic/internal/repository/packer_manager.go:122
github.com/restic/restic/internal/repository.(*Repository).SaveAndEncrypt
src/github.com/restic/restic/internal/repository/repository.go:203
github.com/restic/restic/internal/repository.(*Repository).SaveBlob
src/github.com/restic/restic/internal/repository/repository.go:529
github.com/restic/restic/internal/archiver.(*Archiver).Save
src/github.com/restic/restic/internal/archiver/archiver.go:104
github.com/restic/restic/internal/archiver.(*Archiver).saveChunk
src/github.com/restic/restic/internal/archiver/archiver.go:161
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:2337
panic: client.PutObject: Post https://xxx.s3-eu-west-1.amazonaws.com/xxx: http: server closed idle connection
goroutine 253251 [running]:
github.com/restic/restic/internal/archiver.(*Archiver).saveChunk(0xc042144460, 0xdb82c0, 0xc042010150, 0x8fb26f, 0x2780f
3, 0xc18d8f1200000, 0xc049b6c000, 0x2780f3, 0x3c0000, 0xc0423524d0, ...)
src/github.com/restic/restic/internal/archiver/archiver.go:166 +0x422
created by github.com/restic/restic/internal/archiver.(*Archiver).SaveFile
src/github.com/restic/restic/internal/archiver/archiver.go:240 +0x3d7

Thanks for taking the time to report this issue. It's a common problem with AWS S3, and the library we're using for accessing S3 will retry a few times before giving up. You can try to use -o s3.retries=5 or even higher to set the number of retries.
I also agree that restic should return a meaningful error message and not just dump a stack trace.

restic errored out in the same fashion on a subsequent backup last night. I'm trying again with a higher retry setting. I understand that different retry limits make sense for different cases and it's hard to find the right number that satisfies all cases, so I'm not suggesting that the default retry limit should be increased. But since this will probably be a fairly common error it might be nice to include the suggestion to increase the retry limit with -o s3.retries=n in the error message itself (minus stack trace). And a note on why this error occurs and how to increase the retry limit for various network backends would be helpful somewhere in the docs.

FYI, you can also try to lower the number of parallel connections to the server via -o s3.connections=2 (default is 5).

Thanks. I've tried -o s3.retries=1000 but it still fails with a panic. Not sure how high this should be but 1000 seems very high already. At the moment it literally fails pretty much as soon as it gets to the point where it failed last time. So it spends about 2hrs reading the files it's already uploaded then literally as soon as it gets to the point where it failed last time it panics.

My initial backup succeeded using -o s3.retries=10. I didn't change s3.connections. Now I'm rebuilding the index and pruning to clean up the incomplete attempts. Thanks for pointing me to the retry option.

I'm also seeing this issue with 0.7.1 every few nights. I'll give -o s3.retries=10 a shot.

In the meantime I've added code in the master branch that retries saving data in the backend on a higher level, maybe give that a try?

Tried 0.7.3 which resulted in a out-of-memory condition somewhere in the minio code. Afterwards I deployed v0.7.3-180-g7507a658 which seems to work fine.

Thanks for the feedback!

v0.7.3-195-g8d37b723 (current master) finally makes s3 backend usable again. 💯 ❤

Thanks. The master branch with -o s3.retries=<large N> and --limit-upload N did the trick for me on a relatively unstable, volatile and poorly managed network provider.

@fd0 indeed the 0.7.3 release seems to leak like a sieve, causing crashes of the backup processes. Thanks @Phaeilo, I'll be trying master after v0.7.3-180-g7507a658.

I'm going to close this issue, it is resolved in master. A new release is not far away, in the meantime people can find beta releases here: https://beta.restic.net/?sort=time&order=desc


Cannot use EAP snapshots in 2.0.0-beta5

What happened?
Timeline for context

My plugin failed compatibility verification for IntelliJ build 242.10180.25
I got very confused, but eventually figured out that I need to migrate from "Gradle IntelliJ Plugin 1.14.1" to the "IntelliJ Platform Gradle Plugin".
I started the migration with 2.0.0-beta4 and then switched to 2.0.0-beta5.
Eventually I managed to build my plugin against IntelliJ IDEA Community 2024.1.2.

Problem
I'm trying to ensure that my plugin will be compatible with IntelliJ 2024.2 (which hasn't been released yet), but using EAP builds with the new plugin (2.0.0-beta5) fails.
Relevant log output or stack trace
* What went wrong:
Could not determine the dependencies of task ':buildSearchableOptions'.
> Failed to query the value of task ':buildSearchableOptions' property 'runtimeDirectory'.
   > No IntelliJ Platform dependency found.
     Please ensure there is a single IntelliJ Platform dependency defined in your project and that the necessary repositories, where it can be located, are added.
     See: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html

Steps to reproduce

Specify 242.12881.66-EAP-SNAPSHOT (built on 2024-05-29 06:22:58 UTC, see snapshot repository), as a platform dependency in the Gradle build script:
repositories {
	mavenCentral()
	intellijPlatform {
		defaultRepositories()
	}
}
dependencies {
	intellijPlatform {
		create("IC", "242.12881.66-EAP-SNAPSHOT")
		...
	}
}

Run ./gradlew --refresh-dependencies clean buildPlugin

Gradle IntelliJ Plugin version
2.0.0-beta5
Gradle version
8.7
Operating System
Linux
Link to build, i.e. failing GitHub Action job
No response

FWIW, you can check my PRs https://github.com/VirtusLab/git-machete-intellij-plugin/pull/1846, https://github.com/VirtusLab/git-machete-intellij-plugin/pull/1859. Still, I haven't got verifyPlugin to work as it did in 1.x yet (https://github.com/JetBrains/intellij-platform-gradle-plugin/issues/1637).

Thank you! Adding the property to the command:
$ ./gradlew -Porg.jetbrains.intellij.platform.buildFeature.useBinaryReleases=false buildPlugin

fixes the build for me!

You need to add a dependency on JCEF explicitly.
dependencies {
  intellijPlatform {
    ...
    jetbrainsRuntime()
  }
}

Thank you @hsz for the answer. After adding it also to the repository, it now works for me as expected. With the keyword from your answer I also found the matching docs page.
I'm still a little surprised I need to specify JBR manually instead of using it manually, as I wouldn't know which other runtime I would use as a plugin developer when running a plugin.

Apparently the useBinaryReleases doesn't work anymore with 2.0.0-beta9. Still, EAP releases don't work with the plugin, see the following comment for a workaround:
https://github.com/JetBrains/intellij-platform-gradle-plugin/issues/1693#issuecomment-2225786901

EAP releases don't work with the plugin, see the following comment for a workaround

Nitpicking: EAP releases work but are officially no longer a primary source of IntelliJ Platform.
To switch from installers to IJ Maven repository, you need to:
dependencies {
  intellijPlatform {
    intellijIdeaCommunity("242-EAP-SNAPSHOT", useInstaller = false)
  }
}

This is not a workaround. ;-)
Note that installers contain JBR bundled. When switching off, you have to provide JBR to IntelliJ Platform to make it working properly. To do so, use the above jetbrainsRuntime() dependency helper along with required repository:
repositories {
  intellijPlatform {
    defaultRepositories()
    jetbrainsRuntime()
  }
}

dependencies {
  intellijPlatform {
    intellijIdeaCommunity("242-EAP-SNAPSHOT", useInstaller = false)
    jetbrainsRuntime()
  }
}

EAP releases work but are officially no longer a primary source of IntelliJ Platform.

3rd party plugin developers like me are supposed to test our plugins against EAP to have plugin releases available once they are officially released.
This distinction and extra configuration makes it more difficult for me (and I suppose other as well), so it leaves me in an annoyed state as it is diverting my efforts to accidental complexity and technical details.
cc: @YannCebron

For a long time, I've heard that the old dependencies and repositories management is broken.
1.x was adding custom repositories and dependencies on various libraries, JBR, etc without your knowledge, which was hard to maintain in terms of proxifying artifacts, offline work, security, defining repositories in settings instead of project-level configuration, etc. I've fixed that. "Unfortunately", now you have control over that and to get things working, you apply defaultRepositories() or a single IntelliJ Platform dependency and get this working.
If you plan to use non-default EAP releases, it's good if you understand what you're doing.
I've elevated everything to make you change one switch and a missing JBR which is an effect of using IntelliJ Platform artifacts that don't have it bundled.

it leaves me in an annoyed state as it is diverting my efforts to accidental complexity and technical details

I'm sorry, but comparing this against closing 95 issues so far, where most of them were not even remotely possible to address in 1.x is a fair deal.
I don't think the above snippet, which makes it possible to work with EAP (EAP is not GA!), is complex, and for sure not accidental.

@hsz - thank you for the work you are putting into this plugin, and thank you for making EAP work. I hope this will find its way into he docs.
Let's agree that we then disagree about the "accidental complexity" bit.
It also seems that I'm missing how 3rd party developers should test EAP releases given your statement below:

If you plan to use non-default EAP releases, it's good if you understand what you're doing.

Can you please elaborate how and if you expect 3rd plugin developers to test EAP releases?

I may be wrong, but we can easily test with EAP Snapshots. It requires some custom code, but you can find the version string from https://www.jetbrains.com/updates/updates.xml.
I did this with plugin v1, and now with v2 as I'm not a big fan of how versions are managed in v2 (things are less easy, and they require boilerplate code). My custom code: https://github.com/JetBrains/intellij-platform-gradle-plugin/issues/1628#issuecomment-2349436009


User Plans Won't Downgrade if Legacy

The ancient, legacy customers don't seem to downgrade to the free accounts correctly.

Sorted backend


Documentation page is not working

Hey, great work on LangCorn. The documentation page seems not working. refer to this page to resolve it.  https://vercel.com/docs/error/application/FUNCTION_INVOCATION_TIMEOUT

Hi @inagib21! Thx for reporting the issue. It seems to be related vercel deployment.

Same here. I just started using this and want to pull in some of the features Im seeing on YouTube but I need some clear documentation on this.

Fixed: https://langcorn.vercel.app/docs. There was an issue with chromadb installation in ex8.

thank you!


use case

Hi,
you ask for a proper use case for your wonderful alias function. I think it will be extremely useful to clarify code by allowing more readable assignment into deeply nested data structures that need to remain consistent. I frequently change e.g. the metadata of a deeply neseted object (e.g. sitting 3 or more levels deep in the main object).  All too often I create a temporary copy of the relevant bits for brevity, then modify that but forget to reassign it back into the main state properly. It may be syntactic sugar but if it helps clarify code I think it's very valuable to have (cf. all the tidyverse stuff, that is also syntactic sugar to a large degree).
Is it safe to assume that aka::alias will  work in all R versions simply because it is syntactic sugar for makeActiveBinding, which has been/will always be present in R ?

Thanks for the description of your use-case!

Is it safe to assume that aka::alias will work in all R versions simply because it is syntactic sugar for makeActiveBinding, which has been/will always be present in R ?

aka::alias() and the %&= operator should work on pretty much all versions of R, yes. However, the utility functions alias_env() and alias_expr() depend on activeBindingFunction(), which was only added in R 4.0.0 (if really required I could add a backport).
So, in sum: the core functionality should work everywhere; the debugging utilities only work from R 4.0 onwards. Conversely, everything should work on all future versions of R.


Add better logging for modules installed/not installed

@DonJayamanne commented on Mon Apr 12 2021
When installing ipykernel we've found that plenty of users do not install ipykernel.
I believe this is because pip/conda doesn't exist on the user machines.
Suggestion is to add better logging to track this (part of the Jupyter extension OKR to improve kernel startup).
Requirements:

When a package is not installed log why it was not installed, today we don't know whether its because pip is missing or installation actually failed.

Upstream issue with better logging/telemetry https://github.com/microsoft/vscode-python/issues/15933

Literally just ran into this in Codespaces. Tried to open an interactive window, Jupyter extension prompted me to install ipykernel, install failed because I needed to run these commands first:
sudo apt-get update
sudo apt install python3-pip

@joyceerhl this might help https://github.com/microsoft/vscode-python/issues/15937

Changes have been added to Python extension

Validated. I can see the new message on #6194.


If a service goes down, please put it on the top of the list

⚠ Please verify that this feature request has NOT been suggested before.

[X] I checked and didn't find similar feature request

🏷 Feature Request Type
UI Feature
🔖 Feature description
If a monitor named "Test1" goes down, it should appear at the top of the list.
✔ Solution
Dashboard can be better this way, Grafana has this feature.
❓ Alternatives
No response
📝 Additional Context
No response

Hi @louislam @rauniyarankit , raised a PR to handle this, please take a look? TIA!


Adding keyword-based method families to the s3_single dataframe

I tried to add the keyword search method families from the step 1 table to the s3_single dataframe (find the code through the link below). I'm unsure with which variable from the step 1 table I can match the s3_single$paperID. I thought is would be data.final$TSU.ID_MERGED but that variable apparently runs from 2 to 79041 while the paperID runs from 1 to 77470.
What is the best way to combine step 1 and 3 table?
https://github.com/RCinbo/IPBESValueAssessment/blob/19d10894623e463a01e6858bee15e2a2e5eeef51/Starting.R#L127-L135

Oh that's right.. now I remember that TSU wanted it to start with '2' so it can match with the row number in Excel (the first row is the head). And this ID has been the ID that we communicated with TSU and students (I believe?). When I sampled the papers from the Step 1 table, I gave the TSU.ID to TSU to collect the corresponding papers and I believe these have been delivered to students?

I am not sure then why s3_single doesn't match..

It turned out that these are the testing papers and others seem to match with the Step 1 table. We decided to exclude those testing papers from the Step 2 and Step 3 tables.


Fix for testcase testGenerateParamString

The critical update "Predictable Iteration Order for Apex Unordered Collections" breaks the testcase "testGenerateParamString". This is a small fix. Others might be affected too, wasn't able to check them yet.

Thanks!


Bluetooth: Host: Fix gatt notify multi

This implements multiple Handle Value Notification (HVN) in one ATT_MULTIPLE_HANDLE_VALUE_NTF PDU. Core Spec 5 .3 | Vol 3, Part F, <IP_ADDRESS> section describes as this new PDU allows the GATT server to send the values of two or more attributes in a single PDU in the list of tuples of (handle, len, value). However, the Zephyr host currently supports multi HVN but it does not utilize the new ATT PDU of ATT_MULTIPLE_HANDLE_VALUE_NTF=0x23 fully. It is sending only one HVN per PDU, and it is no different from the existing regular single HVN with ATT_HANDLE_VALUE_NTF=0x1B.
Fixes https://github.com/zephyrproject-rtos/zephyr/issues/40664

@Thalley: I tested with calling bt_gatt_notify_multiple() with 2 notify_params with data { 0x32 } and { 0x01, 0x78, 0x00, 0x50, 0x00, 0x68, 0x00} separately. Attached the snapshot of nrf sniffer log with the original zephyr host before this PR change. Open the pcap log file in Wireshark and apply "btatt" filter, then obtain the 2 ATT_MULTIPLE_HANDLE_VALUE_NTF PDU pdus (opcode=0x23). The first PDU is with data 0x32 and the 2nd PDU is with data 0x01, 0x78, 0x00, 0x50, 0x00, 0x68, 0x00. Therefore, the log validates the issue exist, i.e., Zephyr host sends one HVN per PDU, rather than only one PDU with a list of tuples.

Thanks @laxiLang
I want to take a bit closer look into this and try to reproduce it as well, as I am not convinced this PR is the right solution just yet :) My theory is that the workqueue may be running at a higher priority than the caller of bt_gatt_notify_multiple, which wouldn't work, but perhaps there's a simpler solution to the existing implementation.
I won't block this PR though, and if it gets approved and merged (and it works of course) that is also fine, but I think we may have some additional cleanup from the current solution (e.g. this approach doesn't seem to need the workqueue item).

Hi @laxiLang I have confirmed the issue (used https://github.com/zephyrproject-rtos/zephyr/pull/45676 to test).
I assume that the issue with the current implementation is that the workqueue is running at a higher priority than the application thread, thus when calling bt_gatt_notify_multiple the individual notifications are handled before the next is added to the notify multiple.
The current implementation also has the issue that it will attempt to use multiple notifications, regardless of whether bt_gatt_notify_multiple or bt_gatt_notifyis called, which I guess is a bit unwanted since that adds an additional 2 octest for thelen` field.
On the other side, the intention with the current implementation is that the API would automatically send multiple notifications in a single ATT command, which could be nice.
The last issue that the current implement has, is that since it uses the workqueue thread, the ordering of events may be different. e.g. an application may wish to do

Incoming write request
Update value
Send notification
Send write response

But if 3. is offloaded to the workqueue thread, the notification may be sent after the write response. Some services or qualification tests may require the notification to be sent before the write response.
Given the above, I'll take a proper look at your suggested fix and add some feedback.

@laxiLang Given that the current implementation is buggy, and is something we've had in Zephyr for a long time... ( :disappointed: ): Could I bother you to also add a GATT babblesim test case for this?

@laxiLang Given that the current implementation is buggy, and is something we've had in Zephyr for a long time... ( 😞 ): Could I bother you to also add a GATT babblesim test case for this?

Yes, @hermabe has already done such babblesim test in his branch? If yes, it is almost no extra cost to add this test:)

@laxiLang Given that the current implementation is buggy, and is something we've had in Zephyr for a long time... ( 😞 ): >>Could I bother you to also add a GATT babblesim test case for this?

Yes, @hermabe has already done such babblesim test in his branch? If yes, it is almost no extra cost to add this test:)

I did some quick test here: https://github.com/hermabe/zephyr/commit/6cf407060a718f44ebd0d3e92dc92cf7a24c486d, to when I saw Emils question about the PDU above. It is mostly copy-paste from existing bsim tests.

The easiest/best is probably to add another test case to the existing notification test to not duplicate everything.

@laxiLang Will you recreate this PR, or did you accidentally close it?

Accidentally close it, and new PR here
https://github.com/zephyrproject-rtos/zephyr/pull/46118
From: Emil Gydesen @.>
Sent: mandag 30. mai 2022 19.20
To: zephyrproject-rtos/zephyr @.>
Cc: Xie, Lang @.>; Mention @.>
Subject: Re: [zephyrproject-rtos/zephyr] Bluetooth: Host: Fix gatt notify multi (PR #45530)
@laxiLanghttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FlaxiLang&data=05|01|lang.xie%40nordicsemi.no|7b3ef369660b44172e1108da42609c84|28e5afa2bf6f419a8cf6b31c6e9e5e8d|0|0|637895279969410399|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=gj9pOYCwLZB44OSuPnEokcrnhp3j9TcplcV%2B1wdSXE4%3D&reserved=0 Will you recreate this PR, or did you accidentally close it?

Reply to this email directly, view it on GitHubhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fpull%2F45530%23issuecomment-1141362805&data=05|01|lang.xie%40nordicsemi.no|7b3ef369660b44172e1108da42609c84|28e5afa2bf6f419a8cf6b31c6e9e5e8d|0|0|637895279969410399|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=Dy9ySZco0Zgow7oPmBq%2Bq9cXapqJM89HbXOqoxEBwJ4%3D&reserved=0, or unsubscribehttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABMFNM7MPL3TZBPTK2ZMN6DVMT2DRANCNFSM5VSZ3KTQ&data=05|01|lang.xie%40nordicsemi.no|7b3ef369660b44172e1108da42609c84|28e5afa2bf6f419a8cf6b31c6e9e5e8d|0|0|637895279969410399|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=EtHU5D7B3c9b4yGuS8KTU0EBSlSgnoWgiXqD3DgQHI0%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>


Augto Bogus is slow on Blazor WASM

I noticed that AutoBogus is INCREDIBLY slow on blazor WASM. I tested this code         var mock= new AutoFaker().Generate(10); using blazor server side, web api, xunit etc and blazor wasm is incredibly slow.

Due to the performance issues and missing types etc I've decided to build an updated version of AutoBogus: soenneker.utils.autobogus
I've improved the performance significantly already, give it a try. More to come, it needs a lot of work....

This works so much faster, thanks a lot @soenneker


Added an option to pathshorten

I'm trying to reproduce airline's tabline with lightline+bufferline.

thanks


Migrate basic aer provider to v2 interface

Summary
This commit migrates the basic aer provider to the v2 interface. This
was originally included in #5086 but had to be removed because of a
potential backwards compatibility issue with aqua when using basic aer
as the provider (aqua 0.7.x explicity checks for v1 interface backends).
Details and comments

This depends on #5086 and will fail CI on the tutorials job until Qiskit/qiskit-aqua#1270 merges and is released. This means this is blocked until after 0.16 is released. I will rebase it after #5086 merges to reduce the diff.

This is going to be blocked until the next aqua release. The quantum instance in aqua is accessing private attributes which is broken by the changes I make here. So we need to update the quantum instance in aqua to unblock the tutorials job (in addition to fixing the code migrated from aqua which also has this bug and is blocking this too)


incorrect likelihoods?

Currently I calculate likelihoods by doing the following: https://github.com/DoYouEvenStackSmash/data-analysis/blob/46f693d4a7285ac821de4811ef62997a6613d118/src/python-processing/likelihood_scratch.py#L6

The paper suggests another which... is a little harder to reason about considering we don't have any kind of temporal ordering in the data as far as I know

Maybe we're supposed to do some numerical technique overall for the posterior integration, it seems the likelihood is incorrect.
What to do?

Hopefully fixed. Calculated noise as standard deviation. Remaining issue with big numbers, problem for another day.


ResNet produces error with dilation on, does not reach claimed accuracy when dilation off.

When I load using model = gcv.models.resnet50(pretrained=True) and test forwarding, error RuntimeError: size mismatch, m1: [1 x 991232], m2: [2048 x 1000] raises. I think there should be something wrong with stride / downsampling.
# gluoncv-torch resolution
torch.Size([1, 64, 56, 56])
torch.Size([1, 2048, 28, 28])
torch.Size([1, 2048, 22, 22])
torch.Size([1, 991232])

# Pytorch vision resolution
torch.Size([1, 64, 56, 56])
torch.Size([1, 2048, 7, 7])
torch.Size([1, 2048, 1, 1])
torch.Size([1, 2048])

After  a quick look into the code, I thought the cause might be the dilation. So I turned off the dilation using model = gcv.models.resnet50(pretrained=True, dilated=False).  The main difference is the data pipeline. They use opencv for load and preprocess images.

I think they did same processing for validation. In pytorch, the transform is
 normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406],  std=[0.229, 0.224, 0.225])

datasets.ImageFolder(valdir, transforms.Compose([
    transforms.Resize(256),
    transforms.CenterCrop(224),
    transforms.ToTensor(),
    normalize,
])

normalize = transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
crop_ratio = opt.crop_ratio if opt.crop_ratio > 0 else 0.875
resize = int(math.ceil(input_size / crop_ratio))
transform_test = transforms.Compose([
    transforms.Resize(resize, keep_ratio=True),
    transforms.CenterCrop(input_size),
    transforms.ToTensor(),
    normalize
])

when loading the same image and resizing it using bilinear mode, PIL and opencv won't give the same output.


switched messages to comments

based on the new design, messages/chat has been changed to comments

Closing this PR due to the frontend restructure, I've implemented
Kindly pull from upstream, implement your features and open again


Unable to convert any svg to react component

I tried to use the package within the project & also via CLI, it fails in both cases. I was trying to convert a simple SVG optimised using the online SVGO site. I ran:
<path>/svg2react cloud.svg to get the following:
ERROR ERROR ERROR cloud.svg ReferenceError: Unknown plugin "syntax-jsx" specified in "base" at 0, attempted to resolve relative to "/Users/jikkujose/Desktop"
    at /usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/node_modules/babel-core/lib/transformation/file/options/option-manager.js:179:17
    at Array.map (native)
    at Function.normalisePlugins (/usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/node_modules/babel-core/lib/transformation/file/options/option-manager.js:155:20)
    at OptionManager.mergeOptions (/usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/node_modules/babel-core/lib/transformation/file/options/option-manager.js:277:36)
    at OptionManager.init (/usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/node_modules/babel-core/lib/transformation/file/options/option-manager.js:465:10)
    at File.initOptions (/usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/node_modules/babel-core/lib/transformation/file/index.js:194:75)
    at new File (/usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/node_modules/babel-core/lib/transformation/file/index.js:123:22)
    at Pipeline.transform (/usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/node_modules/babel-core/lib/transformation/pipeline.js:45:16)
    at /usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/lib/loader.js:71:37
    at process._tickCallback (internal/process/next_tick.js:103:7)
ERROR ERROR ERROR cloud.svg ReferenceError: Unknown plugin "syntax-jsx" specified in "base" at 0, attempted to resolve relative to "/Users/jikkujose/Desktop"
    at /usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/node_modules/babel-core/lib/transformation/file/options/option-manager.js:179:17
    at Array.map (native)
    at Function.normalisePlugins (/usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/node_modules/babel-core/lib/transformation/file/options/option-manager.js:155:20)
    at OptionManager.mergeOptions (/usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/node_modules/babel-core/lib/transformation/file/options/option-manager.js:277:36)
    at OptionManager.init (/usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/node_modules/babel-core/lib/transformation/file/options/option-manager.js:465:10)
    at File.initOptions (/usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/node_modules/babel-core/lib/transformation/file/index.js:194:75)
    at new File (/usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/node_modules/babel-core/lib/transformation/file/index.js:123:22)
    at Pipeline.transform (/usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/node_modules/babel-core/lib/transformation/pipeline.js:45:16)
    at /usr/local/Cellar/node/5.11.0/lib/node_modules/react-svg-loader/lib/loader.js:71:37
    at process._tickCallback (internal/process/next_tick.js:103:7)

Looks like there is some problem with installation and the babel-plugin-syntax-jsx is somehow left out. I tried with a fresh install of the loader from npm and used it on your input file - cloud.svg and it works fine.

Just manually installed & tried it with the example. But again stuck in error, following was the result:
Hash: 86254af6453284f9b495
Version: webpack 2.1.0-beta.4
Time: 5364ms
    Asset    Size  Chunks             Chunk Names
bundle.js  689 kB       0  [emitted]  main
    + 159 hidden modules

ERROR in ./index.js
Module not found: Error: Can't resolve 'function (content) {

  this.cacheable && this.cacheable(true);
  this.addDependency(this.resourcePath);

  var query = _loaderUtils2.default.parseQuery(this.query);

  var cb = this.async();

  Promise.resolve(String(content)).then(optimize(query.svgo))
  // .then(r => (console.log(r), r))
  .then(transform({
    es5: query.es5
  })).then(function (result) {
    cb(null, result.code);
  }).catch(function (err) {
    cb(err);
  });
}?{"es5":false,"svgo":{"pretty":true}}' in '/Users/jikkujose/ReactJS/svg-loader/example'
 @ ./index.js 11:11-31

ERROR in ./index.js
Module not found: Error: Can't resolve 'function (content) {

  this.cacheable && this.cacheable(true);
  this.addDependency(this.resourcePath);

  var query = _loaderUtils2.default.parseQuery(this.query);

  var cb = this.async();

  Promise.resolve(String(content)).then(optimize(query.svgo))
  // .then(r => (console.log(r), r))
  .then(transform({
    es5: query.es5
  })).then(function (result) {
    cb(null, result.code);
  }).catch(function (err) {
    cb(err);
  });
}?{"es5":false,"svgo":{"pretty":true}}' in '/Users/jikkujose/ReactJS/svg-loader/example'
 @ ./index.js 15:13-35

ERROR in ./index.js
Module not found: Error: Can't resolve 'function (content) {

  this.cacheable && this.cacheable(true);
  this.addDependency(this.resourcePath);

  var query = _loaderUtils2.default.parseQuery(this.query);

  var cb = this.async();

  Promise.resolve(String(content)).then(optimize(query.svgo))
  // .then(r => (console.log(r), r))
  .then(transform({
    es5: query.es5
  })).then(function (result) {
    cb(null, result.code);
  }).catch(function (err) {
    cb(err);
  });
}?{"es5":false,"svgo":{"pretty":true}}' in '/Users/jikkujose/ReactJS/svg-loader/example'
 @ ./index.js 19:13-35

There is something wrong that you're doing here. Can you share your config that I can try it out ?, or some open sample project where this issue is replicated ?

Sure, please take a look at this: https://github.com/JikkuJose/svg-loader-example

The problem is with your webpack config. I suppose this is a bug upstream that it doesn't accept plain functions. But you need not require and provide a function as the loader argument. You can simply pass in the string, (as it is done for 'babel') and webpack will resolve it.

No need to require react-svg-loader - https://github.com/JikkuJose/svg-loader-example/blob/4dbd8f400156cdd8f370907a0a82d93bcf853a59/webpack.config.js#L1
Change to the commented string instead of the Fn name - https://github.com/JikkuJose/svg-loader-example/blob/4dbd8f400156cdd8f370907a0a82d93bcf853a59/webpack.config.js#L16

Oh cool, thanks! it worked!