High memory consumption and sluggish response in UI

FROM: D D

Runs horribly, consumes all memory and crashes. Besides, it works very slowly, hints for the code load for several dozens of seconds.

D D, sorry you are seeing this issue. We have had reports of memory consumption issues and are actively looking at it. Could you help us by sending us your Pylance logs when you see this problem? The the troubleshooting guide has the instructions for collecting the logs.
Thanks

FWIW, I tried stepping back through older pylance extensions back into 2023 even and could not stop the memory growth.  Must be something within my heavy environment, but what, shrug yet...

I am experiencing this issue, here are the logs:
2024-04-25 11:39:44.963 [info] (Client) Pylance async client (2024.4.1) started with python extension (2024.4.1)
2024-04-25 11:39:45.569 [info] [Info  - 11:39:45] (71959) Pylance language server 2024.4.1 (pyright version 1.1.356, commit 6652c4a8) starting
2024-04-25 11:39:45.569 [info] [Info  - 11:39:45] (71959) Server root directory: file:///home/jgalar/.vscode/extensions/ms-python.vscode-pylance-2024.4.1/dist
2024-04-25 11:39:45.576 [info] [Info  - 11:39:45] (71959) Starting service instance "lttng-tools"
2024-04-25 11:39:45.606 [info] (71959) No configuration file found.
2024-04-25 11:39:45.606 [info] (71959) pyproject.toml file found at /home/jgalar/EfficiOS/src/lttng-tools.
2024-04-25 11:39:45.607 [info] [Info  - 11:39:45] (71959) Setting pythonPath for service "lttng-tools": "/usr/bin/python"
2024-04-25 11:39:45.607 [info] [Info  - 11:39:45] (71959) Setting environmentName for service "lttng-tools": "3.11.8 (global)"
2024-04-25 11:39:45.609 [info] [Info  - 11:39:45] (71959) Loading pyproject.toml file at /home/jgalar/EfficiOS/src/lttng-tools/pyproject.toml
2024-04-25 11:39:45.611 [info] [Info  - 11:39:45] (71959) Pyproject file "/home/jgalar/EfficiOS/src/lttng-tools/pyproject.toml" has no "[tool.pyright]" section.
2024-04-25 11:39:45.638 [info] [Info  - 11:39:45] (71959) Assuming Python version 3.11.8.final.0
2024-04-25 11:39:45.638 [info] (71959) Assuming Python platform Linux
2024-04-25 11:39:45.717 [info] [Info  - 11:39:45] (71959) Search paths for file:///home/jgalar/EfficiOS/src/lttng-tools
2024-04-25 11:39:45.717 [info] [Info  - 11:39:45] (71959)   /home/jgalar/.vscode/extensions/ms-python.vscode-pylance-2024.4.1/dist/typeshed-fallback/stdlib
2024-04-25 11:39:45.717 [info] [Info  - 11:39:45] (71959)   /home/jgalar/EfficiOS/src/lttng-tools
2024-04-25 11:39:45.717 [info] [Info  - 11:39:45] (71959)   /home/jgalar/EfficiOS/src/lttng-tools/src
2024-04-25 11:39:45.717 [info] [Info  - 11:39:45] (71959)   /usr/lib/python3.8/site-packages
2024-04-25 11:39:45.717 [info] [Info  - 11:39:45] (71959)   /home/jgalar/EfficiOS/src/lttng-tools/typings
2024-04-25 11:39:45.717 [info] [Info  - 11:39:45] (71959)   /home/jgalar/.vscode/extensions/ms-python.vscode-pylance-2024.4.1/dist/typeshed-fallback/stubs/...
2024-04-25 11:39:45.717 [info] [Info  - 11:39:45] (71959)   /home/jgalar/.vscode/extensions/ms-python.vscode-pylance-2024.4.1/dist/bundled/stubs
2024-04-25 11:39:45.718 [info] [Info  - 11:39:45] (71959)   /usr/lib/python3.11
2024-04-25 11:39:45.718 [info] [Info  - 11:39:45] (71959)   /usr/lib/python3.11/lib-dynload
2024-04-25 11:39:45.718 [info] [Info  - 11:39:45] (71959)   /usr/lib/python3.11/site-packages
2024-04-25 11:39:45.718 [info] [Info  - 11:39:45] (71959)   /usr/lib/python3.11/site-packages/bt2-2.1.0rc1-py3.11-linux-x86_64.egg
2024-04-25 11:39:45.718 [info] [Info  - 11:39:45] (71959) Adding fs watcher for library directories:
 file:///usr/lib/python3.11
file:///usr/lib/python3.11/lib-dynload
file:///usr/lib/python3.11/site-packages
file:///usr/lib/python3.11/site-packages/bt2-2.1.0rc1-py3.11-linux-x86_64.egg
2024-04-25 11:39:45.718 [info] [Info  - 11:39:45] (71959) Adding fs watcher for directories:
 file:///home/jgalar/EfficiOS/src/lttng-tools
2024-04-25 11:39:45.718 [info] (71959) Searching for source files
2024-04-25 11:39:55.718 [info] [Error - 11:39:55] (71959) Enumeration of workspace source files is taking longer than 10 seconds.
This may be because:
* You have opened your home directory or entire hard drive as a workspace
* Your workspace contains a very large number of directories and files
* Your workspace contains a symlink to a directory with many files
* Your workspace is remote, and file enumeration is slow
To reduce this time, open a workspace directory with fewer files or add a pyrightconfig.json configuration file with an "exclude" section to exclude subdirectories from your workspace. For more details, refer to https://github.com/microsoft/pyright/blob/main/docs/configuration.md.
2024-04-25 11:41:16.908 [info]
<--- Last few GCs --->

[71959:0x1e8400304000]    90445 ms: Scavenge 3931.4 (4068.8) -> 3928.6 (4068.8) MB, 12.79 / 0.00 ms  (average mu = 0.998, current mu = 0.997) allocation failure;
[71959:0x1e8400304000]    90478 ms: Scavenge 3931.5 (4068.8) -> 3929.3 (4068.8) MB, 16.22 / 0.00 ms  (average mu = 0.998, current mu = 0.997) allocation failure;
[71959:0x1e8400304000]    90509 ms: Scavenge 3931.6 (4068.8) -> 3929.9 (4068.8) MB, 16.69 / 0.00 ms  (average mu = 0.998, current mu = 0.997) allocation failure;

<--- JS stacktrace --->

<--- Last few GCs --->

[71959:0x1e8400304000]    90445 ms: Scavenge 3931.4 (4068.8) -> 3928.6 (4068.8) MB, 12.79 / 0.00 ms  (average mu = 0.998, current mu = 0.997) allocation failure;
[71959:0x1e8400304000]    90478 ms: Scavenge 3931.5 (4068.8) -> 3929.3 (4068.8) MB, 16.22 / 0.00 ms  (average mu = 0.998, current mu = 0.997) allocation failure;
[71959:0x1e8400304000]    90509 ms: Scavenge 3931.6 (4068.8) -> 3929.9 (4068.8) MB, 16.69 / 0.00 ms  (average mu = 0.998, current mu = 0.997) allocation failure;

<--- JS stacktrace --->

<--- Last few GCs --->

[71959:0x1e8400304000]    90445 ms: Scavenge 3931.4 (4068.8) -> 3928.6 (4068.8) MB, 12.79 / 0.00 ms  (average mu = 0.998, current mu = 0.997) allocation failure;
[71959:0x1e8400304000]    90478 ms: Scavenge 3931.5 (4068.8) -> 3929.3 (4068.8) MB, 16.22 / 0.00 ms  (average mu = 0.998, current mu = 0.997) allocation failure;
[71959:0x1e8400304000]    90509 ms: Scavenge 3931.6 (4068.8) -> 3929.9 (4068.8) MB, 16.69 / 0.00 ms  (average mu = 0.998, current mu = 0.997) allocation failure;

<--- JS stacktrace --->

<--- Last few GCs --->

[71959:0x1e8400304000]    90445 ms: Scavenge 3931.4 (4068.8) -> 3928.6 (4068.8) MB, 12.79 / 0.00 ms  (average mu = 0.998, current mu = 0.997) allocation failure;
[71959:0x1e8400304000]    90478 ms: Scavenge 3931.5 (4068.8) -> 3929.3 (4068.8) MB, 16.22 / 0.00 ms  (average mu = 0.998, current mu = 0.997) allocation failure;
[71959:0x1e8400304000]    90509 ms: Scavenge 3931.6 (4068.8) -> 3929.9 (4068.8) MB, 16.69 / 0.00 ms  (average mu = 0.998, current mu = 0.997) allocation failure;

<--- JS stacktrace --->

FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory
FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory
FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory
FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory

I have pointed pylance at another node binary, but then it eventually dies using ~13gb with
                Stack trace of thread 13862:
                #0  0x00007961d66ab32c n/a (libc.so.6 + 0x8d32c)
                #1  0x00007961d665a6c8 raise (libc.so.6 + 0x3c6c8)
                #2  0x00007961d66424b8 abort (libc.so.6 + 0x244b8)
                #3  0x000056e3b1e2abfd n/a (node + 0x82abfd)
                #4  0x000056e3b22305e4 _ZN2v85Utils16ReportOOMFailureEPNS_8internal7IsolateEPKcRKNS_10OOMDetailsE (node + 0xc305e4)
                #5  0x000056e3b22309db _ZN2v88internal2V823FatalProcessOutOfMemoryEPNS0_7IsolateEPKcRKNS_10OOMDetailsE (node + 0xc309db)
                #6  0x000056e3b243c48c _ZN2v88internal4Heap23FatalProcessOutOfMemoryEPKc (node + 0xe3c48c)
                #7  0x000056e3b2453b87 _ZN2v88internal4Heap14CollectGarbageENS0_15AllocationSpaceENS0_23GarbageCollectionReasonENS_15GCCallbackFlagsE (node + 0xe53b87)
                #8  0x000056e3b2430a80 _ZN2v88internal13HeapAllocator33AllocateRawWithLightRetrySlowPathEiNS0_14AllocationTypeENS0_16AllocationOriginENS0_19AllocationAlignmentE (node + 0xe30a80)
                #9  0x000056e3b2431ac9 _ZN2v88internal13HeapAllocator34AllocateRawWithRetryOrFailSlowPathEiNS0_14AllocationTypeENS0_16AllocationOriginENS0_19AllocationAlignmentE (node + 0xe31ac9)
                #10 0x000056e3b2413893 _ZN2v88internal7Factory15NewFillerObjectEiNS0_19AllocationAlignmentENS0_14AllocationTypeENS0_16AllocationOriginE (node + 0xe13893)
                #11 0x000056e3b27e743a _ZN2v88internal33Runtime_AllocateInYoungGenerationEiPmPNS0_7IsolateE (node + 0x11e743a)
                #12 0x000056e352be53f6 n/a (n/a + 0x0)
                #13 0x000056e352be5dde n/a (n/a + 0x0)
                #14 0x000056e332d6f346 n/a (n/a + 0x0)
                #15 0x000056e332d71458 n/a (n/a + 0x0)
                #16 0x000056e332e4befc n/a (n/a + 0x0)

