webman daemon mode 进程异常退出

daemon mode启动之后，进程如果有echo 、 var_dump之类的输出，就会无限重启

worker[sync_data:19580] exit with status 65280
2022-01-22 16:12:23 pid:19470 worker[mqtt:19588] exit with status 65280
2022-01-22 16:12:24 pid:19593 Worker[19593] process terminated
2022-01-22 16:12:24 pid:19601 Worker[19601] process terminated
2022-01-22 16:12:25 pid:19470 worker[sync_data:19593] exit with status 65280
2022-01-22 16:12:25 pid:19470 worker[mqtt:19601] exit with status 65280
2022-01-22 16:12:26 pid:19606 Worker[19606] process terminated
2022-01-22 16:12:26 pid:19611 Worker[19611] process terminated
2022-01-22 16:12:27 pid:19470 worker[sync_data:19606] exit with status 65280
2022-01-22 16:12:27 pid:19470 worker[mqtt:19611] exit with status 65280
2022-01-22 16:12:27 pid:19624 Worker[19624] process terminated
2022-01-22 16:12:27 pid:19619 Worker[19619] process terminated
2022-01-22 16:12:28 pid:19470 worker[mqtt:19624] exit with status 65280
2022-01-22 16:12:28 pid:19470 worker[sync_data:19619] exit with status 65280
2022-01-22 16:12:29 pid:19632 Worker[19632] process terminated
2022-01-22 16:12:29 pid:19637 Worker[19637] process terminated
2022-01-22 16:12:30 pid:19470 worker[mqtt:19632] exit with status 65280
2022-01-22 16:12:30 pid:19470 worker[sync_data:19637] exit with status 65280
2022-01-22 16:12:31 pid:19645 Worker[19645] process terminated
2022-01-22 16:12:31 pid:19650 Worker[19650] process terminated
2022-01-22 16:12:32 pid:19470 worker[mqtt:19645] exit with status 65280
2022-01-22 16:12:32 pid:19470 worker[sync_data:19650] exit with status 65280

环境Workerman version:4.0.26          PHP version:7.4.22

运行 php -v 截图下，看看是不是用了dev版本

PHP 7.4.22 (cli) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

config/server.php里设置成只开一个进程。启动后php start.php status 找到这个进程pid，用命令
strace -s500 -ttp 进程pid ，然后粘贴下输出，大概能看到为什么进程会退出。

试了一下，看不出什么异常。strace -s500 -ttp 6546
strace: Process 6546 attached
10:53:18.655786 restart_syscall(<... resuming interrupted system call ...>) = 0
10:54:00.586706 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:54:55.587272 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.592464 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.592969 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.593383 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.593695 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.594015 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.594404 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.594730 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.595453 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.595869 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.596288 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.596714 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.597081 restart_syscall(<... resuming interrupted restart_syscall ...>) = 1225
10:55:20.597924 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.598442 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.598968 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.599359 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.599728 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.600142 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.600875 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.601187 restart_syscall(<... resuming interrupted restart_syscall ...>) = 4015
10:55:20.602778 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.603334 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.604110 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.604687 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.605102 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.605483 restart_syscall(<... resuming interrupted restart_syscall ...>) = 1877
10:55:20.606532 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.607164 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.607515 restart_syscall(<... resuming interrupted restart_syscall ...>) = 7265
10:55:20.609468 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.609831 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.610331 restart_syscall(<... resuming interrupted restart_syscall ...>) = 15
10:55:20.621118 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.622443 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=7265, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
10:55:20.622996 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.623339 restart_syscall(<... resuming interrupted restart_syscall ...>) = 7265
10:55:20.624064 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.624520 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.625275 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.625658 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.626191 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.626789 restart_syscall(<... resuming interrupted restart_syscall ...>) = 2333
10:55:20.627822 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.628758 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.629151 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.629648 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.630221 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.630637 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.630888 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.631308 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.631944 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.632445 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.632765 restart_syscall(<... resuming interrupted restart_syscall ...>) = 6230
10:55:20.635140 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.635602 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.636150 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.636541 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.637091 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.637720 restart_syscall(<... resuming interrupted restart_syscall ...>) = 6780
10:55:20.639705 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.640171 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.640684 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.641084 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.641506 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.642014 restart_syscall(<... resuming interrupted restart_syscall ...>) = 1914
10:55:20.643268 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.643839 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.644360 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.644939 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.645702 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.645988 restart_syscall(<... resuming interrupted restart_syscall ...>) = 2651
10:55:20.647083 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.647851 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.648293 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.649080 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.649603 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.649904 restart_syscall(<... resuming interrupted restart_syscall ...>) = 1029
10:55:20.650762 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.651190 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.651901 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.652520 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.653106 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.653680 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3032
10:55:20.654419 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.654947 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.655421 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.655803 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.656142 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.656613 restart_syscall(<... resuming interrupted restart_syscall ...>) = 1197
10:55:20.657193 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.657640 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.658092 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.660154 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.661916 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.665267 restart_syscall(<... resuming interrupted restart_syscall ...>) = 845
10:55:20.666104 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.667446 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.668475 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.669034 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.669600 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.671065 restart_syscall(<... resuming interrupted restart_syscall ...>) = 1737
10:55:20.672749 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.675625 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.676678 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.677244 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.677748 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.679820 restart_syscall(<... resuming interrupted restart_syscall ...>) = 1281
10:55:20.681110 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.682079 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.684182 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.685129 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.685612 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.685943 restart_syscall(<... resuming interrupted restart_syscall ...>) = 8820
10:55:20.688389 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.689870 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.690405 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.690867 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.691446 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.691796 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.692208 restart_syscall(<... resuming interrupted restart_syscall ...>) = 6442
10:55:20.694473 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.694913 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.695708 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.696375 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.696769 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.697357 restart_syscall(<... resuming interrupted restart_syscall ...>) = 7834
10:55:20.699785 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.700243 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.700740 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.701291 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.701640 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.701890 restart_syscall(<... resuming interrupted restart_syscall ...>) = 958
10:55:20.702779 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.703579 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.703948 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.704390 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.705232 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.705543 restart_syscall(<... resuming interrupted restart_syscall ...>) = 1085
10:55:20.706298 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.707223 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.707624 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.708403 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.708988 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.709323 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.709844 restart_syscall(<... resuming interrupted restart_syscall ...>) = 3
10:55:20.710925 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.711263 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.711558 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.712028 restart_syscall(<... resuming interrupted restart_syscall ...>) = 101
10:55:20.712803 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.713380 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.713741 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.714207 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.715277 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.715826 restart_syscall(<... resuming interrupted restart_syscall ...>) = 4
10:55:20.716175 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.716409 restart_syscall(<... resuming interrupted restart_syscall ...>) = 773
10:55:20.718105 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.718592 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.719063 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.719441 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.720355 restart_syscall(<... resuming interrupted restart_syscall ...>) = 4
10:55:20.720748 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.721315 restart_syscall(<... resuming interrupted restart_syscall ...>) = 423
10:55:20.722090 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.722580 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.723309 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.723743 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.724416 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.724762 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.725141 restart_syscall(<... resuming interrupted restart_syscall ...>) = 4
10:55:20.725808 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.726063 restart_syscall(<... resuming interrupted restart_syscall ...>) = 7273
10:55:20.727505 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.727959 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.728419 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.728949 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.729421 restart_syscall(<... resuming interrupted restart_syscall ...>) = 4
10:55:20.730217 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.730634 restart_syscall(<... resuming interrupted restart_syscall ...>) = 2380
10:55:20.731625 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.732352 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.732882 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.733254 restart_syscall(<... resuming interrupted restart_syscall ...>) = 4
10:55:20.733642 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.734040 restart_syscall(<... resuming interrupted restart_syscall ...>) = 881
10:55:20.735897 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.736699 restart_syscall(<... resuming interrupted restart_syscall ...>) = 4
10:55:20.737352 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.738134 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.738647 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.739516 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.739884 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.740654 restart_syscall(<... resuming interrupted restart_syscall ...>) = 5
10:55:20.741035 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.741515 restart_syscall(<... resuming interrupted restart_syscall ...>) = 32590
10:55:20.747853 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.748299 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.748898 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.749504 restart_syscall(<... resuming interrupted restart_syscall ...>) = 5
10:55:20.749870 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.750756 restart_syscall(<... resuming interrupted restart_syscall ...>) = 22074
10:55:20.753094 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.753620 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.754358 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.754781 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.755426 restart_syscall(<... resuming interrupted restart_syscall ...>) = 5
10:55:20.755911 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.756316 restart_syscall(<... resuming interrupted restart_syscall ...>) = 24826
10:55:20.758022 restart_syscall(<... resuming interrupted restart_syscall ...>) =<PHONE_NUMBER>
10:55:20.761774 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.762801 restart_syscall(<... resuming interrupted restart_syscall ...>) = 168
10:55:20.763250 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.764108 restart_syscall(<... resuming interrupted restart_syscall ...>) = 6546
10:55:20.764477 restart_syscall(<... resuming interrupted restart_syscall ...>) = 6546
10:55:20.764779 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.765134 restart_syscall(<... resuming interrupted restart_syscall ...>) = 4
10:55:20.765726 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.765970 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.766566 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.767294 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.767912 restart_syscall(<... resuming interrupted restart_syscall ...>) = 61
10:55:20.768491 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.769028 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.769697 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.770324 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.770718 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.771486 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.773602 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.774586 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.775240 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.776049 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.776726 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.777767 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.778561 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.779424 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.780185 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.780899 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.781709 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.782153 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.783069 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.783704 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.784296 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.785213 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.785889 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.786409 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.787490 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.793560 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.794662 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.797124 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.797522 restart_syscall(<... resuming interrupted restart_syscall ...>) = 0
10:55:20.799726 restart_syscall(<... resuming interrupted restart_syscall ...>) = ?
10:55:20.802294 +++ exited with 255 +++

