[Bug] hang when many requests

Checklist

[X] 1. I have searched related issues but cannot get the expected help.
[X] 2. The bug has not been fixed in the latest version.

Describe the bug
Like https://github.com/InternLM/lmdeploy/issues/1198, it will hang without setting session_id after many requests.
It seems hang in waiting self.get_generator(False, session_id).
Reproduction

lmdeploy serve api_server Qwen/Qwen1.5-72B-Chat/ --cache-max-entry-count 0.9 --tp 4 --session-len 32768
start benchmark(https://github.com/InternLM/lmdeploy/pull/1607) using 2048 concurrency without sending session_id and kill the benchmark scripy manually(ctrl+c)
repeat 2 some times

Environment
sys.platform: linux
Python: 3.11.9 (main, Apr 19 2024, 16:48:06) [GCC 11.2.0]
CUDA available: True
MUSA available: False
numpy_random_seed:<PHONE_NUMBER>
GPU 0,1,2,3: NVIDIA A100-SXM4-80GB
CUDA_HOME: /usr/local/cuda
NVCC: Cuda compilation tools, release 12.3, V12.3.107
GCC: gcc (Debian 12.2.0-14) 12.2.0
PyTorch: 2.2.2+cu121
PyTorch compiling details: PyTorch built with:
  - GCC 9.3
  - C++ Version: 201703
  - Intel(R) oneAPI Math Kernel Library Version 2022.2-Product Build 20220804 for Intel(R) 64 architecture applications
  - Intel(R) MKL-DNN v3.3.2 (Git Hash 2dc95a2ad0841e29db8b22fbccaf3e5da7992b01)
  - OpenMP 201511 (a.k.a. OpenMP 4.5)
  - LAPACK is enabled (usually provided by MKL)
  - NNPACK is enabled
  - CPU capability usage: AVX2
  - CUDA Runtime 12.1
  - NVCC architecture flags: -gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_90,code=sm_90
  - CuDNN 8.9.2
  - Magma 2.6.1
  - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=12.1, CUDNN_VERSION=8.9.2, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -D_GLIBCXX_USE_CXX11_ABI=0 -fabi-version=11 -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO -DLIBKINETO_NOROCTRACER -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -O2 -fPIC -Wall -Wextra -Werror=return-type -Werror=non-virtual-dtor -Werror=bool-operation -Wnarrowing -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-strict-overflow -Wno-strict-aliasing -Wno-stringop-overflow -Wsuggest-override -Wno-psabi -Wno-error=pedantic -Wno-error=old-style-cast -Wno-missing-braces -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=2.2.2, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=1, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF, USE_ROCM_KERNEL_ASSERT=OFF,

LMDeploy: 0.4.1+
transformers: 4.41.0
gradio: Not Found
fastapi: 0.111.0
pydantic: 2.7.1
triton: 2.2.0

Error traceback
ERROR:    Traceback (most recent call last):
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "uvloop/loop.pyx", line 1511, in uvloop.loop.Loop.run_until_complete
  File "uvloop/loop.pyx", line 1504, in uvloop.loop.Loop.run_until_complete
  File "uvloop/loop.pyx", line 1377, in uvloop.loop.Loop.run_forever
  File "uvloop/loop.pyx", line 555, in uvloop.loop.Loop._run
  File "uvloop/loop.pyx", line 474, in uvloop.loop.Loop._on_idle
  File "uvloop/cbhandles.pyx", line 83, in uvloop.loop.Handle._run
  File "uvloop/cbhandles.pyx", line 63, in uvloop.loop.Handle._run
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/server.py", line 68, in serve
    with self.capture_signals():
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/contextlib.py", line 144, in __exit__
    next(self.gen)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/server.py", line 328, in capture_signals
    signal.raise_signal(captured_signal)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/runners.py", line 157, in _on_sigint
    raise KeyboardInterrupt()
KeyboardInterrupt

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/routing.py", line 741, in lifespan
    await receive()
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/lifespan/on.py", line 137, in receive
    return await self.receive_queue.get()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/queues.py", line 158, in get
    await getter
asyncio.exceptions.CancelledError

ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "uvloop/loop.pyx", line 1511, in uvloop.loop.Loop.run_until_complete
  File "uvloop/loop.pyx", line 1504, in uvloop.loop.Loop.run_until_complete
  File "uvloop/loop.pyx", line 1377, in uvloop.loop.Loop.run_forever
  File "uvloop/loop.pyx", line 555, in uvloop.loop.Loop._run
  File "uvloop/loop.pyx", line 474, in uvloop.loop.Loop._on_idle
  File "uvloop/cbhandles.pyx", line 83, in uvloop.loop.Handle._run
  File "uvloop/cbhandles.pyx", line 63, in uvloop.loop.Handle._run
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/server.py", line 68, in serve
    with self.capture_signals():
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/contextlib.py", line 144, in __exit__
    next(self.gen)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/server.py", line 328, in capture_signals
    signal.raise_signal(captured_signal)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/runners.py", line 157, in _on_sigint
    raise KeyboardInterrupt()
KeyboardInterrupt

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 411, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 69, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__
    await self.app(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/routing.py", line 756, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/routing.py", line 776, in app
    await route.handle(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/routing.py", line 297, in handle
    await self.app(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/routing.py", line 77, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/routing.py", line 72, in app
    response = await func(request)
               ^^^^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/fastapi/routing.py", line 278, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/lmdeploy/serve/openai/api_server.py", line 489, in chat_completions_v1
    async for res in result_generator:
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/lmdeploy/serve/async_engine.py", line 615, in generate
    generator = await self.get_generator(False, session_id)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/lmdeploy/serve/async_engine.py", line 369, in get_generator
    await asyncio.sleep(0.1)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/tasks.py", line 649, in sleep
    return await future
           ^^^^^^^^^^^^
asyncio.exceptions.CancelledError
INFO:     <IP_ADDRESS>:57340 - "POST /v1/chat/completions HTTP/1.1" 500 Internal Server Error
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "uvloop/loop.pyx", line 1511, in uvloop.loop.Loop.run_until_complete
  File "uvloop/loop.pyx", line 1504, in uvloop.loop.Loop.run_until_complete
  File "uvloop/loop.pyx", line 1377, in uvloop.loop.Loop.run_forever
  File "uvloop/loop.pyx", line 555, in uvloop.loop.Loop._run
  File "uvloop/loop.pyx", line 474, in uvloop.loop.Loop._on_idle
  File "uvloop/cbhandles.pyx", line 83, in uvloop.loop.Handle._run
  File "uvloop/cbhandles.pyx", line 63, in uvloop.loop.Handle._run
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/server.py", line 68, in serve
    with self.capture_signals():
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/contextlib.py", line 144, in __exit__
    next(self.gen)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/server.py", line 328, in capture_signals
    signal.raise_signal(captured_signal)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/runners.py", line 157, in _on_sigint
    raise KeyboardInterrupt()
KeyboardInterrupt

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 411, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 69, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__
    await self.app(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/routing.py", line 756, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/routing.py", line 776, in app
    await route.handle(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/routing.py", line 297, in handle
    await self.app(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/routing.py", line 77, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/starlette/routing.py", line 72, in app
    response = await func(request)
               ^^^^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/fastapi/routing.py", line 278, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/lmdeploy/serve/openai/api_server.py", line 489, in chat_completions_v1
    async for res in result_generator:
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/lmdeploy/serve/async_engine.py", line 615, in generate
    generator = await self.get_generator(False, session_id)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/lmdeploy/serve/async_engine.py", line 369, in get_generator
    await asyncio.sleep(0.1)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/tasks.py", line 649, in sleep
    return await future
           ^^^^^^^^^^^^
asyncio.exceptions.CancelledError
Traceback (most recent call last):
  File "/home/internlm/.conda/envs/lmdeploy/bin/lmdeploy", line 8, in <module>
    sys.exit(run())
             ^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/lmdeploy/cli/entrypoint.py", line 37, in run
    args.run(args)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/lmdeploy/cli/serve.py", line 283, in api_server
    run_api_server(args.model_path,
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/lmdeploy/serve/openai/api_server.py", line 1222, in serve
    uvicorn.run(app=app,
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/main.py", line 575, in run
    server.run()
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/server.py", line 65, in run
    return asyncio.run(self.serve(sockets=sockets))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "uvloop/loop.pyx", line 1511, in uvloop.loop.Loop.run_until_complete
  File "uvloop/loop.pyx", line 1504, in uvloop.loop.Loop.run_until_complete
  File "uvloop/loop.pyx", line 1377, in uvloop.loop.Loop.run_forever
  File "uvloop/loop.pyx", line 555, in uvloop.loop.Loop._run
  File "uvloop/loop.pyx", line 474, in uvloop.loop.Loop._on_idle
  File "uvloop/cbhandles.pyx", line 83, in uvloop.loop.Handle._run
  File "uvloop/cbhandles.pyx", line 63, in uvloop.loop.Handle._run
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/server.py", line 68, in serve
    with self.capture_signals():
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/contextlib.py", line 144, in __exit__
    next(self.gen)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/site-packages/uvicorn/server.py", line 328, in capture_signals
    signal.raise_signal(captured_signal)
  File "/home/internlm/.conda/envs/lmdeploy/lib/python3.11/asyncio/runners.py", line 157, in _on_sigint
    raise KeyboardInterrupt()
KeyboardInterrupt

Tried with lmdeploy serve api_server Qwen1.5-110B-Chat --cache-max-entry-count 0.9 --tp 8 --session-len 32768 and did not reproduce yet.

#1789 might resolve the issue. Please give it a try.

i have  encounter the same error for offline inference when the bs is large, the inference process will hang sometimes.

这个问题main已经修掉了，https://github.com/InternLM/lmdeploy/issues/1848#issuecomment-2188849947 。你遇到的是 turbomind 还是 pytorch engine的问题？100% 只是显示问题，实际都没有在跑

这个问题main已经修掉了，#1848 (comment) 。你遇到的是 turbomind 还是 pytorch engine的问题？100% 只是显示问题，实际都没有在跑

用的是turbomind在跑internvl，但是看了下实现，vit是跑在torch上的？llm是跑在tm上

这个问题main已经修掉了，#1848 (comment) 。你遇到的是 turbomind 还是 pytorch engine的问题？100% 只是显示问题，实际都没有在跑

感谢回复，我测试一下

跟你遇到的应该不是一个问题。有什么简单的复现脚本吗？驱动 535 好像是有点问题

跟你遇到的应该不是一个问题。有什么简单的复现脚本吗？驱动 535 好像是有点问题

编译了最新的lmdeploy，没有hang住的问题了

没问题，这个issue关掉了

@AllentDan 测试了很多次，发现还是会偶发hang住，只是偶发概率更低了，大概1/25，InternVL 1.5 BS=16, offline inference，L20X2


Display data array as Signal, how can I display X-axis in seconds?

Question:
I have an array of doubles that are data acquired at a specific rate (2,000 points per second).  The code I inherited is displaying these as a Signal using the default axes and they now want the x-axis units to be seconds.  How can I do this?
When I try the code as shown below, the x-axis runs from 12/31/1899 to 2/17/1900, so maybe the 'period' value passed to Add.Signal doesn't have units of seconds/point?
ScottPlot Version:
5.0.37
Code Sample:
int samplingRate = 2000;   // points per second
// I tried passing in a value for 'period'
Signal signal = plot.Add.Signal(acquiredData, period: 1.0 / samplingRate);
plot.Axes.DateTimeTicksBottom();

Fixed it by defining the data source:
SignalSourceDouble source = new(acquiredData, period: 1.0 / samplingRate);
and not trying to set the bottom ticks to date/time


PR 4 Instructions

Upload your profile image into /docs/images/team folder
Give the name same as your first pr file name & use extension jpg, jpeg or png e.g., 'proful.png'
Edit TEAM.md to link to your image. Someone experienced with markdown come up with an initial design (size & placement). Other follow.

This will improve your knowledge of merging.

Is this good to go or do we need to wait for @Akshay2996 to finish his task?

Done 1 and 2. Need help with 3

@Na-ilah dm me on twitter or discord

@johnjacobkenny Okay, I am on twitter now

I just added the link to my github avatar in the 3rd PR table.

Is this good to go or do we need to wait for @Akshay2996 to finish his task?

Hi @techgeek16 Me & @pranavgoel29 both have completed our task in hand. Just upload your image & follow what others are doing. If you have any problem DM me on Twitter regarding it.

@lorennaleon @GorettiRivera :)


Small Square Rendered Inside Each Item Slot

Addon Version
v0.1.7-7
World of Warcraft Version
Retail
Describe the bug
A small square border is drawn inside each item slot since the latest alpha update.
Steps to reproduce
Just open the bags.

Resolved in latest Alpha.


implications of prep_close on submissions that are being processed

Imagine you have submission that already being in the work and you just submitted close_direct operation to close direct descriptor that submission uses to actually do the work(e.g read/write from/to it). What will happen to submission in this case? It will die or return error or io uring will let it finish the work and shutdown/complete gracefully as if nothing happened? Does io uring have any flags to control this behavior?

If the operation using that direct descriptor has already been started, then closing it won't impact it. So that should be fine to do.

Good. If I understand correctly, same thing can be said for IOSQE_IO_LINK chains, right? For example you have read and write operations chained into one. You submitted it and then immediately closed(or replaced using well-known mechanism) direct descriptor that they operate on. Will something break or such operation is entirely atomic once submitted, i.e it will proceed normally?

No, when links are setup, the request is only prepared, not fully setup. The fd will be resolved when that part of the link is started. So if you do:
<open direct fd 0><read direct fd 0><...>
<close direct fd 0>
then the read direct fd 0 part and later parts of that chain may not see the current fd 0. It's safe to do in a chain itself as each part is serialized with the sqe before it, but once you're outside of a chain, that is no longer the case. It may work depending on timing, but it's not guaranteed.

Should clarify that this is a prerequisite for links working with direct descriptors to begin with. If the fd was fully resolved as the link were prepared, then it would fail the example sequence of:

as direct fd X would not be valid yet before the open has successfully completed.

Dammit, that ruined my entire plan

You could use IOSQE_IO_DRAIN for this, but it's generally not recommended as it isn't very efficient.

Thank you very much again. IOSQE_IO_DRAIN looks exactly what I need, so I'll stick with it for now. Having atomic chained operations would be much better though...

I have been toying with a concept I termed "bundles". Basically a way to submit things like the dependent chain, except there are no dependencies. For your example, you could put everything you wanted into a bundle, and then link the bundle with the close and know that the close wouldn't run before the bundle was done. Inside the bundle you can do ordering with links as per usual, or not have any dependencies at all. Anyway, not even posted yet, just something I played with.

Sounds cool! Looking forward to see it.


pronostico in response

After a day of not using my app, today, I visited https://lattices-api-mock-clwdcgqqqp.now.sh/abcd1234/pl.general?path=web.lines[4] and received
{
pronostico: [
{
type: "BAJAMAR",
hora: "03:00",
altura: "1.50"
},
{
type: "PLEAMAR",
hora: "08:00",
altura: "2.40"
},
{
type: "BAJAMAR",
hora: "15:30",
altura: "1.40"
}
]
}

I'm usuing Chrome and a JSONView plugin. After refreshing the page it presented the expected result.

Perhaps I should clarify, that the response was totally unexpected, and seems like a originating from some service unknown to me. The text looks like in Spanish, and related to sea tides, while my service usually outputs text in Polish and is related to text-to-speech :)

I'll close this now, since this possible issue is being tracked also elsewhere (internally).
Anyways this should't definitely happen.


Fix fusion issue

Hot fix to correct issue where fusions weren't being upload. Incorrect indentation of fusion block. Changes looked over by @Istaisa.

Agree - code has been checked and now runs as expected.


search prop:val for specific entry type

maybe "shot.status:done" ?

I don't understand what this means and it conflicts with current search method as '.' is now used to direct the sub entry.
eg) comp.status:done means search entries those sub entry 'comp' marked as done.


Rename startpoints and endpoints

Use 'root cells' and 'final cells' instead.

Can we close this?

Yes, closing this.


Unknown Resources

I've just tried to integrate Robojava into a more detailed project, with a fair number of integrated android library dependencies, and there are errors.

My build directory doesn't have an intermediates/assets/development/debug as all, as far as I can tell. Instead it looks like:

The generated RobojavaConfig.java is definitely not setting the RESOURCES and ASSETS to the correct thing in this case, where there are many dependencies with resources of their own.

I'm still trying to figure out how to reproduce this on a smaller app, so unless it's something obvious, don't worry about this yet.

Alright, here's what's going on with this: I had changed my applicationId based on the flavor by using a contruct like the following:
    productFlavors {
        def productionSigningConfig = signingConfigs.production
        def developmentSigningConfig = signingConfigs.release
        development {
            signingConfig developmentSigningConfig
            applicationId "my.application.debug"
        }

        production {
            signingConfig productionSigningConfig
        }
    }

This caused confusion with the plugin. The app was being compiled with the default applicationId, and since the applicationId is overridden, it wasn't finding the resources.
But, once that was fixed, I found that the ${applicationId} replacement in my AndroidManifest.xml was not working properly, and so another component I'm using was throwing errors about not being able to find attributes in the manifest.
So, two things need to work better: Allowing the overriding of applicationId on a flavor. And the second is following the new manifest merging logic somehow.

Robojava does not configure the application ID, the Robolectric manifest does however, so you may override it like this:
package com.kageiit.test;

import org.robolectric.AndroidManifest;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.res.Fs;

import static com.kageiit.robojava.RobojavaConfig.ASSETS;
import static com.kageiit.robojava.RobojavaConfig.MANIFEST;
import static com.kageiit.robojava.RobojavaConfig.RESOURCES;

/**
 * Custom test runner which is needed if your tests need resources etc.
 */
public class RobojavaTestRunner extends RobolectricTestRunner {

    private static final int TARGET_SDK_VERSION = 18;
    private static final AndroidManifest ANDROID_MANIFEST = getAndroidManifest();

    public RobojavaTestRunner(final Class<?> testClass) throws Exception {
        super(testClass);
    }

    @Override
    public AndroidManifest getAppManifest(Config config) {
        return ANDROID_MANIFEST;
    }

    private static AndroidManifest getAndroidManifest() {
        return new AndroidManifest(Fs.fileFromPath(MANIFEST),
                Fs.fileFromPath(RESOURCES),
                Fs.fileFromPath(ASSETS)) {
            @Override
            public int getTargetSdkVersion() {
                return TARGET_SDK_VERSION;
            }

            @Override
            public String getApplicationName(){
                return "TestApplicationName";
            }
        };
    }
}

Yeah, I found I was also able to work around this by creating a new productFlavor that uses just the default applicationId too. So there's definitely a couple of workarounds that work here. Thanks.


Stream::process_vec() produces no output

let mut strm = Stream::new_easy_encoder(9, Check::Sha256).unwrap();
let rawbuf = read_n(file, to); //Read `to (u64)` bytes from `file` and store in `rawbuf (Vec<u8>)`
let mut retvec: Vec<u8> = Vec::new();
strm.process_vec(rawbuf.as_slice(), &mut retvec, Action::SyncFlush).unwrap();

In the code above, retvec contains no data even though rawbuf does.

Ah you'll need to use with_capacity or somehow make sure the vec has capacity, from the docs

This function will use the extra capacity of output as a destination for bytes to be placed. The length of output will automatically get updated after the operation has completed.

Thanks.


Description of NoCompression flag is missing

Description of NoCompression flag is missing

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

ID: dc49cf3f-058c-01dc-3f37-f0d1c11ce088
Version Independent ID: 28cd035a-d309-7227-f63c-03dbb55a734e
Content: Export-SPMetadataWebServicePartitionData (SharePointServer)
Content Source: sharepoint/sharepoint-ps/sharepoint-server/Export-SPMetadataWebServicePartitionData.md
Product: sharepoint-2016-powershell
GitHub Login: @Techwriter40
Microsoft Alias: pamgreen

Hello @repton-infinity how are you?
Thanks for your feedback, I tested this, and as you can suspect, the export is done uncompressed, will add that to the article.
thank you


[story/ECP-1381] - Create test scripts for DqT Claim service - TSLR - Testing

@martikat can we close this please as there is another PR to replace it which merges in all the work from ECP-1379 & ECP-1380, plus some refactorings to make this work.
Replacement PR is 1849
Thanks


major code refactor/optimization

Summary of changes:-

Renamed the pkg pdcli to kite to stay more relevant.
Removed the columns flag as it didn't serve any purpose in a TUI based application.
Moved event handlers, table initalizers from the UI pkg to their respective command packages (alerts & oncall) for better security and modularity. (I didn't like the idea of PD API client being exposed to UI components)
Created input files for individual command packages (alerts & oncall) for better code readability and abstraction.
Kite will now not have the Resolved Alerts view, seeing it added to value to an SRE. (The details if an alert has been resolved will be shown in the metadata view of the alert/incident [to-do] )
Improved UX with having one single view for alerts, one view for acknowledged incidents and one view to select and acknowledge from a list of triggered incidents. High and low alerts can be filtered like before from the alerts view.
Bumped up the incidents limit to 50 to improve filtering incidents based on status.
Eliminated redundant API calls.

/assign @T0MASD

Refresh doesn't work at the moment, I intend to add a few more feature and refactor the code to a little more extend. For now, this doesn't need to be reviewed fully yet.
/hold


Display for NSString truncates at null bytes

This issue was originally reported privately, but I thought I should create an issue to inform others about it, as it has not yet been fixed.
The implementation of Display for NSString truncates at null bytes, since it uses CStr::from_ptr. It should be possible to use [NSString lengthOfBytesUsingEncoding:] and [NSString UTF8String] instead to create the complete string.
Example:
let string = NSString::from_str("null\0bytes");
println!("{}", string);

That example only prints the string "null". Since ToString::to_string uses Display to create strings, it has the same issue. NSString::to_str and NSString::to_str_with_null also have the same issue.
If you believe this is a valid issue, I encourage you to file a security advisory at https://github.com/rustsec/advisory-db, including a patch version if it is possible to release within two weeks.
Thank you for your work on this crate. Creating a security advisory is not meant to be anything other than a way to provide information to other users.

Heads up: this issue has been included in the RustSec advisory database. It will be surfaced by tools such as cargo-audit or cargo-deny from now on.
Once a fix is released to crates.io, please open a pull request to update the advisory with the patched version, or file an issue on the advisory database repository.

This is now fixed in release 0.3.0. Sorry for the delay. I cherry-picked it from a series of changes that I wanted to clean up and didn't get around to. I will be adding more APIs and releases soon, with a focus on macOS.

Thanks @nvzqz! The new implementation looks good and appears to resolve the issue. However, NSString::from_str_no_copy is no longer unsafe, which might have been unintentional.

@dylni that method is safe because the NSString cannot outlive the input due to the 'data lifetime.

@nvzqz Sorry, I realized my original comment was wrong and edited it. You are correct that the lifetime is now sufficiently enforced.

No worries. I appreciate your diligence. Things like that do get missed.


I do POST request for getting token, next do GET request to get data. I turn off my internet connection, after that turn on it and do GET request again.
Link to the project: https://github.com/kate-fin/OkHttpDoesntWorkApplication.git
You just need click the button, turn off internet, turn it on and click button again
Log of error:
E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
Process: com.example.okhttpdoesntworkapplication, PID: 30701
java.lang.IllegalStateException: state: 0
at okhttp3.internal.http1.Http1ExchangeCodec.readResponseHeaders(Http1ExchangeCodec.kt:173)
at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.kt:110)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:34)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.kt:222)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
D/OOMEventManagerFK: checkEventAndDumpForJE: 0
I/Process: Sending signal. PID: 30701 SIG: 9
You could answer me to<EMAIL_ADDRESS>Thank you.

Thanks for the great reproduction.  Was able to reproduce with 5.0.0-alpha2, but couldn't on 4.9.1.
To unblock you, I'd suggest building against 4.9.1 until we fix this issue.

@swankjesse I'm still taking a look, but most likely candidate is https://github.com/square/okhttp/commit/9533117948e81bd5298dd30de86d2ffdc90e9907

If it fails writing the request headers
  /** Returns bytes of a request header for sending on an HTTP transport. */
  fun writeRequest(headers: Headers, requestLine: String) {
    check(state == STATE_IDLE) { "state: $state" }
    sink.writeUtf8(requestLine).writeUtf8("\r\n")
    for (i in 0 until headers.size) {
      sink.writeUtf8(headers.name(i))
          .writeUtf8(": ")
          .writeUtf8(headers.value(i))
          .writeUtf8("\r\n")
    }
    sink.writeUtf8("\r\n")
    state = STATE_OPEN_REQUEST_BODY
  }

Then we try to read after the exception, but are in STATE_IDLE
  override fun readResponseHeaders(expectContinue: Boolean): Response.Builder? {
    check(state == STATE_OPEN_REQUEST_BODY ||
        state == STATE_WRITING_REQUEST_BODY ||
        state == STATE_READ_RESPONSE_HEADERS) {
      "state: $state"
    }

Quick attempt at a reproduction on JDK didn't work, I suspect I'm not faithfully reproducing the actual observable behaviour on Android after a network disconnection (airplane mode etc).  No luck making a reproducing test yet.

Of the two options I think a makes the most sense. I think you're right that it's a logic bug I introduced in that commit.

Closing as a likely dupe of https://github.com/square/okhttp/issues/3278

The same problem happens sporadically on my system after making a couple of changes, including an update of okhttp from 4.10.0 to 4.11.0. Here is my stacktrace:
java.lang.IllegalStateException: state: 0
	at deployment.myproject.war//okhttp3.internal.http1.Http1ExchangeCodec.readResponseHeaders(Http1ExchangeCodec.kt:173)
	at deployment.myproject.war//okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.kt:110)
	at deployment.myproject.war//okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:93)
	at deployment.myproject.war//okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at deployment.myproject.war//okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:34)
	at deployment.myproject.war//okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at deployment.myproject.war//okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
	at deployment.myproject.war//okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at deployment.myproject.war//okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
	at deployment.myproject.war//okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at deployment.myproject.war//okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
	at deployment.myproject.war//okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at deployment.myproject.war//de.myproject.SpecificTimeoutInterceptor.intercept(SpecificTimeoutInterceptor.java:43)
	at deployment.myproject.war//okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at deployment.myproject.war//okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.kt:221)
	at deployment.myproject.war//okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at deployment.myproject.war//de.myproject.RetrofitFactory.lambda$createRetrofit$0(RetrofitFactory.java:129)
	at deployment.myproject.war//okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
	at deployment.myproject.war//okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
	at deployment.myproject.war//okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
	at deployment.myproject.war//retrofit2.OkHttpCall.execute(OkHttpCall.java:204)

Will take a look again.

Timing of https://github.com/square/okhttp/pull/7453 jives with a regression between 4.10 and 4.11.
But I tried the repro at the top and the content has changed, even swallowing 404, I don't think we get the same observable behaviour. Servers returning an early response must be a factor...
So no repro, but I'll test a few more things.

@kate-fin are you able to repro still?

We have started experiencing the same crash after updating OkHttp 4.10.0 -> 4.12.0:
Fatal Exception: java.lang.IllegalStateException: state: 0
       at okhttp3.internal.http1.Http1ExchangeCodec.readResponseHeaders(Http1ExchangeCodec.kt:173)
       at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.kt:110)
       at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:93)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at com.smartadserver.android.coresdk.util.SCSUtil$1.intercept(SCSUtil.java:452)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:34)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
       at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:764)

I am getting the same error, but only when the fullMode is enabled.

I tried to reproduce without success. Not sure if AGP, R8 or a bug/race condition in OkHttp.
Without a repro, it's hard to take further.

Interestingly 4.10 to 4.12 does change this code to allow reading response headers early

I also got a single report of this crash for my app (so fairly rare) using v4.12.
I do no have an easy repro but the logging attached to the crash reports seems to indicate it is caused
by a http server returning an error 404.


perf: worker_threads

githon build bottleneck is template rendering.
https://github.com/githon/githon/tree/3de1998203e58cad4c646a678d11cb47645ffbbc/packages/githon/lib/templating
Worker Threads make githon fast?

Its blocker is immutable.js


Updated Microlearning images to improve size and resolution in notebook.

Problem: The Hebbian learning image and the bias-variance image were too large when displayed in the notebook, whereas the project template was difficult to read.
Solution

Replaced HebbianLearning.jpeg with HebbianLearning.png, which is now about half the size in each dimension.
Replaced BiasVariance.jpeg with BiasVariance.png, which is also now much smaller.
Replaced MicrolearningProjectTemplate.svg with MicrolearningProjectTemplate.png.
Updated URLs in notebook. Should work following PR merging.

Closed by #183.


Provide docker-image on docker hub?

It would be awesome if you could provide a pre-baked docker image on docker hub!

+1

+1

+1

+1

We finally have Docker images published. Please give them a try.
https://hub.docker.com/repository/docker/prometheuscommunity/bind-exporter


Check for compatible Julia version

Currenly, JET does not check for a valid Julia version when import it. JET is quite sensitive to the version of Julia. Originally, it supported Julia 1.6. The latest version supports 1.7, and if I'm not mistaken, the master branch only supports 1.8?
I keep getting internal JET errors that I think happen due to using the wrong version of JET and/or Julia. It would be of great help if there was some kind of error message when importing JET, or if the compat was correctly specified.

I tried to make it sure that users can get warning when some JET features aren't supported on their Julia versions.

The latest version supports 1.7, and if I'm not mistaken, the master branch only supports 1.8?

Which exact Julia version are you using ?
I just ran the test suite with 1.7-rc1, and it seems to work correctly at least on my machine and CI builds:
julia> versioninfo()
Julia Version 1.7.0-rc1
Commit 9eade6195e (2021-09-12 06:45 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin19.6.0)
  CPU: Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, icelake-client)
