Pylance consumes 100-200% CPU and takes long time to process code with many layers of nested parentheses

 Environment data

Language Server version: 2022.1.4
OS and version: darwin arm64
Python version (and distribution if applicable, e.g. Anaconda): Python 3.9 (Homebrew)
python.analysis.indexing: null
python.analysis.typeCheckingMode: basic

 Expected behaviour
When I make a change to a statement in a file, Pylance analyzes the file quickly (within a couple seconds max) and updates VSCode with the results.
 Actual behaviour
When I change a specific statement with many layers of nested params (15 in the code below), Pylance takes >40 seconds to run per change, while still reporting the old error messages in VSCode.  During this time, changes to other python files in the project are not error checked, and an Electron process is using 100-200% CPU time.
This will apparently stack up, e.g. if I make 2 changes to the statement, it will queue a second parse/analysis up to run after the first, which could lead to a scenario where it never (for all practical purposes) finishes.
XXX
 Logs

Python Language Server Log
[Info  - 2:43:54 PM] (79364) Pylance language server 2022.1.4 (pyright 23b9c7e0) starting
[Info  - 2:43:54 PM] (79364) Server root directory: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist
[Info  - 2:43:54 PM] (79364) No configuration file found.
[Info  - 2:43:54 PM] (79364) No pyproject.toml file found.
[Info  - 2:43:54 PM] (79364) Setting pythonPath for service "test_proj": "/opt/homebrew/bin/python3"
[Warn  - 2:43:54 PM] (79364) stubPath /Users/thejenix/Development/src/xxx.io/addins/test_proj/typings is not a valid directory.
[Info  - 2:43:54 PM] (79364) Assuming Python version 3.9
[Info  - 2:43:54 PM] (79364) Assuming Python platform Darwin
[Info  - 2:43:54 PM] (79364) Search paths for /Users/thejenix/Development/src/xxx.io/addins/test_proj
[Info  - 2:43:54 PM] (79364)   /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib
[Info  - 2:43:54 PM] (79364)   /Users/thejenix/Development/src/xxx.io/addins/test_proj
[Info  - 2:43:54 PM] (79364)   /Users/thejenix/Development/src/xxx.io/addins/test_proj/typings
[Info  - 2:43:54 PM] (79364)   /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stubs/...
[Info  - 2:43:54 PM] (79364)   /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/bundled/stubs
[Info  - 2:43:54 PM] (79364<EMAIL_ADDRESS>[Info  - 2:43:54 PM] (79364<EMAIL_ADDRESS>[Info  - 2:43:54 PM] (79364)   /Users/thejenix/.local_arm64/lib/python/site-packages
[Info  - 2:43:54 PM] (79364)   /opt/homebrew/lib/python3.9/site-packages
[Info  - 2:43:54 PM] (79364) Adding fs watcher for library directories:
<EMAIL_ADDRESS><EMAIL_ADDRESS>/Users/thejenix/.local_arm64/lib/python/site-packages
/opt/homebrew/lib/python3.9/site-packages
[Info  - 2:43:54 PM] (79364) Adding fs watcher for directories:
 /Users/thejenix/Development/src/xxx.io/addins/test_proj
[Info  - 2:43:54 PM] (79364) Searching for source files
[Info  - 2:43:54 PM] (79364) Found 1 source file
(79364) [FG] parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (40348ms)
[Info  - 2:44:35 PM] (79364) [FG] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (40348ms)
(79364) [FG] parsing: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/builtins.pyi [fs read 1ms] (36ms)
(79364) [FG] binding: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/builtins.pyi (16ms)
(79364) [FG] binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (1ms)
[Info  - 2:44:35 PM] (79364) Indexer background runner(2) root directory: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist (index)
[Info  - 2:44:35 PM] (79364) Indexing(2) started
(79364) [IDX(2)] index libraries /Users/thejenix/Development/src/xxx.io/addins/test_proj ...
(79364) [IDX(2)]   read stdlib indices (48ms)
(79364) [IDX(2)]   scan packages [found 16 modules over 1 exec env] (79ms)
(79364) [IDX(2)]   index execution environment /Users/thejenix/Development/src/xxx.io/addins/test_proj ...
(79364) [IDX(2)]     parsing<EMAIL_ADDRESS>[fs read 0ms] (7ms)
(79364) [IDX(2)]     parsing: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/builtins.pyi [fs read 2ms] (44ms)
(79364) [IDX(2)]     binding: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/builtins.pyi (6ms)
(79364) [IDX(2)]     binding<EMAIL_ADDRESS>(0ms)
(79364) [IDX(2)]     indexing<EMAIL_ADDRESS>[found 0] (1ms)
(79364) [IDX(2)]     parsing: /Users/thejenix/.local_arm64/lib/python/site-packages/lazy_object_proxy/__init__.py [fs read 0ms] (4ms)
[Info  - 2:44:35 PM] (79364) Could not import 'copy_reg' in file '/Users/thejenix/.local_arm64/lib/python/site-packages/lazy_object_proxy/__init__.py'
[Info  - 2:44:35 PM] (79364)   Looking for typeshed stdlib path
[Info  - 2:44:35 PM] (79364)   Attempting to resolve using root path '/Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib'
[Info  - 2:44:35 PM] (79364)   Typeshed path not found
[Info  - 2:44:35 PM] (79364)   Looking in stubPath '/Users/thejenix/Development/src/xxx.io/addins/test_proj/typings'
[Info  - 2:44:35 PM] (79364)   Attempting to resolve stub package using root path '/Users/thejenix/Development/src/xxx.io/addins/test_proj/typings'
[Info  - 2:44:35 PM] (79364)   Attempting to resolve using root path '/Users/thejenix/Development/src/xxx.io/addins/test_proj/typings'
[Info  - 2:44:35 PM] (79364)   Looking in root directory of execution environment '/Users/thejenix/Development/src/xxx.io/addins/test_proj'
[Info  - 2:44:35 PM] (79364)   Attempting to resolve stub package using root path '/Users/thejenix/Development/src/xxx.io/addins/test_proj'
[Info  - 2:44:35 PM] (79364)   Attempting to resolve using root path '/Users/thejenix/Development/src/xxx.io/addins/test_proj'
[Info  - 2:44:35 PM] (79364)   Looking in python search path<EMAIL_ADDRESS>[Info  - 2:44:35 PM] (79364)   Attempting to resolve stub package using root path<EMAIL_ADDRESS>[Info  - 2:44:35 PM] (79364)   Attempting to resolve using root path<EMAIL_ADDRESS>[Info  - 2:44:35 PM] (79364)   Looking in python search path<EMAIL_ADDRESS>[Info  - 2:44:35 PM] (79364)   Attempting to resolve stub package using root path<EMAIL_ADDRESS>[Info  - 2:44:35 PM] (79364)   Attempting to resolve using root path<EMAIL_ADDRESS>[Info  - 2:44:35 PM] (79364)   Looking in python search path '/Users/thejenix/.local_arm64/lib/python/site-packages'
[Info  - 2:44:35 PM] (79364)   Attempting to resolve stub package using root path '/Users/thejenix/.local_arm64/lib/python/site-packages'
[Info  - 2:44:35 PM] (79364)   Attempting to resolve using root path '/Users/thejenix/.local_arm64/lib/python/site-packages'
[Info  - 2:44:35 PM] (79364)   Looking in python search path '/opt/homebrew/lib/python3.9/site-packages'
[Info  - 2:44:35 PM] (79364)   Attempting to resolve stub package using root path '/opt/homebrew/lib/python3.9/site-packages'
[Info  - 2:44:35 PM] (79364)   Attempting to resolve using root path '/opt/homebrew/lib/python3.9/site-packages'
[Info  - 2:44:35 PM] (79364)   Looking in bundled stubs path '/Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/bundled/stubs'
[Info  - 2:44:35 PM] (79364)   Attempting to resolve stub package using root path '/Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/bundled/stubs'
[Info  - 2:44:35 PM] (79364)   Attempting to resolve using root path '/Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/bundled/stubs'
[Info  - 2:44:35 PM] (79364)   Looking for typeshed path
[Info  - 2:44:35 PM] (79364)   Looking for typeshed stubs path
[Info  - 2:44:35 PM] (79364)   Typeshed path not found
(79364) [IDX(2)]     binding: /Users/thejenix/.local_arm64/lib/python/site-packages/lazy_object_proxy/__init__.py (0ms)
(79364) [IDX(2)]     indexing: /Users/thejenix/.local_arm64/lib/python/site-packages/lazy_object_proxy/__init__.py [found 0] (0ms)
(79364) [IDX(2)]     parsing: /opt/homebrew/lib/python3.9/site-packages/pkg_resources/__init__.py [fs read 1ms] (40ms)
(79364) [IDX(2)]     binding: /opt/homebrew/lib/python3.9/site-packages/pkg_resources/__init__.py (2ms)
(79364) [IDX(2)]     indexing: /opt/homebrew/lib/python3.9/site-packages/pkg_resources/__init__.py ...
(79364) [IDX(2)]       parsing: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/pkgutil.pyi [fs read 1ms] (3ms)
(79364) [IDX(2)]       binding: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/pkgutil.pyi (0ms)
(79364) [IDX(2)]     indexing: /opt/homebrew/lib/python3.9/site-packages/pkg_resources/__init__.py [found 71] (3ms)
(79364) [IDX(2)]   index execution environment /Users/thejenix/Development/src/xxx.io/addins/test_proj [found 8787 in 422 files] (113ms)
(79364) [IDX(2)] index libraries /Users/thejenix/Development/src/xxx.io/addins/test_proj [found 8787 in 1 exec envs] (241ms)
[Info  - 2:44:35 PM] (79364) Indexer done(2). indexed 422 files
[Info  - 2:44:35 PM] (79364) Background analysis(1) root directory: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist
[Info  - 2:44:35 PM] (79364) Background analysis(1) started
(79364) Background analysis message: setConfigOptions
(79364) Background analysis message: setImportResolver
(79364) Background analysis message: ensurePartialStubPackages
(79364) Background analysis message: setTrackedFiles
(79364) Background analysis message: markAllFilesDirty
(79364) Background analysis message: setFileOpened
(79364) Background analysis message: analyze
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py ...
(79364) [BG(1)]   parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (40275ms)
[Info  - 2:45:15 PM] (79364) [BG(1)] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (40275ms)
(79364) [BG(1)]   parsing: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/builtins.pyi [fs read 1ms] (39ms)
(79364) [BG(1)]   binding: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/builtins.pyi (16ms)
(79364) [BG(1)]   binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (1ms)
(79364) [BG(1)]   checking: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py ...
(79364) [BG(1)]     parsing: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/typing_extensions.pyi [fs read 1ms] (5ms)
(79364) [BG(1)]     binding: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/typing_extensions.pyi (1ms)
(79364) [BG(1)]     parsing: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/typing.pyi [fs read 1ms] (8ms)
(79364) [BG(1)]     binding: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/typing.pyi (7ms)
(79364) [BG(1)]     parsing: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/_typeshed/__init__.pyi [fs read 0ms] (4ms)
(79364) [BG(1)]     binding: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/_typeshed/__init__.pyi (1ms)
(79364) [BG(1)]     parsing: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/abc.pyi [fs read 0ms] (1ms)
(79364) [BG(1)]     binding: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/abc.pyi (0ms)
(79364) [BG(1)]   checking: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (47ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (40378ms)
[Info  - 2:45:15 PM] (79364) [BG(1)] Long operation: analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (40378ms)
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: getSemanticTokens full
(79364) [BG(1)] getSemanticTokens full at /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (1ms)
(79364) Background analysis message: getSemanticTokens range
(79364) [BG(1)] getSemanticTokens range 0:0 - 62:0 at /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (1ms)
(79364) Background analysis message: getSemanticTokens range
(79364) [BG(1)] getSemanticTokens range 0:0 - 61:5 at /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (1ms)
(79364) Background analysis message: resumeAnalysis
(79364) [BG(1)] indexing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py [found 1] (0ms)
(79364) Indexing Done: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: getDiagnosticsForRange
(79364) [FG] parsing: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/typing_extensions.pyi [fs read 0ms] (11ms)
(79364) [FG] binding: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/typing_extensions.pyi (2ms)
(79364) [FG] parsing: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/typing.pyi [fs read 0ms] (27ms)
(79364) [FG] binding: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/typing.pyi (5ms)
(79364) [FG] parsing: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/_typeshed/__init__.pyi [fs read 0ms] (5ms)
(79364) [FG] binding: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/_typeshed/__init__.pyi (0ms)
(79364) [FG] parsing: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/abc.pyi [fs read 1ms] (2ms)
(79364) [FG] binding: /Users/thejenix/.vscode/extensions/ms-python.vscode-pylance-2022.1.4/dist/typeshed-fallback/stdlib/abc.pyi (0ms)
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: setFileOpened
(79364) Background analysis message: markFilesDirty
(79364) [FG] parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (40634ms)
[Info  - 2:46:06 PM] (79364) [FG] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (40634ms)
(79364) [FG] binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) Background analysis message: analyze
(79364) [FG] parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (40973ms)
[Info  - 2:46:47 PM] (79364) [FG] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (40973ms)
(79364) [FG] binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [FG] parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41210ms)
[Info  - 2:47:28 PM] (79364) [FG] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41210ms)
(79364) [FG] binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py ...
(79364) [BG(1)]   parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41251ms)
[Info  - 2:47:28 PM] (79364) [BG(1)] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41251ms)
(79364) [BG(1)]   binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)]   checking: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (1ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41252ms)
[Info  - 2:47:28 PM] (79364) [BG(1)] Long operation: analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41252ms)
(79364) [BG(1)] indexing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) Background analysis message: setFileOpened
(79364) Background analysis message: markFilesDirty
(79364) Background analysis message: getSemanticTokens delta
(79364) [FG] parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41956ms)
[Info  - 2:48:10 PM] (79364) [FG] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41956ms)
(79364) [FG] binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)] getSemanticTokens delta previousResultId:1643323515490 at /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py ...
(79364) [BG(1)]   parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41353ms)
[Info  - 2:48:10 PM] (79364) [BG(1)] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41353ms)
(79364) [BG(1)]   binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (1ms)
(79364) [BG(1)] getSemanticTokens delta previousResultId:1643323515490 at /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41361ms)
[Info  - 2:48:10 PM] (79364) [BG(1)] Long operation: getSemanticTokens delta previousResultId:1643323515490 at /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41361ms)
(79364) Background analysis message: setFileOpened
(79364) Background analysis message: markFilesDirty
(79364) Background analysis message: analyze
(79364) [FG] parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (51283ms)
[Info  - 2:49:01 PM] (79364) [FG] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (51283ms)
(79364) [FG] binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py ...
(79364) [BG(1)]   parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (42195ms)
[Info  - 2:49:01 PM] (79364) [BG(1)] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (42195ms)
(79364) [BG(1)]   binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (1ms)
(79364) [BG(1)]   checking: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (42196ms)
[Info  - 2:49:01 PM] (79364) [BG(1)] Long operation: analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (42196ms)
(79364) [BG(1)] indexing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: setFileOpened
(79364) Background analysis message: markFilesDirty
(79364) Background analysis message: analyze
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py ...
(79364) [BG(1)]   parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41918ms)
[Info  - 2:49:01 PM] (79364) [BG(1)] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41918ms)
(79364) [BG(1)]   binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)]   checking: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (1ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41919ms)
[Info  - 2:49:01 PM] (79364) [BG(1)] Long operation: analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41919ms)
(79364) [BG(1)] indexing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: setFileOpened
(79364) Background analysis message: markFilesDirty
(79364) Background analysis message: analyze
(79364) [FG] parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (65655ms)
[Info  - 2:50:07 PM] (79364) [FG] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (65655ms)
(79364) [FG] binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py ...
(79364) [BG(1)]   parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41795ms)
[Info  - 2:50:07 PM] (79364) [BG(1)] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41795ms)
(79364) [BG(1)]   binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)]   checking: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41795ms)
[Info  - 2:50:07 PM] (79364) [BG(1)] Long operation: analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (41795ms)
(79364) [BG(1)] indexing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) Background analysis message: setFileOpened
(79364) Background analysis message: markFilesDirty
(79364) Background analysis message: analyze
(79364) [FG] completion at /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py:19:74 (4ms)
(79364) [FG] parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (52583ms)
[Info  - 2:51:00 PM] (79364) [FG] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (52583ms)
(79364) [FG] binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (1ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py ...
(79364) [BG(1)]   parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (51784ms)
[Info  - 2:51:00 PM] (79364) [BG(1)] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (51784ms)
(79364) [BG(1)]   binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)]   checking: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (51784ms)
[Info  - 2:51:00 PM] (79364) [BG(1)] Long operation: analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (51784ms)
(79364) [BG(1)] indexing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: setFileOpened
(79364) Background analysis message: markFilesDirty
(79364) Background analysis message: analyze
(79364) [FG] parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (98222ms)
[Info  - 2:52:38 PM] (79364) [FG] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (98222ms)
(79364) [FG] binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py ...
(79364) [BG(1)]   parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (65748ms)
[Info  - 2:52:38 PM] (79364) [BG(1)] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (65748ms)
(79364) [BG(1)]   binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (1ms)
(79364) [BG(1)]   checking: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (65749ms)
[Info  - 2:52:38 PM] (79364) [BG(1)] Long operation: analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (65749ms)
(79364) [BG(1)] indexing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: setFileOpened
(79364) Background analysis message: markFilesDirty
(79364) Background analysis message: analyze
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py ...
(79364) [BG(1)]   parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (51711ms)
[Info  - 2:52:38 PM] (79364) [BG(1)] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (51711ms)
(79364) [BG(1)]   binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)]   checking: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (51711ms)
[Info  - 2:52:38 PM] (79364) [BG(1)] Long operation: analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (51711ms)
(79364) [BG(1)] indexing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: getDiagnosticsForRange
(79364) Background analysis message: setFileOpened
(79364) Background analysis message: markFilesDirty
(79364) Background analysis message: analyze
(79364) [FG] parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (93162ms)
[Info  - 2:57:15 PM] (79364) [FG] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (93162ms)
(79364) [FG] binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (1ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py ...
(79364) [BG(1)]   parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (93067ms)
[Info  - 2:57:15 PM] (79364) [BG(1)] Long operation: parsing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (93067ms)
(79364) [BG(1)]   binding: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (1ms)
(79364) [BG(1)]   checking: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)
(79364) [BG(1)] analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (93068ms)
[Info  - 2:57:15 PM] (79364) [BG(1)] Long operation: analyzing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (93068ms)
(79364) [BG(1)] indexing: /Users/thejenix/Development/src/xxx.io/addins/test_proj/test.py (0ms)

 Code Snippet / Additional information