我这边用的是自定义进程。代码如下。把echo那行代码去掉，就正常了
class IpMonitor
{
public function onWorkerStart(Worker $worker)
{
//  每5分钟检测一次盒子ip是否变化
$deviceNumber = Application::getInstance()->getDeviceNumber();
Timer::add(300, function () use ($deviceNumber) {
ServiceFactory::Common()->deviceIpMonitor($deviceNumber);
echo sprintf("[" . date('Y-m-d H:i:s') . "] %s", "IP监控") . PHP_EOL;
});
}
}

截图下config/server.php配置
strace没有捕获到执行echo 输出的记录。因为你在onWorkerStart里就输出了，strace的时候已经执行完了echo相关的代码。
不要在进程启动的时候就输出，把输出改成用定时器输出，比如20秒后输出，这样可以捕获到echo的时候进程发生了什么操作。然后再贴下strace的结果。

另外看下rutime/log 下有没有什么日志

代码里面用的是定时器输出的。启动后5分钟输出。runtime/log 目录下，stdout.log 和 webman-xxxxx.log没有错误日志，workerman.log只有前面贴出来的exit with status 65280，没有具体错误信息

代码里面用的是定时器输出的。启动后5分钟输出。runtime/log 目录下，stdout.log 和 webman-xxxxx.log没有错误日志，workerman.log只有前面贴出来的exit with status 65280，没有具体错误信息

return [
'listen'               => 'http://<IP_ADDRESS>:8787',
'transport'            => 'tcp',
'context'              => [],
'name'                 => 'webman',
'count'                => 1,
'user'                 => '',
'group'                => '',
'reusePort'            => false,
'pid_file'             => runtime_path() . '/webman.pid',
'stdout_file'          => runtime_path() . '/logs/stdout.log',
'log_file'             => runtime_path() . '/logs/workerman.log',
'max_package_size'     =><PHONE_NUMBER>
];
这个是我这边config/server.php的配置

重新创建一个webman项目，不带业务代码echo试下有没有问题。
strace里看到了一个SIGCHLD的信号，看下是不是业务用了pcntl_fork。webman里不允许用pcntl_fork


run imdb_lstm.py   error: 'callkernel_node'  is undefined

error info:
mod.cu(299): error: identifier ''callkernel_node_3a084fd032db206a67ca8121a24aa32e_0'' is undefined
1 error detected in the compilation of ''C:Users/aa/AppData/Local/Temp/tmpxft_000041d4_00000000-10_mod.cpp1.ii''
when I run mnist_cnn.py, it worked well. But when I run the imdb_lstm.py, It didn't work.
numpy1.12.0
theano0.8.2
pip8.1.2
Anconda2.7
CUDA7.5
cudnn-7.5-windows7-x64-v5.0-ga
keras1.2.1
GCC4.7.0
.theanorc.txt:
[global]
openmp=False
device = gpu
optimizer_including=cudnn
floatX = float32
allow_input_downcast=True
[lib]
cnmem = 0.8
[blas]
ldflags=
[gcc]
cxxflags=-ID:\Anaconda2\MinGW
[nvcc]
fastmath = True
flags=-LD:\Anaconda2\libs
compiler_bindir=D:\VS2012\VC\bin
when I run mnist_cnn.py, it worked well. But when I run the imdb_lstm.py, It didn't work.
Please help me!

I am getting the same error

    model.add(LSTM(n_hidden[0], input_shape=(seq_length, X.shape[2]),
                           return_sequences=False,W_regularizer=l2(w_reg)))
    model.fit(X_train, y_train, batch_size=batch_size, nb_epoch=nb_epoch,
              class_weight = {0:1, 1:2*n_int/n_ict},validation_data=(X_test,y_test),callbacks=callbacks)``

This l

I run into the same error with theano backend and latest keras1.2.1. But no error if using keras 1.2.0

when I add 'optimizer=None' to .theanorc.txt, it worked.But it maybe run too slow.
Maybe  it  related to CUDNN?
My OS:win10

@iamkkk   Thank you,it worked when I used keras 1.2.0

@iamkkk Also worked for me! Thank you so much

Thank you so much.


TT-001: Initial Text Viewer Implementation

Overview
Initial Text Viewer Implementation.

This branch was created off another feature branch, not main. Rejected.


Floats let bindings outside of literal arrays, literal records and saturated constructors

I floated everything that IMO can float. A few files saw some tweaks with no benefit or disadvantage in readability, and a few are a bit more readable. In general, floating makes reasoning about BackendSemantics easier because if you're operating on semantic X and it's composed of Y and Z, there's less of a chance now that Y and Z have a let binding in them, so you aren't blocked by the closure of a let's body.

My overall opinion of this PR currently is that it seems to be a little bit of a wash when it comes to actual codegen. I don't agree that the results in the snapshots are inherently simpler, and at scale I fear it might create significant divergence from source that isn't advantageous. There is some additional context added, which adds a bit of complexity and I feel the implementation as-is reduces the legibility of eval (for me at least). With that, I'm hesitant to merge this without clear understanding of what the advantages are for optimizations, because if that exists it's not capture by any existing snapshots. If so, this PR might warrant additional snapshots to illustrate the effectiveness of the transformation.
There is also a rewrite that reassociates lets bottom-up in build (via RewriteLetAssoc). That means we do floating in both eval and build, but I wonder if that's necessary (can they be consolidated?), if one or the other is more necessary, and if bottom-up (build) vs top-down (eval) makes any difference.

Thanks a lot for the review.
I'll add an additional snapshot that captures the optimizations. The optimizations definitely kick in on my inlined-recursion-try branch from which this PR was carved out, but I haven't yet landed on a simple test that shows them off.
I think once that is there, we can evaluated which of these changes make sense. The only one currently in my inlined-recursion-try branch is the one for literal arrays, but the reason that I put them all here (literal records, ctors, app, etc) is so that we can discuss them and decide which ones make the cut.
I don't see any of these floatings as inherently more or less advantageous than the others. All of them can potentially float a let above something being deref'd, which increases the chances that a prim op will be optimized out (again, I need to write a good test for this). But if some of them create more significant source divergence than others, we can make a call which ones alter the original order too much.
As for the way the functions are written, I agree that it's Byzantine. I think it'd be good to settle on the group of floats we're comfortable with, and then I can go back and make the abstraction better.
As for the top-down vs bottom up, I don't have a strong opinion. I actually tried to get rid of RewriteLetAssoc by doing this bottom-down approach but it led to worse codegen. The nice thing about top-down for my purposes with the rewrite branch is that it results in potentially less turns of optimize because deref has the floated lets to work with a bit earlier.
So, to summarize, lemme concoct a good snapshot (or come to the conclusion that said snapshot is unconcoctable) and we'll take it from there!

@natefaubion I've added four tests now. The tests FloatLetFromArray, FloatLetFromRecord and FloatLetFromCtor all lead to eager evaluation of the + operation on this branch whereas there isn't any on main. In FloatLetFromApp, the result is IMO easier to read & resembles conventional JS syntax more than the one on main.
With those tests in place, I'm interested in your thoughts on the changes in the tests. Do you think they are improvements? If so, do you feel the benefits outweigh the cost of the let-bound terms appearing farther away from their original location?

It is hard for me to know for sure with all the additional changes unrelated to let floating. I can understand that let floating (much like inlining) can enable other optimizations, but my goal is to understand what those opportunities actually are so that I can reason about them, rather than nebulously guessing that it might do something.
My understanding in the changes is that you have implemented a number of additional extensions to the recently introduced deref mechanism, and you are proposing that the let floating makes this work much more reliably. Your goal is to remove as many "let barriers" as possible in any path that you might want to deref as these barriers are a dead end for optimization. This makes sense in theory.
The problem that I have with this is I don't understand the extensions to this mechanism and what they accomplish, so it's hard for me to say that this specifically is the path that should be taken. In the accepted PR, deref was a simple constant time operation to peek at a known value for known operations, but in this PR it's a greedy recursive rewrite of an arbitrary term. I'm wary that it's quickly becoming a hammer for any nail-looking optimization, subverting other inlining heuristics in the goal of reaching a very specific, localized codegen target. My worries may definitely be unfounded, but it may be that we should be talking about this extensions first if they are a prerequisite.

My understanding in the changes is that you have implemented a number of additional extensions to the recently introduced deref mechanism, and you are proposing that the let floating makes this work much more reliably. Your goal is to remove as many "let barriers" as possible in any path that you might want to deref as these barriers are a dead end for deref-based optimizations since it can't peek through the let.

Just to confirm that yes, this is exactly what's going on & the strategy I took to make recursive function inlining work in the larger branch.

It may be that we should be talking about these extensions first if they are a prerequisite.

I agree: we should consider if this is the best way to achieve that goal.
One thing I just added from my monster-branch is adding a deref call to the creation of all the NeutLocals in quote. As most of the deref-ing is happening on locals or something with locals inside of it, this speeds stuff up.

The problem that I have with this is I don't understand the extensions to this mechanism and what they accomplish, so it's hard for me to say that this specifically is the path that should be taken.

I'll start from the goal and work my way backwards to the implementation:

In my recursion branch, the decision to inline or not is accomplished by very simple guard that basically checks if there's a branch condition.
In order for a branch to be eliminated, a prim op often needs to be evaluated to true or false.
In order to determine the arguments to the prim op, for non-trivial cases, we need to deref a local.
Often times, a local refers to an accessor, in which case we need to dig inside the accessor to get the value we want. This is the purpose of the new code in deref.
Sometimes, a local has a usable value under several let bindings. To cut through these in the semantic layer, we need to float the let bindings so that we don't hit any closures. This is the purpose of the floatLet family of functions.

