tcmu-runner thread block

If the client formats the disk, it will  stuck after a period of time. Below are log information and core file analysis。
tcmu-runner version tcmu-runner-<IP_ADDRESS>
tcmu-runner.log
tcmu_rbd_handle_timedout_cmd:992 rbd/test.volume: Timing out cmd.
gcore tcmu-runner process
gdb /usr/bin/tcmu-runner ./core.24117
[New LWP 24118]
[New LWP 24119]
[New LWP 24122]
[New LWP 24123]
[New LWP 24124]
[New LWP 24125]
[New LWP 24130]
[New LWP 24131]
[New LWP 24132]
[New LWP 24133]
[New LWP 24134]
[New LWP 24135]
[New LWP 24136]
[New LWP 24137]
[New LWP 24138]
[New LWP 24139]
[New LWP 24140]
[New LWP 24141]
[New LWP 24142]
[New LWP 24143]
[New LWP 24144]
[New LWP 24146]
[New LWP 24117]
(gdb) info threads
Id   Target Id         Frame
23   Thread 0x7fd4f222a880 (LWP 24117) 0x00007fd4f07c4bed in poll () from /lib64/libc.so.6
22   Thread 0x7fd4a67fc700 (LWP 24146) 0x00007fd4f07c4bed in poll () from /lib64/libc.so.6
21   Thread 0x7fd4a77fe700 (LWP 24144) 0x00007fd4f07c4bed in poll () from /lib64/libc.so.6
20   Thread 0x7fd4a7fff700 (LWP 24143) 0x00007fd4f07c4caf in ppoll () from /lib64/libc.so.6
19   Thread 0x7fd4c4b8b700 (LWP 24142) 0x00007fd4f12eb9f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
18   Thread 0x7fd4c538c700 (LWP 24141) 0x00007fd4f12eb9f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
17   Thread 0x7fd4c5b8d700 (LWP 24140) 0x00007fd4f12ebda2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
16   Thread 0x7fd4c638e700 (LWP 24139) 0x00007fd4f12ebda2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
15   Thread 0x7fd4c6b8f700 (LWP 24138) 0x00007fd4f12eb9f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
14   Thread 0x7fd4c7390700 (LWP 24137) 0x00007fd4f12eb9f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
13   Thread 0x7fd4c8b8b700 (LWP 24136) 0x00007fd4f12ebda2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
12   Thread 0x7fd4c938c700 (LWP 24135) 0x00007fd4f12eb9f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
11   Thread 0x7fd4c9b8d700 (LWP 24134) 0x00007fd4f12ebda2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
10   Thread 0x7fd4ca38e700 (LWP 24133) 0x00007fd4f12eb9f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
9    Thread 0x7fd4cab8f700 (LWP 24132) 0x00007fd4f12eb9f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
8    Thread 0x7fd4cb390700 (LWP 24131) 0x00007fd4f12ebda2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
7    Thread 0x7fd4cbb91700 (LWP 24130) 0x00007fd4f12ebda2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
6    Thread 0x7fd4c7b91700 (LWP 24125) 0x00007fd4f07cfe63 in epoll_wait () from /lib64/libc.so.6
5    Thread 0x7fd4cc392700 (LWP 24124) 0x00007fd4f07cfe63 in epoll_wait () from /lib64/libc.so.6
4    Thread 0x7fd4ccb93700 (LWP 24123) 0x00007fd4f07cfe63 in epoll_wait () from /lib64/libc.so.6
3    Thread 0x7fd4cdb15700 (LWP 24122) 0x00007fd4f12eb9f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
2    Thread 0x7fd4edc44700 (LWP 24119) 0x00007fd4f12ee71d in read () from /lib64/libpthread.so.0

1    Thread 0x7fd4ee445700 (LWP 24118) 0x00007fd4f12eb9f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0

pstack trace
Thread 23 (Thread 0x7f1a4044c700 (LWP 3084529)):
#0  0x00007f1a432f29f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a43e1e412 in log_thread_start () from /lib64/libtcmu.so.2
#2  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 22 (Thread 0x7f1a3fc4b700 (LWP 3084530)):
#0  0x00007f1a432f571d in read () from /lib64/libpthread.so.0
#1  0x00007f1a43e1f62e in dyn_config_start () from /lib64/libtcmu.so.2
#2  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 21 (Thread 0x7f1a35d62700 (LWP 3084531)):
#0  0x00007f1a432f29f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a2760ee3d in ceph::logging::Log::entry() () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 20 (Thread 0x7f1a34de0700 (LWP 3084532)):
#0  0x00007f1a427d6e63 in epoll_wait () from /lib64/libc.so.6
#1  0x00007f1a279b5f49 in EpollDriver::event_wait(std::vector<FiredFileEvent, std::allocator >&, timeval*) () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a2776acf7 in EventCenter::process_events(unsigned int, std::chrono::duration<unsigned long, std::ratio<1l,<PHONE_NUMBER>l> >) () from /usr/lib64/ceph/libceph-common.so.0
#3  0x00007f1a2776e1ec in std::_Function_handler<void (), NetworkStack::add_thread(unsigned int)::{lambda()#1}>::_M_invoke(std::_Any_data const&) () from /usr/lib64/ceph/libceph-common.so.0
#4  0x00007f1a27a5f94f in execute_native_thread_routine () from /usr/lib64/ceph/libceph-common.so.0
#5  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#6  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 19 (Thread 0x7f1a1eb7d700 (LWP 3084533)):
#0  0x00007f1a427d6e63 in epoll_wait () from /lib64/libc.so.6
#1  0x00007f1a279b5f49 in EpollDriver::event_wait(std::vector<FiredFileEvent, std::allocator >&, timeval) () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a2776acf7 in EventCenter::process_events(unsigned int, std::chrono::duration<unsigned long, std::ratio<1l,<PHONE_NUMBER>l> >) () from /usr/lib64/ceph/libceph-common.so.0
#3  0x00007f1a2776e1ec in std::_Function_handler<void (), NetworkStack::add_thread(unsigned int)::{lambda()#1}>::_M_invoke(std::_Any_data const&) () from /usr/lib64/ceph/libceph-common.so.0
#4  0x00007f1a27a5f94f in execute_native_thread_routine () from /usr/lib64/ceph/libceph-common.so.0
#5  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#6  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 18 (Thread 0x7f1a1e37c700 (LWP 3084534)):
#0  0x00007f1a427d6e63 in epoll_wait () from /lib64/libc.so.6
#1  0x00007f1a279b5f49 in EpollDriver::event_wait(std::vector<FiredFileEvent, std::allocator >&, timeval) () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a2776acf7 in EventCenter::process_events(unsigned int, std::chrono::duration<unsigned long, std::ratio<1l,<PHONE_NUMBER>l> >) () from /usr/lib64/ceph/libceph-common.so.0
#3  0x00007f1a2776e1ec in std::_Function_handler<void (), NetworkStack::add_thread(unsigned int)::{lambda()#1}>::_M_invoke(std::_Any_data const&) () from /usr/lib64/ceph/libceph-common.so.0
#4  0x00007f1a27a5f94f in execute_native_thread_routine () from /usr/lib64/ceph/libceph-common.so.0
#5  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#6  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 17 (Thread 0x7f1a1db7b700 (LWP 3084539)):
#0  0x00007f1a432f2da2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a2782f190 in CephContextServiceThread::entry() () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 16 (Thread 0x7f1a1d37a700 (LWP 3084540)):
#0  0x00007f1a432f2da2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a3e1e299f in ceph::timer_detail::timerceph::time_detail::coarse_mono_clock::timer_thread() () from /lib64/librados.so.2
#2  0x00007f1a27a5f94f in execute_native_thread_routine () from /usr/lib64/ceph/libceph-common.so.0
#3  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 15 (Thread 0x7f1a1cb79700 (LWP 3084541)):
#0  0x00007f1a432f29f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a276a903c in DispatchQueue::entry() () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a2774753d in DispatchQueue::DispatchThread::entry() () from /usr/lib64/ceph/libceph-common.so.0
#3  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 14 (Thread 0x7f1a17fff700 (LWP 3084542)):
#0  0x00007f1a432f29f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a276ab120 in DispatchQueue::run_local_delivery() () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a2774764d in DispatchQueue::LocalDeliveryThread::entry() () from /usr/lib64/ceph/libceph-common.so.0
#3  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 13 (Thread 0x7f1a177fe700 (LWP 3084543)):
#0  0x00007f1a432f2da2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a275e9f05 in SafeTimer::timer_thread() () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a275eb12d in SafeTimerThread::entry() () from /usr/lib64/ceph/libceph-common.so.0
#3  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 12 (Thread 0x7f1a16ffd700 (LWP 3084544)):
#0  0x00007f1a432f29f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a275eb975 in Finisher::finisher_thread_entry() () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 11 (Thread 0x7f1a167fc700 (LWP 3084545)):
#0  0x00007f1a432f2da2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a275e9f05 in SafeTimer::timer_thread() () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a275eb12d in SafeTimerThread::entry() () from /usr/lib64/ceph/libceph-common.so.0
#3  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 10 (Thread 0x7f1a15ffb700 (LWP 3084546)):
#0  0x00007f1a432f29f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a275e9cc9 in SafeTimer::timer_thread() () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a275eb12d in SafeTimerThread::entry() () from /usr/lib64/ceph/libceph-common.so.0
#3  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 9 (Thread 0x7f1a157fa700 (LWP 3084547)):
#0  0x00007f1a432f29f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a275eb975 in Finisher::finisher_thread_entry() () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 8 (Thread 0x7f1a14ff9700 (LWP 3084548)):
#0  0x00007f1a432f2da2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a275f22b9 in ThreadPool::worker(ThreadPool::WorkThread) () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a275f3ba0 in ThreadPool::WorkThread::entry() () from /usr/lib64/ceph/libceph-common.so.0
#3  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 7 (Thread 0x7f19fffff700 (LWP 3084549)):
#0  0x00007f1a432f2da2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a275e9f05 in SafeTimer::timer_thread() () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a275eb12d in SafeTimerThread::entry() () from /usr/lib64/ceph/libceph-common.so.0
#3  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 6 (Thread 0x7f19ff7fe700 (LWP 3084550)):
#0  0x00007f1a432f29f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a275e9cc9 in SafeTimer::timer_thread() () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a275eb12d in SafeTimerThread::entry() () from /usr/lib64/ceph/libceph-common.so.0
#3  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 5 (Thread 0x7f19feffd700 (LWP 3084551)):
#0  0x00007f1a432f29f5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1a275eb975 in Finisher::finisher_thread_entry() () from /usr/lib64/ceph/libceph-common.so.0
#2  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 4 (Thread 0x7f19fe7fc700 (LWP 3084552)):
#0  0x00007f1a427cbcaf in ppoll () from /lib64/libc.so.6
#1  0x00000000004122ba in tcmur_cmdproc_thread ()
#2  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 3 (Thread 0x7f19fdffb700 (LWP 3084553)):
#0  0x00007f1a427cbbed in poll () from /lib64/libc.so.6
#1  0x00007f1a4354f37c in g_main_context_iterate.isra.19 () from /lib64/libglib-2.0.so.0
#2  0x00007f1a4354f4ac in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#3  0x00007f1a4354f4e9 in glib_worker_main () from /lib64/libglib-2.0.so.0
#4  0x00007f1a43576540 in g_thread_proxy () from /lib64/libglib-2.0.so.0
#5  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#6  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 2 (Thread 0x7f19fcff9700 (LWP 3084555)):
#0  0x00007f1a427cbbed in poll () from /lib64/libc.so.6
#1  0x00007f1a4354f37c in g_main_context_iterate.isra.19 () from /lib64/libglib-2.0.so.0
#2  0x00007f1a4354f6ca in g_main_loop_run () from /lib64/libglib-2.0.so.0
#3  0x00007f1a43b39c36 in gdbus_shared_thread_func () from /lib64/libgio-2.0.so.0
#4  0x00007f1a43576540 in g_thread_proxy () from /lib64/libglib-2.0.so.0
#5  0x00007f1a432eee65 in start_thread () from /lib64/libpthread.so.0
#6  0x00007f1a427d688d in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7f1a44231880 (LWP 3084528)):
#0  0x00007f1a427cbbed in poll () from /lib64/libc.so.6
#1  0x00007f1a4354f37c in g_main_context_iterate.isra.19 () from /lib64/libglib-2.0.so.0
#2  0x00007f1a4354f6ca in g_main_loop_run () from /lib64/libglib-2.0.so.0
#3  0x000000000041336d in main ()