I have enabled the logs at the "Trace" level, but I don't get more info in the output window.
Let me know if I can provide more info!

I was intrigued so I took a closer look at the issue.
I captured a system call trace with LTTng and noticed that the node process does this endlessly:
[13:14:26.346057411] (+0.000000524) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS", bufsiz = 1023 }
[13:14:26.346058285] (+0.000000874) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346058924] (+0.000000639) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src", bufsiz = 1023 }
[13:14:26.346059918] (+0.000000994) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346060690] (+0.000000772) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools", bufsiz = 1023 }
[13:14:26.346061878] (+0.000001188) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346062682] (+0.000000804) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc", bufsiz = 1023 }
[13:14:26.346063934] (+0.000001252) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346064797] (+0.000000863) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man", bufsiz = 1023 }
[13:14:26.346066106] (+0.000001309) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346067012] (+0.000000906) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man7", bufsiz = 1023 }
[13:14:26.346068579] (+0.000001567) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = 45, buf =<PHONE_NUMBER>16912 }
[13:14:26.346068923] (+0.000000344) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home", bufsiz = 1023 }
[13:14:26.346069492] (+0.000000569) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346069894] (+0.000000402) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar", bufsiz = 1023 }
[13:14:26.346070593] (+0.000000699) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346071108] (+0.000000515) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS", bufsiz = 1023 }
[13:14:26.346071973] (+0.000000865) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346072612] (+0.000000639) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src", bufsiz = 1023 }
[13:14:26.346073598] (+0.000000986) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346074381] (+0.000000783) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools", bufsiz = 1023 }
[13:14:26.346075564] (+0.000001183) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346076370] (+0.000000806) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc", bufsiz = 1023 }
[13:14:26.346077618] (+0.000001248) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346078468] (+0.000000850) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man", bufsiz = 1023 }
[13:14:26.346079789] (+0.000001321) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346080702] (+0.000000913) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man3", bufsiz = 1023 }
[13:14:26.346082266] (+0.000001564) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = 45, buf =<PHONE_NUMBER>16912 }
[13:14:26.346082604] (+0.000000338) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home", bufsiz = 1023 }
[13:14:26.346083176] (+0.000000572) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346083577] (+0.000000401) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar", bufsiz = 1023 }
[13:14:26.346084269] (+0.000000692) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346084783] (+0.000000514) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS", bufsiz = 1023 }
[13:14:26.346085654] (+0.000000871) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346086292] (+0.000000638) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src", bufsiz = 1023 }
[13:14:26.346087286] (+0.000000994) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346088042] (+0.000000756) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools", bufsiz = 1023 }
[13:14:26.346089301] (+0.000001259) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346090110] (+0.000000809) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc", bufsiz = 1023 }
[13:14:26.346091382] (+0.000001272) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346092240] (+0.000000858) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man", bufsiz = 1023 }
[13:14:26.346093546] (+0.000001306) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346094443] (+0.000000897) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man8", bufsiz = 1023 }
[13:14:26.346095994] (+0.000001551) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = 45, buf =<PHONE_NUMBER>16912 }
[13:14:26.346096332] (+0.000000338) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home", bufsiz = 1023 }
[13:14:26.346096906] (+0.000000574) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346097306] (+0.000000400) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar", bufsiz = 1023 }
[13:14:26.346098006] (+0.000000700) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346098520] (+0.000000514) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS", bufsiz = 1023 }
[13:14:26.346099391] (+0.000000871) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346100029] (+0.000000638) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src", bufsiz = 1023 }
[13:14:26.346101020] (+0.000000991) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346101795] (+0.000000775) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools", bufsiz = 1023 }
[13:14:26.346102969] (+0.000001174) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346103781] (+0.000000812) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc", bufsiz = 1023 }
[13:14:26.346105034] (+0.000001253) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346105900] (+0.000000866) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man", bufsiz = 1023 }
[13:14:26.346107246] (+0.000001346) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346108158] (+0.000000912) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man8", bufsiz = 1023 }
[13:14:26.346109709] (+0.000001551) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = 45, buf =<PHONE_NUMBER>16912 }
[13:14:26.346110057] (+0.000000348) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home", bufsiz = 1023 }
[13:14:26.346110630] (+0.000000573) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346111030] (+0.000000400) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar", bufsiz = 1023 }
[13:14:26.346111725] (+0.000000695) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346112237] (+0.000000512) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS", bufsiz = 1023 }
[13:14:26.346113110] (+0.000000873) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346113754] (+0.000000644) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src", bufsiz = 1023 }
[13:14:26.346114742] (+0.000000988) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346115519] (+0.000000777) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools", bufsiz = 1023 }
[13:14:26.346116705] (+0.000001186) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346117507] (+0.000000802) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc", bufsiz = 1023 }
[13:14:26.346118788] (+0.000001281) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346119650] (+0.000000862) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man", bufsiz = 1023 }
[13:14:26.346120964] (+0.000001314) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346121869] (+0.000000905) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man1", bufsiz = 1023 }
[13:14:26.346123430] (+0.000001561) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = 45, buf =<PHONE_NUMBER>16912 }
[13:14:26.346123757] (+0.000000327) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home", bufsiz = 1023 }
[13:14:26.346124329] (+0.000000572) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346124731] (+0.000000402) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar", bufsiz = 1023 }
[13:14:26.346125433] (+0.000000702) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346125945] (+0.000000512) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS", bufsiz = 1023 }
[13:14:26.346126822] (+0.000000877) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346127460] (+0.000000638) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src", bufsiz = 1023 }
[13:14:26.346128447] (+0.000000987) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346129206] (+0.000000759) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools", bufsiz = 1023 }
[13:14:26.346130383] (+0.000001177) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346131193] (+0.000000810) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc", bufsiz = 1023 }
[13:14:26.346132451] (+0.000001258) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346133305] (+0.000000854) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man", bufsiz = 1023 }
[13:14:26.346134621] (+0.000001316) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346135533] (+0.000000912) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man3", bufsiz = 1023 }
[13:14:26.346137074] (+0.000001541) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = 45, buf =<PHONE_NUMBER>16912 }
[13:14:26.346137417] (+0.000000343) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home", bufsiz = 1023 }
[13:14:26.346137990] (+0.000000573) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346138389] (+0.000000399) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar", bufsiz = 1023 }
[13:14:26.346139087] (+0.000000698) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346139603] (+0.000000516) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS", bufsiz = 1023 }
[13:14:26.346140473] (+0.000000870) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346141123] (+0.000000650) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src", bufsiz = 1023 }
[13:14:26.346142154] (+0.000001031) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346142917] (+0.000000763) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools", bufsiz = 1023 }
[13:14:26.346144104] (+0.000001187) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346144912] (+0.000000808) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc", bufsiz = 1023 }
[13:14:26.346146166] (+0.000001254) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346147054] (+0.000000888) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man", bufsiz = 1023 }
[13:14:26.346148411] (+0.000001357) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.346169145] (+0.000020734) carbonara syscall_entry_access: { cpu_id = 0 }, { filename = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man7/man7/man3/man8/man8/man1/man3/bin/activate", mode = 0 }
[13:14:26.346184998] (+0.000015853) carbonara syscall_exit_access: { cpu_id = 0 }, { ret = -2 }
[13:14:26.346203420] (+0.000018422) carbonara syscall_entry_access: { cpu_id = 0 }, { filename = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man7/man7/man3/man8/man8/man1/man3/Scripts/activate", mode = 0 }
[13:14:26.346218704] (+0.000015284) carbonara syscall_exit_access: { cpu_id = 0 }, { ret = -2 }
[13:14:26.346235854] (+0.000017150) carbonara syscall_entry_access: { cpu_id = 0 }, { filename = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man7/man7/man3/man8/man8/man1/man3/pyvenv.cfg", mode = 0 }
[13:14:26.346251239] (+0.000015385) carbonara syscall_exit_access: { cpu_id = 0 }, { ret = -2 }
[13:14:26.346262975] (+0.000011736) carbonara syscall_entry_openat: { cpu_id = 0 }, { dfd = -100, filename = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man7/man7/man3/man8/man8/man1/man3", flags = 591872, mode = 0 }
[13:14:26.346279964] (+0.000016989) carbonara syscall_exit_openat: { cpu_id = 0 }, { ret = 31 }
[13:14:26.346280421] (+0.000000457) carbonara syscall_entry_newfstat: { cpu_id = 0 }, { fd = 31 }
[13:14:26.346280918] (+0.000000497) carbonara syscall_exit_newfstat: { cpu_id = 0 }, { ret = 0, statbuf =<PHONE_NUMBER>16656 }
[13:14:26.346283191] (+0.000002273) carbonara syscall_entry_getdents64: { cpu_id = 0 }, { fd = 31, count = 32768 }
[13:14:26.346306530] (+0.000023339) carbonara syscall_exit_getdents64: { cpu_id = 0 }, { ret = 3816, dirent =<PHONE_NUMBER>7632 }
[13:14:26.346312416] (+0.000005886) carbonara syscall_entry_getdents64: { cpu_id = 0 }, { fd = 31, count = 32768 }
[13:14:26.346312822] (+0.000000406) carbonara syscall_exit_getdents64: { cpu_id = 0 }, { ret = 0, dirent =<PHONE_NUMBER>7632 }
[13:14:26.346313290] (+0.000000468) carbonara syscall_entry_close: { cpu_id = 0 }, { fd = 31 }
[13:14:26.346317930] (+0.000004640) carbonara syscall_exit_close: { cpu_id = 0 }, { ret = 0 }
[13:14:26.346676928] (+0.000358998) carbonara syscall_entry_access: { cpu_id = 0 }, { filename = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man7/man7/man3/man8/man8/man1/man3/man1", mode = 0 }
[13:14:26.346693240] (+0.000016312) carbonara syscall_exit_access: { cpu_id = 0 }, { ret = -40 }
[13:14:26.346706496] (+0.000013256) carbonara syscall_entry_access: { cpu_id = 0 }, { filename = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man7/man7/man3/man8/man8/man1/man3/man3", mode = 0 }
[13:14:26.346721703] (+0.000015207) carbonara syscall_exit_access: { cpu_id = 0 }, { ret = -40 }
[13:14:26.346733369] (+0.000011666) carbonara syscall_entry_access: { cpu_id = 0 }, { filename = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man7/man7/man3/man8/man8/man1/man3/man7", mode = 0 }
[13:14:26.346748394] (+0.000015025) carbonara syscall_exit_access: { cpu_id = 0 }, { ret = -40 }
[13:14:26.346760086] (+0.000011692) carbonara syscall_entry_access: { cpu_id = 0 }, { filename = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man7/man7/man3/man8/man8/man1/man3/man8", mode = 0 }
[13:14:26.346775084] (+0.000014998) carbonara syscall_exit_access: { cpu_id = 0 }, { ret = -40 }
[13:14:26.347012869] (+0.000237785) carbonara syscall_entry_access: { cpu_id = 0 }, { filename = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man7/man7/man3/man8/man8/man1/man7", mode = 0 }
[13:14:26.347029348] (+0.000016479) carbonara syscall_exit_access: { cpu_id = 0 }, { ret = 0 }
[13:14:26.347031714] (+0.000002366) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home", bufsiz = 1023 }
[13:14:26.347032732] (+0.000001018) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.347033232] (+0.000000500) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar", bufsiz = 1023 }
[13:14:26.347034030] (+0.000000798) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.347034568] (+0.000000538) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS", bufsiz = 1023 }
[13:14:26.347035488] (+0.000000920) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.347036063] (+0.000000575) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src", bufsiz = 1023 }
[13:14:26.347037097] (+0.000001034) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.347037848] (+0.000000751) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools", bufsiz = 1023 }
[13:14:26.347039076] (+0.000001228) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.347039857] (+0.000000781) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc", bufsiz = 1023 }
[13:14:26.347041115] (+0.000001258) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.347041921] (+0.000000806) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man", bufsiz = 1023 }
[13:14:26.347043232] (+0.000001311) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.347044204] (+0.000000972) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man1", bufsiz = 1023 }
[13:14:26.347046070] (+0.000001866) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = 45, buf =<PHONE_NUMBER>16912 }
[13:14:26.347046631] (+0.000000561) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home", bufsiz = 1023 }
[13:14:26.347047265] (+0.000000634) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.347047699] (+0.000000434) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar", bufsiz = 1023 }
[13:14:26.347048414] (+0.000000715) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.347048958] (+0.000000544) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS", bufsiz = 1023 }
[13:14:26.347049856] (+0.000000898) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.347050454] (+0.000000598) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src", bufsiz = 1023 }
[13:14:26.347051422] (+0.000000968) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.347052172] (+0.000000750) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools", bufsiz = 1023 }
[13:14:26.347053361] (+0.000001189) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.347054125] (+0.000000764) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc", bufsiz = 1023 }
[13:14:26.347055374] (+0.000001249) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.347056182] (+0.000000808) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man", bufsiz = 1023 }
[13:14:26.347057505] (+0.000001323) carbonara syscall_exit_readlink: { cpu_id = 0 }, { ret = -22, buf =<PHONE_NUMBER>16912 }
[13:14:26.347058472] (+0.000000967) carbonara syscall_entry_readlink: { cpu_id = 0 }, { path = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man1", bufsiz = 1023 }

Of note, we see that readlink() fails with ELOOP 40 Too many levels of symbolic links
[13:14:26.346760086] (+0.000011692) carbonara syscall_entry_access: { cpu_id = 0 }, { filename = "/home/jgalar/EfficiOS/src/lttng-tools/doc/man/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man1/man7/man7/man3/man8/man8/man1/man3/man8", mode = 0 }
[13:14:26.346775084] (+0.000014998) carbonara syscall_exit_access: { cpu_id = 0 }, { ret = -40 }

It seems that PyLance does not expect recursive symlinks. In the case of the LTTng-tools tree, that situation happens when building the project "in-tree".
To build the project "in-tree" and reproduce that problem, you can clone it and invoke:
$ ./bootstrap
# See the project's README for the dependencies.
$ ./configure --without-lttng-ust
$ make -j$(nproc)

Ultimately, the tree ends-up with the following hierarchy (excerpt from tree's output):
│   ├── man
│   │   ├── asciidoc-attrs.conf
│   │   ├── asciidoc-attrs.conf.in
│   │   ├── asciidoc.conf
[...]
│   │   ├── lttng-untrack.1
│   │   ├── lttng-untrack.1.txt
│   │   ├── lttng-version.1
│   │   ├── lttng-version.1.txt
│   │   ├── lttng-view.1
│   │   ├── lttng-view.1.txt
│   │   ├── Makefile
│   │   ├── Makefile.am
│   │   ├── Makefile.in
│   │   ├── man1 -> /tmp/lttng-tools/doc/man
│   │   ├── man3 -> /tmp/lttng-tools/doc/man
│   │   ├── man7 -> /tmp/lttng-tools/doc/man
│   │   ├── man8 -> /tmp/lttng-tools/doc/man
│   │   ├── manpage.xsl
│   │   └── README.md

On our end, we'll probaly change the tree structure to work around the problem (introduced by this change), but that may be one cause of the recent reports of high memory consumption and crashes.
Hope that's helpful!

@bschnurr do you think we could repurpose this issue to fix recursive symlinks?

Can you try including only the folders with python files, in your settings.json?
{
    "python.analysis.include": [
        "tests/"
    ]
}

sounds like we need to add recursion detection in https://github.com/microsoft/pyrx/blob/main/packages/pyright/packages/pyright-internal/src/analyzer/service.ts#L1128

Can you try including only the folders with python files, in your settings.json?
there is also exclude

I can confirm adding **/doc to my workspace exclusions works. I had been using this in my pyproject.toml up until now:
[tool.pyright]
￼exclude = ["doc/"]
￼ignore = ["doc/"]


Mod Loader (Required)
Forge
Minecraft Version (Required)
1.20.1
Mod Version (Required)
v8.1.1
Notes (Required)
start game and crash
Crash Report (Required)
https://gist.github.com/AMRH2000/bc6b0b75e132f977fd4478495653e01b
latest.log (Optional)
No response

Please report this to Sniffer Plus, the crash is caused on their end.


Warnings about pseudo classes in console

Describe the bug
The pseudo class ":first-child" is potentially unsafe when doing server-side rendering. Try changing it to ":first-of-type". It appears when I try to add files.
To Reproduce
Steps to reproduce the behavior:

Click on the file field
Add a file
In a browser console you can see a warning "The pseudo class ":first-child" is potentially unsafe when doing server-side rendering. Try changing it to ":first-of-type"

Desktop (please complete the following information):

OS: Mac OS 13.4.1
Browser Chrome
115.0.5790.170 (Official Build) (arm64)

It could be fixed with smth like this:
const Filename = styled('div')`
  display: flex;
  width: 100%;

  & > span {
    display: block;
  }

  & > span:first-of-type {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
  }

  & > span:last-of-type {
    flex-shrink: 0;
    display: block;
  }
`

Could you update these (:first-child and :last-child) pseudo-classes, please?

Hey !
How to you get this warning ? With which framework ?

Hey!
I use React 18.2.0. But I think this seems to be an emotion issue.


Add alternative case for hillsideview46

Following up on our Reddit chat :)
Everything is isolated to a single directory. I left it up to you if/how you want to call out this alternative case from elsewhere in your docs.

Would be nice if the alternative case was compatible with the tenting stand

@daniel2887 Any way you could do a version for the 3x5 configuration?

@daniel2887 Can you also specify the correct part number for the trackpad?

I have a suggestion which I think I will try. I do not like the way the power switch is visible on the left board and is under the cirque and hard to operate on the left. Instead of mounting the power switch on the top of the board mount it on the bottom of the board, blose up the hole on the tope of the case and instead add a slot to the side of the case to access the switch

@dalewking following up on our Reddit chat: See the new directory, PowerAndFFCOnBottom and let me know if this works for you. Note that I didn't print this out, but it should work (famous last words).
Regarding your other comments:

Would be nice if the alternative case was compatible with the tenting stand

I have no plans to follow up on this, but the complete Fusion 360 project is pushed here as well if anyone wants a go at this.
FWIW, for my tenting solution I wanted something more integrated. I use these tenting feet, which work very well.

Any way you could do a version for the 3x5 configuration?

I haven't had time to follow up on this, but I can give it a try (but, again, I won't be able to test this) if you still need this. Let me know.