So, in summary, deref is used to dig into a local and get a value for a prim op. All of the extensions are used to dig further, ie through a chain of locals or through accessors. The let-floating is used to make sure we don't hit a let when we're deref-fing.
Let me know if this helps and if you have any additional questions or need any additional clarifications. I like the way you phrase it when you say: "we should be talking about these extensions first if they are a prerequisite" - I'm not sure if they are. The extensions, namely the increased amount of deref-ing, the more elaborate deref, and the let floating, are together sufficient to accomplish what I'm trying to do (the code in my larger branch works & is now fast after I've optimized it a bit), but I don't know if they're the best way to do it.

@natefaubion I implemented the SemRef mechanism we discussed yesterday. Works fine!
Let me know what you think a good next step would be. Two options I can think of:

I can remove the let floating and try to write snapshots focus just on deref in this PR, doing let floating in a separate PR once this is merged. I'm not sure, though, if these changes alone can be picked up without let floating. I'd have to experiment.
I can leave the let floating & snapshots in and work on making the floating functions more palatable, as they're still a hot mess of abstraction and indirection.

I pushed some code to make the let-floating less complex to follow. It uses a more standard pattern of building up a free monad via floatMe and then interpreting the monad with runFloatLets or runFloatLetsWithEnv. That way, the eval function is easier to follow, ie:
      Lit (LitArray arr) ->
        runFloatLets atTop env $ NeutLit <$> (LitArray <$> traverse (eval env >>> floatMe) arr)

whereas current main is something like:
      Lit (LitArray arr) ->
        NeutLit (LitArray (eval env <$> arr))

I would prefer to review these things separately, as they are orthogonal, and I still have significant questions regarding let floating and what we should do there. My recommendation would to make a separate PR just for derefing, and where we can figure out tests in the absence of let floating. I would prefer to not rely on let floating tests to demonstrate derefing.


placement: add rule definitions

Signed-off-by: disksing<EMAIL_ADDRESS>What problem does this PR solve?
Add definitions for placement rules feature.
What is changed and how it works?
cannot work now.
Check List
Tests

Unit test

Codecov Report

Merging #1834 into master will decrease coverage by 0.05%.
The diff coverage is 83.82%.

@@            Coverage Diff             @@
##           master    #1834      +/-   ##
==========================================
- Coverage   78.13%   78.08%   -0.06%
==========================================
  Files         168      171       +3
  Lines       17009    17077      +68
==========================================
+ Hits        13290    13334      +44
- Misses       2635     2652      +17
- Partials     1084     1091       +7

Impacted Files
Coverage Δ

pkg/slice/slice.go
100% <100%> (ø)

server/schedule/placement/label_constraint.go
80% <80%> (ø)

server/schedule/placement/rule.go
81.81% <81.81%> (ø)

pkg/metricutil/metricutil.go
90.62% <0%> (-9.38%)
:arrow_down:

pkg/etcdutil/etcdutil.go
82.6% <0%> (-5.8%)
:arrow_down:

server/member/leader.go
75.51% <0%> (-4.6%)
:arrow_down:

client/client.go
68.6% <0%> (-1.3%)
:arrow_down:

server/grpc_service.go
57.04% <0%> (-0.44%)
:arrow_down:

... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 65883ce...88ccede. Read the comment docs.


RAC-3711 Common FIT code still contains many references to 'ora', which is the…

… address of the Onrack or RackHD server, mostly via the ARGS_LIST dict that contains most of the runtime parameters.
This story will change 'ora' references to 'server' in the following files but still retain ARGS_LIST'ora' as a duplicate of ARGS_LIST'server' for backward compatibility.
Files affected:
common/fit_common.py - defines ARGS_LIST and related stuff.
config/stack_config.json - change keys 'ora' to 'server'
run_tests.py - change 'ora' argument to 'server'
README.md

What tests have you run to verify functionality?

@johren run smoke tests

@ebedros I spoke with George a few minutes ago.  This PR should just be closed.  Not only have the file locations changed, but the parameters are probably changing as well.

Closing PRs since file locations and parameters changed.


Add Terraform support

Based on discussion in https://github.com/dependabot/feedback/issues/118.

WHAT?! You're freggin awesome. That was fast. Thanks man! Will try this out today =)

Just fixing a bug in it - should be all good in the next hour.

OK, working as expected and ready for you to try! There's a bug fix deploying right now that will be in production in 5 mins, but other than that I think everything is good. 🎉
Currently only handles git tags, but handling registry modules is 90% there - I'll get that finished tomorrow.

@greysteil works like a charm!
https://github.com/cloudposse/terraform-aws-alb/pulls
We'll be adding all 100+ repos over time.
Thanks again!

Encountered one problem. We're unable to add repo with nested terraform modules.
https://github.com/dependabot/dependabot-core/issues/649

This looks awesome! Do you think handling updates to providers would be doable too? Some of them get new releases extremely often (eg. the aws provider is released weekly).

@greysteil Congrats on the acquisition! Just checking in again on the terraform provider support - keeping these tested and updated is still a pain in our butt. :)

We're feeling the same pain with providers - would love to see this feature! Happy to help write some code if you've got any guidance on how you'd want this tackled.

We're also starting to play around with the Terraform Cloud private registry, so support for that could be interesting.


python36Packages.uncertainties: 3.0.2 -> 3.0.3

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/python3.6-uncertainties/versions.
meta.description for python36Packages.uncertainties is: '"Transparent calculations with uncertainties on the quantities involved (aka error propagation)"'.

Checks done (click to expand)

built on NixOS

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 3.0.3 with grep in /nix/store/2ksxfnvl1141ljh2a3vndsn07dsghkz3-python3.6-uncertainties-3.0.3

directory tree listing: https://gist.github.com/a92efed7a4f6aab9e4378a4005a26a41

du listing: https://gist.github.com/87b720cde630f5ea1563680de3cf3443

Outpath report (click to expand)

Outpath difference report
8 total rebuild paths
2 package rebuilds
2 x86_64-linux rebuilds
2 i686-linux rebuilds
2 x86_64-darwin rebuilds
2 aarch64-linux rebuilds
First ten rebuilds by attrpath
python27Packages.uncertainties
python36Packages.uncertainties

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/2ksxfnvl1141ljh2a3vndsn07dsghkz3-python3.6-uncertainties-3.0.3 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A python36Packages.uncertainties https://github.com/r-ryantm/nixpkgs/archive/64e0a504c9637689bb9731bd8d88487824f281a5.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/2ksxfnvl1141ljh2a3vndsn07dsghkz3-python3.6-uncertainties-3.0.3
ls -la /nix/store/2ksxfnvl1141ljh2a3vndsn07dsghkz3-python3.6-uncertainties-3.0.3/bin

cc @rnhmjoj for testing.

Success on aarch64-linux (full log)
Attempted: python36Packages.uncertainties
Partial log (click to expand)
Installing collected packages: uncertainties
Successfully installed uncertainties-3.0.3
/build/uncertainties-3.0.3
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/881g2r1wdmx70vg597b26apmr4sqd869-python3.6-uncertainties-3.0.3
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/881g2r1wdmx70vg597b26apmr4sqd869-python3.6-uncertainties-3.0.3/lib
patching script interpreter paths in /nix/store/881g2r1wdmx70vg597b26apmr4sqd869-python3.6-uncertainties-3.0.3
checking for references to /build in /nix/store/881g2r1wdmx70vg597b26apmr4sqd869-python3.6-uncertainties-3.0.3...
/nix/store/881g2r1wdmx70vg597b26apmr4sqd869-python3.6-uncertainties-3.0.3

Success on x86_64-darwin (full log)
Attempted: python36Packages.uncertainties
Partial log (click to expand)
/private/tmp/nix-build-python3.6-uncertainties-3.0.3.drv-0/uncertainties-3.0.3/dist /private/tmp/nix-build-python3.6-uncertainties-3.0.3.drv-0/uncertainties-3.0.3
Processing ./uncertainties-3.0.3-py3-none-any.whl
Installing collected packages: uncertainties
Successfully installed uncertainties-3.0.3
/private/tmp/nix-build-python3.6-uncertainties-3.0.3.drv-0/uncertainties-3.0.3
post-installation fixup
strip is /nix/store/g5r4apl0za012ffs6ladinwa5w0m1l3k-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/i799qm7h2bs2699sccsx9y5gdfxpvacj-python3.6-uncertainties-3.0.3/lib
patching script interpreter paths in /nix/store/i799qm7h2bs2699sccsx9y5gdfxpvacj-python3.6-uncertainties-3.0.3
/nix/store/i799qm7h2bs2699sccsx9y5gdfxpvacj-python3.6-uncertainties-3.0.3

Success on x86_64-linux (full log)
Attempted: python36Packages.uncertainties
Partial log (click to expand)
Installing collected packages: uncertainties
Successfully installed uncertainties-3.0.3
/build/uncertainties-3.0.3
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/2ksxfnvl1141ljh2a3vndsn07dsghkz3-python3.6-uncertainties-3.0.3
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/2ksxfnvl1141ljh2a3vndsn07dsghkz3-python3.6-uncertainties-3.0.3/lib
patching script interpreter paths in /nix/store/2ksxfnvl1141ljh2a3vndsn07dsghkz3-python3.6-uncertainties-3.0.3
checking for references to /build in /nix/store/2ksxfnvl1141ljh2a3vndsn07dsghkz3-python3.6-uncertainties-3.0.3...
/nix/store/2ksxfnvl1141ljh2a3vndsn07dsghkz3-python3.6-uncertainties-3.0.3


Phase 1: Advanced search in Materials Commons Data

Overview
User Story

Changes
Tasks and Estimates (in story points)


Add organization and more

Added stuff

[x] Fetch project info such as the title and other statistics
[x] Organize functions into classes, like user,  userSession, etc
[x] requirements.txt file to install modules with pip

I see you've made a ton of changes, It'll take me a while to review all of them.

Also, added a project asset fetcher that gives URLs for assets used in projects


chore: Add recommended extensions and debug configuration

Hello, @kadel
Could you have a look?