hello, how to solve the problem, I have meet the same problem.

tcmu-runner-1.4.0 is very old, have you guys tried the latest code ?

From the log, I see the ceph IO was timedout. It took too long to finish.

hello, how to solve the problem, I have meet the same problem.
Previously, I enabled rbd_cache to improve performance，and i disable rbd cache for librbd,and the problem is not appear。

From ceph doc it says:
Ceph supports write-back caching for RBD. To enable it, add rbd cache = true to the [client] section of your ceph. ... With caching enabled, writes return immediately, unless there are more than rbd cache max dirty unflushed bytes. In this case, the write triggers writeback and blocks until enough bytes are flushed.

I think it should be waiting for the dirty data being flushed, maybe there has too many dirty data ?
Can you see any related logs in ceph side ?

From the log, I see the ceph IO was timedout. It took too long to finish.
tcmu_rbd_handle_timedout_cmd:992 rbd/test.volume: Timing out cmd.

You need to check what has happened in ceph side, why timed out this IO ?

hello xiubo
I find tcmu-runner will disable/enable when IO timeout,However, sometimes the tcmu-runner service will be restarted during TPG restart（disable/enable）, resulting in TPG not being enabled success. And the initiator also break.
In my usage scenario, a single gateway is used, so I don't think it is necessary to restart TPG. For example, add the following code to judge whether to restart according to the number of gateways.
target.c
tatic bool is_single_tpg(struct tgt_port_grp *tpg)
{
char path[PATH_MAX];
struct dirent **namelist;
int n = 0;
    snprintf(path, sizeof(path), CFGFS_ROOT"/%s/%s/", tpg->fabric, tpg->wwn);
    tcmu_info("Check %s tpgt count.\n", path);
    n = scandir(path, &namelist, tpg_filter, alphasort);
    if (n < 2){
        return false;
    }
    return true;

}
static void tgt_port_grp_recovery_work_fn(void *arg)
{
struct tgt_port_grp *tpg = arg;
struct tcmur_device *rdev, *tmp_rdev;
bool enable_tpg = false;
int ret;
    tcmu_dbg("Disabling %s/%s/tpgt_%hu.\n", tpg->fabric, tpg->wwn,
              tpg->tpgt);
    /*
     * This will return when all running commands have completed at
     * the target layer. Handlers must call tcmu_notify_lock_lost
     * before completing the failed command, so the device will be on
     * the list reopen list when setting enable=0 returns..
     */
    **if (is_single_tpg(tpg)){**
        tcmu_info("Skip to restart single tpg.\n");
        pthread_mutex_lock(&tpg_recovery_lock);
        list_del(&tpg->recovery_entry);
        pthread_mutex_unlock(&tpg_recovery_lock);
        free_tgt_port_grp(tpg);
        return;
    }
    ret = tcmu_set_tpg_int(tpg, "enable", 0);

......
}
I don't know if there are other problems that are not considered in this implementation。

I

tcmu-runner-1.4.0 is very old, have you guys tried the latest code ?

No,I'll try later。

I don't see any exception  logs  in ceph.client，but i enable rbd_cache ,and will appear  Flush Thread in pthread_cond  in dump file.

From the log, I see the ceph IO was timedout. It took too long to finish.
tcmu_rbd_handle_timedout_cmd:992 rbd/test.volume: Timing out cmd.

You need to check what has happened in ceph side, why timed out this IO ?
hello xiubo
I find tcmu-runner will disable/enable when IO timeout,However, sometimes the tcmu-runner service will be restarted during TPG restart（disable/enable）, resulting in TPG not being enabled success. And the initiator also break.
In my usage scenario, a single gateway is used, so I don't think it is necessary to restart TPG. For example, add the following code to judge whether to restart according to the number of gateways.

target.c tatic bool is_single_tpg(struct tgt_port_grp *tpg) { char path[PATH_MAX]; struct dirent **namelist; int n = 0;
    snprintf(path, sizeof(path), CFGFS_ROOT"/%s/%s/", tpg->fabric, tpg->wwn);
    tcmu_info("Check %s tpgt count.\n", path);
    n = scandir(path, &namelist, tpg_filter, alphasort);
    if (n < 2){
        return false;
    }
    return true;

} static void tgt_port_grp_recovery_work_fn(void *arg) { struct tgt_port_grp *tpg = arg; struct tcmur_device *rdev, *tmp_rdev; bool enable_tpg = false; int ret;
    tcmu_dbg("Disabling %s/%s/tpgt_%hu.\n", tpg->fabric, tpg->wwn,
              tpg->tpgt);
    /*
     * This will return when all running commands have completed at
     * the target layer. Handlers must call tcmu_notify_lock_lost
     * before completing the failed command, so the device will be on
     * the list reopen list when setting enable=0 returns..
     */
    **if (is_single_tpg(tpg)){**
        tcmu_info("Skip to restart single tpg.\n");
        pthread_mutex_lock(&tpg_recovery_lock);
        list_del(&tpg->recovery_entry);
        pthread_mutex_unlock(&tpg_recovery_lock);
        free_tgt_port_grp(tpg);
        return;
    }
    ret = tcmu_set_tpg_int(tpg, "enable", 0);

...... }
I don't know if there are other problems that are not considered in this implementation。

This sounds reasonable.

Hi all
My tcmu-runner version is : <IP_ADDRESS>, when I map 80 luns, at first, everything is normal, but after running for a few hours, the kernel will print the following logs, and tcmu-runner does not print any logs(I set the log_level=5)

After that, I unmap the lun, the first lun unmap success, but the second lun cann't be deleted. and it will hang on the lun.delete() (ceph-iscsi), then I restart tcmu-runner，it will work success again.

So, I think the problem is interaction between kernel and tcmu-runner.
Have any of you encountered similar problems？
Or do you known how the tcmu-runner influence the error "iSCSI Login negotiation failed"?

Hi all My tcmu-runner version is : <IP_ADDRESS>, when I map 80 luns, at first, everything is normal, but after running for a few hours, the kernel will print the following logs, and tcmu-runner does not print any logs(I set the log_level=5)
After that, I unmap the lun, the first lun unmap success, but the second lun cann't be deleted. and it will hang on the lun.delete() (ceph-iscsi), then I restart tcmu-runner，it will work success again.
So, I think the problem is interaction between kernel and tcmu-runner. Have any of you encountered similar problems？ Or do you known how the tcmu-runner influence the error "iSCSI Login negotiation failed"?

the erro "iSCSI Login negotiation failed" may be caused by initiator login timeoout ,Can you provide the following information？
1.all tcmu-runner.log
2.pstack tcmu-runner-pid

I have lost the  tcmu-runner.log
There is only the pstack content, please see the attachment
tcmu-runner_pstack.log

I have lost the tcmu-runner.log There is only the pstack content, please see the attachment
tcmu-runner_pstack.log

Sorry, I can't see the problem from the pstack information.
I tried to reproduce the problem, but it didn't succeed.
Can you describe in detail the steps to reproduce this problem？


Row highlighting

Clicking anywhere on the highlighted row in ApplicantTable (except the button to bring up notes and the additional menu) should link to the applicant's info, not just clicking on the name of the applicant.
Acceptance Criteria

sample text

User Story

sample text

Story Points

sample text

Closed by #119


Error when pachd starts in a non-default namespace

What happened?:
When pachd boots up, it spews:
"ERROR unable to access kubernetes logs, Pachyderm will continue to work but get-logs will not work. error: the server rejected our request for an unknown reason (get pods pachd-85998d797d-jxmsp)"

What you expected to happen?:
No error
How to reproduce it (as minimally and precisely as possible)?:
Deploy pachyderm in a custom namespace
Anything else we need to know?:
Unclear if this actually causes a problem when trying to fetch logs, or if the error is benign. Waiting on user response for clarification: https://pachyderm-users.slack.com/archives/C3UN0S0Q0/p1551743856156400?thread_ts=1551488385.104800&cid=C3UN0S0Q0

from user: get-logs worked.


docs, external: introduce langchain-localai

Thank you for contributing to LangChain!
Referring to https://github.com/mkhludnev/langchain-localai

@mkhludnev we should also update the providers page: https://python.langchain.com/docs/integrations/providers/localai/

@mkhludnev we should also update the providers page: https://python.langchain.com/docs/integrations/providers/localai/

Thanks for reminder, @ccurme! Here we go #28855