Can you also specify the correct part number for the trackpad?

This should probably be part of the parent repo docs, not this alternative case PR. But in case you need this info for your build, see this link, from this Reddit thread.

The placement of the slot for the power switch looks good, might be nice to chamfer the edges of the slot.
The FFC change on the bottom pieces looks good, but is way bigger than it needed to be. All you needed was a a couple of millimeters but it will work.
However you moved the slot for the ribbon on the top right piece and that definitely is not correct. The connector on the top right should still be on top. My issue was that I had an unused FFC connector on the bottom of the left board that interfered with the bottom case on that side.
It may be December before I will be printing the top covers due to budgeting for it (I don't have a 3d printer and print at the library and I need to by some other parts first).

FWIW, for my tenting solution I wanted something more integrated. I use these tenting feet, which work very well

Was planning to go this way too

Any way you could do a version for the 3x5 configuration?

I haven't had time to follow up on this, but I can give it a try (but, again, I won't be able to test this) if you still need this. Let me know.

I've decided to use the 3x6 so I don't need this anymore

This should probably be part of the parent repo docs, not this alternative case PR. But in case you need this info for your build, see this link, from this Reddit thread.

Yeah, I figured it out already by measuring the size of the parts


Log errors of runner commands only in debug mode

During any installation we currently have this logs
INFO[2023-12-01T12:14:42Z] Partitioning device...
DEBU[2023-12-01T12:14:42Z] Running cmd: 'parted --script --machine -- /dev/vda unit s mklabel gpt'
DEBU[2023-12-01T12:14:42Z] Running cmd: 'partx -u /dev/vda'
ERRO[2023-12-01T12:14:42Z] Error running command: exit status 1

Where the error message is likely to appear in clearly visible red red. This particular error happens because after running any partition related change in disk run partx to reload and update partitions. This is only a best effort call, meaning we ignore any error (if running in a container this is likely to always fail, but doesn't necessarily mean there is an installation error).
Given the fact there a few command calls for which we ignore reported errors it doesn't make much sense having the runner.Run method to log at error level all command failures, this is caller responsibility to know if this should be logged at error level or not.
Hence in this PR on runner.Run errors we actually log everything (command error and command output) at debug level. Since the method returns the error and the command output, the caller still has the chance to log error as error level if this is the desired behavior.

@frelon this is an approach to what we discussed a while ago to prevent having misleading log messages. Probably we can do some more stuff to improve this particular case, but in any case the change suggested here does not harm in any way (just moving logs from error level to debug level) and actually makes sense from a wider perspective.
Then we can still consider calling partx over block devices only in partitioner wrapper. Probably by checking the special bit rather than relaying only on /dev path? Not sure, opened to any suggestion and idea.


Jupyter and Notebook are prefixed in front of similar commands

I believe we should:
a) Have a consistent prefix - I'd suggest Notebook
b) Not have two commands that do the same thing
Example:
Execute Cell & Run Current Cell