Environment:
  JULIA_EDITOR = code
  JULIA_PKG_DEVDIR = /Users/aviatesk/julia/packages
  JULIA_PROJECT = @.

shell> git log --oneline --max-count 3
89544c22 (HEAD -> master, origin/master) update to https://github.com/JuliaLang/julia/pull/42342
4659d480 enable optimization analysis tests
2983f2cd docs: fixup

(JET) pkg> st
     Project JET v0.5.0
      Status `~/julia/packages/JET/Project.toml`
  [aa1ae85d] JuliaInterpreter v0.8.21 `~/julia/packages/JuliaInterpreter`
  [6f1432cf] LoweredCodeUtils v2.1.2 `~/julia/packages/LoweredCodeUtils`
  [1914dd2f] MacroTools v0.5.8
  [295af30f] Revise v3.1.19 `~/julia/packages/Revise`
  [b77e0a4c] InteractiveUtils
  [44cfe95a] Pkg v1.8.0
  [8dfed614] Test

(JET) pkg> test
     Testing JET
┌ Warning: Could not use exact versions of packages in manifest, re-resolving
└ @ Pkg.Operations /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.7/Pkg/src/Operations.jl:1488
      Status `/private/var/folders/28/jpsyzp6971s99n6bd4_k6fgm0000gn/T/jl_uIisXe/Project.toml`
  [c3a54625] JET v0.5.0 `~/julia/packages/JET`
  [aa1ae85d] JuliaInterpreter v0.8.21 `~/julia/packages/JuliaInterpreter`
  [6f1432cf] LoweredCodeUtils v2.1.2 `~/julia/packages/LoweredCodeUtils`
  [1914dd2f] MacroTools v0.5.8
  [295af30f] Revise v3.1.19 `~/julia/packages/Revise`
  [b77e0a4c] InteractiveUtils `@stdlib/InteractiveUtils`
  [56ddb016] Logging `@stdlib/Logging`
  [44cfe95a] Pkg `@stdlib/Pkg`
  [9a3f8284] Random `@stdlib/Random`
  [8dfed614] Test `@stdlib/Test`
      Status `/private/var/folders/28/jpsyzp6971s99n6bd4_k6fgm0000gn/T/jl_uIisXe/Manifest.toml`
  [da1fd8a2] CodeTracking v1.0.6 `~/julia/packages/CodeTracking`
  [c3a54625] JET v0.5.0 `~/julia/packages/JET`
  [aa1ae85d] JuliaInterpreter v0.8.21 `~/julia/packages/JuliaInterpreter`
  [6f1432cf] LoweredCodeUtils v2.1.2 `~/julia/packages/LoweredCodeUtils`
  [1914dd2f] MacroTools v0.5.8
  [bac558e1] OrderedCollections v1.4.1
  [ae029012] Requires v1.1.3
  [295af30f] Revise v3.1.19 `~/julia/packages/Revise`
  [0dad84c5] ArgTools `@stdlib/ArgTools`
  [56f22d72] Artifacts `@stdlib/Artifacts`
  [2a0f44e3] Base64 `@stdlib/Base64`
  [ade2ca70] Dates `@stdlib/Dates`
  [8ba89e20] Distributed `@stdlib/Distributed`
  [f43a241f] Downloads `@stdlib/Downloads`
  [7b1f6079] FileWatching `@stdlib/FileWatching`
  [b77e0a4c] InteractiveUtils `@stdlib/InteractiveUtils`
  [b27032c2] LibCURL `@stdlib/LibCURL`
  [76f85450] LibGit2 `@stdlib/LibGit2`
  [8f399da3] Libdl `@stdlib/Libdl`
  [56ddb016] Logging `@stdlib/Logging`
  [d6f4376e] Markdown `@stdlib/Markdown`
  [ca575930] NetworkOptions `@stdlib/NetworkOptions`
  [44cfe95a] Pkg `@stdlib/Pkg`
  [de0858da] Printf `@stdlib/Printf`
  [3fa0cd96] REPL `@stdlib/REPL`
  [9a3f8284] Random `@stdlib/Random`
  [ea8e919c] SHA `@stdlib/SHA`
  [9e88b42a] Serialization `@stdlib/Serialization`
  [6462fe0b] Sockets `@stdlib/Sockets`
  [fa267f1f] TOML `@stdlib/TOML`
  [a4e569a6] Tar `@stdlib/Tar`
  [8dfed614] Test `@stdlib/Test`
  [cf7118a7] UUIDs `@stdlib/UUIDs`
  [4ec0a83e] Unicode `@stdlib/Unicode`
  [deac9b47] LibCURL_jll `@stdlib/LibCURL_jll`
  [29816b5a] LibSSH2_jll `@stdlib/LibSSH2_jll`
  [c8ffd9c3] MbedTLS_jll `@stdlib/MbedTLS_jll`
  [14a3606d] MozillaCACerts_jll `@stdlib/MozillaCACerts_jll`
  [83775a58] Zlib_jll `@stdlib/Zlib_jll`
  [8e850ede] nghttp2_jll `@stdlib/nghttp2_jll`
  [3f19e933] p7zip_jll `@stdlib/p7zip_jll`
     Testing Running tests...
