LVMLOCKD deadlocks caused workflow to stall at PreRun

Scenario:

Flux create XFS workflow
walk that workflow through the states to Teardown
delete the workflow
goto 1.

Flux command:
flux run -vvv --wait-event=clean -q pdebug --nodes=1 --ntasks=1 --setattr=system.dw="#DW jobdw capacity=600GiB type=xfs name=jobxfs4" hostname

On the 5th execution of the test, the workflow stalled trying to complete the PreRun state where the filesystem is mounted on the compute node.
That iteration started: Thu Mar  7 08:30:15 PST 2024: Iteration # 5/100000
The last command attempted by the Rabbit was:
2024-03-07T08:30:29.073-0800	DEBUG	controllers.NnfNodeStorage	Command Run	{"NnfNodeStorage": {"name":"default-fluxjob-796660387691889664-0-xfs-0","namespace":"rabbit-name"}, "index": 0, "command": "vgchange --lock-start c6087d61-c97c-46fa-a56b-296b700a080f_0_0"}

In the console log on the rabbit it looks like lvmlockd is blocked:
2024-03-07 08:32:52 [71513.215982]       Tainted: P        W  OE  X --------- -  - 4.18.0-5<IP_ADDRESS>
2024-03-07 08:32:52 ^[[23;80H1toss.t4.x86_64 #1
2024-03-07 08:32:52 [71513.221600] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this
2024-03-07 08:32:52 ^[[23;80H message.
2024-03-07 08:32:52 [71513.226798] task:lvmlockd        state:D stack:0     pid:595555 ppid:1      f
2024-03-07 08:32:52 ^[[23;80Hflags:0x00004080
2024-03-07 08:32:52 [71513.232493] Call Trace:
2024-03-07 08:32:52 [71513.234438]  __schedule+0x3e3/0x8d0
2024-03-07 08:32:52 [71513.236675]  ? wait_for_completion+0x7e/0x130
2024-03-07 08:32:52 [71513.239413]  schedule+0x72/0x120
2024-03-07 08:32:52 [71513.241537]  schedule_timeout+0x296/0x340
2024-03-07 08:32:52 [71513.244339]  ? srso_alias_return_thunk+0x5/0xfcdf2
2024-03-07 08:32:52 [71513.247438]  ? printk+0x58/0x73
2024-03-07 08:32:52 [71513.249333]  ? srso_alias_return_thunk+0x5/0xfcdf2
2024-03-07 08:32:52 [71513.252331]  ? wait_for_completion+0x7e/0x130
2024-03-07 08:32:52 [71513.255197]  wait_for_completion+0xc0/0x130
2024-03-07 08:32:52 [71513.259695]  new_lockspace+0x9fa/0xad0 [dlm]
2024-03-07 08:32:52 [71513.263377]  ? finish_wait+0x90/0x90
2024-03-07 08:32:52 [71513.266194]  dlm_new_lockspace+0x9f/0x130 [dlm]
2024-03-07 08:32:52 [71513.269957]  device_write+0x3d7/0x740 [dlm]
2024-03-07 08:32:52 [71513.273510]  ? srso_alias_return_thunk+0x5/0xfcdf2
2024-03-07 08:32:52 [71513.277662]  vfs_write+0xb7/0x1c0
2024-03-07 08:32:52 [71513.279783]  ksys_write+0x4f/0xb0
2024-03-07 08:32:52 [71513.282400]  do_syscall_64+0x5b/0x1b0
2024-03-07 08:32:52 [71513.285200]  entry_SYSCALL_64_after_hwframe+0x61/0xc6
2024-03-07 08:32:52 [71513.289315] RIP: 0033:0x7ffff69b3a17
2024-03-07 08:32:52 [71513.292033] Code: Unable to access opcode bytes at RIP 0x7ffff69b39ed.
2024-03-07 08:32:52 [71513.296480] RSP: 002b:00007ffff1f9ea30 EFLAGS: 00000293 ORIG_RAX:<PHONE_NUMBER>0
2024-03-07 08:32:52 ^[[23;80H000001
2024-03-07 08:32:52 [71513.302368] RAX: ffffffffffffffda RBX:<PHONE_NUMBER>000009 RCX: 00007ffff69b3a17
2024-03-07 08:32:52 [71513.307482] RDX:<PHONE_NUMBER>000082 RSI: 00007ffff1fa1b20 RDI:<PHONE_NUMBER>000009
2024-03-07 08:32:52 [71513.313109] RBP: 00007ffff1fa1b20 R08:<PHONE_NUMBER>000000 R09: 00007ffff6410fc0
2024-03-07 08:32:52 [71513.318569] R10: 00007fffec01b9e0 R11:<PHONE_NUMBER>000293 R12:<PHONE_NUMBER>000082
2024-03-07 08:32:52 [71513.323250] R13:<PHONE_NUMBER>00000a R14:<PHONE_NUMBER>000006 R15: 00007fffec01b9d0

Refer to directory /usr/workspace/rabbits/hangs/start_time_2024-03-07_08-26-04 for the log files.

That flux commandline does not have --requires, so it's going to a different rabbit on each iteration, right?  Or is it coming back to the same rabbit, maybe sometimes or all the time?

It depends on the scheduler policy, but I'm guessing you're using the first policy, so if that's the only job in the system, it should be going to the same compute node and rabbit every time.

I'm not sure where that flux command that is shown above is coming from.  The test.log file shows the following command:
Thu Mar  7 08:30:15 PST 2024:     flux run -vvv --wait-event=clean --requires host:tioga37 -q pdebug --nodes=1 --ntasks=1 --setattr=system.dw="#DW jobdw capacity=600GiB type=xfs name=jobxfs5" hostname

I omitted the --requires to avoid exposing the compute node's name, but I guess that has just happened above. Sorry for the confusion.

A new instance of this deadlock occurred on the compute side where the vgchange --lock-start operation hangs. On the compute node, this operation is started by nnf-clientmountd and is not killed if it takes too long.
manpage for lvmlockd(8)
A shared VG can be started after all the following are true:        · lvmlockd is running        · the lock manager is running        · the VG's devices are visible on the system
The last line there, the VG's devices are visible on the system is key.
In the latest instance of the deadlock on the compute node we see that clientmountd attempts a vgchange --lock-start command before the VG device has been discovered. This directly violates the last stipulation in lvmlockd.
Mar 12 19:25:16 tioga39 clientmountd[413541]: 2024-03-12T19:25:16-07:00 DEBUG controllers.ClientMount Command Run {"ClientMount": {"name":"default-fluxjob-804506591016518656-0-computes","namespace":"tioga39"}, "index": 0, "command": "vgchange --lock-start a29de411-35dd-46d6-97fa-00534dc9ab3b_0_0"}
Mar 12 19:25:16 tioga39 kernel: dlm: Using TCP for communications
Mar 12 19:25:16 tioga39 kernel: dlm: lvm_global: joining the lockspace group...
Mar 12 19:25:16 tioga39 kernel: dlm: lvm_global: dlm_recover 1
Mar 12 19:25:16 tioga39 kernel: dlm: lvm_global: group event done 0 0
Mar 12 19:25:16 tioga39 kernel: dlm: lvm_global: add member 102
Mar 12 19:25:16 tioga39 kernel: dlm: connecting to 102
Mar 12 19:25:16 tioga39 kernel: dlm: got connection from 31
Mar 12 19:25:16 tioga39 kernel: dlm: lvm_global: add member 41
Mar 12 19:25:16 tioga39 kernel: dlm: connecting to 41
Mar 12 19:25:16 tioga39 kernel: dlm: got connection from 28
Mar 12 19:25:16 tioga39 kernel: dlm: lvm_global: add member 40
Mar 12 19:25:16 tioga39 kernel: dlm: connecting to 40
Mar 12 19:25:16 tioga39 kernel: dlm: got connection from 34
Mar 12 19:25:16 tioga39 kernel: dlm: lvm_global: add member 39
Mar 12 19:25:16 tioga39 kernel: dlm: lvm_global: add member 38
Mar 12 19:25:16 tioga39 kernel: dlm: connecting to 38
Mar 12 19:25:16 tioga39 kernel: dlm: got connection from 35
Mar 12 19:25:16 tioga39 kernel: dlm: lvm_global: add member 36
Mar 12 19:25:16 tioga39 kernel: dlm: connecting to 36
Mar 12 19:25:16 tioga39 kernel: dlm: got connection from 40
Mar 12 19:25:16 tioga39 kernel: dlm: lvm_global: add member 35
Mar 12 19:25:16 tioga39 kernel: dlm: got connection from 27
Mar 12 19:25:16 tioga39 kernel: dlm: lvm_global: add member 34
Mar 12 19:25:16 tioga39 kernel: dlm: got connection from 29
Mar 12 19:25:16 tioga39 kernel: dlm: lvm_global: add member 33
Mar 12 19:25:16 tioga39 kernel: dlm: connecting to 33
Mar 12 19:25:16 tioga39 kernel: dlm: got connection from 36
Mar 12 19:25:16 tioga39 kernel: dlm: lvm_global: add member 31
Mar 12 19:25:16 tioga39 kernel: nvme nvme11: rescanning namespaces.   !!!! Devices start showing up here

The reason for the hang appears to be that the vgchange --lock-start takes the lvm_global lock, but fails to find the VG. Since this doesn't fail everytime, there seems to be a timing window in which the acquisition of the global lock is more sticky than other times.
Some additional debugging that @behlendorf did on this issue:
After digging it to this a bit more I think you're on the right track.  If I'm reading this right the last line of the lvmlockctl -i output indicates that the vgchange --lock-start command took the lvm_global lock.
LK VG un ver 0
LK GL un ver 0
LW GL sh ver 0 pid 578704 (vgchange)
It was then unable to take the VG lock for the a29de411-35dd-46d6-97fa-00534dc9ab3b_0_0 namespace because the devices were not yet available.  The NVMe namespaces were eventually discovered shortly after this, but apparently it doesn't retry in this case.  This results in the command hanging.  Subsequently, we killed the hung vgchange --lock-start but there doesn't appear to be any kind of on-close file descriptor handler, or other mechanism, so while the process exits the dlm still believes it's holding the lvm_global lock as a writer.  This is why any other vg* command issued end up hanging.
Unfortunately, I wasn't able to manually release the lvm_global lock, so I power cycled the compute node.  I suspect it may be possible, but I didn't have any luck.  After the node was rebooted I was able cancel the job and the workflow progressed through Teardown and cleaned everything up.
I think there are a couple takeaways:

Your change to wait for the NVMe namespaces to be visible should help with this.  That's a change needed on the Rabbits and computes.
Terminating a running vgchange --lock-* can be dangerous and should be avoided.  This seems like a good way to reproduce the issue in your environment.
We don't seem to have anyway to cleanup if this happens besides a reboot.  That said, it seems like this should be possible.

This issue was reproduced on Hetchy under TOSS-4.7-7 with NNF v1.4 by running the system-integration tests in a loop.  It took 246 iterations to hit the issue and over a day of runtime.  This was using a single rabbit and 4 compute nodes.  As before both the lvs an pvs command block indefinitely trying to acquire a lock effectively stalling the workflows and any tools which runs these commands (such as anisble).
Console stack traces for the Rabbit nodes:
[Sun Jul  7 23:40:56 2024] dlm: lvm_global: dlm_recover 20839
[Sun Jul  7 23:40:56 2024] dlm: lvm_global: add member 1005
[Sun Jul  7 23:40:56 2024] dlm: connecting to 1005
[Sun Jul  7 23:40:56 2024] dlm: lvm_global: dlm_recover_members 9 nodes
[Sun Jul  7 23:40:56 2024] dlm: lvm_global: generation 8584 slots 9 1:1004 2:1003 3:1005 4:1011 6:1010 8:1014 10:1012 11:1013 12:202
[Sun Jul  7 23:40:56 2024] dlm: lvm_global: dlm_recover_directory
[Sun Jul  7 23:40:56 2024] dlm: lvm_global: dlm_recover_directory 0 in 0 new
[Sun Jul  7 23:40:56 2024] dlm: lvm_global: dlm_recover_directory 1 out 8 messages
[Sun Jul  7 23:40:56 2024] dlm: lvm_global: dlm_recover 20839 generation 8584 done: 137 ms
[Sun Jul  7 23:40:57 2024] dlm: lvm_global: dlm_recover 20841
[Sun Jul  7 23:40:57 2024] dlm: lvm_global: add member 1006
[Sun Jul  7 23:40:57 2024] dlm: connecting to 1006
[Sun Jul  7 23:40:57 2024] dlm: lvm_global: ping_members aborted -4 last nodeid 1003
[Sun Jul  7 23:40:57 2024] dlm: lvm_global: dlm_recover_members 10 nodes
[Sun Jul  7 23:40:57 2024] dlm: lvm_global: dlm_recover_members error -4
[Sun Jul  7 23:40:57 2024] dlm: lvm_global: dlm_recover 20841 error -4
[Sun Jul  7 23:40:57 2024] dlm: lvm_global: dlm_recover 20843
[Sun Jul  7 23:40:57 2024] dlm: lvm_global: add member 1009
[Sun Jul  7 23:40:57 2024] dlm: connecting to 1009
[Sun Jul  7 23:40:57 2024] dlm: lvm_global: add member 1007
[Sun Jul  7 23:40:57 2024] dlm: connecting to 1007
[Sun Jul  7 23:40:57 2024] dlm: lvm_global: dlm_recover_members 12 nodes
[Sun Jul  7 23:43:46 2024] INFO: task lvmlockd:27543 blocked for more than 120 seconds.
[Sun Jul  7 23:43:46 2024]       Tainted: P        W  OE  X --------- -  - 4.18.0-5<IP_ADDRESS>toss.t4.x86_64 #1
[Sun Jul  7 23:43:46 2024] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[Sun Jul  7 23:43:46 2024] task:lvmlockd        state:D stack:0     pid:27543 ppid:1      flags:0x00000080
[Sun Jul  7 23:43:46 2024] Call Trace:
[Sun Jul  7 23:43:46 2024]  __schedule+0x3e3/0x8d0
[Sun Jul  7 23:43:46 2024]  ? rwsem_down_read_slowpath+0x184/0x450
[Sun Jul  7 23:43:46 2024]  schedule+0x72/0x120
[Sun Jul  7 23:43:46 2024]  schedule_preempt_disabled+0x11/0x20
[Sun Jul  7 23:43:46 2024]  rwsem_down_read_slowpath+0x2d3/0x450
[Sun Jul  7 23:43:46 2024]  down_read+0xab/0xc0
[Sun Jul  7 23:43:46 2024]  dlm_user_convert+0x46/0x1e0 [dlm]
[Sun Jul  7 23:43:46 2024]  ? device_write+0x2b6/0x740 [dlm]
[Sun Jul  7 23:43:46 2024]  ? srso_alias_return_thunk+0x5/0xfcdf2
[Sun Jul  7 23:43:46 2024]  ? kmem_cache_alloc_trace+0x150/0x2b0
[Sun Jul  7 23:43:46 2024]  device_write+0x661/0x740 [dlm]
[Sun Jul  7 23:43:46 2024]  ? srso_alias_return_thunk+0x5/0xfcdf2
[Sun Jul  7 23:43:46 2024]  vfs_write+0xb7/0x1c0
[Sun Jul  7 23:43:46 2024]  ksys_write+0x4f/0xb0
[Sun Jul  7 23:43:46 2024]  do_syscall_64+0x5b/0x1b0
[Sun Jul  7 23:43:46 2024]  entry_SYSCALL_64_after_hwframe+0x61/0xc6
[Sun Jul  7 23:43:46 2024] RIP: 0033:0x7ffff69b3a17
[Sun Jul  7 23:43:46 2024] Code: Unable to access opcode bytes at RIP 0x7ffff69b39ed.
[Sun Jul  7 23:43:46 2024] RSP: 002b:00007ffff37a5840 EFLAGS: 00000293 ORIG_RAX:<PHONE_NUMBER>000001
[Sun Jul  7 23:43:46 2024] RAX: ffffffffffffffda RBX:<PHONE_NUMBER>00000a RCX: 00007ffff69b3a17
[Sun Jul  7 23:43:46 2024] RDX:<PHONE_NUMBER>00007c RSI: 00007ffff37a5890 RDI:<PHONE_NUMBER>00000a
[Sun Jul  7 23:43:46 2024] RBP: 00007ffff37a5890 R08:<PHONE_NUMBER>000000 R09:<PHONE_NUMBER>000000
[Sun Jul  7 23:43:46 2024] R10:<PHONE_NUMBER>000000 R11:<PHONE_NUMBER>000293 R12:<PHONE_NUMBER>00007c
[Sun Jul  7 23:43:46 2024] R13: 00007ffff37a5890 R14: 00007fffe4001180 R15:<PHONE_NUMBER>000000
[Sun Jul  7 23:45:49 2024] INFO: task lvmlockd:27543 blocked for more than 120 seconds.
[Sun Jul  7 23:45:49 2024]       Tainted: P        W  OE  X --------- -  - 4.18.0-5<IP_ADDRESS>toss.t4.x86_64 #1
[Sun Jul  7 23:45:49 2024] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[Sun Jul  7 23:45:49 2024] task:lvmlockd        state:D stack:0     pid:27543 ppid:1      flags:0x00000080
[Sun Jul  7 23:45:49 2024] Call Trace:
[Sun Jul  7 23:45:49 2024]  __schedule+0x3e3/0x8d0
[Sun Jul  7 23:45:49 2024]  ? rwsem_down_read_slowpath+0x184/0x450
[Sun Jul  7 23:45:49 2024]  schedule+0x72/0x120
[Sun Jul  7 23:45:49 2024]  schedule_preempt_disabled+0x11/0x20
[Sun Jul  7 23:45:49 2024]  rwsem_down_read_slowpath+0x2d3/0x450
[Sun Jul  7 23:45:49 2024]  down_read+0xab/0xc0
[Sun Jul  7 23:45:49 2024]  dlm_user_convert+0x46/0x1e0 [dlm]
[Sun Jul  7 23:45:49 2024]  ? device_write+0x2b6/0x740 [dlm]
[Sun Jul  7 23:45:49 2024]  ? srso_alias_return_thunk+0x5/0xfcdf2
[Sun Jul  7 23:45:49 2024]  ? kmem_cache_alloc_trace+0x150/0x2b0
[Sun Jul  7 23:45:49 2024]  device_write+0x661/0x740 [dlm]
[Sun Jul  7 23:45:49 2024]  ? srso_alias_return_thunk+0x5/0xfcdf2
[Sun Jul  7 23:45:49 2024]  vfs_write+0xb7/0x1c0
[Sun Jul  7 23:45:49 2024]  ksys_write+0x4f/0xb0
[Sun Jul  7 23:45:49 2024]  do_syscall_64+0x5b/0x1b0
[Sun Jul  7 23:45:49 2024]  entry_SYSCALL_64_after_hwframe+0x61/0xc6
[Sun Jul  7 23:45:49 2024] RIP: 0033:0x7ffff69b3a17
[Sun Jul  7 23:45:49 2024] Code: Unable to access opcode bytes at RIP 0x7ffff69b39ed.
[Sun Jul  7 23:45:49 2024] RSP: 002b:00007ffff37a5840 EFLAGS: 00000293 ORIG_RAX:<PHONE_NUMBER>000001
[Sun Jul  7 23:45:49 2024] RAX: ffffffffffffffda RBX:<PHONE_NUMBER>00000a RCX: 00007ffff69b3a17
[Sun Jul  7 23:45:49 2024] RDX:<PHONE_NUMBER>00007c RSI: 00007ffff37a5890 RDI:<PHONE_NUMBER>00000a
[Sun Jul  7 23:45:49 2024] RBP: 00007ffff37a5890 R08:<PHONE_NUMBER>000000 R09:<PHONE_NUMBER>000000
[Sun Jul  7 23:45:49 2024] R10:<PHONE_NUMBER>000000 R11:<PHONE_NUMBER>000293 R12:<PHONE_NUMBER>00007c
[Sun Jul  7 23:45:49 2024] R13: 00007ffff37a5890 R14: 00007fffe4001180 R15:<PHONE_NUMBER>000000
[Sun Jul  7 23:47:52 2024] INFO: task lvmlockd:27543 blocked for more than 120 seconds.
[Sun Jul  7 23:47:52 2024]       Tainted: P        W  OE  X --------- -  - 4.18.0-5<IP_ADDRESS>toss.t4.x86_64 #1
[Sun Jul  7 23:47:52 2024] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[Sun Jul  7 23:47:52 2024] task:lvmlockd        state:D stack:0     pid:27543 ppid:1      flags:0x00000080
[Sun Jul  7 23:47:52 2024] Call Trace:
[Sun Jul  7 23:47:52 2024]  __schedule+0x3e3/0x8d0
[Sun Jul  7 23:47:52 2024]  ? rwsem_down_read_slowpath+0x184/0x450
[Sun Jul  7 23:47:52 2024]  schedule+0x72/0x120
[Sun Jul  7 23:47:52 2024]  schedule_preempt_disabled+0x11/0x20
[Sun Jul  7 23:47:52 2024]  rwsem_down_read_slowpath+0x2d3/0x450
[Sun Jul  7 23:47:52 2024]  down_read+0xab/0xc0
[Sun Jul  7 23:47:52 2024]  dlm_user_convert+0x46/0x1e0 [dlm]
[Sun Jul  7 23:47:52 2024]  ? device_write+0x2b6/0x740 [dlm]
[Sun Jul  7 23:47:52 2024]  ? srso_alias_return_thunk+0x5/0xfcdf2
[Sun Jul  7 23:47:52 2024]  ? kmem_cache_alloc_trace+0x150/0x2b0
[Sun Jul  7 23:47:52 2024]  device_write+0x661/0x740 [dlm]
[Sun Jul  7 23:47:52 2024]  ? srso_alias_return_thunk+0x5/0xfcdf2
[Sun Jul  7 23:47:52 2024]  vfs_write+0xb7/0x1c0
[Sun Jul  7 23:47:52 2024]  ksys_write+0x4f/0xb0
[Sun Jul  7 23:47:52 2024]  do_syscall_64+0x5b/0x1b0
[Sun Jul  7 23:47:52 2024]  entry_SYSCALL_64_after_hwframe+0x61/0xc6
[Sun Jul  7 23:47:52 2024] RIP: 0033:0x7ffff69b3a17
[Sun Jul  7 23:47:52 2024] Code: Unable to access opcode bytes at RIP 0x7ffff69b39ed.
[Sun Jul  7 23:47:52 2024] RSP: 002b:00007ffff37a5840 EFLAGS: 00000293 ORIG_RAX:<PHONE_NUMBER>000001
[Sun Jul  7 23:47:52 2024] RAX: ffffffffffffffda RBX:<PHONE_NUMBER>00000a RCX: 00007ffff69b3a17
[Sun Jul  7 23:47:52 2024] RDX:<PHONE_NUMBER>00007c RSI: 00007ffff37a5890 RDI:<PHONE_NUMBER>00000a
[Sun Jul  7 23:47:52 2024] RBP: 00007ffff37a5890 R08:<PHONE_NUMBER>000000 R09:<PHONE_NUMBER>000000
[Sun Jul  7 23:47:52 2024] R10:<PHONE_NUMBER>000000 R11:<PHONE_NUMBER>000293 R12:<PHONE_NUMBER>00007c
[Sun Jul  7 23:47:52 2024] R13: 00007ffff37a5890 R14: 00007fffe4001180 R15:<PHONE_NUMBER>000000
[Sun Jul  7 23:49:55 2024] INFO: task lvmlockd:27543 blocked for more than 120 seconds.
[Sun Jul  7 23:49:55 2024]       Tainted: P        W  OE  X --------- -  - 4.18.0-5<IP_ADDRESS>toss.t4.x86_64 #1
[Sun Jul  7 23:49:55 2024] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[Sun Jul  7 23:49:55 2024] task:lvmlockd        state:D stack:0     pid:27543 ppid:1      flags:0x00000080
[Sun Jul  7 23:49:55 2024] Call Trace:
[Sun Jul  7 23:49:55 2024]  __schedule+0x3e3/0x8d0
[Sun Jul  7 23:49:55 2024]  ? rwsem_down_read_slowpath+0x184/0x450
[Sun Jul  7 23:49:55 2024]  schedule+0x72/0x120
[Sun Jul  7 23:49:55 2024]  schedule_preempt_disabled+0x11/0x20
[Sun Jul  7 23:49:55 2024]  rwsem_down_read_slowpath+0x2d3/0x450
[Sun Jul  7 23:49:55 2024]  down_read+0xab/0xc0
[Sun Jul  7 23:49:55 2024]  dlm_user_convert+0x46/0x1e0 [dlm]
[Sun Jul  7 23:49:55 2024]  ? device_write+0x2b6/0x740 [dlm]
[Sun Jul  7 23:49:55 2024]  ? srso_alias_return_thunk+0x5/0xfcdf2
[Sun Jul  7 23:49:55 2024]  ? kmem_cache_alloc_trace+0x150/0x2b0
[Sun Jul  7 23:49:55 2024]  device_write+0x661/0x740 [dlm]
[Sun Jul  7 23:49:55 2024]  ? srso_alias_return_thunk+0x5/0xfcdf2
[Sun Jul  7 23:49:55 2024]  vfs_write+0xb7/0x1c0
[Sun Jul  7 23:49:55 2024]  ksys_write+0x4f/0xb0
[Sun Jul  7 23:49:55 2024]  do_syscall_64+0x5b/0x1b0
[Sun Jul  7 23:49:55 2024]  entry_SYSCALL_64_after_hwframe+0x61/0xc6
[Sun Jul  7 23:49:55 2024] RIP: 0033:0x7ffff69b3a17
[Sun Jul  7 23:49:55 2024] Code: Unable to access opcode bytes at RIP 0x7ffff69b39ed.
[Sun Jul  7 23:49:55 2024] RSP: 002b:00007ffff37a5840 EFLAGS: 00000293 ORIG_RAX:<PHONE_NUMBER>000001
[Sun Jul  7 23:49:55 2024] RAX: ffffffffffffffda RBX:<PHONE_NUMBER>00000a RCX: 00007ffff69b3a17
[Sun Jul  7 23:49:55 2024] RDX:<PHONE_NUMBER>00007c RSI: 00007ffff37a5890 RDI:<PHONE_NUMBER>00000a
[Sun Jul  7 23:49:55 2024] RBP: 00007ffff37a5890 R08:<PHONE_NUMBER>000000 R09:<PHONE_NUMBER>000000
[Sun Jul  7 23:49:55 2024] R10:<PHONE_NUMBER>000000 R11:<PHONE_NUMBER>000293 R12:<PHONE_NUMBER>00007c
[Sun Jul  7 23:49:55 2024] R13: 00007ffff37a5890 R14: 00007fffe4001180 R15:<PHONE_NUMBER>000000
[Sun Jul  7 23:51:57 2024] INFO: task lvmlockd:27543 blocked for more than 120 seconds.
[Sun Jul  7 23:51:57 2024]       Tainted: P        W  OE  X --------- -  - 4.18.0-5<IP_ADDRESS>toss.t4.x86_64 #1
[Sun Jul  7 23:51:57 2024] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[Sun Jul  7 23:51:57 2024] task:lvmlockd        state:D stack:0     pid:27543 ppid:1      flags:0x00000080
[Sun Jul  7 23:51:57 2024] Call Trace:
[Sun Jul  7 23:51:57 2024]  __schedule+0x3e3/0x8d0
[Sun Jul  7 23:51:57 2024]  ? rwsem_down_read_slowpath+0x184/0x450
[Sun Jul  7 23:51:57 2024]  schedule+0x72/0x120
[Sun Jul  7 23:51:57 2024]  schedule_preempt_disabled+0x11/0x20
[Sun Jul  7 23:51:57 2024]  rwsem_down_read_slowpath+0x2d3/0x450
[Sun Jul  7 23:51:57 2024]  down_read+0xab/0xc0
[Sun Jul  7 23:51:57 2024]  dlm_user_convert+0x46/0x1e0 [dlm]
[Sun Jul  7 23:51:57 2024]  ? device_write+0x2b6/0x740 [dlm]
[Sun Jul  7 23:51:57 2024]  ? srso_alias_return_thunk+0x5/0xfcdf2
[Sun Jul  7 23:51:57 2024]  ? kmem_cache_alloc_trace+0x150/0x2b0
[Sun Jul  7 23:51:57 2024]  device_write+0x661/0x740 [dlm]
[Sun Jul  7 23:51:57 2024]  ? srso_alias_return_thunk+0x5/0xfcdf2
[Sun Jul  7 23:51:57 2024]  vfs_write+0xb7/0x1c0
[Sun Jul  7 23:51:57 2024]  ksys_write+0x4f/0xb0
[Sun Jul  7 23:51:57 2024]  do_syscall_64+0x5b/0x1b0
[Sun Jul  7 23:51:57 2024]  entry_SYSCALL_64_after_hwframe+0x61/0xc6

Relevant package versions:
kernel-4.18.0-5<IP_ADDRESS>toss.t4.x86_64
lvm2-2.03.14-13.el8_9.x86_64
lvm2-lockd-2.03.14-13.el8_9.x86_64

nnfstorageprofile config:
        "gfs2Storage": {
            "commandlines": {
                "lvChange": {
                    "activate": "--activate ys $VG_NAME/$LV_NAME",
                    "deactivate": "--activate n $VG_NAME/$LV_NAME"
                },
                "lvCreate": "--zero n --activate n --extents $PERCENT_VG --stripes $DEVICE_NUM --stripesize=32KiB --name $LV_NAME $VG_NAME",
                "lvRemove": "$VG_NAME",
                "mkfs": "-j2 -p $PROTOCOL -t $CLUSTER_NAME:$LOCK_SPACE $DEVICE",
                "mountCompute": "$DEVICE $MOUNT_PATH",
                "mountRabbit": "$DEVICE $MOUNT_PATH",
                "pvCreate": "$DEVICE",
                "pvRemove": "$DEVICE",
                "sharedVg": true,
                "vgChange": {
                    "lockStart": "--lock-start $VG_NAME",
                    "lockStop": "--lock-stop $VG_NAME"
                },
                "vgCreate": "--shared $VG_NAME $DEVICE_LIST",
                "vgRemove": "$VG_NAME"
            }
        },
        ...
                "xfsStorage": {
            "commandlines": {
                "lvChange": {
                    "activate": "--activate y $VG_NAME/$LV_NAME",
                    "deactivate": "--activate n $VG_NAME/$LV_NAME"
                },
                "lvCreate": "--zero n --activate n --extents $PERCENT_VG --stripes $DEVICE_NUM --stripesize=32KiB --name $LV_NAME $VG_NAME",
                "lvRemove": "$VG_NAME",
                "mkfs": "$DEVICE",
                "mountCompute": "$DEVICE $MOUNT_PATH",
                "mountRabbit": "$DEVICE $MOUNT_PATH",
                "pvCreate": "$DEVICE",
                "pvRemove": "$DEVICE",
                "sharedVg": true,
                "vgChange": {
                    "lockStart": "--lock-start $VG_NAME",
                    "lockStop": "--lock-stop $VG_NAME"
                },
                "vgCreate": "--shared $VG_NAME $DEVICE_LIST",
                "vgRemove": "$VG_NAME"
            }
        }

This issue is being worked around by implementing a static volume group that is attached to compute nodes which prevents the dlm global lock from being deleted as other volume groups are created and deleted from workflows.


metabolite Identifiers are not in the COBRApy-parsed Mouse-GEM.xml

Description of the issue:
Metabolite Identifiers are not in the COBRApy-parsed Mouse-GEM.xml. The same scenario are in Rat-GEM.xml, Mouse-GEM, Rat-GEM, Worm-GEM and Zebrafish-GEM(also see https://github.com/SysBioChalmers/Zebrafish-GEM/issues/5). In addition, Fruitfly-GEM cannot be parsed using COBRApy(see https://github.com/SysBioChalmers/Fruitfly-GEM/issues/5).
Expected feature/value/output:
Expect to have identifiers in .xml files synchronized with flatfiles metabolite.tsv.
Current feature/value/output:
In humanGEM, everything is nicely showed up:
model.metabolites[25].__dict__

{'_id': 'MAM00009r',
 'name': '(11Z,14Z)-eicosadienoyl-CoA',
 'notes': {},
 '_annotation': {'sbo': 'SBO:0000247',
  'kegg.compound': 'C16180',
  'chebi': 'CHEBI:76410',
  'lipidmaps': 'LMFA07050036',
  'vmhmetabolite': 'CE4843',
  'metanetx.chemical': ['MNXM167435', 'MNXM6496']},
 '_model': <Model HumanGEM at 0x7fcff72836a0>,
 '_reaction': {<Reaction MAR02901 at 0x7fcfec58fe50>,
  <Reaction MAR03002 at 0x7fcfeb423130>,
  <Reaction MAR03492 at 0x7fcffda16e80>,
  <Reaction MAR03681 at 0x7fcfeea65fd0>},
 'formula': 'C41H66N7O17P3S',
 'compartment': 'r',
 'charge': -4,
 '_bound': 0.0}

But in Mouse-GEM, Worm-GEM ...:
Same codes result in:
{'_id': 'MAM00012c',
 'name': '(11Z,14Z,17Z)-eicosatrienoyl-CoA',
 'notes': {},
 '_annotation': {'sbo': 'SBO:0000247'},
...,
 'formula': 'C41H64N7O17P3S',
 'compartment': 'c',
 'charge': -4,
 '_bound': 0.0}

I hereby confirm that I have:

[ ] Tested my code with all requirements for running the model
[x] Done this analysis in the master branch of the repository
[x] Checked that a similar issue does not exist already
[ ] If needed, asked first in the Gitter chat room about the issue

@gmhhope thanks for reporting this. This bug should be fixed by applying annoateGEM to Mouse-GEM before exporting as .xml.

@gmhhope thanks for reporting this. This bug should be fixed by applying annoateGEM to Mouse-GEM before exporting as .xml.

Dear Haowang,
Thanks for replying me! Could you elaborate on what exactly the function annotateGEM from and how to apply? And I was trying to read your Mouse-GEM.xml file instead of exporting it. So I got confused.
Thanks,
Minghao Gong

@gmhhope the annoateGEM function is from Human-GEM and usually applied while releasing new version. We'll incorporate this step to Mouse-GEM in future release.

this has been fixed in v1.3


New mod : OreToParts

Hello,
Please find a request for adding my mod OreToParts to CKAN
Thanks!
spec_version: 1
identifier: OreToParts
name: Ore To Parts
abstract: >-
  Transforms ore tanks into ore to part converters, part duplicators or ore to
  EVA fuel converters.
author:
  - Goufalite
license: CC-BY-SA-4.0
version: <IP_ADDRESS>
$kref: '#/ckan/github/Goufalite/OreToParts/asset_match/OreToParts-'
resources:
  license: https://creativecommons.org/licenses/by-sa/4.0/
  manual: https://github.com/Goufalite/OreToParts/wiki
  homepage: >-
    https://forum.kerbalspaceprogram.com/index.php?/topic/203705-11121121ore-to-parts-craft-parts-with-ore-duplicate-parts/
  x_screenshot: https://imgur.com/I5dEh7a.png
ksp_version_min: 1.11.2
depends:
  - name: ModuleManager
x_via: Generated by Metadata Webtool

Thanks for the submission! Started the process of adding it in #8782...

Thank you!

Hello @HebaruSan , I've release a v0.4 version of my mod. According to #8782 the version is not needed to be mentioned and  will be "pulled from the repo" but I still see the 0.3.1 on CKAN.
Do I have to do something? A new request with an updated version?
Thanks in advance for your answer!

Hi, that version was added 4 days ago:
https://github.com/KSP-CKAN/CKAN-meta/commit/60802bbd37f8699b562426867d1fbf772a5c2c45
If you're not seeing it, you may need to click Refresh in CKAN.

Saw it thanks!
Don't know what happened, Scatterer messed with my CKAN config. Reinstalled it and my mod is now available as upgradable.


CASSANDRA-18802: Parallelized UCS compactions

CASSANDRA-18802
Implements parallelization of UCS compactions that would split the output into multiple sstables starting at known in advance boundaries. To do this, introduces a CompositeLifecycleTransaction that consists of multiple PartialLifecycleTransaction parts and only commits after all individual parts have completed, and creates multiple compaction tasks under the same composite transaction. Each individual task has a separate operation UUID, but to make it possible to recognize composite tasks their UUIDs have a part index as their sequence component (visible as "800n" as the second-to-last component of the UUID string), while non-parallelized ones have 0.
Major compaction is also changed to take advantage of parallelization. To make sure that it can be carried out on an active node, the number of threads used by a major compaction can be limited, to half the compaction threads by default. This is implemented by creating CompositeCompactionTasks that execute multiple tasks serially and grouping the major compaction tasks into a limited number of composites.
Because we do not currently support arbitrary filtering of the ranges of an sstable, parallelized compactions cannot use early open. Despite this, they are able to achieve comparable or better performance.
The first two commits bring in CASSANDRA-20092, which is needed for correct calculation of total compaction sizes. The next commit introduces some utilities that are helpful but not ultimately necessary for this patch (it can be easily adjusted to not use them; it is likely that SAI changes will bring these in independently). The final commit simplifies the method of creating the compaction-strategy-specific scanner list variation and is also optional.

Committed as https://github.com/apache/cassandra/commit/54e46880690bd5effb31116986292c1bdc9e891e.


Support AuthenticationScheme interface to enable PoP bound access tokens

PR attempting to realize proposal - https://github.com/AzureAD/microsoft-authentication-library-for-go/issues/439
This is to gather initial feedback. Comprehensive unit and integration tests will be added once code changes are agreed/acked.

[x] Unit tests
[x] Integration tests
[x] Dev samples in apps/tests/devapps

We were able to validate this changes e2e on our side using Kubelogin to generate the token and Guard to validates it.
Kubelogin PR In Progress
Token generated by kubelogin via interactive mode :

Token validated by Guard :

Token expired rejected by Guard :

u claim mismatch rejected by Guard :


Mean and Std in Normalization

I have a quick question regarding normalization transform. The mean and Std which is being used here, are calculated for CIFAR dataset or ImageNet dataset?
I saw a repo which was using the same values for ImageNet dataset.

The same question was asked here.


Uses even and odd variants for striped table.

Hello 👋 ,
This change proposes to use the even and odd variant for the striped table. This makes it easier to use in any application where the table rows are dynamically created using a loop.

Hey @arthurgeek,
I've checked the PR and the change is useful. Thanks for the contribution!
Merged.


Save/discard from Blocky and Studio

When leaving Blockly, it asked you to save/discard if even the source code is up to date. Furthermore, whatever you decide, Studio asks again the same question.

This is an integration issue, it should be opened within Aseba. We can keep this one open, in case there is something special to do on blockly itself.

Opened #616 in Aseba


Change 50x Zoom Limit to Min/Max Inputs

Goals
This pull request aims to replace the "Limit zoom to 50x" option with a couple of number input boxes for custom minimum and maximum scale limits.
Specifics

The default minimum and maximum scales are 0.5 and 50 respectively. These are also the placeholder values.
Users may enter any numerical input, which allows for greater freedom but may lead to bugs. For example, if the user inputs a maximum value less than the minimum value, the canvas coordinates will turn NaN and have unexpected behavior.

Screenshots / Videos
https://user-images.githubusercontent.com/19217244/107891680-7c4d2800-6f20-11eb-9b06-b009c161074a.mp4

This looks good at a glance. I do wonder though if it might make more sense to have the inputs represent the exponent of zoom rather than the actual value. This would mean changes to these values manifest as perceptively linear changes rather than logarithmic ones - albeit at the cost of a mismatch between the value and the query parameter.

This looks good at a glance. I do wonder though if it might make more sense to have the inputs represent the exponent of zoom rather than the actual value. This would mean changes to these values manifest as perceptively linear changes rather than logarithmic ones - albeit at the cost of a mismatch between the value and the query parameter.

I'm not sure I see the point of that.

Thinking more carefully about it, I don't think it my proposition would actually be more intuitive as I thought it would be. The idea is that a user limiting their zoom to a value - suppose 100 - might decide they want to be able to zoom twice as much. To do this, they enter 200 into the input. If they expected that the number of zoom steps from 1 to the maximum would double, they would be very surprised to find it changed only by one or two. If they intended that they would now be able to zoom in to a point where their effective view dimensions were halved, they would find that exactly what they expected happened.
Personally I think the latter expectation is slightly more reasonable, meaning no change is necessary.


Yank form_data gems

I accidentally used the form_data gem instead of http-form_data. I’m suggest you yank all version of form_data, so others don’t make the same mistake.

Oh. Sorry. Will do.

Yanked all version. Sorry for that confusion once again.

I think this is the cause of the issues i'm seeing now whilst trying to bundle a locked version of the http gem. I'm putting together a repro.

@benlovell What versions of Bundler are you using? I thought that modern versions of Bundler would install yanked gems if they were part of a Gemfile.lock. /cc @indirect

@sferik Bundler 1.7.9 appears be installing the locked gem as expected, when it's present on the machine but still, something untoward is happening with the gem specs... I'll report this over at HTTP.

@sferik actually, after updating bundler to latest on travis this worked out fine. I couldn't reproduce this locally either using travis' version of bundler - 1.7.9.
My apologies folks <3, it seems like a travis issue.

Actually yanking all versions caused one unexpected problem. I have completely forgot that http gem 0.7.X had it as dependency (thanks @tarcieri for bringing that up). I have released http 0.7.2 recently with appropriate fix.


Wouldn't It Be Better If The List Would Scale With Ui Level Rather Than Zoom Level ?

Wouldn't It Be Better If The List Would Scale With Ui Level Rather Than Zoom Level ?
edit: Changing Scale in configs would be a Good option

Version 1.11.0 adds on option to toggle whether the overlay is scaled with UI Scale or Zoom Level


Add "search for games"

On the game list, add a way to search for games by NAME of game

Added! Can now search for games using their titles


Added multilanguage support and Turkish translations

Please check for mistakes.

This looks pretty darn awesome to me. If there are any typos, they can be fixed in 1.4.1. Thanks!


[WIP] Update commands

Move commands to their own folder and namespace
Update commands
This closes #1 and #20.

Awesome work @joecohens! This feature has been requested by many and we haven't had the time to add it. I'll definitely merge this right away.

Just saw you hadn't removed the [WIP] from the title. This is such an awesome feature I just merged it in.  Is there anything else you want to add before we release this in the next version? I'll hold off you want to add anything else.

Lol don't worry :) I left it has WIP so that we discuss command naming and version constrains. Maybe we can set an option to change the constrain?

How do you mean?

Exactly

That is a good idea. Btw, is it possible to update multiple versions with this PR? Like ^4.8 || ^5.0 and ^5.0.* || ^5.1.*.

I haven't tried the piped versions, but it should work I'll test it tomorrow :)

:+1:


Using the Coordinates object from the geolocation API causes an error

It would be nice if it was possible to use the Coordinates object returned by the geolocation API.
But since the getKey function has this requirement:
return point.hasOwnProperty(val) ? (function() { key = val; return false; }()) : true;

And the Coordinates latitude & longitude is in the prototype, I get:
Cannot read property 'latitude' of undefined

When trying to calculate a distance.
Currently I'm just using:
{
   'latitude':position.coords.latitude,
   'longitude':position.coords.longitude
};

But it would just be nicer if I could use the object as it were. Anyways - great library. Thanks

Yep, would be good to follow the GeoJSON spec. Structure would look like:
{
    type: "Point",
    coordinates: [40, -73] // [longitude, latitude]
}

Most GIS tools (MongoLab/MongoDB, Mapbox) follow the GeoJSON spec and so data flows between them seamlessly!

Hi. I'm currently working on Geolib 3 which supports custom Coordinate types. Maybe I will include a GeoJSON Coordinate type by default. We'll see ;)

@manuelbieh let me know if you need help with it. I'm currently working on a geolocation based system and am interested in your library. Would be willing to help iron kinks out. Is there some place I can see the geolib3 api or what you're thinking of doing?

This should no longer happen. Re-open if it still does!


Change platform to CPython pure python platform

You can now use most of platform methods. Not sure about testing as this might be tricky when running on different OS's and both in RustPython and in CPython. Any suggestions?

It looks like CPython has a test for platform, do you want to try that?

I think testing this module is hard in general. If there are CPython test cases, we could try them, but it might be too platform specific.

I have some doubts about the parsing of the version string, and the code supporting other python implementations with this parsing, but for the rest, this looks pretty good!

I agree it looks nicer this way @windelbouwman.
I also added the tests from CPython. The platform has specific tests for Mac and Windows. I will change the CI to run the CPython tests suite on them as well in a different PR.

I also added the tests from CPython. The platform has specific tests for Mac and Windows. I will change the CI to run the CPython tests suite on them as well in a different PR.

I have changed the CI here as I don't want to break the CPython tests for people working on Mac or Windows.

@palaviv good idea, on ubuntu it only took 9 seconds to run the snippet tests; definitely not worth the whole other job to build it.

I am having hard time making the CPython test suite running on Windows. I opened a ticket to fix this later #1754.


Fix broken nav

When I upgraded Bootstrap all the tests passed, but the navigation was broken and I didn't ever actually spin up a server and check. :cry:
This commit fixes that by adjusting a couple classes. I also fixed a mistake where we weren't highlighting syncs when that was the page you were on.

Doing a selfie-merge on this one so I can get it fixed on production ASAP.


investigate/consider parsing LLVM's intrinsic definitions

I found 2 crates that can parse LLVM. Given a proper LLVM
parser, maybe we can parse LLVM definitions in an easy way
to get them into Rust?

https://crates.io/crates/llvm-ir
https://crates.io/crates/llvm-sys

It looks like LLVM definitions are in these files, I didn't dive
too deep into them (yet)  😄

https://github.com/llvm-mirror/llvm/blob/master/include/llvm/IR/IntrinsicsAArch64.td
https://github.com/llvm-mirror/llvm/blob/master/include/llvm/IR/IntrinsicsARM.td
https://github.com/llvm-mirror/llvm/blob/master/include/llvm/IR/IntrinsicsX86.td

If this works, it could be kind of cool because then:

maybe we don't need to keep as much data in the .spec files
the definitions are guaranteed to be accessible to Rust (maybe? need to check)

another possibility is parsing C preprocessor output:
gcc -D __LITTLE_ENDIAN__ -E /usr/lib/clang/6.0.0/include/arm_neon.h

Ja, however generating tests would still be nice to have so, I see that as one of the main benefits for generating the code. Perhaps we can find a nice way to integrate both concepts?

sounds like https://lib.rs/crates/llvmint


Not enough details

This document needs additional details. It's not easy to follow as there are not enough details for someone who is doing this for first time.
For example let's say this following paragraph from the document.
"By default, preferredDataLocation is not enabled for synchronization. This feature is intended for larger organizations. The Active Directory schema in Windows Server 2019 has an attribute msDS-preferredDataLocation you should use for this purpose. If you have not updated the Active Directory schema and cannot do so, then you must identify an attribute to hold the Microsoft 365 geo for your users. This is going to be different for each organization."
You need to add some more details may be by providing an example on how to identify such attribute. Not everyone can update AD schema and hence need to identify custom attribute for this purpose. You need to provide an example of such attribute that can be used in any typical organisation. For example can one use msExchExtentionCustomAttribute* ??
Further in Step 7 it says as below

Run Full import on the on-premises Active Directory Connector:

a. Go to the Operations tab in the Synchronization Service Manager.
b. Right-click the on-premises Active Directory Connector, and select Run.
However, these connectors are not in Operations tab but under Connectors tab. So you need to change this.
Lastly I feel this document can be updated to improve readability and make it easier to understand.

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

ID: b285f539-0487-0de5-24ef-89f773a1081d
Version Independent ID: b4f26f73-6b46-9703-692b-abe1f0d5f825
Content: Azure AD Connect: Configure preferred data location for Microsoft 365 resources
Content Source: articles/active-directory/hybrid/how-to-connect-sync-feature-preferreddatalocation.md
Service: active-directory
Sub-service: hybrid
GitHub Login: @billmath
Microsoft Alias: billmath

Hello @GarySurati , thanks for taking time to share your valuable feedback! We are taking a look into this and will get back to you soon.

Other thing missing is this.
It would be good if you mentioned that these steps needs to be implemented on both staging and non staging server. Can admin configure what's mentioned in this doc just on one AAD sync server? I don't think so as it needs to be done for all AAD sync servers and usually there are 2 such servers. Following this doc has been pretty difficult so far. Needs more details and examples to make it more readable and reader friendly.
https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sync-feature-preferreddatalocation
thanksGary
On Thursday, 6 May 2021, 06:57:35 pm AEST, HarshitaSingh-MSFT<EMAIL_ADDRESS>wrote:

Hello @GarySurati , thanks for taking time to share your valuable feedback! We are taking a look into this and will get back to you soon.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.


WIP: Use OIDC

Description
Refactor to use OIDC for infrastructure deployment.
References
https://app.zenhub.com/workspaces/mighty-ducks---the-outlaws-6193fe815d79fc0011e741b1/issues/energinet-datahub/the-outlaws/364

Codecov Report

Merging #747 (deb1748) into main (67e68dc) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #747   +/-   ##
=======================================
  Coverage   62.00%   62.00%
=======================================
  Files          14       14
  Lines         229      229
  Branches       20       20
=======================================
  Hits          142      142
  Misses         82       82
  Partials        5        5

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


php POST can't create the link folder and the temporary file for the password (nginx / php-fpm)

Hello,
I tried to install my own pwx instance for work purpose.
For testing purpose I disabled ssl mandatory from you app/config.php file.
I use nginx as a web server with the following conf (example.com is replaced by my organization domain):
server {
    listen 80;
    server_name pwx.example.com;

    access_log /var/log/nginx/access-pwx.log;
    error_log /var/log/nginx/error-pwx.log;

    root /var/www/pwx/web;
    index index.php;

    location ~* \.php$ {
        try_files $uri =404;
        include fastcgi.conf;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
    }
}

I assume that the POST is not working and failed to create the temporary file in link folder. I create the web/link folder, make my web server group the owner of this folder (and chmod 777 it to be sure for the test …). But I still have the same error:
NGINX LOG
==> access-pwx.log<==
[15/Mar/2016:14:51:49 +0100] "POST / HTTP/1.1" 302 320 "http://pwx.example.com/" "Mozilla/5.0" (X11; Fedora; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0"

==> error-pwx.log <==
2016/03/15 14:51:49 [error] 16266#0: *46 open() "/var/www/pwx/web/link/3662178eab" failed (2: No such file or directory), client: <IP_ADDRESS> server: pwx.example.com, request: "GET /link/3662178eab HTTP/1.1", host: "pwx.example.com", referrer: "http://pwx.example.com/"

==> access-pwx.log <==
[15/Mar/2016:14:51:49 +0100] "GET /link/3662178eab HTTP/1.1" 404 168 "http://pwx.example.com/" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0"

LOG/APP.LOG
[2016-03-15 14:51:43.172076] pwx.INFO: Matched route "GET_". {"route_parameters":{"controller":"app.default_controller:indexAction","route":"GET"},"request_uri":"http://pwx.example.com/"} {"clientIp":"<IP_ADDRESS>","token":"56e8136f279c4"}
[2016-03-15 14:51:43.172647] pwx.INFO: > GET / [] {"clientIp":"<IP_ADDRESS>","token":"56e8136f279c4"}
[2016-03-15 14:51:43.295656] pwx.INFO: < 200 [] {"clientIp":"<IP_ADDRESS>","token":"56e8136f279c4"}
[2016-03-15 14:51:43.296611] pwx.DEBUG: Script executed in 169.605ms. {"msExecTime":169.605,"method":"GET","path":"/"} {"clientIp":"<IP_ADDRESS>","token":"56e8136f279c4"} [2016-03-15 14:51:49.264898] pwx.INFO: Matched route "POST". {"route_parameters": {"_controller":"app.default_controller:indexPostAction","route":"POST"},"request_uri":"http://pwx.example.com/"} {"clientIp":"<IP_ADDRESS>","token":"56e813753f255"}
[2016-03-15 14:51:49.265250] pwx.INFO: > POST / [] {"clientIp":"<IP_ADDRESS>","token":"56e813753f255"}
[2016-03-15 14:51:49.379064] pwx.INFO: < 302 /link/3662178eab [] {"clientIp":"<IP_ADDRESS>","token":"56e813753f255"}
[2016-03-15 14:51:49.379964] pwx.DEBUG: Script executed in 143.301ms. {"msExecTime":143.301,"method":"POST","path":"/"} {"clientIp":"<IP_ADDRESS>","token":"56e813753f255"}
Do you have any clue ?
Bests regards.

I answer myself... For nginx I have to convert the web/.htaccess rules. Using this tools http://www.anilcetin.com/ I find a way to get pwx working with nginx. So here's my nginx working configuration:
server {
listen 80;
server_name     pwx.example.com;
access_log      /var/log/nginx/access-pwx.log;
error_log       /var/log/nginx/error-pwx.log;

root /var/www/pwx/web;
index index.php;

location ~* \.php$ {
    try_files $uri =404;
    include fastcgi.conf;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index  index.php;
}

location / {
    if (!-f $request_filename){
        set $rule_0 1$rule_0;
    }
    if ($rule_0 = "1"){
        rewrite ^/ /index.php last;
    }
}

location ~ /\. {
    access_log off;
    log_not_found off;
    deny all;
}

}

Glad you figured this out. Have you had a look at the Silex documentation? I didn't modify the default .htaccess that shipped with Silex. I would assume their default nginx config should cover all the use cases too.

Thanks for the link, that config works too. I haven't look at silex documentation because I don't know what to search, I don't even know silex before today :). By the way thanks for your tools it's very useful.

Sure thing, glad it works.


Optimize Home Component Rendering Using useMemo

The Home component in our React application is currently fetching data from the News API based on category, country, or search input. However, the implementation can lead to unnecessary re-renders and computations, affecting performance.
Proposed Changes:
Use useMemo for URL Construction:
    Implement useMemo to memoize the API URL based on dependencies (cat, con, searchit). This will prevent the URL from being recomputed on every render, optimizing data fetching.

Use useCallback for Fetch Function:
    Utilize useCallback to memoize the fetchData function. This ensures that the function only changes when its dependencies change, reducing unnecessary re-renders of the component.

Improve Loading State Handling:
    Introduce a loading state to give feedback to users while data is being fetched.

Conditional Rendering of NotFound Component:
    Display the NotFound component only when there are no news articles to show, improving the user experience.

Benefits:
Improved performance and reduced unnecessary re-renders.
Enhanced user experience with loading states and better handling of search functionality.

i want to work on this issue @harshit1142 , if you did n't have any issue


生成补丁包

异常类型

编译异常
手机型号

手机系统版本

Tinker版本

1.9.9
gradle版本

4.6
系统

window xp
堆栈/日志

TinkerSupport Plugin Version: 1.1.5
Requires:
Android Plugin for Gradle, Revision 2.0.0 or higher
Dependencies:
Gradle 2.10 or higher (Current Gradle Version: 4.6)
apply plugin: 'com.tencent.tinker.patch'
----------------------tinker build warning ------------------------------------
tinker auto operation:
excluding annotation processor and source template from app packaging. Enable dx jumboMode to reduce package size.
enable dx jumboMode to reduce package size.
disable preDexLibraries to prevent ClassDefNotFoundException when your app is booting.
disable archive dex mode so far for keeping dex apply.
tinker will change your build configs:
we will add TINKER_ID=null in your build output manifest file build/intermediates/manifests/full/*
if minifyEnabled is true
you will find the gen proguard rule file at build/intermediates/tinker_intermediates/tinker_proguard.pro
and we will help you to put it in the proguardFiles.
if multiDexEnabled is true
you will find the gen multiDexKeepProguard file at build/intermediates/tinker_intermediates/tinker_multidexkeep.pro
and we will help you to put it in the MultiDexKeepProguardFile.
if applyResourceMapping file is exist
we will build app apk with resource R.txt file
if resources.arsc has changed, you should use applyResource mode to build the new apk!
----------------------tinker-support build warning ------------------------------------
if you not set autoBackupApkDir we will auto backup the build file to F:\zmproject\zmyouke_android\app/tinker.
if overrideTinkerPatchConfiguration is true
we will override tinker patch configuration，you must use tinker-support's configuration
you will find the gen proguard rule file at build/intermediates/bugly_intermediates/bugly_proguard.pro
and we will help you to put it in the proguardFiles.
if enableProxyApplication is true
we will replace you real application to TINKER_PATCH_APPLICATION
if autoGenerateTinkerId is true
we will auto set base tinkerId as versionName.versionCode, like 1.0.1
------ Tinker Support Override tinkerPatch Configuration ------
tinkerPatch {
tinkerEnable = true
oldApk = F:\zmproject\zmyouke_android\app\build\bakApk\app-0524-13-33-14\zmyk\zmyouke_release_zmyk_1.5.2_05241333.apk
ignoreWarning = false
useSign = true
buildConfig {
applyMapping = F:\zmproject\zmyouke_android\app\build\bakApk\app-0524-13-33-14\zmyk\app-zmyk-release-mapping.txt
applyResourceMapping = F:\zmproject\zmyouke_android\app\build\bakApk\app-0524-13-33-14\zmyk\app-zmyk-release-R.txt
tinkerId = 0524-14-40-26
keepDexApply = false
isProtectedApp = true
supportHotplugComponent = true
}
dex {
dexMode = jar
pattern = [classes*.dex, assets/secondary-dex-?.jar]
loader = [com.tencent.tinker.loader.]
}
lib {
pattern = [lib//.so]
}
res {
pattern = [res/, r/, assets/, resources.arsc, AndroidManifest.xml]
ignoreChange = [assets/*_meta.txt]
largeModSize = 100
}
packageConfig {
}
sevenZip {
zipArtiface = com.tencent.mm:SevenZip:1.1.10
path =
}
------ End ------
variantName:VivoUnionYktest
outputVariantName:VivoUnion-yktest
variantName:VivoUnionVivoUat
outputVariantName:VivoUnion-vivoUat
variantName:VivoUnionDebug
outputVariantName:VivoUnion-debug
variantName:VivoUnionRelease
outputVariantName:VivoUnion-release
variantName:VivoUnionVivoTest
outputVariantName:VivoUnion-vivoTest
variantName:VivoUnionVivoDev
outputVariantName:VivoUnion-vivoDev
variantName:VivoUnionUat
outputVariantName:VivoUnion-uat
variantName:VivoUnionVivoRelease
outputVariantName:VivoUnion-vivoRelease
variantName:ZmykYktest
outputVariantName:Zmyk-yktest
variantName:ZmykVivoUat
outputVariantName:Zmyk-vivoUat
variantName:ZmykDebug
outputVariantName:Zmyk-debug
variantName:ZmykRelease
outputVariantName:Zmyk-release
variantName:ZmykVivoTest
outputVariantName:Zmyk-vivoTest
variantName:ZmykVivoDev
outputVariantName:Zmyk-vivoDev
variantName:ZmykUat
outputVariantName:Zmyk-uat
variantName:ZmykVivoRelease
outputVariantName:Zmyk-vivoRelease
tinker add tinker_id_0524-14-40-26 to your AndroidManifest.xml F:\zmproject\zmyouke_android\app\build\intermediates\merged_manifests\zmykDebug\processZmykDebugManifest\merged\AndroidManifest.xml
tinker add com.zmyouke.course.application.YouKeApplication to dex loader pattern
tinker gen AndroidManifest.xml in build/intermediates/tinker_intermediates/AndroidManifest.xml
we build app apk with apply resource mapping file F:\zmproject\zmyouke_android\app\build\bakApk\app-0524-13-33-14\zmyk\app-zmyk-release-R.txt
manifestPath: F:\zmproject\zmyouke_android\app\build\intermediates\merged_manifests\zmykDebug\processZmykDebugManifest\merged\AndroidManifest.xml
app version:<IP_ADDRESS>
Remove TINKER_ID tinker_id_0524-14-40-26
append TINKER_ID Zmyk-debug-<IP_ADDRESS>_0524-14-40-30
tinkerpatch change application name from com.zmyouke.course.application.YouKeApplication to com.tencent.bugly.beta.tinker.TinkerPatchReflectApplication
tinkerSupport add com.tencent.bugly.beta.tinker.TinkerPatchReflectApplication to dex loader pattern
tinkerSupport gen AndroidManifest.xml in build/intermediates/bugly_intermediates/AndroidManifest.xml
tinker add additionalParameters --stable-ids F:\zmproject\zmyouke_android\app\build\intermediates\tinker_intermediates\public.txt
try update tinker multidex keep proguard file with F:\zmproject\zmyouke_android\app\build\intermediates\tinker_intermediates\tinker_multidexkeep.pro
Copy the output files into backup dir
Target dir: F:\zmproject\zmyouke_android\app\build\bakApk\app-0524-14-40-26\zmyk
Copy app-zmyk-debug.apk to F:\zmproject\zmyouke_android\app\build\bakApk\app-0524-14-40-26\zmyk/app-zmyk-debug.apk
Copy mapping.txt to F:\zmproject\zmyouke_android\app\build\bakApk\app-0524-14-40-26\zmyk/app-zmyk-debug-mapping.txt
Copy R.txt to F:\zmproject\zmyouke_android\app\build\bakApk\app-0524-14-40-26\zmyk/app-zmyk-debug-R.txt
Warning:ignoreWarning is false, but we found there's loader classes added in new primary dex, such these changes will not take effect.
added classes: {Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_01;,Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder$V23;,Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;,Lcom/tencent/tinker/loader/shareutil
/ShareOatUtil$1;,Lcom/tencent/tinker/loader/shareutil/ShareOatUtil;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_04;,Lcom/tencent/tinker/loader/TinkerDexOptimizer$StreamConsumer$1;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_06;,Lcom/tencent/tinker/load
er/TinkerDexOptimizer$1;,Lcom/tencent/tinker/loader/TinkerDexOptimizer$StreamConsumer;,Lcom/tencent/tinker/loader/AndroidNClassLoader;,Lcom/tencent/tinker/loader/TinkerResourcesKey;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_09;,Lcom/tencent/tinker/loader/hotplug/in
terceptor/ServiceBinderInterceptor;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_07;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_00;,Lcom/tencent/tinker/loader/TinkerResourcesKey$V24;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_05;,Lcom/tenc
ent/tinker/loader/TinkerTestAndroidNClassLoader;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_01_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_01_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_01_T;,Lcom/tencent/tinker/loader/hotplug/Activit
yStubs$STDStub_07;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_00_T;,Lcom/tencent/tinker/loader/hotplug/handler/MHMessageHandler;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile$SectionHeader;,Lcom/tencent/tinker/loader/TinkerDexOptimizer$ResultCallback;,Lcom/ten
cent/tinker/loader/SystemClassLoaderAdder$V19;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_06;,Lcom/tencent/tinker/loader/hotplug/interceptor/ServiceBinderInterceptor$1;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_08;,Lcom/tencent/tinker/loader/hotplug/i
nterceptor/ServiceBinderInterceptor$BinderInvocationHandler;,Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs;,Lcom/tencent/tinker/loader/TinkerResourcesKey$V19;,Lcom/tencent/tinker/loader/hotplug/ActivityStub
s$SGTKStub_02;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_09;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_00;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile$1;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_02_T;,Lcom/tencent/tinker/loader
/TinkerTestDexLoad;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile$ProgramHeader;,Lcom/tencent/tinker/loader/hotplug/interceptor/HandlerMessageInterceptor$CallbackWrapper;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_01_T;,Lcom/tencent/tinker/loader/hotplug/Activ
ityStubs$STDStub_08;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile$ElfHeader;,Lcom/tencent/tinker/loader/TinkerResourcePatcher;,Lcom/tencent/tinker/loader/R;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_07;,Lcom/tencent/tinker/loader/TinkerDexOptimizer$OptimizeWor
ker;,Lcom/tencent/tinker/loader/hotplug/interceptor/InterceptFailedException;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_01;,Lcom/tencent/tinker/loader/BuildConfig;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_03;,Lcom/tencent/tinker/loader/hotplug/Act
ivityStubs$STDStub_01;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder$V4;,Lcom/tencent/tinker/loader/hotplug/interceptor/Interceptor$ITinkerHotplugProxy;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_09;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_00;,
Lcom/tencent/tinker/loader/hotplug/interceptor/ServiceBinderInterceptor$FakeInterfaceHandler;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_08;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_06;,Lcom/tencent/
tinker/loader/TinkerResourcesKey$V17;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_00;,Lcom/tencent/tinker/loader/shareutil/ShareBsDiffPatchInfo;,Lcom/tencent/tinker/loader/hotplug/interceptor/HandlerMessageInterceptor;,Lcom/tencent/tinker/loader/hotplug/ActivityStu
bs$SGTStub_00_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_00_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_02;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_02_T;,Lcom/tencent/tinker/loader/TinkerDexOptimizer;,Lcom/tencent/tinker/loader/sh
areutil/ShareConstants;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_09;,Lcom/tencent/tinker/loader/hotplug/handler/PMSInterceptHandler;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_05;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_03;,Lcom/ten
cent/tinker/loader/hotplug/ActivityStubs$SGTKStub_01;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder$V14;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_03;,Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager$AttrTranslator;,Lcom/tencent/tinker/loader/share
util/ShareOatUtil$InstructionSet;,Lcom/tencent/tinker/loader/hotplug/interceptor/ServiceBinderInterceptor$FakeClientBinderHandler;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_02;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_04;,Lcom/tencent/tinker/loader/
hotplug/interceptor/HandlerMessageInterceptor$MessageHandler;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_06;,Lcom/tencent/tinker/loader/TinkerDexLoader$1;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_00_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStub
s$SGTStub_02_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_04;,Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager$1;,Lcom/tencent/tinker/loader/hotplug/EnvConsts;,Lcom/tencent/tinker/loader/hotplug/handler/AMSInterceptHandler;,Lcom/tencent/tinker/loader/h
otplug/ActivityStubs$SGTStub_05;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_03;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_02;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_07;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_05;,Lco
m/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_02_T;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder$1;,Lcom/tencent/tinker/loader/TinkerResourcesKey$V7;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_08;,Lc
om/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_04;,Lcom/tencent/tinker/loader/hotplug/interceptor/Interceptor;}
java.lang.RuntimeException: com.tencent.tinker.build.util.TinkerPatchException: there's loader classes added in new primary dex, such these changes will not take effect.
added classes: {Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_01;,Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder$V23;,Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;,Lcom/tencent/tinker/loader/shareutil
/ShareOatUtil$1;,Lcom/tencent/tinker/loader/shareutil/ShareOatUtil;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_04;,Lcom/tencent/tinker/loader/TinkerDexOptimizer$StreamConsumer$1;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_06;,Lcom/tencent/tinker/load
er/TinkerDexOptimizer$1;,Lcom/tencent/tinker/loader/TinkerDexOptimizer$StreamConsumer;,Lcom/tencent/tinker/loader/AndroidNClassLoader;,Lcom/tencent/tinker/loader/TinkerResourcesKey;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_09;,Lcom/tencent/tinker/loader/hotplug/in
terceptor/ServiceBinderInterceptor;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_07;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_00;,Lcom/tencent/tinker/loader/TinkerResourcesKey$V24;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_05;,Lcom/tenc
ent/tinker/loader/TinkerTestAndroidNClassLoader;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_01_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_01_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_01_T;,Lcom/tencent/tinker/loader/hotplug/Activit
yStubs$STDStub_07;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_00_T;,Lcom/tencent/tinker/loader/hotplug/handler/MHMessageHandler;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile$SectionHeader;,Lcom/tencent/tinker/loader/TinkerDexOptimizer$ResultCallback;,Lcom/ten
cent/tinker/loader/SystemClassLoaderAdder$V19;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_06;,Lcom/tencent/tinker/loader/hotplug/interceptor/ServiceBinderInterceptor$1;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_08;,Lcom/tencent/tinker/loader/hotplug/i
nterceptor/ServiceBinderInterceptor$BinderInvocationHandler;,Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs;,Lcom/tencent/tinker/loader/TinkerResourcesKey$V19;,Lcom/tencent/tinker/loader/hotplug/ActivityStub
s$SGTKStub_02;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_09;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_00;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile$1;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_02_T;,Lcom/tencent/tinker/loader
/TinkerTestDexLoad;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile$ProgramHeader;,Lcom/tencent/tinker/loader/hotplug/interceptor/HandlerMessageInterceptor$CallbackWrapper;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_01_T;,Lcom/tencent/tinker/loader/hotplug/Activ
ityStubs$STDStub_08;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile$ElfHeader;,Lcom/tencent/tinker/loader/TinkerResourcePatcher;,Lcom/tencent/tinker/loader/R;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_07;,Lcom/tencent/tinker/loader/TinkerDexOptimizer$OptimizeWor
ker;,Lcom/tencent/tinker/loader/hotplug/interceptor/InterceptFailedException;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_01;,Lcom/tencent/tinker/loader/BuildConfig;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_03;,Lcom/tencent/tinker/loader/hotplug/Act
ivityStubs$STDStub_01;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder$V4;,Lcom/tencent/tinker/loader/hotplug/interceptor/Interceptor$ITinkerHotplugProxy;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_09;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_00;,
Lcom/tencent/tinker/loader/hotplug/interceptor/ServiceBinderInterceptor$FakeInterfaceHandler;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_08;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_06;,Lcom/tencent/
tinker/loader/TinkerResourcesKey$V17;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_00;,Lcom/tencent/tinker/loader/shareutil/ShareBsDiffPatchInfo;,Lcom/tencent/tinker/loader/hotplug/interceptor/HandlerMessageInterceptor;,Lcom/tencent/tinker/loader/hotplug/ActivityStu
bs$SGTStub_00_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_00_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_02;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_02_T;,Lcom/tencent/tinker/loader/TinkerDexOptimizer;,Lcom/tencent/tinker/loader/sh
areutil/ShareConstants;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_09;,Lcom/tencent/tinker/loader/hotplug/handler/PMSInterceptHandler;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_05;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_03;,Lcom/ten
cent/tinker/loader/hotplug/ActivityStubs$SGTKStub_01;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder$V14;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_03;,Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager$AttrTranslator;,Lcom/tencent/tinker/loader/share
util/ShareOatUtil$InstructionSet;,Lcom/tencent/tinker/loader/hotplug/interceptor/ServiceBinderInterceptor$FakeClientBinderHandler;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_02;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_04;,Lcom/tencent/tinker/loader/
hotplug/interceptor/HandlerMessageInterceptor$MessageHandler;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_06;,Lcom/tencent/tinker/loader/TinkerDexLoader$1;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_00_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStub
s$SGTStub_02_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_04;,Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager$1;,Lcom/tencent/tinker/loader/hotplug/EnvConsts;,Lcom/tencent/tinker/loader/hotplug/handler/AMSInterceptHandler;,Lcom/tencent/tinker/loader/h
otplug/ActivityStubs$SGTStub_05;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_03;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_02;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_07;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_05;,Lco
m/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_02_T;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder$1;,Lcom/tencent/tinker/loader/TinkerResourcesKey$V7;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_08;,Lc
om/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_04;,Lcom/tencent/tinker/loader/hotplug/interceptor/Interceptor;}
at com.tencent.tinker.build.decoder.ApkDecoder$ApkFilesVisitor.visitFile(ApkDecoder.java:179)
at com.tencent.tinker.build.decoder.ApkDecoder$ApkFilesVisitor.visitFile(ApkDecoder.java:138)
at java.nio.file.Files.walkFileTree(Files.java:2670)
at java.nio.file.Files.walkFileTree(Files.java:2742)
at com.tencent.tinker.build.decoder.ApkDecoder.patch(ApkDecoder.java:113)
at com.tencent.tinker.build.patch.Runner.tinkerPatch(Runner.java:65)
at com.tencent.tinker.build.patch.Runner.run(Runner.java:48)
at com.tencent.tinker.build.patch.Runner.gradleRun(Runner.java:41)
at com.tencent.tinker.build.patch.Runner$gradleRun.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at com.tencent.tinker.build.gradle.task.TinkerPatchSchemaTask.tinkerPatch(TinkerPatchSchemaTask.groovy:86)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:788)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:755)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.tencent.tinker.build.util.TinkerPatchException: there's loader classes added in new primary dex, such these changes will not take effect.
added classes: {Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_01;,Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder$V23;,Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;,Lcom/tencent/tinker/loader/shareutil
/ShareOatUtil$1;,Lcom/tencent/tinker/loader/shareutil/ShareOatUtil;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_04;,Lcom/tencent/tinker/loader/TinkerDexOptimizer$StreamConsumer$1;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_06;,Lcom/tencent/tinker/load
er/TinkerDexOptimizer$1;,Lcom/tencent/tinker/loader/TinkerDexOptimizer$StreamConsumer;,Lcom/tencent/tinker/loader/AndroidNClassLoader;,Lcom/tencent/tinker/loader/TinkerResourcesKey;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_09;,Lcom/tencent/tinker/loader/hotplug/in
terceptor/ServiceBinderInterceptor;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_07;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_00;,Lcom/tencent/tinker/loader/TinkerResourcesKey$V24;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_05;,Lcom/tenc
ent/tinker/loader/TinkerTestAndroidNClassLoader;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_01_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_01_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_01_T;,Lcom/tencent/tinker/loader/hotplug/Activit
yStubs$STDStub_07;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_00_T;,Lcom/tencent/tinker/loader/hotplug/handler/MHMessageHandler;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile$SectionHeader;,Lcom/tencent/tinker/loader/TinkerDexOptimizer$ResultCallback;,Lcom/ten
cent/tinker/loader/SystemClassLoaderAdder$V19;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_06;,Lcom/tencent/tinker/loader/hotplug/interceptor/ServiceBinderInterceptor$1;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_08;,Lcom/tencent/tinker/loader/hotplug/i
nterceptor/ServiceBinderInterceptor$BinderInvocationHandler;,Lcom/tencent/tinker/loader/shareutil/ShareResPatchInfo$LargeModeInfo;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs;,Lcom/tencent/tinker/loader/TinkerResourcesKey$V19;,Lcom/tencent/tinker/loader/hotplug/ActivityStub
s$SGTKStub_02;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_09;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_00;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile$1;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_02_T;,Lcom/tencent/tinker/loader
/TinkerTestDexLoad;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile$ProgramHeader;,Lcom/tencent/tinker/loader/hotplug/interceptor/HandlerMessageInterceptor$CallbackWrapper;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_01_T;,Lcom/tencent/tinker/loader/hotplug/Activ
ityStubs$STDStub_08;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile$ElfHeader;,Lcom/tencent/tinker/loader/TinkerResourcePatcher;,Lcom/tencent/tinker/loader/R;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_07;,Lcom/tencent/tinker/loader/TinkerDexOptimizer$OptimizeWor
ker;,Lcom/tencent/tinker/loader/hotplug/interceptor/InterceptFailedException;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_01;,Lcom/tencent/tinker/loader/BuildConfig;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_03;,Lcom/tencent/tinker/loader/hotplug/Act
ivityStubs$STDStub_01;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder$V4;,Lcom/tencent/tinker/loader/hotplug/interceptor/Interceptor$ITinkerHotplugProxy;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_09;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_00;,
Lcom/tencent/tinker/loader/hotplug/interceptor/ServiceBinderInterceptor$FakeInterfaceHandler;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_08;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_06;,Lcom/tencent/
tinker/loader/TinkerResourcesKey$V17;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_00;,Lcom/tencent/tinker/loader/shareutil/ShareBsDiffPatchInfo;,Lcom/tencent/tinker/loader/hotplug/interceptor/HandlerMessageInterceptor;,Lcom/tencent/tinker/loader/hotplug/ActivityStu
bs$SGTStub_00_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_00_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_02;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_02_T;,Lcom/tencent/tinker/loader/TinkerDexOptimizer;,Lcom/tencent/tinker/loader/sh
areutil/ShareConstants;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_09;,Lcom/tencent/tinker/loader/hotplug/handler/PMSInterceptHandler;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_05;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_03;,Lcom/ten
cent/tinker/loader/hotplug/ActivityStubs$SGTKStub_01;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder$V14;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_03;,Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager$AttrTranslator;,Lcom/tencent/tinker/loader/share
util/ShareOatUtil$InstructionSet;,Lcom/tencent/tinker/loader/hotplug/interceptor/ServiceBinderInterceptor$FakeClientBinderHandler;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_02;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_04;,Lcom/tencent/tinker/loader/
hotplug/interceptor/HandlerMessageInterceptor$MessageHandler;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_06;,Lcom/tencent/tinker/loader/TinkerDexLoader$1;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_00_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStub
s$SGTStub_02_T;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_04;,Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager$1;,Lcom/tencent/tinker/loader/hotplug/EnvConsts;,Lcom/tencent/tinker/loader/hotplug/handler/AMSInterceptHandler;,Lcom/tencent/tinker/loader/h
otplug/ActivityStubs$SGTStub_05;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_03;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SIStub_02;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_07;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$STDStub_05;,Lco
m/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_02_T;,Lcom/tencent/tinker/loader/SystemClassLoaderAdder$1;,Lcom/tencent/tinker/loader/TinkerResourcesKey$V7;,Lcom/tencent/tinker/loader/shareutil/ShareElfFile;,Lcom/tencent/tinker/loader/hotplug/ActivityStubs$SGTKStub_08;,Lc
om/tencent/tinker/loader/hotplug/ActivityStubs$SGTStub_04;,Lcom/tencent/tinker/loader/hotplug/interceptor/Interceptor;}
at com.tencent.tinker.build.util.ExcludedClassModifiedChecker.checkIfExcludedClassWasModifiedInNewDex(ExcludedClassModifiedChecker.java:189)
at com.tencent.tinker.build.decoder.DexDiffDecoder.patch(DexDiffDecoder.java:136)
at com.tencent.tinker.build.decoder.UniqueDexDiffDecoder.patch(UniqueDexDiffDecoder.java:39)
at com.tencent.tinker.build.decoder.ApkDecoder$ApkFilesVisitor.visitFile(ApkDecoder.java:176)
... 62 more
FAILURE: Build failed with an exception.

What went wrong:
Could not dispatch a message to the daemon.

Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Exception is:
org.gradle.launcher.daemon.client.DaemonConnectionException: Could not dispatch a message to the daemon.
at org.gradle.launcher.daemon.client.DaemonClientConnection.dispatch(DaemonClientConnection.java:68)
at org.gradle.launcher.daemon.client.DaemonClientConnection.dispatch(DaemonClientConnection.java:35)
at org.gradle.launcher.daemon.client.DaemonClientInputForwarder$ForwardTextStreamToConnection.endOfStream(DaemonClientInputForwarder.java:78)
at org.gradle.launcher.daemon.client.InputForwarder$1.run(InputForwarder.java:95)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Unknown Source)
Caused by: org.gradle.internal.remote.internal.MessageIOException: Could not write '/<IP_ADDRESS>:54750'.
at org.gradle.internal.remote.internal.inet.SocketConnection.flush(SocketConnection.java:134)
at org.gradle.launcher.daemon.client.DaemonClientConnection.dispatch(DaemonClientConnection.java:59)
... 9 more
Caused by: java.io.IOException: 远程主机强迫关闭了一个现有的连接。
at sun.nio.ch.SocketDispatcher.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(Unknown Source)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
at sun.nio.ch.IOUtil.write(Unknown Source)
at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
at org.gradle.internal.remote.internal.inet.SocketConnection$SocketOutputStream.writeWithNonBlockingRetry(SocketConnection.java:272)
at org.gradle.internal.remote.internal.inet.SocketConnection$SocketOutputStream.writeBufferToChannel(SocketConnection.java:260)
at org.gradle.internal.remote.internal.inet.SocketConnection$SocketOutputStream.flush(SocketConnection.java:254)
at org.gradle.internal.remote.internal.inet.SocketConnection.flush(SocketConnection.java:132)
... 10 more

Get more help at https://help.gradle.org

复现路径

不能生成补丁包能看下是什么原因吗？

我也是遇到这问题：Warning:ignoreWarning is false, but we found some loader class has been changed in new primary dex.解决不了


Fix Additional History Entries on Save/Export

Fixes #15. Found and fixed additional bug relating to status updates for tags. Will monitor in the future for problems.

Some issues, reworking


Create _reference.mdx

🚀 Deployed on https://6318f4977694562279825e3c--cozy-fox-0defec.netlify.app


New-DbaAgentJobStep erros when used with -WhatIf [Bug]

Environmental information

#### PowerShell version:

Name                           Value
----                           -----
PSVersion                      5.1.17134.765
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17134.765
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

#### dbatools Module version:

Name    : dbatools
Path    : C:\Program Files\WindowsPowerShell\Modules\dbatools\1.0.4\dbatools.psd1
Version : 1.0.4

# Replace with output of Get-Culture

SQL Server:

Microsoft SQL Server 2016 (SP2-CU5) (KB4475776) - 13.0.5264.1 (X64)
	Jan 10 2019 18:51:38
	Copyright (c) Microsoft Corporation
	Enterprise Edition: Core-based Licensing (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) (Hypervisor)

/* REPLACE WITH output of @@LANGUAGE */

Report

Host used

[X] powershell.exe
[ ] ISE
[X] VS Code
[ ] Other (please specify)

If anything other than powershell.exe was used, please confirm that you can duplicate the issue with powershell.exe

[ ] Still buggy in powershell.exe

Errors Received

Steps to Reproduce
New-DbaAgentJob -SqlInstance shareddbtest2\sql2016 -Job 'Test Job'
New-DbaAgentJobStep -SqlInstance shareddbtest2\sql2012 -Job 'Test Job' -StepId 1 -StepName 'Test Step' -Subsyste
m TransactSql -Command 'SELECT 1' -Database 'master' -WhatIf
Expected Behavior
The job step to not be created but no error information displayed.
Actual Behavior
format-default : To accomplish this action, set property CommandExecutionSuccessCode.
+ CategoryInfo          : NotSpecified: (:) [format-default], PropertyNotSetException
+ FullyQualifiedErrorId : Microsoft.SqlServer.Management.Smo.PropertyNotSetException,Microsoft.PowerShell.Commands
.FormatDefaultCommand
I was able to duplicate this behavior by manually creating a job step using SMO and trying to output it before it was created.  It appears there are several fields it expect to always be set when outputting a job step but they can be defaulted when creating so aren't required. Piping to Select-Object and just selecting properties that had been set did work.

Thanks for the report! @sanderstad can you take a look?


Convert ViewIncidentsTable.test.tsx to RTL

#72

I got your last PR confused with this Issue lol

@JacobMGEvans  Yeah, there are a few of these with very similar names


[Feature] tool-bar manager UI

It would be nice to have a simple GUI which allows customizing the buttons of tool-bar
What I have in mind is a GUI like this inside Toolbar that allows customizing the buttons. It does not matter where these buttons come from if it is in Toolbar itself. It can manage all the buttons.

That would be really nice! How would you like to add this UI? The default Atom config UI won't allow such a complex interface if I recall correctly.


Add ZLS to the Open VSX Registry

https://open-vsx.org/
The VSCodium fork uses this repository instead of Microsoft's, it would be nice to publish it there.

This would also be helpful for gitpod
https://www.gitpod.io/blog/open-vsx/#open-vsx

There's a GitHub Action to automate releases to both the VS Code marketplace, as well as the OpenVSX registry: https://github.com/marketplace/actions/publish-vs-code-extension

Good to know, thanks daenney.


⚠ Bofrost.at has degraded performance

In fb48108, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2126 ms

Resolved: Bofrost.at performance has improved in 58b0cd7 after 7 minutes.


gh-99 added message methods

gh-99 added message methods
@ht-thomas confirm if am on the right track.

@ushergodwin yeah, this is it.

@ushergodwin I think the changes you made to the __init__.py imports are causing the tests to fail

@ushergodwin what was making the tests fail?

I moved the ForceReply object from forcereply.py to replykeyboard...py since it looked isolated. I then changed the import in __init__.py to reflect the new object path.
The tests failed. So my assumption was that since the test validates the objects again the ones in the Telegram API, maybe changing its location could have made themfail.
So I put it back in its original file and, reverted the import to how it was before I changed it.
But still, the tests are failing, they stop on scanning the object.

@ushergodwin The forcereply.py module was filled in by @kallyas in the issue I had here #116 .
So I think we should stick with the previous API because the parser also relies on its existence

Okay, let me revert


Multiple test file patterns

This PR implemented multiple test file patterns.
@yaamai I didn't add tests with multiple patterns in the environment variable, but I confirmed locally that it works.

Codecov Report

Merging #46 into master will increase coverage by 0.08%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #46      +/-   ##
==========================================
+ Coverage   84.15%   84.23%   +0.08%
==========================================
  Files           8        8
  Lines         366      368       +2
==========================================
+ Hits          308      310       +2
  Misses         58       58

Impacted Files
Coverage Δ

side_runner_py/config.py
100% <ø> (ø)
:arrow_up:

side_runner_py/main.py
83.75% <100%> (+0.2%)
:arrow_up:

Continue to review full report at Codecov.

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


enable SSL

How to enable ssl for mysql connections

If this for the jasperserver database or a mysql datasource or both?
Do you have any documentation that shows how to do it outside of a container?

Hi,
This is for jasperserver database.
Actually, I was attempting to deploy jasperserver container on Azure App Services with external jasperserver database on Azure MySQL, but it was failing to connect due to SSL. I disabled SSL on MySQL and it is working fine now,
I wonder if there is some option to add SSL to jasperserver so I can use my db with ssl.

Ok, that makes sense.
Not sure about the full solution but it probably involves changing the JDBC url like this article:
https://community.jaspersoft.com/wiki/how-install-tibco-jasperreports-server-ssl-enabled-sql-server-database
Currently we do similar substitutions of the properties in the master.properties on line 13 of the entrypoint.sh script before we run the jasperserver bootstrap scripts on line 24
https://github.com/retrievercommunications/docker-jasperserver/blob/master/entrypoint.sh#L13
Hope this helps.


Update requests and pyyaml

Github Security audits found vulnerabilities in requests and pyyaml packages, recommendations:
requests>=2.20.0
pyyaml>=4.2b1

Reports:
yaml
requests

Fixed by #647.

Do we need to modify these codes as well?

requests

https://github.com/ucbrise/clipper/blob/develop/dockerfiles/FrontendExporterDockerfile#L10
https://github.com/ucbrise/clipper/blob/develop/dockerfiles/ClipperDevDockerfile#L18
https://github.com/ucbrise/clipper/blob/develop/dockerfiles/ClipperPy35DevDockerfile#L23

yaml

https://github.com/ucbrise/clipper/blob/develop/dockerfiles/Py36RPCDockerfile#L13
https://github.com/ucbrise/clipper/blob/develop/dockerfiles/ClipperDevDockerfile#L19
https://github.com/ucbrise/clipper/blob/develop/dockerfiles/Py2RPCDockerfile#L13
https://github.com/ucbrise/clipper/blob/develop/dockerfiles/Py35RPCDockerfile#L13
https://github.com/ucbrise/clipper/blob/develop/dockerfiles/ClipperPy35DevDockerfile#L24


Fix FinalErrorHandler for error phase

Expected behavior
When using a Layer, an unrecovered panic should cause the FinalErrorHandler to be use and return a 500 status code with the error message.
Actual behavior
The FinalErrorHandler was never used if a panic occured. The Run function simply returned without calling serveHTTP (ref. https://github.com/vinci-proxy/layer/blob/master/layer.go#L143) and therefore simply swallows the panic. @h2non correct me if this was the expected behavior.
Additional information
This PR should also increase code coverage.

You are right. I think we should include a error specific final handler function to be custimized, istead of using finalHandler. Currently it's bad vecause we are using the same handler for any phase.


Cannot connect to synced realm using v.3.0.0 beta.4 and rc.1

Goals

Connect to a realm with a sync configuration.
After updating to beta 4 of Realm Frameworks, the app no longer can connect to synced realms.

The codebase is the same except the few function renames required by beta 4. The parallel project using beta 3 is running fine against the same server.
The realms are newly defined realms.
Can create syncUser. The problem only arises when connecting to synced realms.

Expected Results

Successful connection as it happens with beta.1, beta.2 and beta.3
Actual Results
Xcode log:
2017-10-03 08:20:15.645302 Sync: Connection[1]: Resolving ' SERVERIP:9080'
2017-10-03 08:20:15.646018 Sync: Connection[1]: Connecting to endpoint ' SERVERIP:9080' (1/1)
2017-10-03 08:20:15.780425 Sync: Connection[1]: Connected to endpoint ' SERVERIP:9080' (from '<IP_ADDRESS>:51739')
2017-10-03 08:20:15.927879 Sync: Connection[1]: Writing failed: End of input
2017-10-03 08:20:15.928723 Sync: Connection[1]: Connection closed due to error
Server log
sync: HTTP Connection[11]: Connection is closed after HTTP response.
1:33:53 PMdetail
sync: HTTP Connection[11]: 404 Not Found
1:33:53 PMdebug
sync: HTTP Connection[11]: HTTP request received, url = /realm-sync/%2F2afb43bb6162978159987dce2e42c4c1%2FsyncFixed
1:33:53 PMdebug
sync: HTTP Connection[11]: Connection initiates HTTP receipt
1:33:53 PMinfo
sync: HTTP Connection[11]: Connection from <IP_ADDRESS>:44830
1:33:53 PMdebug
proxy: attempting to upgrade client ::ffff:<IP_ADDRESS>:56214 => headers: {"authorization":"Realm-Access-Token version=1 token="[TOKEN]","connection":"Upgrade","host":"[SERVERIP]","sec-websocket-key":"ZaUxn8oiYTOhkSie02wwsg==","sec-websocket-protocol":"io.realm.sync.21","sec-websocket-version":"13","upgrade":"websocket"}.}
Steps to Reproduce

Happens when trying to connect to a synched Realm.
The synched realm is defined after successful userlogin.
Code Sample
    if let user = SyncUser.current {

        // Configure Realm
        let configuration = Realm.Configuration(
                syncConfiguration: SyncConfiguration(user: user, realmURL: Constants.syncServerURL! ),
                objectTypes: [Area.self, Task.self, Action.self, DateRange.self, User.self, MasterData.self]
            )
        Realm.Configuration.defaultConfiguration = configuration

        let realm = try! Realm()
        print(realm.objects(Task.self).count)  // HERE THE CONNECTION FAILS WITH THE ABOVE LOGS
    } else {
        print("Could not configure sync REALM, since there is no syncUser")
    }

Version of Realm and Tooling
Realm framework version:
v3.0.0-rc.1 (same issue with v3.0.0-beta.4)
Realm Object Server version:
2.0.0-rc2-285
Xcode version:
Xcode 9.0. Build version 9A235
iOS/OSX version:
iOS11
Dependency manager + version: ?
Carthage, v0.25.0 . Cartfile: github "realm/realm-cocoa" "v3.0.0-rc.1"

The version of ROS you mention does not look to be a recent enough version for the version of Realm Cocoa you’re using. I’d recommend contacting<EMAIL_ADDRESS>to learn about updating to the appropriate version of ROS.

"Help" send me info on how to get an up to date ROS.
No it's working!
Thanks!


Got stuck on Bluetooth.cpp, then 'snowboy-detect.h: No such file or directory'

Briefly summarize your issue:
-Using Raspberry Pi Zero W
Firstly I got stuck on Building CXX object CapabilityAgents/Bluetooth/src/CMakeFiles/Bluetooth.dir/Bluetooth.cpp.o.
After I tried to do it on 16GB,  "2019-04-08-raspbian-stretch-lite" and using KITT.ai I get this:
fatal error: snowboy-detect.h: No such file or directory
 #include <snowboy-detect.h>

I just don't have energy to find things that can help me, cut I tried to get it working on NTC C.H.I.P, but that runs on Jessie, so out of date... After week I bought Zero and get this. Could please somebody help me out of this and get avs running?
What version of the AVS Device SDK are you using?
  <1.12.1>

Tell us what hardware you're using:

[ ] Desktop / Laptop
[X] Raspberry Pi
[ ] Other - tell us more:

Tell us about your OS (Type & version):

[ ] Linux
[ ] MacOS
[X] Raspbian Stretch
[ ] Raspbian Jessy
[ ] Other - tell us more:

Hi @NCPlyn, You could follow guide and make sure that -DKITTAI_KEY_WORD_DETECTOR_INCLUDE_DIR is set to the absolute path of where you downloaded the KITT.ai package.  Inside that path, you should see the missing snowboy-detect.h file.  Hope this helps!

OK, after downloading and adding good path it complies without a problem. Only I didn't hear I thing from Alexa (using USB sound card) but that problem is in troubleshooting guide.
But when I say 'Alexa' and alexa listening, there is big delay. Is there something to make the delay shorter?

Can you clarify which delay you are referring to and posting DEBUG9 logs. Theoretically, there should not be a very noticeable delay between the Alexa keyword being recognized and the SDK entering the Listening state.


doc: Update HTN notebook + introduce scheduling notebook

This updates the hierarchical notebook to the version presented at the ICAPS tutorial
(with some additional minor improvements).
It also introduces a scheduling notebook that is not yet publicly linked in the documentation.
An entry for scheduling in hte doc (linking to the notebook) will be provided once we have a solver that officially supports it (typically next release of aries in the coming weeks).
- doc: Update hierarchical planning notebook

doc: Fix typo hierrarchical -> hierarchical
doc: add scheduling notebook

Codecov Report
All modified lines are covered by tests :white_check_mark:

Comparison is base (a352e1d) 85.02% compared to head (37d5124) 85.02%.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #499   +/-   ##
=======================================
  Coverage   85.02%   85.02%
=======================================
  Files         198      198
  Lines       26071    26071
=======================================
  Hits        22168    22168
  Misses       3903     3903

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.