We just need to be careful not to change interactive window commands.

We just need to be careful not to change interactive window commands.

Also fix #4545 as part of this.

Also fix #4545 as part of this.

Validated. Everything notebook now:


Modify build process to add a upper max version limit

Run PS script as part of build to add a version max for ProjectReference dependencies

Too hacky....will wait for an official solution


Adding entries allows for a single account to have two positions in the same department

When adding someone to a department/division, there is no check to delete other entries from the department.  Causes duplicate entries.  "Nadim Effect"
Suggested fix: when posting an Add update, scan the fields and delete other entries from the account in that department.

Will also allow for a duplicated entry.  Suggested fix will resolve.


Update python simulators to match qiskit-aer simulator

Summary
Updates Terra python simulators to match qiskit-aer C++ simulators for basic usage and options.
Improves speed of QasmSimulatorPy and StatevectorSimulatorPy by switching to using Numpy Einsum and adding measure sampling to QasmSimulatorPy
Details and comments

update QasmSimulatorPy to use numpy.einsum
add measurement sampling to QasmSimulatorPy. Enabled by setting"allows_measure_sampling": True in qobj experiment config, or it can do a basic check that a circuit contains no resets, and no gates after the first measure.
implements StatevectorSimulatorPy without snapshot hack
removes snapshots from python simulators
allows measure, reset, conditionals in single shot statevector simulator
if circuit contains no creg QasmSimulatorPy returns empty count dictionary
if circuit contains no creg QasmSimulatorPy return empty list for memory=True case
adds basic backend_options from qiskit-aer C++ to terra python simulators:

set initial statevector for QasmSimulatorPy and StatevectorSimulatorPy with "initial_statevector"
set initial unitary for UnitarySimulatorPy with "initial_unitary
set chop threshold for output statevector and unitaries with "chop_threshold". Default value is 1e-15.

Performance comparison
Quick speed comparison on my laptop for a test circuit that makes an N-qubit GHZ state.
Time taken for 100 shots for 15-qubit GHZ state:

new simulator (with sampling) ~ 0.18s
new simulator (without sampling) ~ 3s
old simulator is ~ 2 mins

Time taken for 1000 shots for 24-qubit GHZ state (maximum allowed qubit size for the simulator):

new simulator (with sampling) ~ 16.5s
old simualtor ~ fahgettaboudit

Code:
import time
import qiskit
from qiskit import Aer, QuantumRegister, ClassicalRegister, QuantumCircuit

n_qubits = 15
qr = QuantumRegister(n_qubits, 'qr')
cr = ClassicalRegister(n_qubits, 'cr')
circ = QuantumCircuit(qr, cr, name='bell')
circ.h(qr[0])
for j in range(n_qubits - 1):
    circ.cx(qr[j], qr[j + 1])
circ.barrier(qr)
circ.measure(qr, cr)

shots = 100
sim = Aer.get_backend('qasm_simulator_py')
qobj = qiskit.compile(circ, sim, shots=shots)
start = time.time()
result = sim.run(qobj).result()
end = time.time()
print('Time:', end - start)
print('Counts:', result.get_counts(circ))

@ajavadia @jaygambetta @nonhermitian this is ready for review


Issue in coin_change_problem

Why the base case value is 1?
Suggestion: Change data type of possibilities to long.

There will be one solution: do not include any coins.

There will be one solution: do not include any coins.

But shouldn't the answer be zero then? Formal problem statement says that how many ways can we make the change? Here, number of ways we can give the change is zero. Hence, answer should be zero.

Would you like to work on it?

I have worked on it. In-fact, I have made a program which calculates the number of possibilities as well as lists all possible possibilities. My code is in Java.

But is your code prevents the overlapping problem @Prakash2403

Yes, I have used DP. No overlapping cases are there.

for input coins {1,2,3} and to make 4 what is your output?

[1,1,1,1] [2,1,1] [2,2] [3,1]