This is the statement, formatted using Black for readability.  My project consists of an empty folder with test.py that contains this code.  When I open this folder in VSCode, I see the above actual behavior.

def foo():
    func(
        (
            (
                (
                    (
                        (
                            (
                                (
                                    (
                                        (
                                            (
                                                (
                                                    (
                                                        (
                                                            (
                                                                (
                                                                    "text "
                                                                    + func2(
                                                                        (
                                                                            "null"
                                                                            if a is None
                                                                            else a
                                                                        )
                                                                        + (
                                                                            "null"
                                                                            if b is None
                                                                            else b
                                                                        )
                                                                    )
                                                                )
                                                                + " "
                                                            )
                                                            + (
                                                                "null"
                                                                if x is None
                                                                else x
                                                            )
                                                        )
                                                        + " "
                                                    )
                                                    + ("null" if y is None else y)
                                                )
                                                + " "
                                            )
                                            + func2(
                                                (("null" if ((y is None)) else str(y)))
                                            )
                                        )
                                        + " "
                                    )
                                    + ("null" if y is None else y)
                                )
                                + " => "
                            )
                            + str(z1)
                        )
                        + " "
                    )
                    + str(z2)
                )
                + " "
            )
            + str(type(z1))
        )
    )

I didn't know if this belonged in the bug report or a comment, so I figured comment: the actual statement in my production code (which I anonymized in the above code) hasn't changed in many months, and I'm pretty sure this worked in a previous version of Pylance.  Currently going back thru older versions to confirm this.