Test Summary: | Pass  Broken  Total
JET.jl        |  767       6    773
     Testing JET tests passed

This happens with JET 0.4.6 (latest in General Registry) and Julia 1.7-rc1:
julia> using BioSequences, JET

julia> @report_call translate(dna"TAG")
ERROR: BoundsError: attempt to access Nothing at index [2]

The issue is that JET 0.4.6 has its Julia compat set as 1.6, which implies it's compatible with all Julia versions from 1.6 to 2.0, when it is in fact not compatible with version 1.7. The correct compat should be ~1.6.

Hh, I get it. Do you think it would be reasonable to release 0.4.7, that specifies the compatibility as ~1.6 ?

Hm... not sure. If you have Julia 1.6, then the resolver will simply download JET 0.4.6 as that is marked as compatible. You can release a 0.4.7 which prints an error message if it detects Julia 1.7 or higher, and then for JET 0.5.0 set the Julia compat to ~1.7

Yeah, that sounds like a pretty reasonable resolution. Thanks for your suggestion. I will release 0.4.7 tomorrow.

It's also possible to update the registry to retroactively fix compatibility.

yeah, that might be better.
xref: https://github.com/JuliaRegistries/General/pull/45588


[BUG] REDIS was hacked on my server... please write some words about it

First of all, thanks a lot for your docker... it's great work.
But... I don't know Redis and what it is before to install you docker script.
I found a miner script on my server and I uderstand that was injected using the
open port 6379 on Redis.
I still don't understand how this was possible cause I have csf firewall on the host.
Anyway I think that you sould tell about this problem on the home page
cause many people like me (newbe) will have the same problem.
Here is the bug explained:
http://antirez.com/news/96
Thanks a lot again
Denis