DetourFindFunction doesn't work where a direct call to SymFromName works. Why?

I'm trying to detour a non-exported member method in a DLL using PDB (it might be important that the DLL's name differs from PDB name, and DLL has correct PDB name encoded inside).
When I try to use DetourFindFunction, a call to SymFromName inside it will return FALSE. However, if I use dbghelp API directly, I can get it to work. The difference seems to be in that I call SymLoadModule64 with BaseOfDll param set to 0 (so that it is taken from PDB), whether Detour always uses the result from LoadLibrary. If I change my call to SymLoadModule64 to use the result returned by a previous call to LoadLibrary, my call to SymFromName also fails.
I don't think this is a bug in Detour, but I can't understand what's happening and what am I doing wrong. I've looked at findfunc example, but it seems to me that I'm not doing anything too different. Basically, my current test project for Detour looks like this, I'm only trying to find the function:
#include "detours.h"
int main()
{
    // returns 0
    auto v4 = DetourFindFunction("c:\\x\\PathToDll.dll", "HiddenFunctionMangledName");
    return 0;
}

And my test project for dbghelp looks like this:
int main()
{
    HANDLE hProcess = GetCurrentProcess();
    DWORD64 BaseOfDll;
    BOOL status;

    status = SymInitialize(hProcess, NULL, FALSE);
    if (status == FALSE)
    {
        return -1;
    }

    BaseOfDll = SymLoadModuleEx(hProcess,
        NULL,
        "c:\\x\\PathToDll.dll",
        NULL,
        0, // That's BaseOfDll parameter
        0,
        NULL,
        0);

    struct CFullSymbol : SYMBOL_INFO {
        CHAR szRestOfName[512];
    } symbol;
    ZeroMemory(&symbol, sizeof(symbol));
    symbol.SizeOfStruct = sizeof(SYMBOL_INFO);
    symbol.MaxNameLen = sizeof(symbol.szRestOfName) / sizeof(symbol.szRestOfName[0]);

    // returns 1, and symbol has correct symbol information
    auto v1 = SymFromName(hProcess, "DllName!HiddenFunctionMangledName", &symbol);

    return 0;
}

I even delved a bit into dbghelp disassembly, but all I got is that GetSymFromName calls FindModule, and it returns different results in these two cases, and later modGetSymFromName calls diaGetSymbols, which calls diaGetGlobals, passing the result from FindModule, and diaGetGlobals fails if the module was loaded with BaseOfDll != 0, but succeeds if it wasn't. It feels like PDB is not being loaded in the former case, and DIA is left with symbols from DLL itself.
I think I'm doing something wrong on my side, using Detour wrong, or something, but I can't quite figure out what. Can you help me?

OK, I figured it out. For some reason, SymFromFile uses different search paths for PDBs depending of presence of BaseOfDll parameter: if it is not specified, is searches the same folder where DLL resides (along with system-defined folders), but if it is, it ignores DLL folder, and instead searches for PDB in current working directory.


str and error concatenation TypeError + small grammar fix

Fixes TypeError: cannot concatenate 'str' and 'error' objects being printed instead of the RuntimeError message and original error as desired. This bug occurs when webdriver raises a URLError (for example [Errno 61] Connection refused).
Also made a tiny grammar fix in the Readme.

Thank you! Merged and released as 1.26


web app must be restarted to detect configuration changes

Issue
It would be a better demonstration of operational excellence if the web app could detect or "pick up" changes from App Configuration Service or Key Vault without an App Pool restart.
Todo

Research whether this is a code change or a feature change.
Modify the code
Modify the guide to describe this feature and to explain what's happening when simulating faults

relates to #234


New analytics library

This is the initial drop of the new analytics library, together with a partial instrumentation of the VS extension to use this new library.

Applied review comments. Removed events not needed yet.

PTAL

/cc @chrsmith. When this gets merged in I'll port the code to the googlecloudplatform/google-cloud-powershell#327.


[hotfix] Modify hive example into streaming read

This pull request modifies flink-read-write-hive example, using HiveSource as streaming reading source.

Hi @lindong28, could you please take a look at this PR?

Thanks for the comments. I have updated the PR according to the comments.


Invalid module parameters

Upon executing terraform init on tests/main.tf for #103 against all current modules, the following invalid parameters were found:
Error: module "subnets": "public_subnet_cidrs" is not a valid argument

Error: module "subnets": "private_subnet_cidrs" is not a valid argument

Error: module "subnets": missing required argument "cidr_blocks"

Error: resource 'aws_route_table_association.public-rta' config: "public_ids" is not a valid output for module "subnets"

Error: output 'private_subnet_ids': "private_ids" is not a valid output for module "subnets"

Error: module 'nat-gateways': "public_ids" is not a valid output for module "subnets"

Error: module 'nat-gateways': "private_ids" is not a valid output for module "subnets"

Error: output 'public_subnet_ids': "public_ids" is not a valid output for module "subnets"

Error: output 'public_subnet_ids': unknown module referenced: subnets

Error: output 'private_subnet_ids': unknown module referenced: subnets

Error: output 'public_route_table_id': unknown resource 'aws_route_table.public' referenced in variable aws_route_table.public.id

Error: output 'private_subnet_ids': reference to undefined module "subnets"

Error: output 'public_subnet_ids': reference to undefined module "subnets"

Error: module 'prometheus-data': unknown variable referenced: 'az'; define it with a 'variable' block

Error: module 'prometheus-server': unknown variable referenced: 'az'; define it with a 'variable' block

Error: module "prometheus-data": "account_arn" is not a valid argument

Error: module 'prometheus-server': "iam_profile" is not a valid output for module "prometheus-data"

Warning: output "admin-group-name": must use splat syntax to access aws_iam_group.admin attribute "name", because it has "count" set; use aws_iam_group.admin.*.name to obtain a list of the attributes across all instances

Warning: output "power-user-group-name": must use splat syntax to access aws_iam_group.power-user attribute "name", because it has "count" set; use aws_iam_group.power-user.*.name to obtain a list of the attributes across all instances

Warning: output "setup-mfa-group-name": must use splat syntax to access aws_iam_group.setup-mfa attribute "name", because it has "count" set; use aws_iam_group.setup-mfa.*.name to obtain a list of the attributes across all instances

The Error: 100% should be fixed, as they represent direct errors for users. The Warning:s would be a good idea to fix. This shows up when terraform init by callees also.

I would add P1 to this, as these are actual broken modules. @ketzacoatl @borsboom

@kerscher how do we get a list of the specific call sites?
For example, the way I read:
Error: module "subnets": "public_subnet_cidrs" is not a valid argument