Can confirm: Version 2021.12.22 works as expected.  Starting in version 2022.1.0, this file takes a long time to parse and analyze.

Thanks for the bug report. I'm able to repro the problem, and I understand the cause. It has to do with a new syntactic construct that is being added to Python 3.11 for callable types. The new syntax creates a situation in the parser that requires an arbitrary amount of lookahead. The current implementation is O(n^m)  where "m" is the number of nested parentheses. In your sample, "m" is very large. I'll need to see if I can come up with a different approach in the parser.
In the meantime, you can avoid this problem by breaking up your code into something that is not so deeply nested.

I found a solution that mitigates the performance overhead in the parser. This change may not make it into this week's release of pylance, in which case it will be in next week's release.

Thanks Eric!  The code is actually generated and I don't control the generator; I've reverted back to 2021.12.2 for the time being and will take a look at next week's version when it is ready.

This issue has been fixed in version 2022.2.0, which we've just released. You can find the changelog here: CHANGELOG.md

This issue has been fixed in version 2022.2.0, which we've just released. You can find the changelog here: CHANGELOG.md

Sorry, but I got a similar problem over the last weekend too... If I click on the appended py file under vs code, Pylance (2022.2.1) goes on a 100% CPU vacation and never comes back. I have to change the py file and restart the language server. All other py files work fine. But this file (and modified version of it) break Pylance.
Version: 1.64.2
Commit: f80445acd5a3dadef24aa209168452a3d97cc326
Datum: 2022-02-09T22:02:29.527Z
Electron: 13.5.2
Chromium: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
Betriebssystem: Linux x64 5.15.16-200.fc35.x86_64
log_pylance_2022.2.1.txt
learn_it_last_layer_mnist_local_many.py.txt

@davrot, we had a recent perf regression which caused the same symptom. Can you see if your issue is fixed in today's release of Pylance -- 2022.2.3?

Just tested it with 2022.2.3 (see the log). Same problem. Sorry!
log_pylance_2022.2.3.txt

@davrot, I'm able to repro the problem you're seeing. I've created a separate tracking bug in the pyright repo: https://github.com/microsoft/pyright/issues/3082.

@davrot, I'm able to repro the problem you're seeing. I've created a separate tracking bug in the pyright repo: microsoft/pyright#3082.

Thank you!


Add link to flexbox challenge to correct practice sequence

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #47740

this is already in https://github.com/freeCodeCamp/freeCodeCamp/pull/47743

this issue has not been marked as ready for contributions


Has anyone ever tested this template?

I was following the document, and this is what happened:
$ git commit -m "initial commit"

Nitpick Check............................................................Failed
- hook id: nitpick-check
- exit code: 1

/root/.pre-commit-config.yaml:1: NIP103  should exist: Create the file with the contents below, then run 'pre-commit install'
/root/pyproject.toml:1: NIP103  should exist: Install poetry and run 'poetry init' to create it
/root/.editorconfig:1: NIP321  was not found. Create it with this content:
root = True

[*]
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = True
trim_trailing_whitespace = True

[*.py]
charset = utf-8

[*.{js,json}]
charset = utf-8
indent_size = 2

[*.{yml,yaml,md,rb}]
indent_size = 2

[Makefile]
indent_style = tab
/root/.pre-commit-config.yaml:1: NIP331  was not found. Create it with this content:
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.0.1
    hooks:
      - id: end-of-file-fixer
      - id: trailing-whitespace
  - repo: https://github.com/pre-commit/pygrep-hooks
    hooks:
      - id: python-check-blanket-noqa
      - id: python-check-mock-methods
      - id: python-no-eval
      - id: python-no-log-warn
      - id: rst-backticks
  - repo: https://github.com/pre-commit/pre-commit-hooks
    hooks:
      - id: debug-statements
  - repo: https://github.com/asottile/pyupgrade
    hooks:
      - id: pyupgrade
  - repo: https://github.com/openstack/bashate
    rev: 2.0.0
    hooks:
      - id: bashate
  - repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook
    rev: v5.0.0
    hooks:
      - id: commitlint
        stages: [commit-msg]
        additional_dependencies: ['@commitlint/config-conventional']
  - repo: https://github.com/psf/black
    hooks:
      - id: black
        args: [--safe, --quiet]
  - repo: https://github.com/asottile/blacken-docs
    hooks:
      - id: blacken-docs
        additional_dependencies: [black==21.5b2]
  - repo: https://github.com/PyCQA/flake8
    rev: 3.9.2
    hooks:
      - id: flake8
        additional_dependencies: [flake8-blind-except, flake8-bugbear, flake8-comprehensions,
          flake8-debugger, flake8-docstrings, flake8-isort, flake8-polyfill, flake8-pytest,
          flake8-quotes, flake8-typing-imports, yesqa]
  - repo: https://github.com/PyCQA/isort
    hooks:
      - id: isort
  - repo: https://github.com/pre-commit/mirrors-mypy
    hooks:
      - id: mypy
/root/.pylintrc:1: NIP321  was not found. Create it with this content:
[BASIC]
bad-functions = map,filter
good-names = i,j,k,e,ex,Run,_,id,rv

[FORMAT]
indent-after-paren = 4
max-line-length = 120
max-module-lines = 1000

[MASTER]
jobs = 1

[REPORTS]
output-format = colorized