Hi, sorry to hear that youe redis got hijacked. Nevertheless, you are responsible for the things you put in production. This Stack is not build for production usage in purpose .We will mark this more clearly in the readmes.

Greate :-)
Thanks a lot again


How can I detect when a window is normal or maximized?

I need some help because I'll try to change an icon when the window is normal or maximized.
Anybody help me pleace I need olny an example code.

Maybe this could help you:
`export class Example {
constructor(private es: ElectronService) {
if ( this.es.remote.getCurrentWindow().isMaximized()) {
// Your code
}
}
}`


Update pubsub to use new CallSettings from GAX

LGTM - as discussed, we'll remove automatically cloning settings.


Correction for raw affiliation INRA, SUPAGRO-UMR LEPSE, 34060 Montpellier cedex, France (C. Massonnet, D.V., J.F., C.G.); Max-Planck-Institute of Molecular Plant Physiology, 14476 Golm, Germany (M.A.H., C.C., J.L., R.C.M., L.W.); Department of Plant Systems Biology, Flanders Institute for Biotechnology, B–9052 Ghent, Belgium (G.T.S.B., F.F., P.H.); Department of Plant Biotechnology and Genetics, Ghent University, B–9052 Ghent,; Warwick Horticulture Research International (United Kingdom)

Correction needed for raw affiliation INRA, SUPAGRO-UMR LEPSE, 34060 Montpellier cedex, France (C. Massonnet, D.V., J.F., C.G.); Max-Planck-Institute of Molecular Plant Physiology, 14476 Golm, Germany (M.A.H., C.C., J.L., R.C.M., L.W.); Department of Plant Systems Biology, Flanders Institute for Biotechnology, B–9052 Ghent, Belgium (G.T.S.B., F.F., P.H.); Department of Plant Biotechnology and Genetics, Ghent University, B–9052 Ghent,; Warwick Horticulture Research International (United Kingdom)
raw_affiliation_name: INRA, SUPAGRO-UMR LEPSE, 34060 Montpellier cedex, France (C. Massonnet, D.V., J.F., C.G.); Max-Planck-Institute of Molecular Plant Physiology, 14476 Golm, Germany (M.A.H., C.C., J.L., R.C.M., L.W.); Department of Plant Systems Biology, Flanders Institute for Biotechnology, B–9052 Ghent, Belgium (G.T.S.B., F.F., P.H.); Department of Plant Biotechnology and Genetics, Ghent University, B–9052 Ghent,; Warwick Horticulture Research International (United Kingdom)
new_rors: 03xrhmk39;00cv9y106;01fbde567;03fte3n86
previous_rors: 03xrhmk39;00cv9y106;01fbde567
works_examples: W1966076168
contact: 9c56c20ea3f880b676bdb8dc972c3727:58facedac7025f061a1ba697b716656592be @ inrae.fr