/lgtm
/approve

Could you merge please? I don't have merge button.

@kadel
Could you merge please?

Surprisingly I don't have write access to this repo :-( I'm even no longer a devfile-samples member :-(


No hotspot in wallet

No hotspot in the Helium wallet at Collectebles. What can be wrong? Miner works properly.

Lucky you. I did the same but this doesn't work for me 😐. Thanks anyway

This should be fixed on version 2.0.7. If the app still shows no hotspots, please try going into settings and click migrate wallet

Yes, it's Merry Black Ant
Dne st 24. 5. 2023 22:15 uživatel Bryan @.***> napsal:

Could you share a Hotspot name to debug?
—
Reply to this email directly, view it on GitHub
https://github.com/helium/wallet-app/issues/261#issuecomment-1561871088,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A7P265N6MUJ5HKA24DO6NG3XHZT77ANCNFSM6AAAAAAXPUCQFM
.
You are receiving this because you authored the thread.Message ID:
@.***>

@Tomval1 I'm showing that the hotspot belongs to wallet EGkMPV5Q3gQqjQwvpS6dzgmiGZCEJVT9vhBHLw7ZewzD
It was transferred on April 26 in this tx https://explorer.solana.com/tx/3Q1298kGBKfBaWaZuMj1whz832VJxM3aig9iVUtwhNk6eJywQS6WZMjxNpaBXUdJdMxmZs5RB7CPz3geqL85iXmD from wallet GtMgq8ZxvbHujZPc5odRkKDVWGb8SsfkNmrD51V57bgJ

This wallet is not mine: EGkMPV5Q3gQqjQwvpS6dzgmiGZCEJVT9vhBHLw7ZewzD
Is there any chance to fix it? Hard miner reset or Upload new firmware into
the miner or something like this?
Thanks
Dne út 20. 6. 2023 17:06 uživatel Noah Prince @.***>
napsal:

@Tomval1 https://github.com/Tomval1 I'm showing that the hotspot
belongs to wallet EGkMPV5Q3gQqjQwvpS6dzgmiGZCEJVT9vhBHLw7ZewzD
It was transferred on April 26 in this tx
https://explorer.solana.com/tx/3Q1298kGBKfBaWaZuMj1whz832VJxM3aig9iVUtwhNk6eJywQS6WZMjxNpaBXUdJdMxmZs5RB7CPz3geqL85iXmD
from wallet GtMgq8ZxvbHujZPc5odRkKDVWGb8SsfkNmrD51V57bgJ
—
Reply to this email directly, view it on GitHub
https://github.com/helium/wallet-app/issues/261#issuecomment-1598977499,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A7P265IY3EUUU7NMSMHP2HDXMG4AXANCNFSM6AAAAAAXPUCQFM
.
You are receiving this because you were mentioned.Message ID:
@.***>

There is not, unfortunately. Because it's crypto, transfers are permanent. This could be related to https://github.com/helium/wallet-app/issues/360
Where did you get that address? Can you ask them to transfer it back to you?

This happened when HTN switched to SOL network. In my wallet appeared NFT
which later Helium development team announced as scam NFT.
I didn't know that I clicked on it and since that time my miner
disappeared. I think my miner was stolen to that address you mentioned.
There was a bug in the Hellium wallet, but who cares.
So I turned my miner off and apparently no chance to fix it
Dne st 21. 6. 2023 19:34 uživatel Noah Prince @.***>
napsal:

There is not, unfortunately. Because it's crypto, transfers are permanent.
This could be related to #360
https://github.com/helium/wallet-app/issues/360
Where did you get that address? Can you ask them to transfer it back to
you?
—
Reply to this email directly, view it on GitHub
https://github.com/helium/wallet-app/issues/261#issuecomment-1601295629,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A7P265IUU6XSM7T6PATV5OTXMMWB3ANCNFSM6AAAAAAXPUCQFM
.
You are receiving this because you were mentioned.Message ID:
@.***>


Marketing Analytics Update

move analytics init to root. track page views on landing and network page

Code looks good but some tests are failing IDK if that's intended or not

:) of course tests are not intended to fail. ill fix it.


Dns-01 issues

Getting issues when i run puppet to get letsencrypt ssl cert. Below are the errors. How do I fix this issue?
[Mon Sep 18 15:59:29 EDT 2017] you must specify a path to the nsupdate key file
[Mon Sep 18 15:59:29 EDT 2017] Error add txt for domain:_acme-challenge.[domain_Name]

How do I work around updating DNS when I don't have control over DNS?

How do I work around updating DNS when I don't have control to DNS?

This module is currently limited to the DNS-01 challenge type. Other challenge types are not supported.


Access context inside effect

Hey! 👋🏽
I'm trying out this library and I'm wondering about accessing the context within an effect.
My question regards something like this:

Effect on initial state updates context and transits to another state
Effect on the next state uses data set by the previous effect <- this is the part I'm asking about

Example
import useStateMachine from '@cassiozen/usestatemachine';

const [state, send] = useStateMachine({ count: 0 })({
  initial: 'first',
  states: {
    first: {
      on: { second: 'second' },
      effect(send, update) {
        update(context => ({ count: context.count + 1 }));
        send('second');
      },
    },
    second: {
      effect(send, update) { // <- context isn't accessible here
        console.log(state.context.count); // is this the only/correct way to access it?
      },
    },
  },
});

Being recently new to state machines, I'm wondering if this is by design and/or if context could be a parameter to the effect function.
If could be added, I'd love to contribute to it!
I have used xstate a bit and there I can access context within actions and services.
useEffectReducer allows access to context within effects.

Thanks for opening this issue. It does make sense, let's implement it.

Cool! Should it be the last param in the effect or the first (this would be a breaking change)?

Thanks a lot for the PR!
I will not merge it immediately since there are a few considerations:

Simply passing context as a parameter to the effect function may not be enough. In case the user does async code in the effects, like a timer or an event listener, the context would be stale.
We also need to consider how the API should look if we also add #28 and #31.

Just referencing this comment in what seems to be the appropriate place - https://github.com/cassiozen/useStateMachine/issues/35#issuecomment-850913336
IIUC this comment suggests the idea of not adding a means of accessing context in an effect, in favour of allowing passing arbitrary data with an event (presumably this means context can be accessed by passing it along with the event). The issue I see here is that, because context is never accessible from within an effect, it always requires that any piece of context is passed “back in” from an external event. It sort of feels like asking a caller of a method to pass in some value of a public field. Slightly unnecessary and provides room for inconsistency. That said, I may have completely misunderstood this!
 And if there is a benefit, then people should use guards despite the fact they could be implemented within an effect.

There's no wrong answer here. In my opinion, splitting your code between effects (things that happen as a side-effect of a state successfully changing) and guards (conditions that must be matched for a state to be allowed to change) makes things more readable.
I'll close this for now since we're going to ship #37 with events payload. If there is a practical reason to reopen this, we can investigate again for a future release.

Reopening, tentative for 0.5.0

@cassiozen, sorry for the delayed feedback - I usually look at open-source notifications on weekends.
I've read all of the discussions and I like the new API with update(callback).send()!
I still think we should allow an effect to read the context, so thanks for reopening this issue.
You pointed out the context being stale inside an effect. I think we can compare it with using the useState hook - we can't call setState and access the updated state in the next line.

The better comparison would be with useEffect: You can get in a state prop inside useEffect, but useEffect allows you to pass an array of dependencies to fix that.
There's no dependency array for the useStateMachine's effects, so we have to provide some other sort of solution so that users can get the latest context.

consideration: Adding context as a param to effect means effects will now expect 4 arguments - might be annoying to use if you will only use a couple (like update and context). Might be the appropriate moment to introduce a breaking change and pass a single object instead.
In E.g.: Instead of this:
effect(_, update, _, context) {
    // ...
}

this:
effect({update, context}) {
    // ...
}

Other considerations:

Since this would be a breaking change, maybe take the opportunity to rename update to setContext (as suggested by @icyJoseph)
Should we change the guard signature too?

Great considerations, I support the change of signature.
Regarding guard, do you mean just passing an object or how it works in general?
I have some questions/considerations on how guard works but I'll open another issue for that.

@arthurdenner - Accessing context inside effects is now available on<EMAIL_ADDRESS>If you have time, can you take a look and share your impressions?

I'm seeing some confusing behavior that I think is related to this change. Specifically, if I return a completion method from an effect that uses setContext, any changes made are not visible to the entry function for the next state:
// Trimmed down example that may or may not actually work, but hopefully makes the point
const [state, send] = useStateMachine<{ test?: boolean }>()({
    initial: "recording",
    states: {
      recording: {
        on: { STOP: "replaying" },
        effect({ context, setContext }) {
          return () => {
            setContext(() => ({ test: true }))
          }
        },
      },
      replaying: {
        on: { RECORD: "recording" },
        effect({ context }) {
          console.log(context?.test!) // prints undefined
        },
      },
    },
  })

I'd expect the finalizer for the recording state to run before the entry method for the replaying state, and any changes that it makes to the context object to be visible.
I can probably refactor my code to work around this, but it may be worth a note in the documentation. In my case the reason to do it this way is that the recording method returns a stop handle which has to be used to stop the recording, and it's easier to do that within the same method rather than storing that handle somewhere so it's visible in the entry method for the replaying state.


No search results in Cerebro Windows

[x] I am on the latest Cerebro.app version
[x] I have searched the issues of this repo and believe that this is not a duplicate

Windows 10:
**Cerebro.app 0.3.1 **:
Relevant information from devtools (See above how to open it):

Issue

I just installed Cerebro on Windows 10 from cerebroapp but I'm unable to see any external apps/files in the results. I installed some plugins( spotify, calculator etc) but it still didn't work (The calculator is also not working)
Also, the app freezes on 'Manage plugins'. I had to install the plugins via cmd.

It worked for me after I restarted the app

I believe this problem is with the cerebro plugins and not the core