My code is like :
private int dp_sol(int[] ar, int val) {             int cnt = 0;             if (val > 0) {                 int length = ar.length;                 for (int i = 0; i < length; i++) {                     if (ar[i] == val)                         cnt += 1;                     else if (ar[i] > val)                         cnt += 0;                     else                         cnt += dp_sol(ar, val - ar[i]);                 }             }             return cnt;         }
where `ar : Array of Coins' and 'val : value'

How u overcomed overlapping @Prakash2403 ?

@yashLadha You can use the grave accent key three times to show a piece of code as it is. (Just a suggestion).

@Monal5031 i think i had used it.

@yashLadha Oh sorry, my browser updated it after my comment.

For counting possibilities, I had atored the result in an array. Basically
used the algorithm which Pratyush Sir has used.
For listing paths, I have used an array of arraylist of arraylist of
integers. Array is used for indexing each number from 1 to val. Arraylist
of integers is used for storing a single possibility. Arraylist of
arraylist of integer is used today store all possible paths. If you create
a recursive tree of finding path, you can imagine about dp solution. It is
little bit hard, but it is implementable.
On 01-Apr-2017 10:00 PM, "Yash Ladha"<EMAIL_ADDRESS>wrote:
How u overcomed overlapping @Prakash2403 https://github.com/Prakash2403 ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/iiitv/algos/issues/121#issuecomment-290930864, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ATGchNnfHazW8z-AA-urukllX5xJli0Wks5rrnuYgaJpZM4MwXyQ
.

In the recursive iteration now u keeped track of duplicates.

Actually, in recursive solution, it is not easy to keep track of
duplication. Still if you want, you can maintain a hashmap of key type
setand value type integer. Key will be your path and value will be
the corresponding value(given in question).
However, it is easy in DP. Whenever possibility exists, create a new
arraylist and add current coin value in the list. Now, reduce the current
value by current coin value, and using the array, extract all possible
paths for new value and append it to arraylist you just created. Add the
arraylist to arraylist of arraylist of integers as a new possible solution.
Do the same for all possible path you extracted.
On 01-Apr-2017 10:11 PM, "Yash Ladha"<EMAIL_ADDRESS>wrote:

In the recursive iteration now u keeped track of duplicates.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/iiitv/algos/issues/121#issuecomment-290931570, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ATGchFmg-LFwS_OVQSO_IyS_lLdL6Qt3ks5rrn48gaJpZM4MwXyQ
.

Yaa it can be suppose you had generated 1,1,2 solution now there is a need to increase the second the value to check for possibility and it will become 2. Now 1,2,1 is also a an answer and also get appended   to the list . But they are duplicate solution

I am sending code on your clg id
On 01-Apr-2017 10:25 PM, "Yash Ladha"<EMAIL_ADDRESS>wrote:
Yaa it can be suppose you had generated 1,1,2 solution now there is a need
to increase the second the value to check for possibility and it will
become 2. Now 1,2,1 is also a an answer and also get appended to the list .
But they are duplicate solution
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/iiitv/algos/issues/121#issuecomment-290932458, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ATGchDmy9W_Vpv_m-spsNzdFYrQzSU1jks5rroGNgaJpZM4MwXyQ
.

Ok, you are just storing each instance and appending the previous instances to the new instance including the value of that instance. Nice way @Prakash2403 .

Thanks. If you find any better way, please share it with me.
On 01-Apr-2017 11:16 PM, "Yash Ladha"<EMAIL_ADDRESS>wrote:

Ok, you are just storing each instance and appending the previous
instances to the new instance including the value of that instance. Nice
way @Prakash2403 https://github.com/Prakash2403 .
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/iiitv/algos/issues/121#issuecomment-290935757, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ATGchKWZP1uVpwKqMo_8B6RIwp3CaAigks5rro1ygaJpZM4MwXyQ
.

@Prakash2403: The answer will be zero only when you have no coins and yet you wish to achieve some final sum that's greater than 0.
Consider this as you are giving a bag which contains coins filled in it, equal to the sum he wishes. How many ways can you return if he wishes no money at all? 1 - give him an empty bag. And what if you have no type of coins and still he wishes some money? 0.
Hope I'm making sense.

So you are saying that "no way" is one way possible. I does make sense, but
I have a different solution where we can assign 0 and algorithm still
works.
Interpretation given by you seems correct, but anyways I will post my
solution here once my laptop is repaired. Please review it.
On 02-Apr-2017 1:45 AM, "Pratyush Singh"<EMAIL_ADDRESS>wrote:

@Prakash2403 https://github.com/Prakash2403: The answer will be zero
only when you have no coins and yet you wish to achieve some final sum
that's greater than 0.
Consider this as you are giving a bag which contains coins filled in it,
equal to the sum he wishes. How many ways can you return if he wishes no
money at all? 1 - give him an empty bag. And what if you have no type of
coins and still he wishes some money? 0.
Hope I'm making sense.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/iiitv/algos/issues/121#issuecomment-290944492, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ATGchN2NYDca0qI504eXyj4hcouTd11nks5rrrBwgaJpZM4MwXyQ
.

Sure!

            for(int j=coins[i];j<=value;j++)
                if(j-coins[i]>0) {
                    possibilities[j]+= possibilities[j-coins[i]];
               else if(j-coins[i] == 0)
                    possibilities[j]+ = 1

This works even if we assign possibilities[0] = 0

the second case can be removed if we have possibilities[0] = 1;


Fixes #1192: Extract Drupal install and deployment to geerlingguy.drupal role.

See #1192 for more info.

Yay, test that failed last run is passing... will merge once that's done.

Awesome! I'm currently offline until next week but I can work on the docs when I get back!


[v1-google-cloud-discoveryengine]: Still receiving as gRpc struct even use HttpJsonTransportProvider

First of all, I'm very new with this service google-cloud-discoveryengine.
I trying to call https://discoveryengine.googleapis.com/v1 for vertex search with client lib from google cloud and i want the result as json, btw i always receive struct which is not json response. So i go to read this documentation https://cloud.google.com/java/docs/reference/google-cloud-discoveryengine/latest/com.google.cloud.discoveryengine.v1.SearchServiceClient, they said that use
SearchServiceSettings searchServiceSettings = SearchServiceSettings.newHttpJsonBuilder().build();
but i still get struct response.
can u help me solve this problem? or tell me what i did wrong
this is my code
    SearchServiceSettings searchServiceSettings = SearchServiceSettings.newHttpJsonBuilder().build();
    try (SearchServiceClient searchServiceClient = SearchServiceClient.create(searchServiceSettings)) {
        SearchRequest request =
                SearchRequest.newBuilder()
                        .setServingConfig(
                                ServingConfigName.formatProjectLocationCollectionDataStoreServingConfigName(
                                        projectId, location, collectionId, dataStoreId, servingConfigId))
                        .setSpellCorrectionSpec(
                                SearchRequest.SpellCorrectionSpec.newBuilder()
                                        .setMode(SearchRequest.SpellCorrectionSpec.Mode.AUTO).build()
                        )
                        .setQueryExpansionSpec(
                                SearchRequest.QueryExpansionSpec.newBuilder()
                                        .setCondition(SearchRequest.QueryExpansionSpec.Condition.AUTO).build()
                        )
                        .setQuery(searchQuery)
                        .setPageSize(1)
                        .build();
        SearchServiceClient.SearchPagedResponse a =  searchServiceClient.search(request);
        SearchResponse response = a.getPage().getResponse();
        List<SearchResponse.SearchResult> results = response.getResultsList();
        SearchResponse.SearchResult res = results.getFirst();

this is some part of my response
results {
  id: "1250"
  document {
    name: "projects/272270411648/locations/global/collections/default_collection/dataStores/mordee-doctor-info-test/branches/0/documents/1250"
    id: "1250"
    struct_data {
      fields {
        key: "availableChannels"
        value {
          list_value {
            values {
              string_value: "Video"
            }
            values {
              string_value: "Voice"
            }
          }
        }
      }
      fields {
        key: "availableLanguages"
        value {
          list_value {
            values {
              string_value: "th-TH"
            }
          }
        }
      }
      fields {
        key: "certificate"
        value {
          struct_value {
            fields {
              key: "en"
              value {
                string_value: "Bachelor of Science Program in Food Technology and Nutrition, Mahasarakham University "
              }
            }
            fields {
              key: "th"
              value {
                string_value: "Master of Science Program in Food Technology, Khonkaen University "
              }
            }
          }
        }
      }

note* i try v1, v1beta, and v1alpha already
Java Version: java 22.0.1
Quarkus Version: 3.11.1
Thanks!

i want the result as json

That "HttpJson" client setting is to specify the underlying communication procotol. From library's API's perspective, you won't see the difference between the underlying gRPC or JSON. Consider the API is the result after JSON parsing was already performed.


Advanced smelter not working

Hey there,
like usual i installed 2 adv. smelters so one can output charcoal directly to engine and the other to the storage where i can both set a value for those two.
I cant change the output location (its on storage)
I cant change the amount (its on infinite)
Sometimes the recipe wood->charcoal disappears
He doesnt produce charcoal (i dont know when he made that one charcoal that he got)
There is a zero on the wood in the recipe

Btw: this is version <IP_ADDRESS>
On a sidenote on that version i also have the rending issue (no icon ingame for the cart) and a crash when placing
crash-2016-11-14_20.39.07-client.txt

I think the icon issue may have been fixed, the latest version is <IP_ADDRESS> so you are 32 versions behind. The furnace issue may have been fixed in the newer issue with @Nedelosk fixing some things have may have been related.
So you could please update and get back to use.

Did just upgrade to the newest version available. Smelter now working as expected.
One minor thing is that sometimes the icons in the smelter recipe disappear when taking items out of the chest inventory. Simple closing the gui and reopen fixes this.


Add genesis and spec metadata to Config for simpler generation

Having optional fields for genesis and spec data in our config, we could create have wire our export-genesis and generate-specs commands to first check the config if no options are passed to the cli.  This would make reproduction and scripting much simpler, as static configurations of various networks could be built and deployed in one action.

i think i can get this.
This is the config:
pub struct Config {
    pub name: Option<String>,
    pub author: Option<String>,
    pub mode: Option<String>,
    pub validators: Vec<ValidatorConfig>,
    pub collators: Vec<CollatorConfig>,
}

Am I reading this ticket correctly, @xiuxiu62 ...
adding the genesis AND spec metadata means adding
 ExportGenesis {
        #[structopt(name = "bin", parse(from_os_str), about = "Collator binary")]
        collator_bin: PathBuf,
        #[structopt(name = "chain", parse(from_os_str), about = "Collator spec")]
        collator_spec: PathBuf,
        #[structopt(short, long, about = "File prefix")]
        name: Option<String>,
        #[structopt(short, long, parse(from_os_str), about = "Alternate output directory")]
        outdir: Option<PathBuf>,
    }

and
  GenerateSpecs {
        #[structopt(name = "bin", parse(from_os_str), about = "Collator binary")]
        collator_bin: PathBuf,
        #[structopt(short, long, about = "File prefix")]
        name: Option<String>,
        #[structopt(short = "i", long, about = "Para id")]
        para_id: Option<u32>,
        #[structopt(short, long, parse(from_os_str), about = "Alternate output directory")]
        outdir: Option<PathBuf>,
    }

in pub struct config?
like:
pub struct Config {
    pub name: Option<String>,
    pub author: Option<String>,
    pub mode: Option<String>,
    pub validators: Vec<ValidatorConfig>,
    pub collators: Vec<CollatorConfig>,
    pub genesis:Option<GenesisConfig>,
    pub specs:Option<SpecsConfig>
}

?
Can both be done at the same time? Or should it be an Option enum?
Maybe I should ask what the command line must look like? So I'll know how to add these 2 subcommands?

that's a good question -- we've discussed this, but haven't come to an appropriate solution.  we're looking for simple, intuitive solutions for performing automated runtime calls.  One solution could be additional config metadata.  If you have a proposed solution for a clean way of encoding this, it would be much appreciated; though we'll think about it ourselves.


fix detection of lxc

the other one didn't work when there were other arguments (for vagrant ssh -c "echo foo") for example
Should fix #56

Thanks !
Wasn't aware it was that easy to do it better. Found the method on the internet and copied it as is even I found it horrible :P


Enhancement: Show disabled cancel button for runs not created by a deployment

Updates the cancel button to:

No longer use the parent flow run check to hide the button - simply checks for the presence of a deployment
Disables the button when no deployment is connected and gives a tooltip message about why the run cannot be cancelled
Permission and state checks stay in place

Should resolve https://github.com/PrefectHQ/prefect/issues/9320

@zhen0 i like this approach. Though the tooltip isn't very pretty. Probably something we can account for at the prefect-design level. I'll open an issue around long tooltips.


Interactive dApp Iframe Passthrough

What is this?
Gnosis Safe has a library of dApps and an iframe-based viewer that allows seamless integration between dApps and smart contract accounts. This makes it extremely easy and intuitive for the user to interact with their Gnosis Safe account, as well as other dApps in the ecosystem, from one place.
The Cosmos is currently lacking a similar ease of interaction between users and dApps, as well as dApps and dApps. Osmosis, in building its Osmosis App Store, is poised to bring this missing cohesion to the Cosmos ecosystem. In order to accomplish this, a standardized wallet adapter library run by all dApps—Cosmos Kit—must support this iframe passthrough functionality.
This feature aims bring this critical iframe passthrough functionality into Cosmos Kit such that all dApps in the Cosmos ecosystem automatically support embedding after an upgrade. This will be very useful for the Osmosis App Store to become a host of trusted dApps.
It is also built so the parent dApp that's controlling the iframe can manually handle the signed transactions. For example, DAO DAO wants to show an in-app browser and make proposals based on transactions. This way, DAOs can natively interact with dApps without the dApp needing to do any custom work.
Attribution
Thanks to @pyramation for connecting me with the Osmosis Grants Program and Osmosis Grants Program for funding a grant to get this built!
How does it work?
This adds an iframe wallet built into the core package that is automatically added to the beginning of the wallet list when it detects that it is running inside of an iframe (i.e. not the window.top window). It is disable-able with disableIframe. It will also try to auto-connect to the iframe wallet on mount instead of the saved wallet, and it prevents saving the iframe wallet as the connected wallet to not override other saved wallets. This is so that it does not interfere with the user interacting with the site directly on their own.
The useIframe hook used in the parent frame establishes the communication channel between the two Cosmos Kit instances, setting up event listeners and passing messages from the iframe wallet running inside the iframe to the wallet client connected in the parent window. An example can be seen in iframe.tsx and iframe-alert.tsx in the example package. Essentially, useIframe returns an iframe ref that must be attached to the iframe element.

@NoahSaso Can you also add docs here? suppose to include ChainProvider props and Hooks

Issue I found when trying to use it.

connect a wallet in dApp (i.e. Leap)
connect Iframe Parent in iframe
disconnect in iframe
reopen the modal in iframe

the first wallet becomes the parent wallet Leap rather than the button Iframe Parent.

Issue I found when trying to use it.

connect a wallet in dApp (i.e. Leap)
connect Iframe Parent in iframe
disconnect in iframe
reopen the modal in iframe

the first wallet becomes the parent wallet Leap rather than the button Iframe Parent.

Yeah it's supposed to show the name of the parent connected wallet in the iframe. I don't quite understand the bug, can you take a video?

@NoahSaso this is the video link. https://streamable.com/7fuuvb

@NoahSaso this is the video link. https://streamable.com/7fuuvb

Ah great thank you. Yeah it's supposed to show the parent wallet in the iframe, so the Leap is correct, though it should probably say '(parent)' to be more clear. The issue is that it's not detecting when the parent connects. If you connect and then load the iframe, it'll auto connect, but since the iframe is loaded first here, it's not detecting the connection. I will fix this later this week.

@liujun93 opened a new PR to fix this behavior: https://github.com/cosmology-tech/cosmos-kit/pull/330


instructions to use user id to add new user

Added the troubleshooting guide while adding the new user

@prashantvc : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#label:"aq-pr-triaged"

#sign-off

We moved the commit to a new pull request in the private repo. The update will merge from there. We'll close this pull request. Thanks!


How can I try this ?

I have big interest on this project.
But I cant try it : (
Is there any prerequisites ?
I built runv version 0.6.0
$ sudo runv --initrd=/var/lib/hyper/hyper-initrd.img start test error rpc error: code = 2 desc = empty bundle path

Hello,
Do you have bundle in pwd? please check https://github.com/opencontainers/runc#creating-an-oci-bundle to create bundle.

Thanks to your comment
but I'm sure it is.
$ pwd /home/keyolk/workspace $ ls config.json rootfs $ sudo runv --kernel=/var/lib/hyper/kernel --initrd=/var/lib/hyper/hyper-initrd.img  --debug start test  error rpc error: code = 2 desc = empty bundle path $ sudo runv --kernel=/var/lib/hyper/kernel --initrd=/var/lib/hyper/hyper-initrd.img --driver=vbox --debug start test error rpc error: code = 2 desc = grpc: the client connection is closing
and I do that on archlinux distro.

runv doesn't support vbox driver right now, vbox requires the boot.iso which generated by hyperstart(github.com/hyperhq/hyperd),
Can you try with qemu driver?

Thanks again!
but nothing differnece
below is what I did.
`
$ sudo runv --kernel=/var/lib/hyper/kernel --initrd=/var/lib/hyper/hyper-initrd.img  --debug start test
error rpc error: code = 2 desc = empty bundle path
$ ls
config rootfs
$ ls
bin core etc lib media opt root sbin sys usr
boot dev home lib64 mnt proc run srv tmp var
$ uname -a
Linux keyolk-book 4.4.2-6ph #1 SMP Mon Jun 13 20:01:22 KST 2016 x86_64 GNU/Linux
$ cat /etc/os-release
NAME="Apricity OS"
ID=apricity
PRETTY_NAME="Apricity OS"
ANSI_COLOR="0;36"
HOME_URL="https://www.apricitylinux.org/"
SUPPORT_URL="https://bbs.apricitylinux.org/"
BUG_REPORT_URL="https://bugs.apricitylinux.org/"
`

and another approach
sudo runv --kernel=/var/lib/hyper/kernel --initrd=/var/lib/hyper/hyper-initrd.img --debug --driver=qemu start test -bpwd error rpc error: code = 2 desc = StartPod fail

I'm not sure
whether it is related,
I can get some logs from runv-containred
when I try ctr with same bulde (config.json & rootfs)
I0713 10:17:05.787065   16837 server.go:31] gRPC handle CreateContainer
I0713 10:17:05.787222   16837 hyperpod.go:337] Using kernel: ; Initrd: ;
I0713 10:17:05.787276   16837 vm.go:162] hyperHandlePodEvent pod pod-lUYWcwoXaD, vm vm-rzElujgPDI
I0713 10:17:05.787381   16837 hypervisor.go:29] vm vm-rzElujgPDI: main event loop got message 21(COMMAND_RUN_POD)
I0713 10:17:05.787396   16837 vm_states.go:443] got spec, prepare devices
I0713 10:17:05.787423   16837 vm_states.go:67] initial vm spec: {
"hostname": "shell",
"containers": [],
"shareDir": "share_dir"
}
I0713 10:17:05.787534   16837 context.go:252] VM vm-rzElujgPDI: state change from INIT to 'STARTING'
I0713 10:17:05.787549   16837 hypervisor.go:29] vm vm-rzElujgPDI: main event loop got message 10(EVENT_DEV_SKIP)
I0713 10:17:05.787562   16837 vm_states.go:470] device ready, could run pod.
I0713 10:17:05.787505   16837 qemu_process.go:67] cmdline arguments: -machine pc-i440fx-2.0,accel=kvm,usb=off -global kvm-pit.lost_tick_policy=discard -cpu host -kernel /var/lib/hyper/kernel -initrd /var/lib/hyper/hyper-initrd.img -append console=ttyS0 panic=1 no_timer_check -realtime mlock=off -no-user-config -nodefaults -no-hpet -rtc base=utc,driftfix=slew -no-reboot -display none -boot strict=on -m 128 -smp 1 -qmp unix:/var/run/hyper/vm-rzElujgPDI/qmp.sock,server,nowait -serial unix:/var/run/hyper/vm-rzElujgPDI/console.sock,server,nowait -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x2 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x3 -chardev socket,id=charch0,path=/var/run/hyper/vm-rzElujgPDI/hyper.sock,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charch0,id=channel0,name=sh.hyper.channel.0 -chardev socket,id=charch1,path=/var/run/hyper/vm-rzElujgPDI/tty.sock,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charch1,id=channel1,name=sh.hyper.channel.1 -fsdev local,id=virtio9p,path=/var/run/hyper/vm-rzElujgPDI/share_dir,security_model=none -device virtio-9p-pci,fsdev=virtio9p,mount_tag=share_dir
I0713 10:17:05.827828   16837 init_comm.go:133] Wating for init messages...
I0713 10:17:05.828292   16837 init_comm.go:96] trying to read 8 bytes
I0713 10:17:05.827900   16837 tty.go:146] tty socket connected
I0713 10:17:05.828331   16837 tty.go:89] tty: trying to read 12 bytes
I0713 10:17:05.828244   16837 qmp_handler.go:167] connected to /var/run/hyper/vm-rzElujgPDI/qmp.sock
I0713 10:17:05.829368   16837 qmp_handler.go:177] begin qmp init...
E0713 10:17:05.830633   16837 qmp_handler.go:181] get qmp welcome failed: read unix @->/var/run/hyper/vm-rzElujgPDI/qmp.sock: read: connection reset by peer
E0713 10:17:05.831206   16837 qmp_handler.go:361] QMP initialize failed
E0713 10:17:05.831287   16837 init_comm.go:99] read init data failed
E0713 10:17:05.832049   16837 init_comm.go:137] read init message failed... read unix @->/var/run/hyper/vm-rzElujgPDI/hyper.sock: read: connection reset by peer
E0713 10:17:05.831341   16837 tty.go:92] read tty data failed
I0713 10:17:05.832100   16837 tty.go:153] tty socket closed, quit the reading goroutine read unix @->/var/run/hyper/vm-rzElujgPDI/tty.sock: read: connection reset by peer
I0713 10:17:05.832132   16837 tty.go:120] tty chan closed, quit sent goroutine
I0713 10:17:05.831780   16837 hypervisor.go:29] vm vm-rzElujgPDI: main event loop got message 35(ERROR_INIT_FAIL)
E0713 10:17:05.832152   16837 vm_states.go:401] read unix @->/var/run/hyper/vm-rzElujgPDI/qmp.sock: read: connection reset by peer
E0713 10:17:05.832167   16837 vm_states.go:278] Shutting down because of an exception: Fail during init pod running environment
I0713 10:17:05.832187   16837 context.go:252] VM vm-rzElujgPDI: state change from STARTING to 'TERMINATING'
I0713 10:17:05.832222   16837 hypervisor.go:29] vm vm-rzElujgPDI: main event loop got message 35(ERROR_INIT_FAIL)
W0713 10:17:05.832235   16837 vm_states.go:392] got unexpected event during terminating
I0713 10:17:05.832246   16837 hypervisor.go:29] vm vm-rzElujgPDI: main event loop got message 37(ERROR_INTERRUPTED)
I0713 10:17:05.832258   16837 vm_states.go:648] Connection interrupted while terminating
I0713 10:17:05.832284   16837 vm.go:275] Get the response from VM, VM id is vm-rzElujgPDI!
I0713 10:17:05.832312   16837 hypervisor.go:29] vm vm-rzElujgPDI: main event loop got message 24(COMMAND_SHUTDOWN)
I0713 10:17:05.832330   16837 vm.go:82] Got response: 14: unexpected event during terminating
E0713 10:17:05.834473   16837 qemu_process.go:87] exit status 1
I0713 10:17:05.834513   16837 hypervisor.go:29] vm vm-rzElujgPDI: main event loop got message 0(EVENT_VM_START_FAILED)
W0713 10:17:05.834527   16837 vm_states.go:392] got unexpected event during terminating
I0713 10:17:15.832323   16837 hypervisor.go:29] vm vm-rzElujgPDI: main event loop got message 3(EVENT_VM_TIMEOUT)
W0713 10:17:15.832350   16837 vm_states.go:645] VM did not exit in time, try to stop it
E0713 10:17:15.832360   16837 vm_states.go:287] Shutting down because of an exception: vm terminating timeout
I0713 10:17:15.832391   16837 vm.go:82] Got response: 7: vm terminating timeout
E0713 10:17:15.876128   16837 init_comm.go:49] failed to connected to /var/run/hyper/vm-rzElujgPDI/console.sock dial unix /var/run/hyper/vm-rzElujgPDI/console.sock: connect: no such file or directory

is there any log on /var/log/hyper/qemu/ ?

I got below logs
$ cat vm-rzElujgPDI.log
ioctl(KVM_CREATE_VM) failed: 16 Device or resource busy
failed to initialize KVM: Device or resource busy
$ pwd
/var/log/hyper/qemu

Do you have any application using kvm device, such as virtualbox?

after turn off all of VM, finally ctr works!
but when I try runv,
$ sudo runv --debug --kernel=$HYPER_PATH/kernel --initrd=$HYPER_PATH/hyper-initrd.img --driver=quem start second
error rpc error: code = 2 desc = empty bundle path
$ sudo runv --debug --kernel=$HYPER_PATH/kernel --initrd=$HYPER_PATH/hyper-initrd.img --driver=quem start second -b pwd
like above firs case got error,
and second case, it just hang! no any of output
and I got log message under /var/log/hyper
Log file created at: 2016/07/13 11:01:02
Running on machine: keyolk-book
Binary: Built with gc go1.6.2 for linux/amd64
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
E0713 11:01:02.247006   20049 vm_states.go:159] cannot find exec second-init

and when I try below command with ctr
also there is no output
$ sudo ctr --address=$CONTAINERD_SOCK containers exec --id=test --pid=100 --cwd=/ -a ps aux
and I got log from containred below
I0713 11:09:04.689758   24052 init_comm.go:253] get command NEXT
I0713 11:09:04.689766   24052 init_comm.go:256] send 112, receive 112
I0713 11:09:04.691208   24052 init_comm.go:68] [console] 0 0 0 6 0 0 0 70 7b 22 63 6f 6e 74 61 69 6e 65 72 22 3a 22 74 65 73 74 22 2c 22 70 72 6f 63 65 73 73 22 3a 7b 22 74 65 72 6d 69 6e 61 6c 22 3a 66 61 6c 73
65 2c 22 73 74 64 69 6f 22 3a 31 2c 22 73 74 64 65 72 72 22 3a 32 2c 22 61 72 67 73 22 3a 5b 22 70 73 22 2c 22 61 75 78 22 5d 2c 22 77 6f 72 6b 64 69 72 22 3a 22 2f 22 7d 7d
I0713 11:09:04.691525   24052 init_comm.go:68] [console]  hyper_channel_handle, type 6, len 112
I0713 11:09:04.692247   24052 init_comm.go:68] [console] call hyper_exec_cmd, json {"container":"test","process":{"terminal":false,"stdio":1,"stderr":2,"args":["ps","aux"],"workdir":"/"}} , len 104
I0713 11:09:04.692483   24052 init_comm.go:68] [console] jsmn parse failed, n is -1
I0713 11:09:04.692676   24052 init_comm.go:68] [console] get container test
I0713 11:09:04.692924   24052 init_comm.go:68] [console] get unknown section process in exec cmd
I0713 11:09:04.693136   24052 init_comm.go:68] [console] parse exec cmd failed
I0713 11:09:04.693309   24052 init_comm.go:68] [console] hyper send type 10, len 0
I0713 11:09:04.693368   24052 init_comm.go:106] read 8/8 [length = 0]
I0713 11:09:04.693376   24052 init_comm.go:110] data length is 8
I0713 11:09:04.693384   24052 init_comm.go:96] trying to read 8 bytes
I0713 11:09:04.693393   24052 init_comm.go:190] got cmd:10
I0713 11:09:04.693402   24052 init_comm.go:209] ack got, clear pong timer
I0713 11:09:04.693429   24052 container.go:225] add process to container failed: exec command [ps aux] failed: Error:
I0713 11:09:04.693435   24052 container.go:238] get exit code failed exec command [ps aux] failed: Error:
I0713 11:09:04.693442   24052 events.go:121] notifySubscribers: {test exit 2016-07-13 11:09:04.693432813 +0900 KST 100 -1}
I0713 11:09:04.693479   24052 events.go:54] write event log: {test exit 2016-07-13 11:09:04.693432813 +0900 KST 100 -1}
I0713 11:09:04.693519   24052 supervisor.go:115] reap container test processId 100
I0713 11:09:34.693546   24052 init_comm.go:216] Send ping message to init
I0713 11:09:34.693582   24052 init_comm.go:190] got cmd:12
I0713 11:09:34.693600   24052 init_comm.go:281] send command 12 to init, payload: 'null'.
I0713 11:09:34.693623   24052 init_comm.go:294] write 12 to init, payload: '
                                                                        null'.

I0713 11:09:34.693634   24052 init_comm.go:299] message sent, set pong timer

Hello,
$ sudo runv --debug --kernel=$HYPER_PATH/kernel --initrd=$HYPER_PATH/hyper-initrd.img --driver=quem start second

The driver option is wrong. Please use "--driver=qemu" instead.

ah sorry to confusing you
I didnt copy-paste it.
I'm sure that what I put was exactly "--driver=qemu"

" get unknown section process in exec cmd"
it seams the protocol between runv & hyperstart mismatched.
could you use v0.6 of both please, or could you use the latest of both please.

oh, Thanks alot! I'll try it.
Then could anyone can inform me why plain runv doesn't works ?

the default value of --bundle in the runv start was removed accidentally.
you need to add it via -b `pwd` .
we will update it soom. thanks.

@laijs Thanks! alot! : D
Now I'll focus on why hyperstart failed to build.


macOS vulkaninfo reports 4 GPUs on a 2-GPU MacBook, unreliable surfaces

There's a lot of strangeness here.
$ cd ~/Downloads/vulkansdk-macos-<IP_ADDRESS>
$ ./Applications/vulkaninfo.app/Contents/MacOS/vulkaninfo --html
objc[1885]: Class MVKBlockObserver is implemented in both /Users/lunarg/Downloads/vulkansdk-macos-<IP_ADDRESS>/Applications/vulkaninfo.app/Contents/Frameworks/libMoltenVK.dylib (0x108e136e0) and /usr/local/lib/libMoltenVK.dylib (0x109a486e0). One of the two will be used. Which one is undefined.
$ open vulkaninfo.html

I think the libMoltenVK.dylib warning is harmless, as both versions are identical (but I include the warning here because this could feasibly cause problems).
On one run, vulkaninfo reported four GPUs and eight presentable surfaces, two per GPU, the first four of which have seven surface types each, the last four of which have one: vulkaninfo-app-1.1.130.html.txt

A subsequent run reported the same four GPUs, but only four presentable surfaces, each of which had eight surface types each:
vulkaninfo-app-1.1.130-2.html.txt

So there seems to be some run-to-run variance.
More in the next response...

More strangeness...
Running the version shipped in macOS/bin/vulkaninfo seems to halve the output, showing the correct 2 GPUs, each with a single surface, but each of those surfaces with an unexpected four surface types:
$ ./macOS/bin/vulkaninfo --html
$ open vulkaninfo.html

vulkaninfo-bin-1.1.130.html.txt

This seems to be stable.

For comparison, I'm trying the system-installed libraries from SDK 1.1.130 and the vulkaninfo executables from SDK 1.1.121:
$ cd ~/Downloads/vulkansdk-macos-<IP_ADDRESS>
$ ./Applications/vulkaninfo.app/Contents/MacOS/vulkaninfo --html
objc[1907]: Class MVKBlockObserver is implemented in both /Users/lunarg/Downloads/vulkansdk-macos-<IP_ADDRESS>/Applications/vulkaninfo.app/Contents/Frameworks/libMoltenVK.dylib (0x10e26b8f0) and /usr/local/lib/libMoltenVK.dylib (0x10e8c96e0). One of the two will be used. Which one is undefined.
$ open vulkaninfo.html

Now, in this case, the libMoltenVK.dylib in the package is different from the one in the system.  In this case, I also see 4 GPUs, but each GPU only has a single surface and a single surface type:
vulkaninfo-app-1.1.121.html.txt

Using the macOS/bin/vulkaninfo version (which runs using the system SDK libraries from 1.1.130) shows the correct 2 GPUs, each with one presentable surface, with only one surface type:
vulkaninfo-bin-1.1.121.html.txt

It seems to me that the Applications/vulkaninfo.app version (under both 1.1.121 and 1.1.130) incorrectly reports double the GPUs, as compared to the macOS/bin/vulkaninfo version.  It also seems that the 1.1.130 version is incorrectly reporting multiples of surface types (though it may be correct that 1.1.130 supports VK_EXT_metal_surface that 1.1.121 did not).


Local Supabase and api for testing

This PR adds a local supabase, the stadtpuls-api and redis to the ci env for not having to rely an staging environment in cypress tests.
If you want to use this on local development you can run the following steps.
$ cd root/of/this/repo

# the next step runs ./scripts/supabase-test-setup.sh
# and clones the repo https://github.com/technologiestiftung/stadtpuls-supabase
# into the folder supabase (the folder is on .gitignore don't commit it in the future)
# creates the file supabase/supabase-docker-compose/docker-compose.override.yml
# creates the file supabase/supabase-docker-compose/.env
# and adds some additional entries in that .env file

$ npm run backend:setup

# now start your local instance with the following commands

$ cd supabase/supabase-docker-compose/

# and use the docker compose convenience script to start the whole setup
# only works on MacOS and needs docker installed
# https://hub.docker.com/editions/community/docker-ce-desktop-mac

$ ./compose.sh -u

# to see what this script also can do run

$ ./compose.sh -h

> ------------------------------
------------------------------
Usage: ./compose.sh -u (up)          docker compose up
       ./compose.sh -d (down)        docker compose down
       ./compose.sh -b (background)  docker compose up --detach
       ./compose.sh -f (force)       docker compose up --build --force-recreate
       ./compose.sh -k (kill)        docker compose down && rm -rf dockerfiles/postgres/pg-data/*
       ./compose.sh -h (help)        print this help

The supabase anon key and service role key are in supabase/supabase-docker-compose/dockerfiles/kong/kong.yml at the end.
The supabase url is http://localhost:8000
The stadtpuls api is http://localhost:4000
The postgres credentials are in supabase/supabase-docker-compose/.env --> "postgres://postgres:${POSTGRES_PASSWORD}@db:${POSTGRES_PORT}/postgres?sslmode=disable"

This setup is still a little experimental and might change in the future. I hope to integrate it in the stadtpuls-supabase repo or in the stadtpuls repo. See it as a one way street and throw away config.

Thx for the PR @ff6347! I have trouble running the compose script as my port 5000 seems to always be used.
I found out that the process using it is something called tcp6 and tcp4 by running:
$ netstat -anv | grep 5000
tcp6       0      0  *.5000                 *.*                    LISTEN<PHONE_NUMBER>72  39484      0 0x0100 0x00000006
tcp4       0      0  *.5000                 *.*                                        LISTEN<PHONE_NUMBER>72  39519      0 0x0100 0x00000006
tcp4       0      0  *.5000                 *.*                    LISTEN<PHONE_NUMBER>72  39519      0 0x0100 0x00000006

I'm not sure what to do from there. Any thought?

 Apple thought in the last update they could use this port for some air play iTunes shizzle.

macOS latest version Monterey was released yesterday. Apple decided to utilize port 5000 with something called AirPlay Receiver.

You can disable in System Preferences --> Sharing --> AirPlay Receiver.
https://www.reddit.com/r/webdev/comments/qg8yt9/apple_took_over_port_5000_in_the_latest_macos/?utm_source=share&utm_medium=mweb

Nevermind, I've got it figured out!

How did you seed it?
This is one way https://github.com/technologiestiftung/stadtpuls-supabase/blob/main/dev-tools/rest-client/api.http
Or this one https://github.com/technologiestiftung/stadtpuls-supabase-playground/blob/main/src/seed/records.ts

How did you seed it?

I'm in the process of creating 2 Node scripts for seeding and resetting the DB. That records script of yours is very helpful, I'm gonna adapt that, thanks!


Issues with how the History view works with large domains

When doing a single record update in a zone containing a large number of records (over 800 in this case), it seems like PDA is submitting the ENTIRE ZONE, instead of the deltas. This isn't necessarily an issue, however we get NOTHING back when we click "Info" in the history view (literally nothing, the button doesn't do anything).
In addition, if you are running MySQL/MariaDB with "STRICT_TRANS_TABLES" SQL Mode, you'll get a 1406 error DataError: (_mysql_exceptions.DataError) (1406, "Data too long for column 'detail' at row 1") - I had to disable this mode to even be able to submit updates.
Would it be possible to have updates to the domain ONLY show the records that were modified? Otherwise, this feature is useless as there's no way to pick out which record was updated. Or failing that, can we disable the history?
This is using mariadb on CentOS 7. Please let me know if you need more information.
Thanks!

The Proper™ way to solve this would be, as you describe, to only submit the actual changes made to the zone. In stead of doing a comparison (e.g. compare with the previous values when submitting the zone), we could probably solve this somewhat "easy" by setting some kind of "edited"-flag on a record whenever you "save" it (regardless if you actually changed it). Only records having the edit-flag would be submitted.

The Proper™ way is always preferable, but at this point, I'd be happy with anything ;-) The history view was a big plus for us and in its current implementation is not useable.
Thanks for responding right away to this. I was concerned I was doing something wrong, but glad to hear it's something that needs improvement.
Let me know if you have any code you want tested! :-D

Well, the culprit isn't really the history-view -- it's actually working as intended (the whole zone is submitted, and thus, the whole zone is also displayed in the history).
The MySQL/MariaDB-error is specific to those databases, as the text data type in PostgreSQL supports strings of any length (i.e. unlimited amounts of text).

After thinking two more seconds about it, I don't think it's as easy as I thought, as the pdns API wants all records for the same FQDN in the same RRset -- all the other records not present are deleted/removed. E.g. if you have foo IN A <IP_ADDRESS> and foo IN A <IP_ADDRESS>, and you only change the first (hence, only the first gets the "edited" flag), the second record will be removed upon saving the zone (unless you edit that record as well).

Hmm. Okay, I'm not sure how we handle this then. The Info button is dead for any updates I've committed that are truncated due to size. And even if the Info button worked, it'd show the entire zone. I'm not sure how useful the Info button is for domain edits. Unless I'm misunderstanding how this feature is expected to work?
And regarding the issues with "Text" field type in MySQL, it looks like it only supports a max of 64KB. I found these notes:

TEXT can store 65,535 characters (approx 64KB)
MEDIUMTEXT = 16,777,215 characters (approx 16 MB)
LONGTEXT = 4,294,967,295 chars (approx 4GB)

I'll try altering the detail column in the history table to "LONGTEXT" from "TEXT" to see if this helps.

ALTER TABLE history MODIFY detail LONGTEXT;
The above did the trick. Now I have no issues with the Info button working, and the updates are pushing as they should.
Still doesn't help highlight what record out of the 800+ was actually edited though :-( I'm not sure what can be done about that though.
It might be worth altering the schema for MySQL with this change so others with large domains won't have this issue.

To me, there is no way to ONLY keep the records that were modified in  the history. By using the pdns api, you won't know exactly which record is modified/added/deleted. My original ideal about keeping history of record's JSON data is for another feature likes Version Control so we can revert our changes if need.

Ah! Then I did misunderstand the purpose of the history. Thanks for the explanation. This make sense and I see the value.
Do you agree with the mysql schema change for the history table? If so after that change, this ticket can be closed.

MEDIUMTEXT = 16,777,215 characters (approx 16 MB): This should be enough i think.
Changing to detail = db.Column(db.Text(16777215)) works well with mysql db backend, it create mediumtext column type but seems not working for Postgresql.

It looks like text in PostgreSQL is unlimited. I applied the change for MySQL at commit d2bbc04d5b73a775c27e6a948fb223a0b042bd79


Losing styles when merging nested selectors

We're building components by composing different styles. However, if we use the same sub-selector in two places, only one will be compiled. Eg:
let buttonStyles = [
  padding(px(5)),
  media("(min-width: 768px)", [
    padding(px(10)),
  ]),
]

let typographyStyles = [
  fontSize(px(14)),
  media("(min-width: 768px)", [
    fontSize(px(16)),
  ]),
]

let Button = style(merge([
  buttonStyles,
  typographyStyles,
]))

In this case, only the buttonStyles media query works. This happens for any sub-selector, eg &:hover, &:focus, [dir=rtl] &.
Looking through the implementation, it seems like this issue is quite baked in, with how bs-css abstracts glamor objects as reason lists.
The example above may be arbitrary, but IMO a big draw for CSS-in-JS, and glamor especially, is composability. This bug and abstraction break it quite severely.

@eirikurn This should be fixed in bs-css@next.

fixed in 8.0.0


Fix the syntax error in the uninstall script.

Hi,
This is a minor fix in the uninstall script for the osx (darwin*) condition.
With regards,
Sourena

Thanks @syadegari ! I'll take a look at this soon.

Thanks @syadegari ! 👍


Remove generated files after build and smart build from cached bundle.json

This is a two parter:

Instead of doing the smart build using the bundle.json from cnab/bundle.json using the bundle.json from the cache
After porter bundle delete the generated files (cnab/ and Dockerfile)

Having the .cnab directory is quite useful actually, so we shouldn't delete it. Having it hidden is working well and Guari just opened an issue to look into moving our Dockerfile into the  .cnab directory as well. (#1162)


Move to poetry

We need to replace current setup.py solution with poetry.
Things to do:

remove setup.py
add pyproject.toml
resolve dependencies to create pyproject.lock

Here's an example of how it should be: https://github.com/wemake-services/wemake-python-styleguide
Here's how to use it: https://github.com/wemake-services/wemake-python-styleguide/blob/master/CONTRIBUTING.md

@sobolevn Can you explain please where exactly should I replace setup.py to pyproject.toml?

The first step is to create pyproject.toml, then adding dev dependencies.

The first step is to create pyproject.toml, then adding dev dependencies.

Could you please tell me where should I get dev dependencies (I searched and read Google but didn't find intelligible answer). Thank you.

Closed via #6


convertRules consider returned HTML-string as strings

I am trying to do this https://github.com/markdown-it/markdown-it-emoji#change-output using markdown-react-js convertRules: {emoji: ...} settings for mdReact().
The problem is: if I return html string it is inserted as string.
I was trying to return AST like here https://github.com/alexkuz/markdown-react-js/blob/master/src/index.js#L24 it is more complex, but it works, other problem we have here (and I think it is common and not only my case) is that attrs are not camelCased (e.g. background-image and not backgroundImage as expected).
@alexkuz  I've tried somehow to workaround it, but yet no luck, before going deep and spending more time want to ask about maybe any solutions you have in your mind.
^^ found correct way to path AST, but still not clear how to return strings

I am sure this is not relevant any more.


Slash to backslash

Hello, my question mark aka slash button is no longer working, and because of this I wanted to switch it with the backslash key.
However, due to the fact that my slash key is not working, as I previously stated, it is proving to be quite tedious to try and add the keytokey code in the private.xml texts.
Any advice (question mark), :')

Please use this private.xml.
https://github.com/tekezo/Files/blob/master/Karabiner/private.backslash_to_slash/private.xml


Quality of converted speeches

Hi,
I synthesized converted speeches of this three models, VAE, CDVAE and CDVAE-CLS-GAN separately. The results of CDVAE-CLS-GAN model sound worst. Is it supposed to be like this? Or anything I missed?

Hi,
Thank you for your interest in this repo!
According to our subjective evaluation in our journal paper, CDVAE-CLS-GAN should at least be comparable with CDVAE (with GV).

If possible, could you upload your converted samples so that I can inspect what happened? Or, you can compare your results with the demo.


Upload large files with flysystem

Fixes a memory problem that occurs when uploading large files.

Does this work without registering stream wrappers?

@sheeep i did not declare a stream wrapper in my config.

Can i have an update on this one?
Will this PR be merged or not?

Oh, you're actually right. I didn't realize the fopen was used for uploaded files only. Thank you for your contribution!


Stop JobProcessor from modifying input qobj

Fixes #391
Description
Stops JobProcessor from modifying input qobj to QuantumProgram.run.
Motivation and Context
See issue #391
How Has This Been Tested?
All tests pass
Screenshots (if appropriate):
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

Thanks. I also ran into this problem when I tried to execute a qobj twice. The second time it failed at parsing, since it was modified by the previous run.


Recent dhcpcd update breaks dhcpcd if Graphene's hardened_malloc is used

Describe the bug
The recent PR by @pennae https://github.com/NixOS/nixpkgs/pull/147516 seems to break DHCP, for us at least.
Steps To Reproduce
Steps to reproduce the behavior:
Don't know, honestly, as it seems to work for other people, and we had a fairly standard, autogenerated network connection…
Expected behavior
An IP address should get assigned through DHCP and network connection should work.
Additional context
I'm pretty sure it's a dhcpd issue as the rollback that fixed it always said it was removing the user and group dhcpcd.
Also see Matrix messages https://matrix.to/#/!KqkRjyTEzAGRiZFBYT:nixos.org/$GKwDPNm053wj5ELWYcG6XEI4i0oX6vV2na_d8_ze1eY?via=nixos.org&via=matrix.org&via=tchncs.de to https://matrix.to/#/!KqkRjyTEzAGRiZFBYT:nixos.org/$WlpEmq-yEjBTF_7mgzHr3uhU8Iq0NkA2GMBqyyc2RRU?via=nixos.org&via=matrix.org&via=tchncs.de (in the Nix/NixOS Matrix room).
Also check https://codeberg.org/artemislena/nixos-server-configs if you think it might be an issue with our configuration… Note: Networking in general isn't broken, as networkd works…
Notify maintainers

@edolstra @fpletz
Metadata
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
- system: `"aarch64-linux"`
 - host os: `Linux 5.10.87-hardened1, NixOS, 22.05 (Quokka)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.5.1`
 - channels(root): `"nixos-22.05pre339875.9e1b85b91fe"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Sorry, unsure what to put below…
Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