This issue was accepted and ingested by the OpenAlex team on 2024-10-09. The new affiliations should be visible within the next 7 days.


[T3A5][T15-A3]Lam Jouq Hang Hendersen

@takukou The aim was to create a separate class (not a parent class) Formatter which contained formatting related member and methods.


Masters bouncing offline/online & resync on reconnect

We've been doing some stress testing using the most recent version of multimaster and have identified an issue that is causing some of our masters to bounce between offline and online (which in turn is triggering the resync on reconnect feature).  After some investigation we believe we understand the cause and want to get some feedback on what we are seeing.

The bouncing behavior appears to be related to the code that removes offline masters.  When a master has an unanswered heartbeat request, another request is then sent to that master plus all of the others.  This has the affect of incrementing all the other masters "unanswered count" by +1.  Because the callback code that would set that count to 0 uses the same lock as the removal code, the unanswered count can keep increasing by +1 on each iteration.  In the case where there are at least 5 more masters after the one that had the unanswered count, this can increase the count to 5 unanswered requests for a master by the time we reach it in the loop and it is set offline.  When the removal code exits the callback runs and sets the master back online (since it wasn't really offline).  We see this occur repeatedly.  The problem seems to be the request being sent to all other masters, not just the one with an unanswered request.  Is there a particular reason this is done?  Would you be open to having the request sent only to the master in question and not to the entire group in this case?

Because the master bonces offline/online we see the resync on reconnect code running frequently, which we believe has caused some of the drop of messages we've been seeing.  We addressed the problem by setting the 'resync_on_reconnect' param to False and everything is running fine.  However we'd like to understand what we are losing by doing that.  What particular problem does that feature address?

Thanks.

Thank you for your feedback!
I have some question to 1):

did you use node_manager to start master_discovery?
or
did you start master_discovery using launch file with your own parameter?
(It is because the default ~heartbeat_hz parameter of master_discover is changed by node_manager. If the ~heartbeat_hz is lower then 0.3 no quality calculation is done and therefore the remote master are set offline only after 5 unanswered requests. The requests are send:

for each hosts in ~robot_hosts parameter
for all hosts (multicast) while initialization 3x
for all hosts (multicast) if two or more master_discovery are running on the same host (should normally no happen)
for each host no heartbeats within 60 sec are received

"The problem seems to be the request being sent to all other masters, not just the one with an unanswered request." - If this occurs in other cases as described above, it is a bug :-/  )
3. If ~heartbeat_hz is greater then 0.3 (master_discovery is started by node_manager with default values) : change the ~timeout_factor to 7, e.g. rosparam set /master_discovery/timeout_factor 7 and test master_discovery again in your scenario, please
Some comment to 2):
The python implementation in ros_comm currently does not support reconnects on timeouts and some other connection problems. If you have for example connection problems longer then 2.5 minutes the connection for python subscribers will be dropped. The resync_on_reconnect parameter address this problem and force the reconnection (it  does not check the interruption duration). If you do not have so long connection interrupts, you can set this parameter to False.
Please inform me if ~timeout_factor solves the problem or not. If not, set
rosparam set /master_discovery/log_level DEBUG

restart master_discovery and upload the log of the master_discovery which bounce between offline and online.
Thanks!

Thanks for the response!  The clarification on the "resync on reconnect" helps a great deal.
Re the bouncing:
To answer your questions 1) we're starting master_discovery using our own launch file and 2) heartbeat hertz is actually below 0.3 so no quality calculation is being done.  In our scenario, hosts are only being set offline because we are exceeding 5 heartbeat requests.
Based on what you said above, I realize I forgot to mention that we are in fact running more than one master discovery on the same host.  For our stress testing purposes need to simulate a large number of robots, and to do that we are spinning up N robots per machine, each of which have their own master discovery node.  So we are hitting the case where requests are sent "for all hosts (multicast) if two or more master_discovery are running on the same host".
Further to that, the trigger that is causing the requests to be sent is because a host has at least one unanswered request.  I did not see that listed above in your list so maybe this is a bug?  It appears in master_discovery.py line 806.  Eventually when this is called enough times in a loop we hit the 5 unanswered requests on multiple hosts and they are set offline.
I've attached the master discovery log to illustrate this behavior (the lines that say "TRACE" are extra log lines that were added to try and diagnose the issue).  If you look at line 47 you can see the beginning of a cycle in "remove_offline_hosts" where each master has 1 unanswered request.  Each iteration through the loop causes it to send requests to the master as well as all others and so the count increases by 1.  When we hit dev-vm-ros-01.local_12309 in line 96 it gets set offline.
master_discovery-08.log.gz

If multimaster isn't supposed to be sending requests when there is at least 1 unanswered requests, then removing this solves our problem.

If it is supposed to, then what we're wondering if why - when a specific masters has an unanswered heartbeat request or hasn't received one in the last 60 seconds - heartbeat requests are sent to all masters running on the same host? When sending out regular heartbeat requests it makes sense to do so for all hosts but when dealing with the unanswered request for a specific master, shouldn't we only talk to that one?  Otherwise all others get penalized with an increment in their unanswered requests and can get set offline.

Thank you for the log! It helps me to reproduce the behaviour.
I added a fix to the master branch. It reduces the multicast requests and fix the request counter.
It would be great if you test this in your scenario!
Thanks!

That fixed it: the bouncing no longer occurs in my test scenario with the current master branch. Thank you!  If we could get a tag with this commit in it we'll rev our version.

Thank you for testing and reporting!
I created a release tag 0.5.8


Rendering purpose is not set during oauth2 token refresh for plugins

Expected Behavior
The plugin receives the rendering purpose even during oauth2 token refresh and is able to render secrets accordingly
{"type":"oauth2","grantType":"client_credentials","accessTokenUrl":"https://example.edu","clientId":"","credentialsInBody":"true","clientSecret":"{% keepass 'keepassxc', '', '', 'https://example.edu', 'password' %}"}

is rendered to
{"type":"oauth2","grantType":"client_credentials","accessTokenUrl":"https://example.edu","clientId":"","credentialsInBody":"true","clientSecret":"mypass"}

Actual Behavior
The client secret in oauth2 token refresh when using a plugin is rendered wrong, as it is rendered without the RenderPurpose set to send. A security aware plugin that only wants to render an actual secret when going over the wire, can therefore not be used for client secret.
{"type":"oauth2","grantType":"client_credentials","accessTokenUrl":"https://example.edu","clientId":"","credentialsInBody":"true","clientSecret":"{% keepass 'keepassxc', '', '', 'https://example.edu', 'password' %}"}

is rendered to
{"type":"oauth2","grantType":"client_credentials","accessTokenUrl":"https://example.edu","clientId":"","credentialsInBody":"true","clientSecret":"KeepassXC - password of https://example.edu"}

Reproduction Steps

Install plugin insomnia-plugin-keepass (this is not a plugin bug)
In Oauth2 use Keepass tag in client secret

Is there an existing issue for this?

[X] I have searched the issue tracker for this problem.

Additional Information
Possible quickfix solution is to add optional parameter for RenderPurpose to use-nunjucks.ts and o-auth-2-auth.tsx
https://github.com/dansailer/insomnia/pull/1/files
Insomnia Version
2022.3.0
What operating system are you using?
macOS
Operating System Version
Windows 10 and macOS 12.3.1
Installation method
homebrew (MacOS),  Installer exe (Windows)
Last Known Working Insomnia version
No response

Hi @dansailer thanks for reporting this, and thank you for providing possible solution!
We'll try to investigate this a bit deeper when possible, but indeed this weird behavior should also happen with any other plugins that would try to tap into the send render purpose.
I'd encourage you to move your suggested pull request into Insomnia's pull requests and the team can follow-up with you there to try to get a fix completed and merged 👍

It would be great if someone could have a look at https://github.com/Kong/insomnia/pull/4779


[Pods][Testing] Normalising capitalisation of 'status' property