is that a module/env is calling another module, named subnets, and is passing it the public_subnet_cidrs input param, which the module does not accept. This does not tell us a) which module is being called (we know it's name in the calling env is subnets, but we only get to assume the actual module name in source; or b) the name of the calling module/env.
It would be pretty easy to work on this if we had that info, but without that info, it's unclear what is calling what.

I'm pretty sure this passes now, see https://gitlab.fpcomplete.com/fpco-mirrors/terraform-aws-foundation/builds/5395 for example.


Bump types-setuptools from <IP_ADDRESS> to <IP_ADDRESS> (#5564)

Pull request opened by the merge tool on behalf of #5564

Merged in 46bed075f6ee2e11b3f700e4e13790bf6895ac9b


Starter project

I wasn't able to do the tests because tempfile.NamedTemporaryFile() seems to throw permission errors on windows.
Should close #1
@avnishn @zequnyu

Hey @terickson87 thanks for opening this pr. The tests are an important part of this process, as they are necessary in all prs that you open. Furthermore, we don’t actually provide windows support, only recent versions of macOS, and Linux.
I noticed that you mentioned working using wsl containers. Are you having trouble after using wsl or docker remote let us know.
You can also use the headless docker container found at github.com/rlworkgroup/garage

Yes, I could do that, but I didn't want to have to re-setup the environment in WSL (especially with the time limits in the starter project). I have experience working on WSL remotes via VSCode. I only recently installed docker, but I imagine working on Docker Remotes via VSCode is pretty straight forward.
I did modify the test to capture the new functionality, but I just wasn't able to "test" the new test.
If it is super important, I could probably do that later today.

Please do so, we really need to see the test that you write. A large part of contributing is in the tests that you will write to accompany any new features or bug fixes.
Without it, we wouldn't be able verify that your solution is exhaustively working.

OK, I got the tests to run on WSL via pytest --cov=dowel
I only modified the test_record_inconsistent() because I think that the new functionality was captured and I am unsure of your best practices / expectations. I did glance at CONTRIBUTING.md.

OK, I incorporated the changes except for refactor out as I am unsure as to what exactly that means.


Racing issue while building am57xx images

Branch: master (resin-am571x-evm)
Seems like resinhup images can't be generated due to the fact that rootfs tar is not generated.
| tar: /yocto/resin-board/build/tmp/deploy/images/am57xx-evm/resin-image-am57xx-evm-20170129212730.rootfs.tar: Cannot open: No such file or directory | tar: Error is not recoverable: exiting now | WARNING: exit code 2 from a shell command. | ERROR: Function failed: do_image_resinhup_tar (log file is located at /yocto/resin-board/build/tmp/work/am57xx_evm-poky-linux-gnueabi/resin-image/1.0-r0/temp/log.do_image_resinhup_tar.11044) NOTE: recipe resin-image-1.0-r0: task do_image_resinhup_tar: Failed ERROR: Task (/yocto/resin-board/build/../layers/meta-resin/meta-resin-common/recipes-core/images/resin-image.bb:do_image_resinhup_tar) failed with exit code '1'

fixed by https://github.com/resin-os/meta-resin/pull/566


Emit log on Runtime Code change.

Related: #5047
Currently, we only emit an event in case the runtime code changes. However as described in #5047, for light clients it's difficult to track the code changes, cause reading events is not really feasible.
This PR introduces a RuntimeUpdated digest item, which is triggered on every code update (via frame_system dispatchables) or on heap_pages change (also via frame_system function, not direct state write).
This will allow the light clients to easily update the current code, based just on reading the digest items in the header.
Upgrade considerations
Since DigestItem is used in the client code as well (i.e. we decode the header digest), the nodes MUST be updated before rolling out the runtime upgrade.

bot merge

quick question before this is merged, (not sure it is a good idea): should we check at https://github.com/paritytech/substrate/blob/864d096214cbde236f1ced7fdf4017ac22f5e5f5/client/db/src/lib.rs#L2009 or somewhere else after block import processing that when the digest is present in block import header, we indeed have an item for :code in the storage change payload (both are field of block import).
This way we ensure the digest is not added by the block builder without a storage update (same test could be added to cumulus).

This way we ensure the digest is not added by the block builder without a storage update (same test could be added to cumulus).

Do we do that for any other digest item? Note it's not an inherent (i.e. not block author's opinion), but rather a digest item and afair the only way to add them is through the runtime execution? That means that a block with an "extra" digest item would be considered invalid, because it wouldn't be generated by the runtime during execute_block.
Or am I missing something?

I am not sure, but on a recent dropped branch I did manage some digest directly with the block builder after https://github.com/paritytech/substrate/blob/864d096214cbde236f1ced7fdf4017ac22f5e5f5/client/block-builder/src/lib.rs#L226, and a check on block import.
Yet the check on block import would have need a cumulus implementation to.

https://github.com/paritytech/substrate/blob/864d096214cbde236f1ced7fdf4017ac22f5e5f5/frame/executive/src/lib.rs#L459 should avoid issue indeed.

One short coming with this PR's design is that, in case of a fork at the block height that modifies the runtime, all forks will have that log item but a light client will not be able to know whether the forks did all update to the same runtime or to different ones. Including a hash of the code in the digest item would solve this, but would make the design more restrictive overall. I don't think it's a big deal to leave that unaddressed.

Including a hash of the code in the digest item would solve this,

That's actually something I wanted to add initially, but I don't think there is an efficient way to get the hash of the code without actually computing it on-chain. (i.e. no way to read storage item hash after write afaict).
Also this complicates a bit the "heap pages" problem, since in such case the code hash stays the same. Unless we make the code hash optional or hash all of the runtime environment parameters (which might once again be a bit expensive).

Shall we merge this? Is there any reason left to hold off this PR?

None that I'm aware of.

bot merge

Late to the party: What about including the pre- and post-runtime version in the digest?

I was considering including code hash in the digest (see here), but yeah the heap pages complicate that a bit - would probably be easier to have two separate digest items.
Note that the event is only an indication for the light clients, and without any extra data, the light client can query any storage items when indicated to figure out what exactly has changed - I think it's way more flexible than attempting to add any extra data directly to the digest item.

Yeah, unfortunate that heap pages and code were lumped together.


[SMALLFIX] Fix recursive flag for TTL Free

@jsimsa I updated this PR after your LGTM. PTAL. thanks

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/13175/
Test PASSed.

Merged build finished. Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/13177/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/13178/
Test PASSed.

@jsimsa  fixed. thanks


Deploy Uniswap V3 LimitOrder Bot for Arbitrum, Ethereum, Optimism, Base, Polygon

Deploy Uniswap v3 LimitOrder Bots on the following chains:

[x] Ethereum
[ ] Arbitrum
[ ] Optimism
[ ] Base
[ ] Polygon
[ ] BSC

@webelf101 will you update this today when testing is confirmed?


Remove links to source maps

Thanks for this fantastic library!
When using it in my React app, Webpack complains about non-existent source maps. Can you please remove them so that Webpack doesn't try to find them anymore?
Here is the error message:
WARNING in<EMAIL_ADDRESS>Module Warning (from ../../node_modules/source-map-loader/dist/cjs.js):
Failed to parse source map from<EMAIL_ADDRESS>file: Error: ENOENT: no such file or directory, open<EMAIL_ADDRESS>

Hello @mattes3, glad you're finding it useful!
I'm afraid I cannot replicate the error you're describing.
Could you provide a sandbox please?

Here is example app to reproduce this error
my-app.zip

Hello @mattes3!
You can use the newest version -> 1.1.0 of the package which does not include source maps.
Cheers :wave:


Metropolis opcodes

We need to implement the new REVERT and RETURNDATA* opcodes included in the metropolis release.

#41 takes care of REVERT


Use npx instead of npm exec to support npm 6+

npm exec is not available in npm v6 (thanks for catching this @srajiang !) so moving to use npx instead, which is supported in older versions of npm.
This PR should be used in conjunction with https://github.com/srajiang/bolt-js-starter-template/pull/2.

Ah yes I should mention I tested this with node v12.22.12 (npm v6.14.16), node v14.19.2 (npm v6.14.17) and node v16.14.0 (npm v8.3.1) - just based on what we currently have in the "engines" field of bolt's package.json.


ffprobe process spawning

It looks like getting metadata involves spawning ffprobe process, does it mean that if I'm doing N metadata requests there would be N ffprobe processes and I need to control concurrency myself?

Yes, absolutely.


Is there an option to programmatically select items?

I'm trying to select options based on events outside of the user searching or clicking on options directly. Is there a method i can call like .selectByValue or something?

.setValueByChoice


First part of test refactoring to improve reporting

Signed-off-by: Kevin Earls<EMAIL_ADDRESS>This PR is the first part of #385 and covers the smoke tests. It includes restructuring tests and using the stretchr/testify toolkit to help produce better test reporting.

@pavolloffay  @objectiser  @jpkrohling  I've resubmitted this as a new PR because of a small git related catastrophe.  :-). @objectiser  I think I have covered all or your comments from the first submission, but please let me know if I've missed anything.


Fix indent & improve consistency of primitive docs with Qiskit

Summary
There was an indent missing in the EstimatorBase:

And not all functions were fully documented (missing input args or return docs). Also I tried to improve the consistency with the rest of Qiskit whre we usually use full sentences in the docs, but feel free to reject or adjust that!
Details and comments
Is there a reason why we use collections.abc for typehints instead of typing as in the most of the (or all?) codebase? 🙂

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 83.932%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
54137

Relevant Lines:
64501

💛  - Coveralls

Thank you so much and sorry for my mistakes. This is the right direction.
I just have one question, should we use Sphinx's :class:ClassName etc. in the doc string? For html it is obviously readable, but I am concerned that it may be difficult to read when viewed with the help function (or completion). I know that this is used in QuantumCircuit and others, but I would like to check it once.

Is there a reason why we use collections.abc for typehints instead of typing as in the most of the (or all?) codebase?

typing.Sequence  is deprecated since Python 3.9, so if we use __future__.annotations , I believe that collections.abc  is better.

just have one question, should we use Sphinx's :class:ClassName etc. in the doc string?

I don't think it's strictly necessary since most of the classes could be accessed via the type-documentation. But also I don't think there's harm in being precise and these paths are not very long. We can do which ever you prefer 🙂


Autocomplete+ provider added

I have added a provider for classes it will autocomplete the objects name with or without a namespace.
methods can be added also in next step.

Thanks!


Separate fight-or-flight into second behavior stage

remove behavior.ForF()
when behaviors want to signal ForF, they return a special faux ActionForF() to go into the urgency election
if this action is picked, a new round of behavior picking happens
behavior.actionForF() is polled, urgency + status calculated by each behavior, highest picked

SelfDefend.actionForF() -- check actor.confidence() (looks at wounds vs hubris), set urgency opposite to confidence, return a flee action -- lower confidence if adjacent, lower if target has missile, lower by distance.  can be over 1f if confidence not berserker-level and wounds high
Hitter.actionForF() -- if no melee weapon, null.  if in hit range of target, Attack 1f, or equip melee 0.8f.  else step toward target, urgency opposite to distance
Shooter.actionForF() -- if no missile, null.  if in optimal range, attack 1f, or equip missile 0.8f.  if out of range, step toward, urgency opposite to distance-from-range.

make ActionGoal("string", targetentity) which triggers the re-election of behaviors to get a real action, by asking their doGoal()
give up on ForF -- just have selfDefend or whatever decide right there (via its own params like aggression) whether to fight or flight, and return ActionGoal("fight") or ActionGoal("flee")


Asset Dashboard not showing untagged resources

Micro services
-- Asset Service?
Java Version

1.8

Summary
Navigating to the instance dashboard assets/asset-dashboard?ag=aws&domain=Infra%20%26%20Platforms
I see the list of resource types across the middle ENI (111) - EC2 (23) When i click on one on the left i see Assets By Application and on the right i see a graph. Currently I am not see any graph or at least the graph is blank Expected Behavior: A Graph of instances is shown
On the EC2 Screen i implemented the required tags, Application and Environment I can click on the number and it takes me to the list of instances that are tagged. But for instances that are not tagged "Without Application Tagged" when I click on the number i see nothing. It takes me to a page with filters on top, and even when i remove the filters i still do not see anything. Expected Behavior: I would see a list of the untagged instances
Aha! Link: https://t-mobile1t-mobile.aha.io/features/PM-312

issue fixed


Using Emulator via Bluetooth

Hi,
I am trying to use this emulator. I have setup the project and also able to run it.
I am able to use via TCP seamlessly but not able to use via Bluetooth. Any additional configuration needed for this?
I am not sure whether its an issue or I am doing something wrong with the set-up. Your help is much appreciated. Thanks in advance.

There shouldn't be any additional configuration - though it's always possible that there is something that was already set on my computer that I'm not ware of.
Couple things you can check though.

If you are trying to use an iOS Simulator to connect via bluetooth that won't work if I recall. It has to be from a physical iOS device.
I used an iOS App called GATT Browser to help debug this, so you might be able to use that to verify that your computer is broadcasting correctly.
Zebra has an iOS app for printing test labels. I believe it also worked in my testing, so might check that one and verify it can print to the virtual printer.
Depending on what you are using to print from, it's very possible that I'm not 100% correctly implementing the bluetooth feature set. Zebra had very little documentation on the subject (i.e. none) so much of the implementation was built based on their public source code samples for how to connect to a bluetooth printer.

Thank you for prompt response.
I am working on MacBook Pro not using any simulator.
I am able to see my computer in other devices.
Data part is fine but I need to test connection with bluetooth zebra printer. I don't have printer handy at this point of time so emulator would help me.

What are you using to print from?  An iOS app or some dedicated piece of hardware?
Does whatever you are trying to print from see the printer?
Does whatever you are trying to print from connect to the printer (or said another way, does it get so far as to try to connect to the printer)?
Does whatever you are trying to print from give any errors when trying to print?
I would again try to use the GATT Browser iOS app to verify that your computer is even broadcasting the correct GATT information.  With the Zebra Emulator running, you should be able to run GATT Browser, connect to your computer, and see a Custom Service with this UUID: 38EB4A80-C570-11E3-9507-0002A5D5C51B, it should also have two services listed. If you see that, then the app is correctly broadcasting.


Demo site

We need a publicly-accessible demo! 😃
This could be a Netlify site, or we could use something like gulp-gh-pages to use GitHub pages.

So, I see this as:
Option A: Netlify

[ ] Create drizzle-demo repo
[ ] Hook up Netlify integration
[ ] Commit the contents (dist) of a build to the master branch of that repo

Option B: GitHub Pages

[ ] Create a gh-pages branch on this repo
[ ] Add a task (or some automation) to get the contents of a build into that branch

Option B seems more painless to me. One less repo to keep up to date.

@erikjung I agree!

Closed via #72


Fix GPU Cache on Experimental Branch LoadingState.hx

Self-explanatory

huh, this is completely unrelated to the pr

Video

Hard Reset the commits to the latest commits of experimental branch to avoid clutterness of the commits

Fixes the iteration and make it actually loads voices, also uses mutex just incase


Update all plugins minimum from iOS 9 to iOS 11

Increase plugin minimum target iOS version from 9.0 to 11.0 flutter.dev/go/rfc-32-bit-ios-unsupported.
To paraphrase Stuart from https://github.com/flutter/flutter/issues/84198, the last time this was done:

Once Flutter stable no longer supports [iOS 9], we should update all the 1P plugins to match. This will eliminate the issue of deprecation warnings from the plugins in the now-common case where people build with projects that use [iOS 11] as the minimum.
Currently all of our plugins support [iOS 9] so this will affect every plugin that supports iOS, although we'll only need to update  the deprecated plugins if at some point we have CI issues with the [iOS 9] support.
When we do this, we should make sure the READMEs prominently list the minimum iOS version (see also https://github.com/flutter/flutter/issues/34999)

Example: https://github.com/flutter/plugins/pull/4327
Blocked by https://github.com/flutter/flutter/issues/101961
Also run app migrator https://github.com/flutter/flutter/issues/101960 by building all example projects.

Also from the previous issue:

We should probably also update the minimum Flutter version at the same time so that we guarantee that nobody trying to build for [iOS 9] with an older version of Flutter resolves to a newer version of the plugin.

A nice bonus since last time is that for any plugin we've federated (which is most of them now) we only need to increase the minimum version on the iOS implementation package, so people still using old versions of Flutter will still be able to get fixes in other packages.

Clean up availability and deprecation pragmas, see https://github.com/flutter/plugins/pull/5765

This should to wait until the plugin package n-2 stable minimum version is Flutter 3.1.0 as that's the first stable containing https://github.com/flutter/flutter/commit/1756ccc541d56670d314f4bc29077ec302f28321.
Example, this set it to 2.10: https://github.com/flutter/plugins/pull/6340

It's fine to update all the iOS implementation packages to 3.3 now as part of upping the minimum iOS version. The N-2 tests are just to prevent accidentally breaking people using older versions by publishing something that the resolver will give them but then doesn't compile. We only commit to activelysupporting current stable.


Chess: Move G4 to G5

Please do not change the title. Just click "Submit new issue". You don't need to do anything else :D

@MGBoulware88 done! Successfully played move g4g5 for current game.
Thanks for playing!


Job run twice when timer triggers to early

I have had an instance where some jobs ran twice which looks to be cause by the timer triggering a few seconds to early.
The line (cron.go:201 on current master)
e.Next = e.Schedule.Next(now)
will cause a job to run again if the timer pops early.
In my case the jobs was scheduled a few days ahead - i don't have an explantation why the started a few seconds early.
I notice this was changed from:
e.Next = e.Schedule.Next(effectiveTime)
to prevent catch up effect in the machine sleeps.
However this new behaviour is a real problem for me.
I would suggest a check if when the timer is triggered: is now before the effective time -  if so continue and let the timer be scheduled again.  We could also mitigate by never setting timer for more than 1 hour so now is regularly reset?
However this could be an issue if it triggers before and keeps waking up to early?
Can I also ask about the v1 and v2 branches (i assume v1 is very old and should be ignored) v2 has extra features - but is missing some fixes from master....
I am going to submit a pull request

I have submitted pull required - #96 which proposes a solution to this.

I'm also seeing possibility of double job behavior (emails sent twice), though I am not sure what is causing this.

Please try v3. I believe this was fixed in 316e2a23 by checking the activation times explicitly:
			case now = <-timer.C:
				now = now.In(c.location)
				// Run every entry whose next time was less than now
				for _, e := range c.entries {
					if e.Next.After(now) || e.Next.IsZero() {
						break
					}
					go c.runWithRecovery(e.Job)
					e.Prev = e.Next
					e.Next = e.Schedule.Next(now)
				}

Closing, please open a new issue if you see any problems.


Major formatting changes: better readability

used black library formatter to improve code structure and overall formatting. changes from strings here and there.

testing some logic.


Handle OneToOneFields

Hooks on OneToOneFields are not triggered due to missing "_id" suffix. This change extends get_field_names and sanitize_field_name functions to handle OneToOneFields along with ForeignKeys.

Thank you!


Skip paths that are not version controlled

If godep now encounters a path that is not version controlled instead of quiting
and logging an error it will silently skip this path.

I don't know if this is a good idea. What's the use case?

This loosens the requirement that every package you use needs have it's own .git/vcs root folder. This makes the tool more flexible to alternative source layouts in your vcs repo.

Wouldn't you want Godep to vendor the directory though?

For my use case no - but it should.
I'll make the following additions:

disable the vcs check with a flag (hence the default behaviour will remain the same)
vendor all the directories

@dprotaso any updates?

I'm going to close this out for now since there haven't been updates in a while. Please feel free to re-open / start new PR if you still think this feature is valuable.


Enable dotnet-ci build

@dotnet-bot test ci please

@dotnet-bot test ci please

Merging this in - the build bot requires the groovy files to be present in the dev branch to build


Update the links for the matches() feature

The links should point to the doc for the new feature.
The previous MDN link is redirecting to the new one, but the WebPlatform page shows a page describing the legacy feature.

Thanks!


C++ 14 & Student, Teacher, Assignment, Grade Unit tests

Hello!
I have added the following features in this PR:

Unit test fixtures
Unit tests for the following functionalities of Student, Teacher, Assignment and Grade:

Load data
Save data
Print data
Query one
Query many

Changed default C++ version from C++11 to C++14

GoogleTest requires C++ 14, plus at some point we might use std::make_unique

Build instructions remain the same.

I have also forgot to mention:

Fixed instances where GBResourceNotFound was thrown and resourceId was not passed, as this parameter is now required since last update.

I would like to recommend and request we do at least one Valgrind test on the codebase soon.

I will work on that soon. Not sure if the best approach is to use Valgrind on unit tests or having it as an option of the actual runtime of the program.

I have not had much experience with Valgrind except that Ive been made aware that it is very good at memory leak detection as well as other things. I don't expect any memory leaks but hard to say without testing and its not much of a concern yet without terribly much completeness yet.
I dont know how good CTest or Google Test is at memory leak detection and other
I will note that I won't be able to use Google Test on my older development VM as its repo only has 3.13.  Its based on Debian 10 Buster.
I would have to download from the Ubuntu 20.04 repo and adding the Ubuntu kitware repo and its keys if not having to build from source which is ok.


Reflect Keyboard Manager bindings in the Shortcut Guide

📝 Provide a description of the new feature
Update Shortcut Guide with user-remapped shortcuts from Keyboard Manager. Currently only default shortcuts are displayed.

Shortcuts in the Shortcut Guide that were remapped should be updated. For example, I remapped Win (Left) , -> Play/Pause Media  but the Guide still shows it as "Temporarily peek at the desktop"
New mappings should be shown as well (probably in a different section).

If you'd like to see this feature implemented, add a 👍 reaction to this post.

This would be addressed with #890 with the new UX, we can't implement this until #890 is done no matter what.


updating properties that are not explicitly named in query (express route) can still be updated

This should not be possible! We need to define which props a student or admin can edit. Eg. a student should not be able to update the status!

Should be fixed everywhere now. I couldn't find any places where properties are updated without filtering out invalid properties first.


Add an easy way to configure Travis credentials

All deployments require credentials, and making those credentials available to the deploy steps can be error-prone and annoying. We should provide a way to do this configuration on the user's behalf.
One possibility would be to provide our own pub run-based CLI which would authenticate with the various services and write the result to the user's .travis.yml.

@nex3 with the migration from travis to GA for sass (and maybe also other tools using that package as Travis dropped their free plan for open-source), I think this should be closed. On GA, secrets cannot be stored in the config file in an encrypted way.

Agreed.


OPartitionedDatabasePool when loaded with more than 20 threads returns same db connection with hashcode

OrientDB Version: 2.2.17
Java Version: 1.8.0_66
OS: Linux 2.6.32
Expected behavior
We were expecting when we use the pool.acquire method from OPartitionedDatabasePool class, it should provide a unique db connection and hashcode to be used in a multithreaded spring boot application which currently uses the orientdb spring data modules. But it seems like when number of users are more than 20 accessing the same we are getting the same db connection and hashcode which causes the following error:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: The current database instance (com.
orientechnologies.orient.core.db.OPartitionedDatabasePool$DatabaseDocumentTxPooled@6ba64c61) is not active on the current thread (Thread[qtp1159114532-15,5,main]). Curr
ent active database is: com.orientechnologies.orient.core.db.OPartitionedDatabasePool$DatabaseDocumentTxPooled@7ad45a17
Actual behavior
We should be getting a distinct db connection from the connection pool and the above error should not be happening.
Steps to reproduce
Using Jmeter if we run a load test to send more than 200 requests then this can be reproduced. We need to make sure jmeter thread count should be more than 20 or so. Here as shown below if you see thread number 15 and 17 both are getting the same database connection object<PHONE_NUMBER>, which in turn makes one of the thread error out as shown above.
2017-03-14 16:05:45.936 DEBUG 31797 [qtp1159114532-15] --- .s.d.o.c.c.AbstractOrientDatabaseFactory : use existing db<PHONE_NUMBER>
2017-03-14 16:05:45.936 DEBUG 31797 [qtp1159114532-17] --- o.s.d.o.c.core.OrientTransactionManager  : beginning transaction, db.hashCode() =<PHONE_NUMBER>

Hi, I have created following code https://gist.github.com/laa/9f52156237fa5200012f9fc99fc07224 . This code creates 200 threads each of threads creates separate connection and wait till all thread does not acquire 200 connections. All connections are stored in ConcurrentHashMap, and it is checked that there are no duplications of connections in other threads. Then all connections are removed. This cycle is repeated 1000 times (also I have run the same test 1 000 000 times too). As a result, I have got following output https://gist.github.com/laa/692e7c1418ce89998f125a0749640b1a as you can see test did not detect any duplications of connections.  I do not think that we have described the bug in a connection pool. Do you have any objections?

Hi, Thanks a lot for responding to my issue. I really appreciate this. The issue does not surround around the db object not returned, but the issue surrounds when the same db object is returned to 2 threads at same time, then one thread errors out when trying to do the db operations. I will try to modify your junit test case and send you a sample program or so, which you can test it out. FYI, I am using your spring data project from orient db with spring boot and it submits the requests to rest controller and rest controller in turn uses the repository from spring data with shared connection pool to do the updates. This is the time when same db connection object is returned to both threads it errors out as the last thread which gets the object works fine, but earlier threads error out. Please hold on for a week or so and I will build a sample project and send to you for testing purpose using orient db spring data module. Thanks, Likesh

Please download the spring data module from orientdb github location @ https://github.com/orientechnologies/spring-data-orientdb/tree/2.2.x and startup the /spring-boot-orientdb-hello/src/main/java/org/springframework/boot/orientdb/hello/HelloApplication.java. This should start the restcontroller using orientdb spring data module and youc an chnage th epom file to use 2.2.17 version to make sure you are using latest orientdb. Once you started the HelloApplication, please find my attached jmeter test file where I am submitting a get request to its rest URI http://localhost:8080/persons/findByAge?age=25 with 20 threads each submitting 1000 request. You will find some times the threads will fail with the following exception:
java.lang.IllegalStateException: The current database instance (com.orientechnologies.orient.core.db.OPartitionedDatabasePool$DatabaseDocumentTxPooled@3cb96009) is not active on the current thread (Thread[http-nio-8080-exec-10,5,main]). Current active database is: com.orientechnologies.orient.core.db.OPartitionedDatabasePool$DatabaseDocumentTxPooled@512c8fb5
Please find the Jmeter file which you can execute:
OrientDBPersonServiceTest.zip
Just FYI, the same issue someone raised in Spring Data Orient DB module as well as follows:
https://github.com/orientechnologies/spring-data-orientdb/issues/68

Just a further update I did some testing with the junit java file provided and found that OPartitionedDatabasePool is returning same db object, if you search for the hashcode value for<PHONE_NUMBER> inside the test_results_from_junit.txt file, then you can see it is being assigned to multiple threads from pool at same time, sample examples are as follows (initially the object was assigned to thread 18 and then it went to thread 144 which means later point if any request will come to thread 18 then it will error out):
19:59:23.462 [pool-2-thread-18] DEBUG c.o.o.c.db.OPartitionedDatabasePool - db object returned is:<PHONE_NUMBER>
19:59:23.588 [pool-2-thread-18] DEBUG c.o.o.c.db.OPartitionedDatabasePool - db object returned is:<PHONE_NUMBER>
19:59:23.588 [pool-2-thread-144] DEBUG c.o.o.c.db.OPartitionedDatabasePool - db object returned is:<PHONE_NUMBER>
19:59:23.619 [pool-2-thread-144] DEBUG c.o.o.c.db.OPartitionedDatabasePool - db object returned is:<PHONE_NUMBER>
19:59:23.728 [pool-2-thread-144] DEBUG c.o.o.c.db.OPartitionedDatabasePool - db object returned is:<PHONE_NUMBER>
19:59:23.728 [pool-2-thread-144] DEBUG c.o.o.c.db.OPartitionedDatabasePool - db object returned is:<PHONE_NUMBER>
Please find the attached files where in OPartitionedDatabasePool acquire method I added some additional logging statements to see what is being returned to the junit program. And also please find the junit java program where I made connection pool to have 2000 max connection pools and also the test result file where you can search for duplicate db hashcodes.
Any help you can provide to get this fixed is really appreciated as our company is thinking about purchasing enterprise license in coming year if all goes good in our prototypes.
Regards,
Likesh
orientdb_springdata_issues.zip

Assigned to @robfrank as he does most of development activity in ODB spring-data module.

Thanks a lot @laa (Andrey). I really appreciate your help on this and I will wait to see what @robfrank (Roberto) finds out as if needed I can easily demonstrate this, but with the Jmeter file I provided, it is very easy to reproduce. But still if you want me to demonstrate, I can do that in a web meeting or so.

Hello @laa and/or @robfrank, please advise if any updates on this issues as this is a driving factor for us to decide whether to use orientdb or not.

I closed by mistake. Hence reopening and hoping some response from @laa and/or @robfrank, please advise if any updates on this issues as this is a driving factor for us to decide whether to use orientdb or not.

Hi, I used the Jmeter configuration and your Junit test.
Jmeter works fine, no exceptions are raised inside the spring-boot application.
About the Juni test, it doesn't fail, and looking at the code if the same db is assigned to different threads at the same time it should fail, isn't it?

could you check with latest 2.2.21?

Hi @robfrank I will try with 2.2.21 but if you have some time I can replicate this in front of you with Jmeter code as well. The issue is that it works fine for some time with a Java application and after that all requests fails with the same error message, somehow I have a feeling the validation does not look correct and all requests started failing.

Hi @robfrank, I added some logging and if you see using spring data it is getting the same database object (db.hashCode() = 121375752) in 2 threads if you see thread number 15 and 18 from pool (qtp85445963-18 and qtp85445963-15), where as the pool should be providing different  db objects, so I think this is an issue with pool code in orientdb if you agree based on log below.
2017-06-15 13:30:53.147 DEBUG 12665 [qtp85445963-15] --- .s.d.o.c.c.AbstractOrientDatabaseFactory : After opening database: qtp85445963-15: 121375752
2017-06-15 13:30:53.147 DEBUG 12665 [qtp85445963-18] --- o.s.d.o.c.core.OrientTransactionManager  : beginning transaction, db.hashCode() = 121375752
2017-06-15 13:30:53.147 DEBUG 12665 [qtp85445963-15] --- o.s.d.o.c.core.OrientTransactionManager  : beginning transaction, db.hashCode() = 121375752
2017-06-15 13:30:53.151 DEBUG 12665 [qtp85445963-18] --- .m.m.a.ExceptionHandlerExceptionResolver : Resolving exception from handler [public org.springframework.boot.orientdb.cds.data.Status org.springframework.boot.orientdb.cds.rest.TicketController.createTicket(org.springframework.boot.orientdb.cds.data.Ticket)]: java.lang.IllegalStateException: The current database instance (com.orientechnologies.orient.core.db.OPartitionedDatabasePool$DatabaseDocumentTxPooled@4215ead1) is not active on the current thread (Thread[qtp85445963-18,5,main]). Current active database is: com.orientechnologies.orient.core.db.OPartitionedDatabasePool$DatabaseDocumentTxPooled@b8410f7

wich version of OrientDB spring  data?

Hi @robfrank , I am using 0.14-SNAPSHOT version of orientdb spring data. If you want I can take the latest version or so.

I released 0.14, if you prefer a stable version

Thanks @robfrank . I will try with that and update what I find and if the issue is fixed.

closing. Feel free to reopen the issue


i am new to this library

i tried this in ionic, i am not sure what i have to do before, but i get from the start BX_Printer undefined so it doesnt work. i added the plugin then used your snippet with no avail.
any help appreciate it, right now working with one of this devices i can help you test.

Hi!
So glad to hear someone is using this! Ok, are you loading the script correctly?
Remember that the Script must be loaded after cordova (and as you are using Ionic, after Ionic too):
...
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="cordova.js"></script>
<script src="plugins/BixolonPlugin.js"></script>
...

After you load it BX_Printer should be defined.


Streaming NASA data from Purple Air

WHAT DOES THIS PR DO?

[ ] Functions to process and store raw data from NASA devices in Ethiopia

WHAT ISSUES ARE RELATED TO THIS PR?

Jira cards

PLAT-1179

Hi @NoahNsimbe , looks like this PR has some merge conflicts.
What is the actual review status for the PR?

This PR's branch has been stale for 3 months.
Please consider deleting it if it's obsolete to minimise the size of the repo clone.
cc @NoahNsimbe

This PR's branch has been stale for 3 months. Please consider deleting it if it's obsolete to minimise the size of the repo clone. cc @NoahNsimbe

Thanks @123MwanjeMike. This was put on hold. I shall revisit it next week/sprint.

Hi @NoahNsimbe ,  thanks for this PR.I gather this feeds so much into the OKR about streamlining the ingestion of data from external networks.

what is the status of this PR? What label should go here? work-in-progress? ready-for-review? or both?
Also, I do notice some merge conflicts.


memoize renderedWrappedComponent separately to prevent this step from…

the following issue my @welldone-software/why-did-you-render library:
https://github.com/welldone-software/why-did-you-render/issues/18
descovered a small performance improvement possibility:
WrappedComponent should not be re-created for every state change. Instead it can be memoized separately.

initial https://github.com/reduxjs/react-redux-benchmarks results:

initial https://github.com/reduxjs/react-redux-benchmarks results:

Thanks. Given that there's a few other things that have popped up too, I'd like to investigate a bit further over the weekend before pushing out a new release.

Well, I'm going to merge this in now.


fix(api): fs/exists return type previously set to void when it should be boolean

Very small fix to the fs/exists method in the JS API, commit message should be explanatory enough 🙂

[x] Bugfix
[ ] Feature
[ ] Docs
[ ] New Binding issue #___
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change?

[ ] Yes, and the changes were approved in issue #___
[x] No

Checklist

[ ] When resolving issues, they are referenced in the PR's title (e.g fix: remove a typo, closes #___, #___)
[ ] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.
[ ] I have added a convincing reason for adding this feature, if necessary

Other information
Question regarding the second point in the checklist of PRs: How does it work? The link to the doc is dead. Would love to add the file in this or future PRs if required.

@amrbashir As mentioned in the bottom of the PR, the link to the docs is dead. Is there an up-to-date documentation you could point me to for how to proceed with change files? I'm unfamiliar with this process.

Here's the file in question: https://github.com/tauri-apps/tauri/blob/f5f9f105f768c0a0b86009c4a9058ce28563211d/.changes/readme.md
Was deleted by accident in #4351

As mentioned in the bottom of the PR, the link to the docs is dead

Sorry about that, I didn't notice your note in the PR, I will fix that. and for now, use the link Fabian provided.


Fix race checkNegotiationNeeded

Description
Deleting a track is not thread-safe.
It is confusing when you can come across a transceiver that has a direction but no sender.
Reference issue
Issue #1494
Similar pull request
https://github.com/pion/webrtc/pull/1496

I think that the main issue here is setting the track to nil, instead of setting the track to nil, we just stop the sender and consider that is the transceiver is SENDONLY set it to INACTIVE if it's SENDRECV set it to RECVONLY
The issue here is that some browsers need to know the SSRC from the inactive track.

Sorry for the spam. If I understood correctly. You are suggesting not to set the sender value to zero, but the spec says to do so. I think that this can lead to other errors, I am not an expert in this, so I will write as in the specification. You can create a separate request.

Sorry for the spam. If I understood correctly. You are suggesting not to set the sender value to zero, but the spec says to do so. I think that this can lead to other errors, I am not an expert in this, so I will write as in the specification. You can create a separate request.

You are confusing terms, the spec says that track should set to null and the RTCRTPSender should remain, my suggest was to fix an issue with negotiated tracks setting to inactive without ssrc (thought that may be related). Your comment say that you find a transceiver with direction but no sender, it's difficult to see that scenario since when you create a transciever a sender is created, the only way to not get a sender is during a remote negotiation where transceiver is set to recvonly so not sender is required.
What are you doing here is just holding the lock more time, but that is not warranty that the transceivers can not being modified somewhere else, since other path can modify transceivers. Thats why during negotiation, the spec says to create a shallow copy and work on it, if another change is done another negotiation is queued.

@OrlandoCo @tekig I will be honest I don't know this stuff well enough (all the rules around Sender/Receiver/Transceiver creation)
Do we need to radically re-design how pion/webrtc internally works to make this easier? I have heard that people find it frustrating to work on with the complexity. Maybe we need to convert it to a state machine, and put that in its own package?
 We could also decouple SDP from it. Just food for thought, I am in total support of w/e is 'the right way'

I merged the branches wrong. The idea is that we copy the link to the sender and track. He will not be able to change the value of this variable and will always be available.

@Sean-Der the problem is still relevant, as I see in the code. I don't know how to write testing to cover all changes, but it works if you use time.Sleep.

The problem came up when removing a track that was not thread safe that the PR closed. Now sender cannot become unexpectedly nil.


Update introduction.md

🚀 Deployed on https://661dffa6653e787efefca94c--cozy-fox-0defec.netlify.app


BUG: Using use_default_mapping=false will not disable all the mappings

Did you check docs and existing issues?

[X] I have read all the docs.
[X] I have searched the existing issues.
[X] I have searched the existing discussions.

Neovim Version (nvim -v)
0.10.1
Operating System / Version
WSL2 + Ubuntu 22.04 LTS
Describe the Bug
I've set use_default_mappings = false, but the mapping for input and filter popup is not disable, I can still see the mappings:

Screenshots, Traceback
No response
Steps to Reproduce

Set use_default_mapping=false
Use / to open filter
The key bindings <c-n> and <c-p> is still working

Expected Behavior
Disable these mappings.
Your Configuration
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")

-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  -- add any other plugins here
}

local neotree_config = {
  "nvim-neo-tree/neo-tree.nvim",
  dependencies = { "MunifTanjim/nui.nvim", "nvim-tree/nvim-web-devicons", "nvim-lua/plenary.nvim" },
  cmd = { "Neotree" },
  keys = {
    { "<Leader>e", "<Cmd>Neotree<CR>" }, -- change or remove this line if relevant.
  },
  opts = {
    -- Your config here
    -- ...
use_default_mapping=false,
            filesystem                = {
                window = {
                    mappings = {
                        ['/'] = 'fuzzy_finder',
                    },
                    fuzzy_finder_mappings = {
                        ["<c-j>"] = "move_cursor_down",
                        ["<c-k>"] = "move_cursor_up",
                        -- ['<c-n>'] = 'noop' -- this will give me a warning 'noop' command a niv value
                    },
                },
}
  },
}

table.insert(plugins, neotree_config)
table.insert(plugins, neotree_config)
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")

I found that the merge_config for defaults and user's configurations did not use to_lower or to_upper make all the key with <> as lower or upper letters.
This will behavior weired, because in nvim, <c-n>, <C-n>, <C-N> and <c-N> are all the same key, but in lua they are different strings. In the default keymappings use <C-n> for cursor down, which means I must use <C-n> = 'xxx', because <c-n> will appear before <C-n> in a table, the key will be override by the default <C-n>.


Mind Reading

Suggestion
Why does the mod not read my mind? That'd be very helpful. Thanks.

This is unfortunately not realistic at this time.


Fix doc-tests.

...Otherwise we can do it as a followup.

I'll do it that way instead, for clarity.


Allow some error type to be excluded from logging

Similar to how FunctionClauseError and Phoenix.Error.NoRouteError is ignored from reporting, it would be very useful to allow other types of error such as authentication error to be excluded from reporting as well.
Frameworks like Laravel have a $dontReport attribute in its exception handler that can be used with Sentry to exclude certain kind type of exceptions from logging. Maybe something similar can be achieved with app env and some macros in Elixir?

Does the Sentry.Filter behaviour solve this?  https://hexdocs.pm/sentry/Sentry.html#module-filtering-exceptions

Actually, I think that would. Sorry, wasn't aware of that option. Thank you.

@hdra no worries, it isn't mentioned in the README.  I should at least add a link to it.


fix Sass errors for better Ember CLI error messages

Ember CLI and broccoli-middleware expect certain properties on error objects to present on the error page.
This code comes straight from the example: https://github.com/ember-cli/ember-cli/blob/master/docs/ERRORS.md

Released v2.1.0 and<EMAIL_ADDRESS>

Thanks for the quick review!


EE-1062: Storage costs

Ref: https://casperlabs.atlassian.net/browse/EE-1062
Changes behavior of write and add operations (which is considered a special case of a write) with a gas charge at tracking copy level.
Direct access to a tracking copy of a RuntimeContex is restricted and write/add operations can be metered only (and therefore renamed into metered_add_gs and metered_write_gs)

You've got a failing test:
https://drone-auto.casperlabs.io/CasperLabs/casper-node/2160/1/8

@henrytill fixed. Apologizes for force push. I accidentally pushed commit from other branch

bors r+


Add closing tags to example's nav bar

In the tutorial, the base.html file does not have closing </li> tags. This PR adds the corresponding </li> tags to the nav bar.

These are not required to be valid HTML. See other closed PRs for previous discussions.


Problem with using library

My goal is to compile a function written in Rust to WebAssembly which has a similar signature as your example (externref, i32) -> externref. Therefore, I want to use your library. But I have an issue by using it. I followed your Usage  example and get the following error message:

Can you help me there?

Hi! Very glad that the library could be useful to someone besides me.
The library is not published yet on crates.io because it's not sufficiently tested as evidenced by #1; there were multiple miscompilation bugs I didn't take into account initially, and there quite a few remaining probably. The lack of a published version is the cause of the error you've encountered. Still, I plan to publish the library in the nearest week or so; after that, the ordinary dependency spec will work just fine. In the meanwhile, you can depend on the git version of the library:
[dependencies.externref]
version = "0.1.0"
git = "https://github.com/slowli/externref.git"
rev = "1320af1df269cb3df4710da1b3e4e9efb9b43ed3"

This is how I use the library in another project; you may find it useful to look how it is used there.

Thank you very much. I looked into your example but I am new to Rust and also its whole packaging and dependency system.
My goal is to write a function in Rust and then compile it into a wasm file. Then I want to use this function as an export in a host code. This host code must be written in C++ for various reasons that cannot be changed.
So far, I have called the exported function directly and passed the input to it, similar to this example. I have used the Wasmtime runtime. But this way I can only pass int/float and not pass chars to the wasm-module, as they are not natively supported by WebAssembly. Therefore, I want to use externref. This way I can share a pointer to an object (such as a char or even a struct), pass this to the wasm-module which can modify it and then return it back to the host.
This is an example for the host code in wasmtime which uses externref as an input/output and this is the corresponding wasm-module. The exported function in this wasm-module only returns the pointer given by the input of type externref but it has a similar function signature as your example.
I want to compile Rust to a wasm-module similar to this, except it also modifies the data which externref points to instead of just returning the pointer as in the example of wasmtime.
Is it possible to compile such a wasm-module with your package?

Is it possible to compile such a wasm-module with your package?

This library is intended for Rust source code compiled into WASM, so it should work for your case. The host part can be in any programming language, although I've only really tested it with wasmtime (the original Rust library, not its C bindings).
I must say: the use case you're describing looks pretty weird in the sense that it could seemingly be solved without using externrefs. If your goal is to just pass chars / byte buffers from the host to a WASM module, the conventional way to do so is to export the system allocator from the module, i.e., alloc / realloc / free equivalents. (free is needed if the ownership is not transferred from the host to the module.) The algorithm is as follows:

Call alloc() on the host with the necessary capacity, alignment etc., get a pointer to the WASM linear memory.
Copy bytes to the WASM linear memory at the pointer.
Pass the pointer and buffer length to the WASM module, e.g. via a module export.
In the module code: take ownership of the allocated bytes if required.

Here's rough Rust pseudo-code for the WASM module:
/// `alloc()` export. This version only allocates bytes, but this is good enough for `String`s as well.
#[no_mangle]
#[export_name = "alloc_bytes"]
pub extern "C" fn __alloc_bytes(capacity: usize) -> *mut u8 {
    let bytes = Vec::<u8>::with_capacity(capacity);
    let mut bytes = ManuallyDrop::new(bytes);
    // ^ Forgets about bytes (we'll take ownership of them in the export below).
    bytes.as_mut_ptr()
}

/// The "main" export that receives a `String` as an input.
#[no_mangle]
#[export_name = "receive_string"]
pub unsafe extern "C" fn __receive_string(string_ptr: *mut u8, string_len: usize) {
    let string = String::from_raw_parts(string_ptr, string_len, string_len);
    // ^ This takes ownership of the bytes passed from the host, so they are properly
    // deallocated on the module side.

    // Do something with `string`...
}

...and for the wasmtime host:
let alloc_bytes: TypedFunc<u32, u32> = // exported function extracted from the module
let memory: Memory = // WASM linear memory of the module
let mut ctx = // execution context
let string = "Hello, world!";
let ptr = alloc_bytes.call(ctx.as_context_mut(), string.len())?;
let ptr = usize::try_from(ptr).unwrap();
memory.write(ctx.as_context_mut(), ptr, string.as_bytes())?;

Furthermore, with externrefs, you're likely to run into some problems:

This way I can share a pointer to an object (such as a char or even a struct), pass this to the wasm-module which can modify it and then return it back to the host.

An externref is completely opaque from the WASM module perspective. You cannot dereference it in the module and cannot directly access or modify any data behind the pointer. The only thing you can do is to pass the externref back to the host and act on it this way. So, in your use case, you would likely need some WASM import functions that take a char externref as an argument and modify the underlying chars in certain ways; without these functions, an externref would be virtually useless.

FYI, I have published the initial version of the crate. Now, it can be specified in dependencies as externref = "0.1.0".

Thank you very much for your very detailed response and also your pseudo code. It really helped me a lot. I appreciate it! I will include this in my application.

FYI, I have published the initial version of the crate. Now, it can be specified in dependencies as externref = "0.1.0".

Yes, the crate works like that now.


BungeeCord port not honored

Bug Report
System Information

Operating System (Including distribution name and version number)
AMP version and build date (Always use the version number, 'latest' is not valid!)
Which AMP release stream you're using (Mainline, Nightly or FastTrack)

I confirm:

[x] that I have searched for an existing bug report for this issue.
[x] that I am using the latest available version of AMP.
[x] that my operating system is up-to-date.

Symptoms

BungeeCord instances do not set the server port in config.yml.
Reproduction

Step 1: Create BungeeCord instance
Step 2: Download BungeeCord
Step 3: Start server

this isn't a bug????
bungeecord is runtime only, meaning amp doesn't have control over the config.yml/config.toml it will only start and stop the proxy like a server wrapper
just tell amp the port in the config manually its been like this a while
me and a friend are working on something that might fix this with our own module buuuuut i see why mike left this out

How would AMP be unable to alter config.yml to use the required port? There's nothing stopping it, no technical limitation, and I even double checked on the discord, it is within the current abilities of modules.
While it may not be a bug in the sense of "it has always written to server.properties" it is most certainly a bug in the sense of "bungeecord ignores the instance assigned port". Call it an enhansment, call it a bug, call it a feature request if you like. The current behavior is beyond useless, as it actively uses a port for the instance that may not actually be in use, and should be changed.

Ideally Bungee would need a whole new module building for it since it's not really feasible to integrate it with the Minecraft module. Right now though yes, Bungee is 'runtime only' in terms of AMP is able to run it but can't configure or monitor it at all just yet.


Show in menu bar what's currently stored in clipboard?

Hi @p0deje ,
What do you think of a feature to show the currently stored item next to the icon in the menu bar?
Would be handy see at one glance what's currently stored in clipboard!

That might be useful, but few questions:

How should it show long text?
How images should be shown? Smaller versions?
How files should be shown?

Maybe limit to X characters, e.g. 20
2./3. I would start with text for now and if others deem useful, this can be expanded to images and files in the future.

What do you think?

Oooh, this is an interesting option. I think ~20 characters would be enough for text. For an image it could just say [image] and for a file it could say [filename.ext] or [truncatedfilen....ext] where the filename shows the first 15 or so characters and then the extension.

Great start indeed!
Stickyhavr<EMAIL_ADDRESS>schrieb am Mi. 9. Sep. 2020 um 00:49:

Oooh, this is an interesting option. I think ~20 characters would be
enough for text. For an image it could just say [image] and for a file it
could say [filename.ext] or [truncatedfilen....ext] where the filename
shows the first 15 or so characters and then the extension.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/p0deje/Maccy/issues/152#issuecomment-689176748, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AABJXQ56E2UFO5GAUDU7BEDSE2YJNANCNFSM4QF7AB7Q
.

Was looking into working on this issue. Would this be an optional feature, or the default?
The reason I ask this--I do not believe there is a way to display both the Maccy logo and the current contents of the clipboard in the menu bar with the current Apple APIs.

I think this should be an optional feature! Others may prefer to only have
the Maccy logo.
On Fri, 30 Oct 2020 at 20:35, Scott Beinlich<EMAIL_ADDRESS>wrote:

Was looking into working on this issue. Would this be an optional feature,
or the default?
The reason I ask this--I do not believe there is a way to display both the
Maccy logo and the current contents of the clipboard in the menu bar
with the current Apple APIs.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/p0deje/Maccy/issues/152#issuecomment-719756101, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AABJXQ5XN53I7IFPN3XE7T3SNMIRDANCNFSM4QF7AB7Q
.

Cool, actually think I found a way to include the logo with the text, I'll look into it

Now, that would be sweet! :)
On Fri, 30 Oct 2020 at 20:46, Scott Beinlich<EMAIL_ADDRESS>wrote:

Cool, actually think I found a way to include the logo with the text, I'll
look into it
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/p0deje/Maccy/issues/152#issuecomment-719760922, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AABJXQ527CQWAMAGN4VQHALSNMJZ7ANCNFSM4QF7AB7Q
.

@p0deje I'll try to look into this one if that's okay!

I actually made it work already but haven't finished the configuration setting with all the localizations. I'll be happy to merge PR given it's fully complete.

Wow, nice! :)


adding copyright notice by logo electron-js

Hello,
Updated the copyright information on the electron-js logo.

Thank you @catsuns

thank you @sudhakar3697  too.


Recycle the collections for business objects to reduce memory usage and improvement performance significantly

Motivation
For example, collect(Collectors.toSet()) is used frequently to collect business objects (e.g. collect member IDs in a group), but the size of the set is unpredictable, so we need to copy and rehash its elements when resizing, and it's terrible for memory usage and performance.


How to write hello world program for Bangali?

Please see flutter.dev/community for various other resources where you can get help with your own code. The issue tracker is specifically for bug reports and feature requests.


[WIP] A math op with the first cuda kernel

Hi @wenbingl  Is it possible to support a general Cuda Op? This op is only responsible for converting tensor to DLPACK and collect output tensor.
The benefits are that we don't have to write a specific kernel for a specific op., and we could free the flexibility to user to support any kinds of customized operations just like what torch.extentions does.