[SIMILARITIES]
ignore-comments = yes
ignore-docstrings = yes
ignore-imports = no
min-similarity-lines = 4

[VARIABLES]
dummy-variables-rgx = _$|dummy
/root/package.json:1: NIP348  has missing keys:
{
  "name": "<some value here>",
  "release": {
    "plugins": "<some value here>"
  },
  "repository": {
    "type": "<some value here>",
    "url": "<some value here>"
  },
  "version": "<some value here>"
}
/root/package.json:1: NIP348  has missing values:
{
  "commitlint": {
    "extends": [
      "@commitlint/config-conventional"
    ]
  }
}
/root/pyproject.toml:1: NIP311  was not found. Create it with this content:
[tool.black]
line-length = 120

[tool.poetry.dependencies]
python = "^3.7"

[tool.poetry.extras]
lint = [ "pylint",]

[tool.poetry.dependencies.pylint]
optional = true
version = "*"
/root/setup.cfg:1: NIP321  was not found. Create it with this content:
[flake8]
exclude = .tox,build
ignore = D107,D202,D203,D401,E203,E402,E501,W503
inline-quotes = double
max-line-length = 120

[isort]
combine_as_imports = True
force_grid_wrap = 0
include_trailing_comma = True
known_first_party = tests
line_length = 120
multi_line_output = 3
skip = .tox,build

[mypy]
follow_imports = skip
ignore_missing_imports = True
strict_optional = True
warn_no_return = True
warn_redundant_casts = True
warn_unused_ignores = True
/root/tox.ini:1: NIP321  was not found. Create it with this content:
[coverage:report]
precision = 2
show_missing = True
skip_covered = True
skip_empty = True
sort = Cover

[coverage:run]
branch = True
parallel = True
relative_files = True
source = src/

[testenv]
description = Run tests with pytest and coverage
extras = test

[tox]
isolated_build = True
Violations: ❌ 10 to change manually.

And then, I followed the error info:
Nitpick Check............................................................Passed
Fix End of Files.........................................................Passed
Trim Trailing Whitespace.................................................Passed
Check Blanket "#noqa"....................................................Passed
Check Blanket "#type:ignore".............................................Passed
Upgrade Python Syntax....................................................Passed
Check Typos..............................................................Passed
Format Source Code.......................................................Passed
Sort Imports.............................................................Passed
Type Check...............................................................Passed
Lint.....................................................................Passed
[INFO] Installing environment for https://github.com/commitizen-tools/commitizen.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
Check Commit Message.....................................................Failed
- hook id: commitizen
- exit code: 14

commit validation: failed!
please enter a commit message in the commitizen format.
commit "": "initial commit"
pattern: (build|ci|docs|feat|fix|perf|refactor|style|test|chore|revert|bump)(\(\S+\))?!?:(\s.*)

And then, I followed the error info:
Nitpick Check............................................................Passed
Fix End of Files.........................................................Passed
Trim Trailing Whitespace.................................................Passed
Check Blanket "#noqa"....................................................Passed
Check Blanket "#type:ignore".............................................Passed
Upgrade Python Syntax....................................................Passed
Check Typos..............................................................Passed
Format Source Code.......................................................Passed
Sort Imports.............................................................Passed
Type Check...............................................................Passed
Lint.....................................................................Passed
[INFO] Installing environment for https://github.com/commitizen-tools/commitizen.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
Check Commit Message.....................................................Failed
- hook id: commitizen
- exit code: 14

commit validation: failed!
please enter a commit message in the commitizen format.
commit "": "initial commit"
pattern: (build|ci|docs|feat|fix|perf|refactor|style|test|chore|revert|bump)(\(\S+\))?!?:(\s.*)

Your commit message did not pass the commitizen check.
The commit message should match the following regular expression.
(build|ci|docs|feat|fix|perf|refactor|style|test|chore|revert|bump)(\(\S+\))?!?:(\s.*)

And then, I followed the error info:
Nitpick Check............................................................Passed
Fix End of Files.........................................................Passed
Trim Trailing Whitespace.................................................Passed
Check Blanket "#noqa"....................................................Passed
Check Blanket "#type:ignore".............................................Passed
Upgrade Python Syntax....................................................Passed
Check Typos..............................................................Passed
Format Source Code.......................................................Passed
Sort Imports.............................................................Passed
Type Check...............................................................Passed
Lint.....................................................................Passed
[INFO] Installing environment for https://github.com/commitizen-tools/commitizen.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
Check Commit Message.....................................................Failed
- hook id: commitizen
- exit code: 14

commit validation: failed!
please enter a commit message in the commitizen format.
commit "": "initial commit"
pattern: (build|ci|docs|feat|fix|perf|refactor|style|test|chore|revert|bump)(\(\S+\))?!?:(\s.*)

Your commit message did not pass the commitizen check.
The commit message should match the following regular expression.
(build|ci|docs|feat|fix|perf|refactor|style|test|chore|revert|bump)(\(\S+\))?!?:(\s.*)

I know, but why do I have to do all this extra work?
I mean those files and the commit message prefix.
And which prefix do you think is most appropriate?

Hi @NekoAria, I'm sorry for the inconvenience. I suppose you've read this document right? I try to run cookiecutter gh:rsserpent/template creating a new plugin from scratch and could not reproduce your first error. Could you give more details to help me reproduce?
As for the second error, I am looking for some way to configure the commitizen hook to accept some common commit messages like initial commit & Merge....
RSSerpent is still at its early stages and a lot of things might be buggy. Again I am sorry for your inconvenience and thanks for your feedback!

Hi @NekoAria, I'm sorry for the inconvenience. I suppose you've read this document right? I try to run cookiecutter gh:rsserpent/template creating a new plugin from scratch and could not reproduce your first error. Could you give more details to help me reproduce?
As for the second error, I am looking for some way to configure the commitizen hook to accept some common commit messages like initial commit & Merge....
RSSerpent is still at its early stages and a lot of things might be buggy. Again I am sorry for your inconvenience and thanks for your feedback!

Yes, I just followed the document.
After reading your reply, it occurred to me that maybe there was something wrong with my system environment.
Just now, I switched to another Linux server to test, and it didn’t reproduce the first case.
I'm sorry I was in a bad mood.


ObervableGridView: loss of performance since 1.6

I've updated le library from 1.5.2 to 1.6, and I experience a loss of performance.
It seems that onScrollChangedis not called as much times as before, during a fast scroll.
This leads to a desynchronization between the gridView and my view listening to its position.
Any idea of what have changed to cause that ?

Oh no... thanks for your report.
ObservableGridView has a lot of changes in this update, so perhaps it might be related to that.
I should look into it.
Do you have any evidence for that? (Movie, log, etc.)

Sorry for the late answer.
Here is a video showing the problem:

If you need any more information, feel free to ask.

Thanks!  I'll look into it.


Update policies.py

Fixed xpath for DecryptionRule object and added ApplicationOverride object.
Description
Fixed xpath for DecryptionRule object was set as "/pbf/rules" instead of "/decryption/rules". Added ApplicationOverride object.
Motivation and Context
DecryptionRule objects were not being created when refreshall method was called. Also needed to pull Application Override rules from configs.
How Has This Been Tested?
Testing was not extensive.
Types of changes

Bug fix (non-breaking change which fixes an issue)
New feature (non-breaking change which adds functionality)

Checklist

[ ] I have updated the documentation accordingly.
[X] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes if appropriate.
[ ] All new and existing tests passed.

@alexortize
Can you split these into two separate PRs please?

closing this out so you can split these into separate PRs


Investigate API for Restoring Deleted Google Accounts

@alikemaltanriverdi -- please investigate:
It looks like it is possible to query google in such a way that it includes deleted accounts:
https://developers.google.com/admin-sdk/directory/v1/guides/manage-users#retrieve_users_non_admin
Looks like you add: showDeleted=true
It also looks like you should be able to see if a user is deleted:
https://developers.google.com/admin-sdk/directory/reference/rest/v1/users
"deletionTime": string,
It also looks like there is an undelete API to undelete users:
https://developers.google.com/admin-sdk/directory/reference/rest/v1/users/undelete
So ...
When creating or updating a google account, we should see if that account was deleted.  If the account was deleted, instead of creating a new account, we should undelete it and then update it accordingly.

Due to a bug in Google's API (https://issuetracker.google.com/issues/179777261), we cannot specify the email we're looking for when listing the deleted accounts in Google. This might be resolved when the Google API bug is resolved.


HTTP/2 keep alive timeout

The client closes the TCP connection after 30 seconds (even if I send a request every second). Can this be fixed?
Opening a new TCP connection every time is an extra resource consumption =)