In the spec, status string was supposed to be capitalised (https://github.com/mesosphere/marathon/blob/feature/pods/docs/docs/rest-api/public/api/v2/types/podStatus.raml#L100), but on the API it looks like it's not:

So, as a precaution I am normalising the status everywhere.

From the discussion I see that we should not do this feature.
Let's wait until @jdef has defined the last unknown part (https://github.com/mesosphere/marathon/blob/feature/pods/docs/docs/rest-api/public/api/v2/types/podStatus.raml#L36) and we should assume that the specs are followed correctly.
Closing this PR, have a look on #1113


Add Cosmokit Integration

Switch custom wallet logic to use CosmosKit  instead. This will allow us to add support for new wallet very quickly.

[x] Change custom wallet logic to use CosmosKit
[x] Add support for old and new wallets

[x] Keplr
[x] Leap
[x] Keplr Mobile (NEW)
[x] Cosmostation (NEW)
[x] Cosmostation Mobile (NEW)

[x] Sandbox Support
[x] USDC Support

November 28: The issue with mobile payments was fixed in the latest version of cosmoskit. Still waiting on this other issue.

December 12, 2023:
Still no answer for the remaining issue. I forked the repo to try and implement a fix myself.

December 19, 2023:
The needed feature was added and PR was merged. Will be deployed on prod in the next release.


[$500] Chat - Can't open context menu by long press on mentions

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open any report
Send a mention in chat
Long press on mention
Observe context menu doesn't popup

Expected Result:
The context menu should popup using long press on mention.
Actual Result:
The context menu does not popup using long press on mention.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[ ] Android / Chrome
[x] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/05082fa1-cdb9-4f8c-9cbf-5f8a2c458c76
https://github.com/Expensify/App/assets/93399543/1402c452-c18d-42dd-a86f-7502201297e8
Expensify/Expensify Issue URL:
Issue reported by: @Krishna2323
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1695192996432379
View all open jobs on GitHub

I agree @fedirjh , I'm not sure what context menu is being referred to here. Closing!

Thanks for following up! I also reproduced this like you described

Clarifying what is expected here https://expensify.slack.com/archives/C03U7DCU4/p1696285400796969

Confirmed long press on mentions should open the comment action menu

Waiting on proposal review from @fedirjh

Hows the further debugging going @fedirjh?

Payment summary:
$500 @fedirjh requires payment
$550 @Krishna2323 requires payment

New Upwork Job created for payment: https://www.upwork.com/jobs/~01cc618434de8e0915

Offers sent, lemme know when you accept them! Thanks

Paid and contracts ended!

Tests added! Thanks, everyone


Plans for this package

I have been working on visualizing graphs using ThreeJS.jl in 3D. So far I've implemented 'force-directed graph drawing algorithm' (Spring Embedding). I would like to work on Graph Visualization and contribute to this package. Can you please let me know your intentions of this package so that I can also contribute?
Here is the link to my repository, NetworkViz.jl.
This is a working demo of the project.

Hi @abhijithanilkumar,
it would certainly be a pleasure to have your contributions here.
There is currently no deeply thought plan for this package, it just steams from a graph plotting example in GLVisualize.jl, see discussion JuliaGraphs/LightGraphs.jl#313 and my recent commit to this repo.
What I'd like to see is a tight integration with the LightGraphs package, since it is a full fledged graph library, altough some part of the code could and should be independent by any particular graph library, as long as a graph representation in terms of an adjacency_list or an adjacency_matrix is provided.
Also some kind of interactivity trough the REPL would be nice to have, like having a plot updated in correspondence of the command add_edge(g, 1, 2).
Regarding the technology behind the package, I wasn't aware of the possibility of using WebGL through ThreeJS.jl, therefore I was keeping an eye on OpenGL through GLVisualize.jl.
I'm no expert of OpengGL or WebGL, do you have any argument supporting one or the other? I'm slightly more inclined toward using OpenGL so that one avoids going through a browser. Supporting both backend seems to be really difficult, am I right?
Also there is a question of 2D vs 3D, and in this regard I definitely stand for 2D visualization, since it seems to me that adding another dimension often makes the result more confusing.
Having NetworkViz with WebGL+3D and GraphVisualize with OpenGL+2D seems a good way to minimize overlaps and cover more niches
I would really like to join forces and I'm not sure how to procede further with this package. First I'll have to familiarize myself to GLVisualze.jl I think, unless you convince me that ThreeJS is a much better alternative ;)

Hello @CarloLucibello ,
As you said, GLVisualize is a nice package that can be used. I'd like to work with that also.
Having a WebGL solution lets users share stuff as well as present things easily using Escher. NetworkViz.jl implements the same idea as GraphVisualize.jl. I'm also using LightGraphs in my package.
The beauty of using WebGL is that it lets you create interactive UIs similar to the example I posted earlier. Using ThreeJS with Escher opens up possibilities like this.

@CarloLucibello : We can support 2D visualization by omitting the Z parameter. Maybe we could give the user an option between 2D and 3D visualization.

@abhijithanilkumar digging a little I'm kinda thinking that ThreeJS has some advantage over GLVisualize, like easy of use, more portablity, better documentation. But since you are already exploring that  direction in NetworkViz, let's explore GLVisualize here. Moreover the author of SGLVisualize it very kind and inclined to adapt GLVisualize on real use cases like this project
@cjamadagni definitely. Using opengl probably it won't be difficult to go 2d in the beginning, then convert to 3d with the option to set Z=0 once the package is more mature

@CarloLucibello So let's keep the packages separate. Both the packages might come in handy depending on further development of ThreeJS and GLVisualize. Once you have the basic structure of the package ready, I'd like to contribute as well.
I think we can close this issue now.

Let's keep this issue open for general discussions on the package
I just commited some code to have some interaction between the plot and the REPL, see the README for some examples.
I am not sure that is the right way to do that, if anybody has some advise I certainly could use it

I have been working with NetworkViz.jl and recently registered v0.0.1. Now NetworkViz is capable of doing stuff like this.
I would like to continue working on this package by taking this up as a GSoC project. This is the continuation of the discussion here.

In the best of worlds, most code should be shared between NetworkViz and GraphVisualize!
Maybe they shouldn't even exist! It'd be much nicer to have GraphLayout spit out geometric representations, which are understood by the rendering backend directly.
I see how that can get difficult if you put interactivity into the mix! But that's maybe the part, that the package should be about and the layouting code should be seperated out.
Note that GLVisualize also supports some interactive widgets like text entry, sliders, buttons and color choosers... They're not that great yet, but I might polish them up very soon ;)
@ranjanan, this discussion might be interesting for you!

@SimonDanisch I think @CarloLucibello wanted this library to be tightly coupled with LightGraphs just like NetworkViz. A new package can be created which is much more generic based on GraphLayout and generates geometric representations that can be used by any package. In the long run, the new package might consume both GraphVisualize and NetworkViz since they will be of no use then. I would like to make NetworkViz backend-independent as well.

Great! I've talked with @IainNZ about this and he would prefer having pull requests for GraphLayout to make it independant from the actual drawing code. I must admit, I've also just copied his code so far, as my time to clean things up was running out.

Given the sudden surge of attention in this area, I really think using GraphLayout.jl (instead of copying it) would be best.
I want to note that the spring layout code is actually already independent of drawing code, its just that the overall package isn't.

@IainNZ sure it's better, in fact I'm requiring and calling its functions explicitely here. Some contruibutions I was thinking of for GraphLayout was an option to give starting positions and another  was factoring out a single step of the dynamic of the spring embedding
@abhijithanilkumar It would be really nice if you manage get into GSoC with @SimonDanisch as a mentor that would really give a huge boost to all these projects.
Regarding GraphVisualize, the main hindrance for me now is the lack of time and getting the signaling right, which I'm not sure I did. Probably I will vampirize your work in SignalView and NetworkViz :)
I'm totally in favour of decoupling and unifying codebases, maybe creating another intermediate repo as @abhijithanilkumar proposed. This is something that should be done in GraphVisualize, I wanted to have something readily up and running so I integrated it tightely with LightGraphs,  but definitely this will change along the road.
Anyway I've no problem in some of the code here in the future going to GraphLayout, some to GLVisualize, some to package X or wherever, and maybe leave here only the integration part with LightGraphs and the lateborn Networks,jl (also in this org)

I didn't call the functions from GraphLayout directly because I wanted to add 3D support in NetworkViz. The current algorithms in GraphLayout supports 2D visualization. Since we have GLVisualize, ThreeJS and Compose3D, I think we can modify it to support 3D visualizations as well.


How to extract payload

I have created this function to extract the payload
async fetchPayload(token: string):Promise<object> {
    const data = await validateJwt(token, key, { isThrowing: false });
    return data.payload;
  },

but I am getting this error
TS2322 [ERROR]: Type 'Payload | undefined' is not assignable to type 'JwtObject | null'.
  Type 'undefined' is not assignable to type 'JwtObject | null'.
      return data.payload;

Hi @sarthaksavvy,
try checking data for null. The return type of validateJwt is Promise<JwtObject | null>.
Let me please know if the following code works:
async fetchPayload(token: string):Promise<object> {
    const data = await validateJwt(token, key, { isThrowing: false });
    return data ? data.payload : null;
  }

I am considering changing the return type from validateJwt to just Promise<JwtObject> in the future.

Hi, to answer your question above, yes I'm currently using isThrowing. Hope it helped.

Hi @timonson ! I am using your library in an Oak middleware that I have made for JWT validation.
I would suggest to have isThrowing default as false.
I am using isThrowing to be able to return custom error messages and to have custom error validation. However, I think a better way of handling this is to return the data or undefined instead of throwing and null. This is in line with the conventions of ts/js. This way the user can handle error handling however they see fit. If the JWT is valid but the token is expired, the property isExpired could be included in the data.
Hope this helped!

Hi @halvardssm, I am definitely open to change the default of isThrowing to false. But could you please elaborate why it should be JwtObject | undefined instead of JwtObject | null. I actually did a little bit of research regarding JS conventions before and I derived the opposite from that, meaning null would be a better fit than undefined.
Thank you!