Fixed the leafhub_name/cluster_name conflict on the managed clusters

Signed-off-by: myan<EMAIL_ADDRESS>Ref: https://issues.redhat.com/browse/ACM-8202

/retest

/lgtm


Selectively suppress bokeh validation

In #1532 I suppressed all bokeh validation warnings because in most cases these are bogus and not helpful. The better solution will be to disable these selectively, which will probably require adding an API in bokeh to selectively suppress warning messages and then select which ones to suppress in holoviews. We should do this before the bokeh 0.12.7 release.

This issue hasn't come up again so I'll close.


Move Cacti and FireFly to graduated status

Signed-off-by: Tracy Kuhrt<EMAIL_ADDRESS>

LGTM

@tkuhrt looks like I don't have the proper permisison to merge. Ry is OOO and will be back next week and can do it then. Thanks!


CalendarSync has quite a large memory footprint

I looked a little closer at the output of systemd and noticed the large amount of memory CalendarSync apparently uses:
It is fluctuating around 300 to < 600MB with the current 0.10.0 release.
Aug 08 15:12:47 : CalendarSync.service: Consumed 711ms CPU time, 301.4M memory peak.
Aug 09 07:55:08 : CalendarSync.service: Consumed 1.647s CPU time, 546.3M memory peak.
Aug 09 08:25:07 : CalendarSync.service: Consumed 594ms CPU time, 306.2M memory peak.
Aug 09 08:55:07 : CalendarSync.service: Consumed 795ms CPU time, 296.9M memory peak.
Aug 09 09:25:31 : CalendarSync.service: Consumed 758ms CPU time, 318.8M memory peak.
Aug 09 09:55:07 : CalendarSync.service: Consumed 698ms CPU time, 294.7M memory peak.
Aug 09 10:25:07 : CalendarSync.service: Consumed 612ms CPU time, 296.6M memory peak.
Aug 09 10:55:08 : CalendarSync.service: Consumed 1.822s CPU time, 540.2M memory peak.
Aug 09 11:25:08 : CalendarSync.service: Consumed 576ms CPU time, 294.1M memory peak.
Aug 09 11:55:07 : CalendarSync.service: Consumed 567ms CPU time, 294.4M memory peak.
Aug 09 12:25:07 : CalendarSync.service: Consumed 569ms CPU time, 294M memory peak.
Aug 09 12:55:08 : CalendarSync.service: Consumed 562ms CPU time, 296.6M memory peak.
Aug 09 13:25:08 : CalendarSync.service: Consumed 733ms CPU time, 294.2M memory peak.
Aug 09 13:55:08 : CalendarSync.service: Consumed 1.954s CPU time, 541.9M memory peak.
Aug 09 14:25:09 : CalendarSync.service: Consumed 788ms CPU time, 293.9M memory peak.
Aug 12 08:00:23 : CalendarSync.service: Consumed 3.388s CPU time, 552.4M memory peak.

During validation of https://github.com/inovex/CalendarSync/pull/177 I noticed an even bigger memory footprint, especially for the first run:
CalendarSync.service: Consumed 10.940s CPU time, 1.5G memory peak.
But later runs appear to be using more memory than before: destination):
CalendarSync.service: Consumed 3.885s CPU time, 954.7M memory peak.
This is without any changes to the source (or updates being pushed to the sink).
Maybe the cause therefore lies somewhere in the use of the https://github.com/microcosm-cc/bluemonday sanitizer?
There was a change allowing bluemonday to stream its output to a writer directly: https://github.com/microcosm-cc/bluemonday/pull/110. Maybe that would help some?
Let me now if you want me to run some pprof or to provide any other debug info.
^^ @alxndr13  FYI

I did a bit of memory profiling. The memory usage peak is probably mostly caused by https://github.com/inovex/CalendarSync/blob/ccdebc534f875ae0c3a6aa2fd3ee185a553e3ea8/internal/auth/storage_encryption.go#L38 . At least on my machine that allocate a whopping 256MB of memory.
The higher memory usage with the non-release builds is probably caused by https://github.com/inovex/CalendarSync/pull/195 .
Bluemonday doesn't use particularly much memory. And as the transformers are called sequentially, this allows go to run GC during the transformations if necessary. https://github.com/inovex/CalendarSync/pull/197 should reduce the peak memory usage by running a GC after the storage decryption is completed. That should at least limit the memory peak to around 300MB.