The client seems to drop the connection after 30 seconds anyway. Can this be fixed?
Opening a new TCP connection every time is an extra resource consumption

@alekstovkach i will try to look into it :-) thanks for reporting

@bogdanfinn hello, any news on this issue?
If anything, I use this client via tls-client-api (python)

Hello and thank you for the amazing library. Have you had a chance to take a look at this issue?
Thanks

The client closes the TCP connection after 30 seconds (even if I send a request every second). Can this be fixed? Opening a new TCP connection every time is an extra resource consumption =)

i am facing the same issue.
Every 30 seconds i receive response with read tcp : i/o timeout  error  (even if I send a request every second).
it will run smooth for 30 seconds, hit this error then continue to run smooth again and so on.
Strangely if i change "timeoutSeconds": 30, to  "timeoutSeconds": 45, then every 45 seconds i receive response with read tcp : i/o timeout  error. seems it closes the TCP connection based on the timeout you have set?
im using the tls-client-windows-64-1.3.8.dll. following the python examples

@alekstovkach @fpena06 @Jamucy
special thanks to all of you for the patience and the information.
I think/hope i solved that in the latest release: https://github.com/bogdanfinn/tls-client/releases/tag/v1.3.9
Please give me feedback 🤞

@alekstovkach @fpena06 @Jamucy special thanks to all of you for the patience and the information.
I think/hope i solved that in the latest release: https://github.com/bogdanfinn/tls-client/releases/tag/v1.3.9
Please give me feedback 🤞

yes from my (small) test the issue now seems to be fixed :)
thank you!


Add upload artifact step for PR level

Summary
Add an action to upload the artifact to an S3 bucket. In parallel add:

license
codeowners
readme

Ticket Link
https://mattermost.atlassian.net/browse/CLD-4681

@phoinixgrr good point.

@phoinixgrr could you please review again?


Fix the potential arithmetic overflow on s2n_realloc() and s2n_connection_get_delay()

The changes fix two potential arithmetic overflows:

the inconsistent return type of s2n_connection_get_delay(), which is int64_t, however the returning variable has type uint64_t.

if the variable "size" in s2n_realloc() contain a huge value, (size + (page_size - 1)) could cause a unsigned overflow. Although it may not happen in the normal usage, it could be a potential risk.

@IssacLam did you use some automated tooling to find these? If so, it may be worth adding to our builds!

Hello @raycoll,
I am working on my M.Sc. project that use CBMC to model check the s2n implementation. It can be done automatically, but to be more precise it would require some effort for preparing the environment and reviewing the result.
It will be great if you can review this changes so that I can add this into my report.
Thanks


Sort component styling is wrong

Browser
No response
Description
Are our overrides wrong? Are there upstream Carbon changes to account for? Is this just production or development environment too?
Steps to reproduce
https://carbon-platform-playground.wdc1a.ciocloud.nonprod.intranet.ibm.com/assets/components

To do: Next.js build and start locally to see if reproducable.

ran docker container from published image and sort component seems ok , also confirmed looks good in netlify and CE current deployments

@francinelucca cool, thanks, closing.


Set up v1.4 Media Socializer

Pull Request Test Coverage Report for Build 144

1 of 1 (100.0%) changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 88.749%

Totals

Change from base Build 142:
0.0%

Covered Lines:
1830

Relevant Lines:
2062

💛  - Coveralls


Add ingress section to dashboard documentation

Description
This PR adds an ingress a new section of the dashboard documentation, under Accessing LiqoDash, that explains how to set up an Ingress for the dashboard.
Also, fixes a minor bug in the View CRD, where the object layout would not update. This is because in the v1 version of the CustomResourceDefinition, by default all unspecified fields for a custom resource (in this case the layout field) are pruned. To prevent this behavior it is possible to add x-kubernetes-preserve-unknown-fields: true in the validation schema.
ref. #230

Pull Request Test Coverage Report for Build 253509296

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.09%) to 50.88%

Totals

Change from base Build 249972862:
0.09%

Covered Lines:
6768

Relevant Lines:
13302

💛  - Coveralls

/rebase


Need to update document to include Speed Dial

Speed Dial isn't supported when you have an EXOP mailbox. Adding this blurb in here after confirming with the PO that this isn't supported.

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@dstrome PR has been copyedited and is ready for final review, could you please check and merge? Thanks!

@carolynblanding - can you tech review this change?

@dstrome This is not correct. Speed Dial entries can be from local contacts in Teams which does not rely on Exchange Online mailbox.

Closing PR per tech review.


Update scala-library, scala-reflect to 2.12.14

Updates

org.scala-lang:scala-library
org.scala-lang:scala-reflect

from 2.12.7 to 2.12.14.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (2.12.7).
You might want to review and update them manually.
.travis.yml

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang" } ]

labels: library-update, semver-patch, old-version-remains

Superseded by #2238.


Add an example using a custom cellpose model

Using the hummingbird model from Maurice @ the FMI.

Support being added by https://github.com/fractal-analytics-platform/fractal-tasks-core/pull/218
Here's the example: https://github.com/fractal-analytics-platform/fractal-demos/tree/main/examples-v1/16_Custom_cellpose_network

Here is how hummingbird performs on organoid segmentation: it's not perfect yet, one organoid with sparser cells gets missed. But it stops cutting organoids apart. Parameters could be tweaked a bit further to the hopefully get the optimal performance
Here is what the nuclei model does with the same model parameters (missing more of the organoids, plus has some long holes in the label images):

Here is what the cyto2 model does with the same parameters:

(didn't have overcutting issues, but expanded a bit further over the organoids, also missed the one on the top right)


Support for older Manifest.mbdb

It seems older iOS uses another format for manifest database.
Do you plan to have support for this one?

I have plans to support this eventually, It'd just require much extra time that I don't currently have at the moment.

Ok, lets see maybe we could do it as well.

This was solved by https://github.com/richinfante/iphonebackuptools/pull/20


SAAS-3149 - Added capability to show flaky tests in report

In this PR, the capability to display flaky tests with filter options added in report

wrong repo


PageHeader tags do not support different tooltip text

We have a requirement to display a shortened ID in the tag but then display a long ID in the tooltip. The shortened version is not a simple truncation, we have a special function for producing it. PageHeader does not currently support this.

enhancement

How will success be measured?
This enhancement will be successful when it is possible to pass in a tooltipText attribute as part of each tag and have it display in the tooltip independently of the tag text
Additional information

Designs

@eRadiofan please share design links if possible.

@eRadiofan Carbon have asked for designs, without it they will likely close the issue.

When Carbon implement 9587 then as props are passed through it will be available in page header as a result. Hence closing this issue.


dart fix --apply fails to fix lint

Tried with sdk 7fa9a6776a34cb482056d42f8b781a2a5fe3e539.
Input:
class Test {
  List<int> lengthDelimited = <int>[];
  List<int> varints = <int>[];
  List<int> fixed32s = <int>[];
  List<int> fixed64s = <int>[];
  List<int> groups = <int>[];

  List get values => <int>[]
    ..addAll(lengthDelimited)
    ..addAll(varints)
    ..addAll(fixed32s)
    ..addAll(fixed64s)
    ..addAll(groups);
}

void main() {}

dart analyze output:
   info - protobuf_test.dart:9:7 - Use spread collections when possible. - prefer_spread_collections

File after running dart fix --apply:
class Test {
  List<int> lengthDelimited = <int>[];
  List<int> varints = <int>[];
  List<int> fixed32s = <int>[];
  List<int> fixed64s = <int>[];
  List<int> groups = <int>[];

  List get values => <int>[...lengthDelimited, ...varints, ...fixed32s, ...fixed64s]

    ..addAll(groups);
}

void main() {}

Note that groups is not moved to the list syntax, and the new file has the same lint error.
Interestingly if I remove ..addAll(groups) in the original program then dart fix --apply doesn't leave the last addAll outside the list syntax and produces lint-free output. Is there a hard-coded limit on the depth of the tree to transform maybe?

Is there a hard-coded limit on the depth of the tree to transform maybe?

Sort of.
When that file is analyzed there's only one diagnostic produced, as you noted. The fix fixes that one diagnostic. The dart fix command then re-analyzes the file (with the fix applied) to see whether there are any other problems that are now being reported. Once again there is one diagnostic, and the loop repeats.
But because some of the lints can be contradictory (such as prefer_double_quotes and prefer_single_quotes), we knew that it was possible for the loop to be infinite. To guard against that, we added a hard coded limit to the number of times it would repeat the attempt to fix diagnostics. That's what you're running up against.
We have some ideas for possible ways of detecting infinite loops, but they're all just heuristics and might still require a fixed limit in order to prevent the tool from spinning.
The best I can offer you at the moment is that sometimes you might be required to run dart fix more than once.

On the other hand, it seems like it ought to be fairly simple to expand the range over which the fix is being made available; in general it ought to be offered anywhere inside the diagnostic's highlight range.

Can @bwilkerson's above comment idea be applied here as well? Or am I misunderstanding this?
I see that the current highlight only applies to the first addAll name and nothing more as well. Why is that? I mean, why wouldn't it find all of the other addAll calls in this snippet?

The lint is fairly limited. It looks for a cascade invocation of addAll applied to a list literal. The first matches that pattern; the others don't. And it sort of makes sense because you can't change any of the other invocations unless you first choose to translate the first invocation.
(That's a little different than the situation the comment applies to. In that case it's possible to change the second occurrence without changing the first.)
I suppose we could change the lint to report all of the addAll invocations that could be converted into spreads, and change the fix to do the same. It might even be the right approach.


#362 Sample operation initial work

Initial version of Sample() operation implemented and tested for numpy and pandas.
Sample() should randomly select some items from a given datasource and return them.
For numpy and pandas, the returned data are new arrays or dataframes or series.

xref #362


ARR Feb 2023: Reviewers from previous round leaking to current (?)

I'm AE for Feb 2023 ARR, and for some papers I can see previous reviewers (?) with some wierd IDs (NaN etc.)... When opening detail page of the paper, there's no reviews visible.

Hi,
Thanks for raising this. Please note that this issue tracker is for the ARR website. For technical issues with Open Review, please contact the tech team directly.
I'll follow up via email and look into getting this resolved.
Jonathan


Finished Configuring  "xslt-js" task with xslt3 node_module, but getting Error 193 in VS Code: A native exception occurred during launch.

Thank you for this VS Code extension.
I just finished configuring a VS Code task with following tasks.json file. Every time I try to run this task on my Windows machine (Shift+Ctrl-B), I get an error in my "Terminal" window. The error says "The terminal process failed to launch: A native exception occurred during launch (Cannot create process, error code: 193)."
I have also navigated to the node_modules/.bin folder, and tried running the "xslt.ps1" command from a PowerShell Command Window. On running "xslt.ps1" script from PowerShell, I get an error saying "Command line option -s requires a value".
I have also pasted the PS command (below) that I'm using to run the "xslt.ps1" script. Could this be because I haven't configured my VS Code properly, or am I missing something here. Any help would be appreciated, thanks again for the extension!
PS Command:
.\xslt3.ps1 -xsl:C:\Code\Biogen\Xslt Playground\src\CCDA-to-SDA.xsl -s:C:\Code\Biogen\Xslt Playground\data\Test_CCDA.xml -o:C:\Code\Biogen\Xslt Playground\xslt-out\result1.xml val1=atif
Tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"type": "xslt-js",
"label": "Demo1 Xslt",
"nodeModulesFolder": "${workspaceFolder}\node_modules",
"xsltFile": "${workspaceFolder}\src\CCDA-to-SDA.xsl",
"xmlSource": "${workspaceFolder}\data\Test_CCDA.xml",
"resultPath": "${workspaceFolder}\xslt-out\result1.xml",
		"parameters": [
			{
				"name": "val1",
				"value": "atif"
			}

		],

		"group": {
			"kind": "build",
			"isDefault": true
		},
		"problemMatcher": [
			"$saxon-xslt-js"
		]
	}
]

}

Thanks for reporting this issue. I think the problem here is with the space character in the the path that follows the  '-s:'. The nodejs command line interface for SaxonJS has an issue where it escapes space characters in a path to %20 as if it were a URL. I have reported this issue to Saxonica and it should be fixed in the next SaxonJS release. You get a slightly different error from the terminal because the -s: argument is not enclosed in quotes.