the logs you posted look a little bit like dhcpcd is running into a timeout acquiring a lease. we tested acquiring leases against nonexistant dhcp servers, but dhcpcd didn't fail in that case but merely fell back to IPv4LL. the messages you linked have a very truncated log of events, do you still have those journals? the full log text of the dhcpcd unit from boot to failure would be very helpful.
if you're adventurous: are you willing to set the service timeout higher (systemd.services.dhcpcd.serviceConfig.TimeoutStartSec = "5min") and see what happens? not sure that would do anything without more logs to analyze, but it does look like systemd is killing dhcpcd for service timeout reasons and eventually gives up on restarting it.

(image will remain available for 30 days)
We noted that it does seem broken on both x86_64 and ARM64, however, all machines were using the hardened kernel (as well as various other hardening options, specified in the configs linked above).

tested on an arm64 machine with non-hardened kernel, works fine.

we reproduced the problem in vm tests. it's nothing to do with the kernel, environment.memoryAllocator.provider = "graphene-hardened"; is the culprit setting.

jemalloc and mimalloc also break with privsep enabled. with privsep turned off all allocators work.

The current situation leaves nixosTests.hardened not building. We should either disable privsep in that test (which would be a slightly odd thing to do tbh) or perhaps find a way of making dhcpcd somehow opt out of the environment's malloc?

argh, that test should go into the dhcpcd package test list then. we'd say that dhcpcd opting out shouldn't be done without issuing a warning, but it's certainly an option. or we could compile two versions (dhcpcd, dhcpcdForHardened?), one with privsep and one without, chosen automatically by the module?

Possibly, though it seems kinda non-ideal to disable privsep on the "hardened" system. I'm wondering if it would be simple to either wrap the dhcpcd binary with a known-working malloc or.. statically build a working malloc into the binary?

not sure that's viable. scudo (the only hardened malloc that works with dhcpcd) is only supported on x86_64 and aarch64, so we'd have to fall back to libc. the hardened system malloc is specified in /etc/ld-nix.so.preload though, for all we know we'd have to preload libc via LD_PRELOAD to override that, and that's even more of a hack than disabling privsep :(

FWIW graphene-hardened-malloc is also only available for x86_64 & aarch64, so other "hardened" systems just have the default allocator I think.

okay, using scudo instead sounds a lot more reasonable then. would still want some indication that a different malloc is chosen automatically though, just to make sure that people know what's happening in case something goes wrong.

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/graphenes-hardened-malloc-and-dhcpcd-preivsep/40886/1

The dhcpcd package version 10.0.0 and later now supports jemalloc and mimalloc memory allocators.