Sure!
As stated in the TypeScript coding guidelines, one should not use null but rather undefined. I also think it is more natural to use undefined as a return value since this is the default for when a value is missing in TS/JS, and null is not widely used in the JS world in general (it's an awkward type to deal with).
I can't argue to a greater extent to why use one over the other since ultimately it depends on the conventions you follow, but I hope this helps.

@halvardssm What are your thoughts about the following return values of validateJwt? Do the changes improve it from your perspective? Thank you!
type JwtObject = { header: Jose; payload?: Payload; signature: string };
type JwtValidation =
  | (JwtObject & { isValid: true })
  | { jwt: unknown; error: JwtError; isValid: false; isExpired: boolean };

async function validateJwt(
  jwt: string,
  key: string,
  { critHandlers }: Opts
): Promise<JwtValidation> {
  try {
    const [oldJwtObject] = await handleJwtObject(
      validateJwtObject(parseAndDecode(jwt)),
      critHandlers
    );
    if (
      oldJwtObject.signature !==
      parseAndDecode(makeJwt({ ...oldJwtObject, key })).signature
    )
      throw Error("signatures don't match");
    return { ...oldJwtObject, isValid: true };
  } catch (err) {
    return {
      jwt,
      error: new JwtError(err.message),
      isValid: false,
      isExpired: err.message === "the jwt is expired" ? true : false,
    };
  }
}

@timonson I think this is a really good implementation 👍 I would maybe change the validation type to the example below to always return the JwtObject in the jwt prop, but I think both ways have their pros and cons so I leave it to you:
type JwtValidation =
  | { jwt: JwtObject; isValid: true }
  | { jwt: string; isValid: false; isExpired: boolean; error: JwtError };

I hope this commit https://github.com/timonson/djwt/commit/289b373ece01aebe1322d2cb4ad97afcfdb52ea3 addresses this issue, thanks to all!


Typo in layers.py, line 4527

Inside the PreluLayer class:
self.outputs = tf.nn.relu(self.inputs) + tf.mulitply(alphas, (self.inputs - tf.abs(self.inputs))) * 0.5

multiply is spelt wrongly, causing an exception.

@geometrikal thanks, just fix it in master version

Cheers. (Great library, have switched to it)


dbeaver/dbeaver#18770 save previous user dialog size

Closes dbeaver/dbeaver#18770
The edit connection dialog now should remember the previous user size and try to adjust if it is too small for the current page.

Verified


When wrong syntax in project slug, necessary to start the script from the beginning

I have noticed that when the project slug has forbidden characters, it is necessary to start the script again and unfortunately all the provided selections are lost.
I have a suggestion: it is possible to checked the project slug directly after the user has entered it, if there are errors, then the appropriate message will be shown, and a user has an opportunity to correct the error.
@klamann If that's fine, I could work on this issue.

It does not seem to be possible to interactively (right after entering a value) validate it and prompt again in case it is invalid. The prompts are implemented here. After being read, they are immediately stored in a config dict and there is no option to inject any validation code.
To make fixing and rerunning a smoother experience, I can imagine doing the following.

in pre_gen_project.py, we create a replay-file containing all the user inputs in case a validation fails (or copy the one that  cookiecutter created). The arguments that failed the validation get a FIXME comment
the error message shown to the user contains a hint on how to use the exported config file to render the template, e.g.: cookiecutter . --replay --replay-file <path to replay file>

any thoughts @klamann ?

Or even simpler, we just hint where the user finds the default replay file and tell him to run cookiecutter . --replay after fixing


Basis sets need 'revision_date'

The old BSE had a date the basis set was last modified. We can store when particular revisions were updated. Just a date should be sufficient, I would think (time not needed).
Updated should mean when the revision was uploaded. It shouldn't reflect minor metadata or reference changes.
For v0, I have the data from the old BSE. Current v1 can be inferred from github commits.
This can be reflected on the website, with maybe notices when a basis set was updated recently.
Also, since I'm parsing the old data, I can add the previous contributors as well (to the notes for now).

[x] Add 'revision_date` field and test that it exists and is a parseable date/datetime
[x] Programmatically add v0 dates from old BSE
[x] Add dates for v1 from github commits (could maybe be done semi-programmatically)
[x] Also add v0 contributors to notes

Easier than I thought. Completed with 3ecc1473ec063fbdee05061e34b48fe5b7fc116a


Adding a license file

As discussed in #1 , I have created a pull request adding a license file. Since the publisher repo uses the MIT license, I am guessing you might want to use the same one. Please let me know if I should make any other changes.

Closes #1

Thank you for your contribution!


dataset

the dataset relesed in your code has 57w sent but your paper writes 52w, please tell me the  reason , the two kinds datasets really have very differrent performance i know

OK, the github project (https://github.com/thunlp/NRE) has released two version dataset in history. The first version is the raw_data in our project and followed by the distantly supervised methods in ACL2017 and EMNLP2017 (https://github.com/tyliupku/soft-label-RE, https://github.com/jxwuyi/AtNRE, https://github.com/JuneFeng/RelationClassification-RL). Because these methods are our baselines, we directly follow their implementation and dataset settings. For data description, we also directly follow their papers.

When we implement the github project OpenNRE (https://github.com/thunlp/OpenNRE) recently. We also find that the released dataset is different from the paper description in the project (https://github.com/thunlp/NRE). Then, the project updated the second version of data.

Because the NYT dataset labels the dataset with the KG Freebase which is not maintained for a long time. There are some instances labelled with the relation "NA". This problem may lead to underestimating the model performance. Hence, some human annotated dataset such as Tacred or FewRel may be more suitable for evaluating model performance.

It is very nice of you to help me solve my problem.  could you introduce me several datasets fitting for distant supervised relation extraction


[CHALLENGE SUBMISSION] jvhoof

Please provide the following information for your submission:
What is your name? (First, Last)
Joeri Van Hoof
Where is your GitHub Repo ?(With your challenge solution)
https://github.com/jvhoof/AzureEats-Website
What Challenge is this for? (Challenge number between 1 and 5)
1
(Optional) Anything else we should know? e.g., language used, location, blog post?
Deploy on Azure Cloud Shell
cd ~/clouddrive/ && wget -qO- https://github.com/jvhoof/AzureEats-Website/archive/master.zip | jar x && cd ~/clouddrive/AzureEats-Website-master/ && ./deploy.sh
Deploy on GitHub Actions using the workflow provided. Additional improvment could be to save state in Azure Storage Account or Terraform Cloud.

Thanks for participating in the #TerraformOnAzure coding challenges!
We have attached your very special Astronaut Badger background, for you to use in all your upcoming video calls!
And to recognize you for your learning, you can collect your digital Azure Heroes badge on your mobile (you may need to install the Enjin wallet to collect it). Make sure to collect it today!
https://beam.enjin.io/claim/d32599695c8c28cfc24820492080fac0
Keep on learning and sharing!
Greetings from the #TerraformOnAzure team,
Suzanne, Floor, Erik & Nick


Docs incorrectly state setting sendAccessToken enables library handling of 401/403 HTTP status codes

Describe the issue
The documentation indicates that the use of the sendAccessToken setting enables an interceptor including: "error handling for security related errors (HTTP status codes 401 and 403) received from the resource server".
See:

https://manfredsteyer.github.io/angular-oauth2-oidc/docs/additional-documentation/working-with-httpinterceptors.html
https://github.com/manfredsteyer/angular-oauth2-oidc/blob/8d152c20ea1dab006a7eca02898260254872e79b/docs-src/interceptors.md?plain=1#L3

I can't see this in behaviour or in the code i.e. the default unless a custom handler is provided is OAuthNoopResourceServerErrorHandler ; see here.
Stackblitz example
N/A
To Reproduce
N/A
Expected behavior
The documentation indicates that setting sendAccessToken to true enables handling of 401 and 403 HTTP status codes.
Desktop (please complete the following information):
N/A
Additional context
N/A

I'm happy to submit a PR but wanted to understand what was intended and/or if I'd missed something.

I think the documentation is incorrect, and should not say:

Since 3.1 the library uses a default HttpInterceptor that takes care about transmitting the access_token to the resource server and about error handling for security related errors (HTTP status codes 401 and 403) received from the resource server.

But instead say

Since 3.1 the library uses HttpInterceptors. A default HttpInterceptor takes care about transmitting the access_token to the resource server (if configured). Applications can also use their own custom interceptors for handling of security related errors (HTTP status codes 401 and 403) received from the resource server.

In #429 someone noticed similarly that the docs were not entirely correct, and #414 also has som emore info on how (I personally think that) it's an application concern and needs custom application logic to determine what happens on 401/403 errors.
Hope you don't mind if I edit your question title to indicate the docs need improvement? If not let me know and we'll revert and I'll open a separate issue for it.

This sounds good, thank you.

If I'm reading this correctly, the docs are still wrong as the PR hasn't been completed and therefore we have to create our own interceptor to handle 401/403 status codes.
If correct, does anyone have a simple example they could share?


Run   "postinstall": "symlink-dir node_modules/cesium/Build/Cesium public/cesium" Issue on Vercel

Hi guys. I'm having an issue running resium in Vercel.
The build process fails on the server with the following error:
Failed to process build result for "cesium". Data: {"type":"FileFsRef"}.
12:07:09.905 | [Error: EISDIR: illegal operation on a directory, read] {
12:07:09.905 | errno: -21,
12:07:09.905 | code: 'EISDIR',
12:07:09.905 | syscall: 'read'
12:07:09.905 | }
It is happening in the Vercel instance but not in my local env.
I'm using:
"next": "12.0.3",
"react": "17.0.2",
"resium": "^1.14.3"
Someone else faced this problem before?
Thanks in advance.

Vercel is a serverless service, so symlink may not work for some reasons.
Did you try just copying files?
"postinstall": "cp -r node_modules/cesium/Build/Cesium public/cesium"

@rot1024 Thank you very much! It works.


allergies: use Allergies::new for test interface

As mentioned in #64, using Allergies(3) or similar constrains the
implementation to using tuple structs, whereas there could be a range of
possible implementations. By using new as the test interface,
implementations can choose what internal representation they'd like. For
instance, the example solution still uses a tuple struct, but you could
imagine solutions using regular structs.
Closes #64 (and I believe this is the only exercise that constrains the
implementation in such a way)

Looks good to me.


Add Changelog

This PR adds a changelog content area under cloud, available at /cloud/changelog as per FIP052

--
@karthik2804 did most of this work - Rhai script, templating and laying out the section. Big thanks to him 🙌🏻

adds a listing with a nice timeline effect for showing recent changes in Cloud
adds two first entries to the changelog, with their click-through post pages
adds a url to changelog in the Cloud sidebar
adds a url in Dev homepage
[todo] follow up with this PR with one on dotcom to add it to the footer from there too

LGTM


How to customize file input button color?

Is your feature request related to a problem? Please describe.
I can not change the color of the choose file button which is inside form file input component.

https://flowbite-react.com/storybook/?path=/docs/components-formcontrols--default-file-input
Describe the solution you'd like
A clear and concise description of what you want to happen.
I want to customize the color of the button from black to other colors
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Component can take a button color that enable color customization of the button
Additional context
No

@sayinmehmet47 you can customize if by adding a class to the component and then customize if with CSS using it.
<FileInput className="custom-fileinput" />

.custom-fileinput input { ... }

Or you can use the theme support to customize it, if the style is going to be the same for all your FileInput components.

This does not work, the CSS classes here override that of Tailwind as a side-effect
<FileInput className="block w-full text-sm text-violet-900 border border-violet-300 rounded-lg cursor-pointer bg-violet-50 " />

<input className="block w-full text-sm text-violet-900 border border-violet-300 rounded-lg cursor-pointer bg-violet-50 file:bg-violet-50 file:text-violet-700
      hover:file:bg-violet-100" aria-describedby="file_input_help" id="file_input" type="file" onChange={handleFileChange} />

Tailwind 3
Flowbite 2.X.X


Eyeliner config not working

Describe the bug
Eyeliner config will not work plugin loads and works but not the config.
When using highlight_on_key = true nothing happens, this works fine on packer.
tried with and with out lazy loading both don't work.
Which version of Neovim are you using?
Nightly
To Reproduce
Make sure to read https://github.com/folke/lazy.nvim/wiki/Minimal-`init.lua`-to-Reproduce-an-Issue
Steps to reproduce the behavior:

Open a file with text
Look for the line your cursor is on
Check if there are colored characters.

Expected Behavior
Config should work, colored text should only be visable when using f/F/t/T.
Screenshots
If applicable, add screenshots to help explain your problem.

repro.lua
local root = vim.fn.fnamemodify("./.repro", ":p")

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

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

-- install plugins
local plugins = {
  -- do not remove the colorscheme!
  "folke/tokyonight.nvim",
  -- add any other pugins here
  "jinh0/eyeliner.nvim",
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

-- add anything else here
require("eyeliner").setup {
  lazy = false,
  highlight_on_key = true
}
vim.opt.termguicolors = true
-- do not remove the colorscheme!
vim.cmd([[colorscheme tokyonight]])

Log
Please include any related errors from the Noice log file. (open with :Lazy log)

Lazy log

paste log here

https://github.com/jinh0/eyeliner.nvim/issues/15

interesting i never had this issue with packer.

probably because you didnt update? Either way, this can not have anything to do with lazy. Please do your own due diligence next time. I can't fix everyone's issue that don't have anything to do with lazy

I was updated, might have had something to do with the cache not sure, i apologize.

Yes i just moved back to my packer config and everything works fine. But i guess we can wait for the eyeliner dev to see what he thinks of the issue.

I can confirm that  there is a difference in behavior between Packer and Lazy in this specific case, and the latest version indeed works with Packer but not with Lazy.
I am wondering if it could be how the plugin is loaded, however it is hard for me to debug. With Packer, if I clone the plugin locally to latest version and add print statements, I can see that it will call:
eyeliner/init.lua then
setup() in eyeliner/config.lua
then plugin/init.lua
With Lazy and similar print statements, I can only see the prints statements coming from
setup() in eyeliner/config.lua
Nothing is printed from eyeliner/init.lua or plugin/init.lua
I am not quite sure why nothing is being printed and if the order is different or how to debug further from here. Although the problem might be with eyeliner, I would still like to know why/how it behaves differently  which subsequently makes it work with Packer and not Lazy. Even if the final fault ends up being on the eyeliner plugin, I think it might still be worthwhile to investigate/document this difference in behavior between both plugin manager @folke .

Looking at https://github.com/folke/lazy.nvim#-startup-sequence,
Is it possible that both init.lua and plugin/*.lua are being sourced before setup() is being called?
If that is the case then it might explain the difference between Packer and Lazy and why it is working only for Packer (which seem to do init->setup()->plugin/*.lua)

The order is:

plugin/* will be sourced, which looking at the code will do eyeliner.enable() -> enable on the current buffer with default config
config() will run, which will likely update the config, but the current buffer would still use the old

That order is how it should be. First the plugin is loaded (meaning it is added to the rtp and its /plugin/ files are sourced. Then your config will run.
This should be fixed in the eyleliner repo.
You can probbaly fix it by added require("eyeliner").disable() and then enable() at the end of your config function

Thank you for the clarification.
I wonder why Packer decided to go the opposite way?
As a last question, do you know why print statements in a plugin's init.lua and /plugin/ do not appear when opening Neovim with Lazy (with lazy=false)? I often added those just to debug with packer, they do not seem to work with Lazy however. Unsure if that would be unexpected for plugin developers.

@A-Lamia this should be fixed in 7c539e91b6608661162617be2a4be3f454e423cb using @jemag 's solution.


Update to Babel 7

If y'all don't want to upgrade now that's ok, just a test PR then.
Could also change the explicit plugins in favor of https://github.com/babel/babel-preset-env with the exclude option?
    "check-es2015-constants",
    "transform-es2015-arrow-functions",
    "transform-es2015-block-scoped-functions",
    "transform-es2015-block-scoping",
    ["transform-es2015-classes", { "loose": true }],
    ["transform-es2015-computed-properties", { "loose": true }],
    ["transform-es2015-destructuring", { "loose": true }],
    ["transform-es2015-for-of", { "loose": true }],
    "transform-es2015-function-name",
    "transform-es2015-literals",
    "transform-es2015-object-super",
    "transform-es2015-parameters",
    "transform-es2015-shorthand-properties",
    ["transform-es2015-spread", { "loose": true }],
    "transform-es2015-sticky-regex",
    ["transform-es2015-template-literals", { "loose": true }],
    "transform-es2015-unicode-regex",

    // exclude
    "transform-es2015-duplicate-keys"
    "transform-es2015-typeof-symbol"
    "transform-regenerator"
    "transform-exponentiation-operator"
    "transform-async-to-generator"
    "syntax-trailing-function-commas"

    "transform-object-rest-spread",
    "transform-es3-member-expression-literals",
    "transform-es3-property-literals"

Hmm failure is due to using an old version of traverse (some dep isn't updated, maybe cache issue)

I assume we'd want to wait for at least the beta. Any rough schedule for release?

Also see the last time we updated: #1347
I don't think the explicit transforms are necessary anymore. Although, if we want to target a specific browser/node version, we should only update that on the next branch.

@timdorr just fyi alpha shouldn't be any different in the beta for most projects unless you use something custom - https://github.com/babel/babel/milestone/9 need to review 2 prs. We can still run all the transforms.
Oh didn't know about the next branch

No worries. I'm happy to merge this in on the master branch, as long as the same targets (IE8, I think?) are supported. We can move up to IE11 in the next major.

Yeah was my intention to keep it the same, just whether we wanted to use the same plugins or do it via preset-env

@hzoo I'm going to close this out for now, since it's just version bumps. Once 7.0 goes rc or final, I can look into re-opening or making a new PR. We can also finally get on preset-env! 👍  Thanks for looking into this and good luck on the path to 7.0.0!


Fix wrong code sample in PAT

The original code gives wrong encoded value because it has '\n' at last and Azure DevOps server doesn't treat trailing whitespace characters.
By replacing echo with printf, the string would contain no '\n' at last, fixing the issue.

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


One set of screenshots recorded when running multiple emulators

When running multiple emulators to record screenshots on different sizes and API versions, previously for all devices the screenshots were downloaded (when unique filenames were used). Since 5.12.2 only the screenshots of the last device (highest emulator id) are successfully recorded.
Expected behaviour
All screenshots of all emulators to be recorded
Actual behaviour
Only screenshots of "last" emulator is recorded
Steps to reproduce
start emulator-5554 api30
start emulator-5556 api28
start emulator-5558 api26
./gradlew executeScreenshotTests -Precord
Version of the library
AGP 7.0.3
Shot 5.12.2 (worked perfectly on 5.12.1, also broken on 5.13.0 with or without facebook 0.14.0)
Facebook 0.13.0

We have noticed the exact same issue when we upgraded from 5.11.2 to 5.13.0


Primary hub mixup

This has been talked about before in the forums, but now I've noticed it is actually worse and weirder:

Follow a link to the profile of someone I'm not connected to.
Click the green "add" button
End up in my old clone, not my primary hub

The worse part is that this happens even when the profile is on my own primary hub, and I'm clicking a link directly from it.
The weirder part is that the link on the avatar menu that takes me "back home" properly takes me to my primary hub.
So, it seems hubzilla is figuring out my primary hub in different ways, one of which is broken and keeps taking me to my very ancient hub, even when it's my primary hub itself that is figuring it out.

I can see strange behavior when I use my clone instead
https://github.com/redmatrix/hubzilla/issues/1011

For anybody investigating, it should be noted that sometime in the past the 'follow_url' was not set correctly on import_xchan and/or cloning. This may have been fixed when that was corrected (2-3 years ago?) but some sites may still contain incorrect information. Finding the source of the current behaviour will need to take this past behaviour into consideration. There were a few workarounds at the time of that bugfix to try and calculate the correct follow_url if it was wrong. We may want to ensure that url is being set correctly now (both xchan_import and clone import) and then remove all the workarounds because they are now just making everything more complicated.  See include/connections.php::reconnect_url()

Ok, so it was indeed xchan_follow that did not get updated when making the clone primary.
What is the best way to distribute the updated information to other servers? Do I update some timestamp that will trigger distribution or do I directly call some update function?
If that works, this should be good now. Otherwise I will investigate further.


Teleport fixes

Teleport to physics center not transform center.
Fix NetEntity not being passed in.

(I have no idea if this works)
ADMIN:

fix: Fixed objects panel teleportation.

Fixes https://github.com/space-wizards/space-station-14/issues/23701 (alongside engine PR).