Btw, I've used the following patch for memory profiling (run go mod tidy to get the library)
diff --git a/cmd/calendarsync/main.go b/cmd/calendarsync/main.go
index 3cb4ac6..de2b3cc 100644
--- a/cmd/calendarsync/main.go
+++ b/cmd/calendarsync/main.go
@@ -10,6 +10,7 @@ import (
        "github.com/inovex/CalendarSync/internal/models"

        "github.com/charmbracelet/log"
+       "github.com/pkg/profile"
        "github.com/urfave/cli/v2"

        "github.com/inovex/CalendarSync/internal/adapter"
@@ -103,6 +104,8 @@ func main() {
 }

 func Run(c *cli.Context) error {
+       defer profile.Start(profile.MemProfile, profile.MemProfileRate(1)).Stop()
+
        if c.Bool(flagVersion) {
                fmt.Println("Version:", Version)
                os.Exit(0)
@@ -211,5 +214,8 @@ func Run(c *cli.Context) error {
                        log.Fatalf("we had some errors during synchronization:\n%v", err)
                }
        }
+
+       // this looks weird, but without it the profile was incomplete
+       runtime.GC()
+       time.Sleep(1 * time.Second)
        return nil
 }


✨ Deploy production instance of datahub

Part of https://github.com/ministryofjustice/find-moj-data/issues/494
Value / Purpose
We need datahub in prod before we can deploy Find MOJ data to Prod
Proposal

Define the new environment in Github actions / 1pass (The github environment should be approval gated)
Create the namespace in Cloud Platform, including the opensearch & postgres instances
Add required secrets and environment variables, including Entra ID configuration
Modify the deploy workflow to trigger the prod deploy in addition to pre-prod
Deploy main

We can base resources on pre-prod to start with.
Additional Information
TBC: What domain should this be on?
Definition of Done

[x] Github actions includes production
[x] Production environment is running and is protected by EntraID
[ ] prod domain url

it was decided to leave the domain name as is for now - can be revisited if required at a later date


[jvm-package] Prediction contributions dropped for empty columns when training matrix is sparse

Environment:

XGBoost4J version: 0.82
Spark Version: 2.3.3
OpenJDK Version: 1.8.0_212
OS: Ubuntu 18.04 LTS

Steps to reproduce:

Train a XGBoost model using a sparse input matrix (e.g. those constructed by VectorAssembler) with the XGBoost4J-Spark API;
The sparse input matrix should contains some columns that are entirely empty, sometimes as a result of OneHotEncoderEstimator;
Once the training is complete, invoke setContribPredictionCol on the trained model so that it produces the contributions of each feature per-prediction;
Use the trained model to make predictions on any dataset;
Observe the size of each contribution vector --- each contains less elements than expected (which is number_of_features + 1), depending on how many columns were empty in the training dataset;

Minimal Example Reproducing the Issue:

From terminal, start a spark-shell in local mode with the xgboost4j dependency included:spark-shell --packages ml.dmlc:xgboost4j-spark:0.82 --master local[4]

Once the "spark-shell" is ready, paste in the following code:import org.apache.spark.sql.types.{DataTypes, StructField, StructType}
import org.apache.spark.sql.{Dataset, Row, SparkSession}

val raw_training_data = Seq(
    Row(0.0, 1.0, 5.0, 1.0),
    Row(1.0, 1.0, 5.0, 0.0),
    Row(2.0, 1.0, 5.0, 1.0),
    Row(3.0, 1.0, 5.0, 0.0),
    Row(4.0, 1.0, 5.0, 1.0),
    Row(5.0, 1.0, 5.0, 0.0)
)

val raw_testing_data = Seq(
    Row(0.0, 1.0, 5.0, 1.0),
    Row(1.0, 1.0, 4.0, 0.0),
    Row(2.0, 1.0, 3.0, 1.0),
    Row(3.0, 1.0, 2.0, 0.0),
    Row(4.0, 1.0, 1.0, 1.0),
    Row(5.0, 1.0, 0.0, 0.0)
)

val schema = new StructType(Array(
    StructField("x1", DataTypes.DoubleType),
    StructField("x2", DataTypes.DoubleType),
    StructField("x3", DataTypes.DoubleType),
    StructField("label", DataTypes.DoubleType)
))

val features = Array("x1", "x2", "x3")
val coded_features = features.map(f => "coded_" + f)

import org.apache.spark.ml.feature.{VectorAssembler, OneHotEncoderEstimator}
import spark.implicits._

val vectorAssembler = new VectorAssembler().setInputCols(coded_features).setOutputCol("features")
val oneHotEncoderEstimator = new OneHotEncoderEstimator().setHandleInvalid("error").setDropLast(true).setInputCols(features).setOutputCols(coded_features)

val oneHotTrainingDF = spark.createDataFrame(spark.sparkContext.parallelize( Seq( Row(Seq.fill(features.size)(5.0): _*) ) ) , StructType(features.map(f => StructField(f, DataTypes.DoubleType))))
val oneHotEncoder = oneHotEncoderEstimator.fit(oneHotTrainingDF);

val training_data = vectorAssembler.transform( oneHotEncoder.transform( spark.createDataFrame(spark.sparkContext.parallelize(raw_training_data), schema) ) )
val testing_data = vectorAssembler.transform( oneHotEncoder.transform( spark.createDataFrame(spark.sparkContext.parallelize(raw_testing_data), schema)) )

var xgbParam = Map(
    "objective" -> "binary:logistic",
    "num_round" -> 10,
    "missing" -> java.lang.Double.NaN
)

import ml.dmlc.xgboost4j.scala.spark.{XGBoostClassifier, XGBoostClassificationModel}

val xgbClassifier: XGBoostClassifier = new XGBoostClassifier(xgbParam).setFeaturesCol("features").setLabelCol("label")
val xgbClassificationModel: XGBoostClassificationModel = xgbClassifier.fit(training_data)

xgbClassificationModel.setContribPredictionCol("contribPrediction")
val training_prediction: Dataset[Row] = xgbClassificationModel.transform(training_data)
training_prediction.withColumn("contrib_size", size( col("contribPrediction") ) ).show()

val testing_prediction: Dataset[Row] = xgbClassificationModel.transform(testing_data)
testing_prediction.withColumn("contrib_size", size( col("contribPrediction") ) ).show()

The output of the prediction on the training dataset:
+---+---+---+-----+-------------+-------------+---------+--------------------+--------------------+-------------+-----------+----------+------------+
| x1| x2| x3|label|     coded_x1|     coded_x2| coded_x3|            features|   contribPrediction|rawPrediction|probability|prediction|contrib_size|
+---+---+---+-----+-------------+-------------+---------+--------------------+--------------------+-------------+-----------+----------+------------+
|0.0|1.0|5.0|  1.0|(5,[0],[1.0])|(5,[1],[1.0])|(5,[],[])|(15,[0,6],[1.0,1.0])|[0.0, 0.0, 0.0, 0...|   [-0.0,0.0]|  [0.5,0.5]|       0.0|           8|
|1.0|1.0|5.0|  0.0|(5,[1],[1.0])|(5,[1],[1.0])|(5,[],[])|(15,[1,6],[1.0,1.0])|[0.0, 0.0, 0.0, 0...|   [-0.0,0.0]|  [0.5,0.5]|       0.0|           8|
|2.0|1.0|5.0|  1.0|(5,[2],[1.0])|(5,[1],[1.0])|(5,[],[])|(15,[2,6],[1.0,1.0])|[0.0, 0.0, 0.0, 0...|   [-0.0,0.0]|  [0.5,0.5]|       0.0|           8|
|3.0|1.0|5.0|  0.0|(5,[3],[1.0])|(5,[1],[1.0])|(5,[],[])|(15,[3,6],[1.0,1.0])|[0.0, 0.0, 0.0, 0...|   [-0.0,0.0]|  [0.5,0.5]|       0.0|           8|
|4.0|1.0|5.0|  1.0|(5,[4],[1.0])|(5,[1],[1.0])|(5,[],[])|(15,[4,6],[1.0,1.0])|[0.0, 0.0, 0.0, 0...|   [-0.0,0.0]|  [0.5,0.5]|       0.0|           8|
|5.0|1.0|5.0|  0.0|    (5,[],[])|(5,[1],[1.0])|(5,[],[])|      (15,[6],[1.0])|[0.0, 0.0, 0.0, 0...|   [-0.0,0.0]|  [0.5,0.5]|       0.0|           8|
+---+---+---+-----+-------------+-------------+---------+--------------------+--------------------+-------------+-----------+----------+------------+

One can see that the contrib_size column is 8; however, the input column (i.e. features) contains sparse vectors of size 15 --- the expected size of the contribution vector would be 15 + 1 = 16.
In the above example, the OneHotEncoderEstimator was trained not from the data, but separately to give it explicitly knowledge about the number of categories to expect (in this case, 5). The x2 column in the training set contains only 1.0s, so it is translated into a column of vectors containing only [0, 1, 0, 0, 0] in sparse format ((5,[1],[1.0])); The x3 column in the training set contains only 5.0s --- with the dropLast set to True on the OneHotEncoderEstimator, their values are translated into empty sparse vectors ((5,[],[])).
This issue does not seem to be present when the input matrix is dense.
Why is this a problem?
It makes difficult for the consumers of the predictions to figure out what is the per-prediction contribution of each feature if the training data contains empty columns since the columns will be misaligned.

I believe this behaviour is closely related to #4601.

I think it is a bit different with #4601,
when you have an empty column essentially all values in that column is treated as missing, I remember XGBoost algorithm has some problem to deal with such situation....@trivialfis do you have any thoughts here?

I'm not sure, need to see this in action ...

Judging from model dumps, it seems the model wasn't aware of the empty columns/features at all when making predictions. Reading the native code for making the predictions (those in cpu_predictor.cc), it seems the number of columns in the output matrix containing the prediction contributions was derived from the model's num_feature parameter (size_t ncolumns = model.param.num_feature + 1;, link); this might suggest that the model had removed empty columns from the training from the very beginning.
I understand that when the input matrix is sparse, the prediction contribution matrix can contain dense columns, so it makes some sense to not output a full dense matrix with zero-valued contributions for input columns that were empty; maybe it is better to indicate for each prediction contribution column which of the original input columns the contribution was for, or just output a sparse matrix when returning prediction contributions all together?


Issue with depth sensor on L515

Required Info

Camera Model
L515

Firmware Version
<IP_ADDRESS>

Operating System & Version
Ubuntu 18.04 LTS

Kernel Version (Linux Only)
5.4.0-77-generic

Platform
PC

SDK Version
2.48.0

Language
C++/python/ROS

Segment
Lidar

Issue Description
The depth sensor seems to not work properly either in code and in realsense app. I suggest that resolving the problem for realsense app the L515 will work also with my script because some week before all worked properly.
Error showed from realsense app:

Same error but terminal output:

Camera info:

Hi @GitNzino  Some previous occurrences of xioctl(VIDIOC_S_FMT) failed Last Error: Input/output error on the L515 camera model when enabling the depth sensor can be found in the link below:
https://github.com/IntelRealSense/librealsense/issues/8723
Could you first try unplugging the end of the USB cable that is inserted in the camera, turning it around the opposite way and re-inserting it please (the connector is two-way insertion on the camera end of the cable).  Does doing so stop the error from appearing when enabling the depth sensor?

Thank you for reading and responding!
I have already read and this issue, but also trying to rotate the USB type C connectors nothing change.
I want also tell you that I'm using the original Type C connectors and when I start Realsense exe the Red ligth on camera does not appear.

In addiction I have
tried the Realsense exe also for Windows, but not works neither

Thanks very much for the additional details.  I will seek advice from Intel about your particular case.  Thank you for your patience!

As the camera is able to be detected in the Viewer, and display its details, let's explore the possibility of a firmware-related problem first.  I see that you are using firmware <IP_ADDRESS> - if you have updated the firmware recently, did the firmware update coincide with the start of the problem or happen some tine later?

I have tried to installe the <IP_ADDRESS> firmware, but with Ubuntu does not work.
At the start I had no problem with camera, after I leave the camera to another person but I cannot known if he done a firmware upgrade meanwhile, and then the camera returned with this problem.

Did you download the firmware file from the L515 firmware page in the link below and then use the Update Firmware option in the RealSense Viewer program to select the downloaded firmware file to initiate the update?
https://dev.intelrealsense.com/docs/firmware-releases-l500

Yes I followed all the step in that page

If the firmware that is shown in the Viewer's Info display is currently <IP_ADDRESS> then you have the most recent firmware installed.
Although the depth stream will not enable, is the RGB stream able to be enabled correctly?

I tried with firmware <IP_ADDRESS> but when I saw that not worked I re-installed <IP_ADDRESS>.
Yes the other sensor work fine, the only that not works i the depth sensor.
Honestly I don't remember what version of SDK I have, but on Linux i update the libraries very often so if in June you released a new version of SDK then I changed SDK version

2.48.0 was released at the very end of June .  Before that, 2.47.0 was released on 6 June.

Well fine!
Can you suggest a correct method to downgrade the SDK to 2.46 or less?

Do you build librealsense from packages or from source code please?

I build it with apt install

Before 2.47.0, the next oldest version is 2.45.0 as there is not a 2.46.0.
My understanding is that installing a specific librealsense package version is more complex than just installing the latest one, as described in the link below.
https://github.com/IntelRealSense/librealsense/issues/5773#issuecomment-581477785
Installing from source code may be more straightforward, as you just select the source-code folder version that you want from the 'Assets' file lists on the SDK Releases page and build it with CMake.
https://github.com/IntelRealSense/librealsense/releases
Changing versions is considerably easier if you have a Windows computer available instead of Ubuntu, as you can use the automated installer file in the 'Assets' list and the installation simply overwrites the previously installed version.

I get the SDK 2.47.0 on Ubuntu, but the error is still present.

Could you try the rs-capture SDK example program please to test whether the problem is only in the RealSense Viewer or affecting depth streaming in general?
You can launch this example from the Ubuntu terminal with the command rs-capture or on Windows using the instructions in the link below.
https://github.com/IntelRealSense/librealsense/issues/8024#issuecomment-747630656

Ok thank you!
I have tried, and i obtained this error:
13/07 11:17:09,850 ERROR [139888354895744] (types.h:310) xioctl(VIDIOC_S_FMT) failed Last Error: Input/output error
RealSense error calling rs2_pipeline_start(pipe:0x55c697fa2640):
    xioctl(VIDIOC_S_FMT) failed Last Error: Input/output error
 13/07 11:17:09,850 ERROR [139888354895744] (l500-depth.cpp:576) Exception caught in l500_depth_sensor::open

And no window opened

I will check with Intel again for further advice and update you when I have information.  I recommend putting the problem aside until then.  I appreciate your continued patience.

Thank you for support and patience too!
See you soon, have a nice time

Hi @GitNzino  After discussing your case with Intel, they requested that you return your L515 camera to wherever you purchased it from, using the RMA (Return Merchandise Authorization) returns process of that supplier.

Ok, thank you!
I'm closing the issue


fix(toolbar): z-index of mdc-menu positioned over mdc-tab

Temporary workaround for #638. Submitting PR upstream for material-components-web.
Closes #638

Running tests, make sure no consequences of workaround.


VkeyPacketSimulator scenario is broken

Originally posted by @BDisp in https://github.com/gui-cs/Terminal.Gui/issues/2927#issuecomment-1857785921
It's been broken in v2_develop for a while. It is made both better and worse in #2927.
This issue is to track fixing it after #2927 is merged.

Here a prove that the keyboard implementation still failing to invoke events before the derived class. The original unit test is asserting for the Assert.True (view.NewKeyDownEvent (Key.A));. In the TextView there is no key bindings that handles directly the Key.A and thus it return false from the OnInvokingKeyBindings overridden method and the TextView insert the 'a' char when the OnProcessKeyDown method is called, so the ProcessKeyDown is invoked. If we use the Key.Backspace the TextView will handle it on the OnInvokingKeyBindings and return true, so the InvokingKeyBindings event will never be called.
In this way is impossible to code a flow where we can catch the keys in a event before sending to the derived class and the VkeyPacketSimulator scenario will be hard to fix. When we press a command like Ctrl+Shit+Alt+A, which isn't handled by TextView, a message box will opened with the information of the keys pressed.
Try run the follow changed unit test and it will fail on TextView or create a global command that handle the Key.A and probably all views will fail.
	[Fact]
	public void AllViews_KeyDown_All_EventsFire ()
	{
		foreach (var view in TestHelpers.GetAllViews ()) {
			if (view == null) {
				_output.WriteLine ($"ERROR: null view from {nameof (TestHelpers.GetAllViews)}");
				continue;
			}
			_output.WriteLine ($"Testing {view.GetType ().Name}");

			bool keyDown = false;
			view.KeyDown += (s, a) => {
				a.Handled = false; // don't handle it so the other events are called
				keyDown = true;
			};

			bool invokingKeyBindings = false;
			view.InvokingKeyBindings += (s, a) => {
				a.Handled = false; // don't handle it so the other events are called
				invokingKeyBindings = true;
			};

			bool keyDownProcessed = false;
			view.ProcessKeyDown += (s, a) => {
				a.Handled = true;
				keyDownProcessed = true;
			};

			if (view is TextView) {
				Assert.True (view.NewKeyDownEvent (Key.Backspace));
			} else {
				Assert.True (view.NewKeyDownEvent (Key.A)); // this will be true because the ProcessKeyDown event handled it
			}
			Assert.True (keyDown);
			Assert.True (invokingKeyBindings);
			Assert.True (keyDownProcessed);
			view.Dispose ();
		}
	}

Please submit this as a new Issue.

There is no kind of magic to get the right ConsoleKey from a KeyChar because there are the same value on both. For e.g. ConsoleKey.F2 = 113 and the KeyChar = 113 is equal to 'q'. So it isn't easy to sat if the KeyChar is a ConsoleKey or a unicode character. To pass to ConsoleKey.Packet we need to encode both, in the case the KeyChar is also a byte length, on a char length. So the lower bits is the KeyChar and the upper bits is the ConsoleKey. If the KeyChar is a char length then we can't encode the ConsoleKey and on decoding we have to inspect the database to verify if the KeyChar is mapped to a ConsoleKey to get the corresponded value.

If going from a KeyCode to a ConsoleKey is required, shouldn't we adjust the definition of KeyCode so it can be done easily?

If going from a KeyCode to a ConsoleKey is required, shouldn't we adjust the definition of KeyCode so it can be done easily?

That it's only needed in the case the ConsoleKey.Packet is used but we can add to the Key class more properties, like the ConsoleKey, ScanCode. For the KeyChar there is already the AsRune. Another interest property will the the ColumnWidth of a rune :-)

Instead of ConsoleKey and Scancode, what about making it a generic "platform specific data" as in 'object DriverData'?
I don't see the need for NumColumns. People shouldn't be using Key as a substitute for Rune (or Cell).


How to get dev-dependencies in a few different uv repos at once

We have a few repos that center on uv (with dev-dependencies). I have a teammate who uses one virtual environment for all projects, and he wants to install:

All repos editably
All repos' dev-dependencies

Doing something like:
python -m venv .venv && source .venv/bin/activate && pip install uv
cd repo_a
uv sync
cd ../repo_b
uv sync

Doesn't work because uv sync doesn't seem to respect the parent folder's venv.
This is a total question, but how can uv support this use case of multiple editable installs with separate dev-dependencies?

You could set UV_PROJECT_ENVIRONMENT and use uv sync --inexact

Okay thank you, that gets me much closer, but still not quite there:
python -m venv .venv && source .venv/bin/activate && pip install uv
cd repo_a
UV_PROJECT_ENVIRONMENT=../.venv uv sync --inexact
cd ../repo_b_that_depends_on_repo_a
UV_PROJECT_ENVIRONMENT=../.venv uv sync --inexact

The issue is the second uv sync of repo_b_that_depends_on_repo_a will uninstall the editable install of repo_a for a non-editable install.
Is there some way to have the second uv sync not clobber the editable install of repo_a?

Of course :) --no-install-package repo_a in the second invocation should work?

Ah why am I bad at reading --help, I promise I was looking for some arg like that. Thank you again, closing this out


Do we really need the Font Forge checks?

I feel the new Font Validator covers these checks better, https://github.com/googlefonts/fontbakery/blob/master/Lib/fontbakery/specifications/googlefonts.py#L1411-L1564
I would like the results of the MS Validator reports to get logged to the cmdline.
 But sometimes I think they report useful stuff.

I would like the results of the MS Validator reports to get logged to the cmdline.

They are logged, or? We could improve that a bit though.

Ah yes, sorry they are logged. I'll look into them in more detail tomorrow.

I am all for people using Font Validator more (and commission/fund me working on it...), but a couple of things that font forge does hasn't got equivalent tests in Font Validator (yet). Also font forge has a rather large memory foot print, so indeed, you might/should use the Font Validator's tests if they are available.
BTW, a 4000-line python file should probably be re-factored :-). The equivalent part to the python code you refered to above is part of the glyf table test and the maxp table tests.
I think you want to have a look at the T.maxp_GlyphStats section (i.e. line 136 to 297) of part of the maxp table related test:
https://github.com/HinTak/Font-Validator/blob/master/OTFontFileVal/val_maxp.cs
what it does and does not do.
Sorry there is no overall view of the glyf test - TODO - the best I could suggest is to look at the chm file https://github.com/HinTak/Font-Validator/blob/master/bin/FontValidatorHelp.chm and have a look at all the E11XX/W11XX/I11XX/P11XX/A11XX status messages. It certainly detects "contour intersects", "Contours have correct directions", but perhaps not "Glyphs have points at extremas" .
Argh, I was wrong about the last part. Font Validator can emit a "W1112: Not all extremes are marked with the on-curve control points" message. Perhaps the best summary on what glyf table test does and does not do , I can give you, is this issue I filed myself:
https://github.com/Microsoft/Font-Validator/issues/15 .

BTW, a 4000-line python file should probably be re-factored :-).

It's an ongoing effort.

I think that a list of all tests from all tools (native FontBakery, MS FVal, FontForge, etc...) and the equivalences among them would be neat to have if anyone is willing to put the effort into documenting what currently exists...

@m4rc1e you asked,

I would like the results of [FontVal] to get logged to the cmdline

I believe this is now done. Please confirm and close.

I feel the new Font Validator covers these checks better

100% of them?
The headless Font Forge is a truly ugly dependency, but, if there is a single thing it checks that nothing else checks, we must keep it.

OK. There are a few different issues described here:

Whether or not to ditch any of the third-party tools (fontforge, MSFVal, etc)
How these tools overlap with FontBakery tests and among themselves
The burden of bundling together some of these dependencies

I believe that we can rename this issue so that the goal is to map the equivalency of the test-suites provided by each of the third-party tools and how they relate to the FontBakery native tests. And this can be a long-term issue that may or may not lead to ditching some dependencies in the future.

This seems related to  #1602 and #1515

trying to summarize, these are separate issues because:

This one is about what our tests do versus what other testsuites do (and if they're not 100% redundant with our current tests).
#1602 is about reducing the python module dependency footprint.
#1515 seems to be eigther already addressed by the gftools spin-off, or maybe it is about something fancier. Let's see what @chrissimpkins says there.

This mapping of third-party features is not doable within this week, so I'll move it to a future milestone.


How to change the label of "Add new row" text on repeater fields

Hi @aristath
Issue description:
I've added  'button_label'=> __( 'Add New Slides', 'my_textdomain' ), in repeater field to change the label of add new row button but it didn't work. Could you please take a look at this.
Version used:
2.2.6
Using theme_mods or options?
theme_mods
Code to reproduce the issue (config + field(s))
Kirki::add_field( 'my_config', array(
        'type'        => 'repeater',
        'settings'    => 'slider_slides',
        'label'       => __( 'Add Slides', 'my_textdomain' ),
        'section'     => 'slider_contents',
        'button_label'=> __( 'Add New Slides', 'my_textdomain' ),
        'default'     => '',
        'fields'     => array(
            'thumbnail' => array(
                'type'  => 'image',
                'label' => __( 'Add Image', 'my_textdomain' ),
            ),
            'title'     => array(
                'type'  => 'text',
                'label' => __( 'Title', 'my_textdomain' ),
            ),
            'link'     => array(
                'type'  => 'text',
                'label' => __( 'Link', 'my_textdomain' ),

            )
        ),
        'choices' => array(
            'limit' => 5
        ),
    ) );

Thanks

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/32355898-how-to-change-the-label-of-add-new-row-text-on-repeater-fields?utm_campaign=plugin&utm_content=tracker%2F2030945&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F2030945&utm_medium=issues&utm_source=github).

See https://github.com/aristath/kirki/issues/762#issuecomment-200918005

Nope the above does not work. Here is the working solution

If someone can spare a few minutes to update the docs on https://kirki.org/docs/controls/repeater.html that would be great...
Sorry I'm not doing it myself, time is a luxury right now. 😞


Update Angular SSR docs to match updated Angular 6 template

Moved from #8139
From @SteveSandersonMS on August 16, 2018 17:24
The current docs are at https://docs.microsoft.com/en-us/aspnet/core/client-side/spa/angular?view=aspnetcore-2.1&tabs=visual-studio#server-side-rendering
Discussed with @ryanbrandenburg
Copied from original issue: aspnet/Templating#677

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

ID: 32a18270-91cd-2a02-2eb8-2c8b1ed03737
Version Independent ID: c58d57e5-a0c2-201d-f6dd-076ad5971fcb
Content: Use the Angular project template with ASP.NET Core
Content Source: aspnetcore/client-side/spa/angular.md
Product: aspnet-core
GitHub Login: @SteveSandersonMS
Microsoft Alias: scaddie

I would really like to see the docs updated! Thank you @Rick-Anderson for pushing this!

Seriously? Some dev updates this but forgets to verify the documentation. Very bad.

Oh, by the way, wake up!

Now on angular 7 still outdated docs

@fabiomilheiro I agree the docs should be updated. But please be nice. Microsoft open-sourced Visual Studio to make development available to everybody. This brings a lot of maintenance with it... That's why anyone can contribute to this.
Now for your issue...
I found a repository on GitHub with a working setup:
https://github.com/joshberry/dotnetcore-angular-ssr. Thanks to Josh Berry.
I tried to recreate the project with angular 8.1, .NET Core 2.2, The result of this repository with a short summary is available here: https://github.com/PieterjanDeClippel/AspNetCoreSpaPrerendering
For now I'd like to redirect you to a Medium article:
https://medium.com/@pieterjandeclippel/server-side-rendering-in-asp-net-core-angular-6df7adacbdaa
Maybe I'll complete the docs about SSR, but for now you'll have to stick with this article...


add usage examples

Add usage examples of the library in a separate repository.
Related issues:

#2
#9

We decided to keep the examples in usage-examples folder of this repository. This may change in the future.


new share icon

New Share icon
Changes 👷♀

Changed share icon, also corrected some CSS details to make it fit

How to test 🧪

Check on discovery page

Check on VaultOverview page

Also check AAVE, GUNI, DSR

The Icon does not look centred in this screen.

The Icon does not look centred on this screen. Please can you resolve this before merging.

gotcha

G-UNI

On the mobile the buttons have different sizes

Mobile, star to be fixed

mobile discover now different resolutions

vault overview

They still have different sizes

https://user-images.githubusercontent.com/6871923/216086738-83a461ee-b3ca-4d33-a998-1fecd07e51cb.mp4

https://user-images.githubusercontent.com/6871923/216610218-15aedb10-ae4f-4753-8033-65dd8faf52aa.mp4
Discovery broke after merging dev, going to fix and then test one more time

https://user-images.githubusercontent.com/6871923/216614431-5156a66c-d0b9-4d59-998c-3890e85f5ad9.mp4

https://user-images.githubusercontent.com/6871923/216617929-90e0667f-73c1-4346-b509-abb0afead889.mp4
last updates

After adding one more px of margin


how do I update my 0.7.2 mod to 1.0 ??

What is your question?
I have an fnf mod that I developed in 0.7.2 and now with the new update I'm trying to update the game, but I get a lot of unwanted errors, what do I do?

It depends of the errors, 0.7.2 and 1.0 use different LUA and HScript


Lint fixes

Added more rules such as noUndeclaredVariables and found few bugs. Please consider using this biome.json in the new refactor branch and feel free to add more useful rules.

Denotests are consistently failing on Windows at the rm -rf command.


Typescript definition missing havingNotIn

havingNotIn is missing in the typing definition here
https://github.com/knex/knex/blob/4fa6e1f8c27fac59edb88c75e1f26f801fab2aa8/types/index.d.ts#L503-L513
But it is documented here
https://knexjs.org/#Builder-havingNotIn

@Cellule Would you be open to sending a PR for this?

@Cellule Would you be open to sending a PR for this?

@Cellule Would you be open to sending a PR for this?

@Cellule Would you be open to sending a PR for this?

@kibertoad I created a Pull request for these changes.

Released in 0.95.0


Luigi on top of AWS

Hi,
I would like to know how easy it would be to use Luigi on top of AWS.
Maybe i could launch a workflow where each task is executed over AWS Lambda.
Any thoughts and any good start to realize that with Luigi ?
Regards,

Have you tried searching the history in the luigi-users google group? There are quite many companies using luigi with AWS.

Oh nice i will take a closer look to the google group. Closing for now.


prefix vars with role name

prefix vars with role name

@ewolinetz updated with requested changes

@jcantrill just the one nit about fluentd ops_port and then LGTM


|BitGreen|bitg|bitg.org|

bitgreen.conf set with
rpcport=9333
listen=0
upnp=0

Another one: |Qtum|qtum|qtum.org|
rpcport=3889

Added - thanks !


Consider to adopt new createStatusBarItem API for id and name properties

👋  Hi there, Ben here, from the VS Code team.
We just released VSCode 1.57 that landed a new stable API for status bar items to provide id and name properties: https://code.visualstudio.com/updates/v1_57#_status-bar-item-id-and-name-properties
I noticed that your extension is a consumer of the createStatusBarItem API.
Here is an example how using the new API will improve the user experience around managing status bar items:
Without id / name right clicking on the status bar item from your extension will show a generic label that is just the name of the extension:

As you can see from the example above, the GH Pull Request extension did not yet adopt this new API and as such, the menu only shows a generic entry (as opposed to the other entries that are more specific).
Another motivation to adopt this new API is that it will enable a user to selectively hide/show status bar entries from your extension in case you register more than one status bar item.
An adoption of the new API involves:

configuring "engines": { "vscode": "^1.57.0" } in package.json
where createStatusBarItem is called, add a unique id: string property as first parameter
in the returned StatusBarItem set name to something that describes the intent of the status bar entry (if you provide multiple status bar entries, make sure the name is different for each entry)

Thanks for the support and the great work! ❤

Thanks!
@JoeRobich looking at the changes, please also make sure you pass a id: string as first arg to the createStatusBarItem call. Make sure it is different for each status bar item you contribute. It does not have to be universally unique, we automatically add the extension identifier internally.

Set status bar item ids in https://github.com/OmniSharp/omnisharp-vscode/pull/4643


Update govulncheck parser to new format

Update govulncheck parser to new format
[sc-1976]
Description
New govulncheck format can be parsed with this update. Atest was created and the example file is being tested there.

@FelixHernandez  We had to update the Github Actions today to fix an issue - can you please rebase this PR


Docs: Clippy user assistant (search enhancement)

(wip, probably not worth looking into the code yet)
The goal here is to add an AI powered Clippy-like assistant that will interact with user and answer their questions.

not meant as a total search replacement - I think we should still add Algolia or similar for a more traditional searching experience
currently powered by https://markprompt.com/ but I will also be looking into other solutions. From my limited testing it seems to be handling our docs pretty well and is very quick to bootstrap
I am currently using an orange dragon model from https://quaternius.com/ . At the moment, I will not put too much work into animations and interactivity of the Clippy model but eventually I think it would be cool to have it fly around the screen, interact with docs and user (waving, pointing to something etc).

https://user-images.githubusercontent.com/16734228/232451769-de421412-5aa5-4a9e-a81d-e2b3a32bd76c.mp4

Works already pretty good! It's not only fun but a highly valuable addition to the docs 👍

Thanks for that, works like a charm!  ❤


http3: return the context cancellation error from RoundTrip

@jhump Can you try out this PR? Does it fix your problem?

@marten-seemann, on the face of it, this looks right, but I'm seeing something weird in my client program that I need to track down. One thing that is absent here is doing something similar for errors returned from Body.Read, since consuming the response data can also encounter context timeout/cancellation.

Merging this PR, since it at least partially fixes #4196. The remainder of the fix is tracked in #4205.


Update blog post url

#patch#

Visual Acceptance tests:
No changes

Approved - feel free to self-approve on these types of PRs


Feature?: Allow conflicting option strings/names for supressed arguments

Would it be possible to handle naming conflicts differently if the arguments are to be ignored/suppressed anyway? Example:
from dataclasses import dataclass

import tyro

class LayerAExample:
    def __init__(self, **kwargs): ...

@dataclass
class LayerAConfig:
    _target: type = LayerAExample
    foo: int = 13

class LayerBExample:
    def __init__(self, **kwargs): ...

@dataclass
class LayerBConfig:
    _target: type = LayerBExample
    bar: int = 13

@dataclass
class BlockConfig:
    layer_a: LayerAConfig
    layer_b: LayerBConfig

if __name__ == "__main__":
    tyro.cli(tyro.conf.OmitArgPrefixes[tyro.conf.SuppressFixed[BlockConfig]])

Fails with argparse.ArgumentError: argument --_target: conflicting option string: --_target, due to OmitArgPrefixes, but the conflict occurs for suppressed arguments.

Hey @mirceamironenco, sorry for the late reply! Yes, it would make sense to change the behavior for this. I'm working through a set of deadlines right now but will add to the to-do list for after.


[connectivity] Retry deleting namespace while waiting

When https://github.com/yahoo/k8s-namespace-guard is setup and the connectivity tests are run with --force-deploy, this loop gets stuck waiting for the namespace to be deleted. This is because it takes a while for the pods to get removed after the deployment is gone but, the namespace-guard has already rejected the original deletion request.
In my testing, the simplest fix is to just add the deletion here which does work once the pods are gone. The logic just above this already takes care of issuing the delete request for objects that the namespace-guard cares about, there's simply a race between those commands and line 646.

Seems silly but reasonable. Want to add a comment explaining the "useless" delete?
Also, k8s-ns-guard is horribly outdated (it doesn't even have a go.mod). Is there a more current version that is being deployed?

@squeed - I can add a comment yeah. Unaware of another version of it at this time.