Hi @wenbingl Is it possible to support a general Cuda Op? This op is only responsible for converting tensor to DLPACK and collect output tensor. The benefits are that we don't have to write a specific kernel for a specific op., and we could free the flexibility to user to support any kinds of customized operations just like what torch.extentions does.

The current goal is to implement a kernel just like we did in onnxruntime. Are you suggesting how we can support the CUDA custom op in Python, which hasn't been implemented yet.

Hi @wenbingl Is it possible to support a general Cuda Op? This op is only responsible for converting tensor to DLPACK and collect output tensor. The benefits are that we don't have to write a specific kernel for a specific op., and we could free the flexibility to user to support any kinds of customized operations just like what torch.extentions does.

The current goal is to implement a kernel just like we did in onnxruntime. Are you suggesting how we can support the CUDA custom op in Python, which hasn't been implemented yet?

Yes, It seems quite useful if we have such a mechanism to support user customized cuda kernel but not touch python inside the graph as what ort-training did (python-op).
With this, users can easily add a custom kernel support by registering a kernel function pointer to ORT, and ort can just call the function pointer (signautre is (DLTensor* tensors, int tensor_lengths, const char* function_name)). This will allow us easily to support all torch extension Ops, TVM ops or any user implemented ops without needing to merge these kernels to ORT/ORT-ext.