Hi Phil,
Thanks for replying.
So I've tried different methods of passing arguments into the PowerShell Script (not via VS Code, I opened a separate PowerShell Command Line window on my Windows machine), but nothing worked. This PS script is located at "\node_modules.bin\xslt3.ps1". This PS script just passes the arguments to the xslt3.js module, that's all that this PS script is doing.
I then opened a regular "node" command line window, and ran the following command:
node xslt3.js -xsl:"C:\Code\Biogen\XsltTransforms\src\CCDA-to-SDA.xsl" -s:"C:\Code\Biogen\XsltTransforms\data\Test_CCDA.xml" -o:"C:\Code\Biogen\XsltTransforms\xslt-out\result1.xml"
This above node command works just fine (I was getting some compile errors, but that's because my XSLTs are malformed).
As you can see, the paths do not have any spaces in them, and are also enclosed in double-quotes.
So, it looks like the problem is passing arguments from PowerShell (PS) script onto the node module "xslt3.js".
PS takes arguments in the form xslt3.ps1 -xsl "" -s "" (there is a space between -s and ""
Node command take arguments in the form:
node xslt3.js -xsl:"" -s:"" (there is a colon : between -s and "".
Phil, I also watched your YouTube video on how to set this up in VS Code. In the video you are using a Mac machine, where I'm using a Windows machine.
So, I'm wondering if you have any recommendations on how to get this working in VS Code on my machine. I appreciate your help and thanks again! - Atif

Your extra info helps confirm this is related to space characters in the path specified in the -s: argument.
This known is logged here as 'upstream bug'  issue #47 in this repo. Here is the relevant Saxonica issue Bug #4925.
In the mean time I would recommend, if you can (and don't require the Saxon-JS extensions), installing Java and using the Java release of Saxon-HE along with the corresponding task. This is documented at: Saxon Configuration for Java.

Hi Phil,
Thanks for your reply.
I'm sorry, maybe I'm missing something here. Bug #4925 says that this was resolved; it says it was resolved by Norm Tovey-Walsh. But I wasn't able to find the updated xslt3.js anywhere? Would you know where I can find the updated xslt3 npm module?
Also the issue seems to be passing arguments from Windows PS onto the xslt3.js node module. Running the xslt3.js with a "node" module command does not give any (space related) errors. It runs fine when I use the following node command:
xslt3.js -xsl:"C:\Code\Biogen\XsltTransforms\src\CCDA-to-SDA.xsl" -s:"C:\Code\Biogen\XsltTransforms\data\Test_CCDA.xml" -o:"C:\Code\Biogen\XsltTransforms\xslt-out\result1.xml"
So the xslt3.js node command works fine. And also, if you look at the (node) command I pasted right above, you can see that there are not spaces in the any of the paths to -xsl or -s or -o options.
I may be missing something here, but I'd really appreciate if you could please expand on your answer! Thanks again !

You can't find the updated xslt3 release that fixes Bug #4925 because Saxonica are not yet ready to publish a new release.
Bug #4925 currently has a status of resolved.  This just means that the fix has been committed locally on their version control system. The status will change to closed once there is a new release.
Until there is a new release of SaxonJS you should either use source file paths with no spaces (as you illustrate above) or switch to using the Java version of Saxon.
Hopefully this is now clear but please let me know if there are further issues.


Supporting Cloudflare Workers as deployment target

The problem
@nhost/nhost-js uses Axios. Thus, the Nhost client can't be used in SSR if Nuxt is deployed as a Cloudflare worker.
This leads to await client.auth.refreshSession(refreshToken.value) failing in nhost.server.ts on page reload when SSR is used.
An experimental solution

Add this package: @vespaiach/axios-fetch-adapter
Use the follwing code in composables/useNhostClient.ts

import { NhostClient } from '@nhost/nhost-js';
import { useRuntimeConfig, useNuxtApp } from '#app'

// New: Axios fetch adapter for CF
import axios from 'axios'
import fetchAdapter from '@vespaiach/axios-fetch-adapter'

export const useNhostClient = (): NhostClient => {
  const nuxtApp = useNuxtApp()

  // New: Set the fetchAdapter as default
  axios.defaults.adapter = fetchAdapter

  const { nhost: { backendUrl } } = useRuntimeConfig().public

  if (!nuxtApp._nhostClient) {
    nuxtApp._nhostClient = new NhostClient({
      backendUrl: backendUrl
    })

  }

  return nuxtApp._nhostClient
}

This way, it works both in Miniflare (dev) and deployed as CF Worker.
Caveats

Depending on your NodeJS version, there is no native fetch support (so the local dev build won't work). There must be a check if the code is running on a CF Worker before applying the adapter.
If your domain is on Cloudflare, and you self-host Nhost / hasura-auth, it's very important to set SSL to "full" instead of "flexible" in the domain settings.
If the fetch fails, either because of the CF SSL problem or because of no Axios support, there error might be "invalid or expired refresh token" although the token is fine. The error handling is bad for this case, see here: https://github.com/nhost/nhost/blob/main/packages/hasura-auth-js/src/hasura-auth-client.ts#L602

@pk992 Thanks so much for your work
can you make a PR to keep your work visible in the project ?

I think
we can explore also
jetbridge/axios-jwt

Sorry, my time is very limited at the moment. :( Both this and the fix from #2 are very "quick and dirty" but allowed me to run it in a (beta) production environment.
The problem with the above solution: Vite will throw a ERR_MODULE_NOT_FOUND error if this fix is present in dev. Maybe because the native fetch is not found in @vespaiach/axios-fetch-adapter.
Wrapping it in a if/else like this still throws that error:
  if(useRuntimeConfig().runningOnCF) { axios.defaults.adapter = fetchAdapter }
So right now I uncomment this line before deploying...

Nice
thanks so much
my time was also limited, but i will play OS in october.
i will do my best based on your work
🙏


Support go 1.5

The go compiler and linker changed in v1.5 -- to 'go tool compile' and
'go tool link' instead of 6g and 6l. Move the selection logic to
bootstrap.bash, and have it use compile/link if 6g/6l are missing. This
way the build.ninja.in will continue working with either go 1.4 or 1.5.
Travis and the test suite will fail under 1.5, since the build.ninja.in
is still generated with 1.4, and the function names in the comments
differ between 1.4 and 1.5.

Also see https://github.com/colincross/blueprint/commit/beb18f4bba3b0ee2094dd93f12ba12ccbfc64c3c which does the same thing but without backwards compatibility.  The primary difference is that I used "go tool compile" instead of executing the compile binary directly, which might be better for forwards compatibility.

Yeah, I looked at that first, but wanted backwards compatibility.
6g/6l was also available via "go tool", at least in 1.4. We just need to pick a method. It's a simple, but not trivial change, since we need to make sure the dependencies are proper.

Might as well keep that as a separate change then

Rebased on master to fix build.ninja.in conflicts. Also renamed the "gc" rule to "compile"


Toggle between JDBC and Git Backend repository property source.

Hi,
I have a problem where I want to toggle between JDBC and Git Backend repository property source. I do not want to use composite repositories. I want only one to be active when the config server boots up.
How can I achieve this?

In the below configuration, if I enable only jdbc in profile yet it demands proper configuration for git like proper git repo URL and auths for that.
I want to avoid git-related configuration if I enable only jdbc in the profile. And If I enable Git only then config server should require that.
  config:
      server:
        jdbc:
          order: 1
          sql: SELECT ky,val from ${spring.flyway.schemas}.PROPERTIES where APPLICATION=? and PROFILE=? and LABEL=?
        git:
          order: 2
          defaultLabel: ${BRANCH:develop}
          uri: ${GIT_URI:https://bitbucket.org/deploy}`

That should be possible separating configuration into different documents that are activated depending on the profile

@ryanjbaxter Thank you so much for the solution. This is what I was looking for.


Is this project maintained?

This issue pertains to the following package(s):

[x] GraphQL Playground - Electron App
[ ] GraphQL Playground HTML
[ ] GraphQL Playground
[ ] GraphQL Playground Express Middleware
[ ] GraphQL Playground Hapi Middleware
[ ] GraphQL Playground Koa Middleware
[ ] GraphQL Playground Lambda Middleware

I am curious if this project is maintained (there are a large number of open issues)
if so, I would be happy to report my issues (using the Electron app version) and see what you think about them.

@mikeerickson thanks for asking this! Yes, this project is maintained!
We didn't have the resources in the last couple of weeks to spend a lot of time on the project, but will do so in the coming weeks.
So please post your electron issues, they won't be forgotten!

We released a new version of electron version a few days back.


Auto dodge???

Is it possible to detect when the mobs start to hit you and then it'll dodge automatically with python?

Currently, we are not doing anything that advanced.
This script uses the in-game auto mode for combat.

Gotcha, thank you.


Wasm Languages Guide: Add Forest page

Forest functional programming language: https://github.com/forest-lang/forest-compiler

Hi @vdice
Last commit in the Forest compiler was ~4 years ago.
The readme says, there is no standard library of data structures or ways to share packages and "So, very not ready for even simple applications."
I think we  can close this issue and revisit it if we see some activity in the Forest.


allow deploy portia spiders  with scrapyd-deploy

to deploy simply go to the data/project/project_xxx and run the scrapyd-deploy

Is It still supported ?I'm having lot of issues while trying to deploy to an instance of scrapyd
from portia i exported project,  after that I edited the scrapy.cfg  with:
[deploy:scrapyd] url = http://localhost:6800/ project = new_project
and then:
scrapyd-deploy scrapyd -p new_project
finally:
Packing version<PHONE_NUMBER> Deploying to project "new_project" in http://localhost:6800/addversion.json Server response (200): {"status": "error", "message": "AttributeError: 'list' object has no attribute 'iteritems'", "node_name": "PC_NAME"}


isOpen undefined  when provider equal  'yandex#search'

When search provider is used you can see this error in the console.

Uncaught TypeError: Cannot read property 'isOpen' of undefined
at u.show (combine.js?callback_prefix=_jsonp_react-yandex-maps-sandbox_combine&mode=release&flags=&load=81852_8V!8spmn:e,O,vo0N1ll8,P:Z1x!63N9d8J9a9b8I9c8Z:18)

So you can't see resuls in this case. Is it a problem with Yandex Maps itself or the library?

@mmarkelov seems like this is not the maps issue. Because this wokrs

@FriOne youp, I'll check it out.

@FriOne You need to load full library to do this:
      <YMaps query={{ load: "package.full" }}>
        <Map defaultState={mapState}>
          <SearchControl
            options={{
              provider: "yandex#search"
            }}
          />
        </Map>
      </YMaps>

https://codesandbox.io/s/0038row98l

@mmarkelov this will bump all elements to the map. But search works)
Guess we need to add a module that id required for searching

@FriOne yes, this is true, I just don’t know which modules are needed.

Found it, it is geoObject.addon.balloon& Thanks for help!


Coat and Fuzz parameter order inconsistent between specification and reference implementation

Clearly a very minor detail, but the reference implementation has Fuzz before Coat while the specification has Coat before Fuzz in the parameter reference.

The Emission and Thin Film sections are also swapped between spec and reference implementation.


New strategy for Slack

The Slack Strategy that is on your site is no longer maintained.  I have created a new one where all of the current issues have been corrected.
https://github.com/nmaves/passport-slack-oauth2
If you would not mind updating your list of strategies and removing the old one that would awesome!
Per this update, you could close https://github.com/jaredhanson/passport/issues/566

Any update on this?

How about submitting a PR?

really @DragonRaider5 ?  For their front end website?

Oh that's my mistake - I'm sorry. I thought there was a list of strategies in the README, but this was the case for the available SessionStores in express-session 📦

passport-slack-oauth2 is now searchable on passportjs.org.


blackfire: Service conflict when running multiple projects at the same time

When you have multiple ddev projects running, and you're using blackfire in all of them, then you will most likely talk to the wrong service when connecting to tcp://blackfire:8707.
see

https://github.com/drud/ddev-contrib/blob/aeacfb338cf3da2d7dee61e4741b2aeca70c5c95/docker-compose-services/blackfire/docker-compose.blackfire.yaml#L13
https://github.com/drud/ddev-contrib/blob/aeacfb338cf3da2d7dee61e4741b2aeca70c5c95/docker-compose-services/blackfire/php/blackfire.ini#L1

The service is defined like this:
services:
  web:
    links:
      blackfire:$DDEV_HOSTNAME

This means that the container blackfire is aliased as $DDEV_HOSTNAME. This doesn't work, and I assume it is silently ignored by Docker...
The problem is, when you still connect to the host blackfire, then this name exists multiple times. Try to ping the blackfire host from the web container multiple times to see this in effect...
Therefore, connecting to blackfire.agent_socket = tcp://blackfire:8707 will only work if the host is given a distinct alias.
This can be solved in a very simple way: Just assign the alias blackfire to this container, and it will work as expected:
services:
  web:
    links:
      blackfire:blackfire

When you ping the blackfire host again, it will always resolve to the service from the same project.
This is also solved in the same way for mongodb in this project, see
https://github.com/drud/ddev-contrib/blob/aeacfb338cf3da2d7dee61e4741b2aeca70c5c95/docker-compose-services/mongodb/docker-compose.mongo.yaml#L43

@rfay Done, see #14.

@susannemoog FYI.


Fix git9 build in the distribution.

Git was being compiled but its script library was not included in the distribution.
Add /sys/lib/git to mkdirs
Add /sys/lib/git to dist/replica/plan9.proto

Abandoning so I can learn this flow better.  Sorry for the churn.


DeprecationWarning: The punycode module is deprecated.

Fix warning "DeprecationWarning: The punycode module is deprecated. Please use a userland alternative instead.
(Use node --trace-deprecation ... to show where the warning was created)" on node 22

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
I am a passionate and results-driven web developer, currently deepening my knowledge in web3 technologies, Cairo, and open-source development through Dojo Coding. My skill set includes expertise in JavaScript, React, HTML, CSS, C# with .NET Entity Framework, and more. I also have experience with tools like Git, GitHub, SQL Server, and Postman. My focus has been on building solid web applications, from task lists to full-fledged CRUD systems, with front-end, back-end, and database integration.
I have already made a contribution to the open-source ecosystem and am excited to continue learning and collaborating on innovative projects
How I plan on tackling this issue
To fix the warning about the deprecated punycode module, I would check the code or dependencies to see if punycode is being used directly. Then, I’d replace it with a recommended alternative or an updated package. If the warning comes from a dependency, I’d check if there's a newer version available and update it.

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
I'm a fullstack engineer. Lately have been more on the web3 space.
I'm proficient with Javascript/Typescript, Nodejs, PhP, Solidity and currently learning Rust.
I'm a fast learner and like tackling challenging tasks.
I would my over 5 years plus experience in the tech space to solve deprecation issues on the project.
How I plan on tackling this issue
I would have to understand the codebase and look into packages to ascertain libraries to could possibly be causing the issue.


runtime, cmd/compile: deeply nested array interaction leads to fatal error and segfault

What version of Go are you using (go version)?

$ go version go1.11.3.windows-amd64 (linux too)

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
Reproduceable on Win10, Ubuntu 18 and playground
go env Output
$ go env

What did you do?
Manually created a deeply nested array (exactly 102 layers) for security testing an encoding function. Interacting with the nested array leads to several issues related to reflection:
fatal error: bulkBarrierPreWrite: unaligned arguments

goroutine 1 [running]:
runtime.throw(0x10cc6f, 0x28)
	/usr/local/go/src/runtime/panic.go:608 +0x80 fp=0x4655e0 sp=0x4655c0 pc=0x50fe0
runtime.bulkBarrierPreWrite(0x40cdc0, 0x10730e, 0xc, 0x0)
	/usr/local/go/src/runtime/mbitmap.go:593 +0x5e0 fp=0x465638 sp=0x4655e0 pc=0x346e0
runtime.typedmemmove(0xe9b40, 0x40cdc0, 0x10730e, 0x0)
	/usr/local/go/src/runtime/mbarrier.go:161 +0xe0 fp=0x465658 sp=0x465638 pc=0x32fc0
reflect.typedmemmove(0xe9b40, 0x40cdc0, 0x10730e, 0x0)
	/usr/local/go/src/runtime/mbarrier.go:186 +0x40 fp=0x465670 sp=0x465658 pc=0x33020
reflect.packEface(0xe9b40, 0x10730e, 0x197, 0x0, 0x1, 0x1)
	/usr/local/go/src/reflect/value.go:119 +0xa0 fp=0x465698 sp=0x465670 pc=0xbd300
reflect.valueInterface(0xe9b40, 0x10730e, 0x197, 0x1, 0xc, 0xe9b40)
	/usr/local/go/src/reflect/value.go:1008 +0x100 fp=0x4656c8 sp=0x465698 pc=0xbedc0
reflect.Value.Interface(0xe9b40, 0x10730e, 0x197, 0x0, 0x4, 0xc)
	/usr/local/go/src/reflect/value.go:978 +0x40 fp=0x4656e8 sp=0x4656c8 pc=0xbec60

https://play.golang.org/p/bbI3nbNprvi
In a different scenario it lead to a segfault:
unexpected fault address 0xffffffffffffffff
fatal error: fault
[signal 0xc0000005 code=0x0 addr=0xffffffffffffffff pc=0x4aaf0e]

goroutine 1 [running]:
runtime.throw(0x559e95, 0x5)
	C:/Go/src/runtime/panic.go:608 +0x79 fp=0xc000073158 sp=0xc000073128 pc=0x42bba9
runtime.sigpanic()
	C:/Go/src/runtime/signal_windows.go:207 +0x139 fp=0xc000073188 sp=0xc000073158 pc=0x43c7c9
reflect.Value.Len(0x51fe40, 0x2b202820736d6861, 0x197, 0xc0000528c0)
	C:/Go/src/reflect/value.go:1080 +0x17e fp=0xc0000731b0 sp=0xc000073188 pc=0x4aaf0e
makeSliceWriter.func1(0x51fe40, 0x2b202820736d6861, 0x197, 0xc00008c000, 0x0, 0x0)
	C:/my/code/encode.go:516 +0x6b fp=0xc000073210 sp=0xc0000731b0 pc=0x4fef5b
makeSliceWriter.func1(0x51fe40, 0x5599dd, 0x197, 0xc00008c000, 0x0, 0x0)
	C:/my/code/encode.go:518 +0xf1 fp=0xc000073270 sp=0xc000073210 pc=0x4fefe1
makeSliceWriter.func1(0x51fe40, 0xc00003e560, 0x197, 0xc00008c000, 0x0, 0x0)
	C:/my/code/encode.go:518 +0xf1 fp=0xc0000732d0 sp=0xc000073270 pc=0x4fefe1
makeSliceWriter.func1(0x51fe40, 0xc000049140, 0x197, 0xc00008c000, 0x0, 0x0)
	C:/my/code/encode.go:518 +0xf1 fp=0xc000073330 sp=0xc0000732d0 pc=0x4fefe1
makeSliceWriter.func1(0x51fe40, 0xc000049120, 0x197, 0xc00008c000, 0x0, 0x0)
	C:/my/code/encode.go:518 +0xf1 fp=0xc000073390 sp=0xc000073330 pc=0x4fefe1

I'm not sure how or if this could be exploited as it is probably an edgecase. Sadly, I'm far from a golang pro and don't know how to investigate further or if this is even "intended" behaviour. Maybe someone can shed a bit more light on what exactly the issue is?

Fun.
So this could use a backport to Go 1.11 once fixed at tip.

Btw: due to the nature of the bug I had issues using a debugger to figure out more.
I'd be more than willing to do more on this, as this is a byproduct of my thesis and seems promising to actually be exploitable somehow (even if it's just a DoS) :)

Apparently the compiler gives up at depth > 100 when creating the type symbol? So we end up using the wrong type descriptor?
https://go.googlesource.com/go/+/master/src/cmd/compile/internal/gc/fmt.go#1752
        if depth > 100 {
                return "<...>"
        }

From the stack trace, all nested printValue's value's type pointer is 0xe9b40, which should not happen, unless the compiler creates a self-referential type.

Change the 100 to 200, it works. Not sure what we should do...

@cherrymui That limit (100) is only to avoid endless recursions (cyclic types) due to the lack of a better mechanism (the fmt.go file in the compiler needs to be thrown out at some point...). Increasing the value to 200 is fine but of course doesn't solve the problem.
Interesting that it worked in the past. In any case, the compiler shouldn't crash but gracefully exit.

I agree that changing 100 to 200 doesn't solve the problem.
The depth limit is introduced in CL https://go-review.googlesource.com/c/go/+/38797. Before it had a different way of recursion detection, by putting a marker on the type.
The compiler doesn't crash. It mis-compiles the code and the program crashes at run time, due to incorrect type descriptor.

The compiler rejecting too-deep types and exiting gracefully SGTM.


feat: add support for interactive args

I have implemented a feature to enable interactive arguments using the input method instead of prompt. The reason for choosing input is to avoid the square brackets ([]) displayed during prompts. For example:

with prompt:

username []:
password []:

with input:

username:
password:

I have tested the feature. Additionally, I have created a test file for this implementation. Please review and test from your side whenever you have time.
Solves #42

@xmnlab Please review it.

@abhijeetSaroha could you rebase your branch on top of the upstream/main please²

@abhijeetSaroha thanks for working on that!
could you change it to use prompt instead of input. prompt is much more robust than input, and it will allow us to use types and default easily.
the issue you mentioned:
username []:
password []:

that happens because the default is an empty string. you can test with:
import click

click.prompt('Type your name', type=str, default="myname")
click.prompt('Type your name', type=str, default="")
click.prompt('Type your name', type=str)

so for now that is not an issue, maybe in the future we could just try to change the way it is displayed.

I made the required changes. It is working fine with prompt.

thanks for working on that @abhijeetSaroha