Hi @wenbingl Is it possible to support a general Cuda Op? This op is only responsible for converting tensor to DLPACK and collect output tensor. The benefits are that we don't have to write a specific kernel for a specific op., and we could free the flexibility to user to support any kinds of customized operations just like what torch.extentions does.

The current goal is to implement a kernel just like we did in onnxruntime. Are you suggesting how we can support the CUDA custom op in Python, which hasn't been implemented yet?

Yes, It seems quite useful if we have such a mechanism to support user customized cuda kernel but no touch python inside the graph as what ort-training did (python-op). With this, users can easily add a custom kernel support by registering a kernel function pointer to ORT, and ort can just call the function pointer (signautre is (DLTensor* tensors, int tensor_lengths, const char* function_name)). This will allow us easily to support all torch extension Ops, TVM ops or any user implemented ops without needing to merge these kernels to ORT/ORT-ext.

It's a good idea and it's another 'extensions' for the current custom op mechanism. Do you have any use case or a good torch extensions/TVM ops that can be integrated?

It's a good idea and it's another 'extensions' for the current custom op mechanism. Do you have any use case or a good torch extensions/TVM ops that can be integrated?
Yes, (PagedAttention)[https://github.com/vllm-project/vllm] , (Flashattention)[https://github.com/Dao-AILab/flash-attention]
highly optimized w4a16/w8a8 kernels for Matmul in TVM/TensorRT-LLM.
I know it's possible to port those cuda code into ORT, but it's really hard to maintain.

Especially, all these kernels can comunicate with ORT by DLPACK Tensor.


Add jsx/mjs/cjs support

Fix #11
NOTE: I based this PR on top of #16 since I wanted to reuse the tests, so you'll want to merge that PR first

Did not work as expected for me, .js extensions were used for .tsx files, which is not correct for     "jsx": "react-jsx" in tsconfig.json


[GH-5951] Update Plugins > Zoom settings to table format

Summary
This PR updates most of the settings under Plugins > Zoom to the new table-based format. The last two settings will be updated after determining how to document the config.json variables for Plugins generally.
Ticket Link
This PR partly addresses https://github.com/mattermost/docs/issues/5951.

Hello @matthew-src,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.


Failed to pull migrations from remote

Failed to pull migrations from remote. How do I fix it?

Hi, after nhost init --remote, I'm getting failed to pull migrations from remote

I'm not able to reproduce this.
Can you please paste the full output of your terminal (commands and output) here?


Preparata Algorithm

Aim
I would Like to contribute Preparata Algorithm (hard) under LGMSOC'21 in C++
Details
Preparata’s algorithm is a recursive Divide and Conquer Algorithm where the rank of each input key is computed and the keys are outputted according to their ranks.
Programming language

[ ] C
[x] C++
[ ] Java
[ ] Python

@Ayush7614 @Amit366 Can I work on this code in C++ under LGMSOC'21

you can work on it @kamleshjoshi8102


Add batch

[Batch] (https://en.wikipedia.org/wiki/Batch_file) is a script language for Windows (basically like bash on Linux :wink:). It's what you type into cmd.exe and has the file extensions .bat and .cmd.

Ah just saw [it is already there] (https://github.com/github/linguist/blob/master/lib/linguist/languages.yml#L279) - but it has no color, so I did not saw it...
So I'm closing this now.